WEB3DEV

Cover image for Desenvolvimento de uma Parachain
Panegali
Panegali

Posted on

Desenvolvimento de uma Parachain

Sua Visão Geral Para o Desenvolvimento de uma Parachain

Este guia abordará a motivação para construir uma parachain ou parathread, as ferramentas disponíveis para facilitar isso, as etapas para testar e, finalmente, como lançar sua rede na Polkadot.

Por que criar uma Parachain?

Parachains são conectadas e protegidas pela Cadeia de Revezamento (Relay Chain). Elas se beneficiam da segurança compartilhada, da governança bem pensada e da escalabilidade geral da abordagem heterogênea da rede. A criação de uma parachain pode ser vista como a criação de uma blockchain de camada 1, que possui sua própria lógica e é executada em paralelo no ecossistema Polkadot.

Os desenvolvedores podem se concentrar na criação de cadeias de última geração que aproveitam a abordagem de próxima geração da Polkadot. Alguns exemplos do que uma parachain poderia ser, são:

  • Aplicações DeFi (Finanças Descentralizadas);
  • Carteiras Digitais;
  • Aplicações IoT (Internet das Coisas);
  • Jogos;
  • Infraestrutura Web 3.0.

e mais.

A Polkadot pretende ser uma aposta contra o maximalismo da blockchain, onde o sucesso da abordagem multi cadeia heterogênea da Polkadot desempenhará um papel fundamental no avanço geral da Web 3.0 e dos sistemas descentralizados. Como resultado, o modelo de parachain da Polkadot foi projetado com a crença de que a internet do futuro terá muitos tipos diferentes de blockchains trabalhando juntas.

Quais são os benefícios de implantar uma Parachain?

O modelo de parachain tenta aliviar cinco falhas principais de construção das stacks de tecnologia atuais, conforme descrito no Whitepaper da Polkadot (Whitepaper é um documento que ajuda a delinear as principais características e especificações técnicas de um projeto de criptomoeda ou blockchain):

  • Escalabilidade: quanto é gasto em recursos e a rede estará sujeita a gargalos?
  • Isolabilidade: as necessidades de muitos são consideradas sob a mesma estrutura?
  • Capacidade de desenvolvimento: as ferramentas do sistema, o suporte do sistema e a integridade geral do sistema são confiáveis?
  • Governança: a rede pode permanecer flexível para evoluir e se adaptar ao longo do tempo? As decisões podem ser tomadas com inclusão, legitimidade e transparência suficientes para fornecer liderança efetiva de um sistema descentralizado?
  • Aplicabilidade: a tecnologia atende a uma necessidade urgente por conta própria? É necessário outro “middleware” (é um software que diferentes aplicações usam para se comunicar umas com as outras) para preencher a lacuna para as aplicações reais?

Segurança Compartilhada (Segurança agrupada)

As parachains podem alugar a segurança da rede Polkadot vinculando DOT para um slot (espaço) de parachain. Isso significa que os custos sociais de construir uma comunidade em torno de seu projeto e convencer os validadores a participar da segurança de sua rede são reduzidos. Polkadot tem forte segurança e projetos de aplicações descentralizadas que desejam se beneficiar dessa segurança gostariam de se tornar uma parachain para compartilhar essa segurança compartilhada.

Governança on-chain (governança bem pensada)

A maioria dos sistemas de governança em blockchains utiliza um mecanismo de governança off-chain. A governança on-chain da Polkadot incentiva a participação máxima dos detentores de token, é transparente e sem atrito. Ela também permite atualizações sem bifurcação.

Escalabilidade

A abordagem de rede multi cadeia fragmentada permite o que é essencialmente computação paralela (poder de processamento) que pode processar várias transações em paralelo. Blockchains isoladas são frequentemente confrontadas com a restrição de rede de processamento de transações em sequência, causando gargalos.

Interoperabilidade

Qualquer aplicação descentralizada ou cadeia que queira permitir o envio de mensagens sem necessidade de confiança (trustless) para outras parachains já conectadas na Polkadot, gostariam de se tornar uma parachain. A interoperabilidade entre cadeias soberanas envolve certas restrições e protocolos complexos para possibilitar uma ampla variedade de cadeias.

Com a Polkadot, você obterá essa funcionalidade pronta para uso se criar seu aplicativo como uma parachain. O formato XCM (Cross-Consensus Message ou Mensagem de Consenso Cruzado) permite que qualquer parachain se comunique passando mensagens entre elas. Além disso, como as pontes para outras cadeias estão conectadas (como aquelas para Bitcoin ou Ethereum), as parachains da Polkadot também poderão se comunicar com elas.

Nota
Apesar dos benefícios de se tornar uma parachain, os desenvolvedores devem estar cientes dos desafios de se tornar uma parachain e construir uma blockchain com o objetivo final de se tornar uma parachain é viável para seu projeto.

