查看原文
其他

Arseeding 使用教程

everFinance everFinance中文社区 2022-07-05

简介


Arseeding 是一个轻量级的 Arweave 数据种子节点,主要用于同步,缓存以及广播 Arweave原生交易和数据。此外,本次 arseeding 的升级版本还支持 bundle 类型的交易,可以便捷地将 bundle 类型的交易和数据永存到 Arweave 上。

arseeding 架构设计链接👇:

https://medium.com/everfinance/arseeding-server-design-4e684176555a


服务部署


1.获取 Arseeding


首先从以下链接下载 arseeding。

https://github.com/everFinance/arseeding/releases/tag/v1.0.3


2 启动服务前的准备


Arseeding 提供两种类型的存储模式:BoltDB(本地存储)以及 AWS S3(云存储)。


这里推荐您使用 S3 作为 Arseeding 的存储,这样的话 arseeding 可以获得无限的扩展性(e.g 当你需要维护大量用户上传到 arseeding 服务的数据时,本地存储可能会不适应于这种情况)。


如何开始使用 S3:

step1. 注册 AWS 账号(如果有你还没有)

step2. 根据下面的图示创建一个 IAM 账户




note: 你可以随意配置 IAM 的权限,但是必须确保这个权限



这两个 Key 将会在你用 arseeding 访问 S3 时用到(你需要好好保存)。


另外,S3 的 bucket 在同一个大区(例如亚太地区)名字是不能相同的,你需要查看可以在哪些大区创建 bucket,并且在启动 arseeding 时,你需要提供一个合适的 bucket 前缀,以此来确保你创建的 bucket 不会和其他 S3 用户的 bucket 重名。


note:前缀不要设置得过于简单,(e.g S3_PREFIX=test, 这个bucket可能已经存在,最好可以选择一个具有你自己项目特色的前缀,e.g S3_PREFIX=everpay)


3 运行 Arseeding


首先需要配置一些环境变量,如果使用 S3,首先导入这些环境变量。

$ export USE_S3=true$ export S3_ACC_KEY=Access key ID$ export S3_SECRET_KEY=Secret access key$ export S3_PREFIX=your prefix$ export S3_REGION=region // e.g ap-northeast-1


如果不需要收取用户上传数据的服务费:

$ export NO_FEE=true


提供一个数据库 DSN:

$ export MYSQL=your dsn // e.g root@tcp(127.0.0.1:3306)/arseed?charset=utf8mb4&parseTime=True&loc=Local


运行 Arseeding 必须提供一个 AR 钱包,这样你才可以将用户传到 Arseeding 的数据储存到 Arweave 上。

$ export KEY_PATH=your ar keyfile // e.g ./data/keyfile.json


可以配置端口号(default is 8080):

$ export PORT=portNum //e.g :8080


运行:

$ sudo chmod 755 arseeding$ ./arseeding


4 用 docker 运行 Arseeding


首先获取 docker 镜像:

$ docker pull everfinance/arseeding:v1.0.3


你需要像之前那样提供一些环境变量。


使用 boltDB 运行:

docker run -d \--env DB_DIR=/arseeding/data/bolt \--env KEY_PATH=/arseeding/data/keyfile.json \--env PAY=https://api.everpay.io \--env MYSQL="your mysql dsn" \--env NO_FEE=true \ // “run with no fee mode”-v /Your/KeyFile/Absolute/Path:/arseeding/data \-p 8080:8080 \everfinance/arseeding:v1.0.3 \arseeding


使用 S3 运行:

docker run -d \--env USE_S3=true \--env S3_ACC_KEY=AccessKeyID \--env S3_SECRET_KEY=SecretAccessKey \--env S3_PREFIX=yourPrefix \--env S3_REGION=region \--env KEY_PATH=/arseeding/data/keyfile.json \--env PAY=https://api.everpay.io \--env MYSQL="your mysql dsn" \--env NO_FEE=true \ // “run with no fee mode”-v /Your/KeyFile/Absolute/Path:/arseeding/data \-p 8080:8080 \everfinance/arseeding:v1.0.3 \arseeding


如何使用 Arseeding


Arseeding 是 Arweave 生态中的一个强大的基础设施,它不仅提供了 Arweave 网关的功能,你可以用它来上传,下载,同步,广播任何 AR 原生交易和数据。更值得注意的是它还支持了 bundle 类型的交易。


1 兼容 Arweave 网关的功能

compatible APIs

你可以像使用 Arweave 网关一样来调用这些 API。并且你可以获得更快的响应,因为 arseeding 会将一些重要的信息缓存起来。


2 同步广播交易

sync&broadcast APIs


arseeding 提供三种类型的任务:同步交易,广播交易,广播交易元数据(不带data)。


如果 arseeding 中没有你想要的交易,可以使用 sync, /task/sync/arid。sync将从 Arweave 拉取这笔交易到 arseeding。广播任务将 AR 交易广播到所有的 Arweave 节点(这些节点已经经过了 arseeding 筛选)。


kill task 停止一个任务。


3 Bundle


Arseeding 支持 bundle 交易。为什么使用 bundle 交易?


某个产品有大量用户,这些用户都有将少量数据(如图片,文章等)上传到 Arweave 上的需求。如果你为每一个用户组装一笔 AR 原生交易,那将会消耗掉大量的 AR 代币。为了改善这种情况,bundle 交易应运而生。


每一个用户的少量数据都被先打包成一个 bundle item,用户会得到一个 item id,所有的 bundle item 组装成 bundle data,bundle data 作为一笔 AR 原生交易的 data 部分,这样发送一笔 AR 交易就可以将大量用户的数据上传到 Arweave 上了。而用户则可以通过 item id 在 arseeding 或者 Arweave 网关中找到他们的数据。


如何创建 bundle 以及发送 bundle item 到 arseeding,可以参考以下链接。

https://github.com/everFinance/arseeding/blob/main/example/bundle-item/bundle_test.go


进一步了解:


获取更多有用的信息,可以查看以下链接:

arseeding sdk 链接 👇

https://github.com/everFinance/arseeding/tree/main/sdk

goar 链接 👇

https://github.com/everFinance/goar

如果你在使用过程中遇到任何问题,欢迎来 everFinance Discord 进行技术讨论。


官方链接


推特:    https://twitter.com/FinanceEver

电报:    https://t.me/FinanceEver

Medium:https://medium.com/everfinance

Discord:https://discord.gg/WM5MQZGVPF



您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存