Tutorial on how to quickly build a Monero mining pool with various algorithms in 10 minutes

Tutorial on how to quickly build a Monero mining pool with various algorithms in 10 minutes

Prepare Ubuntu system

Follow the steps below to enter

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash

sudo apt-get install -y nodejs

sudo add-apt-repository ppa:chris-lea/redis-server

sudo apt-get update

sudo apt-get install redis-server

sudo apt-get install libssl-dev

sudo apt-get install libboost-all-dev

git clone https://github.com/dvandal/cryptonote-nodejs-pool.git pool

cd

npm update

Edit vi config.json

enter

{
"poolHost": "your.pool.host",

"coin": "iridium",
“symbol”: “IRD”,
"coinUnits": 100000000,
"coinDecimalPlaces": 4,
"coinDifficultyTarget": 175,

"daemonType": "default",
"cnAlgorithm": "cryptonight_light",
"cnVariant": 1,
"cnBlobType": 2,

"logging": {
"files": {
"level": "info",
"directory": "logs",
"flushInterval": 5
},
"console": {
"level": "info",
“colors”: true
}
},

"poolServer": {
"enabled": true,
"clusterForks": "auto",
"poolAddress": "** Your pool wallet address **",
"intAddressPrefix": null,
"blockRefreshInterval": 1000,
"minerTimeout": 900,
"sslCert": "./cert.pem",
"sslKey": "./privkey.pem",
"sslCA": "./chain.pem",
"ports": [
{
"port": 3333,
"difficulty": 5000,
“desc”: “Low end hardware”
},
{
"port": 4444,
"difficulty": 15000,
“desc”: “Mid range hardware”
},
{
"port": 5555,
"difficulty": 25000,
“desc”: “High end hardware”
},
{
"port": 7777,
"difficulty": 500000,
"desc": "Cloud-mining / NiceHash"
},
{
"port": 8888,
"difficulty": 25000,
"desc": "Hidden port",
“hidden”: true
},
{
"port": 9999,
"difficulty": 20000,
"desc": "SSL connection",
“ssl”: true
}
],
"varDiff": {
"minDiff": 100,
"maxDiff": 100000000,
"targetTime": 60,
"retargetTime": 30,
"variancePercent": 30,
"maxJump": 100
},
“paymentId”: {
"addressSeparator": "+"
},
"fixedDiff": {
"enabled": true,
"addressSeparator": "."
},
"shareTrust": {
"enabled": true,
"min": 10,
"stepDown": 3,
"threshold": 10,
"penalty": 30
},
"banning": {
"enabled": true,
"time": 600,
"invalidPercent": 25,
"checkThreshold": 30
},
"slushMining": {
"enabled": false,
"weight": 300,
"blockTime": 60,
"lastBlockCheckRate": 1
}
},

“payments”: {
"enabled": true,
"interval": 1800,
"maxAddresses": 50,
"mixin": 5,
"priority": 0,
"transferFee": 5000000,
"dynamicTransferFee": true,
“minerPayFee” : true,
“minPayment”: 100000000,
"maxPayment": null,
"maxTransactionAmount": 0,
"denomination": 10000000
},

"blockUnlocker": {
"enabled": true,
"interval": 30,
"depth": 20,
"poolFee": 0.8,
"devDonation": 0.2,
"networkFee": 0.0
},

"api": {
"enabled": true,
“hashrateWindow”: 600,
"updateInterval": 5,
“bindIp”: “0.0.0.0”,
"port": 8117,
"blocks": 30,
“payments”: 30,
"password": "your_password",
"ssl": false,
“sslPort”: 8119,
"sslCert": "./cert.pem",
"sslKey": "./privkey.pem",
"sslCA": "./chain.pem",
“trustProxyIP”: true
},

"daemon": {
“host”: “127.0.0.1”,
"port": 13007
},

“wallet”: {
“host”: “127.0.0.1”,
"port": 13008
},

"redis": {
“host”: “127.0.0.1”,
"port": 6379,
"auth": null,
"db": 0,
"cleanupInterval": 15
},

"notifications": {
"emailTemplate": "email_templates/default.txt",
"emailSubject": {
“emailAdded”: “Your email was registered”,
"workerConnected": "Worker %WORKER_NAME% connected",
"workerTimeout": "Worker %WORKER_NAME% stopped hashing",
“workerBanned”: “Worker %WORKER_NAME% banned”,
"blockFound": "Block %HEIGHT% found !",
"blockUnlocked": "Block %HEIGHT% unlocked !",
"blockOrphaned": "Block %HEIGHT% orphaned !",
“payment”: “We sent you a payment!”
},
"emailMessage": {
“emailAdded”: “Your email has been registered to receive pool notifications.”,
"workerConnected": "Your worker %WORKER_NAME% for address %MINER% is now connected from ip %IP%.",
“workerTimeout”: “Your worker %WORKER_NAME% for address %MINER% has stopped submitting hashes on %LAST_HASH%.”,
“workerBanned”: “Your worker %WORKER_NAME% for address %MINER% has been banned.”,
"blockFound": "Block found at height %HEIGHT% by miner %MINER% on %TIME%. Waiting maturity.",
"blockUnlocked": "Block mined at height %HEIGHT% with %REWARD% and %EFFORT% effort on %TIME%.",
"blockOrphaned": "Block orphaned at height %HEIGHT% :(",
“payment”: “A payment of %AMOUNT% has been sent to %ADDRESS% wallet.”
},
"telegramMessage": {
"workerConnected": "Your worker _%WORKER_NAME%_ for address _%MINER%_ is now connected from ip _%IP%_.",
"workerTimeout": "Your worker _%WORKER_NAME%_ for address _%MINER%_ has stopped submitting hashes on _%LAST_HASH%_.",
“workerBanned”: “Your worker _%WORKER_NAME%_ for address _%MINER%_ has been banned.”,
"blockFound": "*Block found at height* _%HEIGHT%_ *by miner* _%MINER%_*! Waiting maturity.*",
"blockUnlocked": "*Block mined at height* _%HEIGHT%_ *with* _%REWARD%_ *and* _%EFFORT%_ *effort on* _%TIME%_*.*",
"blockOrphaned": "*Block orphaned at height* _%HEIGHT%_ *:(*",
“payment”: “A payment of _%AMOUNT%_ has been sent.”
}
},

"email": {
"enabled": false,
"fromAddress": "[email protected]",
"transport": "sendmail",
"sendmail": {
"path": "/usr/sbin/sendmail"
},
"smtp": {
"host": "smtp.example.com",
"port": 587,
"secure": false,
"auth": {
“user”: “username”,
“pass”: “password”
},
"tls": {
"rejectUnauthorized": false
}
},
"mailgun": {
"key": "your-private-key",
"domain": "mg.yourdomain"
}
},

“telegram”: {
"enabled": false,
“botName”: “”,
“token”: “”,
“channel”: “”,
"channelStats": {
"enabled": false,
“interval”: 30
},
"botCommands": {
“stats”: “/stats”,
“report”: “/report”,
“notify”: “/notify”,
“blocks”: “/blocks”
}
},

“monitoring”: {
"daemon": {
"checkInterval": 60,
"rpcMethod": "getblockcount"
},
“wallet”: {
"checkInterval": 60,
"rpcMethod": "getbalance"
}
},

"prices": {
"source": "tradeogre",
“currency”: “USD”
},

"charts": {
"pool": {
"hashrate": {
"enabled": true,
"updateInterval": 60,
"stepInterval": 1800,
“maximumPeriod”: 86400
},
"miners": {
"enabled": true,
"updateInterval": 60,
"stepInterval": 1800,
“maximumPeriod”: 86400
},
"workers": {
"enabled": true,
"updateInterval": 60,
"stepInterval": 1800,
“maximumPeriod”: 86400
},
"difficulty": {
"enabled": true,
"updateInterval": 1800,
"stepInterval": 10800,
“maximumPeriod”: 604800
},
“price”: {
"enabled": true,
"updateInterval": 1800,
"stepInterval": 10800,
“maximumPeriod”: 604800
},
“profit”: {
"enabled": true,
"updateInterval": 1800,
"stepInterval": 10800,
“maximumPeriod”: 604800
}
},
"user": {
"hashrate": {
"enabled": true,
"updateInterval": 180,
"stepInterval": 1800,
“maximumPeriod”: 86400
},
“payments”: {
“enabled”: true
}
},
"blocks": {
"enabled": true,
“days”: 30
}
}
}

