DesenvolvimentoPrincipal

Gravity realiza testes de integração com a Binance Smart Chain (BSC)

Apresentamos a integração da Binance Smart Chain (BSC) ao framework de testes Gravity, através do Ankr.

O Gravity lançou recentemente a versão devnet, para testar as próximas atualizações do protocolo e manter a compatibilidade e sincronização com as redes integradas. Neste artigo, analisaremos as principais etapas de incorporação de um novo blockchain à rede.

A integração de uma ampla rede de blockchains, além do Ethereum e da Waves, é um dos pilares que ajudam a manter o agnosticismo de blockchain do protocolo. Buscamos estabelecer uma base técnica adequada, que englobe a maioria dos recursos que possam ser exigidos pelos blockchains, facilitando assim novas integrações.

A Binance lançou recentemente o blockchain público Binance Smart Chain (BSC), que funciona em paralelo com a Binance Chain e permite a criação de contratos inteligentes e de stake de BNB. A BSC é totalmente compatível com a Ethereum Virtual Machine (EVM). Além disso, ela comporta o universo de DApps e ferramentas Ethereum, que facilita a portabilidade dos projetos dessa rede. Nas condições atuais do mercado de criptomoedas, a BSC tem contribuído ao alavancar muitas oportunidades que surgem no DeFi, tornando-se, assim, uma forte candidata para integrar-se à rede Gravity.

Para implantar um nó BSC, a equipe do Gravity utilizou o Ankr, parceiro da Waves. Neste artigo, abordaremos o exemplo da BSC, para demonstrar uma integração sem falhas de um blockchain compatível com a EVM. Também iremos explorar ainda mais o framework de teste de integração. Este framework é o fluxo para adicionar blockchains, que oferecemos aos desenvolvedores de código aberto do Gravity.

Framework de teste de integração 

Atualmente, o framework de teste de integração visa transferências entre blockchains, por meio do gateway agnóstico SuSy. O repositório de testes de integração verifica toda a funcionalidade deste gateway, em um determinado blockchain. Os testes para os contratos são escritos em Golang, usando uma biblioteca de uso geral, testing. Eles possuem, conforme explicado no artigo sobre o framework, o seguinte princípio básico:

Para testar uma funcionalidade específica, por exemplo, parte da lógica do NEBULA-SC, que implementa verificação de dados no blockchain Ethereum, seria necessário implantar um nó Ethereum, implantar contratos, simular o estado requerido e chamar várias operações de verificação, esperando uma resposta precisa ao final do teste.

Se um conjunto de testes, executados em um blockchain recém-integrado, for bem-sucedido, todos os estágios da integração implementada, começando com a lógica que implementa a leitura do blockchain (extração) e terminando com a verificação de dados na rede, também devem ser considerados bem-sucedidos. O código, que foi depurado usando o framework, poderá ser reutilizado para integrar um novo blockchain-alvo e seus contratos inteligentes na rede Gravity. Isso será descrito com detalhes nos próximos artigos.

Visão geral da integração BSC

Preparando contas e infraestrutura

Inicialmente, iremos mostrar as etapas de integração e testes do Gravity, na testnet Binance Smart Chain, usando o nó Binance Smart Chain, fornecido pelo Ankr.

Para executar testes em sua máquina ou em um servidor, certifique-se de ter docker & docker-compose instalados e disponíveis para uso. Para facilitar, fornecemos uma conta com fundos no blockchain Binance: 0x657FeC03D0a19Ad719903E3ee1339B762627100d (link para o BSC explorer). Mas caso não haja fundos suficientes, poderá ser necessário arrecadá-los com moedas de teste (BNB), através de uma faucet de BNB.

Caso você queira utilizar sua própria conta testnet para conduzir os testes, use este guia, que explica como criar uma conta testnet na Binance, através da carteira Math, e financiá-la com BNBs testnet. Após criar a conta, exporte sua chave privada como arquivo de texto ,nas configurações da carteira Math, e cole a chave no arquivo ./integration-tests/solidity/0.7/config.bsc-testnet.json, substituindo a primeira chave privada do oracle (“oraclepk”).

Gravity Framework test Binance Smart Chain oraclepk

Preparando um nó e executando testes

O Ankr fornece soluções para implantar nós de vários blockchains. É altamente recomendável que você implemente seu próprio nó Binance Smart Chain para interagir com a testnet BSC.

1. Primeiramente, acesse ankr.com e clique no botão Deploy A Node.

Gravity Framework test Binance Smart Chain Ankr2. Procure o Binance card, passe o mouse sobre ele e pressione o botão Deploy próximo a Smart Chain Full Node

Gravity Framework test Binance Smart Chain Ankr

3. Antes do lançamento, configure seu nó para o modo Testnet & Fast Sync e escolha um método de pagamento para os serviços Ankr (depósito ou cobrança diária). Após o pagamento, salve o API URL do nó.

Gravity Framework test Binance Smart Chain Ankr

4. Cole o API URL do nó no arquivo ./integration-tests/solidity/0.7/config.bsc-testnet.json, substituindo o endpoint padrão.

Gravity Framework test Binance Smart Ankr endpoint

5. Por fim, execute o bash-script test-bsc-testnet.sh, para implantar e testar os contratos na testnet BSC.

Gravity Framework test Binance Smart Ankr

Portanto, como mostra a imagem acima, todos os testes passaram com sucesso. Isso significa que o código-fonte do Gravity é totalmente compatível com a Binance Smart Chain, e está pronto para a próxima etapa de integração.

Modificando o código-fonte dos contratos Gravity

O framework de teste de integração já contém um código compilado de contratos inteligentes Gravity. Em alguns casos, o código precisa ser reescrito para garantir a compatibilidade com um determinado blockchain. Ao modificar o código-fonte dos contratos, execute recompile.sh. O script de compilação produzirá um build em um contêiner para as versões 5 e 7 do compilador Solidity, bem como utilitários abigen: observe que os contratos têm uma ABI (application binary interface – interface binária do aplicativo) pré-formada. Eles podem ser encontrados, por exemplo, em rh_tests / api / nebula para NEBULA-SC, ou rh_tests / api / ibport para o IB-Port (um exemplo de USER-SC). A compilação pode levar um tempo considerável durante a primeira execução.

Em suma, este artigo explicou como a BSC pode ser testada, a partir do framework de teste de integração, que permite a implementação e teste de contratos Gravity. Acreditamos que este framework facilita o trabalho de colaboradores externos, garantindo uma expansão mais rápida do ecossistema Gravity. No próximo artigo sobre a integração com a BSC, explicaremos como finalizar a integração, adicionando o blockchain-alvo à interface do Gravity Core e implementando todos os contratos inteligentes necessários para contas testnet BSC.

Fique ligado!

Para mais informações, você pode ler o Whitepaper do Gravity, visitar o site, nos seguir no TwitterTelegram ou entrar em contato através do email press@gravity.tech


Faça parte da comunidade Waves Brasil!

Telegram
Twitter
Facebook
Instagram