使用Arweave構建,一個永久的、去中心化的數據協議

新手Jan 10, 2024
本文將重點介紹文件的存儲和檢索,而不是運行您自己的生産Arweave網關。
使用Arweave構建,一個永久的、去中心化的數據協議

推出 Building on web3 — 一繫列新的 Edge & Node 博客,旨在讓開髮人員熟悉在不斷髮展的 web3 領域進行開髮的協議、工具和最佳實踐。基於 web3 的構建將重點關註 web3 生態繫統中的新興技術和項目,以幫助爲 dapp 開髮人員創造成功的秘訣。

在這篇文章中,您將了解Arweave 是什麽,爲什麽我認爲它很重要,以及如何開始使用它進行構建。本文將重點討論文件存儲和檢索,而不是運行您自己的生産 Arweave 網關。

Arweave 是一個全球性的、永久的、去中心化的數據和文件存儲層。

對我來説,Arweave 的革命性之處在於,我可以存儲一些東西,然後就可以永遠使用它,而無需再次支付任何費用,也不必擔心它會消失。

與傳統的集中式存儲解決方案相比,如果您一個月忘記支付賬單,您就會被刪除,或者更糟糕的是,您或其他人不小心完全刪除了您的數據。

這種數據持久性在 web3 中尤其重要,我們正在構建不可變的應用程序基礎設施。區塊鏈數據本質上已經是不可變的,但您經常看到開髮人員以不遵守去中心化或不可變性最佳實踐的方式存儲鏈下數據。

例如,在不可替代代幣或 NFT 領域,一些開髮人員使用集中式托管服務來存儲代幣元數據。這打破了不變性所需的重要安全屬性以及 NFT 最初代錶的概念。

如果元數據不是永久性的,則無法保證令牌所代錶的屬性在未來仍然存在。這意味著,如果元數據沒有存儲在像 Arweave 這樣的永久文件存儲協議上,那麽代幣的完整性就會受到威脅,這也是此類技術的存在如此重要的原因。

在 The Graph 生態繫統中,我們還在爲 Arweave 提供支持和集成,因爲我們認識到該協議對於構建真正去中心化的 web3 應用程序的價值。

關於Arweave

Arweave 基於兩項技術:blockweave(區塊鏈的衍生品)和“訪問證明 (Proof of Access)”。

Blockweave 是爲 Arweave 提供支持的技術。與區塊鏈一樣,塊編織是數據塊的鏈接集合,鏈接到寫入網絡的先前塊。

Arweave 中用於促進安全、去中心化數據存儲的共識機製稱爲“訪問證明”。這種機製比工作量證明更高​​效、更環保,因爲礦工不需要存儲所有區塊。正因爲如此,節省了大量的電力,衕時礦工仍然能夠達成共識。此外,隨著網絡的擴展,電力消耗也會減少。

Arweave 入門

有兩種方法可以開始使用 Arweave 代幣

1.下載Arweave錢包

您可以從一個新錢包開始,併通過使用以下方式穫得一小部分 Arweave 代幣:Arweave測試通道

驗證後,您應該穫得 0.1 AR,用於開始在應用程序中測試 Arweave。

2.瀏覽器錢包

您可能使用過瀏覽器和移動錢包(例如 Metamask 或 Phantom),它們允許您直接從應用程序與 web3 應用程序進行交互。 Arweave 有一個類似的錢包,叫做Arconnect

您可以直接將其安裝爲 Chrome 擴展程序,併開始與使用 Arweave 的 Web 應用程序進行交互。

從那裡,您可以使用他們的任何代幣爲錢包提供資金支持的交易所 或者您可以導入上一步中創建的錢包。

要學習本教程,您不需要任何代幣,但您應該安裝 Arconnect 瀏覽器錢包。

捆綁號 (Bundlr)

除了我們將在本教程中介紹的技術之外,您還可以選擇使用捆綁號 它可以爲不衕智能合約區塊鏈上的 Arweave 存儲以及用於應用程序集成的客戶端和服務器端 SDK 提供本機支持。

這是一個很好的選擇,因爲它不需要用戶持有 AR 代幣,而是可以依賴其他網絡和代幣(如 ETH、MATIC、Solana、Arbitrum 等)來支付交易。

要了解有關 Bundlr 的更多信息,請查看文檔這裡

使用 Arweave 構建

現在我們已經了解了 Arweave 併保護了我們的代幣,讓我們構建一個基本的應用程序。

我們將構建的應用程序將允許我們將一串文本上傳和下載到 Arweave。

這是一個基本示例,但卻是一個很棒的“Hello world”,因爲它逐步介紹了工具和 API,讓您在短時間內開始構建。

我們要做的第一件事是使用 create-react-app 創建一個新的 React 應用程序:

npx 創建反應應用程序

arweave-appcd arweave-app

從應用程序調用 Arweave 網絡有兩種主要方法:

  1. HTTP API - Arweave 協議基於 HTTP,因此任何現有的 http 客戶端都可用於與網絡交互,例如 Axios 或 Fetch
  2. Arweave JS - Arweave JS 是 JavaScript/TypeScript SDK,用於與 Arweave 網絡交互併將數據上傳到 permaweb。它適用於最新的瀏覽器和 Node JS。

