The instructions below apply for running SmartPool on both Ethereum and Ethereum Classic.
In traditional mining pools, every rig must be connected to the pool and submit shares to the pool directly, as shown in this figure.
When using SmartPool, because the pool is maintained by a smart contract, only a few shares are needed to submit to the pool, so mining rigs won't submit the share to contract directly. Instead, they submit shares to a local server/ machine that acts as the gateway between the mining rigs and the SmartPool contract. The new structure for a farm is shown in this figure
In SmartPool, the local server will need to install an Ethereum client (either Geth or Parity) and a SmartPool client. The SmartPool client will interact with the mining rigs to collect all the shares. It also submit a few share to the SmartPool contract via the Ethereum client. Details on how to install these components are in the next section.
The below instructions are for the the local-server of the farm which runs on Windows. For the unix/linux platform, please check this link!
You need to install a full-node client for Ethereum. We support both Go-ethereum and Parity.
(You can skip this step if you already have Golang/Go installed when you installed Go-ethereum) Golang compiler version 1.7 or higher. You can install go1.8 by following instructions as below:
sudo add-apt-repository ppa:gophers/archive
sudo apt-get update
sudo apt-get install golang-1.8
export PATH=$PATH:/usr/lib/go-1.8/bin (You can put this at the end of your ~/.profile and reload it by `source ~/.profile`)
The precompiled binary can be download from here. This binary runs on Windows 64 bit and was tested on Windows 10 by SmartPool team.
Before running SmartPool-client on your local server, you need to start the Etherem client and get it to sync with the latest Ethereum blockchain. You also need to enable several apis in your client. Specifically, you need to run:
parity --jsonrpc-apis "web3,eth,net,parity,traces,rpc,parity_set"
if you use Parity, or
geth --rpc --rpcapi "db,eth,net,web3,miner,personal"
if you use Geth.
At your smartpool-client folder, run
smartpool.exe --keystore <keystore_dir> --gateway 0x09077D92F7a71Ae3C4EAc8dC9f35cE9aa5A06F7B --share-threshold 36000 --claim-threshold 2 --spcontract 0xfc668AE14b0F7702c04b105448fE733D96C558DF --gasprice 4
You can figure out the meaning of these parameters in our client by running ./smartpool --help
. Two important parameters are share-threshold
and claim-threshold
. You can reduce these parameters to get your payment faster, but the average costs for transaction fees will be higher. You can reduce these parameters to get your payment faster, but the average costs for transaction fees will be higher. The above setup -share-threshold 36000 --claim-threshold 2
is for a miner of 20 GH/s to get paid every 4 hours (the average fees is ~0.6-1%). You can reduce either of the parameters to get paid faster (linearly) according to your hashrate.
SmartPool client binds its rpc server address at 0.0.0.0:1633 for the mining rigs to submit shares. Now you can just let the SmartPool client runs, do not close it.
SmartPool-cient will serve work and accept shares at 0.0.0.0:1633/<rig_or_worker_name>/
. The trailing /
is a required. rig_or_worker_name
must be different to farm
, rig
and status
. They are reserved for collecting and showing statistics of the farm and the rigs.
For example:
ethminer -F 192.168.1.100:1633/rig1/
if you mine with ethminer
.
EthDrcMiner64.exe -epool http://192.168.1.100/rig1/
if you mine with claymore
.
Note: Remember to change 192.168.1.100
to the local IP address of the local server in your network.
SmartPool-client collects and views stats for the whole farm and each individual rig.
Farm stats is available at: http://0.0.0.0:1633/farm
Rig stats is available at: http://0.0.0.0:1633/rig/<rig_or_worker_name>
We need the stats to improve our protocol. If you are ok with sharing the farm stats with us, please go to the farm stats url, save the json file and send us at admin@smartpool.io.