You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
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
The text was updated successfully, but these errors were encountered:
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?
The text was updated successfully, but these errors were encountered: