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

New storage backend and more... #322

wants to merge 50 commits into
base: master

New storage backend and more... #322

wants to merge 50 commits into from


Copy link

qianbin commented Jan 13, 2020

Improvements include but not limited to:

  • Deeply optimized state trie storage and cache, brings

    • grouped and ordered trie nodes store results in faster state trie access, at least 2X for OP_SLOAD;
    • dynamic state trie pruner saving 80% disk space occupation;
    • multi-level caches reduce 50% RAM usage under default setting, without impacting performance;
    • and much lower disk IO.
  • Log db upgrade

    • newly designed table schemas compact db size to about 40% of previous.
    • optimized indexes cover most common cases to extremely speed up queries.
  • Simplify block-chain store, by introducing the concept Repository, which is the container of chains.

  • Improve state error handling, by explicitly returning errors on state access. Which makes the node more robust.

api/blocks/blocks.go Outdated Show resolved Hide resolved
qianbin added 27 commits Dec 6, 2019
to allow advanced external caching
- introduce Repository to replace original Chain
- change Chain's definition, now Chain is more like a branch
- introduce index trie to replace ancestor trie
- remove Seeker and Fork components
- optmized data persistence
- expose state error in bultin contracts
- for native binding, panic on state error
- add ref table to map id <-> data which significantly reduces disk space useage
- optmize indexes to cover most cases
- remove time range query options
- add log Writer
@qianbin qianbin force-pushed the code-is-entropy branch from 865620f to 94011c8 Jan 20, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
None yet
3 participants
You can’t perform that action at this time.