Строительство с помощью Arweave, постоянного децентрализованного протокола данных

Новичок1/10/2024, 6:28:38 PM
Эта статья посвящена хранению и получению файлов, а не запуску собственного производственного шлюза Arweave.

Представляем Building on web3 - новую серию блогов Edge & Node, цель которой - познакомить разработчиков с протоколами, инструментами и лучшими практиками разработки в растущем пространстве web3. Building on web3 расскажет о новых технологиях и проектах в экосистеме web3, чтобы помочь создать рецепт успеха для разработчиков dapp.

В этом посте Вы узнаете о том, что такое Arweave, почему я считаю его важным, и как Вы можете начать строить с его помощью. В этом посте речь пойдет о хранении и получении файлов, а не о запуске собственного производственного шлюза Arweave.

Arweave - это глобальный, постоянный и децентрализованный уровень хранения данных и файлов.

Для меня революционным в Arweave является тот факт, что я могу сохранить что-то один раз и рассчитывать на то, что это будет доступно всегда, не платя больше ни за что и не беспокоясь о том, что это исчезнет.

Сравните это с традиционными централизованными решениями для хранения данных, где если Вы забудете оплатить счет за месяц, то Вас отключат, или, что еще хуже, Вы или кто-то другой случайно удалит Ваши данные полностью.

Такая неизменность данных особенно важна в web3, где мы создаем неизменяемую инфраструктуру приложений. Данные блокчейна по своей природе уже неизменяемы, но Вы часто видите, что разработчики хранят данные вне цепи таким образом, который не соответствует лучшим практикам децентрализации и неизменяемости.

Например, в сфере не сгибаемых токенов, или NFT, некоторые разработчики используют централизованные хостинги для хранения метаданных токенов. Это нарушает важные свойства безопасности, необходимые для неизменяемости, а также идею о том, что вообще представляет собой NFT.

Если метаданные не являются постоянными, нет никакой гарантии, что свойство, которое представляет токен, будет существовать и в будущем. Это означает, что целостность токена находится под угрозой, если метаданные не хранятся на постоянном протоколе хранения файлов, таком как Arweave, и поэтому так важно, чтобы такие технологии существовали.

В рамках экосистемы The Graph мы также создаем поддержку и интеграцию для Arweave, поскольку признаем ценность этого протокола для создания действительно децентрализованных web3-приложений.

О компании Arweave

Arweave построен на двух технологиях: блокчейне, производной от блокчейна, и "доказательстве доступа".

Blockweave - это технология, которая питает Arweave. Как и блокчейн, блокчейн представляет собой связанную коллекцию блоков данных, ссылающихся на предыдущие блоки, записанные в сети.

Механизм консенсуса, используемый для обеспечения безопасного, децентрализованного хранения данных в Arweave, называется "Доказательство доступа". Этот механизм более эффективен и экологичен, чем доказательство работы, поскольку майнерам не нужно хранить все блоки. Благодаря этому экономится огромное количество электроэнергии, в то время как майнеры все еще могут прийти к консенсусу. Кроме того, по мере расширения сети потребление электроэнергии снижается.

Начало работы с Arweave

Есть два способа начать использовать токены Arweave

1. Загрузите кошелек Arweave

Вы можете начать с нового кошелька и получить часть токенов Arweave, воспользовавшись тестовым краном Arweave.

Как только Вы пройдете верификацию, Вам будет предоставлен 0,1 AR для использования, чтобы Вы могли начать тестировать Arweave в своем приложении.

2. Кошелек для браузера

Возможно, Вы пользовались браузерными и мобильными кошельками, такими как Metamask или Phantom, которые позволяют Вам взаимодействовать с web3-приложениями непосредственно из приложения. У компании Arweave есть похожий кошелек, который называется Arconnect.

Вы можете установить его непосредственно в качестве расширения для хрома и начать взаимодействовать с веб-приложениями, использующими Arweave.

Оттуда Вы можете пополнить кошелек токенами с любой из поддерживаемых бирж или импортировать Ваш кошелек, созданный на предыдущем шаге.

Чтобы следовать этому руководству, Вам не понадобятся токены, но у Вас должен быть установлен браузерный кошелек Arconnect.

Bundlr

