# 网络配置档（profiles）

编译进二进制（`go:embed`），用 `-network mainnet|testnet|devnet|path/to/file.json` 选择。`consensus` 中的全部字段进入参数哈希与链 ID：任何改动都等于一条新链。

| 字段 | 说明 |
|---|---|
| `difficulty` / `target_block_time` / `retarget_interval` / `halving` | PoW 与发行参数 |
| `min_fee` / `min_gas_price` / `private_flat_fee` | 手续费规则（见 README “手续费规则”） |
| `foundation_addr` / `marketing_addr` | 手续费分账地址（30% / 20%），**共识参数** |
| `ring_size` | 隐私交易环大小 |
| `checkpoints` | `{"高度": "区块哈希"}`，随发布版本分发；与本地 `-checkpoints` 合并，冲突拒绝启动 |
| `strict_pin` | 是否只连接带节点 ID 的地址 |
| `seeds` | 种子节点，**必须**写成 `nodeid@host:port`（节点 ID = 节点 TLS 公钥派生，钉扎后防中间人） |

## 种子列表格式

`seeds` 数组或 `-seedfile` 文件（每行一个 `nodeid@host:port`，`#` 开头为注释）。没有节点 ID 的条目被拒绝。

## 主网上线前必须完成（本项目未完成，也无法在代码中完成）

1. **真实种子节点需要真实基础设施**：由多个相互独立的运营方在不同 AS/地区长期运行的节点，公布其节点 ID；本仓库的 `seeds` 为空。
2. **分账地址**：`foundation_addr` / `marketing_addr` 必须换成真实地址，私钥离线保管（建议多方托管）。`testnet_keys/` 下的钱包**仅供测试**，节点拒绝在 mainnet 使用它们或空地址。替换方法：在离线机器上 `minichain wallet-new -out foundation.json`，把输出的地址填入 `mainnet.json` 后重新编译。
3. **检查点**：仅加入经发布流程确认的区块哈希。
4. 安全审计（本项目**未经审计**）。
