作者:仙鹤CTO韦恩
转载请注明出处
目录
1 filecoin技术架构分析之一:filecoin概念2 filecoin技术架构分析之二:filecoin通用语言理解3 filecoin开发网使用3.1 辅助资源3.2 使用3.2.1 接入filecoin开发网络3.2.2 获取Mock FIL用于测试3.2.3 矿工操作3.2.3.1 存储矿工3.2.3.2 检索矿工3.2.3.3 修复矿工3.2.4 客户操作3.2.4.1 存储客户3.2.4.2 检索客户3.2.5 filecoin合约3.2.5.1 文件合约3.2.5.2 智能合约3.2.6 单机运行多个filecoin节点3.2.6.1 修改资源目录和服务端口的方式3.2.6.2 容器部署方式3文件硬币开发网络使用
3.1辅助资源
Filecoin状态: https://stats.kittyhawk.wtf网络存储实时价格 FIL/GB/Month当前存储容量 GB当前网络利用率检索平均价格激活节点以及分布图存储平均价格曲线best tipset存储矿工存储矿工数量变化曲线存储矿工共识结果近30天的矿工top图检索矿工平均检索价格平均检索时间平均检索容量FIL指数流通FIL及抵押FIL变化曲线图FIL地址总数FIL总抵押数及对应存储空间FIL总数上升曲线图FIL区块奖励下降曲线图Filecoin区块浏览器: http://user.kittyhawk.wtf:8000Chain信息BestBlock信息Actor合约信息获取FIL用于抵押或支付:http://user.kittyhawk.wtf:9797获取Mock FIL代币Dashboard: http://user.kittyhawk.wtf:8010Network概览,最新区块信息区块浏览器链接Genesis File: http://user.kittyhawk.wtf:8020/genesis.car创始文件,用于初始化filecoin资源Prometheus Endpoint: http://user.kittyhawk.wtf:9082/metrics一些技术指标,比如内存、进程、线程等Connected Nodes PeerID's: http://user.kittyhawk.wtf:9082/nodes连接的节点信息3.2使用
3.2.1进入文件硬币开发网络
初始化filecoin资源目录如果之前有运行过filecoin,想重新开始,需要删除filecoin资源,同时重新初始化是需要重新花时间同步开发网区块信息的。rm -rf ~/。filecoin
初始化资源目录,使用--devnet-user表示连接至开发网way newyang:Downloads way newyang $ go-file coin init-devnet-user-genesis file = http://user . kitty hawk . wtf:8020/genesis . car
正在~/,初始化filecoin节点。filecoin
waynewyang:下载waynewyang$
启动filecoin进程,接入开发网go-filecoin守护程序
//如果开发者需要夜间访问devnet,请设置环境变量并启动filecoin
env FIL _ USE _ SMAll _ SECTORS = true go-file coin守护程序
检查连接性go-filecoin swarm peers 查看已经连接的节点way new yang:file coin way new yang $ go-file coin swarm peers
/ip4/115 . 238 . 154 . 84/TCP/19109/ipfs/qmb 6 zyi7 glfa je 3 uekgz 2 zymck 7 rvhkskb1 bhpzzptqkm
/ip4/115 . 238 . 154 . 84/TCP/41187/ipfs/qmz 9 uhdu 2 fwdn 7 em ww 8 aeaudkf9 ft 7 rwjrnbbdcqfuq9x 6
/ip4/123 . 134 . 67 . 81/TCP/6000/ipfs/qmccreqsawge4 bzqen1 jbt fyd 7 dnti 4 PSD vkikwafccw
/ip4/123 . 134 . 67 . 82/TCP/6000/ipfs/qmwua 1 aw 4 qdqztdrwo 2 bgt 2 au 67 bjbgtezwrufbc 8 isgn
/ip4/123 . 134 . 67 . 83/TCP/6000/ipfs/qmbpcabgcngs 3 bcgmk 8 DC 3 w 9 pjoypd 1 fydhbkgly 2 EJ 7
/ip4/123 . 134 . 67 . 85/TCP/6000/ipfs/qmuqsszrwfsuu 3 VFW 7 D1 uykalvev 1 ykkcv x3ntvsxwaa7kj
/ip4/123 . 134 . 67 . 86/TCP/6000/ipfs/qmprz 2 z 764 avahivm7ix 2 jqrw 5 ede 3 jcztrjwxs 4 vukyk
/ip4/123 . 134 . 67 . 87/TCP/6000/ipfs/qmtxvfq 3u 7 qpxsxfqdoy qprdh 6 mew 6 jbgksj 8 hjxaimufh
/ip4/123 . 134 . 67 . 88/TCP/6000/ipfs/qmxavrpyu 57 XXX wjhzn9u 9x 1 kttwpsjbas1mtdnzzaqvyq
/ip4/123 . 134 . 67 . 89/TCP/6000/ipfs/qmc5 umx9r 3 bpd5 vxvumfylodz 5 tvt 43 p5jsemte26 qtd
go-filecoin ping peerID 确认连通性way new yang:file coin way new yang $ go-file coin ping qmw 4z 8 p7 fcsplv 1 fetr w6 ucnapuxqkm8 xyyyw4 yubnqbgeb
PING <。同伴。ID Qm * nqBGeB & gt
收到乒乓:时间=245.12毫秒
收到乒乓:时间=245.61毫秒
收到乒乓:时间=251.98毫秒
收到乒乓:时间=245.69毫秒
收到乒乓:时间=255.64毫秒
给你的filecoin Node设置昵称way new yang:file coin way new yang $ go-file coin config heart beat . nickname " wwwarsyunsc "
" wwwarsyuncom "
way new yang:file coin way new yang $ go-file coin config heart beat .昵称
" wwwarsyuncom "
激活节点go-file coin config heart beat . BeatTarget "/DNS 4/stats-infra . kittyhawk . wtf/TCP/8080/ipfs/qmuwmznp6xfryndenu 7 kcj 1 af 5 ohy 7 FB 9 nPu 67 sseejr "
在 https://stats.kittyhawk.wtf/查看filecoin网络,节点已经激活active.png
3.2.2获得模拟飞行试验
Mock FIL用于矿工抵押;或者作为客户进行交易需要注意:开发网目前运行的都是全节点,获取mock FIL需要建立在本地区块数据同步完成的基础上进行,必须同步完区块之后才能生效,根据个人机器配置情况,这需要较长一段时间。go-filecoin message wait ${MESSAGE_CID} 本质上是转账交易,wiki上说明的是等待30s,但是这是在本地区块数据同步完成的基础上才行的。笔者已提交建议给官方,在wiki上更为清晰地表述。wikiissue1.png
way newyang:file coin way newyang $ go-file coin钱包地址ls
fcq 09 qtmrxgq 5 SDR 95 GS 93 tx 79 u 9 uymdwwfdsaphpa
way newyang:file coin way newyang $ export WALLET _ ADDR = ` go-file coin WALLET addrs ls '
way newyang:file coin way newyang $ MEssage _ CID = ` curl-X POST-F " target = $ { WALLET _ ADDR } " " http://user . kittyhawk . wtf:9797/tap“| cut-d”"-F4 `
%总计%接收%平均速度时间时间当前
加载上传总剩余速度
100 232 100 50 100 182 48 177 0:00:01 0:00:01 - : - : - 177
way new yang:go-file coin way new yang $ go-file coin MESSAGE wait $ { MEssage _ CID }
{
" meteredMessage": {
"消息":{
" to ":" fcqm 0u 932 ja5 thlsy 4 dgpz 5 urlapk 8 qhtd 0 clqv 5e ",
" from ":" fcq 09 sqhrd 4 gls 86 muuenzvqdc 37 mscagapj小牛",
" nonce": "rQQ= ",
“值”:“1000”,
“方法”:“,
“参数”:空
},
“GasPrice”:“0”,
" gasLimit": "AA== "
},
"签名":" WKA+ery7xcqlsolzofu8 TPS 7 nz2 oakrfo 21 terfyjqxjt 2 qewz 8 sfvm 6 zshr 5 syb 7 rsarsjndp 4am 2 vzp 0 ge = "
}
{
“exit code”:0,
“return”:null,
" gasAttoFIL": "0 "
}
way new yang:file coin way new yang $ go-file coin钱包余额fcq 09 qtmrxgq 5 SDR 95 GS 93 tx 79 u 9 uymdwwfdsappa
1000
way new yang:file coin way new yang $ go-file coin WALLET balance $ { WALLET _ ADDR }
1000
3.2.3矿工作业
3.2.3.1存储矿工
创建存储矿工示例,需要等待1分钟左右抵押10个扇区的存储空间(当前默认每个扇区256MiB)支付100个FIL为担保gas价格为0限制gas消耗最大为1000个FILway new yang:file coin way new yang $ go-file coin miner create 10 100-price = 0-limit = 1000-peerid ` go-file coin id | jq-r '。ID ' ` 0
fcqjge 872 spqrgtm 8 dhlndjgfuxxx0yujvxsl//返回的地址是minerAddress
启动挖矿way new yang:file coin way new yang $ go-file coin采矿开始
开始挖掘
收益之一: 启动挖矿之后就可以参与挖区块奖励查询区块头way new yang:go-file coin way new yang $ go-file coin链头
[{ "/:" zdpwyqfd 2 bqlx7bwqndevomxj 6 sc5 hxzorzaoxpt 6 xjaythnenw " }]
查询具体区块信息go-filecoin show block <。blockID>。
way new yang:go-file coin way new yang $ go-file coin show block zdpwyqfd 2mbqlx7bwqndevomxj6 sc5 hxzorzaoxpt6xjaythnenw
块详细信息
miner:fcq 0y 72 meekwnvchwml 0 uzx 759 q 25 nk0 rqc 47 ret
重量:293567.552
身高:10787
随机数:0
收益之二:创建报价单ask1)获取矿工的地址
export MINER _ ADDR = ` go-file coin config mining . MINER address | tr-d ' '
2)设置矿机所有者
export MINER _ OWNER _ ADDR = ` go-file coin MINER OWNER $ MINER _ ADDR ` s
3)创建一个报价,价格为0.000000001 fil/byte/block,交易费用为0,燃气限额为1000,提供2880 block空
go-file coin MINER set-price-from = $ MINER _ OWNER _ ADDR-MINER = $ MINER _ ADDR-price = 0-limit = 1000 0.00000001 2880 # output:CID of the ask
要发布报价,您需要将其打包到块中
way newyang:file coin way newyang $ go-file coin MINER set-price-from = $ MINER _ OWNER _ ADDR-MINER = $ MINER _ ADDR-price = 0-limit = 1000 0.00000001 15315
将miner fcqjge 872 spqrgtm 8 dhlndjgfxxx0yujvxsl的价格设置为0.000000001。
已发布的ask,cid:zdpwyqfcxl 3 vw3xzmhhcbqptvhoqa53pn 6 dzv 3 uy 23 jnl 76 za 1 vt。
分块询问确认链:zdpwyqfd 7 wjnj 74 sdb 9 hqupdmwmpppevygb14 bo6 rqc 7 ho 2687d。
4)查询区块信息(第三步ZDPYQFD 7 wjnj 74 sdb 9 hqupdmwmppevygb14 PBO 6 rqc 7 ho 2687d)找到对应的报价信息
way new yang:file coin way new yang $ go-file coin show block zdpwyqfd 7 wjnj 74 sdb 9 hqupdmwmpppevygb14 bo6 rqc 7 ho 2687d-enc = JSON
{ " miner ":" fcqnam 6n 2 qml 2 eyngws25 srzvhcdf 0t 8 gcgrsvnrk "," ticket ":" am 0p 5i C9 ph+o9 dtwd/Mxydeojw 25 pfdwhtgonrksp4 = "," parents ":[{ "/:" zdpwyqfcwnwhjxdex cx7ipvrkfwhlbtsm6 esunfklugiagw " }]," parentWeight":"kujBrQE= "," height":"2Hc= "," nonce
//查询最新的块信息
way new yang:go-file coin way new yang $ go-file coin show block ` go-file coin chain head-repodir = ~/. file coin 2/| jq-r '。[0]'|jq -r '。["/"]'`
块详细信息
miner:fcq 973 y2y 7 hvcce 8 zkwd 7r 2847 xmfjvdecn 98 lws
重量:134386.836
身高:5013
随机数:0
5)获取所有矿工的报价信息
go-filecoin客户端列表-asks - enc=json | jq
现在默认是只要客户出价高于矿工报价,默认接受交易。停止挖矿go-filecoin采矿停止
Rm -rf ~/。filecoin //删除filecoin miner实例,块同步也被删除。再次实例化,需要再次同步块
3.2.3.2搜索矿工
暂未发现支持,目前可以自己的供应商(具体矿工)处获取;后面通过更深入的分析之后另行补充。在3.2.3.3修理矿工
修复矿工的概念是白皮书之后提出的,后面继续深入分析之后再另行补充。3.2.4客户操作
3.2.4.1存储客户
filecoin 与IPFS数据结构是兼容的//创建测试文件
Wayne yang:测试waynewyang $回应“嗨,我的名字是$USER”>;hello.txt
way newyang:test way newyang $ cat hello . txt
你好,我的名字是韦纽杨
//导入文件本地资源库
way new yang:test way new yang $ export CID = ` go-file coin client import。/hello . txt ` s
way newyang:test way newyang $ echo $ CID
qmchgh3n 3 kxwiaz2c p9 pbv 93 i77 h3k 8 ktqcbtevr 5 Q7 wzs
//在这里你会发现IPFS上传的CID是一样的。
way newyang:test way newyang $ ipfs add hello . txt
添加了qmchgh3n 3 k3xwiaz2c p9 pbv 93 i77 h3k 8 ktqcbtevr 5 Q7 wzs hello . txt
25B/25B[= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
//使用go-filecoin或IPFS命令获取数据,结果一致
way new yang:test way new yang $ go-file coin client cat $ CID
你好,我的名字是韦纽杨
waynewyang:测试waynewyang$ ipfs block获取$CID
你好,我的名字是韦纽杨
导入测试数据Wayne yang:sample-data Wayne yang $ export CID = ` go-file coin client import camel . jpg '
Wayne yang:样本数据Wayne yang $ go-file coin客户端cat $ CID & gtimage.png & amp;& amp开放image.png
waynewyang:样本数据waynewyang$ echo $CID
qmeubcgkfxpafft4 xrfgf 3n qdrzjjuvoaqe5 spugbrpz 7u
查询矿工的报价单Wayne yang:sample-data Wayne yang $ go-file coin client list-asks-enc = JSON | jq
{
“Miner”:“fcqvnwlanfu 7 ecflnp3rc 5 GM 0 ecdamvxgvlawref 4”,
“价格”:“0.0000000001”,
【有效期】:7079,
“标识”:0,
“错误”:空
}
{
“Miner”:“fcqsmut 6 jnwchq 0 qlcc 3t 6v 44 pzgf 8l 49 LG 6r 8 wl4a”,
“价格”:“0.0000000001”,
【到期】:16522,
“标识”:0,
“错误”:空
}
{
“Miner”:“fcqsmut 6 jnwchq 0 qlcc 3t 6v 44 pzgf 8l 49 LG 6r 8 wl4a”,
“价格”:“0.0000000000000000000001”,
【到期】:18753,
【身份证】:1、
“错误”:空
}
{
“Miner”:“fcqghrce 7 vaf 6 czj 54x 5 qke0 Mn 2 uzzg8 ckvgvcjpe”,
“价格”:“0.0000000001”,
“到期”:14404,
“标识”:0,
“错误”:空
}
......
下单go-filecoin客户提议-存储-交易<。miner>。& lt数据>。& lt询问。& lt持续时间>。
& ltminer>。列表中矿工的地址-询问
& lt数据>。要存储的导入数据的CID
& lt询问。询问的标识,也来自列表询问(通常为0)
& lt持续时间>。您希望存储多长时间(以大约30秒的块数为单位)。例如,存储1天(2块/分钟* 60分钟/小时* 24小时/天)= 2880块。
发送数据和支付1次付款
1)支付给paych
2)定期支付矿工工资
2数据
1)未密封的数据称为临时存储区
2)密封完成后分期付款
3.2.4.2找回顾客
现在是指定所对应的存储矿工进行检索,暂未发现更多支持,在后面的深入分析中会继续跟进。查询订单状态,必须是密封,posted交易结束后才能查询go-filecoin客户端查询-存储-交易<。交易ID >。
检索go-filecoin检索-客户端检索件<。minerAddress & gt。& ltCID >。
3.2.5文件合同
3.2.5.1文件合同
其实现在的创建存储矿工,以及矿工创建报价、存储客户提交订单存储,这些笔者认为属于filecoin文件合约的范畴。与以太坊类似,以太坊抽象出了代币合约以及通用智能合约; 而filecoin则是抽象出了文件合约和通用智能合约。3.2.5.2智能合同
暂未发现支持通用智能合约,在后面的深入分析中会继续跟进。3.2.6在单台机器上运行多个文件节点
3.2.6.1如何修改资源目录和服务端口
go-filecoin init的时候,通过 ‘--repodir=所指定资源目录路径’ 命令进行初始化目录资源,后面的其他命令同样需要所指定资源目录路径进行操作。修改资源目录下的config.json文件,将默认的端口予以修改,避免与另外的本机实例相冲突。3.2.6.2集装箱调配模式
可以包装成docker形象,有兴趣的朋友可以自行尝试。
1.《t43p filecoin技术架构分析之三:filecoin开发网络使用》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《t43p filecoin技术架构分析之三:filecoin开发网络使用》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/guonei/1047562.html