7

I've run my own instance of Tezos node and it seems that the node doesn't respond with blocks below the current checkpoint.

GET /chains/main/checkpoint response:

{
  "block": {
    "level": 212993,
    "proto": 3,
    "predecessor": "BLMXXvPj4rfPinsTcwgQkws5iqcqZKLnxCrSHXYErRk8Yt8s4ui",
    "timestamp": "2018-12-04T01:25:03Z",
    "validation_pass": 4,
    "operations_hash": "LLob1oFfM5pLnSH8vi9kM57JH9toqS9jR6XGkZt9gHeqzKiusBpge",
    "fitness": [
      "00",
      "000000000061a690"
    ],
    "context": "CoUu7Z1PCS3FoQqN96UAczb25S9c5HCtPsNbuQXdeT2CNqsssbaG",
    "protocol_data": "000100000003ddfe5afc00ed6f3c49c78ed62ff003b09b5af7db2b0479b79367cb60c2a1a85caeae20fca4da576f19ce9116a2cd6eafc1d737d032aa9ed1e3b292b57d378bd0ff90acf505"
  },
  "save_point": 212993,
  "caboose": 0,
  "history_mode": "full"
}

So, as we can see history_mode is "full". According to this article https://blog.nomadic-labs.com/introducing-snapshots-and-history-modes-for-the-tezos-node.html node with this mode stores all blocks.

But, GET /chains/main/blocks/212992 response is 404 Not Found, however,

GET /chains/main/blocks/212992/header response is a block header.

GET /chains/main/blocks/212993 works properly and responses a block as it expected.

I used docker image to deploy the node.

UPD: GET /chains/main/blocks/212992/operations also doesn't work

3 Answers 3

4

The blog post you referenced says that:

A node running in full-mode stores the full chain data for all blocks, even the ones older than the current checkpoint. More precisely, it keeps the headers and the operations for these blocks. However, it discards the archived context and the operation and block receipts. We say that such a block information is “pruned”: we keep only the necessary bits that we got from the network, and drop everything that can be reconstructed from them.

So this explains why the ../<block_id>/header endpoint works for you, while the “full information” endpoint probably requires some information that is pruned. However, this quote from the blog post implies that the ../<block_id>/operations endpoint should work as well, and you should be able to reconstruct all the information you need from these two pieces of data (header and operations).

2
  • 1
    Unfortunately, GET /chains/main/blocks/212993/operations works as expected but GET /chains/main/blocks/212992/operations doesn't Jul 9, 2019 at 13:25
  • 1
    The /operations RPC needs pruned info. A new RPC should be added for getting the raw operations data, without the receipts.
    – Tom
    Jul 10, 2019 at 7:31
1

This is a known issue with full-mode - please see Full node unable to query operation data from blocks prior to most recent checkpoint for more info.

0

the issue has now been fixed in https://gitlab.com/tezos/tezos/-/merge_requests/1936.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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