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

Lower MaxTraceableBlocks for mainnet #3644

Open
roman-khimov opened this issue Dec 24, 2024 · 1 comment
Open

Lower MaxTraceableBlocks for mainnet #3644

roman-khimov opened this issue Dec 24, 2024 · 1 comment
Labels
Discussion Initial issue state - proposed but not yet accepted

Comments

@roman-khimov
Copy link
Contributor

Summary or problem description
It's been a while since #2026 (it was created even before we got MaxTraceableBlocks) and that issue is closed, so it's time for a little refresh.

The essence of the problem is the same, we can drop the data we no longer need, but the amount of this data is regulated by MaxTraceableBlocks, if blocks are reachable from contracts we can't remove them and unfortunately current mainnet settings of 2M blocks are very excessive.

The data in #2026 was based on Neo Legacy, but now with more than three years of N3 mainnet we have some statistics for it too. As @AnnaShaleva noted in #3612 (comment) real accesses to historic data are rare and currently mainnet can be processed with MTB as low as 16.

Keep in mind that 2M of headers require ~1.4 GB of storage (#3612 (comment)), transactions add even more to that.

Note also that NeoFS networks currently use MTB of 17280.

See https://neospcc.medium.com/cutting-blockchain-tail-with-neogo-5256a120f6bb as well for an example of node that can cut historic data and what are the results of this.

Do you have any solution you want to propose?
Drop mainnet MTB to 10-20K.

Caveat: it's a configuration file parameter, it can't be tied to any hardfork, so theoretically nodes should do this all at once. Practically they're likely to get out of sync, so this won't be easy. As a suggestion we can make it easier by putting this value into Policy contract.

Where in the software does this update applies to?

  • Ledger
@roman-khimov roman-khimov added the Discussion Initial issue state - proposed but not yet accepted label Dec 24, 2024
@shargon
Copy link
Member

shargon commented Dec 26, 2024

Maybe should be dependant of the time per block

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Discussion Initial issue state - proposed but not yet accepted
Projects
None yet
Development

No branches or pull requests

2 participants