Você gostaria de aprender como criar um pool de mineração Bytecoin? Neste tutorial, vamos mostrar como instalar um pool de mineração Bytecoin usando um computador executando o Ubuntu Linux.

Lista de Hardware:

A seção a seguir apresenta a lista de equipamentos usados para criar este tutorial do Bytecoin.

Cada peça de hardware listada acima pode ser encontrada no site da Amazon.

Lista de Software:

Aqui está uma lista de software que usamos para criar este tutorial de instalação do nó Bytecoin.

Oferecemos duas maneiras de baixar este software.

Bytecoin Playlist:

Nesta página, oferecemos acesso rápido a uma lista de vídeos relacionados ao Bytecoin.

Não se esqueça de se inscrever em nosso canal do youtube chamado VirtualCoin.

Tutoriais Relacionados ao Bytecoin:

Nesta página, oferecemos acesso rápido a uma lista de tutoriais relacionados ao Bytecoin.

Tutorial - Instalação do nó Bytecoin

Se o seu Linux não tiver memória Swap configurada, use os seguintes comandos para criar um arquivo swap:

# dd if=/dev/zero of=/mnt/linux.swap bs=1M count=32092
# chmod 0600 /mnt/linux.swap
# mkswap /mnt/linux.swap
# swapon /mnt/linux.swap

No nosso exemplo, criamos um arquivo de swap de 32GB.

Para ativar o swap, edite o arquivo fstab e inclua a linha a seguir.

# vi /etc/fstab

/mnt/linux.swap none swap sw 0 0

Reinicialize o computador para ativar o swap.

# reboot

Use os seguintes comandos para instalar os pacotes necessários.

# apt-get install build-essential libboost-all-dev git cmake

Baixe o pacote de instalação do Bytecoin.

# mkdir /bytecoin/node -p
# cd /bytecoin/node
# git clone https://github.com/amjuarez/bytecoin

Compile e instale o software do nó Bytecoin.

# cd bytecoin/
# make
# make test-release
# cd build/release/src
# install -sv bytecoind connectivity_tool miner simplewallet walletd /usr/local/bin/

Crie um arquivo de configuração Bytecoin.

# mkdir ~/.bytecoin
# vi ~/.bytecoin/bytecoin.conf

log-level=2
no-console=yes
rpc-bind-ip=0.0.0.0
rpc-bind-port=8081
p2p-bind-ip=0.0.0.0
p2p-bind-port=8080
allow-local-ip=yes

Inicie o nó Bytecoin usando o seguinte comando:

# bytecoind

Aguarde a sincronização do blockchain para terminar.

A sincronização blockchain pode levar dias ou semanas.

Use o seguinte comando para verificar o status da sincronização blockchain:

# tail -f bytecoind.log

Se o arquivo bytecoind.log não for encontrado no mesmo diretório, use os seguintes comandos para localizar o arquivo bytecoind.log.

# updatedb
# locate bytecoind.log

Tutorial - Serviço Bytecoin Wallet

Depois de terminar a instalação do nó Bytecoin, você precisa criar uma nova carteira Bytecoin.

Aguarde até que a sincronização da carteira do blockchain termine e insira o comando de saída.

# mkdir /bytecoin/wallet -p
# cd /bytecoin/wallet
# simplewallet --generate-new-wallet virtualcoin --password kamisama123@

New wallet is generated. Address: 2851jgWSSjTA1SwzbGeXdWE6BND8yh1WQ5KF9rmaboCwSDaK38broEU4r7kfhZ1NoiWdvaVbSYuGhVHnYphfyKgbMqTafTQ

# [wallet 22gnmi]: exit

Em nosso exemplo, uma carteira chamada virtualcoin foi criada e configurada para usar a senha kamisama123 @.

Tome nota do seu endereço Bytecoin.

Agora, você precisa iniciar o serviço de carteira.

# simplewallet --wallet /bytecoin/wallet/virtualcoin.wallet --pass kamisama123@ --daemon-host 127.0.0.1 --daemon-port 8081 --rpc-bind-port 8082

Tutorial - Pool de Mineração Bytecoin

Após concluir a instalação do nó Bytecoin e a configuração do serviço de carteira, podemos iniciar a instalação do pool de mineração Bytecoin.