В дополнение к технике, которую мы рассмотрим в этом уроке, Вы можете использовать Bundlr, который обеспечивает встроенную поддержку хранения Arweave на различных блокчейн смарт-контрактах, а также клиентские и серверные SDK для интеграции приложений.

Это отличный вариант, поскольку он не требует от пользователя владения AR-токенами, а вместо этого позволяет использовать другие сети и токены, такие как ETH, MATIC, Solana, Arbitrum и многие другие, для оплаты транзакций.

Чтобы узнать больше о Bundlr, ознакомьтесь с документацией здесь.

Строительство с Arweave

Теперь, когда мы получили общее представление об Arweave и закрепили наши токены, давайте создадим базовое приложение.

Приложение, которое мы создадим, позволит нам загружать и выгружать строку текста в Arweave.

Это базовый пример, но он отлично подходит для "Hello world", потому что в нем показаны инструменты и API, которые помогут Вам начать работу над проектом за короткий промежуток времени.

Первое, что мы сделаем, это создадим новое React-приложение с помощью create-react-app:

npx create-react-app

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 очень хорош, и именно его мы будем использовать в этом уроке.

Теперь давайте установим arweave-js с помощью npm или yarn:

npm install arweave

Сеть Arweave

Есть несколько способов, которыми Вы можете взаимодействовать с сетью Arweave:

  1. Devnet - arweave.dev
  2. Mainnet - https://arweave.net/
  3. Местное окружение - Arlocal

В этом руководстве мы начнем с Arlocal, который позволит нам отправлять тестовые транзакции бесплатно. Мы также узнаем, как использовать mainnet для отправки реальной транзакции.

Arlocal

Для локального тестирования мы можем использовать Arlocal, который запустит локальную сеть, с которой мы сможем взаимодействовать и отправлять в нее тестовые транзакции.

Вам даже не нужно ничего скачивать или устанавливать, чтобы использовать Arlocal. Если на Вашей машине установлен Node.js, Вы можете просто запустить локальный шлюз, выполнив команду:

npx arlocal

Вот и все! Теперь у Вас должен быть запущен локальный шлюз Arweave на сайте http://localhost:1984.

Теперь, когда у Вас запущен локальный шлюз, давайте напишем код.

Откройте файл src/App.js и обновите его, добавив следующий код:

import styles from '../styles/Home.module.css'

import { useState } from 'react'

import Arweave from 'arweave'

/ подключитесь к узлу Arweave или укажите шлюз /.

const arweave = Arweave.init({})

function App() {

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

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

async-функция createTransaction() {

if (!state) return

попробуйте {

const formData = state

setState('')

/ создает и отправляет транзакцию в Arweave /.

let transaction = await arweave.createTransaction({ data: formData })

await arweave.transactions.sign(transaction)

let uploader = await arweave.transactions.getUploader(transaction)

/ индикатор загрузки /

while (!uploader.isComplete) {

await uploader.uploadChunk()

console.log(${uploader.pctComplete}% завершения, ${uploader.uploadedChunks}/${uploader.totalChunks})

}

setTransactionId(transaction.id)

} catch (err) {

console.log('error: ', err)

}

}

async-функция readFromArweave() {

/ читайте данные Arweave, используя любой идентификатор транзакции /.

arweave.transactions

.getData(transactionId, {

декодировать: верно,

string: true,

})

.then((data) => {

console.log('данные: ', данные)

})

}

возврат (

<div className={styles.container}>

<button style={button} onClick={createTransaction}>

Создать транзакцию

</button></кнопка>

<button style={button} onClick={readFromArweave}>

Чтение транзакций

</button></кнопка>

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

</div>

)

}

const button = {

Контур: 'none',

border: '1px solid black',

backgroundColor: 'white',

padding: '10px',

ширина: '200px',

marginBottom: 10,

курсор: 'pointer',

}

const input = {

backgroundColor: '#ddd',

Контур: 'none',

border: 'none',

ширина: '200px',

fontSize: '16px',

padding: '10px',

}

экспортировать приложение по умолчанию

Затем запустите приложение:

npm start

Когда приложение запустится, Вы увидите базовую форму ввода с двумя кнопками.

Вы можете ввести в форму данные, которые хотите сохранить, а затем нажать кнопку Create Transaction, чтобы сохранить текст в Arweave.

После завершения транзакции Вы должны увидеть индикатор выполнения, выведенный на консоль, указывающий на то, что данные были сохранены.

