|
| 1 | +# NV25 Upgrade Document |
| 2 | + |
| 3 | +## Upgrade Background |
| 4 | + |
| 5 | +NV25 network upgrade |
| 6 | + |
| 7 | +**Calibnet**: 2025-03-26 07:00:00 (Beijing Time), Upgrade Height: 2520574 |
| 8 | + |
| 9 | +**Mainnet**: 2025-04-15 07:00:00 (Beijing Time), Upgrade Height: 4878840 |
| 10 | + |
| 11 | +## Notes |
| 12 | + |
| 13 | +1. All components must be replaced. |
| 14 | +2. Perform a node chain service cleanup within one week before the upgrade. |
| 15 | +3. After updating, verify the version number using the `curl` command with the Version API. See API usage: [https://github.com/filecoin-project/venus/issues/5132](https://github.com/filecoin-project/venus/issues/5132). |
| 16 | +4. Check the status of pre/pro messages on-chain. |
| 17 | +5. Check the status of WD messages on-chain. |
| 18 | +6. Verify that block production is normal. |
| 19 | +7. Ensure gas fee-related configurations are effective. |
| 20 | +8. Do not seal new sectors before the upgrade. |
| 21 | + |
| 22 | +## Components to Upgrade (sophon-auth is not upgraded this time) |
| 23 | + |
| 24 | +| Component | Tag | Commit | |
| 25 | +| ----------------------- | ------- | ------ | |
| 26 | +| venus | v1.18.1 | | |
| 27 | +| sophon-co | v0.12.0 | | |
| 28 | +| sophon-gateway | v1.18.0 | | |
| 29 | +| sophon-messager | v1.18.0 | | |
| 30 | +| sophon-miner | v1.18.0 | | |
| 31 | +| droplet | v2.14.0 | | |
| 32 | +| damocles-sector-manager | v0.12.3 | | |
| 33 | +| damocles-worker | v0.12.3 | | |
| 34 | + |
| 35 | +### Upgrade Order |
| 36 | + |
| 37 | +1. sophon-auth (not upgraded) |
| 38 | +2. venus |
| 39 | +3. lotus compatible version |
| 40 | +4. sophon-co |
| 41 | +5. sophon-gateway |
| 42 | +6. sophon-messager |
| 43 | +7. sophon-miner |
| 44 | +8. droplet |
| 45 | +9. damocles-manager |
| 46 | +10. damocles-worker |
| 47 | + |
| 48 | +--- |
| 49 | + |
| 50 | +### sophon-auth |
| 51 | + |
| 52 | +* **Impact**: Provides authentication service for other components. |
| 53 | +* **Dependencies**: None. |
| 54 | +* **Notes**: Not upgraded in this network upgrade. |
| 55 | + |
| 56 | +--- |
| 57 | + |
| 58 | +### venus |
| 59 | + |
| 60 | +* **Impact**: |
| 61 | + |
| 62 | + 1. **Supports f3**: |
| 63 | + Currently, Filecoin block finality requires 900 epochs. f3 aims to make blocks final much faster, ideally within just a few epochs. f3 requires miners to connect to a node for voting, and miners must sign votes. Since production nodes do not store private keys, nodes must connect to sophon-gateway for signing. |
| 64 | + |
| 65 | + venus supports two ways to connect to sophon-gateway: |
| 66 | + |
| 67 | + 1. Add `--wallet-gateway=<token:url>` at startup. |
| 68 | + 2. Configure `config.json`: |
| 69 | + |
| 70 | + ```json |
| 71 | + "walletModule": { |
| 72 | + "gatewayBacked": "<token:url>" |
| 73 | + } |
| 74 | + ``` |
| 75 | + |
| 76 | +* **Dependencies**: auth |
| 77 | + |
| 78 | +* **Notes**: |
| 79 | + |
| 80 | + * Build: run `make dist-clean` before `make` to avoid issues caused by incomplete `filecoin-ffi` upgrades. |
| 81 | + |
| 82 | + * After upgrade, check that vk files are complete. |
| 83 | + |
| 84 | + * Run `./venus state network-info` and verify `UpgradeTuktukHeight` matches expected values: |
| 85 | + |
| 86 | + ``` |
| 87 | + # cali |
| 88 | + UpgradeTeepHeight: 2520574 |
| 89 | + |
| 90 | + # mainnet |
| 91 | + UpgradeTeepHeight: 4878840 |
| 92 | + ``` |
| 93 | + |
| 94 | + * Confirm block synchronization works properly. |
| 95 | + |
| 96 | + * Verify mainnet v16 actor code matches expected output: |
| 97 | + |
| 98 | + ``` |
| 99 | + ./venus state actor-cids --network-version 25 |
| 100 | + ... |
| 101 | + Network Version: 25 |
| 102 | + Actor Version: 16 |
| 103 | + Manifest CID: bafy2bzacecnepvsh4lw6pwljobvwm6zwu6mbwveatp7llhpuguvjhjiqz7o46 |
| 104 | + ... |
| 105 | + ``` |
| 106 | + |
| 107 | + * Avoid setting Rust log level to `trace` unless debugging issues. |
| 108 | + |
| 109 | + * Run `./venus state get-actor t01000` to confirm upgrade success. |
| 110 | + |
| 111 | + * **Actor migration**: |
| 112 | + |
| 113 | + * Pre-migration starts 120 epochs before upgrade height. |
| 114 | + * Pre-migration duration \~1 min; final migration \~30s. |
| 115 | + |
| 116 | + ``` |
| 117 | + Pre-migration start: STARTING pre-migration |
| 118 | + Pre-migration end: COMPLETED pre-migration |
| 119 | + |
| 120 | + Migration start: STARTING migration |
| 121 | + Migration end: COMPLETED migration |
| 122 | + ``` |
| 123 | + |
| 124 | + * If importing a snapshot and `~/.venus` exists, delete `~/.venus/version` first. |
| 125 | + |
| 126 | + * Mainnet: `./venus daemon --import-snapshot snapshot.car` |
| 127 | + * Calibnet: `./venus daemon --import-snapshot snapshot.car --network calibrationnet` |
| 128 | + |
| 129 | +--- |
| 130 | + |
| 131 | +### sophon-co |
| 132 | + |
| 133 | +* **Impact**: None. |
| 134 | +* **Dependencies**: auth, venus, lotus compatible version. |
| 135 | +* **Notes**: After starting, check logs (debug level) to ensure node selection works properly. |
| 136 | + |
| 137 | +--- |
| 138 | + |
| 139 | +### sophon-gateway |
| 140 | + |
| 141 | +* **Impact**: Gateway service. |
| 142 | +* **Dependencies**: auth, wallet. |
| 143 | +* **Notes**: |
| 144 | + |
| 145 | + 1. Run `make dist-clean` before `make`. |
| 146 | + 2. Verify wallets and miners are registered after upgrade. |
| 147 | + |
| 148 | +--- |
| 149 | + |
| 150 | +### sophon-messager |
| 151 | + |
| 152 | +* **Impact**: Message handling. |
| 153 | +* **Dependencies**: auth, venus, gateway. |
| 154 | +* **Notes**: After upgrade, confirm messages are received and can land on-chain. |
| 155 | + |
| 156 | +--- |
| 157 | + |
| 158 | +### sophon-miner |
| 159 | + |
| 160 | +* **Impact**: |
| 161 | + f3 requires miners to vote via nodes. However, production miners connect through sophon-co, which may route requests to different nodes, potentially causing vote failures. |
| 162 | + To resolve this, a new **f3 node configuration** is added: |
| 163 | + |
| 164 | + ``` |
| 165 | + [F3Node] |
| 166 | + Addr = "/ip4/127.0.0.1/tcp/3453" |
| 167 | + Token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..." |
| 168 | + ``` |
| 169 | +
|
| 170 | + > The F3Node config uses the venus token and URL. This venus must already be connected to sophon-gateway. |
| 171 | +
|
| 172 | +* **Dependencies**: auth, venus, gateway. |
| 173 | +
|
| 174 | +* **Notes**: |
| 175 | +
|
| 176 | + 1. Verify miner count matches pre-upgrade. |
| 177 | + 2. Confirm block production works, and check orphan block count. |
| 178 | +
|
| 179 | +--- |
| 180 | +
|
| 181 | +### droplet |
| 182 | +
|
| 183 | +* **Impact**: Market service. |
| 184 | +* **Dependencies**: auth, venus, gateway, messager. |
| 185 | +* **Notes**: Verify deals can be published successfully. |
| 186 | +
|
| 187 | +--- |
| 188 | +
|
| 189 | +### venus-wallet |
| 190 | +
|
| 191 | +* **Impact**: Wallet signing. |
| 192 | +* **Dependencies**: None. |
| 193 | +* **Notes**: Confirm signing works and messages land on-chain after upgrade. |
| 194 | +
|
| 195 | +--- |
| 196 | +
|
| 197 | +### damocles-sector-manager |
| 198 | +
|
| 199 | +* **Impact**: Sector management. |
| 200 | +* **Dependencies**: chain service components. |
| 201 | +* **Notes**: Run `make dist-clean` before `make`. |
| 202 | +
|
| 203 | +--- |
| 204 | +
|
| 205 | +### damocles-worker |
| 206 | +
|
| 207 | +* **Impact**: Sector worker tasks. |
| 208 | +* **Dependencies**: damocles-manager. |
| 209 | +* **Notes**: None. |
| 210 | +
|
| 211 | +--- |
| 212 | +
|
| 213 | +### Post-upgrade Validation Steps |
| 214 | +
|
| 215 | +1. All programs start normally. |
| 216 | +2. Pre/Pro messages land on-chain. |
| 217 | +3. Block production is normal. |
| 218 | +4. WD messages land on-chain. |
| 219 | +5. CC cluster power grows normally. |
| 220 | +6. Real data cluster power grows normally. |
| 221 | +7. Retrieval works properly for real storage clusters. |
| 222 | +8. Database settings for gas, lifecycle, aggregation are correct. |
| 223 | +
|
| 224 | +--- |
| 225 | +
|
| 226 | +### Database Changes |
| 227 | +
|
| 228 | +None. |
0 commit comments