作者:仙鶴CTO韋恩
轉(zhuǎn)載請(qǐng)注明出處
目錄
1 filecoin技術(shù)架構(gòu)分析之一:filecoin概念2 filecoin技術(shù)架構(gòu)分析之二:filecoin通用語(yǔ)言理解3 filecoin開(kāi)發(fā)網(wǎng)使用3.1 輔助資源3.2 使用3.2.1 接入filecoin開(kāi)發(fā)網(wǎng)絡(luò)3.2.2 獲取Mock FIL用于測(cè)試3.2.3 礦工操作3.2.3.1 存儲(chǔ)礦工3.2.3.2 檢索礦工3.2.3.3 修復(fù)礦工3.2.4 客戶操作3.2.4.1 存儲(chǔ)客戶3.2.4.2 檢索客戶3.2.5 filecoin合約3.2.5.1 文件合約3.2.5.2 智能合約3.2.6 單機(jī)運(yùn)行多個(gè)filecoin節(jié)點(diǎn)3.2.6.1 修改資源目錄和服務(wù)端口的方式3.2.6.2 容器部署方式3文件硬幣開(kāi)發(fā)網(wǎng)絡(luò)使用
3.1輔助資源
Filecoin狀態(tài): https://stats.kittyhawk.wtf網(wǎng)絡(luò)存儲(chǔ)實(shí)時(shí)價(jià)格 FIL/GB/Month當(dāng)前存儲(chǔ)容量 GB當(dāng)前網(wǎng)絡(luò)利用率檢索平均價(jià)格激活節(jié)點(diǎn)以及分布圖存儲(chǔ)平均價(jià)格曲線best tipset存儲(chǔ)礦工存儲(chǔ)礦工數(shù)量變化曲線存儲(chǔ)礦工共識(shí)結(jié)果近30天的礦工top圖檢索礦工平均檢索價(jià)格平均檢索時(shí)間平均檢索容量FIL指數(shù)流通FIL及抵押FIL變化曲線圖FIL地址總數(shù)FIL總抵押數(shù)及對(duì)應(yīng)存儲(chǔ)空間FIL總數(shù)上升曲線圖FIL區(qū)塊獎(jiǎng)勵(lì)下降曲線圖Filecoin區(qū)塊瀏覽器: http://user.kittyhawk.wtf:8000Chain信息BestBlock信息Actor合約信息獲取FIL用于抵押或支付:http://user.kittyhawk.wtf:9797獲取Mock FIL代幣Dashboard: http://user.kittyhawk.wtf:8010Network概覽,最新區(qū)塊信息區(qū)塊瀏覽器鏈接Genesis File: http://user.kittyhawk.wtf:8020/genesis.car創(chuàng)始文件,用于初始化filecoin資源Prometheus Endpoint: http://user.kittyhawk.wtf:9082/metrics一些技術(shù)指標(biāo),比如內(nèi)存、進(jìn)程、線程等Connected Nodes PeerID's: http://user.kittyhawk.wtf:9082/nodes連接的節(jié)點(diǎn)信息3.2使用
3.2.1進(jìn)入文件硬幣開(kāi)發(fā)網(wǎng)絡(luò)
初始化filecoin資源目錄如果之前有運(yùn)行過(guò)filecoin,想重新開(kāi)始,需要?jiǎng)h除filecoin資源,同時(shí)重新初始化是需要重新花時(shí)間同步開(kāi)發(fā)網(wǎng)區(qū)塊信息的。rm -rf ~/。filecoin
初始化資源目錄,使用--devnet-user表示連接至開(kāi)發(fā)網(wǎng)way newyang:Downloads way newyang $ go-file coin init-devnet-user-genesis file = http://user . kitty hawk . wtf:8020/genesis . car
正在~/,初始化filecoin節(jié)點(diǎn)。filecoin
waynewyang:下載waynewyang$
啟動(dòng)filecoin進(jìn)程,接入開(kāi)發(fā)網(wǎng)go-filecoin守護(hù)程序
//如果開(kāi)發(fā)者需要夜間訪問(wèn)devnet,請(qǐng)?jiān)O(shè)置環(huán)境變量并啟動(dòng)filecoin
env FIL _ USE _ SMAll _ SECTORS = true go-file coin守護(hù)程序
檢查連接性go-filecoin swarm peers 查看已經(jīng)連接的節(jié)點(diǎn)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 確認(rèn)連通性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
收到乒乓:時(shí)間=245.12毫秒
收到乒乓:時(shí)間=245.61毫秒
收到乒乓:時(shí)間=251.98毫秒
收到乒乓:時(shí)間=245.69毫秒
收到乒乓:時(shí)間=255.64毫秒
給你的filecoin Node設(shè)置昵稱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 "
激活節(jié)點(diǎn)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網(wǎng)絡(luò),節(jié)點(diǎn)已經(jīng)激活active.png
3.2.2獲得模擬飛行試驗(yàn)
Mock FIL用于礦工抵押;或者作為客戶進(jìn)行交易需要注意:開(kāi)發(fā)網(wǎng)目前運(yùn)行的都是全節(jié)點(diǎn),獲取mock FIL需要建立在本地區(qū)塊數(shù)據(jù)同步完成的基礎(chǔ)上進(jìn)行,必須同步完區(qū)塊之后才能生效,根據(jù)個(gè)人機(jī)器配置情況,這需要較長(zhǎng)一段時(shí)間。go-filecoin message wait ${MESSAGE_CID} 本質(zhì)上是轉(zhuǎn)賬交易,wiki上說(shuō)明的是等待30s,但是這是在本地區(qū)塊數(shù)據(jù)同步完成的基礎(chǔ)上才行的。筆者已提交建議給官方,在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 `
%總計(jì)%接收%平均速度時(shí)間時(shí)間當(dāng)前
加載上傳總剩余速度
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”,
“方法”:“,
“參數(shù)”:空
},
“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礦工作業(yè)
3.2.3.1存儲(chǔ)礦工
創(chuàng)建存儲(chǔ)礦工示例,需要等待1分鐘左右抵押10個(gè)扇區(qū)的存儲(chǔ)空間(當(dāng)前默認(rèn)每個(gè)扇區(qū)256MiB)支付100個(gè)FIL為擔(dān)保gas價(jià)格為0限制gas消耗最大為1000個(gè)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
啟動(dòng)挖礦way new yang:file coin way new yang $ go-file coin采礦開(kāi)始
開(kāi)始挖掘
收益之一: 啟動(dòng)挖礦之后就可以參與挖區(qū)塊獎(jiǎng)勵(lì)查詢區(qū)塊頭way new yang:go-file coin way new yang $ go-file coin鏈頭
[{ "/:" zdpwyqfd 2 bqlx7bwqndevomxj 6 sc5 hxzorzaoxpt 6 xjaythnenw " }]
查詢具體區(qū)塊信息go-filecoin show block <。blockID>。
way new yang:go-file coin way new yang $ go-file coin show block zdpwyqfd 2mbqlx7bwqndevomxj6 sc5 hxzorzaoxpt6xjaythnenw
塊詳細(xì)信息
miner:fcq 0y 72 meekwnvchwml 0 uzx 759 q 25 nk0 rqc 47 ret
重量:293567.552
身高:10787
隨機(jī)數(shù):0
收益之二:創(chuàng)建報(bào)價(jià)單ask1)獲取礦工的地址
export MINER _ ADDR = ` go-file coin config mining . MINER address | tr-d ' '
2)設(shè)置礦機(jī)所有者
export MINER _ OWNER _ ADDR = ` go-file coin MINER OWNER $ MINER _ ADDR ` s
3)創(chuàng)建一個(gè)報(bào)價(jià),價(jià)格為0.000000001 fil/byte/block,交易費(fèi)用為0,燃?xì)庀揞~為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
要發(fā)布報(bào)價(jià),您需要將其打包到塊中
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的價(jià)格設(shè)置為0.000000001。
已發(fā)布的ask,cid:zdpwyqfcxl 3 vw3xzmhhcbqptvhoqa53pn 6 dzv 3 uy 23 jnl 76 za 1 vt。
分塊詢問(wèn)確認(rèn)鏈:zdpwyqfd 7 wjnj 74 sdb 9 hqupdmwmpppevygb14 bo6 rqc 7 ho 2687d。
4)查詢區(qū)塊信息(第三步ZDPYQFD 7 wjnj 74 sdb 9 hqupdmwmppevygb14 PBO 6 rqc 7 ho 2687d)找到對(duì)應(yīng)的報(bào)價(jià)信息
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 '。["/"]'`
塊詳細(xì)信息
miner:fcq 973 y2y 7 hvcce 8 zkwd 7r 2847 xmfjvdecn 98 lws
重量:134386.836
身高:5013
隨機(jī)數(shù):0
5)獲取所有礦工的報(bào)價(jià)信息
go-filecoin客戶端列表-asks - enc=json | jq
現(xiàn)在默認(rèn)是只要客戶出價(jià)高于礦工報(bào)價(jià),默認(rèn)接受交易。停止挖礦go-filecoin采礦停止
Rm -rf ~/。filecoin //刪除filecoin miner實(shí)例,塊同步也被刪除。再次實(shí)例化,需要再次同步塊
3.2.3.2搜索礦工
暫未發(fā)現(xiàn)支持,目前可以自己的供應(yīng)商(具體礦工)處獲??;后面通過(guò)更深入的分析之后另行補(bǔ)充。在3.2.3.3修理礦工
修復(fù)礦工的概念是白皮書(shū)之后提出的,后面繼續(xù)深入分析之后再另行補(bǔ)充。3.2.4客戶操作
3.2.4.1存儲(chǔ)客戶
filecoin 與IPFS數(shù)據(jù)結(jié)構(gòu)是兼容的//創(chuàng)建測(cè)試文件
Wayne yang:測(cè)試waynewyang $回應(yīng)“嗨,我的名字是$USER”>;hello.txt
way newyang:test way newyang $ cat hello . txt
你好,我的名字是韋紐楊
//導(dǎo)入文件本地資源庫(kù)
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
//在這里你會(huì)發(fā)現(xiàn)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命令獲取數(shù)據(jù),結(jié)果一致
way new yang:test way new yang $ go-file coin client cat $ CID
你好,我的名字是韋紐楊
waynewyang:測(cè)試waynewyang$ ipfs block獲取$CID
你好,我的名字是韋紐楊
導(dǎo)入測(cè)試數(shù)據(jù)Wayne yang:sample-data Wayne yang $ export CID = ` go-file coin client import camel . jpg '
Wayne yang:樣本數(shù)據(jù)Wayne yang $ go-file coin客戶端cat $ CID & gtimage.png & amp;& amp開(kāi)放image.png
waynewyang:樣本數(shù)據(jù)waynewyang$ echo $CID
qmeubcgkfxpafft4 xrfgf 3n qdrzjjuvoaqe5 spugbrpz 7u
查詢礦工的報(bào)價(jià)單Wayne yang:sample-data Wayne yang $ go-file coin client list-asks-enc = JSON | jq
{
“Miner”:“fcqvnwlanfu 7 ecflnp3rc 5 GM 0 ecdamvxgvlawref 4”,
“價(jià)格”:“0.0000000001”,
【有效期】:7079,
“標(biāo)識(shí)”:0,
“錯(cuò)誤”:空
}
{
“Miner”:“fcqsmut 6 jnwchq 0 qlcc 3t 6v 44 pzgf 8l 49 LG 6r 8 wl4a”,
“價(jià)格”:“0.0000000001”,
【到期】:16522,
“標(biāo)識(shí)”:0,
“錯(cuò)誤”:空
}
{
“Miner”:“fcqsmut 6 jnwchq 0 qlcc 3t 6v 44 pzgf 8l 49 LG 6r 8 wl4a”,
“價(jià)格”:“0.0000000000000000000001”,
【到期】:18753,
【身份證】:1、
“錯(cuò)誤”:空
}
{
“Miner”:“fcqghrce 7 vaf 6 czj 54x 5 qke0 Mn 2 uzzg8 ckvgvcjpe”,
“價(jià)格”:“0.0000000001”,
“到期”:14404,
“標(biāo)識(shí)”:0,
“錯(cuò)誤”:空
}
......
下單go-filecoin客戶提議-存儲(chǔ)-交易<。miner>。& lt數(shù)據(jù)>。& lt詢問(wèn)。& lt持續(xù)時(shí)間>。
& ltminer>。列表中礦工的地址-詢問(wèn)
& lt數(shù)據(jù)>。要存儲(chǔ)的導(dǎo)入數(shù)據(jù)的CID
& lt詢問(wèn)。詢問(wèn)的標(biāo)識(shí),也來(lái)自列表詢問(wèn)(通常為0)
& lt持續(xù)時(shí)間>。您希望存儲(chǔ)多長(zhǎng)時(shí)間(以大約30秒的塊數(shù)為單位)。例如,存儲(chǔ)1天(2塊/分鐘* 60分鐘/小時(shí)* 24小時(shí)/天)= 2880塊。
發(fā)送數(shù)據(jù)和支付1次付款
1)支付給paych
2)定期支付礦工工資
2數(shù)據(jù)
1)未密封的數(shù)據(jù)稱為臨時(shí)存儲(chǔ)區(qū)
2)密封完成后分期付款
3.2.4.2找回顧客
現(xiàn)在是指定所對(duì)應(yīng)的存儲(chǔ)礦工進(jìn)行檢索,暫未發(fā)現(xiàn)更多支持,在后面的深入分析中會(huì)繼續(xù)跟進(jìn)。查詢訂單狀態(tài),必須是密封,posted交易結(jié)束后才能查詢go-filecoin客戶端查詢-存儲(chǔ)-交易<。交易ID >。
檢索go-filecoin檢索-客戶端檢索件<。minerAddress & gt。& ltCID >。
3.2.5文件合同
3.2.5.1文件合同
其實(shí)現(xiàn)在的創(chuàng)建存儲(chǔ)礦工,以及礦工創(chuàng)建報(bào)價(jià)、存儲(chǔ)客戶提交訂單存儲(chǔ),這些筆者認(rèn)為屬于filecoin文件合約的范疇。與以太坊類似,以太坊抽象出了代幣合約以及通用智能合約; 而filecoin則是抽象出了文件合約和通用智能合約。3.2.5.2智能合同
暫未發(fā)現(xiàn)支持通用智能合約,在后面的深入分析中會(huì)繼續(xù)跟進(jìn)。3.2.6在單臺(tái)機(jī)器上運(yùn)行多個(gè)文件節(jié)點(diǎn)
3.2.6.1如何修改資源目錄和服務(wù)端口
go-filecoin init的時(shí)候,通過(guò) ‘--repodir=所指定資源目錄路徑’ 命令進(jìn)行初始化目錄資源,后面的其他命令同樣需要所指定資源目錄路徑進(jìn)行操作。修改資源目錄下的config.json文件,將默認(rèn)的端口予以修改,避免與另外的本機(jī)實(shí)例相沖突。3.2.6.2集裝箱調(diào)配模式
可以包裝成docker形象,有興趣的朋友可以自行嘗試。
1.《t43p filecoin技術(shù)架構(gòu)分析之三:filecoin開(kāi)發(fā)網(wǎng)絡(luò)使用》援引自互聯(lián)網(wǎng),旨在傳遞更多網(wǎng)絡(luò)信息知識(shí),僅代表作者本人觀點(diǎn),與本網(wǎng)站無(wú)關(guān),侵刪請(qǐng)聯(lián)系頁(yè)腳下方聯(lián)系方式。
2.《t43p filecoin技術(shù)架構(gòu)分析之三:filecoin開(kāi)發(fā)網(wǎng)絡(luò)使用》僅供讀者參考,本網(wǎng)站未對(duì)該內(nèi)容進(jìn)行證實(shí),對(duì)其原創(chuàng)性、真實(shí)性、完整性、及時(shí)性不作任何保證。
3.文章轉(zhuǎn)載時(shí)請(qǐng)保留本站內(nèi)容來(lái)源地址,http://f99ss.com/guonei/1047562.html