A execução da infraestrutura EOSIO para dar suporte à Proton Blockchain pode ser um pouco assustadora no início. Esta série de artigos visa desmistificar a infraestrutura e os requisitos operacionais necessários para executar serviços estáveis para a Proton Blockchain.
É claro que esses artigos não são apenas para os criadores de blocos, eles também são para desenvolvedores, provedores de serviços e DApps que podem precisar de uma direção sobre como começar com a Proton Blockchain.
Certifique-se de se conectar com outros membros da comunidade técnica da Proton juntando-se ao telegram da Proton Testnet → Aqui
Saiba mais sobre a Proton e seus objetivos de ser a blockchain de pagamentos mais reconhecida na indústria → Aqui
Vamos lá! Esta primeira edição mostrará como começar a construir um nó na testnet pública da Pronton.
Como configurar um nó na Testnet pública.
A Proton Testnet tem requisitos de sistema relativamente baixos em comparação com a Mainnet, no entanto, é totalmente funcional com Proton Tokens disponíveis gratuitamente e, portanto, um local ideal para se familiarizar com o software e a própria rede.
Requisitos da rede de teste
Hardware
- 4 Core CPU / 4Ghz+ recomendado se você quiser produzir blocos
- Disco de 128 GB / De preferência SSD ou NVMe
- 4 GB de RAM
Sistema operacional (somente baseado em Linux)
- Amazon Linux 2
- CentOS 7
- CentOS 7.x
- CentOS 8
- Ubuntu 16.04
- Ubuntu 18.04 (recomendado)
- Ubuntu 20.04 (recomendado)
- Mac OS 10.14 (Mojave)
- Mac OS 10.15 (Catalina)
Internet
- Conexão moderna de banda larga/fibra (1Mb/s e acima)
- Endereço IP público estático (terminando neste nó ou encaminhado com NAT)
Construa o software
A Proton Blockchain usa o software EOSIO de código aberto disponível gratuitamente e fornecido pelo block.one.
Atualmente, a versão do software do criador de blocos Proton aceita é v2.1.0.
A tag de compilação mais recente está sempre disponível no repositório EOSIO no GitHub.
Processo de construção
Há duas maneiras sugeridas de instalar o software EOSIO necessário em seu servidor: compilar a partir da fonte usando um script do eosio ou instalar a partir de um arquivo .deb pré-compilado.
O exemplo abaixo usa o Linux Ubuntu para construir o software eosio a partir da fonte via script, seguindo o processo abaixo:
> cd~
> git clone https://github.com/EOSIO/eos.git
> cd eos
> git checkout v2.1.0
> git submodule update --init --recursive
> scripts de cd
> ./eosio_build.sh -P
#Os arquivos binários estão em ~/eos/build/programs
#Se você deseja instalar
> ./eosio_install.sh
Como a opção -P
é usada no script de compilação acima, isso pode levar algum tempo para compilar, pois será compilado com clang e libcxx fixados
O exemplo abaixo usa o Linux Ubuntu para instalar o software eosio a partir de um arquivo .deb pré-compilado.
> wget [https://github.com/eosio/eos/releases/download/v2.1.0/eosio_2.1.0-1-ubuntu-20.04_amd64.deb](https://github.com/eosio/eos/releases/download/v2.1.0/eosio_2.1.0-1-ubuntu-20.04_amd64.deb)
> sudo apt install ./eosio_2.1.0-1-ubuntu-20.04_amd64.deb
#Para desinstalar
> sudo apt remove eosio
Configuração
Agora que uma compilação limpa do software eosio foi feita, vamos configurar o nó da Proton para operação.
Para configurar e iniciar o nó da Proton será usado o nodeos
. O nodeos
é o serviço daemon principal que é executado em cada nó da Proton Blockchain.
O nodeos
pode ser configurado para processar contratos inteligentes, validar transações, produzir blocos contendo transações válidas e confirmar blocos para registrá-los na blockchain. Você pode ler mais sobre isso aqui.
As principais funções operacionais do nodeos
são; se executar como um produtor de bloco, endpoint da API de rede, nó-semente P2P ou nó de histórico-estado. Normalmente, em uma rede ocupada como a Proton Mainnet, você separaria essas funções em servidores fisicamente discretos.
Neste exemplo da Proton Testnet, você fará com que seu nó se conecte a outros pares de rede, ofereça um serviço de nó-semente P2P e disponibilize o nó como um endpoint da API de rede. Este nó não fornecerá suporte a consultas de dados históricos.
O nodeos
requer dois arquivos para se conectar a pares e rodar na Proton Testnet:
config.ini
Crie um config.ini
padrão executando nodeos
sem um arquivo de configuração, conforme o comando abaixo:
> mkdir ~/protondata
> nodeos --data-dir ~/protondata --config-dir ~/protondata
Você poderá então editar o config.ini
recém-criado e ver todos os parâmetros disponíveis:
> cd ~/protondata
> nanoconfig.ini
Agora edite o config.ini
e adicione as seguintes configurações:
wasm-runtime = eos-vm-jit
chain-state-db-size-mb = 16384
chain-state-db-guard-size-mb = 1024
enable-account-queries = true
http-server-address = 0.0.0.0:8888
access-control-allow-origin = *
access-control-allow-headers = Origin, X-Requested-With, Content-Type, Accept
http-max-response-time-ms = 100
verbose-http-errors = true
http-validate-host = false
p2p-listen-endpoint = 0.0.0.0:9876
p2p-peer-address = testnet.protonchain.com:9876
p2p-peer-address = peer1-proton-testnet.eosphere.io:9876
p2p-peer-address = peer.protontest.alohaeos.com:9876
p2p-peer-address = protontestnet.greymass.com:59876
p2p-peer-address = p2p-testnet-proton.eosarabia.net:9876
p2p-peer-address = testnet.proton.eosdetroit.io:1337
p2p-peer-address = proton-bp.dmail.co:7676
p2p-peer-address = test.proton.eosusa.news:19889
p2p-peer-address = protonp2p-testnet.eoscafeblock.com:9130
p2p-peer-address = proton-testnet.eosio.cr:9878
agent-name = "<seunome> Proton Testnet"
max-clients = 100
sync-fetch-span = 500
plugin = eosio::http_plugin
plugin = eosio::history_api_plugin
plugin = eosio::history_plugin
plugin = eosio::chain_plugin
plugin = eosio::chain_api_plugin
genesis.json
Esses são os parâmetros de estado iniciais exigidos por cada novo nó inicial na Proton Testnet. Crie o arquivo conforme abaixo:
cd ~/protondata
nano genesis.json
Adicione os seguintes parâmetros ao arquivo genesis.json
para a Testnet pública da Pronton:
{
"initial_timestamp": "2020-04-03T17:00:00",
"initial_key": "EOS55SwgLfr9jkwdr2UDncPESQVs3MdDidcLionvogHvCPJ3FDb48",
"initial_configuration": {
"max_block_net_usage": 1048576,
"target_block_net_usage_pct": 1000,
"max_transaction_net_usage": 524288,
"base_per_transaction_net_usage": 12,
"net_usage_leeway": 500,
"context_free_discount_net_usage_num": 20,
"context_free_discount_net_usage_den": 100,
"max_block_cpu_usage": 200000,
"target_block_cpu_usage_pct": 2000,
"max_transaction_cpu_usage": 150000,
"min_transaction_cpu_usage": 100,
"max_transaction_lifetime": 3600,
"deferred_trx_expiration_window": 600,
"max_transaction_delay": 3888000,
"max_inline_action_size": 4096,
"max_inline_action_depth": 4,
"max_authority_depth": 6,
"max_ram_size": 34359738368
}
Executando o Nodeos.
Agora que o config.ini
foi configurado e os parâmetros iniciais da Testnet da Proton blockchain foram criados no arquivo genesis.json
, você pode então ingressar na rede e sincronizar o nó.
Use o GNU Screen para manter sua sessão ativa mesmo quando você se desconectar, com seu uso descrito abaixo:
# Criar uma nova sessão de tela
> tela -US proton
# Desconectar sessão de tela
> ctrl-a+d
# Reconectar sessão de tela
> tela -r proton
Execute o nodeos
com ponteiros para os arquivos de configuração, diretório de dados e genesis:
> nodeos --data-dir ~/protondata --config-dir ~/protondata --genesis-json ~/protondata/genesis.json
Seu nó da Proton Testnet agora começará a sincronizar com os pares configurados até que ele alcance e esteja atualizado com a Testnet da Proton Blockchain.
A próxima edição do Proton Técnico, como fazer.. examinará o papel dos registros de estado do banco de dados e como eles podem agilizar a sincronização de um nó.
Certifique-se de fazer qualquer pergunta no EOSphere Telegram
O EOSphere é um produtor de blocos na Mainnet da Proton Blockchain, bem como em muitas outras redes baseadas em EOSIO.
Se você achar nosso trabalho útil, vote em nós na Proton Mainnet: eosphere
Conecte-se com EOSphere através destes canais:
TELEGRAM | MEDIUM | YOUTUBE | FACEBOOK | TWITTER | INSTAGRAM
Este artigo foi escrito por (Ross Dold) e traduzido por Jhonattan Farias, você pode encontrar o artigo original aqui.
Oldest comments (0)