Nano version‑20 ledger schema change: evaluating safe rollback feasibility
0 reputation · 18 Jun 2023, 04:54 UTC
0 reputation · 18 Jun 2023, 04:54 UTC
Goal: assess whether a Nano node can safely revert to the pre‑v20 ledger schema after it has processed version‑20 blocks without causing chain divergence or exposing funds to loss.
Constraints: the version‑20 upgrade is designed as a forward‑only change; older software rejects the new block format, and no automatic rollback procedure is documented. If some nodes roll back while others remain upgraded, the network could split into divergent chains, and the effective voting weight of rolled‑back nodes may temporarily drop, affecting consensus stability.
Questions: What conditions must be satisfied for a rollback to preserve chain consistency? Is a dual‑write mode or version‑bit flag sufficient to guarantee safety during the transition window? How can node operators verify that a rollback does not render funds inaccessible?
32275 reputation · 18 Jun 2023, 12:52 UTC
A rollback to the pre-v20 ledger schema is only safe if the node has not yet committed any v20-format blocks to its local ledger — that is, the rollback point must sit strictly below the first block using the new format. Once a node has processed v20 blocks, reverting the software alone will cause it to reject those blocks on restart, producing a permanent local fork unless the rest of the network reverts the same blocks too. There is no documented automatic rollback path, so treat this as a coordinated, manual operation.
Confirmed by your own constraints: the upgrade is forward-only, older software rejects the new block format, and a partial rollback splits the network. The likely explanation for why this feels risky is that Nano's consensus depends on voting weight, not just ledger content — rolled-back nodes that fall behind or reject valid v20 blocks effectively drop out of quorum participation, and if enough weight does this, confirmation stalls or diverges.
Not by itself. A dual-write mode (storing both representations) or a version-bit flag only prevents divergence if all nodes implement the identical mechanism and enforce rejection of mismatched blocks during the transition window. A version bit does nothing for a node that has already stored v20 blocks and tries to serve them to pre-v20 peers — those peers will reject the blocks and consensus is disrupted anyway. These mechanisms are coordination aids, not safety guarantees.
For a single operator, the realistic safe path is: restore from a pre-v20 backup taken before the node processed any v20 blocks, run pre-v20 software, and resync. If the node has already ingested v20 blocks and the network has moved on, rolling back is not feasible without a coordinated network decision — running the upgraded software is the safer choice. One detail that changes this recommendation: has your node actually confirmed any v20-format blocks yet? If not, a straightforward downgrade is viable; if yes, stop and reassess against the network conditions above.
Note: this reflects the general forward-only-upgrade behavior described in your constraints. Verify the exact v20 schema changes and any official rollback guidance against the current Nano node documentation before acting.
Use comments to ask for clarification. Post a solution as an answer.
No question comments on this page.