Na Polkadot, você é capaz de colocar o bloco mais recente da sua blockchain na cadeia de retransmissão. Como uma parachain, os blocos que você envia são verificados por validadores com um tempo de execução (runtime) Wasm, que pode ser armazenado na cadeia de retransmissão. Você também consegue se comunicar com outras parachains usando o formato XCM: um sistema abstrato de passagem de mensagens. A passagem de mensagens é rastreada na cadeia de retransmissão - como tal, você pode provar a entrega de mensagens e facilitar interações sem confiança necessidade de confiança.

Como você pode colocar o bloco mais recente da sua blockchain, você pode obter uma finalização determinística para sua cadeia. A parte difícil de alcançar a finalização para blockchains tende a ser o consenso, onde, no modelo de parachain, uma blockchain pode descarregar o consenso para a rede compartilhada geral e se concentrar na produção de blocos. Uma vez que os validadores têm o tempo de execução_ _Wasm para todas as parachains, sua parachain compartilha a segurança do pool de validadores com todos na cadeia de retransmissão.

Qualquer validador no pool de validadores pode ajudar a validar sua blockchain.

Coisas a considerar

Economia da Parachain

Estados Nação Digitais

As parachains podem ser vistas como agentes autônomos; redes que agem como estados-nação digitais descentralizados. Parachains têm suas próprias comunidades, regras, economias, governança, tesouros e relacionamentos com cadeias externas. Como resultado, as políticas econômicas dentro dos ecossistemas da parachain estão sujeitas aos desenvolvedores e à comunidade geral desse ecossistema da parachain; não há necessariamente um modelo econômico que uma parachain deva seguir.

Além disso, tornar-se uma parachain tem um custo de oportunidade associado. Idealmente, você pode aumentar o valor da rede participando do processo de seleção das parachains, e isso deve servir como um bom retorno sobre o investimento.

Conectando economias digitais

Os coletores (Collators) atuam como mantenedores da rede e mantêm um nó completo de uma parachain. Eles podem ser incentivados com um pagamento de token nativo de:

  • Taxas de transação coletadas;
  • Patrocínio de token parathread
    • Os blocos são produzidos naturalmente quando um lance de parathread é menor que o pagamento do token nativo.

Para-objetos

Nota

A RELAY CHAIN PODE HOSPEDAR MÁQUINAS DE ESTADO ARBITRÁRIAS, NÃO APENAS BLOCKCHAINS.

A rede Polkadot incentivará a conexão e a interoperabilidade entre diferentes para-objetos.
Aqui, para-objetos estão se referindo a objetos na rede que operam em paralelo, geralmente objetos paralelizáveis.

Estes podem ser na forma de:

Migração

Projetos que já estão funcionando como "solochains" ou em ambientes isolados podem estar interessados ​​em migrar para a Polkadot como um para-objeto. Embora o modelo de parachain tenha seus benefícios, pode não ser a estratégia ideal para alguns projetos.

Como caminho para a migração para a Polkadot, pode ser mais viável migrar para uma das cadeias em um dos slots reservados.

Por exemplo, atualmente existem opções para implantação de contratos inteligentes na Kusama por meio das redes que garantiram um slot nos últimos leilões de slots.

Implemente uma Parachain

O Guia do Implementador de Parachain é um trabalho significativo, em andamento e mantido pela Parity Tech. A versão vigente é construída a partir da fonte localizada no repositório oficial da Polkadot.

Kit de Desenvolvimento de Parachain

O Kit de Desenvolvimento de Parachain ou PDK é um conjunto de ferramentas que permite aos desenvolvedores criar facilmente uma parachain. Na prática, o PDK consistirá nos seguintes componentes principais:

  • Função de transição de estado: uma maneira de seu aplicativo passar de um estado para outro.
  • Rede de nós coletores com certas responsabilidades em relação às parachains.

Componentes chave

A função de transição de estado (STF) pode ser uma maneira abstrata de uma aplicação passar de um estado para outro. A única restrição que Polkadot impõe a esta STF é que ela deve ser facilmente verificável – geralmente por meio do que chamamos de testemunha ou prova. Deve ser assim porque os validadores da cadeia de retransmissão precisarão verificar se cada estado recebido do nó coletor está correto sem realmente executar toda a computação. Alguns exemplos dessas provas incluem os blocos de prova de validade (Proof-of-Validity) ou zk-SNARKs, que requerem menos recursos computacionais para verificar do que para gerar. A assimetria de verificação na geração de provas da STF é um dos insights integrais que permitem que a Polkadot seja dimensionada, mantendo garantias de alta segurança.

