mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-04-27 08:07:58 +00:00
Split NetworkBridge and break cycles with Unbounded (#2736)
* overseer: pass messages directly between subsystems * test that message is held on to * Update node/overseer/src/lib.rs Co-authored-by: Peter Goodspeed-Niklaus <coriolinus@users.noreply.github.com> * give every subsystem an unbounded sender too * remove metered_channel::name 1. we don't provide good names 2. these names are never used anywhere * unused mut * remove unnecessary &mut * subsystem unbounded_send * remove unused MaybeTimer We have channel size metrics that serve the same purpose better now and the implementation of message timing was pretty ugly. * remove comment * split up senders and receivers * update metrics * fix tests * fix test subsystem context * use SubsystemSender in jobs system now * refactor of awful jobs code * expose public `run` on JobSubsystem * update candidate backing to new jobs & use unbounded * bitfield signing * candidate-selection * provisioner * approval voting: send unbounded for assignment/approvals * async not needed * begin bridge split * split up network tasks into background worker * port over network bridge * Update node/network/bridge/src/lib.rs Co-authored-by: Andronik Ordian <write@reusable.software> * rename ValidationWorkerNotifications Co-authored-by: Peter Goodspeed-Niklaus <coriolinus@users.noreply.github.com> Co-authored-by: Andronik Ordian <write@reusable.software>
This commit is contained in:
committed by
GitHub
parent
6f464a360f
commit
8ebbe19d10
@@ -564,10 +564,10 @@ async fn handle_actions(
|
||||
let block_hash = indirect_cert.block_hash;
|
||||
let validator_index = indirect_cert.validator;
|
||||
|
||||
ctx.send_message(ApprovalDistributionMessage::DistributeAssignment(
|
||||
ctx.send_unbounded_message(ApprovalDistributionMessage::DistributeAssignment(
|
||||
indirect_cert,
|
||||
candidate_index,
|
||||
).into()).await;
|
||||
).into());
|
||||
|
||||
launch_approval(
|
||||
ctx,
|
||||
@@ -712,7 +712,7 @@ async fn handle_background_request(
|
||||
) -> SubsystemResult<Vec<Action>> {
|
||||
match request {
|
||||
BackgroundRequest::ApprovalVote(vote_request) => {
|
||||
issue_approval(ctx, state, metrics, vote_request).await
|
||||
issue_approval(ctx, state, metrics, vote_request)
|
||||
}
|
||||
BackgroundRequest::CandidateValidation(
|
||||
validation_data,
|
||||
@@ -1724,7 +1724,7 @@ async fn launch_approval(
|
||||
|
||||
// Issue and import a local approval vote. Should only be invoked after approval checks
|
||||
// have been done.
|
||||
async fn issue_approval(
|
||||
fn issue_approval(
|
||||
ctx: &mut impl SubsystemContext,
|
||||
state: &State<impl DBReader>,
|
||||
metrics: &Metrics,
|
||||
@@ -1830,12 +1830,14 @@ async fn issue_approval(
|
||||
metrics.on_approval_produced();
|
||||
|
||||
// dispatch to approval distribution.
|
||||
ctx.send_message(ApprovalDistributionMessage::DistributeApproval(IndirectSignedApprovalVote {
|
||||
block_hash,
|
||||
candidate_index: candidate_index as _,
|
||||
validator: validator_index,
|
||||
signature: sig,
|
||||
}).into()).await;
|
||||
ctx.send_unbounded_message(
|
||||
ApprovalDistributionMessage::DistributeApproval(IndirectSignedApprovalVote {
|
||||
block_hash,
|
||||
candidate_index: candidate_index as _,
|
||||
validator: validator_index,
|
||||
signature: sig,
|
||||
}
|
||||
).into());
|
||||
|
||||
Ok(actions)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user