Представляємо Building on web3 — нову серію блогів Edge & Node з метою ознайомлення розробників із протоколами, інструментами та найкращими практиками для розробки в просторі web3, що зростає. Створення на основі web3 висвітлить нові технології та проекти в екосистемі web3, щоб допомогти створити рецепт успіху для розробників dapp.
У цій публікації ви дізнаєтесь про те, що таке Arweave , чому я вважаю це важливим і як ви можете почати будувати з ним. Ця публікація буде зосереджена на зберіганні та пошуку файлів, а не на запуску власного робочого шлюзу Arweave.
Для мене революційним у Arweave є те, що я можу зберегти щось один раз і очікувати, що воно буде доступним назавжди, і мені ніколи не доведеться нічого платити знову або не хвилюватися, що воно зникне.
Порівняйте це з традиційними централізованими рішеннями для зберігання, де, якщо ви забудете оплатити свій рахунок протягом одного місяця, вас знищать, або ще гірше, ви або хтось інший випадково повністю видалить ваші дані.
Ця постійність даних особливо важлива в web3, де ми створюємо незмінну інфраструктуру додатків. Дані блокчейна за своєю природою вже є незмінними, але ви часто бачите, як розробники зберігають дані поза ланцюгом у спосіб, який не дотримується найкращих практик децентралізації чи незмінності.
Наприклад, у незамінному токені або просторі NFT деякі розробники використовують централізовані служби хостингу для зберігання метаданих токенів. Це порушує важливі властивості безпеки, необхідні для незмінності, а також уявлення про те, що собою представляє NFT.
Якщо метадані не є постійними, немає гарантії, що властивість, яку представляє токен, існуватиме в майбутньому. Це означає, що цілісність маркера під загрозою, якщо метадані не зберігаються на постійному протоколі зберігання файлів, як-от Arweave, і чому це так важливо для таких технологій.
В екосистемі The Graph ми також створюємо підтримку та інтеграцію для Arweave, оскільки ми визнаємо цінність протоколу для створення справді децентралізованих програм web3.
Arweave побудовано на двох технологіях: blockweave, похідній від blockchain, і «Proof of Access».
Blockweave — це технологія, на якій базується Arweave. Подібно до блокчейну, блокове переплетення являє собою пов’язану колекцію блоків даних, які посилаються на попередні блоки, записані в мережу.
Механізм консенсусу, який використовується для забезпечення безпечного децентралізованого зберігання даних в Arweave, називається «Доказом доступу». Цей механізм більш ефективний і екологічно чистий, ніж доказ роботи, оскільки майнерам не потрібно зберігати всі блоки. Завдяки цьому зберігається величезна кількість електроенергії, хоча майнери все ще можуть дійти консенсусу. Також із розширенням мережі споживання електроенергії зменшується.
Є два способи почати використовувати токени Arweave
Ви можете почати з нового гаманця та отримати частку токенів Arweave за допомогою тестового крана Arweave.
Після підтвердження ви отримаєте 0,1 AR, щоб почати тестувати Arweave у своїй програмі.
Можливо, ви використовували браузерні та мобільні гаманці, такі як Metamask або Phantom, які дозволяють вам взаємодіяти з додатками web3 безпосередньо з додатка. У Arweave є подібний гаманець під назвою Arconnect.
Ви можете встановити це безпосередньо як розширення Chrome і почати взаємодіяти з веб-додатками, які використовують Arweave.
Звідти ви можете поповнювати гаманець токенами з будь-якої підтримуваної біржі або імпортувати свій гаманець, створений на попередньому кроці.
Щоб дотримуватися цього підручника, вам не знадобляться жодні токени, але у вас повинен бути встановлений гаманець браузера Arconnect.
На додаток до техніки, яку ми розглянемо в цьому підручнику, ви можете використовувати Bundlr , який забезпечує вбудовану підтримку сховища Arweave у різних блокчейнах смарт-контрактів, а також SDK на стороні клієнта та на стороні сервера для інтеграції програми.
Це чудовий варіант, оскільки він не вимагає від користувача володіння AR-токенами, натомість він може покладатися на інші мережі та токени, такі як ETH, MATIC, Solana, Arbitrum та багато інших для оплати транзакцій.
Щоб дізнатися більше про Bundlr, перегляньте документацію тут.
Тепер, коли ми маємо огляд Arweave і захистили свої маркери, давайте створимо базову програму.
Програма, яку ми створимо, дозволить нам завантажувати та завантажувати рядок тексту в Arweave.
Це простий приклад, але чудовий «Hello world», тому що він проходить через інструменти та API, які допоможуть вам розпочати створення за короткий проміжок часу.
Перше, що ми зробимо, це створимо нову програму React за допомогою create-react-app:
npx create-react-app
arweave-appcd arweave-додаток
Існує два основних способи виклику мережі Arweave із вашої програми:
Arweave JS SDK дуже гарний, і саме його ми будемо використовувати для цього підручника.
Давайте тепер встановимо arweave-js за допомогою npm або yarn:
npm встановити arweave
Є кілька способів взаємодії з мережею Arweave:
У цьому посібнику ми почнемо з Arlocal, який дозволить нам безкоштовно надсилати тестові транзакції. Ми також навчимося використовувати основну мережу для надсилання справжньої транзакції.
Для локального тестування ми можемо використовувати Arlocal, який запустить локальну мережу, з якою ми зможемо взаємодіяти та надсилати тестові транзакції.
Вам навіть не потрібно нічого завантажувати чи встановлювати, щоб використовувати Arlocal, якщо на вашому комп’ютері встановлено Node.js, ви можете просто запустити локальний шлюз, виконавши:
npx arlocal
Це воно! Тепер ви повинні запустити локальний шлюз Arweave на http://localhost:1984
Тепер, коли у вас працює локальний шлюз, давайте напишемо код.
Відкрийте src/App.js і оновіть файл таким кодом:
імпортувати стилі з '../styles/Home.module.css'
імпортувати { useState } з 'react'
імпортувати Arweave з 'arweave'
/ підключитися до вузла Arweave або вказати шлюз /
const arweave = Arweave.init({})
функція App() {
const [стан, setState] = useState('')
const [transactionId, setTransactionId] = useState('')
асинхронна функція createTransaction() {
if (!state) повернення
спробуй {
const formData = стан
setState('')
/ створює та надсилає транзакцію до Arweave /
let transaction = await arweave.createTransaction({ data: formData })
очікувати arweave.transactions.sign(транзакція)
let uploader = await arweave.transactions.getUploader(transaction)
/ індикатор завантаження /
поки (!uploader.isComplete) {
очікувати uploader.uploadChunk()
console.log(${uploader.pctComplete}% complete,
${uploader.uploadedChunks}/${uploader.totalChunks}
)
}
setTransactionId(transaction.id)
} catch (err) {
console.log('помилка: ', помилка)
}
}
асинхронна функція readFromArweave() {
/ читати дані Arweave, використовуючи будь-який ідентифікатор trsnsaction /
arweave.transactions
.getData(transactionId, {
декодувати: правда,
рядок: true,
})
.then((дані) => {
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 = {
контур: 'немає',
рамка: '1px суцільний чорний',
backgroundColor: 'білий',
padding: '10px',
ширина: '200px',
marginBottom: 10,
cursor: 'покажчик',
}
const input = {
backgroundColor: '#ddd',
контур: 'немає',
межа: 'немає',
ширина: '200px',
розмір шрифту: '16px',
padding: '10px',
}
експорт програми за замовчуванням
Далі запустіть додаток:
початок npm
Коли програма запуститься, ви побачите базову форму введення з двома кнопками.
Ви можете ввести у форму дані, які хочете зберегти, а потім натиснути «Створити транзакцію», щоб зберегти текст в Arweave.
Після завершення транзакції ви повинні побачити індикатор прогресу, який вийшов із консолі, вказуючи на те, що дані збережено.
Після збереження даних натисніть «Прочитати транзакцію», щоб прочитати дані з Arweave.
Щоб взаємодіяти з робочою мережею, вам потрібно лише оновити конфігурацію мережі Arweave.
const arweave = Arweave.init({
хост: 'arweave.net',
})
Приклад кодової бази для проекту, який ми створили сьогодні, доступний тут.
Щоб дізнатися більше про Arweave, перегляньте документи Arweave, Arweave Wiki та підписуйтесь на них у Twitter.
Edge & Node – це творча компанія з розробки програмного забезпечення, яка працює над побудовою яскравого, децентралізованого майбутнього. Компанія Edge & Node, заснована початковою командою The Graph, займається розвитком децентралізованого Інтернету (web3) і розповсюдженням додатків з мінімізованою довірою. Команда має великий досвід у розробці та підтримці програмного забезпечення, інструментів і програм з відкритим кодом. .
Першим продуктом Edge & Node є The Graph, протокол індексування для запитів у таких мережах, як Ethereum та IPFS, який забезпечує постійну доступність відкритих даних і легкий доступ. Graph використовується тисячами протоколів і прикладних програм, зокрема Uniswap, Livepeer, Aave, Decentraland тощо. Edge & Node також запустили Everest, перший децентралізований реєстр даних у ланцюжку, який забезпечує постійну корисність криптоспільноті, каталізуючи перехід до web3.
Представляємо Building on web3 — нову серію блогів Edge & Node з метою ознайомлення розробників із протоколами, інструментами та найкращими практиками для розробки в просторі web3, що зростає. Створення на основі web3 висвітлить нові технології та проекти в екосистемі web3, щоб допомогти створити рецепт успіху для розробників dapp.
У цій публікації ви дізнаєтесь про те, що таке Arweave , чому я вважаю це важливим і як ви можете почати будувати з ним. Ця публікація буде зосереджена на зберіганні та пошуку файлів, а не на запуску власного робочого шлюзу Arweave.
Для мене революційним у Arweave є те, що я можу зберегти щось один раз і очікувати, що воно буде доступним назавжди, і мені ніколи не доведеться нічого платити знову або не хвилюватися, що воно зникне.
Порівняйте це з традиційними централізованими рішеннями для зберігання, де, якщо ви забудете оплатити свій рахунок протягом одного місяця, вас знищать, або ще гірше, ви або хтось інший випадково повністю видалить ваші дані.
Ця постійність даних особливо важлива в web3, де ми створюємо незмінну інфраструктуру додатків. Дані блокчейна за своєю природою вже є незмінними, але ви часто бачите, як розробники зберігають дані поза ланцюгом у спосіб, який не дотримується найкращих практик децентралізації чи незмінності.
Наприклад, у незамінному токені або просторі NFT деякі розробники використовують централізовані служби хостингу для зберігання метаданих токенів. Це порушує важливі властивості безпеки, необхідні для незмінності, а також уявлення про те, що собою представляє NFT.
Якщо метадані не є постійними, немає гарантії, що властивість, яку представляє токен, існуватиме в майбутньому. Це означає, що цілісність маркера під загрозою, якщо метадані не зберігаються на постійному протоколі зберігання файлів, як-от Arweave, і чому це так важливо для таких технологій.
В екосистемі The Graph ми також створюємо підтримку та інтеграцію для Arweave, оскільки ми визнаємо цінність протоколу для створення справді децентралізованих програм web3.
Arweave побудовано на двох технологіях: blockweave, похідній від blockchain, і «Proof of Access».
Blockweave — це технологія, на якій базується Arweave. Подібно до блокчейну, блокове переплетення являє собою пов’язану колекцію блоків даних, які посилаються на попередні блоки, записані в мережу.
Механізм консенсусу, який використовується для забезпечення безпечного децентралізованого зберігання даних в Arweave, називається «Доказом доступу». Цей механізм більш ефективний і екологічно чистий, ніж доказ роботи, оскільки майнерам не потрібно зберігати всі блоки. Завдяки цьому зберігається величезна кількість електроенергії, хоча майнери все ще можуть дійти консенсусу. Також із розширенням мережі споживання електроенергії зменшується.
Є два способи почати використовувати токени Arweave
Ви можете почати з нового гаманця та отримати частку токенів Arweave за допомогою тестового крана Arweave.
Після підтвердження ви отримаєте 0,1 AR, щоб почати тестувати Arweave у своїй програмі.
Можливо, ви використовували браузерні та мобільні гаманці, такі як Metamask або Phantom, які дозволяють вам взаємодіяти з додатками web3 безпосередньо з додатка. У Arweave є подібний гаманець під назвою Arconnect.
Ви можете встановити це безпосередньо як розширення Chrome і почати взаємодіяти з веб-додатками, які використовують Arweave.
Звідти ви можете поповнювати гаманець токенами з будь-якої підтримуваної біржі або імпортувати свій гаманець, створений на попередньому кроці.
Щоб дотримуватися цього підручника, вам не знадобляться жодні токени, але у вас повинен бути встановлений гаманець браузера Arconnect.
На додаток до техніки, яку ми розглянемо в цьому підручнику, ви можете використовувати Bundlr , який забезпечує вбудовану підтримку сховища Arweave у різних блокчейнах смарт-контрактів, а також SDK на стороні клієнта та на стороні сервера для інтеграції програми.
Це чудовий варіант, оскільки він не вимагає від користувача володіння AR-токенами, натомість він може покладатися на інші мережі та токени, такі як ETH, MATIC, Solana, Arbitrum та багато інших для оплати транзакцій.
Щоб дізнатися більше про Bundlr, перегляньте документацію тут.
Тепер, коли ми маємо огляд Arweave і захистили свої маркери, давайте створимо базову програму.
Програма, яку ми створимо, дозволить нам завантажувати та завантажувати рядок тексту в Arweave.
Це простий приклад, але чудовий «Hello world», тому що він проходить через інструменти та API, які допоможуть вам розпочати створення за короткий проміжок часу.
Перше, що ми зробимо, це створимо нову програму React за допомогою create-react-app:
npx create-react-app
arweave-appcd arweave-додаток
Існує два основних способи виклику мережі Arweave із вашої програми:
Arweave JS SDK дуже гарний, і саме його ми будемо використовувати для цього підручника.
Давайте тепер встановимо arweave-js за допомогою npm або yarn:
npm встановити arweave
Є кілька способів взаємодії з мережею Arweave:
У цьому посібнику ми почнемо з Arlocal, який дозволить нам безкоштовно надсилати тестові транзакції. Ми також навчимося використовувати основну мережу для надсилання справжньої транзакції.
Для локального тестування ми можемо використовувати Arlocal, який запустить локальну мережу, з якою ми зможемо взаємодіяти та надсилати тестові транзакції.
Вам навіть не потрібно нічого завантажувати чи встановлювати, щоб використовувати Arlocal, якщо на вашому комп’ютері встановлено Node.js, ви можете просто запустити локальний шлюз, виконавши:
npx arlocal
Це воно! Тепер ви повинні запустити локальний шлюз Arweave на http://localhost:1984
Тепер, коли у вас працює локальний шлюз, давайте напишемо код.
Відкрийте src/App.js і оновіть файл таким кодом:
імпортувати стилі з '../styles/Home.module.css'
імпортувати { useState } з 'react'
імпортувати Arweave з 'arweave'
/ підключитися до вузла Arweave або вказати шлюз /
const arweave = Arweave.init({})
функція App() {
const [стан, setState] = useState('')
const [transactionId, setTransactionId] = useState('')
асинхронна функція createTransaction() {
if (!state) повернення
спробуй {
const formData = стан
setState('')
/ створює та надсилає транзакцію до Arweave /
let transaction = await arweave.createTransaction({ data: formData })
очікувати arweave.transactions.sign(транзакція)
let uploader = await arweave.transactions.getUploader(transaction)
/ індикатор завантаження /
поки (!uploader.isComplete) {
очікувати uploader.uploadChunk()
console.log(${uploader.pctComplete}% complete,
${uploader.uploadedChunks}/${uploader.totalChunks}
)
}
setTransactionId(transaction.id)
} catch (err) {
console.log('помилка: ', помилка)
}
}
асинхронна функція readFromArweave() {
/ читати дані Arweave, використовуючи будь-який ідентифікатор trsnsaction /
arweave.transactions
.getData(transactionId, {
декодувати: правда,
рядок: true,
})
.then((дані) => {
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 = {
контур: 'немає',
рамка: '1px суцільний чорний',
backgroundColor: 'білий',
padding: '10px',
ширина: '200px',
marginBottom: 10,
cursor: 'покажчик',
}
const input = {
backgroundColor: '#ddd',
контур: 'немає',
межа: 'немає',
ширина: '200px',
розмір шрифту: '16px',
padding: '10px',
}
експорт програми за замовчуванням
Далі запустіть додаток:
початок npm
Коли програма запуститься, ви побачите базову форму введення з двома кнопками.
Ви можете ввести у форму дані, які хочете зберегти, а потім натиснути «Створити транзакцію», щоб зберегти текст в Arweave.
Після завершення транзакції ви повинні побачити індикатор прогресу, який вийшов із консолі, вказуючи на те, що дані збережено.
Після збереження даних натисніть «Прочитати транзакцію», щоб прочитати дані з Arweave.
Щоб взаємодіяти з робочою мережею, вам потрібно лише оновити конфігурацію мережі Arweave.
const arweave = Arweave.init({
хост: 'arweave.net',
})
Приклад кодової бази для проекту, який ми створили сьогодні, доступний тут.
Щоб дізнатися більше про Arweave, перегляньте документи Arweave, Arweave Wiki та підписуйтесь на них у Twitter.
Edge & Node – це творча компанія з розробки програмного забезпечення, яка працює над побудовою яскравого, децентралізованого майбутнього. Компанія Edge & Node, заснована початковою командою The Graph, займається розвитком децентралізованого Інтернету (web3) і розповсюдженням додатків з мінімізованою довірою. Команда має великий досвід у розробці та підтримці програмного забезпечення, інструментів і програм з відкритим кодом. .
Першим продуктом Edge & Node є The Graph, протокол індексування для запитів у таких мережах, як Ethereum та IPFS, який забезпечує постійну доступність відкритих даних і легкий доступ. Graph використовується тисячами протоколів і прикладних програм, зокрема Uniswap, Livepeer, Aave, Decentraland тощо. Edge & Node також запустили Everest, перший децентралізований реєстр даних у ланцюжку, який забезпечує постійну корисність криптоспільноті, каталізуючи перехід до web3.