WEB3DEV

Cover image for Proton Técnico, Como fazer #1
Jhonattan Farias
Jhonattan Farias

Posted on • Atualizado em

Proton Técnico, Como fazer #1

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

Você poderá então editar o config.ini recém-criado e ver todos os parâmetros disponíveis:

> cd ~/protondata
> nanoconfig.ini
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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.

Latest comments (0)