Apresentando o Darwinia Universal Cross-Chain Messaging SDK

kanbeok
Darwinia Network Brasil
5 min readAug 10, 2022

Introdução

Temos o prazer de anunciar o Darwinia Universal Cross-Chain Messaging SDK, uma biblioteca de solidity que fornece um caminho mais fácil para que aplicações descentralizadas se tornem aplicações cross-chain. Os desenvolvedores podem integrar as capacidades de mensagens intercadeia em seus Dapps novos ou existentes simplesmente importando o SDK.

O SDK abstrai as partes técnicas do LCMP e outros protocolos de cross-chain para desenvolvedores, reduzindo o nível de dificuldade para sua utilização. Ele permite que os desenvolvedores se concentrem em integrar apenas as capacidades necessárias, a partir das blockchains que os fornecem.

Atualmente implementamos o Substrate-based Messaging SDK, que fornece um wrapper para LCMP em Substrate.

Camadas técnicas

O Substrate-based Messaging SDK (S2S SDK) é implementado em solidity (mostrado em cor rosa pink). Ele chama os Darwinia Messaging Modules através de contratos pré-compilados na Darwinia Smart Chain (EVM). Os Darwinia Messaging Modules são uma série de paletes executados na cadeia baseada em Substrate, que utilizam o protocolo LCMP para agrupar e transmitir mensagens cross-chain.

O SDK (E2E SDK) compatível com EVM para uso geral está atualmente em desenvolvimento. Ele é baseado em um conjunto de implementações LCMP desenvolvidas inteiramente para o EVM. A camada subjacente não depende de substrate, o que significa que ela pode funcionar em qualquer blockchain compatível com EVM. Deve-se observar que o E2E SDK não se destina a substituir o S2S SDK. Escolhemos a melhor camada tecnológica de base para diferentes plataformas, e esperamos eventualmente fornecer aos desenvolvedores uma interface unificada de operação em cross-chain.

Além disso, nossa funcionalidade cross-chain está atualmente utilizando LCMP, mas também estamos explorando o suporte para diferentes protocolos cross-chain, veja What is DARWINIA? para mais informações.

Estrutura

Os desenvolvedores de Dapps só precisam implantar um endpoint contract nas cadeias de origem e destino para usar as capacidades fornecidas pelo SDK.

Um endpoint é um ponto de entrada de operação cross-chain. Ele é preparado e implantado pelos desenvolvedores do Dapp. Um endpoint representa uma ponte entre a cadeia local e a cadeia remota. Portanto, se um Dapp precisa interagir com várias cadeias, você precisa preparar vários pares de endpoint, cada par de endpoint será responsável por interagir com uma cadeia.

Implementing an endpoint is very simple, just inherit an abstract contract and implement some simple functions. You can see an example here, and we also provide a guide, so you can start right away.

Implementar um endpoint é muito simples, basta herdar um contrato abstrato e implementar algumas funções simples. Você pode ver um exemplo aqui, e nós também fornecemos um guia, para que você possa começar imediatamente.

Why do Dapp developers need to implement endpoints themselves? Because the endpoint needs to have access control. Dapp developers can add permissions according to their own needs. Also, If others can call your endpoint’s functions or modify your endpoint parameters, it is definitely not safe! So, an access control strategy should be added to endpoints to restrict access to their functions. For example, you can use openzeppelin’s access-control to limit access to endpoints to only certain accounts.

Por que os desenvolvedores do Dapp precisam implementar eles mesmos os endpoints? Porque o endpoint precisa ter controle de acesso. Os desenvolvedores do Dapp podem adicionar permissões de acordo com suas próprias necessidades. Além disso, se outros podem chamar as funções do seu endpoint ou modificar seus parâmetros de endpoint, definitivamente não é seguro! Portanto, uma estratégia de controle de acesso deve ser adicionada aos endpoints para restringir o acesso a suas funções. Por exemplo, você pode usar o controle de acesso do openzeppelin para limitar o acesso aos endpoints apenas a determinadas contas.

Você só precisa implantar seus pares de endpoint uma única vez, pois estes endpoint podem ser compartilhados por seus contratos.

Depois que os endpoints são estabelecidos com o respectivo endereço contratual de sua contraparte, eles podem se comunicar cross-chain uns com os outros.

Caso de uso

A HelixBridge utilizou o Darwinia Universal Cross-Chain Messaging SDK para implementar transferências cross-chain de ativos. HelixBridge é uma plataforma segura e fácil de usar para transferências de ativos cross-chain. Integra os melhores projetos de transferência de ativos da indústria, fornecendo aos usuários uma lista filtrada de pontes de ativos e um portal de transferência cross-chain de ativos.

HelixBridge gerencia transferências cross-chain de ativos usando o modelo Cryptocurrency Backed Asset (CBA), que tem várias funções que requerem interação entre cadeias:

  • Register token. Registre um tipo de token para a ponte.
  • Remote issuing. O método de emissão na cadeia alvo é chamado remotamente através do SDK.
  • Confirmation. A cadeia alvo chama de volta o método de confirmação da cadeia fonte.

O futuro

  • EVM-compatible Messaging SDK
    A camada subjacente é completamente implementada em solidity e pode funcionar em qualquer cadeia compatível com EVM, como ETHEREUM, BSC, etc., e pode fornecer uma gama mais ampla de capacidades cross-chain.
  • XCM support
    Cross-Consensus Message (XCM) é um formato de mensagem inter-cadeia de uso geral desenvolvido pela Polkadot que define uma linguagem para a transferência de mensagens entre duas blockchains interoperáveis. O XCM não é específico do Polkadot, ele pretende ser uma linguagem genérica e extensível entre diferentes sistemas de consenso. Darwinia também utilizará este formato para definir mensagens cross-chain .
  • Hybrid Message Routing
    A visão de cross-chain da Darwinia não se limita ao ecossistema Polkadot, mas está voltada para a expansão para múltiplos ecossistemas no futuro. O ciclo de vida de uma mensagem cross-chain pode abranger múltiplos ecossistemas. Portanto, existirá um sistema híbrido de roteamento. O SDK Messaging fornecerá um conjunto de bibliotecas que suportam o roteamento híbrido para simplificar o empacotamento de mensagens.

Sobre Darwinia

Github | Website | Medium | Twitter | Telegram

A Darwinia é uma infraestrutura de mensagens cross-chain, que fornece uma rede de mensagens cross-chain baseada em light client, programável e universal para aplicações descentralizadas. Recentemente, nos implantamos o Darwinia’s light-client cross-chain messaging protocol(LCMP) com sucesso, de modo a estabelecer a ponte de mensagens cross-chain entre cadeias baseadas em substrate, e mesmo entre cadeias baseadas em substrate e cadeias EVM. A Darwinia fornece aos desenvolvedores um SDK, e os desenvolvedores podem facilmente integrar as capacidades cross-chain em seus DApps. Isto terá implicações profundas para a interoperabilidade cross-chain, e a Darwinia atuará como uma infraestrutura cross-chain de mensagens para estimular a construção de uma rede cross-chain híbrida para a Polkadot.

Traduzido do inglês para o português por mariana.dot.

Link para acesso ao artigo original:

https://medium.com/darwinianetwork/introducing-the-darwinia-universal-cross-chain-messaging-sdk-e9b24374f073

--

--