跳到主要内容

快速入门

为了方便开发者入门,我们部署了 web3infra.dev 方便开发者永存数据。快速入门将介绍如何使用 arseeding-js 将数据存通过 web3infra.dev 存储到 Arweave 网络。

准备

为了快速完成数据上传,你需要提前准备:

  1. node.js 开发环境
  2. 拥有一个 MetaMask/ArConnect 钱包。
  3. 该钱包拥有在 everPay 上任意一种资产。

如果还没做好准备,请查看:everPay 充值指南

创建项目

打开终端,创建一个空文件夹来存放项目, 通过 npm init 创建 package.json 进行包管理。

mkdir arseeding-demo

cd arseeding-demo

npm init

安装

通过编译器 打开 arseeding-demo 文件, 打开终端通过以下代码安装 arseeding-js

npm i arseeding-js

上传数据

安装完成后,在目录下创建 index.js,将以下代码复制到 index.js

const { genNodeAPI } = require('arseeding-js')

const run = async () => {
const instance = genNodeAPI('YOUR PRIVATE KEY')
const arseedUrl = 'https://arseed.web3infra.dev'
const data = Buffer.from('........')
const payCurrencyTag = 'ethereum-usdc-0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48' // everPay 支持的 token tag (chainType-symbol-id)
const options = {
tags: [{ name: 'Content-Type', value: 'image/png' }]
}
const res = await instance.sendAndPay(arseedUrl, data, payCurrencyTag, options)
console.log('res', res)
}
run()
提示

若您喜欢以下导入 arseeding-js, 则需要在 package.json 文件中添加 type:"module"

import { genNodeAPI, getTokenTagByEver } from 'arseeding-js'

配置说明:

  • 将你的 MetaMask 密钥填充到 YOUR PRIVATE KEY。也可使用 Arconnect 将你的 keyfile json 文件 路径导入其中,确保 PRV KEY 对应的钱包在 everPay 拥有资产。
  • arseedUrl 是需要配置的 Arseeding 后端服务地址,这里我们使用 permadao 提供的 Arseed 服务,URL 为:https://arseed.web3infra.dev
  • data 里需要填充你想要上传的二进制数据,开发者可以采用 file io 从硬盘上读取对应的文件。
  • payCurrencyTag 是需要选择的支付 Token tag,如果你的 MetaMask 地址在 everPay 持有的是 usdc,可通过 getTokenTagByEver('usdc'),获取 usdc 的 tag,如果持有的是其他代币,请填写其他代币的名称。具体查看getTokenTagByEver
  • options 里可以配置你的 Arweave Tags,什么是 Arweave Tags 参考:这里
  • tags 中的 Content-Type 需要基于你上传的内容进行配置,例如 上传的 png 格式的图片,则配置为 image/png,详细说明参考 Content-Type

在准备好配置后,调用 await instance.sendAndPay(arseedUrl, data, payCurrencyTag, ops) 或 使用 Arconnect (createAndSubmitItem、newEverpayByRSA、payOrder)等方法 就可以将你的数据上传到 web3infra 的 Arseeding 节点。

在终端执行以下命令进行文件上传:

node index.js

正确执行后终端将返回:

res {
everHash: '0xf88033873d3bfc525d9333ec51b60f3f3dc03f822a9a73f66a10ebbd944b29c6',
order: {
itemId: '2bpKpp0dtfFZE82-P0lOmeI5x4m2ynatFzdjBmCWd4k',
size: 192,
bundler: 'uDA8ZblC-lyEFfsYXKewpwaX-kkNDDw8az3IW9bDL68',
currency: 'USDC',
decimals: 6,
fee: '1141',
paymentExpiredTime: 1690702235,
expectedBlock: 1210331,
tag: 'ethereum-usdc-0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48'
}
}

最终这些数据将打包到 Arweave 网络,永存并不可篡改。

下载数据

在返回的结果中可以找到 res.order.itemId ,上文中 itemId 为 2bpKpp0dtfFZE82-P0lOmeI5x4m2ynatFzdjBmCWd4k

可以使用 curl 下载数据:

curl --location --request GET 'https://arseed.web3infra.dev/2bpKpp0dtfFZE82-P0lOmeI5x4m2ynatFzdjBmCWd4k'

更深入的学习 Arseeding 和 web3infra 请查看: