本文的技能性理会部门,利用JSON-RPC的API名目来与Filecoin网络交互,查询数据。该API主要由应用措施利用。人工操纵时,您可以利用更友好的lotus呼吁行东西。其底层也是利用JSON-RPC API的。
一、先容
通过答允任何人作为存储提供者参加,Filecoin网络实现局限经济。今朝,该网络由漫衍在全球各地的数百个存储提供者构成。内容寻址和加密存储证明验证了数据在矿工的硬件上恒久正确安详地存储,从而缔造了一个强大靠得住的处事。
本文叙述了Filecoin中两种生意业务范例,存储生意业务和检索生意业务运作的各个阶段,并详解其生命周期。并表明白暗码学证明是如何用于验证系统中的参加者是否凭据理睬推行职责的。
二、Filecoin上的数据
为在Filecoin上存储文件,用户必需首先在其当地Filecoin节点中导入文件。这一步会发生一个数据CID——即内容标识符,描写该内容的独一ID。之后,数据被传给矿工。另一种在Filecoin上存储文件的方法是通过离线生意业务,不在本文接头范畴中。
将数据导入当地的Filecoin节点这步,可以通过lotus client import呼吁来完成。要记着所发生的数据CID(之后在当地节点上也可获取),因为今后从矿工哪里检索数据时会用到。
将数据导入当地节点后,用户需提倡生意业务。这步通过lotus client deal呼吁来完成。该呼吁将一个数据CID作为输入,发生一个Filecoin Piece,并交互式引导用户完成存储生意业务流程,详见下文。
Filecoin Piece是用户在Filecoin网络上存储数据的主要协商单元。Filecoin Piece并没有特定的巨细,而是以扇区巨细为上限,受网络参数节制。假如一个Filecoin Piece大于矿工支持的扇区的巨细,它必需被支解成更多的碎片,以便每个碎片都适合一个扇区。
每个Filecoin Piece是一个CAR文件,包括一个IPLD DAG,有对应的数据 CID和piece CID。
CAR即内容可寻址档案(Content Addressable aRchives)—— 每个CAR文件是一个IPLD DAG的序列化暗示,即将其数据块串起来,再加上描写DAG图的头部信息(尚有根CID)。
当用户要在Filecoin网络中存储文件时,首先要用UnixFS)建造文件的IPLD DAG(这就是lotus client import呼吁的浸染)。代表DAG根节点的哈希是一个IPFS气势气魄的CID,称为数据 CID。
UnixFS是一种基于protobuf的名目,用于描写IPFS中的文件、目次和软链接。在Filecoin中,UnixFS是文件名目尺度,文件以此名目提交给Filecoin网络。
所发生的CAR文件用特另外零位来补齐,以便使文件写为二叉merkle树。
三、存储生意业务流程,相识更多加 ipfskefu
用户在 Filecoin 网络中通过生意业务存取数据。网络的参加者,包罗矿工(供应方)和用户(需求方),通过存储生意业务和检索生意业务来与对方交互。
存储生意业务的生命周期如下:
1. 发明
用户先确定矿工及其订价,即矿工为了接管生意业务而但愿收到的每epoch(30秒)每GiB的价值,,单元为attoFIL(1 attoFIL便是10^-18 * FIL)。今朝,Filecoin中一笔生意业务的最短期限为180天。
您可以通过 JSON RPC API 查询已同步的节点,列出所有当前活泼的矿工(为了测试目标,利用了民众终端节点,利用Filecoin.StateListMiners要领。
curl -X POST -H “Content-Type: application/json”
–data ‘{ “jsonrpc”: “2.0”, “method”: “Filecoin.StateListMiners”, “params”: [ null ], “id”: 1 }’
‘https://api.node.glif.io’ | jq
{
“jsonrpc”: “2.0”,
“result”: [
“f011303”,
“f011092”,
…
您可以按照矿工在网络中的诺言和本领举办选择。矿工的诺言指标还未进入 Filecoin 协议,本文亦不涉及。
当您选好矿工之后,可以用诸如Filecoin.StateMinerInfo要领来获取矿工的PeerID,用于在 libp2p 协议中来与对方成立安详毗连。
curl -X POST -H “Content-Type: application/json”
–data ‘{ “jsonrpc”: “2.0”, “method”: “Filecoin.StateMinerInfo”, “params”: [ “f03274”, null ], “id”: 1 }’
‘https://api.node.glif.io‘ | jq
{
“jsonrpc”: “2.0”,
“result”: {
“Owner”: “f03261”,
“PeerId”: “12D3KooWP5D9TmqC45i6L2e2qQHYcuxaUwPdYo6CzqUMVmFEH3N9”,
…
接下来,您可以用Filecoin.ClientQueryAsk要领获取一个带签名的StorageAsk。这将与选定的矿工成立 libp2p 毗连,并询问存储报价。
curl -X POST https://api.node.glif.io
-H “Content-Type: application/json” –>{
“jsonrpc”: “2.0”, “method”: “Filecoin.ClientQueryAsk”, “id”: 1,
“params”: [
“12D3KooWP5D9TmqC45i6L2e2qQHYcuxaUwPdYo6CzqUMVmFEH3N9”,
“f03274”
]
}
EOF
{
“jsonrpc”: “2.0”,
“result”: {
“Price”: “100000000000”,
“VerifiedPrice”: “100000000000”,
“MinPieceSize”: 256,
“MaxPieceSize”: 34359738368,
“Miner”: “f03274”,
“Timestamp”: 148031,
“Expiry”: 1199231,
“SeqNo”: 14
},
“id”: 1
}
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。