Use o seguinte comando para instalar o software requerido:

# apt-get install build-essential libtool autotools-dev autoconf pkg-config libssl-dev
# apt-get install libboost-all-dev git npm nodejs nodejs-legacy libminiupnpc-dev redis-server
# apt-get install libdb-dev libdb++-dev libdb5.3
# curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash
# nvm install node
# source ~/.profile

Reinicialize o computador e reinicie o nó Bytecoin e o serviço de carteira.

# reboot
# bytecoind
# simplewallet --wallet /bytecoin/wallet/virtualcoin.wallet --pass kamisama123@ --daemon-host 127.0.0.1 --daemon-port 8081 --rpc-bind-port 8082

Após a reinicialização do computador, você precisa concluir a instalação do software.

# nvm install 0.10.25
# nvm alias default 0.10.25
# nvm use default
# mkdir /bytecoin/pool -p
# cd /bytecoin/pool
# git clone https://github.com/forknote/cryptonote-universal-pool.git
# cd cryptonote-universal-pool
# npm update
# vi config.json

Agora vamos criar o arquivo de configuração básico.

# vi config.json

Aqui está o arquivo original, antes da nossa configuração:

{
"coin": "dashcoin",
"symbol": "DSH",
"coinUnits": 1000000000000,
"coinDifficultyTarget": 120,

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

"poolServer": {
"enabled": true,
"clusterForks": "auto",
"poolAddress": "D6WLtrV1SBWV8HWQzQv8uuYuGy3uwZ8ah5iT5HovSqhTKMauquoTsKP8RBJzVqVesX87poYWQgkGWB4NWHJ6Ravv93v4BaE",
"blockRefreshInterval": 1000,
"minerTimeout": 900,
"ports": [
{
"port": 3333,
"difficulty": 100,
"desc": "Low end hardware"
},
{
"port": 5555,
"difficulty": 2000,
"desc": "Mid range hardware"
},
{
"port": 7777,
"difficulty": 10000,
"desc": "High end hardware"
},
{
"port": 8888,
"difficulty": 10000,
"desc": "Hidden port",
"hidden": true
}
],
"varDiff": {
"minDiff": 100,
"maxDiff": 200000,
"targetTime": 100,
"retargetTime": 30,
"variancePercent": 30,
"maxJump": 100
},
"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": 120,
"lastBlockCheckRate": 1
}
},

"payments": {
"enabled": true,
"interval": 600,
"maxAddresses": 50,
"mixin": 3,
"transferFee": 50000000,
"minPayment": 1000000000,
"maxTransactionAmount": 0,
"denomination": 1000000000
},

"blockUnlocker": {
"enabled": true,
"interval": 30,
"depth": 10,
"poolFee": 2,
"devDonation": 0.1,
"coreDevDonation": 0.1,
"extraFeaturesDevDonation":0.1
},

"api": {
"enabled": true,
"hashrateWindow": 600,
"updateInterval": 5,
"port": 8117,
"blocks": 30,
"payments": 30,
"password": "your_password"
},

"daemon": {
"host": "127.0.0.1",
"port": 42081
},

"wallet": {
"host": "127.0.0.1",
"port": 8082
},

"redis": {
"host": "127.0.0.1",
"port": 6379
},

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

"charts": {
"pool": {
"hashrate": {
"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
}
}
}
}

Aqui está o novo arquivo com nossa configuração.

As diretivas alteradas foram destacadas em negrito.

{
"coin": "bytecoin",
"symbol": "BCN",
"coinUnits": 1000000000000,
"coinDifficultyTarget": 120,

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

"poolServer": {
"enabled": true,
"clusterForks": "auto",
"poolAddress": "22gAnEFyeKu7CEbc7XVz8meeeTKkMwjXMgCyJQ6i3UpfLp9EaA8ywu1ZGsidvUoyuzK7ZATghbZAaSpT9ZutSahzFZWCpkM",
"blockRefreshInterval": 1000,
"minerTimeout": 900,
"ports": [
{
"port": 3333,
"difficulty": 100,
"desc": "Low end hardware"
},
{
"port": 5555,
"difficulty": 2000,
"desc": "Mid range hardware"
},
{
"port": 7777,
"difficulty": 10000,
"desc": "High end hardware"
},
{
"port": 8888,
"difficulty": 10000,
"desc": "Hidden port",
"hidden": true
}
],
"varDiff": {
"minDiff": 100,
"maxDiff": 200000,
"targetTime": 100,
"retargetTime": 30,
"variancePercent": 30,
"maxJump": 100
},
"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": 120,
"lastBlockCheckRate": 1
}
},