Arweave JS SDK 非常好,我們將在本教程中使用它。

現在讓我們使用 npm 或 YARN 安裝 arweave-js:

npm 安裝 arweave

Arweave網絡

您可以通過以下幾種方式與 Arweave 網絡進行交互:

  1. 開髮網 -arweave.dev
  2. 主網 -https://arweave.net/
  3. 當地環境——Arlocal

在本指南中,我們將從 Arlocal 開始,它允許我們免費髮送測試交易。我們還將學習如何使用主網髮送真實交易。

Arlocal

爲了進行本地測試,我們可以使用 Arlocal,它將運行一個本地網絡,我們可以與該網絡進行交互併曏其髮送測試交易。

你甚至不需要下載或安裝任何東西來使用 Arlocal,隻要你的機器上安裝了 Node.js,你就可以通過運行以下命令來啟動本地網關:

npx arlocal

就是這樣!您現在應該在 http://localhost:1984 上運行本地 Arweave 網關

現在您已經運行了本地網關,讓我們編寫代碼。

打開 src/App.js 併使用以下代碼更新文件:

從 ‘../styles/Home.module.css’ 導入樣式

從 ‘react’ 導入 { useState }

從 ‘arweave’ 導入 Arweave

/ 連接到 Arweave 節點或指定網關 /

const arweave = Arweave.init({})

函數應用程序(){

const [狀態,setState] = useState(‘’)

const [transactionId, setTransactionId] = useState(‘’)

異步函數createTransaction() {

if (!state) 返回

嘗試 {

const formData = 狀態

設置狀態(‘’)

/ 創建交易併將其髮送到 Arweave /

讓事務 =等待 arweave.createTransaction({ data: formData })

等待 arweave.transactions.sign(交易)

讓 uploader =等待 arweave.transactions.getUploader(transaction)

/ 上傳指示符 /

while (!uploader.isComplete) {

等待 uploader.uploadChunk()

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

}

setTransactionId(交易.id)

} 捕穫(錯誤){

console.log(‘錯誤:’,錯誤)

}

}

異步函數 readFromArweave() {

/ 使用任意 trsnsaction ID 讀取 Arweave 數據 /

arweave.交易

.getData(交易ID, {

解碼:真,

字符串:真,

})

.then((數據) => {

console.log(‘數據:’, 數據)

})

}

返回 (

<div className={styles.container}>

<按鈕樣式={按鈕} onClick={createTransaction}>

創建交易

</按鈕>

<按鈕樣式={按鈕} onClick={readFromArweave}>

讀取交易

</按鈕>

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

</div>

}

常量按鈕= {

大綱:“無”,

邊框:’1px 純黑’,

背景顔色:’白色’,

填充:’10px’,

寬度:’200px’,

底部邊距:10,

光標:’指針’,

}

常量輸入 = {

背景顔色: ‘#ddd’,

大綱:“無”,

邊框:’無’,

寬度:’200px’,

字體大小:’16px’,

填充:’10px’,

}

導出默認應用程序

接下來,啟動應用程序:

npm 啟動

當應用程序啟動時,您應該看到帶有兩個按鈕的基本錶單輸入。

您可以在錶單中輸入要保存的數據,然後按“創建事務”將文本保存在 Arweave 中。

交易完成後,您應該會看到控製颱上有一個進度指示器,指示數據已保存。

保存數據後,單擊“讀取事務(Read Transaction)” 以從 Arweave 讀取數據。

Arweave 生産網絡

要與生産網絡交互,您隻需更新 Arweave 網絡配置即可。

const arweave = Arweave.init({

主機:’arweave.net’,

})

該項目的代碼

我們今天構建的項目的示例代碼庫已可用這裡

下一步

要了解有關 Arweave 的更多信息,請查看Arweave 文檔, 這維基百科,併關註他們推特

關於Edge & Node

Edge & Node 是一家創意軟件開髮公司,緻力於構建一個充滿活力、去中心化的未來。 Edge & Node 由 The Graph 背後的初始團隊創立,緻力於去中心化互聯網 (web3) 的進步和信任最小化應用程序的普及。該團隊在開髮和維護開源軟件、工具和應用程序方麵擁有豐富的經驗。

Edge & Node 的初始産品是The Graph,一種用於查詢以太坊和 IPFS 等網絡的索引協議,可確保開放數據始終可用且易於訪問。該圖被數千種協議和 dapp 使用,包括 Uniswap、Livepeer、Aave、Decentraland 等。 Edge 和 Node 也推出珠穆朗瑪峰 (Everest),第一個去中心化的鏈上數據註冊中心,爲加密社區提供持續的實用性,促進曏 web3 的轉變。

聲明:

  1. 本文轉載自[Edge & Node],著作權歸屬原作者[Nader Dabit],如對轉載有異議,請聯繫Gate Learn團隊,團隊會根據相關流程盡速處理。
  2. 免責聲明:本文所錶達的觀點和意見僅代錶作者個人觀點,不構成任何投資建議。
  3. 文章其他語言版本由Gate Learn團隊翻譯, 在未提及Gate.io的情況下不得覆製、傳播或抄襲經翻譯文章。
Comece agora
Inscreva-se e ganhe um cupom de
$100
!
Criar conta