区块链中文技术社区

修改 Solana 区块间隔时间

从《solana 的工作原理》,可以从区块构建过程了解到,每个插槽持续 400 毫秒,查看对应核心代码

// solana-sdk/clock/src/lib.rs

/// The expected duration of a slot (400 milliseconds).
pub const DEFAULT_MS_PER_SLOT: u64 = 1_000 * DEFAULT_TICKS_PER_SLOT / DEFAULT_TICKS_PER_SECOND;
pub const DEFAULT_S_PER_SLOT: f64 = DEFAULT_TICKS_PER_SLOT as f64 / DEFAULT_TICKS_PER_SECOND as f64;

如果参考atlas https://docs.atlas.xyz/architecture/differences_with_solana 将区块创建时间从400ms降低为50ms
从结果角度,有两个参数可以

解释:以 160 个 ticks/s 计算,每时隙 64 个 ticks 意味着领导者轮换和投票将每 400 毫秒发生一次。快速投票节奏可确保更快的最终性和收敛性

从Rollup集中validator的角度,应修改DEFAULT_TICKS_PER_SLOT,缩小8倍。

备注

v2.0.18 版本修改简单些,solana-sdk 没有拆分为单独的模块,直接修改代码即可
v2.2 版本solana-sdk 做了拆分子模块,需要fork下sdk, 然后push到 https://crates.io/ ,整体修改链代码将[workspace.dependencies] 中的solana-clock 替换为fork后的库名

当前页面是本站的「Google AMP」版。查看和发表评论请点击:完整版 »