After completion, enter ":wq" to save and exit

Start the mining pool

node init.js

Normal state

config.json needs to be modified

<<:  The TUBE coin mining tutorial supports server dual-channel ordinary computer CPU and graphics card mining!

>>:  ETNC coin mining tutorial, total amount 21 billion, Cryptonight V7 algorithm, supports CPU graphics card mining!

Recommend

These people are loyal and worthy of dating.

The biggest worry in a relationship is that you g...

What does a mole on the left side of a man's upper lip mean?

People with moles often have a lot to do with the...

What kind of faces make two people look like a couple?

What kind of faces make two people look like a co...

Discussion on the Risks of Bitcoin OTC Trading

As major Bitcoin trading platforms in my country ...

Do people with crow's feet have good luck in love? They are charming.

Most people yearn for good luck in love. It is a ...

Analysis of the location and meaning of moles on the lower legs

Traditional physiognomy covers a wide range, among...

How to tell short life

The length of a person's life is closely rela...

When will your luck turn for the better?

In the process of fortune telling or feng shui, n...

OK Mining Pool Lock Mining Tutorial

You have a copy of "OK Mining Pool Lock-up M...

Analysis of the four facial features of a woman with good fortune and wealth

People with good looks usually have good fortunes,...

What does a noble girl look like with dimples and double eyelids?

In life, most people hope to be noble people. Nob...