Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
install_pool [2018/05/01 21:45]
stevebrush [Start the core daemon for the first time]
install_pool [2019/01/11 00:47] (current)
Line 24: Line 24:
         * 2 CPU core         * 2 CPU core
         * 50Gb disk         * 50Gb disk
-        * Ubuntu 16.04 x64+        * Ubuntu 16.04 x64 or Ubuntu 18.04 x64
  
 ====Setup==== ====Setup====
Line 59: Line 59:
 ===Install Required Packages=== ===Install Required Packages===
 <code bash> <code bash>
-$ sudo apt-get install build-essential libtool autotools-dev autoconf pkg-config libssl-dev +$ sudo apt-get install build-essential cmake libtool autotools-dev autoconf libssl-dev pkg-config libboost-all-dev libssl-dev libzmq3-dev libunbound-dev libsodium-dev libminiupnpc-dev libunwind-dev liblzma-dev libreadline-dev libldns-dev libexpat1-dev libgtest-dev doxygen graphviz git curl libminiupnpc-dev 
-$ sudo apt-get install libboost-all-dev git npm nodejs nodejs-legacy libminiupnpc-dev redis-server +$ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh bash 
-$ sudo add-apt-repository ppa:bitcoin/bitcoin +
-$ sudo apt install cmake +
-$ sudo apt-get install curl +
-$ sudo apt-get update +
-$ sudo apt-get install libdb4.8-dev libdb4.8++-dev +
-$ curl -sL https://raw.githubusercontent.com/creationix/nvm/v0.31.0/install.sh -o install_nvm.sh +
-bash install_nvm.sh +
-</code> +
-  +
 **exit and reopen terminal** **exit and reopen terminal**
  
-<code bash> +sudo curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash - 
-   source ~/.profile +sudo apt-get install -y nodejs 
-   nvm install 0.10.48 +sudo npm i -g npm 
-   nvm use 0.10.48 +sudo add-apt-repository ppa:chris-lea/redis-server 
-   nvm alias default 0.10.48 +sudo apt-get update 
-   nvm use default+$ sudo apt-get install redis-server
 </code> </code>
 +
 +<WRAP center round tip 80%>
 +The latest version of https://github.com/iridiumdev/iridium-pool can run now with Node v8.11.1 LTS
 +</WRAP>
  
 =====IRD Daemon and Wallet Setup===== =====IRD Daemon and Wallet Setup=====
Line 102: Line 98:
 $ cd iridium-build $ cd iridium-build
 $ cmake -D STATIC=ON -D CMAKE_BUILD_TYPE=RELEASE .. $ cmake -D STATIC=ON -D CMAKE_BUILD_TYPE=RELEASE ..
-$ PORTABLE=1 make+$ PORTABLE=1 make -j$(nproc)
 </code> </code>
 **Now sit back for a couple minutes and allow it to compile**. **Now sit back for a couple minutes and allow it to compile**.
Line 152: Line 148:
  
 =====Mining Pool Setup===== =====Mining Pool Setup=====
-Using a new terminal window 
  
