Construir com o Arweave, um protocolo de dados permanente e descentralizado

PrincipianteJan 10, 2024
Este artigo incidirá no armazenamento e recuperação de ficheiros, e não na execução do seu próprio gateway Arweave de produção.
Construir com o Arweave, um protocolo de dados permanente e descentralizado

Apresentamos o Building on web3 — uma nova série de blogues Edge & Node com o objetivo de familiarizar os programadores com os protocolos, ferramentas e melhores práticas para o desenvolvimento no crescente espaço web3. Construir na web3 irá destacar tecnologias emergentes e projetos no ecossistema web3 para ajudar a criar uma receita de sucesso para os desenvolvedores de dapp.

Neste post vai aprender sobre o que é o Arweave, porque é que acho que é importante e como pode começar a construir com ele. Este post vai focar-se no armazenamento e recuperação de ficheiros, e não na execução do seu próprio gateway Arweave de produção.

O Arweave é uma camada de armazenamento de dados e ficheiros global, permanente e descentralizada.

Para mim, a coisa revolucionária sobre o Arweave é o facto de poder guardar algo uma vez e esperar que esteja disponível para sempre sem ter de pagar nada novamente ou sem ter de me preocupar com isso ir embora.

Compare isso com as soluções de armazenamento tradicionais e centralizadas onde se esquecer de pagar a sua conta um mês é retirado ou, pior ainda, você ou outra pessoa acidentalmente apaga os seus dados completamente.

Esta permanência de dados é especialmente importante na web3 onde estamos a construir uma infraestrutura de aplicação imutável. Os dados Blockchain por natureza já são imutáveis mas muitas vezes vê programadores a armazenar dados fora da cadeia de formas que não aderem às melhores práticas de descentralização ou imutabilidade.

Por exemplo, no token não fungível, ou espaço NFT, alguns desenvolvedores usam serviços de alojamento centralizado para armazenar metadados de token. Isto quebra as importantes propriedades de segurança necessárias para a imutabilidade, bem como a ideia do que um NFT representa em primeiro lugar.

Se os metadados não forem permanentes, não há garantia de que a propriedade que o token representa ainda existirá no futuro. Isto significa que a integridade do token está em jogo se os metadados não forem armazenados num protocolo de armazenamento de ficheiros permanente como o Arweave, e porque é tão importante que existam tecnologias como esta.

Dentro do ecossistema The Graph, também estamos a construir suporte e integrações para o Arweave porque reconhecemos o valor do protocolo para a construção de aplicações web3 verdadeiramente descentralizadas.

Sobre o Arweave

O Arweave é construído sobre duas tecnologias: o blockweave, um derivado da cadeia de blocos e 'Prova de Acesso'.

Blockweave é a tecnologia que alimenta o Arweave. Como uma cadeia de blocos, o blockweave é uma coleção ligada de blocos de dados, ligando a blocos anteriores gravados na rede.

O mecanismo de consenso utilizado para facilitar o armazenamento seguro e descentralizado de dados no Arweave chama-se 'Prova de Acesso'. Este mecanismo é mais eficiente e amigo do ambiente do que a prova de trabalho, porque os mineiros não precisam de armazenar todos os blocos. Por causa disso, poupa uma quantidade enorme de eletricidade enquanto os mineiros ainda conseguem chegar a um consenso. Além disso, à medida que a rede se expande, o consumo de eletricidade diminui.

Começar com o Arweave

Existem duas maneiras de começar a usar tokens Arweave

1. Descarregar uma carteira Arweave

Pode começar com uma nova carteira e obter uma fração dos tokens Arweave usando a torneira de teste Arweave.

Depois de verificar, deve receber 0.1 AR para usar para começar a testar o Arweave na sua aplicação.

2. Uma carteira de navegador

Pode ter usado o navegador e carteiras móveis como o Metamask ou o Phantom que lhe permitem interagir com aplicações web3 diretamente de uma aplicação. O Arweave tem uma carteira semelhante, chamada Arconnect.

