「Entendendo a Ponte Darwinia 1–5」Um Guia Prático de Como Rodar um Bridger Node

kanbeok
Darwinia Network Brasil
8 min readDec 13, 2021

Em um artigo anterior, introduzimos nosso novo design de um mercado de taxas de relayer, que oferece aos usuários uma nova maneira de participar do ecossistema de Darwinia ganhando. Como o lançamento do Bridger está próximo, fizemos um tutorial sobre como administrar seu próprio Bridger Node de modo a ajudá-lo a se familiarizar com o processo.

Os Relayers (também conhecido como Bridgers) da rede Darwinia Network são worker clients externos a cadeia que retransmitem os cabeçalhos e as mensagens entre a cadeia de origem e a cadeia de destino. Eles têm acesso a ambas as cadeias e transferem os dados em ambas as direções. O Darwinia Bridger é uma implementação do relayer client escrita em Rust. A seguir estão as etapas de instalação e configuração em um bridger de Substrate-a-Substrate.

DISCLAIMER: Existe a possibilidade de você perder seu patrimônio devido a muitos fatores. Faça sua pesquisa e participe por sua própria conta e risco. Aconselhamos vivamente que você faça um teste na ponte de teste de Pangolin-Pangoro antes de ir para a ponte da rede principal.

Pré-requisitos

Algumas habilidades são requeridas para operar um bridger node. Se você é um validador Darwinia/Crab, você já teve sua habilidade constatada. Você pode usar a seguinte lista de verificação como referência.

  • Dominar comandos básicos Linux/Unix
  • Habilidade em operação básica Docker
  • Conhecimento sobre conceitos de chaves privadas, chaves públicas e contas em blockchains
  • Ser capaz de inscrever e enviar um extrínseco em blockchains baseadas em Substrate

Visão geral

Para executar um bridger node com sucesso, você passará por muitas etapas. Apresentamos aqui um a visão geral com a lógica por trás das etapas para que você tenha como referência. O manual detalhado estará na próxima seção.

Um bridger se conecta às cadeias de origem e destino e submete as transações/extrínsecas a ambas as redes, portanto, é necessária uma conta para cada rede. As chaves privadas de suas contas serão definidas no arquivo de configuração.

O relayer será recompensado por seu trabalho e punido (cortado) se não tiver cumprido a tarefa. Portanto, o titular da conta deve bloquear algumas garantias (collateral) e se inscrever como um relayer em ambas as cadeias, o que pode ser feito apresentando um extrínseco (enrollAndLockCollateral) em ambas as cadeias.

Para efetuar o trabalho você precisa executar e manter um bridger node, seja localmente, seja em uma cloud machine. Você pode tanto construir seu próprio executável a partir do código fonte ou usar a imagem docker.

Ao executar seu relayer node, você pode escolher entre diferentes estratégias. Algumas estratégias dependem dos dados das taxas de transação em tempo real. Você precisa solicitar os tokens de acesso para solicitar tais dados de oráculos.

Passos

Preparação das contas

Recomendamos a extensão do chrome Polkadot{.js} e a ferramenta de linha de comando subkey para a gestão de sua conta. Um tutorial detalhado (em inglês) sobre este tópico pode ser encontrado em nosso site de documentação.

Vamos criar uma conta Substrate a partir de uma frase mnemônica de 12 palavras em Polkadot{.js}. Enquanto isso, escreva a frase mnemônica para a geração da chave privada em etapas posteriores. Você pode usar uma conta para ambas as redes ou criar uma para cada rede. Aqui nós criamos contas diferentes para redes diferentes.

Suponha que tenhamos usado Polkadot{.js} para criar uma conta account1 com uma frase mnemônica mnp1 para a rede Pangolin. Use a subchave da ferramenta de linha de comando para obter a chave privada correspondente prvt1. Uma chave privada (prvt1 and prvt2) é um número com 256-bit no formato de “0x….”. Uma parte Seed secreta é o que chamamos chave privada (private key).

Você pode ver o endereço de sua conta ao conectar-se à rede designada. addr1 começa com ‘5’ e addr2 começa com ‘2’. Você precisará destes endereços ao solicitar os tokens de teste.

Solicitação de Tokens de Teste & Chaves API de Subscan

  • PRING para a Rede Pangolin

Refer to this article to apply for 100 PRINGs from the faucet.

  • ORING para a Rede Pangoro

Email your Pangoro address and reason to ran.ji@itering.com

  • Chave API Subscan para Custos de Transação do Oráculo

Vá a https://docs.api.subscan.io/#introduction para preencher um formulário do Google para solicitar uma chave API Subscan gratuita.

Inscrição por Bloqueio de Garantias (Collateral)

Depois de criar sua conta e obter alguns tokens, você pode visitar o portal Substrate para se conectar à rede de Pangolin e se inscrever.

Para se inscrever, siga a ordem na captura de tela abaixo. Você precisa especificar seus próprios valores para o lockCollateral e relayFee. A taxa de revezamento é o mínimo de corrente para relayFee é 15. Quanto mais lockCollateral você bloquear, mais ordens você poderá tomar simultaneamente.

Envie a transação firmando-a, e você se torna um relayer válido (designado) na rede Pangolin.

Em seguida, mude para a rede de Pangoro e faça exatamente o mesmo para se tornar um relayer designado na rede de Pangoro.

Instalação

Há várias maneiras de instalar Bridger. Você pode baixar e instalar um binário, construir a partir do código fonte, ou puxar uma imagem Docker.

  • Download a partir das versões GitHub

