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
BACKPORT NOTES:
- UpdateUncommittedBlockStructures is segwit related; omitted from bitcoin-chainstate.cpp
- call chainman.UnloadBlockIndex is removed by bitcoin#22564
- binary name is renamed from bitcoin-chainstate to dash-chainstate. Names of source files and some variables are untouched
- added LIBDASHBLS to list of libraries to link
- couple functions are reimplemented to avoid balooning dash-chainstate by including extra heavy depenencies
- ValueFromAmount (reimplemented, core_write.cpp)
- GetPrettyExceptionStr (reimplemented, stacktrackes.cpp)
- g_stats_client (redefined)
There are several modules that should be removed in the near future from dash-chainstate binary
- protocol.cpp move NetMsgType inline helpers out of
chainlock/clsig.h, governance/object.h,
evo/simplifiedmns.h into their .cpp files
- llmq/dkgsession.cpp,
llmq/dkgsessionhandler.cpp,
llmq/dkgsessionmgr.cpp,
llmq/debug.cpp,
batchedlogger.cpp CQuorumManager already null-guards m_qdkgsman; drop once ConnectManagers() is
never called on the kernel side
- llmq/signing.cpp split CSigningManager out of LLMQContext into a post-construction Connect() so the
context becomes quorum-only
- governance/*.cpp promote the 4 methods used by CMNPaymentsProcessor (IsValid, IsSuperblockTriggered,
IsValidSuperblock, GetSuperblockPayments) to a base interface;
instantiate a NullGovernanceManager in bitcoin-chainstate.cpp
ORIGINAL PR Description:
2c03cec ci: Build bitcoin-chainstate (Carl Dong)
095aa6c build: Add example bitcoin-chainstate executable (Carl Dong)
Pull request description:
Part of: bitcoin#24303
This PR introduces an example/demo `bitcoin-chainstate` executable using said library which can print out information about a datadir and take in new blocks on stdin.
Please read the commit messages for more details.
-----
#### You may ask: WTF?! Why is `index/*.cpp`, etc. being linked in?
This PR is meant only to capture the state of dependencies in our consensus engine as of right now. There are many things to decouple from consensus, which will be done in subsequent PRs. Listing the files out right now in `bitcoin_chainstate_SOURCES` is purely to give us a clear picture of the task at hand, it is **not** to say that these dependencies _belongs_ there in any way.
### TODO
1. Clean up `bitcoin-chainstate.cpp`
It is quite ugly, with a lot of comments I've left for myself, I should clean it up to the best of my abilities (the ugliness of our init/shutdown might be the upper bound on cleanliness here...)
ACKs for top commit:
ajtowns:
ACK 2c03cec
ryanofsky:
Code review ACK 2c03cec. Just rebase, comments, formatting change since last review
MarcoFalke:
re-ACK 2c03cec 🏔
Tree-SHA512: 86e7fb5718caa577df8abc8288c754f4a590650d974df9d2f6476c87ed25c70f923c4db651c6963f33498fc7a3a31f6692b9a75cbc996bf4888c5dac2f34a13b
0 commit comments