Omega Media

Serokell helped Omega Media develop a fully-fledged cryptocurrency exchange with KYC compliance.

Introduction

Omega Media is a digital marketing and consulting agency from Norway. They provide a wide range of services, from digital marketing to app development. Omega Media contracted us to develop an innovative financial product for the Nordic market.

Monitoring with
Prometheus and Grafana

Monitoring with Prometheus and Grafana illustration

We started working together in November 2019. At first, our collaboration was granular: we received small tasks and delivered them within the agreed time. The first challenge was to improve the observability of an existing project.

Monitoring with Prometheus and Grafana illustration

Our Haskell developers instrumented the code to export metrics representing the project’s internal state in industry-standard Prometheus format. Serokell software reliability engineers deployed a standardized monitoring solution in the form of a Prometheus server and a Grafana instance. They built custom monitoring dashboards taking into account the specifics of the service.

Monitoring with Prometheus and Grafana illustration

Within these tasks, we demonstrated strong experience with instrumentation, software observability, and knowledge of standard tools such as Prometheus and Grafana. The client was satisfied with the result, so we switched from a task-based model of interaction to a dedicated team.

Building a cryptocurrency
exchange platform

Our next task was to create a financial platform that would allow its users to exchange fiat money for Bitcoin. The process consisted of three parts:

nodes

Setting up Lightning Network nodes

payment

Building a payment service

exchange

Creating the exchange

Lightning Network

To start, our software reliability engineers created custom NixOS-based infrastructure running a constellation of Bitcoin Lightning Network nodes with a custom topology. Afterwards, the SRE team connected it to the previously configured monitoring infrastructure and deployed the Ride-The-Lightning management dashboard.

The Lightning nodes had to process unusually large transactions, which required special configuration and even patches to the code.

Serokell’s development team conducted in-depth research and chose all the elements of the stack based on the client’s requirements, i.e., which Lightning Node implementation to use (C-lightning), which web dashboard to use (RTL), etc.

Our developers implemented a Haskell library for interaction with C-lightning nodes and a Haskell service for controlling the Lightning infrastructure.

Development

Development of a payment
adapter service

As the second step, we designed and built a payment adapter service which provides the opportunity to buy and sell bitcoins with regular banking cards. It would in the beginning rely on two different payment providers, abstracting away the specific details of their usage and API in a basic provider-agnostic interface.
We helped them use Grafana to observe data about the service payments; however, this time, based on direct access to the PostgreSQL database. Moreover, we designed and supported a Docker-based deployment that the project used across three servers for different testing and production environments.
Then we provided support for additional payment features and actions to get to a payment control flow that was complete and satisfactory, expanding the interface in the process. We also started expanding the number of providers.

Development of the exchange service

As the final step, we worked out a specification for an exchange service that would make use of the payment service and the Lightning Network. We did so by taking into consideration customer’s requests, the specific characteristics of the Lightning technology, as well as non-functional requirements.

After getting approval from Omega Media, we immediately started working on the task and completed it all in the course of a month.

In the result,
the exchange service:

Result illustration

Is fully integrated with the payment service.

Result illustration

Is deployed (alongside the other services it depends on) using Nix.

Result illustration

Exports metrics using Prometheus.

Result illustration

Adheres without exceptions to the specification.

Technical stack

Haskell

Haskell

Nix

Nix

Docker

Docker

PostgreSQL

PostgreSQL

C-lightning

C-lightning

Prometheus

Prometheus

Grafana

Grafana

JavaScript

JavaScript

npm

npm

webpack

webpack

Modern and reliable
blockchain solutions
on demand

We have implemented Omega Media’s idea about a platform that allows buying Bitcoin with a regular bank card and includes transaction monitoring and complete data logging.

The cryptocurrency exchange software MVP was built to use the Lightning Network: a relatively recent and fast-changing technology promising more granular, quicker, and cheaper transfers.

In designing and implementing this service, we took care of interfacing with Lightning Network and the payment adapter service to allow payments from fiat currencies from multiple providers.

We also developed a CI solution, used during the whole development cycle, and Nix-based reproducible deployment of all the interconnected services.

The project was completed within the agreed time and budget and involved several advanced technical innovations. We are proud to be chosen as the dedicated team for this project and hope to continue our collaboration with Omega Media in the new year.

Let’s Have a Chat

We would be happy to discuss your project and propose solutions.