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

Performance improvements #1294

Open
bvbfan opened this issue Apr 12, 2023 · 0 comments
Open

Performance improvements #1294

bvbfan opened this issue Apr 12, 2023 · 0 comments

Comments

@bvbfan
Copy link

bvbfan commented Apr 12, 2023

Currently Omni node uses strings to store records in databases, it uses twice more bytes compared to raw/binary data. The biggest problem is string parsing/splitting which result in slower performance.

Screenshot_20230412_192305

callgrind.out.txt

Records in db should be updated to use prefixes and serialized/binary data instead of strings. Currently Omni node stores records in Bitcoin internal dbs which should be moved to specific Omni dbs. It will helpful to #1293

dexX7 added a commit that referenced this issue Nov 10, 2023
Pull request description:

  * Switch Omni protocol validation to event driven using validation interface
  * Switch Omni specific data storage out of bitcoin core databases
  * Move global coins cache to local one
  * Simple and efficient mempool and transaction storage
  * Remove txindex hard requirements
  * Rework all database records to use binary prefix instead of string data
  * Remove usage of core mutexes to allow validation to work in its own thread
  * Omnicore could be started as prune node, a lightweight client

  Todo's:
  * Remove Omni specific coin selection from Bitcoin core
  * Remove Omni specific functions from Bitcoin wallet interface

  Pending:
  * Full resync to measure time and storage

  Fixes: #1293 #1294
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

3 participants
@bvbfan and others