Supports all known cryptonight/heavy/light/pico coins:
Based on a clean Ubuntu 16.04 LTS minimal install
cd xmr-node-proxy
git remote set-url origin https://github.com/MoneroOcean/xmr-node-proxy.git && git pull -X theirs --no-edit && npm update
useradd -d /home/nodeproxy -m -s /bin/bash nodeproxy
passwd nodeproxy
/etc/sudoers
, this must be done so the script can sudo up and do it's job. We suggest passwordless sudo. Suggested line: <USER> ALL=(ALL) NOPASSWD:ALL
. Our sample builds use: nodeproxy ALL=(ALL) NOPASSWD:ALL
echo "nodeproxy ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
curl -L https://raw.githubusercontent.com/MoneroOcean/xmr-node-proxy/master/install.sh | bash
config_example.json
to config.json
and edit as desired.source ~/.bashrc
This will activate NVM and get things working for the following pm2 steps.cd ~/xmr-node-proxy/
pm2 start proxy.js --name=proxy --log-date-format="YYYY-MM-DD HH:mm:ss:SSS Z"
pm2 save
You can check the status of your proxy by either issuing
pm2 logs proxy
or using the pm2 monitor
pm2 monit
cd xmr-node-proxy
./update.sh
Install and run Docker for Windows with Linux containers mode.
Get xmr-node-proxy sources by downloading and unpacking the latest xmr-node-proxy archive to xmr-node-proxy-master directory.
Got to xmr-node-proxy-master directory in Windows "Command Prompt" and build xmr-node-proxy Docker image:
docker build . -t xmr-node-proxy
Copy config_example.json to config.json and edit config.json file as desired (do not forget to update default XMR wallet).
Create xnp Docker contained based on xmr-node-proxy image (make sure to update port numbers if you changed them in config.json):
docker create -p 3333:3333 -p 8080:8080 -p 8443:8443 --name xnp xmr-node-proxy
docker cp config.json xnp:/xmr-node-proxy
docker start --attach xnp
docker stop xnp
docker rm xnp
docker rmi xmr-node-proxy
Specify at least one main pool with non zero share and "default: true". Sum of all non zero pool shares should be equal to 100 (percent).
There should be one pool with "default: true" (the last one will override previous ones with "default: true"). Default pool means pool that is used for all initial miner connections via proxy.
You can use pools with zero share as backup pools. They will be only used if all non zero share pools became down.
You should select pool port with difficulty that is close to hashrate of all of your miners multiplied by 10.
Proxy ports should have difficulty close to your individual miner hashrate multiplied by 10.
Algorithm names ("algo" option in pool config section) can be taken from Algorithm names and variants table
Blob type ("blob_type" option in pool config section) can be as follows
cryptonote - Monero forks like Sumokoin, Electroneum, Graft, Aeon, Intense
cryptonote2 - Masari
forknote - Some old Bytecoin forks (do not even know which one)
forknote2 - Bytecoin forks like Turtlecoin, IPBC
VMs with 512Mb or less RAM will need some swap space in order to compile the C extensions for node. Bignum and the CN libraries can chew through some serious memory during compile. In regards to this here is guide for T2.Micro servers: Setup of xmr-node-proxy on free tier AWS t2.micro instance. There is also more generic proxy instalation guide: Complete guide to install and configure xmr-node-proxy on a Ubuntu 16.04 VPS
If not running on an Ubuntu 16.04 system, please make sure your kernel is at least 3.2 or higher, as older versions will not work for this.
Many smaller VMs come with ulimits set very low. We suggest looking into setting the ulimit higher. In particular, nofile
(Number of files open) needs to be raised for high-usage instances.
In your packages.json
, do a npm install
, and it should pass.
The proxy gains a massive boost over a basic pool by accepting that the majority of the hashes submitted will not be valid (does not exceed the required difficulty of the pool). Due to this, the proxy doesn't bother with attempting to validate the hash state nor value until the share difficulty exceeds the pool difficulty.
In testing, we've seen AWS t2.micro instances take upwards of 2k connections, while t2.small taking 6k. The proxy is extremely light weight, and while there are more features on the way, it's our goal to keep the proxy as light weight as possible.
Please check the wiki for information on configuration
If you'd like to make a one time donation, the addresses are as follows:
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
RLVJv9rQNHzXS3Zn4JH8hfAHmm1LfECMxy
Nb931jkFtFN7QWpu4FqSThaoKajYjS5iFZ
AdXPHtV8yb86a8QKsbs8gmUpRpcxufRn8n
RUCyaEZxQu3Eure73XPQ57si813RYAMQKC
kc1qchtxq2gw9dc4r58hcegd6n4jspew6j9mu3yz8q
Bfhtr2g56tg73TNZBRCu6fJUD39Kur6SGG
9fe533kUzAE57YfPP6o3nzsYMKN2W2uCxvg8KG8Vn5DDeJGetRw
3HRbMgcvbqHVW7P34MNGvF2Gh3DE26iHdw
18sKoDSjLCFW9kZrXuza1qzEERnKi7bx8S
0xfE23a61548FCCE159a541FAe9e16cEB92Da650ed
0x4480Ad73a113BEFf05B2079E38D90c9757Ecb063
MGj8PU1PpTNDDqRHmuEqfDpH3gxp6cJrUU
If you'd like to have your pool added, please make a pull request here, or contact MoneroOcean at support@moneroocean.stream!