Baixe a última versão do binário. Você também pode encontrar o número da VERSÃO lá, que é um parâmetro nas seguintes linhas de comando.

  • Puxe a imagem Docker

Execute o seguinte comando.

docker pull quay.io/darwinia-network/bridger:<VERSION>

NOTE: você deve substituir <VERSION> com o número da versão mais recente. No momento da publicação deste artigo, a última versão é a v0.4.8.

  • Construir a partir da fonte
$ git clone <https://github.com/darwinia-network/bridger.git>
$ cd bridger/
$ cargo build --release

NOTE: Por favor, use a nightly toolchain mais recente. Você pode querer mudar a cadeia de ferramentas padrão usando rustup default nightly,algumas pontes precisam de apoio wasm, você pode correrrustup target add wasm32-unknown-unknown.

Configuração

O bridger executável estará na pasta alvo/liberação se a compilação for concluída com sucesso. Você está livre para mover o executável para um caminho apropriado em sua máquina.

De acordo com as cadeias específicas de origem e destino, Darwinia Bridger pode ser configurada para diferentes tipos de relayers. Aqui demonstraremos apenas a configuração para o Pangolin-Ropsten Bridger.

Em seguida, crie uma pasta para arquivos de configuração e armazenamento de dados, e copie o arquivo modelo para a pasta recém-criada.

$ mkdir ~/.bridger
$ cp .maintain/config/task-pangolin-ropsten.toml ~/.bridger/

Abra e edite o arquivo ‘task-pangolin-ropsten.toml’ para definir os parâmetros. O Bridger é um trabalho em andamento. Alguns parâmetros são para gerenciamento avançado e outros são reservados para futuras extensões. Aqui nós cobrimos apenas os parâmetros mínimos necessários. Recomendamos que você mantenha os parâmetros como estão no modelo, a menos que especificado aqui.

  • A chave privada para a conta em Pangolin (prvt1)

prvt1 tem o formato “0x…”

[Pangolin] ... signer= prvt1

  • A chave privada para a conta em Pangoro (prvt2)

prvt2 tem o formato “0x…”

[Pangoro] ... signer= prvt2

  • Estratégia de Taxa Relay
[task]
# 1800 seconds, 30 minutes
interval_update_fee = 1800
update_fee_strategy = "Nothing"

A estratégia padrão é Nothing, o que significa que sua oferta de preço é o que você define quando se inscreve. Há outras duas estratégias pré-definidas disponíveis, Crazy e Reasonable.

Sob o modo Crazy, você oferecerá um preço de 1 token a um preço inferior ao mais baixo atualmente.

No modo Reasonable, você atualiza sua oferta com base nos preços em tempo real e na relação de troca entre tokens em ambas as cadeias. Tais dados podem ser obtidos a partir de oráculos de terceiros. Se você precisar consultar tais dados do Subscan, você deve solicitar uma chave API e definir como segue.

  • API Key para Subscan

Se você escolheu a estratégia Reasonable, descomente a seção Subcan e use a chave API como token. A chave API do Subscan é um número hexadecimal abraçado por um par de aspas, como “07acae5ae7a467e091c05d8b840313d4”.

[pangolin_subscan] 
endpoint = "https://pangolin.api.subscan.io"
token = subscan_api_key
timeout = 30 [pangoro_subscan]
endpoint = "https://pangoro.api.subscan.io"
token = subscan_api_key
timeout = 30

Rodando

Após definir os parâmetros corretamente, você pode continuar a iniciar um bridger. Você pode dar uma olhada no help primeiro.

$ bridger server --help
bridger-server 0.4.8
Start bridger serverUSAGE:
bridger server [OPTIONS]FLAGS:
--help Prints help information
-V, --version Prints version informationOPTIONS:
--base-path <base-path> The bridger config or data base path
-h, --host <host> Bridger service listen host [default: 127.0.0.1]
-p, --port <port> Bridger service listen port [default: 1098]
  • -base-path Todos os dados bridger, tais como configuração de tarefas e banco de dados, serão armazenados aqui. O caminho padrão é $HOME/.bridger
  • -host O anfitrião do servidor bridger.
  • -port A porta do servidor bridger.

Substitua o host e a porta com o comando que se segue para iniciar de fato um servidor bridger.

$ bridger server --host 127.0.0.1 --port 2021

Se tudo correr bem, você verá algo assim:

Discussão

Uma vez que você tenha se familiarizado com estas operações através do bridger de teste e quando tiver compreendido completamente os possíveis benefícios e riscos de participar do mercado de taxas relay, você pode se tornar um relayer nas principais redes (Darwinia-a-Crab) e ganhar comissões, escolhendo sua estratégia de acordo com seu apetite de risco. Para se tornar um “bridger” Darwinia-para-Crab, você precisa copiar o modelo de arquivo task-darwinia-crab.toml para o caminho base e substituir os parâmetros de acordo. É claro, você tem que se certificar de ter algum RING em sua conta Darwinia e algum CRAB em sua conta Crab.

Tudo o que você precisa saber sobre Darwinia

[Website] [Twitter] [Telegram] [GitHub] [Discord]

Agora temos um canal inteiramente em português no Discord. Nos vemos lá!

Traduzido do inglês para o português por Mariana Kanbe.

Link para acesso ao artigo original:

https://darwinianetwork.medium.com/?p=55ba9ddd386d

--

--