WEB3DEV

AIengineer13
AIengineer13

Posted on • Atualizado em

Desenvolvendo dApps escaláveis com Ethereum, Polygon and Fauna

Image description

DApps são aplicativos descentralizados que são executados em redes peer-to-peer (P2P) dentro de blockchains. A natureza descentralizada significa que nenhuma entidade (incluindo a pessoa) tem  controle sobre a  rede, dApps são  perfeitos  para casos de uso, em que várias entidades  não confiáveis  ou anônimas precisam  de realizar transações.

As dapps existiam antes da blockchain com aplicativos P2P como o BitTorrent, mas hoje existe todo um novo ecossistema de dApps que impulsionam blockchains, que garantem auditabilidade e imutabilidade das transações. Esses aplicativos oferecem uma variedade de soluções, desde a entrega  de serviços financeiros  de forma anônima até a capacidade   de  artistas  ganharem dinheiro por meio de NFTs e outras tecnologias.

Com a evolução da blockchain, novos padrões de desenvolvimento  surgiram para distribuir  dados de dApps que  melhoram  o desempenho enquanto reduzem custos. Neste post, ilustramos como se  pode combinar Ethereum, Polygon e Fauna para desenvolver  dApps seguros e de alto desempenho.

Antes de prosseguirmos, devemos   esclarecer algumas definições:

PC (Primeira Camada) — Blockchain pública primária. Quando uma nova transação ocorre na cadeia, a transação é adicionada diretamente à blockchain. Exemplo: Ethereum.

Sidechains e  cadeias SC (Segunda Camada) — Blockchain secundária ou implementações de protocolo que podem interagir entre si e com a cadeia primária. De vez em quando, eles enviam uma agregação de seus blocos recentes de volta à cadeia primária. Exemplo: Polígono, Rollups Otimistas, zkRollups.

Dados off-chain — São dados que são armazenados fora das blockchains primárias e secundárias, mas são importantes para o funcionamento da dApp. Exemplos: endereços privados de carteiras, perfis de usuários, dados de aplicativos.


Sumário

1 . Padrão de desenvolvimento para escalabilidade de DApps

2 . Principais requisitos de banco de dados para dados off chain em dApps

3 . Segurança de dados refinada

4 . Interface de Query amigável ao ecossistema

5 . Indexação de várias variáveis

6 . Fauna para dados fora da cadeia

7 . Controle de acesso baseado em atributos ou ABAC

8 . GraphQL integrado

9 . Indexação avançada

10 . Banco de dados distribuído que garante estabilidade

11 . Capacidade de seguir e rastrear

12 . Construa seus bancos de dados off chain na Fauna


Padrão de desenvolvimento para escalabilidade de dApps

A rede Ethereum fornece aos dApps a infraestrutura principal de blockchain necessária para registrar transações descentralizadas. No entanto, com o crescimento do uso da rede  Ethereum, o custo e a latência incorridos para adicionar um bloco ao Ethereum aumentaram.

Para obter alto rendimento e diminuir   custos  em sua arquitetura de dados, os dApps minimizam a necessidade de ler ou gravar diretamente no Ethereum, com sidechains, bancos de dados off-chain e aceleradores de índice.

A rede Polygon está surgindo  como uma solução de sidechain popular para desenvolvedores fornecendo uma estrutura modular e flexível que permite que os dApps interajam com cadeias L1 como Ethereum, juntamente com sidechains como Optimistic Rollups, zkRollups e muito mais, usando um único SDK.

Para tornar as leituras da cadeia mais eficientes nessa arquitetura, os dApps aproveitam aceleradores de índice  off-chain, como The Graph, para consultar sidechains ou Ethereum. O Graph indexa dados de blockchain para que, quando os dApps estiverem se referindo a dados on-chain em sua lógica de desenvolvimento, eles possam manter baixa latência.

A terceira parte dessa arquitetura de dados, são os  dados fora da cadeia, que são críticos para os aspectos operacionais de um aplicativo e normalmente são compostos de informações que não são publicadas na blockchain por motivos de privacidade e desempenho. Um exemplo para a categoria de privacidade é o endereço da carteira de um usuário. No lado do desempenho, os dados fora da cadeia podem incluir dados operacionais de leitura pesada exigidos pelo aplicativo.

