Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Clarification of the snapshots #348

Closed
wtdcode opened this issue Mar 23, 2024 · 6 comments
Closed

Clarification of the snapshots #348

wtdcode opened this issue Mar 23, 2024 · 6 comments

Comments

@wtdcode
Copy link

wtdcode commented Mar 23, 2024

I'm trying to understand what these snapshots contain. Although there are already many discussions on this, I don't see a clarification or comparison and thus I'm trying to do it. My understanding of geth is limited so please correct me if anything is wrong.

=========

Some definitions:

  • state: Contract state variables value
  • block: Bodies, contains the properties of a transaction like from, to...
  • receipts: Execution results and logs
  • header: Properties of blocks, like hash, number ...

=========

Full node snapshots of this repo (2.4T roughly):

From #340

  • state: Only recent 90k blocks
  • block: Full chain
  • receipts: Full chain
  • header: Full chain

Full node snapshots of 48Club (800G roughly):

  • state: Only recent 128 blocks. <---- Just confirmed with this. But with --tries-verify-mode=none, state beyond 128 blocks will return missing trie node.
  • block: Only recent 90k blocks
  • receipts: Only recent 90k blocks
  • header: Only recent 90k blocks

Fast node snapshots of 48Club (200G roughly):

  • state: Only recent 128 blocks. <----- I'm running a fast node indeed and find this. And most importantly, if the state is not available, RPC won't report an error and returns 0!
  • block: Only recent 90k blocks
  • receipts: Only recent 90k blocks
  • header: Only recent 90k blocks

Erigon Snapshots (~8T):

  • state: Full chain
  • block: Full chain
  • receipts: Full chain
  • header: Full chain

Please clarify if these understand is correct.

=======

cc

@du5
@zzzckck

@zzzckck
Copy link
Collaborator

zzzckck commented Mar 25, 2024

Basically, you are right, I can update these clarification into the FAQ.

@wtdcode
Copy link
Author

wtdcode commented Mar 25, 2024

Basically, you are right, I can update these clarification into the FAQ.

@zzzckck Which snapshot shall I use if I want to access more than 128 blocks live state? Or is that possible?

@zzzckck
Copy link
Collaborator

zzzckck commented Mar 25, 2024

Basically, you are right, I can update these clarification into the FAQ.

@zzzckck Which snapshot shall I use if I want to access more than 128 blocks live state? Or is that possible?

right now, I am afraid only Erigon archive node can support it, PBSS only keeps the most recent 128+1 state.

@zzzckck zzzckck mentioned this issue Mar 25, 2024
@zzzckck
Copy link
Collaborator

zzzckck commented Mar 25, 2024

Include this issue in FAQ as the 1st question.
#349
@wtdcode pls check, if it answers your question.

@wtdcode
Copy link
Author

wtdcode commented Mar 25, 2024

Cool, thanks for the explanation. Will the hash-based scheme be deprecated finally?

@zzzckck
Copy link
Collaborator

zzzckck commented Mar 27, 2024

Cool, thanks for the explanation. Will the hash-based scheme be deprecated finally?

It is not determined yet, currently we just make sure hash-based function will not be broken, but in long run, if it could be deprecated if it needs too much effort to maintain it.

@zzzckck zzzckck closed this as completed Apr 3, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants