如何使用 Lotus 进行管理交易 (中篇)

尚云技术控 水手 发布在 矿业挖矿
 1648  1

Filecoin 数据存储-超大文件存储


下文我们会更深入地存储非常大的文件(超过1TiB),提供有关如何存储数据的更多见解和一些最佳实践


2.1 最大化每个扇区的存储

在 Filecoin 中,文件必须小于存储它们的扇区。

通常扇区被错误地描述为 32 GB 或 1 MB,而实际上它们分别为 32 GB (GiB) 和 1 MB (MiB)。因此,一个 32GiB 扇区有 2^30 字节(1,073,741,824 字节)而不是 1,000,000,000 字节。

但是,并非扇区中的所有空间都可以有效使用。对于每 256 位,保留 2 位用于证明过程。因此,扇区的可用大小为:

扇区大小 * 254 / 256**

这是一个快速表:


2KiB       2,032  字节

8MB       8,323,072  字节

512MB   532,676,608  字节

32GiB    34,091,302,912  字节

64GiB    68,182,605,824  字节


2.2 处理离线数据传输

Filecoin 的离线数据传输功能推荐用于 PB 级和更大的数据集。这允许拥有非常大数据集的用户离线完成数据传输步骤(例如,通过将硬盘从客户端运送到存储矿工),同时存储交易继续按预期在链上工作。

它是通过存储交易命令上的标志来实现的,该标志告诉客户端不要通过网络传输数据,而是向矿工提供一个 CID(描述数据的唯一标识符),然后矿工必须将其与交易要通过。这为客户端节点提供了如何设置交易的灵活性——例如,将矿工传递到硬盘驱动器上的特定位置,以获取他们可用于生成片段 CID 的数据。


2.2.1 生成唯一的片段 CID

使用 Lotus 客户端生成输入的 CAR 文件,无需导入:

lotus client generate-car <input_path/filename> <output_path/data.car>


使用 Lotus 客户端生成片段 CID 和大小:

lotus client commP <inputCarFilePath>


2.2.2 计算数据大小

l  取最终的CAR尺寸 ls -l data.car

l  将其四舍五入到最接近的 2 次方。这是您的裸尺寸。

l  除以 128,再乘以 127。这是您的裸尺寸

提出与矿工的离线交易:

lotus client deal --manual-piece-cid=CID --manual-piece-size=datasize <Data CID> <miner> <price> <duration>


当您使用 将我们的数据导入 Lotus 时,将提供您的数据 CID lotusclient import。


2.2.3 离线传输数据到矿机

这可以通过多种方式完成,例如将硬盘从客户端运送到存储矿工。


2.2.4 最终确定:矿工的角色

矿工可以导入数据并手动处理:

lotus-miner storage-deals import-data <dealCid> <carFilePath>

一旦第一个时空证明 (PoSt) 命中链,存储交易就被视为有效。


未完待续... ...

欢迎关注:尚云技术控 双路无忧 ,代码加持!!


  • 正序
  • 最新
只看帖主 楼层直达
登录 账号发表你的看法,还没有账号?立即免费 注册