diff --git a/_posts/2021-07-06-mining-xec-using-viabtc-software.md b/_posts/2021-07-06-mining-xec-using-viabtc-software.md new file mode 100644 --- /dev/null +++ b/_posts/2021-07-06-mining-xec-using-viabtc-software.md @@ -0,0 +1,100 @@ +--- +layout: post +title: Mining eCash using ViaBTC Mining Pool Software +multiLangId: 2021-07-06-mining-xec-using-viabtc-software +lang: en +--- + +This is a quick guide for mining pool operators to setup a new mining pool to mine eCash (XEC) using viabtc_mining_server which was open sourced by ViaBTC a few months ago. Let’s begin! + +To start, deploy an eCash full node. This guide will assume you have one running on the local machine at 127.0.0.1:18332 (we use testnet in this example). + +## Build the ViaBTC Mining Server + +As of this writing, the following instructions can be run on Debian 10 (Buster): + +``` +git clone https://github.com/viabtc/viabtc_mining_server.git +cd viabtc_mining_server +for DIR in network utils jobmaster gateway mineragent ; do pushd "${DIR}" ; make ; popd ; done +``` + +Note: In this guide, we only build the minimal necessary pieces of the pool software in order to get a pool up and running. If you desire additional logging, improved peering, and other advanced features, we encourage you to look at the other modules provided in the repository. + +## Create a logging directory + +``` +sudo mkdir -p /var/log/pool +sudo chown $(whoami):$(whoami) /var/log/pool/ +``` + +## Set up the config files + +### gateway/config.json + +The defaults only work for some networks. Try the following configuration: + +``` +"diff_min": 1000, +"diff_max": 500000, +"diff_default": 100000000, +``` + +### jobmaster/config.json + +Configure the "main_coin" option: + +``` +"main_coin" : { + "name": "XEC", + "host": "[your_ecash_node_host]", + "port": "[your_ecash_node_port]", + "user": "[your_ecash_node_username]", + "pass": "[your_ecash_node_password]", +} +``` + +Remove the following options, if present: "aux_coin", "rsk_coin" and "vcash_coin" + +You can add as many entries to "coin_recipients" as you like. For mainnet, it must contain the miner fund address (with a minimum 8 percent), as below: + +``` +{ + "address": "35A4uDKb6p9AFu7w1R4sDhiFfevSBv4uLq", + "percent": 0.08 +} +``` + +For **testnet**, your eCash node must be configured with -enableminerfund=1, and the following "address" instead: + +``` +{ + "address": "2MviGxxFciGeWTgkUgYgjqehWt18c4ZsShd", + "percent": 0.08 +} +``` + +"pool_name" and "coinbase_message": The name of your mining pool and an optional message to include in each block. + +Add the following option to the end of the config file: "segwit_commitment": false + +### mineragent/config.json + +"stratum_port": Make sure this port matches the stratum port that your miners will be using. Common port numbers include 3222 and 3333. + +### For all config files + +The applications may fail to run with the default configs unless you configure the kernel to use increased file and core limit sizes. For testing purposes, you can simply remove `file_limit` and `core_limit` config lines. + +## Run the pool applications + +``` +for APP in jobmaster gateway mineragent ; do pushd “${APP}” ; ./”${APP}.exe” config.json ; popd ; done +``` + +Congratulations, your mining pool is now fully operational. + +## Use your pool to mine eCash blocks + +Configure your miners to point at [your_pool_ip]:[your_stratum_port]. You can observe the logs at /var/log/pool to ensure the pool is working properly, and watch the blocks roll in! +