(4)Filecoin存储提供方(矿工)的配置操作

4.1 存储需求方(用户)

我们在3.2章节中,描述了Filecoin体系下的各个身份和角色,其中,存储客户(Storage clients)定位为想存储数据的需求方用户,也是Filecon所期望构建的双边市场中十分重要的一环,类比滴滴打车的乘车者。
Filecoin存储市场(上帝)将以公开透明的方式,搭建一个被记录在链上的订单池,供所有存储需求方(客户)选择和匹配存储提供方(矿工)。

4.2 导入数据资源并获取CID
在Filecoin存储网络之上,我们需要先将所存数据导入自身Filecoin节点客户端,并按照与IPFS很类似(应该是复用了)的处理流程进行了文件切片、散列处理和DAG建立,并生成子文件索引和内容ID(即:CID,在2.2章详细介绍过)。

4.2.1 导入文本
echo “Hi my name is jialesoho”> jialesoho.txt
export CID=`go-filecoin client import ./jialesoho.txt`
# 反向验证是否成功导入
go-filecoin client cat $CID

4.2.2 导入图片
export CID=`go-filecoin client import ~/Desktop/your_test_img.jpg`
go-filecoin client cat $CID > image.png && open image.png

4.2.3 导入视频
export CID=`go-filecoin client import ~/Desktop/your_test_video.mp4`

4.3 查看Ask订单池
在3.5章节中,我们模拟了矿工角色,并成功发送了ask订单至Filecoin存储市场之中,这里,我们再启动一台机器模拟用户节点,对全网的Ask订单池进行查询,并根据存储端(矿工)报价选择交易对象:

go-filecoin client list-asks –enc=json | jq
执行上述命令,遍历订单池后,会得到形如下方的json对象,解释一下每个字段意义:
{
“Miner”: “fcqllepeqmcq9qnjff3rqfaz02ks8dvmandx4sa2d”,//矿工ID
“Price”: “2.5”,//价格,单位FIL/byte/block
“Expiry”: 588,//多少区块高度后订单过期
“ID”: 0,//同一个矿工ID可能具备多个Ask订单,用ID区分
“Error”: null//
}
如果需要在终端中依赖矿工ID来进行control+F快速选定,建议直接键入go-filecoin client list-asks

4.4 选订存储协议
当我们在Ask订单池上选定好心仪的订单和矿工ID后,便可通过如下指令签约了:
go-filecoin client propose-storage-deal
miner:心仪的矿工ID信息
data:4.2中所存数据的CID信息
ask:同一个矿工ID可能具备多个Ask订单,此数据在订单池中可查
duration:持续存储所经历的区块个数(平均30s一个新块产生,一天有效期大约需2880个新块)

大部分朋友可能会遇到:
Error: error creating payment: context deadline exceeded
这边小编复现了这个场景,并针对这个问题,和一些热心的读者交流(感谢詹总,东方风来、chinmusic),分析了一些可能造成的原因和解决方案,大家可以对号入座试试:
1)检查是否FIL金额足够
用户子弹不够…自然无法支付订单…,请检查余额,或者不要传太大的数据,注意单价是按照 byte (FIL/byte/block)来计算。
2)检查矿工节点状态
确保矿工节点在线,且是mining状态。
3)检查P2P连接状态
Filecoin体系中,节点网络与IPFS节点网络拓扑类似,每一个节点的邻居集群是有限的,通过彼此的邻居来间接建立联系是很常见的,因此,很有可能矿工节点和用户节点彼此并不直接相连,而需要吐槽的是,在测试网阶段,官方建议我们在确保矿工节点在线的同时,也需要直接将两个节点相连接。
我们可以通过minerAddrsID来搜索矿工节点ID,并通过节点ID搜索其网络地址multiAddrs,并直接建立P2P连接操作如下:
export peerID=`go-filecoin addresss lookup minerID`
export multiAddrs=`go-filecoin swarm findpeer $peerID`
go-filecoin swarm connect $multiAddrs
4)确保所存单份数据大小小于扇区容量

5)清空消息池
go-filecoin mpool ls | xargs -L1 go-filecoin mpool rm
具体缘由可追踪此 issue:https://github.com/filecoin-project/go-filecoin/issues/1965

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

「DORA君」転職

求人採用/エントリー