Coinfoundry: Porovnání verzí
(→Nastavení databáze) |
(→Instalace) |
||
Řádka 34: | Řádka 34: | ||
=== Instalace === | === Instalace === | ||
+ | apt-get update -y | ||
+ | apt-get -y install git cmake build-essential libssl-dev pkg-config libboost-all-dev libsodium-dev | ||
+ | git clone https://github.com/coinfoundry/miningcore | ||
+ | cd miningcore/src/MiningCore | ||
+ | ./linux-build.sh | ||
== Nastavení == | == Nastavení == |
Verze z 12. 6. 2018, 21:17
Jde o multipool z https://coinfoundry.org/ zveřejnený na https://github.com/coinfoundry/miningcore
Obsah
Instalace
Postup instalace, jak sjem se snažil:
Net Core
Je pořeba nainstalovat. Více je na stránkách https://www.microsoft.com/net/download/linux-package-manager/rhel/runtime-current z kterých jsem vycházel.
PostgreSQL
Dale je třeba nainstalovat PostgreSQL databázi. Patřičnou verzi z postupem nalezneme na https://www.postgresql.org/download/.
Coin Core
Pro vlastní těžbu a transakce musí být k dispozici "plnohodnotné" peněženky. Instalaci jednotlivých peněženek zde nebudu uvádět a věřím že půjde použít i peněženky na jiném PC.
Nastavení databáze
sudo -u postgres -i createuser miningcore createdb miningcore psql (heslo pro postgres)
Heslo nebylo potřeba ??? Následně nastavíme práva - ale nevím která varianta ...:
alter user miningcore with password 'ps888sQl'; alter user miningcore with encrypted password 'heslo-databaze'; grant all privileges on database miningcore to miningcore; \q
A na konec stáhneme vlastní databázi a naimportujeme ji.
wget https://raw.githubusercontent.com/coinfoundry/miningcore/master/src/MiningCore/Persistence/Postgres/Scripts/createdb.sql psql -d miningcore -U miningcore -f createdb.sql
Možná bez "-U miningcore" ???
Instalace
apt-get update -y apt-get -y install git cmake build-essential libssl-dev pkg-config libboost-all-dev libsodium-dev git clone https://github.com/coinfoundry/miningcore cd miningcore/src/MiningCore ./linux-build.sh
Nastavení
Vytvoříme soubor config.json v adresáři miningcore dle následujícího vzoru:
{ "logging": { "level": "info", "enableConsoleLog": true, "enableConsoleColors": true, // Log file name (full log) "logFile": "", // Folder to store log file(s) "logBaseDirectory": "", // If enabled, separate log file will be stored for each pool as <pool id>.log // in the above specific folder. "perPoolLogFile": false }, "banning": { // "integrated" or "iptables" (linux only - not yet implemented) "manager": "integrated", "banOnJunkReceive": true, "banOnInvalidShares": false }, "notifications": { "enabled": true, "email": { "host": "smtp.example.com", "port": 587, "user": "user", "password": "password", "fromAddress": "info@yourpool.org", "fromName": "pool support" }, "admin": { "enabled": false, "emailAddress": "user@example.com", "notifyBlockFound": true } }, // Where to persist shares and blocks to "persistence": { // Persist to postgresql database "postgres": { "host": "127.0.0.1", "port": 5432, "user": "miningcore", "password": "yourpassword", "database": "miningcore" } }, // Generate payouts for recorded shares and blocks "paymentProcessing": { "enabled": true, // How often to process payouts, in milliseconds "interval": 600, // Path to a file used to backup shares under emergency conditions, such as // database outage "shareRecoveryFile": "recovered-shares.txt" }, // API Settings "api": { "enabled": true, // Binding address (Default: 127.0.0.1) "listenAddress": "127.0.0.1", // Binding port (Default: 4000) "port": 4000 }, "pools": [{ // DON'T change the id after a production pool has begun collecting shares! "id": "dash1", "enabled": true, "coin": { "type": "DASH" }, // Address to where block rewards are given (pool wallet) "address": "yiZodEgQLbYDrWzgBXmfUUHeBVXBNr8rwR", // Block rewards go to the configured pool wallet address to later be paid out // to miners, except for a percentage that can go to, for examples, // pool operator(s) as pool fees or or to donations address. Addresses or hashed // public keys can be used. Here is an example of rewards going to the main pool // "op" "rewardRecipients": [ { // Pool wallet "address": "yiZodEgQLbYDrWzgBXmfUUHeBVXBNr8rwR", "percentage": 1.5 } ], // How often to poll RPC daemons for new blocks, in milliseconds "blockRefreshInterval": 400, // Some miner apps will consider the pool dead/offline if it doesn't receive // anything new jobs for around a minute, so every time we broadcast jobs, // set a timeout to rebroadcast in this many seconds unless we find a new job. // Set to zero to disable. (Default: 0) "jobRebroadcastTimeout": 10, // Remove workers that haven't been in contact for this many seconds. // Some attackers will create thousands of workers that use up all available // socket connections, usually the workers are zombies and don't submit shares // after connecting. This features detects those and disconnects them. "clientConnectionTimeout": 600, // If a worker is submitting a high threshold of invalid shares, we can // temporarily ban their IP to reduce system/network load. "banning": { "enabled": true, // How many seconds to ban worker for "time": 600, // What percent of invalid shares triggers ban "invalidPercent": 50, // Check invalid percent when this many shares have been submitted "checkThreshold": 50 }, // Each pool can have as many ports for your miners to connect to as you wish. // Each port can be configured to use its own pool difficulty and variable // difficulty settings. 'varDiff' is optional and will only be used for the ports // you configure it for. "ports": { // Binding port for your miners to connect to "3052": { // Binding address (Default: 127.0.0.1) "listenAddress": "0.0.0.0", // Pool difficulty "difficulty": 0.02, // Variable difficulty is a feature that will automatically adjust difficulty // for individual miners based on their hash rate in order to lower // networking overhead "varDiff": { // Minimum difficulty "minDiff": 0.01, // Maximum difficulty. Network difficulty will be used if it is lower than // this. Set to null to disable. "maxDiff": null, // Try to get 1 share per this many seconds "targetTime": 15, // Check to see if we should retarget every this many seconds "retargetTime": 90, // Allow time to very this % from target without retargeting "variancePercent": 30, // Do not alter difficulty by more than this during a single retarget in // either direction "maxDelta": 500 } } }, // Recommended to have at least two daemon instances running in case one drops // out-of-sync or offline. For redundancy, all instances will be polled for // block/transaction updates and be used for submitting blocks. Creating a backup // daemon involves spawning a daemon using the "-datadir=/backup" argument which // creates a new daemon instance with it's own RPC config. For more info on this, // visit: https:// en.bitcoin.it/wiki/Data_directory and // https:// en.bitcoin.it/wiki/Running_bitcoind "daemons": [{ "host": "127.0.0.1", "port": 15001, "user": "user", "password": "pass", // Enable streaming Block Notifications via ZeroMQ messaging from Bitcoin // Family daemons. Using this is highly recommended. The value of this option // is a string that should match the value of the -zmqpubhashblock parameter // passed to the coin daemon. If you enable this, you should lower // 'blockRefreshInterval' to 1000 or 0 to disable polling entirely. "zmqBlockNotifySocket": "tcp://127.0.0.1:15101", // Enable streaming Block Notifications via WebSocket messaging from Ethereum // family Parity daemons. Using this is highly recommended. The value of this // option is a string that should match the value of the --ws-port parameter // passed to the parity coin daemon. When using --ws-port, you should also // specify --ws-interface all and // --jsonrpc-apis "eth,net,web3,personal,parity,parity_pubsub,rpc" // If you enable this, you should lower 'blockRefreshInterval' to 1000 or 0 // to disable polling entirely. "portWs": 18545, } ], // Generate payouts for recorded shares "paymentProcessing": { "enabled": true, // Minimum payment in pool-base-currency (ie. Bitcoin, NOT Satoshis) "minimumPayment": 0.01, "payoutScheme": "PPLNS", "payoutSchemeConfig": { "factor": 2.0 } } }] }
Zpuštění
cd ../../build dotnet MiningCore.dll -c config.json