
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
比推快讯
更多 >>- Metaplanet CEO:mNAV 低于 1 倍将优先评估回购,“先卖空再用配售新股回补”在日本属违法行为
- Bubblemaps:OVPP 代币 80%供应量遭集中捆绑
- 《大空头》原型艾斯曼:美联储本轮降息周期不会持续太久,最多总共降息 100 个基点
- 某巨鲸疑似在 Aster 上出售 2092 万枚 APX,价值 1230 万美元
- STBL 回应“做市商抛售”传闻:未观察到异常卖出活动,相关交易或为用户套利行为
- 山寨币季节指数报 76,连续两日处于山寨季区域
- Pantera:比特币和以太坊的叙事已定型,Solana 有更大的上涨潜力
- 数据:Hyperliquid 平台鲸鱼当前持仓 113.43 亿美元,多空持仓比为 0.88
- Polymarket 发布Locked in主题推文
- 昨日美国比特币现货 ETF 净流入 1.6302 亿美元
- 某巨鲸再次买入 15.5 万枚 UNI 和 1.66 万枚 LINK
- 香港会计师公会:预计 2026 上半年推出虚拟资产的会计和审计指引
- NBA 球星杜兰特已重新获得其 Coinbase 账户的访问权限
- 英国公民因参与 Scattered Spider 勒索软件攻击被起诉,涉案金额超 1.15 亿美元
- 数据:Arthur Hayes 收到 79.6 万枚 ETHFI 代币,价值 132.2 万美元
- Pendle 多签向 CEX 存入 120 万枚 PENDLE,价值 644 万美元
- 孙宇晨:波场生态去中心化永续合约平台 SunPerp 已上线
- 劲方医药今日上市,每股定价 20.39 港元获超 2,600 倍认购
- 日本 2 年期国债收益率升至 0.885%,为 2008 年 6 月以来的最高水平
- 某巨鲸向 HyperLiquid 存入 400 万美元 USDC 以避免 BTC 空单被清算
- REX-Osprey XRP ETF 首日交易量达 3770 万美元,成为今年首日交易量最大的上市基金
- 某巨鲸将 4412 枚 ETH 转入币安,价值 2024 万美元
- 昨日 FBTC 净流入 9740 万美元,ARKB 净流入 2500 万美元
- Consensys CEO:MetaMask 代币即将到来,而且可能“比你预期的更快”
- 加拿大央行呼吁该国建立稳定币框架,避免落后于其他国家
- 数据:ETH 当前全网 8 小时平均资金费率为 0.0053%
- 日本 8 月核心通胀放缓,但仍高于央行目标
- NBA 球员特里斯坦·汤普森将推出 Web3 项目 basketball.fun,将 NBA 球员代币化
- 前 Kraken 首席法务官:Solana正在兑现 “Ethereum 近十年前的承诺”
- 基于 ZKsync 的混合 DEX GRVT 完成 1900 万美元 A 轮融资,ZKsync 和 Further Ventures 联合领投
- 美联储 10 月降息 25 个基点概率达 91.9%
- 白宫考虑更多 CFTC 主席候选人,因提名程序遇阻
- 美参议员Warren等致函司法部,要求提供特朗普政府与 Binance 会面信息
- 摩根大通: Circle 面临来自 Tether、Hyperliquid 和Fintech公司的“激烈”竞争
- 美元指数上涨 0.49%,收于 97.349
- 美股三大股指齐创新高,英特尔大涨 22.7%
- 彭博高级 ETF 分析师:未来12个月内很有可能推出 100 多个加密货币 ETF
- 波兰首只比特币 ETF 在华沙证券交易所上市,推动加密货币采纳
- Chainlink储备基金自8月以来累计回购790万美元的LINK代币
- 特朗普暗示俄乌冲突问题将传来“好消息”
- 加拿大警方缴获价值超过5600万美元的加密资产,为该国史上最高
- 欧盟推进养老金与加密货币改革,计划年底前落实
- Coinbase推出USDC链上借贷功能
- DEX 聚合器 Titan 完成 700 万美元种子轮融资,Galaxy Ventures 领投
- 数据:过去 24 小时全网爆仓 4.08 亿美元,多单爆仓 1.69 亿美元,空单爆仓 2.39 亿美元
- 稳定币 PayPal USD 通过 LayerZero 扩展到 TRON 网络
- 加拿大 RCMP 查获超 5600 万美元加密货币并关闭 TradeOgre 平台
- 特朗普政府请求美国最高法院允许总统解雇美联储理事库克
- Warren 等美参议员质询 Binance 是否履行 2023 年合规协议
- 某钻石手持有 BNB 7 年,获利 2880 万美元
比推专栏
更多 >>观点
比推热门文章
- 回顾十年:比特币、美股、美债同台竞技,真正的收益之王是谁?
- Pantera:比特币和以太坊的叙事已定型,Solana 有更大的上涨潜力
- 数据:Hyperliquid 平台鲸鱼当前持仓 113.43 亿美元,多空持仓比为 0.88
- Polymarket 发布Locked in主题推文
- 昨日美国比特币现货 ETF 净流入 1.6302 亿美元
- 某巨鲸再次买入 15.5 万枚 UNI 和 1.66 万枚 LINK
- 香港会计师公会:预计 2026 上半年推出虚拟资产的会计和审计指引
- NBA 球星杜兰特已重新获得其 Coinbase 账户的访问权限
- 英国公民因参与 Scattered Spider 勒索软件攻击被起诉,涉案金额超 1.15 亿美元
- 数据:Arthur Hayes 收到 79.6 万枚 ETHFI 代币,价值 132.2 万美元