O diagrama a seguir ilustra como os bancos de dados de sidechains ("cadeias laterais") e  off-chain funcionam em conjunto com cadeias primárias para realizar esse padrão de arquitetura em dApps. Considere um dApp de eSports hospedado na Polygon (para alto rendimento e baixo custo) e que premia o vencedor com um token digital. O usuário faz login no dApp, que usa seu banco de dados off-chain para garantir que o usuário exista e encontre o endereço da carteira do usuário. O dApp pode então consulta a redePolygon via The Graph (para acelerar as leituras) com o endereço da carteira do usuário e recuperar dados como NFTs que o usuário possui, todos os jogos anteriores e recompensas ganhas, etc. Finalmente, se o usuário ganhar um jogo, o dApp persiste a recompensa do usuário na rede Polygon. Cadeias de segunda camada  como Polygon usam um mecanismo conhecido como checkpointing para confirmar um resumo de uma sequência de blocos na cadeia primária. As cadeias de primeira camada, como o ethereum, oferecem maior segurança,o que é uma das principais razões pelas quais as cadeias de segunda camada  usam o ethereum para checkpoints.

Image description

Vale a pena notar que alguns dados off-chain podem ser armazenados diretamente em uma blockchain, mas muitas vezes esse tipo  de dados é mais adequado para um banco de dados OLTP (processamento de transação online) devido a preocupações de desempenho, privacidade e custo associadas ao uso de blockchains diretamente para dados que não precisam fazer parte dos blocos publicamente auditáveis e verificáveis. Os bancos de dados OLTP podem ser emparelhados com blockchains para armazenar com segurança informações e metadados do usuário, como endereços de carteira, com baixa latência e baixo custo.

Os DApps geralmente também não usam blockchains para armazenar informações do usuário porque, assim, elas seriam públicas. Se eles armazenassem essas informações como parte de suas transações de bloco, qualquer pessoa poderia examinar um bloco e determinar a identidade e os detalhes privados do usuário do dApp que realizou a transação.

Principais requisitos de banco de dados para dados off chain em dApps

A construção de equipes modernas de dApps exige que a cadeia primária, o acelerador de índice off-chain, a sidechain e os dados off-chain sejam interoperáveis e integrados.

Nesse padrão de arquitetura, torna-se importante que o banco de dados off-chain forneçam segurança de dados detalhada, uma interface de consulta amigável ao ecossistema e indexação multivariável (também conhecida como composta) para permitir consultas mais rápidas e eficientes.

Segurança de dados refinada

Os DApps devem alcançar alta segurança e confiabilidade em seus sistemas de armazenamento de dados e evitar a exposição de dados privados em todas as cadeias e bancos de dados. O controle de acesso baseado em atributos (ABAC) em bancos de dados pode permitir que as equipes de dApp tenham confiança de que podem armazenar informações confidenciais do usuário, como endereços de carteira, com segurança, juntamente com o restante dos dados do aplicativo.

Interface de Query amigável ao ecossistema

Muitos dApps que usam Ethereum  usam  o The Graph ou soluções semelhantes para consultar dados na cadeia usando o GraphQL. O GraphQL fornece uma descrição compreensível dos dados em sua API, tornando mais fácil para os desenvolvedores consultarem de diferentes fontes (off-chain e on-chain) usando a mesma linguagem Query.

Indexação de várias variáveis

Para permanecerem eficientes, os dApps devem ser capazes de consultar o sistema  para obter exatamente  os dados de que precisam e fazê-lo com a menor latência possível. As estruturas de dados off-chain são complexas, especialmente devido à necessidade de garantir o anonimato e a auditabilidade. A indexação múltiplamultipla ou composta pode abranger e transformar vários valores nos dados subjacentes e mitigar o impacto da complexidade de dados no desempenho da consulta, especialmente na latência.

Fauna para dados fora da cadeia

Fauna é um banco de dados relacional de documentos entregue como uma API. Ele capacita os desenvolvedores com os recursos essenciais necessários para criar armazenamento off-chain confiável e escalável para dApps e oferece uma série de recursos que tornam sua experiência de banco de dados mais produtiva, poderosa e escalável, permitindo que você desenvolva aplicativos mais rapidamente.

