NEXT_PUBLIC_AD_BANNER_PROVIDER=none
NEXT_PUBLIC_AD_TEXT_PROVIDER=none
https://github.com/blockscout/blockscout
https://github.com/blockscout/frontend/blob/main/docs/ENVS.md
NEXT_PUBLIC_AD_BANNER_PROVIDER=none
NEXT_PUBLIC_AD_TEXT_PROVIDER=none
https://github.com/blockscout/blockscout
https://github.com/blockscout/frontend/blob/main/docs/ENVS.md
BNB Chain(BSC)近两年进行了大幅结构升级,特别是在 genesis-template.json 中,引入了多版本硬分叉、时间激活机制、Blob(EIP-4844)、EIP-1559、Deposit 接口等框架性变更,使其从传统 “Parlia 简易模式” 升级为与以太坊主网高度兼容的现代化架构。
本文将对比旧版与新版 BSC genesis-template.json 的结构变化,并解释每个字段设计背后的技术原因。
早期版本的 BSC(包括 Mainnet 与 Testnet 很长时间)仅在 genesis 中包含 Parlia 共识参数:
"parlia": {
"period": 3,
"epoch": 200
}
| 字段 | 作用 |
|---|---|
| period | 出块间隔(秒),默认 3 秒 |
| epoch | validator 切换周期(多少区块重新选举),默认 200 |
旧版 BSC genesis 的核心只有 Parlia 配置,因此功能扩展能力有限。
BNB Chain 在 2024–2025 年陆续引入了大量升级(Feynman、Haber、Pascal、Prague、Lorentz…),genesis 文件结构变得高度现代化:
"feynmanFixTime": 0,
"cancunTime": 0,
"haberTime": 0,
"haberFixTime": 0,
"bohrTime": 0,
"pascalTime": 0,
"pragueTime": 0,
"lorentzTime": 0,
"depositContractAddress": "0x0000000000000000000000000000000000000000",
"parlia": {},
"blobSchedule": {
"cancun": {
"target": 3,
"max": 6,
"baseFeeUpdateFraction": 3338477
},
"prague": {
"target": 3,
"max": 6,
"baseFeeUpdateFraction": 3338477
}
}
下面逐项解析这些字段。
新版 BSC 使用 Timestamp-based Hardfork 与以太坊主网保持一致。
| 字段 | 说明 |
|---|---|
feynmanFixTime |
Feynman 修复分叉激活时间 |
cancunTime |
Cancun 升级激活时间(支持 EIP-4844 Blob) |
haberTime |
Haber 升级 |
haberFixTime |
Haber 修复版 |
bohrTime |
Bohr 升级 |
pascalTime |
Pascal 升级 |
pragueTime |
Prague 升级 |
lorentzTime |
Lorentz 升级 |
统一规则:
设置为 0 表示链启动后立即激活所有功能
→ 适合私链 / DevNet / 测试链
→ 公链通常使用具体 Unix 时间戳
从此 BSC 不再使用区块高度(blockNumber)触发升级,而全面迁移到 ETH 的时间触发机制,升级可控性更强。
旧版的:
"parlia": {
"period": 3,
"epoch": 200
}
新版变成:
"parlia": {}
这是因为:
period = 3epoch = 200如果需要自定义,可以继续写入:
"parlia": {
"period": 1,
"epoch": 200
}
blobScheduleBSC 新版开始兼容以太坊 Cancun 升级(EIP-4844),新增 Blob Gas 调整参数:
"blobSchedule": {
"cancun": {
"target": 3,
"max": 6,
"baseFeeUpdateFraction": 3338477
},
"prague": {
"target": 3,
"max": 6,
"baseFeeUpdateFraction": 3338477
}
}
| 字段 | 说明 |
|---|---|
| target | 每个块的目标 Blob 数量 |
| max | 每块最大 blob 数量 |
| baseFeeUpdateFraction | Blob baseFee 调整参数 |
这是与 ETH 主网完全一致的 Blob Gas 定价模型,用于 Rollup / 数据可用性(DA)场景。
"depositContractAddress": "0x0000000000000000000000000000000000000000"
目前 BSC 仍是 PoSA(并非 ETH PoS),但这一字段用于兼容未来可能的信标链接口,是预留字段。
| 项目 | 旧版 BSC | 新版 BSC |
|---|---|---|
| 共识 | Parlia | Parlia(默认配置) |
| 升级机制 | blockNumber 激活 | timestamp 激活(与 ETH 主网一致) |
| EIP-1559 | ❌ 不支持 | ✔ 支持 |
| EIP-4844 Blob | ❌ 不支持 | ✔ 支持 |
| 硬分叉版本 | 基本无 | Feynman / Haber / Pascal / Prague / Lorentz |
| genesis 结构 | 极简 | 高度模块化 |
| 可扩展性 | 较弱 | 强,接近 ETH 主网协议栈 |
新版 BSC 通过一套统一的时间激活 hardfork 机制,使其升级模型、blob gas 模型、EIP 兼容性全面向以太坊主网对齐。
| 需求 | 原因 |
|---|---|
| 兼容 ETH 主网升级(Cancun/Prague) | 保持生态一致性 |
| 引入 Blob(EIP-4844) | 提升 DA 能力、支持 L2 |
| 统一升级机制 | 简化多版本支持 |
| 为未来 PoS 预留功能 | 兼容 depositContractAddress |
| 拓展链能力 | 支持更现代的 Gas 模型与交易类型 |
因此新版 genesis 是一个从 ETH 主网演化而来的高度可扩展结构。
ssh-keygen -t ed25519 -C "jenkins@your-domain" -f /var/jenkins_home/.ssh/id_ed25519
生成后会有:
查看公钥内容:
cat /var/jenkins_home/.ssh/id_ed25519.pub
打开 GitHub → 右上角头像 → Settings → SSH and GPG keys → New SSH key
把刚才复制的公钥粘贴进去,保存。
GitLab / Gitea / 自建 Git 也类似:找到 SSH Keys 设置,加进去即可。
SSH Username with private key(中文界面类似)gitEnter directly/var/jenkins_home/.ssh/id_ed25519 里的内容复制进去cat /var/jenkins_home/.ssh/id_ed25519 查看,然后复制)github-ssh-universe例如 GitHub:
git@github.com:xxx/xxx.git
不是:
https://github.com/xxx/xxx.git
如果你用的是声明式 Pipeline,可以这样写:
pipeline {
agent any
stages {
stage('Checkout') {
steps {
git branch: 'main',
url: 'git@github.com:universe-web3/universe-deploy-ansible.git',
credentialsId: 'github-ssh-universe'
}
}
}
}
Jenkins 用 SSH 拉 github.com 时,要求严格校验证书(StrictHostKeyChecking=yes),但 known_hosts 里没有 github.com 的主机指纹,所以直接拒绝。
可以让 Jenkins 自己“自动信任”第一次连接的 host key(安全性稍差,但在你自己控制的环境里一般也可以接受)。
保存之后,再去构建你的 Job 试一次。
opkg update
opkg install openssh-client-utils