Open yyforyongyu opened 3 weeks ago
[!IMPORTANT]
Review skipped
Auto reviews are limited to specific labels.
Labels to auto review (1)
* llm-reviewPlease check the settings in the CodeRabbit UI or the
.coderabbit.yaml
file in this repository. To trigger a single review, invoke the@coderabbitai review
command.You can disable this status message by setting the
reviews.review_status
tofalse
in the CodeRabbit configuration file.
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?
@yyforyongyu, remember to re-request review from reviewers when ready
Depends on #8893.
This PR introduces a minimal version of the new service
Blockbeat
as described in #7952, to handle block synchronization among different subsystems.During startup, blockbeat consumers are registered in the
BlockbeatDispatcher
, a subservice that's responsible for dispatching new blockbeats to its consumers and waiting for its consumers to finish processing the blocks. If any of the consumers fail to process the block under 30s, or encounter an error during block processing, the system will shut down as it's critical to handle blocks.This PR focuses on implementing blockbeat
Consumer
interface forChainArb
,UtxoSweeper
andTxPublisher
, the following PR focuses on finalizing blockbeat processing inChainArb
's subservices -ChannelArbitrator
,chainWatcher
, andContractResolver
.Overview
The flow of the blockbeat process is shown below, whenever a new block arrives, it goes through the waterfall like this,
blockbeat
, and sends it to its consumers sequentially.ChainArb
receives the blockbeat, processes it and signals back when done.UtxoSweeper
receives the blockbeat, processes it and signals back when done.TxPublisher
receives the blockbeat, processes it and signals back when done.NOTE: itests are failing in this PR and is fixed in the final PR.
TODO