您当前的位置: > 比特币行情 >

Filecoin如何举行存储和检索生意业务

发布时间:2024-04-16 22:20

这篇博客文章从存储提供商(也称为矿工)和想要在Filecoin网络上存储数据的客户真个角度解释了Filecoin生意业务的事情方式。

查询数据时,本文中的技能说明使用JSON-RPC API与Filecoin网络举行交互。该API主要由应用法式使用。对使用者来讲,您可以使用用户友好的lotus号令行东西,该东西在后台使用JSON-RPC API。

一、先容

Filecoin网络通过允许任何人作为存储提供商举行介入来实现范围经济。当前,该网络由遍布全球的数百家存储提供商构成。内收留寻址和加密存储证实可验证数据会跟着时间的推移正确而宁静地存储在矿工的硬件上,从而创建了强盛而靠得住的办事。

这篇博客文章先容了Filecoin两种生意业务的根基阶段,即存储生意业务和检索生意业务,并具体说明晰它们的生命周期。还说明晰用于验证系统介入者是否根据其答应履行其职责的加密证实。

二、Filecoin上的数据

为了将文件存储在Filecoin上,客户端必需首先将其导进其当地Filecoin节点中。此步骤发生数据CID-内收留标识符,即独一描述内收留的ID。厥后,数据被传输到矿工。在Filecoin上存储文件的另一种要领是通过脱机生意业务,本文中不先容。

可以使用以下lotus clientimport号令将数据当地导进Filecoin节点。重要的是要记住天生的数据CID(以后在当地节点上也可以使用),由于以后必需使用它来从矿工哪里检索数据。

将数据导进当地节点后,用户必需建议生意业务。这可以通过lotus client deal号令来完成。该号令将数据CID作为输进,天生Filecoin Piece,并以交互方式引导用户完成下面胪陈的存储生意业务流程。

该Filecoin 碎片是用户存储Filecoin网络上的数据主机。所述Filecoin 碎片没有设定特定尺寸,但受网络参数节制扇区巨细,而且上限很大。假如Filecoin的碎片大于矿工支持的扇区的巨细,则必需将其拆分成更多的片断,以使每个片断适合一个扇区。

一个Filecoin碎片是一个CAR含有文件IPLD DAG与它本身的数据/有效载荷CID和片CID。

CAR代表内收留可寻址档案-一个CAR文件是任何的序列化暗示IPLD DAG作为其块的级联,加描述在文件中的曲线图(与报头根CID)。

当客户想要存储Filecoin网络中的文件,它们通过发生开始IPLD DAG与文件的UnixFS(这是什么lotus client import号令一样)。代表DAG根节点的哈希是IPFS样式的CID,称为数据/有效负载CID。

UnixFS是一种基于protobuf的格局,用于描述IPFS中的文件,目次和符号链接。Filecoin使用UnixFS作为提交到Filecoin网络的文件的文件格局指南。

天生的CAR文件用分外的零位填充,以使该文件成为二叉merkle树。

三、仓储生意业务流程

用户可以通过生意业务将数据存储在Filecoin网络中并从Filecoin网络中检索数据。网络中的介入者,矿工(供给方)和客户端(需求方)通过存储生意业务和检索生意业务彼此交互。

(一)存储生意业务生命周期

1.发明

客户识别矿工并确定他们当前的要价,即矿工为接管生意业务而但愿收到的attoFIL中每GiB的代价(每纪元(30秒))(1 attoFIL即是10 ^ -18 * FIL)。今朝,使用Filecoin举行生意业务的最短期限为180天。

