Omega Media
Serokell helped Omega Media develop a fully-fledged cryptocurrency exchange with KYC compliance.
“Serokell OÜ is an extremely competent team that couples innovation with their knowledge of cutting-edge technology to develop something that has never been done before.”
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 contacted us to develop an innovative financial product for the Nordic market.
Monitoring with Prometheus and Grafana
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.
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.
Within the testing task, 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:
Setting up Lightning Network nodes
Building a payment service
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 did 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
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.
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.
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 an exchange service
As the final step, we designed from the ground up 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:
Is fully integrated with the payment service.
Is deployed (alongside the other services it depends on) using Nix.
Exports metrics using Prometheus.
Adheres without exceptions to the specification.
Technical stack
Haskell
Nix
Docker
PostgreSQL
c-lightning
Prometheus
Grafana
JavaScript
npm
Webpack
Modern and reliable blockchain solutions on demand
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.