Commit 7a549c4
committed
Merge #6742: refactor: move InstantSend impl. to
6360725 chore: resolve incomplete/missing copyright headers in unit tests (Kittywhiskers Van Gogh)
d1de786 chore: cleanup unused headers from instantsend (dependent) sources (Kittywhiskers Van Gogh)
b4d1bd2 refactor: `llmq::CInstantSendLock{,Ptr}` > `instantsend::InstantSendLock{,Ptr}` (Kittywhiskers Van Gogh)
8d78e7d refactor: remove need for mutual access to private members (Kittywhiskers Van Gogh)
f22fb22 refactor: separate masternode mode logic into dedicated manager class (Kittywhiskers Van Gogh)
544791d refactor: move masternode mode logic to `instantsend/signer.{cpp,h}` (Kittywhiskers Van Gogh)
82dded4 refactor: move `CInstantSendDb` definition to `instantsend/db.{cpp,h}` (Kittywhiskers Van Gogh)
5e70456 refactor: move `CInstantSendLock` definition to `instantsend/lock.{cpp,h}` (Kittywhiskers Van Gogh)
ac8dcdd refactor: move `CInstantSendManager` constructor to source file (Kittywhiskers Van Gogh)
9edd27b refactor: `llmq/instantsend.{cpp,h}` > `instantsend/instantsend.{cpp,h}` (Kittywhiskers Van Gogh)
Pull request description:
## Motivation
Currently, the `llmq` namespace includes the LLMQ subsystem itself and capabilities built on them, primarily InstantSend and ChainLocks. Both capabilities play a key part in block and validation logic (see `CChainHelper` passthrough functions, [source](https://github.com/dashpay/dash/blob/9310ebc43cdc4ccde7b3033f4d18139258d7c7ad/src/evo/chainhelper.cpp#L28-L60)). Currently, we have to setup all LLMQ infrastructure (i.e. `LLMQContext`) in order to validate on-disk information.
This ceases to be feasible when extracting validation code that interacts with on-disk state into `libbitcoinkernel` through `bitcoin-chainstate` (see [bitcoin#24304](bitcoin#24304)) as this thinned down library is devoid of networking capabilities.
As LLMQ is inherently an interactive system that is tied to networking capabilities, to extract on-disk state validation logic, we need to separate out networking from non-networking concerns. This pull request is the first step in extracting networking logic by first splitting out the monolithic InstantSend implementation into smaller concerns and then spinning off masternode-mode logic into a dedicated manager.
Future work should aim to spit out non-masternode networking code into a separate concern and eventually thin down `llmq::CInstantSendManager` to be capable of running with a networking-disabled mode, which would be adequate for `libbitcoinkernel`.
## Breaking Changes
None expected.
## Checklist
- [x] I have performed a self-review of my own code
- [x] I have commented my code, particularly in hard-to-understand areas **(note: N/A)**
- [x] I have added or updated relevant unit/integration/functional/e2e tests
- [x] I have made corresponding changes to the documentation **(note: N/A)**
- [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_
ACKs for top commit:
UdjinM6:
utACK 6360725
Tree-SHA512: 174532789cc390d0c027016a5f72b4fe1979ac10597d8bfc50e2f8edb739cc26c1fd298f2ecc82b048026c8b8e560083dbae41105e8dcde57bb8d92df0621ca1src/instantsend/ and split sources for islock, database and masternode logic out of manager sourceFile tree
48 files changed
+1524
-1262
lines changed- src
- bench
- coinjoin
- evo
- instantsend
- interfaces
- llmq
- node
- rpc
- test
- fuzz
- wallet
- zmq
- test
- lint
- util/data
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
48 files changed
+1524
-1262
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
230 | 230 | | |
231 | 231 | | |
232 | 232 | | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
233 | 237 | | |
234 | 238 | | |
235 | 239 | | |
| |||
243 | 247 | | |
244 | 248 | | |
245 | 249 | | |
246 | | - | |
247 | 250 | | |
248 | 251 | | |
249 | 252 | | |
| |||
488 | 491 | | |
489 | 492 | | |
490 | 493 | | |
| 494 | + | |
| 495 | + | |
| 496 | + | |
| 497 | + | |
491 | 498 | | |
492 | 499 | | |
493 | 500 | | |
| |||
498 | 505 | | |
499 | 506 | | |
500 | 507 | | |
501 | | - | |
502 | 508 | | |
503 | 509 | | |
504 | 510 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
| 9 | + | |
9 | 10 | | |
10 | 11 | | |
11 | | - | |
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
| 12 | + | |
12 | 13 | | |
13 | | - | |
14 | 14 | | |
15 | 15 | | |
16 | 16 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
19 | | - | |
| 19 | + | |
20 | 20 | | |
21 | 21 | | |
22 | 22 | | |
23 | 23 | | |
24 | | - | |
25 | 24 | | |
26 | 25 | | |
27 | 26 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
| 9 | + | |
| 10 | + | |
9 | 11 | | |
10 | | - | |
11 | 12 | | |
12 | 13 | | |
13 | 14 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
87 | 87 | | |
88 | 88 | | |
89 | 89 | | |
| 90 | + | |
90 | 91 | | |
91 | 92 | | |
92 | 93 | | |
93 | 94 | | |
94 | | - | |
95 | 95 | | |
96 | 96 | | |
97 | 97 | | |
| |||
0 commit comments