Pode instalá-lo diretamente como uma extensão do Chrome e começar a interagir com aplicações web que utilizam o Arweave.

A partir daí, pode financiar a carteira com tokens de qualquer uma das suas bolsas suportadas ou pode importar a sua carteira criada no passo anterior.

Para seguir este tutorial, não precisará de nenhum token, mas deve ter a carteira do navegador Arconnect instalada.

Pacote

Além da técnica que abordaremos neste tutorial, pode optar por usar o Bundlr que permite suporte nativo para armazenamento Arweave em diferentes blockchains de contrato inteligente, bem como SDKs do lado do cliente e do lado do servidor para integração de aplicativos.

Esta é uma ótima opção porque não exige que o utilizador tenha tokens AR mas, em vez disso, pode confiar em outras redes e tokens como ETH, MATIC, Solana, Arbitrum e muitos outros para pagar as transações.

Para saber mais sobre o Bundlr, consulte a documentação aqui.

Construir com Arweave

Agora que temos uma visão geral do Arweave e protegemos os nossos tokens, vamos construir uma aplicação básica.

A aplicação que vamos construir permitir-nos-á carregar e descarregar uma sequência de texto para o Arweave.

Este é um exemplo básico, mas um ótimo “Olá mundo” porque percorre as ferramentas e APIs para o fazer começar a construir num curto espaço de tempo.

A primeira coisa que faremos é criar uma nova aplicação React usando create-react-app:

npx create-react-app

arweave-app arweave-app

Existem duas maneiras principais de ligar para a rede Arweave a partir da sua aplicação:

  1. HTTP API - O protocolo Arweave é baseado em HTTP para que qualquer cliente http existente possa ser usado para interagir com a rede, como Axios ou Fetch
  2. Arweave JS - Arweave JS é o SDK JavaScript/TypeScript para interagir com a rede Arweave e carregar dados para a permaweb. Funciona nos navegadores mais recentes e no Node JS.

O Arweave JS SDK é muito bom e é o que vamos usar para este tutorial.

Vamos agora instalar o arweave-js usando npm ou yarn:

npm instalar arweave

Rede Arweave

Existem algumas maneiras de interagir com a rede Arweave:

  1. Devnet - arweave.dev
  2. Mainnet - https://arweave.net/
  3. Ambiente local - Arlocal

Neste guia, começaremos com o Arlocal, o que nos permitirá enviar transações de teste gratuitamente. Também aprenderemos a usar a mainnet para enviar uma transação real.

Arlocal

Para testar localmente, podemos usar o Arlocal, que executará uma rede local com a qual podemos interagir e enviar transações de teste para.

Nem precisa de descarregar ou instalar nada para usar o Arlocal, desde que tenha o Node.js instalado na sua máquina, pode simplesmente iniciar um gateway local executando:

npx arlocal

É isso! Agora deve estar a executar um gateway Arweave local em http://localhost:1984

Agora que tem um gateway local a funcionar, vamos escrever o código.

Abra o src/App.js e atualize o ficheiro com o seguinte código:

importar estilos de '.. /Estilos/Home.module.css '

importar { useState } de 'react'

importar Arweave de 'arweave'

/ ligar a um nó Arweave ou especificar um gateway /

const arweave = arWeave.init ({})

