Commit 13c5211
authored
Fix trusted-waypoint restore history handling (#341)
## Summary
- skip ledger-info signature validation for transaction/state restore at
or before the highest trusted waypoint
- persist ledger pruner progress at the requested ledger history start
version during `bootstrap-db` restore
- add regression coverage for the pre-waypoint verification bypass
## Why
`bootstrap-db` with `--trust-waypoint` was failing in two ways on
Movement backups:
1. historical transaction chunk proofs could still hit pre-waypoint
validator/signature verification even though the restore should trust
data up to the supplied waypoint
2. even after a successful restore, a node booting from a DB restored
with `--ledger-history-start-version 0` could expose
`oldest_ledger_version` at the snapshot boundary because missing pruner
metadata was inferred from the first `VersionData` row
## Validation
- `cargo test -p aptos-backup-cli
epoch_history_skips_verification_before_highest_trusted_waypoint --
--nocapture`
- `cargo test -p aptos-backup-cli trusted_waypoints -- --nocapture`
- seeded oneoff Movement testnet backup from genesis through version
`36050159`
- restored with:
- `target/release/aptos-debugger aptos-db restore bootstrap-db
--local-fs-dir /private/tmp/movement-testnet-backup-seed.wop5l4
--target-db-dir
/private/tmp/movement-testnet-restore-seed-fixed.WAMrR2/db
--ledger-history-start-version 0 --target-version 36050159
--trust-waypoint
26050159:45860ebee4fe4b8f945bda1fd9d5d0c03778afd2cfa178a7e1806bd0caa823e4
--replay-all`
- started a fullnode on the restored DB and verified:
- `GET /v1` reports `oldest_ledger_version = 0`
- `GET /v1/transactions/by_version/0` succeeds1 parent 437d37f commit 13c5211
5 files changed
Lines changed: 78 additions & 2 deletions
File tree
- storage
- aptosdb/src/backup
- backup/backup-cli/src
- backup_types/epoch_ending
- coordinators
- utils
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
63 | 63 | | |
64 | 64 | | |
65 | 65 | | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
66 | 70 | | |
67 | 71 | | |
68 | 72 | | |
| |||
Lines changed: 11 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
285 | 285 | | |
286 | 286 | | |
287 | 287 | | |
| 288 | + | |
288 | 289 | | |
289 | 290 | | |
290 | 291 | | |
| |||
303 | 304 | | |
304 | 305 | | |
305 | 306 | | |
306 | | - | |
| 307 | + | |
307 | 308 | | |
308 | 309 | | |
309 | 310 | | |
| |||
312 | 313 | | |
313 | 314 | | |
314 | 315 | | |
| 316 | + | |
| 317 | + | |
| 318 | + | |
| 319 | + | |
| 320 | + | |
| 321 | + | |
| 322 | + | |
| 323 | + | |
| 324 | + | |
315 | 325 | | |
316 | 326 | | |
317 | 327 | | |
| |||
Lines changed: 48 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
18 | 18 | | |
19 | 19 | | |
20 | 20 | | |
| 21 | + | |
21 | 22 | | |
22 | 23 | | |
23 | 24 | | |
24 | 25 | | |
25 | 26 | | |
26 | | - | |
| 27 | + | |
| 28 | + | |
27 | 29 | | |
28 | 30 | | |
29 | 31 | | |
30 | 32 | | |
31 | 33 | | |
| 34 | + | |
32 | 35 | | |
33 | 36 | | |
34 | 37 | | |
| |||
269 | 272 | | |
270 | 273 | | |
271 | 274 | | |
| 275 | + | |
| 276 | + | |
| 277 | + | |
| 278 | + | |
| 279 | + | |
| 280 | + | |
| 281 | + | |
| 282 | + | |
| 283 | + | |
| 284 | + | |
| 285 | + | |
| 286 | + | |
| 287 | + | |
| 288 | + | |
| 289 | + | |
| 290 | + | |
| 291 | + | |
| 292 | + | |
| 293 | + | |
| 294 | + | |
| 295 | + | |
| 296 | + | |
| 297 | + | |
| 298 | + | |
| 299 | + | |
| 300 | + | |
| 301 | + | |
| 302 | + | |
| 303 | + | |
| 304 | + | |
| 305 | + | |
| 306 | + | |
| 307 | + | |
| 308 | + | |
| 309 | + | |
| 310 | + | |
| 311 | + | |
| 312 | + | |
| 313 | + | |
| 314 | + | |
| 315 | + | |
| 316 | + | |
| 317 | + | |
| 318 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
135 | 135 | | |
136 | 136 | | |
137 | 137 | | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
138 | 144 | | |
139 | 145 | | |
140 | 146 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
262 | 262 | | |
263 | 263 | | |
264 | 264 | | |
| 265 | + | |
| 266 | + | |
| 267 | + | |
| 268 | + | |
| 269 | + | |
| 270 | + | |
| 271 | + | |
| 272 | + | |
| 273 | + | |
265 | 274 | | |
266 | 275 | | |
267 | 276 | | |
| |||
0 commit comments