Um nó coletor é um dos tipos de mantenedores de rede no protocolo. Eles são responsáveis ​​por manter a disponibilidade do estado da parachain e dos novos estados retornados da iteração da função de transição de estado. Eles devem permanecer online para acompanhar o estado e também as mensagens XCMP que serão roteadas entre si e outras parachains. Os nós coletores são responsáveis ​​por passar as provas sucintas para os validadores da cadeia de retransmissão e rastrear os blocos mais recentes da cadeia de retransmissão. Em essência, um nó coletor também atua como um cliente leve para a cadeia de retransmissão. Para saber mais sobre nós coletores, consulte esta página.

Quais PDKs existem ?

Atualmente, o único PDK é o Parity Substrate e a Cumulus. Substrate é uma estrutura de blockchain que fornece os blocos de construção básicos de uma blockchain (coisas como a camada de rede, consenso, um interpretador Wasm) enquanto fornece uma maneira intuitiva de construir seu tempo de execução. O Substrate é feito para facilitar o processo de criação de uma nova cadeia, mas não fornece suporte direto para a compatibilidade da Polkadot. Por esse motivo, Cumulus uma _biblioteca _adicional contém todo o código de cola de compatibilidade da Polkadot.

COMECE COM O SUBSTRATE

A melhor maneira de começar a usar o Substrate é explorar a Documentação do Substrate mantida pela Parity Technologies.

Cumulus

INFORMAÇÃO

As nuvens da Cumulus têm a forma de pontos (dots). Juntos, eles formam um sistema intrincado que é bonito e funcional.

A Cumulus é uma extensão do Substrate que facilita a transformação de qualquer tempo de execução construído pelo Substrate em uma parachain compatível com a Polkadot.

Cumulus Consensus é um mecanismo de consenso para Substrate que segue uma Cadeia de Retransmissão Polkadot (ou seja, parachains). Isso executa um nó Polkadot internamente e dita ao cliente e aos algoritmos de sincronização qual cadeia seguir, finalizar e tratar como correta.

Veja a visão geral da Cumulus para uma descrição mais detalhada da Cumulus.

A Cumulus ainda está em desenvolvimento, mas a ideia é que seja simples pegar uma cadeia Substrate e adicionar o código da parachain, importando os crates e adicionando uma única linha de código. Mantenha-se atualizado com os últimos desenvolvimentos da Cumulus na seção Cumulus.

INFORMAÇÃO

Substrate e Cumulus fornecem um PDK a partir da abstração do formato blockchain, mas não é necessário que uma parachain precise ser uma blockchain. Por exemplo, uma parachain só precisa satisfazer as duas restrições listadas acima: função de transição de estado e coletor.
Todo o resto depende do implementador do PDK.

A Cumulus lida com a sobrecarga de compatibilidade de rede que qualquer parachain precisaria implementar para se conectar à Polkadot. Isso inclui:

  • Passagem de mensagem de cadeia cruzada (XCMP);
  • Configuração de nó Coletor pronto para uso;
  • Um cliente completo incorporado da cadeia de retransmissão;
  • Compatibilidade de autoria em bloco.

Você está interessado em construir um PDK? Consulte a seção de futuros PDKs para obter detalhes.

Como configurar sua parachain

Depois de criar sua lógica de tempo de execução em cadeia com o Substrate, você poderá compilá-la em um executável Wasm. Este blob (objeto binário grande) de código Wasm conterá toda a função de transição de estado de sua cadeia e é o que você precisará para implantar seu projeto na Polkadot como uma parachain ou parathread.

Os validadores da Polkadot usarão o código Wasm enviado para validar as transições de estado de sua cadeia ou fio, mas isso requer alguma infraestrutura adicional. Um validador precisa de alguma forma para se manter atualizado com as transições de estado mais recentes, uma vez que os nós da Polkadot não serão obrigados a também serem nós de sua cadeia.

É aqui que o nó coletor entra em jogo. Um coletor é um mantenedor de sua parachain e executa a ação crítica de produzir novos candidatos a blocos para sua cadeia e passá-los para os validadores da Polkadot para inclusão na Cadeia de Retransmissão da Polkadot.

O Substrate vem com sua própria camada de rede integrada, mas infelizmente suporta apenas cadeias solo (ou seja, cadeias que não se conectam à cadeia de retransmissão). No entanto, existe a extensão Cumulus que inclui um nó coletor e permite que a lógica criada pelo Substrate seja compatível com a Polkadot como uma parachain ou parathread.

Futuros PDKs

CHAMADA PARA AÇÃO

Você quer construir um Kit de Desenvolvimento de Parachain do zero? A Web3 Foundation está concedendo subsídios para equipes que estão fazendo isso, saiba mais e inscreva-se na página de subsídios da W3F.

Um exemplo de um PDK W3F que está interessado em apoiar é um kit roll-up que permitiu aos desenvolvedores criar parachains baseadas em SNARK. Se revisarmos o roll-up, veremos que o sistema usa duas funções: usuários que atualizam o estado e um operador que agrega as atualizações de estado em uma única atualização on-chain. Deve ser fácil ver como podemos traduzir isso para os termos da parachain. A função de transição de estado para uma parachain do tipo roll-up estaria atualizando o estado (na prática, provavelmente uma árvore de Merkle, que seria facilmente verificável) a partir das entradas do usuário. O operador atuaria como o nó coletor, que agregaria o estado e criaria a prova zk-SNARK que entregaria aos validadores de uma cadeia de retransmissão para verificação.

Se você ou sua equipe estiver interessada em desenvolver um PDK, sinta-se à vontade para solicitar um subsídio no Repositório do Programa de Subsídios da W3F. Pode haver subsídios disponíveis para este tipo de trabalho.

Testando uma Parachain

Rede de testes Rococo

A Rococo é uma rede de testes construída para testar parachains. Rococo utiliza a Cumulus e HRMP (Horizontal Relay-routed Message Passing ou Passagem de mensagem roteada por retransmissão horizontal) para enviar transferências e mensagens entre parachains e uma Cadeia de Retransmissão. Cada mensagem é enviada para a Cadeia de Retransmissão, depois da Cadeia de Retransmissão para a parachain desejada.

Rococo executa algumas parachains do sistema de testes: Rockmine e Contracts. Ela também executa várias parachains desenvolvidas externamente.

Quais Parachains estão na Rococó agora?

Você pode ver a lista de parachains incluídas aqui. Uma lista de parachains propostas está disponível aqui.

Obtendo tokens ROC

ROC está disponível no canal Rococo Faucet no Matrix. Para receber tokens ROC, use o comando:

!drip YOUR_ROCOCO_ADDRESS
Enter fullscreen mode Exit fullscreen mode

Construa e registre uma parathread Rococo

Todas as parachains da Rococo usam o mesmo código de tempo de execução. A única diferença entre elas é o ID da parachain usado para registro na Cadeia de Retransmissão.

Você precisará executar um coletor Rococo. Para fazer isso, você precisa compilar o seguinte binário:

cargo build --release --locked -p polkadot-collator
Enter fullscreen mode Exit fullscreen mode

Depois que o executável for criado, inicie os coletores para sua parachain:

./target/release/polkadot-collator --chain $CHAIN --validator
Enter fullscreen mode Exit fullscreen mode

Se você estiver interessado em executar e lançar sua própria parathread ou parachain, a Parity Technologies criou tutoriais de parachain para mostrar como. Ficou preso ou precisa de suporte ao longo do caminho? Junte-se ao Substrate Stack Exchange), para interagir com outros construtores lá.

Como se conectar a uma Parachain

Se você gostaria de se conectar a uma parachain via Polkadot-JS Apps, você pode fazê-lo clicando na seleção de rede no canto superior esquerdo da navegação e selecionando qualquer parachain de sua escolha.

Para os fins dos exemplos a seguir, usaremos a rede de testes Rococo "Custom Node" sob "Development", seguindo os tutoriais de parachain.

Parachain Playground

Você também pode aproveitar as funções de conta oferecidas nos aplicativos Polkadot-JS para testar todo o processo de integração da Parachain (por exemplo, empréstimos coletivos, leilões, registros).

Inicie um nó local na Westend executando:

polkadot --chain=westend-dev --alice
Enter fullscreen mode Exit fullscreen mode

Em seguida, conecte seu nó local com o Polkadot-JS Apps.

Implantar

As cadeias baseadas em Substrate, incluindo as cadeias de retransmissão da Polkadot e Kusama, usam uma codificação SS58 para seus formatos de endereço. Esta página serve como registro canônico para as equipes verem qual cadeia corresponde a um determinado prefixo e quais prefixos estão disponíveis.

Parachain

Para incluir sua parachain na rede Polkadot, você precisará adquirir um slot de parachain.

Os slots de parachain serão vendidos em leilões abertos, cuja mecânica pode ser encontrada na página de leilões de parachain do wiki.

Parathread

As parathreads não exigirão um slot de parachain, portanto, você não precisará se envolver no mecanismo de leilão de velas. Em vez disso, você poderá registrar seu código parathread em uma Cadeia de Retransmissão mediante o pagamento de uma taxa e, a partir daí, poderá começar a participar dos leilões por bloco para inclusão de sua transição de estado em uma Cadeia de Retransmissão.

Para mais informações sobre como funcionam os leilões das parathreads por bloco, consulte a página mais detalhada sobre parathread.

Fontes (em inglês)


Artigo postado no Wiki da Polkadot. Traduzido por Marcelo Panegali.

Latest comments (0)