-We will use the [[https://github.com/forknote/forknote-pool|forknote-pool]] to setup the pool and front end site.+<WRAP center round important 80%> 
 +https://github.com/iridiumdev/iridium-pool : is ready for current POW. Use it istead of the forknote pool 
 +</WRAP> 
 + 
 + 
 +Using a new terminal window
  
 +We will use the [[https://github.com/dvandal/cryptonote-nodejs-pool]] to setup the pool and front end site.
 ====Downloading and Installing==== ====Downloading and Installing====
 Clone the repository and run npm update for all the dependencies to be installed: Clone the repository and run npm update for all the dependencies to be installed:
 <code bash> <code bash>
-   $ git clone https://github.com/forknote/forknote-pool.git pool+   $ git clone https://github.com/dvandal/cryptonote-nodejs-pool.git pool
    $ cd pool    $ cd pool
    $ npm update    $ npm update
Line 169: Line 170:
  
  
-Edit the config.json file to your fits :+## Edit the config.json file to fit your needs
  
 <WRAP center round tip 100%> <WRAP center round tip 100%>
Line 187: Line 188:
 <code json> <code json>
 { {
 +    "poolHost": "your.pool.host",
 +
     "coin": "iridium",     "coin": "iridium",
     "symbol": "IRD",     "symbol": "IRD",
     "coinUnits": 100000000,     "coinUnits": 100000000,
 +    "coinDecimalPlaces": 4,
     "coinDifficultyTarget": 175,     "coinDifficultyTarget": 175,
 +
 +    "daemonType": "default",
 +    "cnAlgorithm": "cryptonight_light",
 +    "cnVariant": 1,
 +    "cnBlobType": 2,
  
     "logging": {     "logging": {
Line 207: Line 216:
         "enabled": true,         "enabled": true,
         "clusterForks": "auto",         "clusterForks": "auto",
-        "poolAddress": "your_pool_wallet_address",+        "poolAddress": "** Your pool wallet address **"
 +        "intAddressPrefix": null,
         "blockRefreshInterval": 1000,         "blockRefreshInterval": 1000,
         "minerTimeout": 900,         "minerTimeout": 900,
 +        "sslCert": "./cert.pem",
 +        "sslKey": "./privkey.pem",
 +        "sslCA": "./chain.pem",
         "ports": [         "ports": [
             {             {
                 "port": 3333,                 "port": 3333,
-                "difficulty": 500,+                "difficulty": 5000,
                 "desc": "Low end hardware"                 "desc": "Low end hardware"
             },             },
             {             {
-                "port": 5555+                "port": 4444
-                "difficulty": 5000,+                "difficulty": 15000,
                 "desc": "Mid range hardware"                 "desc": "Mid range hardware"
             },             },
             {             {
-                "port": 7777,+                "port": 5555,
                 "difficulty": 25000,                 "difficulty": 25000,
                 "desc": "High end hardware"                 "desc": "High end hardware"
 +            },
 +            {
 +                "port": 7777,
 +                "difficulty": 500000,
 +                "desc": "Cloud-mining / NiceHash"
             },             },
             {             {
                 "port": 8888,                 "port": 8888,
-                "difficulty": 400500+                "difficulty": 25000
-                "desc": "Nicehash or mining farm", +                "desc": "Hidden port", 
-                "hidden": false+                "hidden": true 
 +            }, 
 +            { 
 +                "port": 9999, 
 +                "difficulty": 20000, 
 +                "desc": "SSL connection", 
 +                "ssl": true
             }             }
         ],         ],
         "varDiff": {         "varDiff": {
-            "minDiff": 500+            "minDiff": 100
-            "maxDiff": 1000000+            "maxDiff": 100000000
-            "targetTime": 20+            "targetTime": 60
-            "retargetTime": 40,+            "retargetTime": 30,
             "variancePercent": 30,             "variancePercent": 30,
             "maxJump": 100             "maxJump": 100
-        },   +        }, 
 +        "paymentId":
 +            "addressSeparator": "+" 
 +        },
         "fixedDiff": {         "fixedDiff": {
             "enabled": true,             "enabled": true,
Line 260: Line 287:
         "slushMining": {         "slushMining": {
             "enabled": false,             "enabled": false,
-            "weight": 120,+            "weight": 300, 
 +            "blockTime": 60,
             "lastBlockCheckRate": 1             "lastBlockCheckRate": 1
-        }+         }
     },     },
  
     "payments": {     "payments": {
         "enabled": true,         "enabled": true,
-        "interval": 600+        "interval": 1800
-        "maxAddresses": 10+        "maxAddresses": 50
-        "mixin": 2+        "mixin": 5, 
-        "transferFee": 50000+        "priority": 0
-        "minPayment": 1000000000,+        "transferFee": 5000000, 
 +        "dynamicTransferFee": true, 
 +        "minerPayFee" : true
 +        "minPayment": 100000000, 
 +        "maxPayment": null,
         "maxTransactionAmount": 0,         "maxTransactionAmount": 0,
-        "denomination": 1000000+        "denomination": 10000000
     },     },
  
     "blockUnlocker": {     "blockUnlocker": {
         "enabled": true,         "enabled": true,
-        "interval": 175,+        "interval": 30,
         "depth": 20,         "depth": 20,
-        "poolFee": 0.5+        "poolFee": 0.8
-        "devDonation": 0.5+        "devDonation": 0.2
-        "coreDevDonation": 0.5, +        "networkFee": 0.0
-        "extraFeaturesDevDonation":0.0+
     },     },
  
     "api": {     "api": {
         "enabled": true,         "enabled": true,
-        "hashrateWindow": 300+        "hashrateWindow": 600
-        "updateInterval": 30,+        "updateInterval": 5, 
 +        "bindIp": "0.0.0.0",
         "port": 8117,         "port": 8117,
         "blocks": 30,         "blocks": 30,
         "payments": 30,         "payments": 30,
-        "password": "your_password"+        "password": "your_password"
 +        "ssl": false, 
 +        "sslPort": 8119, 
 +        "sslCert": "./cert.pem", 
 +        "sslKey": "./privkey.pem", 
 +        "sslCA": "./chain.pem", 
 +        "trustProxyIP": true
     },     },
  
Line 303: Line 341:
     "wallet": {     "wallet": {
         "host": "127.0.0.1",         "host": "127.0.0.1",
-        "port": 14007+        "port": 13008
     },     },
  
     "redis": {     "redis": {
         "host": "127.0.0.1",         "host": "127.0.0.1",
-        "port": 6379+        "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": "your@email.com",
 +        "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": {     "monitoring": {
         "daemon": {         "daemon": {
Line 322: Line 438:
     },     },
  
 +    "prices": {
 +        "source": "tradeogre",
 +        "currency": "USD"
 +    },
 +    
     "charts": {     "charts": {
         "pool": {         "pool": {
             "hashrate": {             "hashrate": {
 +                "enabled": true,
 +                "updateInterval": 60,
 +                "stepInterval": 1800,
 +                "maximumPeriod": 86400
 +            },
 +            "miners": {
                 "enabled": true,                 "enabled": true,
                 "updateInterval": 60,                 "updateInterval": 60,
Line 365: Line 492:
                 "enabled": true                 "enabled": true
             }             }
 +        },
 +        "blocks": {
 +            "enabled": true,
 +            "days": 30
         }         }
     }     }
 +}
     </code>     </code>
 ====Start the pool==== ====Start the pool====
Line 396: Line 528:
      - custom.css : for creating your own pool style/      - custom.css : for creating your own pool style/
      - custom.js  : for changing the functionality of your pool website/      - custom.js  : for changing the functionality of your pool website/
 +     - TODO: WHAT PAGE TO EDIT FOR DISCORD SUPPORT-POOL CHAT
  
 Then simply serve the files via nginx, Apache, Google Drive, or anything that can host static content. Then simply serve the files via nginx, Apache, Google Drive, or anything that can host static content.
Line 403: Line 536:
 </WRAP> </WRAP>
  
-Guide compiled by PsychoSterope+Initial Guide compiled by PsychoSterope