BSC will gradually switch to PBSS + PebbleDB as the default and main support mode, which are big changes and would bring many benefits to BSC. They are still at experimental stage and could have some impacts to node operator once enabled. This post tries to give brief introduction and answer some common questions.
PBSS stands for Path-Based-Storage-Scheme, which was already enabled since BSC v1.3.1-beta. It is used to optimize the MPT trie tree access, to improve its efficiency and also brings the inline state prune. There is a brief introduction on v1.3.1-beta release page
Currently, BSC uses LevelDB as its default underlying database, but the project is no longer maintained, there are many opens issues and the latest commit is more than 1 years ago. So BSC would switch to PebbleDB in long term, same as what Go-Ethereum has done.
PBSS & PebbleDB have already been supported on BSC mainnet since v1.3.1-beta, but we officially start to promote it since v1.3.5.
It is still at experimental stage, we encourage BSC community users give it a try and give us more feedbacks.
It is not determined yet, but likely PBSS + PebbleDB will be the suggested running mode. And we hope most of the nodes can switch to PBSS & PebbleDB before end of Feb 2024.
The HashBased snapshot will no longer be maintained by end of Mar 2024.
We are generating the PBSS&PebbleDB snapshot, will upload to bsc-snpshots once ready.
Currently, the 2 features are still disabled by default, to use PBSS&Pebble:
1.update the config.toml:
StateScheme = "path"
2.add these 2 node start up flags:
// to enable PBSS
// to enable PebbleDB
For Archive node, you may need to run BSC-Erigon.
You can still run with hash based node, but it is not recommended and the support would be limited.