Web Client for a Distributed Random Number Generator
An RNG built on unconventional entropy sources — for the All-Russian FSP hackathon.

A prototype distributed random number generator built on unconventional entropy sources — the BTC exchange rate and independent input from lottery participants.
Built during the qualifying round of the All-Russian FSP hackathon.
The Problem
Existing entropy sources don’t inspire much trust in users — they can be predictable, and their generation mechanisms are opaque. This is especially acute in the context of lotteries.
The case presented by Stoloto: propose an RNG based on unconventional entropy sources that solves the problems above.
Result
Our team proposed the following solution: a distributed RNG with three entropy sources — the current time, the sufficiently chaotic and unpredictable BTC exchange rate, and transparent user input. Three people take part in generating the seed, which increases trust in the algorithm.
My role on this project was frontend. I needed to clearly show how a fair random number for the lottery emerges from unpredictable external data, and make it possible to verify the draw after the fact.
I built a prototype of the lottery itself (playground): a player enters a number, there’s a visualization of how the generator’s seed is assembled from the BTC rate and the entered numbers, and the final draw. The client talks to the server over WebSockets, so content updates in real time.

How to Run
The project runs via docker compose up — after that, nginx on port 8080 serves the finished app.