Giới thiệu Xây dựng trên web3 — một loạt blog Edge & Node mới nhằm mục đích giúp các nhà phát triển làm quen với các giao thức, công cụ và các phương pháp hay nhất để phát triển trong không gian web3 đang phát triển. Việc xây dựng trên web3 sẽ làm nổi bật các công nghệ và dự án mới nổi trong hệ sinh thái web3 nhằm giúp tạo ra công thức thành công cho các nhà phát triển dapp.
Trong bài đăng này, bạn sẽ tìm hiểu về Arweave là gì, tại sao tôi nghĩ nó quan trọng và cách bạn có thể bắt đầu xây dựng với nó. Bài đăng này sẽ tập trung vào việc lưu trữ và truy xuất tệp chứ không tập trung vào việc chạy cổng Arweave sản xuất của riêng bạn.
Đối với tôi, điều mang tính cách mạng về Arweave là tôi có thể lưu trữ thứ gì đó một lần và mong đợi rằng nó sẽ có sẵn mãi mãi mà không cần phải trả bất kỳ khoản nào nữa hoặc không phải lo lắng về việc nó sẽ biến mất.
Hãy so sánh điều đó với các giải pháp lưu trữ tập trung, truyền thống, trong đó nếu bạn quên thanh toán hóa đơn một tháng thì bạn sẽ bị gỡ xuống hoặc thậm chí tệ hơn là bạn hoặc người khác vô tình xóa hoàn toàn dữ liệu của bạn.
Tính lâu dài của dữ liệu này đặc biệt quan trọng trong web3 nơi chúng tôi đang xây dựng cơ sở hạ tầng ứng dụng bất biến. Về bản chất, dữ liệu chuỗi khối là bất biến, nhưng bạn thường thấy các nhà phát triển lưu trữ dữ liệu ngoài chuỗi theo những cách không tuân thủ các phương pháp hay nhất về phân quyền hoặc bất biến.
Ví dụ: trong không gian mã thông báo không thể thay thế hoặc không gian NFT, một số nhà phát triển sử dụng dịch vụ lưu trữ tập trung để lưu trữ siêu dữ liệu mã thông báo. Điều này phá vỡ các thuộc tính bảo mật quan trọng cần thiết cho tính bất biến cũng như ý tưởng về những gì NFT thể hiện ngay từ đầu.
Nếu siêu dữ liệu không cố định thì không có gì đảm bảo rằng thuộc tính mà mã thông báo đại diện sẽ vẫn tồn tại trong tương lai. Điều này có nghĩa là tính toàn vẹn của mã thông báo sẽ bị đe dọa nếu siêu dữ liệu không được lưu trữ trên giao thức lưu trữ tệp cố định như Arweave và tại sao việc tồn tại các công nghệ như thế này lại quan trọng đến vậy.
Trong hệ sinh thái The Graph, chúng tôi cũng đang xây dựng sự hỗ trợ và tích hợp cho Arweave vì chúng tôi nhận ra giá trị của giao thức để xây dựng các ứng dụng web3 phi tập trung thực sự.
Arweave được xây dựng trên hai công nghệ: blockweave, một công cụ phái sinh của blockchain và 'Bằng chứng truy cập'.
Blockweave là công nghệ hỗ trợ Arweave. Giống như một blockchain, blockweave là một tập hợp các khối dữ liệu được liên kết với các khối trước đó được ghi vào mạng.
Cơ chế đồng thuận được sử dụng để tạo điều kiện lưu trữ dữ liệu phi tập trung, an toàn trong Arweave được gọi là 'Bằng chứng truy cập'. Cơ chế này hiệu quả và thân thiện với môi trường hơn cơ chế bằng chứng công việc vì thợ đào không cần lưu trữ tất cả các khối. Nhờ đó, một lượng điện khổng lồ được tiết kiệm trong khi các thợ đào vẫn có thể đạt được sự đồng thuận. Ngoài ra, khi mạng lưới mở rộng, mức tiêu thụ điện sẽ giảm.
Có hai cách để bắt đầu sử dụng mã thông báo Arweave
Bạn có thể bắt đầu với một ví mới và nhận một phần mã thông báo Arweave bằng cách sử dụng vòi thử nghiệm Arweave.
Sau khi xác minh, bạn sẽ được cấp 0,1 AR để sử dụng nhằm bắt đầu thử nghiệm Arweave trong ứng dụng của mình.
Bạn có thể đã sử dụng trình duyệt và ví di động như Metamask hoặc Phantom, cho phép bạn tương tác trực tiếp với các ứng dụng web3 từ một ứng dụng. Arweave có một ví tương tự, được gọi là Arconnect.
Bạn có thể cài đặt trực tiếp tiện ích này dưới dạng tiện ích mở rộng của Chrome và bắt đầu tương tác với các ứng dụng web sử dụng Arweave.
Từ đó, bạn có thể nạp tiền vào ví bằng token từ bất kỳ sàn giao dịch nào được hỗ trợ hoặc bạn có thể nhập ví của mình đã tạo ở bước trước.
Để làm theo hướng dẫn này, bạn sẽ không cần bất kỳ token nào nhưng bạn phải cài đặt ví trình duyệt Arconnect.
Ngoài kỹ thuật mà chúng tôi sẽ đề cập trong hướng dẫn này, bạn có thể chọn sử dụng Bundlr cho phép hỗ trợ riêng cho việc lưu trữ Arweave trên các chuỗi khối hợp đồng thông minh khác nhau cũng như SDK phía máy khách và phía máy chủ để tích hợp ứng dụng.
Đây là một lựa chọn tuyệt vời vì nó không yêu cầu người dùng phải giữ mã thông báo AR mà thay vào đó có thể dựa vào các mạng và mã thông báo khác như ETH, MATIC, Solana, Arbitrum và nhiều mạng khác để thanh toán cho các giao dịch.
Để tìm hiểu thêm về Bundlr, hãy xem tài liệu tại đây.
Bây giờ chúng ta đã có cái nhìn tổng quan về Arweave và đã bảo mật mã thông báo của mình, hãy xây dựng một ứng dụng cơ bản.
Ứng dụng mà chúng tôi sẽ xây dựng sẽ cho phép chúng tôi tải lên và tải xuống một chuỗi văn bản lên Arweave.
Đây là một ví dụ cơ bản nhưng là một ví dụ “Xin chào thế giới” tuyệt vời vì nó hướng dẫn các công cụ và API để giúp bạn bắt đầu xây dựng trong một khoảng thời gian ngắn.
Điều đầu tiên chúng ta sẽ làm là tạo một ứng dụng React mới bằng ứng dụng tạo phản ứng:
ứng dụng tạo phản ứng npx
arweave-appcd arweave-app
Có hai cách chính để gọi mạng Arweave từ ứng dụng của bạn:
SDK Arweave JS rất hay và là thứ chúng tôi sẽ sử dụng cho hướng dẫn này.
Bây giờ hãy cài đặt arweave-js bằng npm hoặc sợi:
npm cài đặt arweave
Có một số cách bạn có thể tương tác với mạng Arweave:
Trong hướng dẫn này, chúng tôi sẽ bắt đầu với Arlocal, ứng dụng này sẽ cho phép chúng tôi gửi các giao dịch thử nghiệm miễn phí. Chúng ta cũng sẽ tìm hiểu cách sử dụng mạng chính để gửi giao dịch thực.
Để kiểm tra cục bộ, chúng tôi có thể sử dụng Arlocal, mạng này sẽ chạy một mạng cục bộ mà chúng tôi có thể tương tác và gửi các giao dịch thử nghiệm tới.
Bạn thậm chí không cần tải xuống hoặc cài đặt bất cứ thứ gì để sử dụng Arlocal, miễn là bạn đã cài đặt Node.js trên máy của mình, bạn chỉ cần khởi động một cổng cục bộ bằng cách chạy:
npx arlocal
Đó là nó! Bây giờ bạn sẽ chạy một cổng Arweave cục bộ trên http://localhost:1984
Bây giờ bạn đã có một cổng cục bộ đang chạy, hãy viết mã.
Mở src/App.js và cập nhật tệp với đoạn mã sau:
nhập kiểu từ '../styles/Home.module.css'
nhập { useState } từ 'phản ứng'
nhập Arweave từ 'arweave'
/ kết nối với nút Arweave hoặc chỉ định một cổng /
const arweave = Arweave.init({})
hàm Ứng dụng() {
const [trạng thái, setState] = useState('')
const [transactionId, setTransactionId] = useState('')
hàm không đồng bộ createTransaction() {
if (!state) trả về
thử {
const formData = trạng thái
setState('')
/ tạo và gửi giao dịch tới Arweave /
hãy giao dịch = đang chờ arweave.createTransaction({ data: formData })
đang chờ arweave.transactions.sign(giao dịch)
hãy để người tải lên = chờ arweave.transactions.getUploader(giao dịch)
/ chỉ báo tải lên /
trong khi (! uploader.isComplete) {
đang chờ uploader.uploadChunk()
console.log(${uploader.pctComplete}% complete,
${uploader.uploadedChunks}/${uploader.totalChunks}
)
}
setTransactionId(transaction.id)
} bắt (lỗi) {
console.log('error: ', err)
}
}
hàm không đồng bộ readFromArweave() {
/ đọc dữ liệu Arweave bằng bất kỳ ID trsnsaction nào /
arweave.transactions
.getData(transactionId, {
giải mã: đúng,
chuỗi: đúng,
})
.then((dữ liệu) => {
console.log('data: ', data)
})
}
trở lại (
<div className={styles.container}>
<button style={button} onClick={createTransaction}>
Tạo giao dịch
</button>
<button style={button} onClick={readFromArweave}>
Đọc giao dịch
</button>
<input style={input} onChange={(e) => setState(e.target.value)} placeholder=”text” value={state} />
</div>
)
}
nút const = {
phác thảo: 'không',
đường viền: '1px màu đen đặc',
màu nền: 'trắng',
phần đệm: '10px',
chiều rộng: '200px',
lềDưới: 10,
con trỏ: 'con trỏ',
}
đầu vào const = {
màu nền: '#ddd',
phác thảo: 'không',
đường viền: 'không',
chiều rộng: '200px',
Kích thước phông chữ: '16px',
phần đệm: '10px',
}
xuất ứng dụng mặc định
Tiếp theo, khởi động ứng dụng:
bắt đầu npm
Khi ứng dụng khởi động, bạn sẽ thấy mục nhập biểu mẫu cơ bản có hai nút.
Bạn có thể nhập dữ liệu bạn muốn lưu vào biểu mẫu, sau đó nhấn Tạo giao dịch để lưu văn bản trong Arweave.
Sau khi giao dịch hoàn tất, bạn sẽ thấy chỉ báo tiến trình được đăng xuất khỏi bảng điều khiển cho biết dữ liệu đã được lưu.
Sau khi lưu dữ liệu, hãy nhấp vào Đọc giao dịch để đọc dữ liệu từ Arweave.
Để tương tác với mạng sản xuất, bạn chỉ cần cập nhật cấu hình mạng Arweave.
const arweave = Arweave.init({
máy chủ: 'arweave.net',
})
Một cơ sở mã ví dụ cho dự án mà chúng tôi xây dựng hôm nay có sẵn tại đây.
Để tìm hiểu thêm về Arweave, hãy xem tài liệu Arweave, Arweave Wiki và theo dõi chúng trên Twitter.
Edge & Node là một công ty phát triển phần mềm sáng tạo đang nỗ lực xây dựng một tương lai phi tập trung, sôi động. Được thành lập bởi nhóm ban đầu đằng sau The Graph, Edge & Node được dành riêng cho sự phát triển của internet phi tập trung (web3) và sự phát triển của các ứng dụng giảm thiểu độ tin cậy. Nhóm có nhiều kinh nghiệm trong việc phát triển và duy trì phần mềm, công cụ và ứng dụng nguồn mở .
Sản phẩm ban đầu của Edge & Node là The Graph, một giao thức lập chỉ mục để truy vấn các mạng như Ethereum và IPFS, đảm bảo dữ liệu mở luôn có sẵn và dễ dàng truy cập. Đồ thị được sử dụng bởi hàng nghìn giao thức và dapp bao gồm Uniswap, Livepeer, Aave, Decentraland, v.v. Edge & Node cũng đã ra mắt Everest, cơ quan đăng ký dữ liệu trên chuỗi phi tập trung đầu tiên nhằm cung cấp tiện ích liên tục cho cộng đồng tiền điện tử, xúc tác cho sự chuyển đổi sang web3.
Giới thiệu Xây dựng trên web3 — một loạt blog Edge & Node mới nhằm mục đích giúp các nhà phát triển làm quen với các giao thức, công cụ và các phương pháp hay nhất để phát triển trong không gian web3 đang phát triển. Việc xây dựng trên web3 sẽ làm nổi bật các công nghệ và dự án mới nổi trong hệ sinh thái web3 nhằm giúp tạo ra công thức thành công cho các nhà phát triển dapp.
Trong bài đăng này, bạn sẽ tìm hiểu về Arweave là gì, tại sao tôi nghĩ nó quan trọng và cách bạn có thể bắt đầu xây dựng với nó. Bài đăng này sẽ tập trung vào việc lưu trữ và truy xuất tệp chứ không tập trung vào việc chạy cổng Arweave sản xuất của riêng bạn.
Đối với tôi, điều mang tính cách mạng về Arweave là tôi có thể lưu trữ thứ gì đó một lần và mong đợi rằng nó sẽ có sẵn mãi mãi mà không cần phải trả bất kỳ khoản nào nữa hoặc không phải lo lắng về việc nó sẽ biến mất.
Hãy so sánh điều đó với các giải pháp lưu trữ tập trung, truyền thống, trong đó nếu bạn quên thanh toán hóa đơn một tháng thì bạn sẽ bị gỡ xuống hoặc thậm chí tệ hơn là bạn hoặc người khác vô tình xóa hoàn toàn dữ liệu của bạn.
Tính lâu dài của dữ liệu này đặc biệt quan trọng trong web3 nơi chúng tôi đang xây dựng cơ sở hạ tầng ứng dụng bất biến. Về bản chất, dữ liệu chuỗi khối là bất biến, nhưng bạn thường thấy các nhà phát triển lưu trữ dữ liệu ngoài chuỗi theo những cách không tuân thủ các phương pháp hay nhất về phân quyền hoặc bất biến.
Ví dụ: trong không gian mã thông báo không thể thay thế hoặc không gian NFT, một số nhà phát triển sử dụng dịch vụ lưu trữ tập trung để lưu trữ siêu dữ liệu mã thông báo. Điều này phá vỡ các thuộc tính bảo mật quan trọng cần thiết cho tính bất biến cũng như ý tưởng về những gì NFT thể hiện ngay từ đầu.
Nếu siêu dữ liệu không cố định thì không có gì đảm bảo rằng thuộc tính mà mã thông báo đại diện sẽ vẫn tồn tại trong tương lai. Điều này có nghĩa là tính toàn vẹn của mã thông báo sẽ bị đe dọa nếu siêu dữ liệu không được lưu trữ trên giao thức lưu trữ tệp cố định như Arweave và tại sao việc tồn tại các công nghệ như thế này lại quan trọng đến vậy.
Trong hệ sinh thái The Graph, chúng tôi cũng đang xây dựng sự hỗ trợ và tích hợp cho Arweave vì chúng tôi nhận ra giá trị của giao thức để xây dựng các ứng dụng web3 phi tập trung thực sự.
Arweave được xây dựng trên hai công nghệ: blockweave, một công cụ phái sinh của blockchain và 'Bằng chứng truy cập'.
Blockweave là công nghệ hỗ trợ Arweave. Giống như một blockchain, blockweave là một tập hợp các khối dữ liệu được liên kết với các khối trước đó được ghi vào mạng.
Cơ chế đồng thuận được sử dụng để tạo điều kiện lưu trữ dữ liệu phi tập trung, an toàn trong Arweave được gọi là 'Bằng chứng truy cập'. Cơ chế này hiệu quả và thân thiện với môi trường hơn cơ chế bằng chứng công việc vì thợ đào không cần lưu trữ tất cả các khối. Nhờ đó, một lượng điện khổng lồ được tiết kiệm trong khi các thợ đào vẫn có thể đạt được sự đồng thuận. Ngoài ra, khi mạng lưới mở rộng, mức tiêu thụ điện sẽ giảm.
Có hai cách để bắt đầu sử dụng mã thông báo Arweave
Bạn có thể bắt đầu với một ví mới và nhận một phần mã thông báo Arweave bằng cách sử dụng vòi thử nghiệm Arweave.
Sau khi xác minh, bạn sẽ được cấp 0,1 AR để sử dụng nhằm bắt đầu thử nghiệm Arweave trong ứng dụng của mình.
Bạn có thể đã sử dụng trình duyệt và ví di động như Metamask hoặc Phantom, cho phép bạn tương tác trực tiếp với các ứng dụng web3 từ một ứng dụng. Arweave có một ví tương tự, được gọi là Arconnect.
Bạn có thể cài đặt trực tiếp tiện ích này dưới dạng tiện ích mở rộng của Chrome và bắt đầu tương tác với các ứng dụng web sử dụng Arweave.
Từ đó, bạn có thể nạp tiền vào ví bằng token từ bất kỳ sàn giao dịch nào được hỗ trợ hoặc bạn có thể nhập ví của mình đã tạo ở bước trước.
Để làm theo hướng dẫn này, bạn sẽ không cần bất kỳ token nào nhưng bạn phải cài đặt ví trình duyệt Arconnect.
Ngoài kỹ thuật mà chúng tôi sẽ đề cập trong hướng dẫn này, bạn có thể chọn sử dụng Bundlr cho phép hỗ trợ riêng cho việc lưu trữ Arweave trên các chuỗi khối hợp đồng thông minh khác nhau cũng như SDK phía máy khách và phía máy chủ để tích hợp ứng dụng.
Đây là một lựa chọn tuyệt vời vì nó không yêu cầu người dùng phải giữ mã thông báo AR mà thay vào đó có thể dựa vào các mạng và mã thông báo khác như ETH, MATIC, Solana, Arbitrum và nhiều mạng khác để thanh toán cho các giao dịch.
Để tìm hiểu thêm về Bundlr, hãy xem tài liệu tại đây.
Bây giờ chúng ta đã có cái nhìn tổng quan về Arweave và đã bảo mật mã thông báo của mình, hãy xây dựng một ứng dụng cơ bản.
Ứng dụng mà chúng tôi sẽ xây dựng sẽ cho phép chúng tôi tải lên và tải xuống một chuỗi văn bản lên Arweave.
Đây là một ví dụ cơ bản nhưng là một ví dụ “Xin chào thế giới” tuyệt vời vì nó hướng dẫn các công cụ và API để giúp bạn bắt đầu xây dựng trong một khoảng thời gian ngắn.
Điều đầu tiên chúng ta sẽ làm là tạo một ứng dụng React mới bằng ứng dụng tạo phản ứng:
ứng dụng tạo phản ứng npx
arweave-appcd arweave-app
Có hai cách chính để gọi mạng Arweave từ ứng dụng của bạn:
SDK Arweave JS rất hay và là thứ chúng tôi sẽ sử dụng cho hướng dẫn này.
Bây giờ hãy cài đặt arweave-js bằng npm hoặc sợi:
npm cài đặt arweave
Có một số cách bạn có thể tương tác với mạng Arweave:
Trong hướng dẫn này, chúng tôi sẽ bắt đầu với Arlocal, ứng dụng này sẽ cho phép chúng tôi gửi các giao dịch thử nghiệm miễn phí. Chúng ta cũng sẽ tìm hiểu cách sử dụng mạng chính để gửi giao dịch thực.
Để kiểm tra cục bộ, chúng tôi có thể sử dụng Arlocal, mạng này sẽ chạy một mạng cục bộ mà chúng tôi có thể tương tác và gửi các giao dịch thử nghiệm tới.
Bạn thậm chí không cần tải xuống hoặc cài đặt bất cứ thứ gì để sử dụng Arlocal, miễn là bạn đã cài đặt Node.js trên máy của mình, bạn chỉ cần khởi động một cổng cục bộ bằng cách chạy:
npx arlocal
Đó là nó! Bây giờ bạn sẽ chạy một cổng Arweave cục bộ trên http://localhost:1984
Bây giờ bạn đã có một cổng cục bộ đang chạy, hãy viết mã.
Mở src/App.js và cập nhật tệp với đoạn mã sau:
nhập kiểu từ '../styles/Home.module.css'
nhập { useState } từ 'phản ứng'
nhập Arweave từ 'arweave'
/ kết nối với nút Arweave hoặc chỉ định một cổng /
const arweave = Arweave.init({})
hàm Ứng dụng() {
const [trạng thái, setState] = useState('')
const [transactionId, setTransactionId] = useState('')
hàm không đồng bộ createTransaction() {
if (!state) trả về
thử {
const formData = trạng thái
setState('')
/ tạo và gửi giao dịch tới Arweave /
hãy giao dịch = đang chờ arweave.createTransaction({ data: formData })
đang chờ arweave.transactions.sign(giao dịch)
hãy để người tải lên = chờ arweave.transactions.getUploader(giao dịch)
/ chỉ báo tải lên /
trong khi (! uploader.isComplete) {
đang chờ uploader.uploadChunk()
console.log(${uploader.pctComplete}% complete,
${uploader.uploadedChunks}/${uploader.totalChunks}
)
}
setTransactionId(transaction.id)
} bắt (lỗi) {
console.log('error: ', err)
}
}
hàm không đồng bộ readFromArweave() {
/ đọc dữ liệu Arweave bằng bất kỳ ID trsnsaction nào /
arweave.transactions
.getData(transactionId, {
giải mã: đúng,
chuỗi: đúng,
})
.then((dữ liệu) => {
console.log('data: ', data)
})
}
trở lại (
<div className={styles.container}>
<button style={button} onClick={createTransaction}>
Tạo giao dịch
</button>
<button style={button} onClick={readFromArweave}>
Đọc giao dịch
</button>
<input style={input} onChange={(e) => setState(e.target.value)} placeholder=”text” value={state} />
</div>
)
}
nút const = {
phác thảo: 'không',
đường viền: '1px màu đen đặc',
màu nền: 'trắng',
phần đệm: '10px',
chiều rộng: '200px',
lềDưới: 10,
con trỏ: 'con trỏ',
}
đầu vào const = {
màu nền: '#ddd',
phác thảo: 'không',
đường viền: 'không',
chiều rộng: '200px',
Kích thước phông chữ: '16px',
phần đệm: '10px',
}
xuất ứng dụng mặc định
Tiếp theo, khởi động ứng dụng:
bắt đầu npm
Khi ứng dụng khởi động, bạn sẽ thấy mục nhập biểu mẫu cơ bản có hai nút.
Bạn có thể nhập dữ liệu bạn muốn lưu vào biểu mẫu, sau đó nhấn Tạo giao dịch để lưu văn bản trong Arweave.
Sau khi giao dịch hoàn tất, bạn sẽ thấy chỉ báo tiến trình được đăng xuất khỏi bảng điều khiển cho biết dữ liệu đã được lưu.
Sau khi lưu dữ liệu, hãy nhấp vào Đọc giao dịch để đọc dữ liệu từ Arweave.
Để tương tác với mạng sản xuất, bạn chỉ cần cập nhật cấu hình mạng Arweave.
const arweave = Arweave.init({
máy chủ: 'arweave.net',
})
Một cơ sở mã ví dụ cho dự án mà chúng tôi xây dựng hôm nay có sẵn tại đây.
Để tìm hiểu thêm về Arweave, hãy xem tài liệu Arweave, Arweave Wiki và theo dõi chúng trên Twitter.
Edge & Node là một công ty phát triển phần mềm sáng tạo đang nỗ lực xây dựng một tương lai phi tập trung, sôi động. Được thành lập bởi nhóm ban đầu đằng sau The Graph, Edge & Node được dành riêng cho sự phát triển của internet phi tập trung (web3) và sự phát triển của các ứng dụng giảm thiểu độ tin cậy. Nhóm có nhiều kinh nghiệm trong việc phát triển và duy trì phần mềm, công cụ và ứng dụng nguồn mở .
Sản phẩm ban đầu của Edge & Node là The Graph, một giao thức lập chỉ mục để truy vấn các mạng như Ethereum và IPFS, đảm bảo dữ liệu mở luôn có sẵn và dễ dàng truy cập. Đồ thị được sử dụng bởi hàng nghìn giao thức và dapp bao gồm Uniswap, Livepeer, Aave, Decentraland, v.v. Edge & Node cũng đã ra mắt Everest, cơ quan đăng ký dữ liệu trên chuỗi phi tập trung đầu tiên nhằm cung cấp tiện ích liên tục cho cộng đồng tiền điện tử, xúc tác cho sự chuyển đổi sang web3.