3

I have a full node with the last checkpoint at block 1077249:

$ ./tezos-client rpc get /chains/main/checkpoint
{ "block":
    { "level": 1077249, "proto": 6,
      "predecessor": "BKo6N42jdPjfSVFg45K11X4uUQ4brs8jULqykcgCrerMntTGMFD",
      "timestamp": "2020-08-09T21:34:06Z", "validation_pass": 4,
      "operations_hash":
        "LLoZWi4QHrb8rqKELG1F48HfCiuKANZYcUW1WSYibo5uqMqDyNR7S",
      "fitness": [ "01", "0000000000067001" ],
      "context": "CoWRNfsAyGdMn5ShuQEhfp7PdACC6LWcXMLsP8GHu53fPRJ8aZPx",
      "protocol_data":
        "00016b9f3bc37f5c000000e37ce6f00eb61efb5047fdc3dc53d11dd42adbd8a6d4ebf1d3502803d82e1c14a98fba906c4ab948bc41eed159d8134bd56efd8a163b3162861687af2ac74232" },
  "save_point": 1077249, "caboose": 0, "history_mode": "archive" }

I'm trying to switch to archive mode such that, even if at one point a new snapshot is downloaded, I still have access to operations in all the blocks from block 1077249.

So I ran with the --reconstruct option and got:

Aug 25 09:00:50 - snapshot: Starting reconstruct from genesis
Aug 25 09:00:50 - snapshot: Starting reconstruct toward the predecessor of the current head (BLCHRNoWRJ9LyJRELiNgAEuutmArWFrBni9DJzv1bhtMJxD3fNm)
Aug 25 09:00:50 - snapshot: Enumerating all blocks to reconstruct
Aug 25 09:18:25 - snapshot: Setting history-mode to archive
[waited around 24h then stopped process as no new output]

Now I can run the node with --history-mode archive option, but I still can't access blocks before the checkpoint:

$ curl 127.0.0.1:8732/chains/main/blocks/1077248
$

Can I be sure that even if a new checkpoint is downloaded (unsure in which cases this could happen?), since now I'm in archive mode, I will always have access to blocks after 1077249?

  • just fyi, a reconstruct will take days to finish, Last I heard from sone who did it, it takes about 3-5 days. – Frank Aug 27 '20 at 3:21
1

You stopped the reconstruct before it was finished. Intel Core i7, 16GB RAM, 500GB SSD, took 4-5 days to complete.

Checkpoints are not "downloaded". They are made by your node, locally.

Once you complete the reconstruct, you will have access to EVERY block going back to block #1. Archive nodes will never garbage collect.

You should import a recent snapshot while doing the reconstruct, example:

./tezos-node snapshot import \
  --block=BLZ1YeTdFqCMm4f3djJpPYzNBzjgcDAeXFA4TAeX4QjXj3Tkg1B \
  BLZ1YeTdFqCMm4f3djJpPYzNBzjgcDAeXFA4TAeX4QjXj3Tkg1B.full --reconstruct

Grab a FULL snap from here: https://snapshots-tezos.giganode.io/

  • Ok thanks for the answer. Hence a follow up question: is there any way to instruct my node to not further construct any new checkpoint after block 1077249? Any way to control that? So I can have a full node and still have access to all blocks after 1077249? – coinwalletdev Aug 27 '20 at 5:00
  • No, there is no way to control how many snapshots your node keeps. It is based on the network constant of PRESERVED_CYCLES + 2. Please mark the answer accepted if it's good. – utdrmac Aug 27 '20 at 15:07
  • That's really unfortunate as it forces you to compute the whole history if you want to keep more than PRESERVED_CYCLES + 2 amount of data :/ – coinwalletdev Aug 28 '20 at 9:05
  • Agreed. You can open a feature request at gitlab.com/tezos/tezos – utdrmac Aug 28 '20 at 14:14

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.