Когда данные будут сохранены, нажмите Read Transaction, чтобы считать данные из Arweave.

Производственная сеть Arweave

Чтобы взаимодействовать с производственной сетью, Вам нужно только обновить конфигурацию сети Arweave.

const arweave = Arweave.init({

хост: 'arweave.net',

})

Код для этого проекта

Пример кодовой базы для проекта, который мы создали сегодня, доступен здесь.

Следующие шаги

Чтобы узнать больше об Arweave, ознакомьтесь с документацией Arweave, Arweave Wiki и следите за ними в Twitter.

О Edge & Node

Edge & Node - креативная компания по разработке программного обеспечения, работающая над созданием динамичного децентрализованного будущего. Команда Edge & Node, основанная командой, стоявшей у истоков The Graph, занимается развитием децентрализованного Интернета (web3) и распространением приложений с минимальным уровнем доверия. У команды большой опыт в разработке и поддержке программного обеспечения с открытым исходным кодом, инструментов и приложений.

Первый продукт компании Edge & Node - The Graph, протокол индексирования для запросов к таким сетям, как Ethereum и IPFS, который обеспечивает постоянный и легкий доступ к открытым данным. График используется тысячами протоколов и dapps, включая Uniswap, Livepeer, Aave, Decentraland и другие. Edge & Node также запустил Everest, первый децентрализованный реестр данных о цепочке, обеспечивающий постоянную полезность для криптосообщества, катализируя переход на web3.

Отказ от ответственности:

  1. Эта статья перепечатана с сайта[Edge & Node]. Все авторские права принадлежат оригинальному автору[Nader Dabit]. Если у Вас есть возражения против этой перепечатки, пожалуйста, свяжитесь с командой Gate Learn, и они незамедлительно рассмотрят их.
  2. Предупреждение об ответственности: Мнения и взгляды, выраженные в этой статье, принадлежат исключительно автору и не являются инвестиционным советом.
  3. Перевод статьи на другие языки осуществляется командой Gate Learn. Если не указано, копирование, распространение или плагиат переведенных статей запрещены.

Строительство с помощью Arweave, постоянного децентрализованного протокола данных

Новичок1/10/2024, 6:28:38 PM
Эта статья посвящена хранению и получению файлов, а не запуску собственного производственного шлюза Arweave.

Представляем Building on web3 - новую серию блогов Edge & Node, цель которой - познакомить разработчиков с протоколами, инструментами и лучшими практиками разработки в растущем пространстве web3. Building on web3 расскажет о новых технологиях и проектах в экосистеме web3, чтобы помочь создать рецепт успеха для разработчиков dapp.

В этом посте Вы узнаете о том, что такое Arweave, почему я считаю его важным, и как Вы можете начать строить с его помощью. В этом посте речь пойдет о хранении и получении файлов, а не о запуске собственного производственного шлюза Arweave.

Arweave - это глобальный, постоянный и децентрализованный уровень хранения данных и файлов.

Для меня революционным в Arweave является тот факт, что я могу сохранить что-то один раз и рассчитывать на то, что это будет доступно всегда, не платя больше ни за что и не беспокоясь о том, что это исчезнет.

Сравните это с традиционными централизованными решениями для хранения данных, где если Вы забудете оплатить счет за месяц, то Вас отключат, или, что еще хуже, Вы или кто-то другой случайно удалит Ваши данные полностью.

Такая неизменность данных особенно важна в web3, где мы создаем неизменяемую инфраструктуру приложений. Данные блокчейна по своей природе уже неизменяемы, но Вы часто видите, что разработчики хранят данные вне цепи таким образом, который не соответствует лучшим практикам децентрализации и неизменяемости.

Например, в сфере не сгибаемых токенов, или NFT, некоторые разработчики используют централизованные хостинги для хранения метаданных токенов. Это нарушает важные свойства безопасности, необходимые для неизменяемости, а также идею о том, что вообще представляет собой NFT.

Если метаданные не являются постоянными, нет никакой гарантии, что свойство, которое представляет токен, будет существовать и в будущем. Это означает, что целостность токена находится под угрозой, если метаданные не хранятся на постоянном протоколе хранения файлов, таком как Arweave, и поэтому так важно, чтобы такие технологии существовали.