função App () {

const [state, setState] = useState ('')

const [TransactionId, setTransactionId] = useState ('')

função assíncrona createTransaction () {

se (! estado) retorno

experimente {

const formData = estado

setState (')

/ cria e envia transação para a Arweave/

deixar transação = aguardar arWeave.CreateTransaction ({ data: formData })

aguardar arweave.transactions.sign (transação)

let uploader = aguardar arWeave.Transactions.getUploader (transação)

/ indicador de upload /

enquanto (! Uploader.está completo) {

aguardar enviador.uploadChunk ()

console.log (${uploader.pctComplete}% completo, ${uploader.uploadedChunks}/${uploader.totalChunks})

}

setTransactionId (transaction.id)

} pegar (err) {

console.log ('erro: ', erro)

}

}

função assíncrona readFromarWeave () {

/ ler os dados do Arweave usando qualquer ID de transacção /

arweave.transações

.getData (ID da transação, {

decodificar: verdadeiro,

string: verdadeiro,

})

.então (dados) = > {

console.log ('dados: ', dados)

})

}

retorno (

< div ClassName={styles.container}>

< estilo do botão={button} onClick={createTransaction}>

Criar Transação

</button>< /botão >

< estilo do botão={button} onClick={readFromArweave}>

Ler Transação

</button>< /botão >

< estilo de entrada ={input} onChange={(e) => setState(e.target.value)} placeholder=” text” value={state} />

</div>

)

}

botão const = {

esboço: 'nenhum',

fronteira: '1px preto sólido',

BackgroundColor: 'branco',

preenchimento: '10px',

largura: '200px',

MarginInferior: 10,

cursor: 'ponteiro',

}

const input = {

Cor de fundo: '#ddd',

esboço: 'nenhum',

fronteira: 'nenhum',

largura: '200px',

Tamanho da fonte: '16px',

preenchimento: '10px',

}

exportar aplicativo padrão

Em seguida, inicie a aplicação:

npm começar

Quando a aplicação começar, deverá ver uma entrada de formulário básica com dois botões.

Pode digitar no formulário os dados que gostaria de guardar e, em seguida, carregar em Criar Transação para guardar o texto no Arweave.

Assim que a transação estiver concluída, deverá ver um indicador de progresso desligado na consola indicando que os dados foram guardados.

Assim que os dados estiverem guardados, clique em Ler Transação para ler os dados do Arweave.

Rede de produção Arweave

Para interagir com a rede de produção, só precisa de atualizar a configuração da rede Arweave.

const arweave = arWeave.init ({

anfitrião: 'arweave.net',

})

Código para este projeto

Um exemplo de base de código para o projeto que construímos hoje está disponível aqui.

Próximos passos

Para saber mais sobre o Arweave, consulte os documentos do Arweave , o Wiki do Arweave e siga-os no Twitter.

Sobre o Edge & Node

Edge & Node é uma empresa criativa de desenvolvimento de software que trabalha para construir um futuro vibrante e descentralizado. Fundado pela equipa inicial por trás do The Graph, o Edge & Node dedica-se ao avanço da internet descentralizada (web3) e à proliferação de aplicações minimizadas pela confiança. A equipa tem uma vasta experiência no desenvolvimento e manutenção de software, ferramentas e aplicações de código aberto.

O produto inicial do Edge & Node é o The Graph, um protocolo de indexação para consultar redes como Ethereum e IPFS, que garante que os dados abertos estejam sempre disponíveis e de fácil acesso. O gráfico é usado por milhares de protocolos e dapps, incluindo Uniswap, Livepeer, Aave, Decentraland e muito mais. O Edge & Node também lançou o Everest, o primeiro registo descentralizado de dados em cadeia a fornecer utilidade contínua à comunidade cripto, catalisando a mudança para a web3.

Isenção de responsabilidade:

  1. Este artigo foi reimpresso do [Edge & Node]. Todos os direitos autorais pertencem ao autor original [Nader Dabit]. Se houver objeções a esta reimpressão, contacte a equipa do Gate Learn, e eles tratarão disso imediatamente.
  2. Isenção de responsabilidade: As opiniões e opiniões expressas neste artigo são exclusivamente do autor e não constituem nenhum conselho de investimento.
  3. As traduções do artigo para outras línguas são feitas pela equipa do Gate Learn. A menos que mencionado, é proibido copiar, distribuir ou plagiar os artigos traduzidos.
即刻開始交易
註冊並交易即可獲得
$100
和價值
$5500
理財體驗金獎勵!
立即註冊