上传Metadata到BTFS网络

BTFS(BitTorrent File Sstem)是基于波场网络和BitTorrent生态系统的文件共享协议,是一个可扩展的高性能文件存储和共享方案。

Metadata 是NFT代币的元数据,以便更丰富地显示NFT资产的详细信息, 存储在链下,一般发行一枚NFT代币会指定一个URI路径,指向这枚代币的Metadata数据。

1 安装BTFS

参照BTFS安装说明进行安装。

2 充值BTT

上传文件到BTFS网络需要支付BTT。

目前存储的价格是0.0037 BTT/Mb/月,对于上传者来说,上传的文件会被添加冗余信息,并拆成30份,任意10份在一起就能还原成完整的文件,所以每一个文件会生成三倍原始文件大小的内容来上传,也就是说,对于上传者,价格是3*0.0037 BTT/Mb/月(以当前价格计算,大约$0.000038/Mb/月)。

btfs init初始化本地节点时,会自动生成一个与本地节点关联的波场钱包账户,可以通过btfs id来查看钱包对应的波场地址。

首先要充值一些BTT到节点的波场账户,然后将波场账户的BTT划转给BTFS网络的记账系统。

设置密码

运行以下命令为节点钱包设置密码:

btfs wallet password   **********

转账BTT给BTFS网络记账系统

运行以下命令会将本地BTFS节点账户的BTT转账给BTFS网络的记账系统, 最小的转账金额是10BTT, 下面命令中指定的BTT单位是μBTT(百万分之一BTT),至少需要存入10个BTT:

btfs wallet deposit -p 密码  10000000

3 上传文件

第一步: 准备一张图片,将图片命名为coral.jpeg

第二步:以Reed-Solomon编码添加图片到节点本地

btfs add --chunker=reed-solomon coral.jpeg

图中的QmUK9nwtLEiHBJ48HAZHNmSQ53U6ADbRhATxs2tomadwKw即为该文件的哈希值

第三步:通过这个哈希值来上传文件到BTFS网络

btfs storage upload QmUK9nwtLEiHBJ48HAZHNmSQ53U6ADbRhATxs2tomadwKw

btfs daemon的窗口看到”File storage successful”字样时,表示上传成功了

第四步:验证图片是否能被下载

在浏览器里面打开图片的链接,能看到图片说明图片能成功被下载:

https://gateway.btfs.io/btfs/QmUK9nwtLEiHBJ48HAZHNmSQ53U6ADbRhATxs2tomadwKw

4 构造NFT的metadata文件

有了上面的图片链接,就可以用它来构造用于NFT的metadata了。

首先按照TRC-721文档中metadata的示例创建一个json文件,命名为coral.json, 将image字段中的description值替换成上面图片的BTFS下载链接,如图:

运行btfs命令上传coral.json:

在浏览器里面打开metadata文件的uri:
https://gateway.btfs.io/btfs/QmWq4cp588QD8tzrSxvPs2bGikDdKyA35BT3iysBcP1jFD