"payments": {
"enabled": true,
"interval": 600,
"maxAddresses": 50,
"mixin": 3,
"transferFee": 50000000,
"minPayment": 1000000000,
"maxTransactionAmount": 0,
"denomination": 1000000000
},

"blockUnlocker": {
"enabled": true,
"interval": 30,
"depth": 10,
"poolFee": 2,
"devDonation": 0.1,
"coreDevDonation": 0.1,
"extraFeaturesDevDonation":0.1
},

"api": {
"enabled": true,
"hashrateWindow": 600,
"updateInterval": 5,
"port": 8117,
"blocks": 30,
"payments": 30,
"password": "your_password"
},

"daemon": {
"host": "127.0.0.1",
"port": 8081
},

"wallet": {
"host": "127.0.0.1",
"port": 8082
},

"redis": {
"host": "127.0.0.1",
"port": 6379
},

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

"charts": {
"pool": {
"hashrate": {
"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
}
}
}
}

Minha configuração é apenas básica.

É altamente recomendável que você estude este arquivo de configuração para melhorar sua configuração.

Use o seguinte comando para iniciar a pool de mineração Bytecoin.

# cd /bytecoin/pool/cryptonote-universal-pool
# node init.js

Tenha em mente que o serviço do pool funcionará somente se o serviço do nó Bytecoin estiver em execução e o blockchain estiver sincronizado.

Se tudo funcionou corretamente, você deverá ver as seguintes mensagens na tela:

[master] Pool spawned on 8 thread(s)

[charts] Started

[api] API started & listening on port 8117

[api] Stat collection finished: 20 ms redis, 21 ms daemon

[api] Broadcasting to 0 visitors and 0 address lookups

[payments] Started

[payments] No workers' balances reached the minimum payment threshold

[unlocker] Started

[unlocker] No blocks candidates in redis

[charts] Started

[chartsDataCollector] Started

[pool] (Thread 2) New block to mine at height 1452666 w/ difficulty of 1227080766

O sistema deve agora abrir as portas TCP 3333, 5555 e 7777 para os mineiros da Bytecoin.

Use o seguinte comando para verificar se as portas TCP estão abertas.

# netstat -nl | grep 3333
tcp 0 0 0.0.0.0:3333 0.0.0.0:* LISTEN
# netstat -nl | grep 5555
tcp 0 0 0.0.0.0:5555 0.0.0.0:* LISTEN
# netstat -nl | grep 7777
tcp 0 0 0.0.0.0:7777 0.0.0.0:* LISTEN

Hora de testar nosso pool de mineração.

Vá para outro Ubuntu Linux e instale o software CPUMiner-Multi.

Se você não souber como instalar o minerador de CPU Bytecoin, siga este link.

Use o seguinte comando para iniciar a mineração do Bytecoin no computador mineiro.

# minerd -a cryptonight -o stratum+tcp://34.217.47.134:3333 -u 21eD9nZxjv9QxzoDX4NrVMipPCT3tK5ufgAApefcYYnkAbXoTDSjFxiAxDgwhNbv7ELWfo2GSxm96MyGYq1njk9qPps1DgR -p x

Tenha em mente que você precisa alterar o endereço IP do pool de mineração e o endereço de carteira Bytecoin do computador mineiro.

Using JSON-RPC 2.0

Starting Stratum on stratum+tcp://34.217.66.94:3333

1 miner threads started, using 'cryptonight' algorithm.

Pool set diff to 100

Stratum detected new block

accepted: 1/1 (100.00%), 46.09 H/s at diff 100 (yay!!!)

accepted: 2/2 (100.00%), 45.24 H/s at diff 100 (yay!!!)

Tenha em mente que você precisa alterar o endereço IP do pool de mineração e o endereço de carteira Bytecoin do computador mineiro.

Se tudo funcionou corretamente, você deverá ver as mensagens de confirmação na tela.