The problem EasyPool solves
We all are aware of the amazing computing power of our laptops and phones. What if the scientist around the world would be able to use it when its lying idle, which most of the time? What if EVERYONE with a computing device, a browser, and a decent internet connection would be able to contribute to such amazing research happening around the world? Canners, Climate Changes, etc etc etc. Today's world is a sucker for computing resources.
Yeah, it would be freaking awesome. And we make tried to make the first step towards this problem while using cutting-edge tech today.
Yeah yeah, we know there are several nice volunteer computing platform, like BONIC, GridCoin, etc. But all of them suffer from a common problem: complex and heavy installation process. Even I, as a techie, hesitate to go through all that hassle. You know setting up anything SUCKS.
We compile “your distributed code” in “almost any language” to WebAssembly and then all of it is executed in a cluster of browsers. Anyone who just opens our website(yes as simple as that) in their browser will become share his or her computing power with us.
Challenges we ran into
Go is a compelling language. But it is really hard to write nice and extendable code in it. Both of us are a total beginner in both GoLang and distributed computing. We designed this system from scratch. WebSockets, goroutines, channels, and a bunch of Locks, that’s all we have used in our backend. WebSockets in GoLang is a total mess. WebAssemby, though freaking awesome, is hard to work with. We had to dive into various runtime and even actual assembly to get it working.
Our primary motive was to write scalable and fast code for the server and to come up with a way that allows users to write distributed apps to use our platform in a language-agnostic way.