Um guia rápido sobre como iniciar o nó Chainlink

Nov 28 2022
O que é um oráculo em blockchain?
Oráculos são feeds de dados que trazem dados de fontes de dados fora do blockchain (off-chain) e os colocam no blockchain (on-chain) para uso em contratos inteligentes. Isso é necessário porque os contratos inteligentes executados no Ethereum não podem acessar informações armazenadas fora da rede blockchain.
Imagem original de Shubham Dhage

Oráculos são feeds de dados que trazem dados de fontes de dados fora do blockchain (off-chain) e os colocam no blockchain (on-chain) para uso em contratos inteligentes. Isso é necessário porque os contratos inteligentes executados no Ethereum não podem acessar informações armazenadas fora da rede blockchain.

Ok, que tipo de oráculos existem?

Oráculos podem ser centralizados e descentralizados. Os oráculos centralizados são controlados por uma pessoa e, na maioria das vezes, podem estar localizados em um único servidor. Os oráculos descentralizados consistem em vários servidores controlados por diferentes organizações, que por sua vez tomam uma decisão geral do oráculo com base no consenso.

A rede oracle mais popular é a Chainlink . Vou te dizer como implantar seu oráculo. Vamos começar instalando o nó neste artigo.

As redes oracle descentralizadas Chainlink fornecem entradas, saídas e cálculos invioláveis ​​para dar suporte a contratos inteligentes avançados em qualquer blockchain.

Para executar um nó, você pode usá-lo em seu computador para testes locais ou executar uma versão de produção em um servidor em nuvem. Neste guia, considerarei a opção de executar um nó em um VPS.

Criei na DigitalOcean droplet e Database Cluster for PostgreSQL.

Painel da DigitalOcean

Para um nó, a Chainlink recomenda os seguintes requisitos de sistema:

  • Mínimo: Para começar a executar um nó Chainlink, você precisará de uma máquina com pelo menos 2 núcleos e 4 GB de RAM.
  • Recomendado: os requisitos para executar um nó Chainlink são dimensionados conforme o número de trabalhos que seus serviços de nó também são dimensionados. Para nós com mais de 100 trabalhos, você precisará de pelo menos 4 núcleos e 8 GB de RAM.
  • Mínimo: Pelo menos 2 núcleos, 4 GB de RAM e 100 GB de armazenamento.
  • Recomendado: para suportar mais de 100 trabalhos, seu servidor de banco de dados precisará de pelo menos 4 núcleos, 16 GB de RAM e 100 GB de armazenamento.

curl -sSL https://get.docker.com/ | sh
sudo systemctl start docker
sudo usermod -aG docker $USER
exit
# log in again

mkdir ~/.chainlink

Estarei executando um nó para o Ethereum Mainnet. Portanto, especificarei o parâmetro ETH_CHAIN_ID=1 . Para descobrir de quem é o ID no seu caso, você precisa encontrá-lo no site chainlist.org

Exemplo para Ethereum Mainnet

Vamos criar um arquivo de ambiente e especificar todas as variáveis ​​necessárias:

echo "ROOT=/chainlink
LOG_LEVEL=debug
ETH_CHAIN_ID=1
CHAINLINK_TLS_PORT=0
SECURE_COOKIES=false
ALLOW_ORIGINS=*" > ~/.chainlink/.env

Além disso, precisamos de um cliente Ethereum, podemos executá-lo localmente ou usar serviços de terceiros como Alchemy , Infura , QuikNode , Chainstack , Moralis .

Prefiro usar o Alchemy por suas tarifas convenientes com limites altos, capacidade de resposta rápida do nó e painel informativo.

preços de alquimia

Para trabalhar com o Alchemy, você precisa criar um novo aplicativo selecionando a cadeia e a rede.

Janela de criação de aplicativo no Alchemy

Quando o aplicativo foi criado, as análises estarão disponíveis no painel. Para interagir com o nó, precisaremos exportar um link para conectar via WebSockets.

painel de alquimia

Nas configurações, você precisa encontrar o link: wss://<URL>

Vamos adicionar uma conexão ao nó Ethereum à configuração do Chainlink:

echo "ETH_URL=wss://<URL>" >> ~/.chainlink/.env

Se você estiver testando, pode adicionar ?sslmode=disableao final da URL. No entanto, você nunca deve fazer isso em um nó de produção.

Modelo de string de conexão:

postgresql://$USERNAME:$PASSWORD@$SERVER:$PORT/$DATABASE

echo "DATABASE_URL=postgresql://$USERNAME:$PASSWORD@$SERVER:$PORT/$DATABASE" >> ~/.chainlink/.env

A versão atual no momento da escrita é 1.10.0. Ver a última versão atual está disponível no link .

Se o nó for iniciado sob o usuário root, você deve selecionar apenas as versões root das imagens.

Para alterar a versão, substitua o parâmetro pela versão desejada:

smartcontract/chainlink:<versão>

No meu caso, por exemplo, vou rodar a versão root. Para fazer isso, usarei o seguinte comando:

cd ~/.chainlink && docker run -p 6688:6688 -v ~/.chainlink:/chainlink -it --env-file=.env smartcontract/chainlink:1.10.0-root local n

      
                

Em seguida, o nó solicitará que você insira um e-mail e senha para o operador. Se tudo deu certo, o nó será iniciado e veremos um grande número de mensagens no terminal.

Para lançar o nó posteriormente, precisamos salvar as chaves, para isso, vamos parar o nó e realizar as seguintes ações:

Salve o e-mail do operador:

echo "[email protected]" > ~/.chainlink/.api

echo "password" >> ~/.chainlink/.api

echo "my_wallet_password" > ~/.chainlink/.password

cd ~/.chainlink && docker run --restart=always  -p 6688:6688 -d --name chainlink -v ~/.chainlink:/chainlink -it --env-file=.env smartcontract/chainlink:1.10.0-root local n -p /chainlink/.password

Ótimo, o nó está em execução, agora gostaríamos de nos conectar a ele a partir de um dispositivo local. Para fazer isso, você precisa criar um túnel SSH para o servidor com o nó.

ssh <USERNAME>@<IP> -L 6688:localhost:6688 -N

Vamos deixar a aba do terminal aberta e abrir e clicar no link no navegador:http://localhost:6688/

Digite o e-mail e a senha do operador especificados acima.

IU de login do Operador Chainlink

Ótimo, tudo configurado com sucesso!

IU do Operador Chainlink

Agora você pode criar seus oráculos e trabalhos para eles.

No próximo artigo , criei um guia para implantar o oracle e conectá-lo ao node.

Para uma configuração mais específica com acesso seguro à interface do operador e ao desempenho do trabalho oracle, recomendo a leitura dos seguintes links: