值得信赖的区块链资讯!
Filecoin – Precommit2计算介绍
Sector计算的部分分为Precommit1和Precommit2两部分。两部分合在一起,称为SDR算法。整个SDR算法的相关计算在之前的文章介绍过。本文着重介绍一下Precommit2的计算逻辑。Precommit2计算分为两部分:1/ Column Hash计算以及Merkle树构造 2/ Replica计算以及Merkle树的构造。相关的逻辑请查看rust-fil-proofs/storage-proofs/porep/src/stacked/vanilla/proof.rs中的transform_and_replicate_layers函数。
1 Column Hash计算
Column Hash计算的实现在generate_tree_c函数。具体的实现分为两个版本:CPU和GPU版本。
if settings::SETTINGS.lock().unwrap().use_gpu_column_builder {
Self::generate_tree_c_gpu::<ColumnArity, TreeArity>(
layers,
nodes_count,
tree_count,
configs,
labels,
)
} else {
Self::generate_tree_c_cpu::<ColumnArity, TreeArity>(
layers,
nodes_count,
tree_count,
configs,
labels,
)
}
GPU版本的逻辑相对复杂一些,讲讲GPU的逻辑:

进行column计算,需要从硬盘读取11层layer的数据,并整合成column排布。GPU版本,一批批的进行处理,将一部分column读取排序后,通过channel送给GPU处理(Column Hash以及构造Merkle树)。代码逻辑大体上就是两个线程,一个读取layer的数据,column排序,另外一个GPU处理。每次batch的节点个数默认是400000,也就是135M左右。在column计算完成后,GPU构造Merkle树。
2 Replica计算
Replica是最后一层layer的数据和原始数据编码之后的结果。每次Encoding一部分Replica,通过channel送给GPU(构造Merkle树)。每次batch的节点个数默认是700000,也就是22M左右。注意,batch的是Encoding的结果。

3 Merkle树的构造
Merkle树的构造都是采用merkletree库。这个库实现通用的Merkle树的结构和计算。通用的Merkle树,指的是Merkle并不只是通常我们理解的二叉树,而是分成3层:top,sub和base。

如上图的示例,top是1叉,sub是3叉,base是4叉。在Precommit2计算中,tree_c和tree_r_last都是8叉树:
type Tree = storage_proofs::merkle::OctMerkleTree<DefaultTreeHasher>; pub type OctMerkleTree<H> = DiskTree<H, U8, U0, U0>;
4 GPU加速
在Precommit2计算中,Column Hash的计算以及Merkle树的构造是采用GPU加速。相关的代码在neptune代码库中。有意思的是,这部分的代码并不是用cuda或者opencl实现的,而是一种新的更高层的语言:Futhark。
5 相关宏定义
FIL_PROOFS_USE_GPU_COLUMN_BUILDER – 使用GPU,进行column hash的计算
FIL_PROOFS_MAX_GPU_COLUMN_BATCH_SIZE – 每次计算Column的batch大小,默认400000
FIL_PROOFS_COLUMN_WRITE_BATCH_SIZE – 每次刷Column数据的batch大小,默认262144
FIL_PROOFS_USE_GPU_TREE_BUILDER – 使用GPU,构造Merkle树
FIL_PROOFS_MAX_GPU_TREE_BATCH_SIZE – 每次Encoding计算的batch大小,默认700000
总结:
Precommit2阶段,主要是计算Column Hash以及生成Replica,并构造相应的Merkle树。其中,Column Hash的计算以及Merkle树的构造可以采用GPU加速。GPU的实现采用一种新的高层语言:Futhark。
来源:Star Li
比推快讯
更多 >>- 数据:当前加密恐慌贪婪指数为 32,处于恐慌状态
- 疑似 BitmineSharpLink 地址增持 9,272 枚 ETH,价值 3577 万美元
- 数据:某交易员在 TRUMP 上获利超 110 万美元后买入 300 万枚 GHOST
- 币友(BYB)交易所:社交⾦融重塑数字资产交易新体验
- 港股上市公司恒月控股斥资 524.2 万港元购入 6.12 枚 BTC,拟推预付费比特币卡
- Ansem:432 美元买入 ZEC 如同 432 美元买入比特币
- 马来西亚央行启动现实世界资产代币化探索计划
- Pump.fun 推出实用代币支持计划Spotlight
- 马斯克:新款 Roadster 跑车可能具备飞行能力
- 比特币 11 月平均回报率为 42.49%,以太坊 11 月平均回报率为 7.08%
- 高盛报告:加密货币占全球投资组合的 1%
- 数据:Hyperliquid 平台鲸鱼当前持仓 66.86 亿美元,多空持仓比为 0.84
- 投资银行 Macquarie 上调矿企 Core Scientific 评级,股价上调 90%
- 比特币 10 月月线收跌 3.69%,创史上第三个下跌十月
- 数据:美国 Hedera 现货 ETF 单日净流入 1228 万美元;Litecoin 现货 ETF 单日净流入 23 万美元
- 美国财长盛赞比特币网络 17 年连续稳定运行
- 数据:“胜率 100% 巨鲸”持有的 ETH、BTC、SOL 多单浮亏 698 万美元
- 100%胜率巨鲸维持约 3.7 亿美元总做多仓位,浮亏约 670 万美元
- USDC Treasury 在 Solana 链上新增铸造 2.5 亿枚 USDC
- 马斯克:将推出具有“类似比特币”加密功能的即时通讯应用“X Chat”
- 美众议院农业委员会主席与 CFTC 代理主席磋商,为加密监管新规做准备
- 加州监管机构对比特币 ATM 运营商 Coinhub 处以 67.5 万美元罚款
- 罗马尼亚因 Polymarket 未经许可运营而将其封禁
- Vitalik 再次出售其免费获得的 Meme 币,换得 15,170 枚 USDC
- 黄仁勋自 6 月以来出售价值超 10 亿美元英伟达股票
- 数据:ETH 当前全网 8 小时平均资金费率为 0.0011%
- Coinbase 收购稳定币初创公司 BVNK 预计今年底或明年初完成
- Bitwise 更新 XRP ETF 申请文件,管理费率为 0.34%
- Bitmine 购买 7,660 枚 ETH,价值 2,954 万美元
- James Wynn 增持比特币空头头寸至 8.27 枚 BTC,浮盈 1.5 万美元
- 美股三大指数月线均创多年最长连涨纪录
- 数据:过去 24 小时全网爆仓 2.96 亿美元,多单爆仓 1.37 亿美元,空单爆仓 1.58 亿美元
- 美国联邦检察官指控比特币 ATM 助长加密货币诈骗
- Coinbase 计划以 20 亿美元收购 BVNK 推动稳定币业务
- 美联储逆回购操作接纳 25 个对手方,总额达 518.02 亿美元
- 美联储哈玛克:对改革货币政策利率目标持开放态度
- 博斯蒂克:12 月降息并非既定事项
- Steak 'n Shak 宣布建立战略比特币储备
- 美国第十巡回上诉法院支持美联储,驳回 Custodia 主账户请求
- 博斯蒂克:稳定币最大问题在于主导用例选择
- 美联储哈玛克:稳定币是一项令人兴奋的技术,其用例还需时间来验证
- 美联储博斯蒂克:宁愿处于 “充裕” 状态
- 哈玛克:贴现窗口可根据需要提供流动性
- 美联储哈玛克:本周更倾向于维持利率不变
- 美联储博斯蒂克:最终支持本周降息
- 哈玛克,美联储政策几乎不具限制性
- ZEC 市值超越 XMR,升至加密货币市值排行第 32 位
- 美国总统特朗普:不打击委内瑞拉
- 山寨币季节指数回升至 32
- 法拉第未来新款车型首笔预付款使用 USDT 完成支付,称将扩展加密货币支付功能
比推专栏
更多 >>观点
比推热门文章
- 疑似 BitmineSharpLink 地址增持 9,272 枚 ETH,价值 3577 万美元
- 数据:某交易员在 TRUMP 上获利超 110 万美元后买入 300 万枚 GHOST
- 币友(BYB)交易所:社交⾦融重塑数字资产交易新体验
- 港股上市公司恒月控股斥资 524.2 万港元购入 6.12 枚 BTC,拟推预付费比特币卡
- Ansem:432 美元买入 ZEC 如同 432 美元买入比特币
- 马来西亚央行启动现实世界资产代币化探索计划
- Pump.fun 推出实用代币支持计划Spotlight
- 马斯克:新款 Roadster 跑车可能具备飞行能力
- 比特币 11 月平均回报率为 42.49%,以太坊 11 月平均回报率为 7.08%
- 高盛报告:加密货币占全球投资组合的 1%
比推 APP