В рамках экосистемы The Graph мы также создаем поддержку и интеграцию для Arweave, поскольку признаем ценность этого протокола для создания действительно децентрализованных web3-приложений.

О компании Arweave

Arweave построен на двух технологиях: блокчейне, производной от блокчейна, и "доказательстве доступа".

Blockweave - это технология, которая питает Arweave. Как и блокчейн, блокчейн представляет собой связанную коллекцию блоков данных, ссылающихся на предыдущие блоки, записанные в сети.

Механизм консенсуса, используемый для обеспечения безопасного, децентрализованного хранения данных в Arweave, называется "Доказательство доступа". Этот механизм более эффективен и экологичен, чем доказательство работы, поскольку майнерам не нужно хранить все блоки. Благодаря этому экономится огромное количество электроэнергии, в то время как майнеры все еще могут прийти к консенсусу. Кроме того, по мере расширения сети потребление электроэнергии снижается.

Начало работы с Arweave

Есть два способа начать использовать токены Arweave

1. Загрузите кошелек Arweave

Вы можете начать с нового кошелька и получить часть токенов Arweave, воспользовавшись тестовым краном Arweave.

Как только Вы пройдете верификацию, Вам будет предоставлен 0,1 AR для использования, чтобы Вы могли начать тестировать Arweave в своем приложении.

2. Кошелек для браузера

Возможно, Вы пользовались браузерными и мобильными кошельками, такими как Metamask или Phantom, которые позволяют Вам взаимодействовать с web3-приложениями непосредственно из приложения. У компании Arweave есть похожий кошелек, который называется Arconnect.

Вы можете установить его непосредственно в качестве расширения для хрома и начать взаимодействовать с веб-приложениями, использующими Arweave.

Оттуда Вы можете пополнить кошелек токенами с любой из поддерживаемых бирж или импортировать Ваш кошелек, созданный на предыдущем шаге.

Чтобы следовать этому руководству, Вам не понадобятся токены, но у Вас должен быть установлен браузерный кошелек Arconnect.

Bundlr

В дополнение к технике, которую мы рассмотрим в этом уроке, Вы можете использовать Bundlr, который обеспечивает встроенную поддержку хранения Arweave на различных блокчейн смарт-контрактах, а также клиентские и серверные SDK для интеграции приложений.

Это отличный вариант, поскольку он не требует от пользователя владения AR-токенами, а вместо этого позволяет использовать другие сети и токены, такие как ETH, MATIC, Solana, Arbitrum и многие другие, для оплаты транзакций.

Чтобы узнать больше о Bundlr, ознакомьтесь с документацией здесь.

Строительство с Arweave

Теперь, когда мы получили общее представление об Arweave и закрепили наши токены, давайте создадим базовое приложение.

Приложение, которое мы создадим, позволит нам загружать и выгружать строку текста в Arweave.

Это базовый пример, но он отлично подходит для "Hello world", потому что в нем показаны инструменты и API, которые помогут Вам начать работу над проектом за короткий промежуток времени.

Первое, что мы сделаем, это создадим новое React-приложение с помощью create-react-app:

npx create-react-app

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 очень хорош, и именно его мы будем использовать в этом уроке.

Теперь давайте установим arweave-js с помощью npm или yarn:

npm install arweave

Сеть Arweave

Есть несколько способов, которыми Вы можете взаимодействовать с сетью Arweave:

  1. Devnet - arweave.dev
  2. Mainnet - https://arweave.net/
  3. Местное окружение - Arlocal

В этом руководстве мы начнем с Arlocal, который позволит нам отправлять тестовые транзакции бесплатно. Мы также узнаем, как использовать mainnet для отправки реальной транзакции.

Arlocal

Для локального тестирования мы можем использовать Arlocal, который запустит локальную сеть, с которой мы сможем взаимодействовать и отправлять в нее тестовые транзакции.

Вам даже не нужно ничего скачивать или устанавливать, чтобы использовать Arlocal. Если на Вашей машине установлен Node.js, Вы можете просто запустить локальный шлюз, выполнив команду:

npx arlocal

Вот и все! Теперь у Вас должен быть запущен локальный шлюз Arweave на сайте http://localhost:1984.

Теперь, когда у Вас запущен локальный шлюз, давайте напишем код.

Откройте файл src/App.js и обновите его, добавив следующий код:

import styles from '../styles/Home.module.css'

import { useState } from 'react'

import Arweave from 'arweave'

/ подключитесь к узлу Arweave или укажите шлюз /.

const arweave = Arweave.init({})

function App() {

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

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

async-функция createTransaction() {

if (!state) return

попробуйте {

const formData = state

setState('')

/ создает и отправляет транзакцию в Arweave /.

let transaction = await arweave.createTransaction({ data: formData })

await arweave.transactions.sign(transaction)

let uploader = await arweave.transactions.getUploader(transaction)

/ индикатор загрузки /

while (!uploader.isComplete) {

await uploader.uploadChunk()

console.log(${uploader.pctComplete}% завершения, ${uploader.uploadedChunks}/${uploader.totalChunks})

}

setTransactionId(transaction.id)

} catch (err) {

console.log('error: ', err)

}

}

async-функция readFromArweave() {

/ читайте данные Arweave, используя любой идентификатор транзакции /.

arweave.transactions

.getData(transactionId, {

декодировать: верно,

string: true,

})

.then((data) => {

console.log('данные: ', данные)

})

}

возврат (

<div className={styles.container}>

<button style={button} onClick={createTransaction}>

Создать транзакцию

</button></кнопка>

<button style={button} onClick={readFromArweave}>

Чтение транзакций

</button></кнопка>

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

</div>

)

}

const button = {

Контур: 'none',

border: '1px solid black',

backgroundColor: 'white',

padding: '10px',

ширина: '200px',

marginBottom: 10,

курсор: 'pointer',

}

const input = {

backgroundColor: '#ddd',

Контур: 'none',

border: 'none',

ширина: '200px',

fontSize: '16px',

padding: '10px',

}

экспортировать приложение по умолчанию

Затем запустите приложение:

npm start

Когда приложение запустится, Вы увидите базовую форму ввода с двумя кнопками.

Вы можете ввести в форму данные, которые хотите сохранить, а затем нажать кнопку Create Transaction, чтобы сохранить текст в Arweave.

После завершения транзакции Вы должны увидеть индикатор выполнения, выведенный на консоль, указывающий на то, что данные были сохранены.

Когда данные будут сохранены, нажмите Read Transaction, чтобы считать данные из Arweave.

Производственная сеть Arweave

Чтобы взаимодействовать с производственной сетью, Вам нужно только обновить конфигурацию сети Arweave.

const arweave = Arweave.init({

хост: 'arweave.net',

})

Код для этого проекта

Пример кодовой базы для проекта, который мы создали сегодня, доступен здесь.

Следующие шаги

Чтобы узнать больше об Arweave, ознакомьтесь с документацией Arweave, Arweave Wiki и следите за ними в Twitter.

О Edge & Node

Edge & Node - креативная компания по разработке программного обеспечения, работающая над созданием динамичного децентрализованного будущего. Команда Edge & Node, основанная командой, стоявшей у истоков The Graph, занимается развитием децентрализованного Интернета (web3) и распространением приложений с минимальным уровнем доверия. У команды большой опыт в разработке и поддержке программного обеспечения с открытым исходным кодом, инструментов и приложений.

Первый продукт компании Edge & Node - The Graph, протокол индексирования для запросов к таким сетям, как Ethereum и IPFS, который обеспечивает постоянный и легкий доступ к открытым данным. График используется тысячами протоколов и dapps, включая Uniswap, Livepeer, Aave, Decentraland и другие. Edge & Node также запустил Everest, первый децентрализованный реестр данных о цепочке, обеспечивающий постоянную полезность для криптосообщества, катализируя переход на web3.

Отказ от ответственности:

  1. Эта статья перепечатана с сайта[Edge & Node]. Все авторские права принадлежат оригинальному автору[Nader Dabit]. Если у Вас есть возражения против этой перепечатки, пожалуйста, свяжитесь с командой Gate Learn, и они незамедлительно рассмотрят их.
  2. Предупреждение об ответственности: Мнения и взгляды, выраженные в этой статье, принадлежат исключительно автору и не являются инвестиционным советом.
  3. Перевод статьи на другие языки осуществляется командой Gate Learn. Если не указано, копирование, распространение или плагиат переведенных статей запрещены.
Начните торговать сейчас
Зарегистрируйтесь сейчас и получите ваучер на
$100
!