We think there has to be a better way to raise money for charities than asking for money directly. So we thought that using resources that we already have but don't use would be an awesome way of doing a good thing for these non-profit organisations.
What it does
This project is about creating a web browser plugin that give you the capability of donating money to NON-profit orgs by mining cryptocurrencies in background using the computing power you are not using at the moment using JS. You will be helping the community without any downsides.
How we built it
We started with a google chrome extension and thought that would suffice, but we eventually realised that to have the features that we wanted we would need an API server as well.
In order to mine the cryptocurrency, Monero, we use coinhive.com API (released two days ago).
Initializing the miner can be done all in the plug-in itself, but in order to retrieve all the real-time data we needed to create our own API, wrote in node.js and deployed on heroku.
Eventually we also added a react.js website hosted from an S3 bucket to give details about the extension and make it more available.
Challenges we ran into
We first explored how to do our own implementation of a Proof of Work for a Cryptocurrency using Web Assembly (also WebGL, which would be even better to take advantage of the GPU), but quickly came to the conclusion that in order to have a fully working product we needed to program faster, and we used coinhive.com API. We are one of the first ones to ever implement it, so that was a challenge (no info anywhere when you have problems).
We also had some trouble communicating real-time information between the background script that does the Mining and the page that displays the stats.
Accomplishments that we're proud of
We are most proud of how we made an expandable product and how we figured out how to recycle wasted energy into money that can go directly back into the open source community as donations, not just us as profit.
What we learned
We learned most of the blockchain concepts we know now. We learned a lot about CPU crytpocurrencies and cryptoeconomics. We also learned to use modern-day browsers API's properly and taking advantage of doing so.
What's next for Addcoin Plus
We are planning on adding a more fine cpu usage control mechanism to ideally always use as much free cpu as possible, and eventually stopping using the pool service which is taking 30% of our would-be donations.
We also plan on exploring WebGL to take advantage of GPU and mine a bit faster.