mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-07-19 03:10:48 +00:00
Add hard fork upgrade design for admission control
- Explain admission control purpose: support hard fork upgrades like EIP - Add upgrade flow diagram (prepare, transition, upgrade, complete phases) - Add version compatibility management examples - Add comparison table between Ethereum EIP and X Chain XIP Co-Authored-By: mccoy <hbzgzr@gmail.com>
This commit is contained in:
parent
3159129ca2
commit
664efbc372
1 changed files with 68 additions and 0 deletions
|
|
@ -765,6 +765,74 @@ func (s *SGXConsensus) VerifyNetworkConsistency(peer *Peer) error {
|
|||
1. **度量值匹配**:对方节点的 MRENCLAVE/MRSIGNER 必须在允许列表中
|
||||
2. **Chain ID 匹配**:对方节点的 Chain ID 必须与本节点一致
|
||||
|
||||
#### 6.1.0 设计目的:支持硬分叉升级
|
||||
|
||||
准入控制的核心目的是**支持硬分叉升级**,类似于以太坊的 EIP 实现机制。当需要发布新版代码实现新特性时,通过更新 MRENCLAVE 白名单来控制网络升级。
|
||||
|
||||
**硬分叉升级场景:**
|
||||
|
||||
1. **新特性发布**:类似 EIP-1559、EIP-4844 等协议升级,需要所有节点运行新版代码
|
||||
2. **安全修复**:发现安全漏洞后,强制所有节点升级到修复版本
|
||||
3. **性能优化**:优化后的代码产生不同的 MRENCLAVE,需要协调升级
|
||||
|
||||
**升级流程:**
|
||||
|
||||
```
|
||||
时间线
|
||||
|
|
||||
v
|
||||
+------------------+
|
||||
| 阶段 1: 准备 | 发布新版代码,公布新 MRENCLAVE
|
||||
+------------------+
|
||||
|
|
||||
v
|
||||
+------------------+
|
||||
| 阶段 2: 过渡 | 节点配置同时允许新旧 MRENCLAVE
|
||||
| | mrenclave = ["旧版本", "新版本"]
|
||||
+------------------+
|
||||
|
|
||||
v
|
||||
+------------------+
|
||||
| 阶段 3: 升级 | 节点逐步升级到新版本
|
||||
| | 新旧节点可以互相连接和同步
|
||||
+------------------+
|
||||
|
|
||||
v
|
||||
+------------------+
|
||||
| 阶段 4: 完成 | 移除旧版 MRENCLAVE
|
||||
| | mrenclave = ["新版本"]
|
||||
| | 未升级节点被隔离(硬分叉)
|
||||
+------------------+
|
||||
```
|
||||
|
||||
**版本兼容性管理示例:**
|
||||
|
||||
```toml
|
||||
# config.toml - 过渡期配置
|
||||
[sgx]
|
||||
# 同时允许 v1.0.0 和 v1.1.0 版本
|
||||
mrenclave = [
|
||||
"abc123...", # v1.0.0 - 当前稳定版
|
||||
"def456...", # v1.1.0 - 新版本(包含 XIP-001 特性)
|
||||
]
|
||||
|
||||
# 升级完成后的配置
|
||||
[sgx]
|
||||
mrenclave = [
|
||||
"def456...", # v1.1.0 - 仅允许新版本
|
||||
]
|
||||
# 运行 v1.0.0 的节点将无法连接,形成硬分叉
|
||||
```
|
||||
|
||||
**与以太坊 EIP 的对比:**
|
||||
|
||||
| 特性 | 以太坊 EIP | X Chain XIP |
|
||||
|------|-----------|-------------|
|
||||
| 升级触发 | 区块高度 | MRENCLAVE 白名单 |
|
||||
| 强制升级 | 需要社区共识 | 通过准入控制强制 |
|
||||
| 回滚可能 | 困难 | 恢复旧 MRENCLAVE 即可 |
|
||||
| 验证方式 | 区块验证规则 | SGX 远程证明 |
|
||||
|
||||
#### 6.1.1 命令行参数
|
||||
|
||||
```bash
|
||||
|
|
|
|||
Loading…
Reference in a new issue