您可以使用Filecoin.StateListMiners要领通过查询同步节点的JSON RPC API(出于测试目的,使用https://api.node.glif.io大众端点)列出所有当前勾当的矿工:

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协议的一部门,因此本文不涉及。

选择特定的矿工后,您需要获取其PeerID(比方,使用Filecoin.StateMinerInfo要领),以通过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 POSThttps://api.node.glif.io \

-H \"Content-Type:application/json\" --data-binary @- << EOF

{

\"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

}

成果包括有关该矿工愿意接管的生意业务的具体信息,比方允许的Filecoin片断巨细规模和每纪元每GiB的代价。请注意,提出与矿工的存储需求相匹配的存储生意业务发起是条件前提,但不足以确保生意业务被接管-存储提供商稍后可能会运行其本身的决议逻辑。

2.会谈和数据传输

在此阶段,两边就生意业务条款告竣协议,比方生意业务成本,生意业务连续时间,生意业务开始时间等。

然后数据从客户端传输到矿工。

3.出书

生意业务通过PublishStorageDeals动静在链上公布,从而使存储提供商对生意业务公然卖力。

4.交代

生意业务在链上公布后,将被移交给Storage Mining子系统,打包成一个扇区,该扇区随后被密封,并随后被持续证实。

(二)存储挖掘子系统

Storage Mining子系统确保矿工可以有效地将存储提交到Filecoin网络,而且:

1. 到场Filecoin存储市场,采纳在客户真个数据,并介入到存储生意业务。

2. 到场Filecoin存储功率共鸣,验证并天生区块以增长Filecoin区块链,并为此赚取区块奖励和用度。

它监视以下历程:

提交新存储并注册新部分

为了在Filecoin中注册一个部分,矿工必需密封该部分。密封是一个繁重的计较历程,它以证实形式(称为复制证实或PoRep)天生数据的独一暗示形式。一旦天生证实,矿工将其压缩并将成果提交给区块链。这是证实矿工确实已经复制了他们同意存储的数据的副本。

不停验证存储(请拜见WindowPoSt)

每个存储矿工必需持续提交链上的证实,以证实他们继续存储本身的部分。

声明存储妨碍并从中恢复(请参阅妨碍)

未能提交给定部分的上述证实将导致错误,并将对矿工处以罚款。

(三)存储矿工和客户注意事项

如上所述,存储生意业务在勾当和密封之前会在链上公布。这很重要,由于公布生意业务会将客户的资金锁定在托管链上。因此,矿工可以包管,假如他们确实将某个部分的数据封存,他们将得到报答。

它有助于将在链上公布的生意业务视为签订合同,而将合同的告竣和激活视为开始举行矿工答应的事情。

从想要在Filecoin上存储数据的客户的角度来望,生意业务大抵履历以下几个阶段:

1. 为生意业务提供资金-客户将资金锁定在第三方托管中

2. 向矿工提出协议

3. 查抄是否有意接管生意业务

4. 将生意业务的数据传输到矿工-这是通过GraphSync协议完成的。GraphSync是用于在同级之间同步IPLD图的协议。它允许主机向长途对等体发出单个请求,以遍历长途对等体的当地IPLD图上的IPLD选择器。Lotus使用GraphSync协议的ipfs / go-graphsync实现。

5. 查抄是否接管-确保矿工已接管生意业务并在链上公布。

6. 密封-生意业务正在举行中,矿工今朝正在密封包罗该生意业务的部分。

7. 有效-生意业务已密封且有效。从此以后,存储提供者/矿工应按期证实他们继续存储数据。有关更多具体信息,请拜见下面的时空证实部门。

从通过存储****向客户**办事的矿工的角度来望,生意业务大抵履历以下几个阶段:

1. 验证生意业务-收到生意业务发起,并查抄其参数(巨细,代价等)

2. 查抄是否有锁定资金-确保客户已锁定资金并可觉得生意业务付款。

3. 等候数据-从客户哪里吸收生意业务数据。

4. 连锁生意业务的典质品

5. 在链上公布生意业务

6. 密封部分

7. 激活生意业务-从此处开始,存储提供商/矿工会按期提交WindowPoSt证实,以证实他们正在不停存储数据。

四、检索生意业务流程

与存储生意业务差别,检索生意业务主要是通过付款渠道在链下举行的。数据传输是按计量的,而且客户在传输数据时以递增方式向矿工付款。创建付出渠道和兑换凭证是该历程中涉及与Filecoin区块链举行交互的独一部门。

这是整个历程:

1. 发明-客户识别拥有所需数据的矿工,并向他们请求检索报价-每字节代价,未密封代价,付款距离。

2. 付款渠道配置-客户在他们和矿工之间成立付款渠道(假如尚不存在)。

3. 通过付款举行数据传输-矿工将数据发送到客户,直到需要付款为止。当到达特定阈值时,请求付款处置惩罚,然后数据传输继续。取决于矿工是否具有在个中的数据块存储与否,他们可能需要首先开封它-一个非平凡和非瞬时操作,这是相反密封在有关存储生意业务的部门中描述。

客户端尚未乐成检索数据的完整副本。

(一)时空证实

上面的部门欣赏了很多细节,这些细节使Filecoin独树一帜,并为用户提供了数据的概率包管。本节涵盖Filecoin使用的两个证实,并解释它们如何适应协议以及解决的问题。

时空证实(PoSt)是一种历程,存储矿工可以通过该历程向Filecoin网络证实他们继续代表网络继续存储某些数据的独一副本。

时空证实今天在Filecoin中体现为两个差别的品种:

1. 时空证实(WindowPoSt);

2. 奖励证实(WinningPoSt)。

(二)奖励证实

奖励证实(WinningPoSt)是一种机制,通过这种机制,存储矿工可觉得他们对Filecoin网络的孝敬而得到奖励。在每个时期的开始,城市选举少量的存储矿工来为每个矿开采一个新的区块。为此,每个矿工的任务是为指定部分提交压缩的存储证实。每个乐成创建区块的选举矿工城市得到FIL(区块奖励),并有时机向其他Filecoin介入者收取用度,以将动静包括在区块中。

未能在须要的窗口中执行此操作的存储矿工将丧失其开采区块的时机,但不会因此而受到处罚。

(三)时空证实

时空证实(WindowPoSt)是一种机制,存储矿工的答应由Filecoin区块链审核。

每个存储矿工都应保持其答应的部分。这些部分包罗与客户或空部分举行的生意业务。后者称为答应收留量,即,矿工可以做出收留量答应,用任意数据而不是****填充一个扇区。维护这些扇区可以使存储矿工可以或许证实他们代表网络保留了空间。

天天分为一系列窗口,当前为48个窗口,连续时间为30分钟(60个周期,由于1个周期即是30秒)

每个存储矿工的包管扇区集都被划分为子集,每个窗口一个子集。

在给定的窗口(30分钟)内,每个存储矿工必需为各自子集中的每个扇区提交时空证实。这要求可以当即会见每个面对挑战的部分,而且将导致zk-SNARK证实作为块中的动静公布到Filecoin区块链。这样,在每个24小时内至少对每个包管存储部分举行一次审核,并保留永久,可验证的大众记载,以证实每个存储矿工的连续答应。

在上图中,您可以望到示例矿工应在截止日期0(> 16TB),截止日期1(<8TB)和截止日期2(<8TB)内提交WindowPoSt证实,而他们的大大都部分都在截止日期0内提交。每个矿工的截止日期是随机的,而且对于该特定矿工,截止时间别离在纪元1635,纪元1695和纪元1755开始。您可以在SpaceGap东西上检察这些截止日期以及有关矿工的更多具体信息。

Filecoin网络期看存储数据的连续可用性。未能为某个扇区提交WindowPoSt将导致妨碍,而且将减少提供该扇区的存储矿工。这激励了存储矿工的康健行为。

(四)缺点

假如在证实期内未在Filecoin区块链中包罗证实,则会导致妨碍,这是因为网络毗连丢失,存储妨碍或恶意行为导致的。

当为某个扇区注册了妨碍时,Filecoin网络将大幅减少本应存储该扇区的存储矿工。也就是说,它将评估对矿工的处罚(将由矿工所面对的典质品付出),由于他们没有遵守其储存包管。

部分妨碍收费分为三种:

1. 扇区妨碍费-在扇区处于妨碍状态时,天天按扇区付出此用度。用度的巨细略大于该行业天天期看得到的大块奖励的金额。假如某个扇区持续两个礼拜仍存在妨碍,则该扇区将付出终止费并从连锁状态中删除。

2. 部分妨碍检测费-假如矿工不诚实地陈诉妨碍,而是产生区块链发明未陈诉的妨碍,这是在产生妨碍时付出的一次性用度。思量到PoSt支票的概任性质,这将配置为几天有看由特定部分得到的块奖励。

3. 部分终止费-可以通过自动妨碍或矿工决定在其到期日期之前终止一个部分。收取终止费,原则上是即是一个部分迄今已赚取的收进,但要到达必然的上限,以免影响较长的使用寿命。

在Filecoin Spec网站上相识有关妨碍和经济性的更多信息。

五、结论

这篇文章涵盖了一些与在Filecoin上存储和检索数占有关的观点,客户和矿工为实现这一目的而介入的协议以及历程中涉及的各类证实和包管。

它从客户和矿工的角度具体说明晰存储和检索生意业务的流程,以及在当事方之一行为不妥的环境下Filecoin协议将要执行的惩罚。

Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE /* Style Definitions */ table.MsoNormalTable{mso-style-name:普通表格;mso-tstyle-rowband-size:0;mso-tstyle-colband-size:0;mso-style-noshow:yes;mso-style-priority:99;mso-style-parent:\"\";mso-padding-alt:0cm 5.4pt 0cm 5.4pt;mso-para-margin:0cm;mso-pagination:widow-orphan;font-size:10.5pt;mso-bidi-font-size:12.0pt;font-family:DengXian;mso-ascii-font-family:DengXian;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:DengXian;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:DengXian;mso-hansi-theme-font:minor-latin;mso-font-kerning:1.0pt;}

总而言之,它概述了Filecoin协议如何办理Filecoin网络以形成靠得住且不受信任的分离式存储网络的一些基础。