SONM announces winners of its Fog Computing Challenge

The time has come to review the results of SONM’s competition for developers, the Fog Computing Challenge, and announce the winners. Just to remind you, the challenge began in May this year and was held in four categories: PaaS, SaaS, SONM Core and Games. The competition consisted of two stages: a semi-final, in which all contestants took part, and a final for the winners of the semi-final.

Ten developers made it to the final, but only three offered ready-for-use solutions for tasks in the PaaS, SaaS and Core categories. SONM COO Oleg Lyubimov and SONM Product Owner Eugene Manaev chose the winners of the competition.


Participants in the PaaS category had to solve one of the four challenges for the storage and management of data: adapt either a relational (SQL) database, key-value (NoSQL) database, object storage or file storage system for use with the SONM network.

RDS (SQL) and KV (NoSQL)

The absolute winner in this category was Vyacheslav Akhmetov, who solved two tasks: he ran a CockroachDB SQL database as well as a ScyllaDB key-value database on SONM’s distributed architecture.

Akhmetov developed a deal and task manager on bash for both databases. The developed solution places orders for the rental of resources, monitors the deals, runs tasks on rented resources and monitors their execution, and also places additional orders for the rental of resources when closing deals.

The proposed solution provides data replication in accordance with a user-defined level, guaranteeing the resilience of the platform if one or more nodes fail. It is also possible to receive the IP address of all nodes in the cluster via a control panel, create user databases, and carry out proper shutdown of the service, deleting orders for the rental of resources and closing deals. The work presented is ready for use on SONM.

Vyacheslav Akhmetov prepared a solution for both tasks: RDS (SQL) and KV (NoSQL). However, only the relational database can be integrated into SONM with minimal changes, and the KV Storage task requires certain improvements for full integration with SONM. It also significantly replicates the code from the RDS (SQL) project, so it is not yet seen as completely resolved.

Prize: $15,000

A detailed description of the RDS (SQL) task is available on GitHub here. A detailed description of the KV storage (NoSQL) task is available here.    


The CDN on SONM task was to choose software for a content delivery network (CDN) with open-source code, which was capable of maintaining static web files and/or media streaming. The contestant had to develop software to balance load and data distribution between network nodes. The software presented had to use SONM’s open API for the purchase of resources on the SONM marketplace, and deploy tasks for CDN nodes.

The developer Sergei Telminov created a CDN based on the SONM platform.


Telminov completely solved the challenge, running CDN on Python for static web files. His system provides control of the operation of the external servers hosting content, as well as the nodes that distribute load on SONM automatically and through WebGUI.  

In the node-manager solution the nginx nodes serve for static distribution and store scripts to update the distributed files. Load distribution was done via dynamic DNS and takes into account the customer’s geographical location, which is identified via their IP. When the service is operational the controlling node periodically queries the distribution nodes, checking their efficiency and load, and if necessary adds or stops tasks on the SONM network.

Prize: $10,000.                                                 

A detailed description of Sergei Telminov’s solution is available on GitHub here.


Auto-seller bot

The task facing the contestants was to create an auto-seller-bot: software that works on the side of the supplier of SONM computing resources, provides monitoring of the market, checks the availability of resources, as well as deal management using SONM’s API with the aim of maximizing profit for the supplier of resources.

A working version of this bot was proposed by Artyom Tsebrovsky, who solved the task in a simplified form, not developing a separate system, but using the existing code for the SONM Optimus bot, but using a different algorithm when managing SONM Worker for renting out resources.

We found this decision particularly interesting, because the method of sorting orders by two key parameter allows more profitable orders to be executed first. For example, if a queued order will take up half of the resources, but bring little income, it will be “bumped back” by any other order with a high cost in resources. Additionally, an approach like this increases the speed of the work: searching for an optimal order from all those submitted takes a limited time. The author’s idea is that an algorithm like this can be used to search for orders, which can be stopped at a given time for the order of more optimal ones, which allows the total profit/gross margins of the supplier to be increased.

The proposed solution is not an independent development and does not meet all the conditions of the competition, since it is a patch for the already existing SONM Optimus bot, although we also decided to give the participant an incentive to continue.

Prize: 10,000 SNM

A detailed description of the solution of the Auto-seller-bot task is available on GitHub here.


Fog Computing Challenge allowed us to attract many talented developers to study our product. As a result, we have got first working use cases of applied software on the SONM distributed network, which are ready for use right now. The solutions presented will be used to improve the user experience and platform functionality with database management and CDN.

We are planning to make the SONM Fog Computing Challenge an annual event, and in 2019 it will be devoted to the use of Kubernetes on the SONM platform. Events like this help us raise awareness of SONM among professionals. The first examples of ready-for-use solutions based on SONM will be the first step to making the product globally recognized.

Keep up to date with our news!