Executar um nó completo
Como executar na rede principal usando uma imagem pré-construída.
Se você prefere uma configuração simples, hospedade para executar um nó em um dos maiores provedores de nuvem (AWS e GCP), verificar nossa documentação de nós hospedados.
Se você deseja continuar atualizado com todas as notícias que acontecem na comunidade Celo incluindo a validação, operação do nó e governança, por favor, inscreva-se em nossa [lista de e-mails do Celo aqui](https://share. hsforms. com/1Qrhush1vSA2WIamd_yL4ow53n4j).
Você pode adicionar o Calendário público do Celo também que possui datas relevantes.
Nós completos tocam um propósito especial no ecossistema Celo agindo como uma ponte entre as carteiras móveis (executando como clientes leves) e os nós de validador.
Quando um light client envia transações, elas podem incluir uma taxa de gateway a ser paga ao nodo que fofoca as transações para os outros full nodes e validadores.
Por esse motivo, apesar do Celo usar um protocolo proof-of-stake, os usuários podem ganhar criptomoedas sem ter que possuir nenhuma, simplesmente executando um full node.
Incentivos de nó completo ainda não foram habilitados porque o mecanismo de negociação de uma taxa de gateway ainda está em desenvolvimento. Atualmente, os clientes leves são configurados para enviar uma taxa de gateway de 0 e os nós completos são configurados para aceitar uma taxa de gateway mínima de 0.
Pré-requisitos
- Você tem o Docker instalado. Se você ainda não o tem, siga as instruções aqui: Comece com o Docker. Isso envolverá a criação ou login com uma conta Docker, baixando um aplicativo no computador e em seguida, abrir o aplicativo para poder usar o Docker CLI. Se você está executando em um servidor Linux, siga as instruções para a distro aqui. Pode ser necessário executar o Docker com
sudo
dependendo do seu ambiente de instalação.
Código que você verá nesta página são comandos bash e suas saídas.
Quando você vir o texto entre colchetes angulares <>, substitua-os e o texto dentro deles pelo seu próprio valor do que eles se referem. Não inclua o <> no comando.
Redes Celo
Primeiro, vamos configurar as variáveis de ambiente necessárias para a rede mainnet
. Executar:
export CELO_IMAGE=us.gcr.io/celo-org/geth:mainnet
Submeta a imagem do Docker
Vamos usar uma imagem Docker que contém o software do nó Celo neste tutorial.
Se você está reexecutando essas instruções, a imagem Celo Docker pode ter sido atualizada e é importante obter a versão mais recente.
docker pull $CELO_IMAGE
Configurar um diretório de dados
Primeiro, crie o diretório que armazenará a configuração do seu nó e sua cópia da blockchain. Esse diretório pode ter qualquer nome, mas aqui está um padrão que você pode usar. Os comandos abaixo criam um diretório e então naveguem dentro dele. O resto dos passos assumem que você está executando os comandos de dentro deste diretório.
mkdir celo-data-dir
cd celo-data-dir
Criar uma conta e obter seu endereço
Nesta etapa, você criará uma conta na rede. Se você já fez isso e tem um endereço de conta, você pode pular isto e passar para a configuração do seu nó.
Execute o comando para criar uma nova conta:
docker run -v $PWD:/root/.celo --rm -it $CELO_IMAGE account new
Ele solicitará uma frase secreta, solicitará sua confirmação e, em seguida, exibirá o endereço da sua conta: Public address of the key: <YOUR-ACCOUNT-ADDRESS>
Salve esse endereço em uma variável de ambiente, para que você possa referenciá-lo abaixo (não incluir as marcas):
export CELO_ACCOUNT_ADDRESS=<YOUR-ACCOUNT-ADDRESS>
Nota: esta variável de ambiente só persistirá enquanto você tiver esta janela de terminal aberta. Se você quiser que esta variável de ambiente esteja disponível no futuro, você pode adicioná-la ao seu ~/.bash_profile
Inicie o nó
Este comando especifica as configurações necessárias para executar o nó e fazer com que ele comece.
docker run --name celo-fullnode -d --restart unless-stopped --stop-timeout 300 -p 127.0.0.1:8545:8545 -p 127.0.0.1:8546:8546 -p 30303:30303 -p 30303:30303/udp -v $PWD:/root/.celo $CELO_IMAGE --verbosity 3 --syncmode full --http --http.addr 0.0.0.0 --http.api eth,net,web3,debug,admin,personal --light.serve 90 --light.maxpeers 1000 --maxpeers 1100 --etherbase $CELO_ACCOUNT_ADDRESS --datadir /root/.celo
Você vai começar a ver algumas saídas. Após alguns minutos, você deverá ver linhas parecidas com essa. Isso significa que o seu nó começou a sincronizar com a rede e está recebendo blocos.
INFO [07-16|14:04:24.924] Imported new chain segment blocks=139 txs=319 mgas=61.987 elapsed=8.085s mgasps=7.666 number=406 hash=9acf16…4fddc8 age=6h58m44s cache=1.51mB
INFO [07-16|14:04:32.928] Imported new chain segment blocks=303 txs=179 mgas=21.837 elapsed=8.004s mgasps=2.728 number=709 hash=8de06a…77bb92 age=6h33m37s cache=1.77mB
INFO [07-16|14:04:40.918] Imported new chain segment blocks=411 txs=0 mgas=0.000 elapsed=8.023s mgasps=0.000 number=1120 hash=3db22a…9fa95a age=5h59m30s cache=1.92mB
INFO [07-16|14:04:48.941] Imported new chain segment blocks=335 txs=0 mgas=0.000 elapsed=8.023s mgasps=0.000 number=1455 hash=7eb3f8…32ebf0 age=5h31m43s cache=2.09mB
INFO [07-16|14:04:56.944] Imported new chain segment blocks=472 txs=0 mgas=0.000 elapsed=8.003s mgasps=0.000 number=1927 hash=4f1010…1414c1 age=4h52m31s cache=2.34mB
Você estará totalmente sincronizado com a rede depois de obter o último número de bloqueio, que pode ser consultado visitando Network Stats ou Block Explorer páginas.
Segurança: A linha de comando acima inclui o parâmetro --http.addr 0.0.0.
o que faz o software Celo Blockchain escutar solicitações de RPC recebidas em todos os adaptadores de rede. Exerça extrema cautela ao executar isso quando estiver executando fora do Docker, pois significa que quaisquer contas desbloqueadas e seus fundos podem ser acessados por outras máquinas na Internet. No contexto de executar um contêiner do Docker na sua máquina local, isso junto com os sinalizadores docker -p
permite que você faça chamadas RPC fora do contêiner, i. do seu anfitrião, mas não do lado de fora da sua máquina. Leia mais sobre a Rede Docker aqui.
Running an Archive Node
Se você deseja executar um nó de arquivo para celo-blockchain
, execute o seguinte comando:
docker run --name celo-fullnode -d --restart unless-stopped --stop-timeout 300 -p 127.0.0.1:8545:8545 -p 127.0.0.1:8546:8546 -p 30303:30303 -p 30303:30303/udp -v $PWD:/root/.celo $CELO_IMAGE --verbosity 3 --syncmode full --gcmode archive --txlookuplimit=0 --cache.preimages --http --http.addr 0.0.0.0 --http.api eth,net,web3,debug,admin,personal --light.serve 90 --light.maxpeers 1000 --maxpeers 1100 --etherbase $CELO_ACCOUNT_ADDRESS --datadir /root/.celo
Nós adicionamos as seguintes flags: --gcmode archive --txlookuplimit=0 --cache.preimages
No celo-blockchain
, isso é chamado de gcmode que se refere ao conceito de coleta de lixo. Definindo-o como arquivo, basicamente, o desliga.
Interface de Linha de Comando
Uma vez que o nó completo estiver rodando, ele pode servir a ferramenta de Interface de linha de comando celocli
. Por exemplo:
$ npm install -g @celo/celocli
...
$ celocli node:synced
true
$ celocli account:new
...
Light Client Serving
Os clientes Light podem se conectar a você enquanto as pessoas executam a Celo Mobile Wallet e você começará a ganhar taxas de gateway para quaisquer transações que esses usuários iniciarem, o que você pode ler mais sobre no documento Full Node Incentives. A conta que este nó anuncia para clientes leves a usarem nestas taxas é dada pelo parâmetro etherbase
. O parâmetro light.serve
define a porcentagem de tempo que este nó deve gastar servindo clientes lights. Valores válidos são 0-100. Se este nó está tendo problemas para pegar o bloco atual, uma porcentagem menor pode ajudar. A llight.maxpeers
e maxpeers
definem limites no número de clientes leves e nós completos que o node irá aceitar.