Filecoin上的数据存储

Filecoin上的数据存储

由于Filecoin是一个分散的存储市场,因此存储客户端(我们的术语是指任何想在Filecoin网络上存储数据的人)建议与他们认为能够满足存储需求的存储矿工进行存储处理。一旦存储客户端提出了一项交易,矿商可以选择接受或拒绝该交易。然后客户端发送数据,存储交易正式开始!

为了运行这些命令的其余部分,请确保安装并运行了Filecoin。

用样本数据测试Filecoin

您可以使用自己的数据来测试Filecoin,我们建议使用小型测试文件。

我们有一个样本数据(图片、GIF和文本文件),您可以从今天开始。下载这些数据,解压缩它,并将其保存到任何您喜欢的地方。在下面的示例中,我们将假设您的测试文件已经保存到桌面。

输入数据

在将数据存储到Filecoin网络之前,首先需要将数据导入本地Filecoin

# Start by creating a simple .txtfileecho "Hi my name is $USER">hello.txt # Import the created file intogo-filecoin.# RETURN VAL: Content ID (CID) ofthis file.# You'll need this CID for futurecommands to# view, store, or retrieve thisdata.export CID=`go-filecoin clientimport ./hello.txt` # View the imported file# RETURN VAL: "Hi my name isuser1"go-filecoin client cat $CID

还可以从计算机导入和查看文件:

# Import an image from the sampledata. Returns# its CID which you'll need for thenext step.export CID=`go-filecoin clientimport ~/Desktop/sample-data-master/camel.jpg` # View imported imagego-filecoin client cat $CID >image.png && open image.png

提出一个存储协议

导入数据后,您可以查看可用的数据。从矿工那里提出申请,现在,您将手动选择其中之一,并提出一个存储协议。

要查看所有可用的问题,请运行以下命令:

go-filecoin client list-asks--enc=json | jq

您应该会看到一个申请列表,格式很好,是JSON对象:

{ "Miner":"fcqxvnl37zdv8clc26j6r43zn8md7tc2mrfx77vru", "Price": "2.5", "Expiry": 588, "ID": 0, "Error": null}

从这个列表中选择一个申请。就目前而言,矿商之间最大的区别将是价格。在未来,矿工们还会有其他的特点。

现在,让我们提出一个存储协议。您需要包含以下4个参数:

  • <miner>矿工地址list-asks
  • <data>要存储的导入数据。
  • <ask>询问的ID,也来自list-asks(通常为0)
  • <duration>您想要存储多长时间(以30秒块的#为单位)。例如,储存1天(2块/分钟*60分钟/小时*24小时/天)=2880块。

go-filecoin clientpropose-storage-deal <miner> <data> <ask> <duration>

如果交易提议正确,它将自动被接受并返回。Status: accepted。目前,如果数据超过了矿工公司的可用数据,交易就会失败。如果节点的钱包余额不足以支付建议的数据大小和持续时间的询问成本,则交易也将失败。

发送数据和支付矿工

在整个过程中你的propose-storage-deal将自动将支付交易成本所需的资金转移到存储矿商的支付渠道中。该支付渠道将在整个交易期内定期向存储矿商发放付款。

您的数据将在Filecoin上自动传输到中转区域(从IPFS实现)。系统现在要求矿工存储您的文件,并开始密封/验证过程。在系统的设定下,文件中的矿工会在设定的间隔(默认120秒)内自动启动密封过程,以获取矿商中转区域中的所有数据,并将其封存到矿商承诺的存储区。在这一点上,你的交易状态将转到“staged”。在封口完成后,矿商发布其对连锁的承诺,您的交易状态将移动到“posted”。

检索数据

您现在已经成功地存储了数据!现在,让我们试着把它拿回来。

检索之前,必须等待要存储数据的扇区被密封(加密证明存储)。一笔交易从accepted更改为posted时。检查您的交易状态:

go-filecoin clientquery-storage-deal <dealID>

在你的交易结束后posted,您可以检索数据:

# Retrieve your data,using the address of the

# miner you made adeal with and the <CID> of the data.

go-filecoinretrieval-client retrieve-piece <minerAddress> <CID> # can take aminute

祝贺你!现在,您已经遍历了Filecoin上可用的几个客户端命令。如果您有任何问题,请联系我们。

文章发表于Filecoin官方博客,经Filecoin中国社区翻译整理。

发表评论