Controle de acesso baseado em atributos ou ABAC

O Fauna permite que os dApps correspondam à hierarquia organizacional atribuindo funções aos usuários para que apenas alguns membros da equipe possam acessar e alterar os dados. Isso reduz as chances de violações de segurança. Os privilégios podem ser determinados dinamicamente com base nos atributos do usuário, nos documentos a serem acessados ou modificados ou no contexto durante uma transação (por exemplo, hora do dia).

GraphQL integrado

Fauna suporta GraphQL nativamente. Isso torna mais simples para os desenvolvedores usarem  o Fauna junto com ferramentas blockchain como The Graph (que também suporta GraphQL), permitindo que os dApps interoperem entre consultas off-chain e on-chain usando a mesma linguagem query. Por exemplo, no caso do eSport dApp que discutimos acima, o sistema pode aproveitar a API GraphQL da Fauna para consultar informações relacionadas a um usuário que acabou de entrar no jogo. Em seguida, ele pode passar o endereço da carteira para a API do The Graph para recuperar todos os ativos do jogo (NFTs) de propriedade do usuário na cadeia e, por último, atualizar o Fauna com quaisquer novos ativos perfeitamente via GraphQL.

Indexação avançada

O Fauna fornece recursos de indexação poderosos que melhoram o desempenho de pesquisa, classificação e combinação de resultados de múltiplas tabelas/coleções. Isso garante que os usuários de dApps não sejam atingidos por alta latência de seus bancos de dados off-chain ao consultar dados on-chain e off-chain. Isso é particularmente importante ao criar experiências sensíveis à latência, como um mercado NFT ou um hub de eSports.

Banco de dados distribuído que garante estabilidade

Os bancos de dados em Fauna são intrinsecamente  distribuídos e dimensionados automaticamente em uma região específica (como a União Europeia) ou globalmente. Além disso, o Fauna é estritamente serializável, garantindo a correção transacional e o comportamento de leitura-sua-própria-gravação de qualquer local. O Fauna usa um algoritmo de consenso temporal distribuído e integrado, garantindo que seus dados off-chains sejam sempre consistentes.

Capacidade de seguir e rastrear

Uma das principais características da blockchain é a capacidade de auditar transações usando um livro público usando exploradores. A temporalidade da fauna, semelhante aos recursos de rastreamento e rastreamento de Blockchains, permite consultas pontuais para que você possa olhar para trás e ver exatamente como os dados mudaram. Isso permite que os dApps tenham capacidade de auditoria não apenas em seus blocos on-chain, mas também em seus dados off-chain.

Construa seus bancos de dados off chain na Fauna

O Fauna complementa os recursos de seus dados on-chain e sidechain fornecendo um banco de dados off-chain seguro, de alto desempenho e interoperável como uma API GraphQL. O Fauna elimina dimensionamento, provisionamento, fragmentação e outras tarefas operacionalmente intensivas para que suas equipes possam se concentrar no dApp.

Inovadores como DIGITALAX e Acoer usam Fauna junto com blockchains, Polygon e TheGraph para inovar incansavelmente e rapidamente levar novas ideias à produção. O dApp da DIGITALAX aproveita o Fauna como seu banco de dados off-chain com a arquitetura que descrevemos: Ethereum para on-chain, Polygon para seu sidechain e The Graph como um acelerador de índice.

Quando percebemos que havia componentes de dados off-chain em nossa arquitetura, o Fauna fez mais sentido. Isso realmente nos permitiu ter flexibilidade e escalabilidade para nos apoiar como uma startup hoje e permite que continuemos a crescer*.” — Emma-Jane MacKinnon-Lee, CEO, DIGITALAX

Fauna é fácil de usar e rápido para começar. Inscreva-se em nosso plano de preços sempre gratuito para explorar todos os recursos e começar a construir! Se você quiser discutir seu caso de uso conosco ou precisar de mais assistência, entre em contato conosco usando este formulário de contato. Estamos animados para ver quais problemas você resolve para seus clientes e fazer parceria com você em sua jornada!

Artigo original: https://faunadb.medium.com/building-scalable-dapps-with-ethereum-polygon-and-fauna-33ec7ec44609

Top comments (0)