-
Notifications
You must be signed in to change notification settings - Fork 698
refactor: BitcoinCoreController
rcp rollout + housekeeping
#6385
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
refactor: BitcoinCoreController
rcp rollout + housekeeping
#6385
Conversation
|
Good to know, thanks! I had also noticed some If it’s confirmed that
|
For the record: @obycode confirmed that Hiro is still using helium for some API integration testing. However, those tests depend on an outdated Stacks image, so Hiro will need to rewrite them regardless. With that in mind, we can safely proceed with removing helium from the codebase. I’ve opened a dedicated issue (#6408) to track this work. |
ecd10af
to
4a9dfd9
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks great!
This was so easy to follow. Looks great. :) |
e63ecca
Codecov Report❌ Patch coverage is ❌ Your project status has failed because the head coverage (75.17%) is below the target coverage (80.00%). You can increase the head coverage or adjust the target coverage. Additional details and impacted files@@ Coverage Diff @@
## develop #6385 +/- ##
===========================================
- Coverage 75.62% 75.17% -0.45%
===========================================
Files 555 556 +1
Lines 350915 350622 -293
===========================================
- Hits 265365 263588 -1777
- Misses 85550 87034 +1484
... and 304 files with indirect coverage changes Continue to review full report in Codecov by Sentry.
🚀 New features to boost your workflow:
|
Description
This patch is a follow-up to #6329 and introduces the following changes :
BitcoinCoreController
methods introduced in refactor: bitcoin rpc porting #6329.BitcoinRPCRequest
toBitcoinRpcClient
, replacingstop
api.helium
now definitively deprecated, its misplaced tests nearBitcoinCoreController
have been removed, andBitcoinCoreController
module reorganized.Here a commit breakdown for easier review:
Commit 1-7
(up to 4f2e749): are about: New method roll-out, RPC Migration and HousekeepingCommit 8
(da1bf1d): removes deprecatedhelium
testsCommit 9
(3429977): move aBitcoinCoreController
related test fromneon_integration.rs
Commit 10
(4a9dfd9): introduces a dedicatedbitcoin
module structure, movingBitcoinCoreController
related code insrc/burnchain/bitcoin/core_controller.rs
(for logic) andsrc/tests/bitcoin/core_controller_integrations.rs
(for integration tests)Basically up-to
Commit 9
, the changes are related to the existingsrc/tests/bitcoin_regtest.rs
module, while inCommit 10
the modulebitcoin_regtest.rs
is split intosrc/burnchain/bitcoin/core_controller.rs
andsrc/tests/bitcoin/core_controller_integrations.rs
.The new structure should make it easier to locate and maintain Bitcoin-related code and tests. Once the
BitcoinRegtestsController
refactor is complete, we can fully consolidate the structure (tracked in #6251).If
Commit 10
feels too large for this PR, I can move it into a follow-up PR.Applicable issues
Additional info (benefits, drawbacks, caveats)
A couple of additional refactoring opportunities:
stacks-node/src/tests/bitcoin_regtest.rs
(bitcoind_integration_test
andbitcoind_integration_test_segwit
) appear more closely related toRunLoop
instacks-node/src/run_loop/helium.rs
. Even though they exerciseBitcoinCoreController
behavior as a side effect (as most integration tests do), it may be more consistent to move them intostacks-node/src/tests/integrations.rs
, alongside other similar integration tests.stacks-core/stacks-node/src/tests/bitcoin_regtest.rs
Lines 152 to 168 in aaed1cc
BitcoinCoreController
alongsideBitcoinRegtestController
understacks-node/src/burnchains
. This could help to consolidate Bitcoin-related code in one place.Checklist
docs/rpc/openapi.yaml
andrpc-endpoints.md
for v2 endpoints,event-dispatcher.md
for new events)clarity-benchmarking
repobitcoin-tests.yml