mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-12 21:41:12 +00:00
refactor+feat: allow subsystems to send only declared messages, generate graphviz (#5314)
Closes #3774 Closes #3826
This commit is contained in:
committed by
GitHub
parent
26340b9054
commit
511891dcce
@@ -131,11 +131,7 @@ where
|
||||
subsystem_sender: Sender,
|
||||
response_sender: oneshot::Sender<Result<ValidationResult, ValidationFailed>>,
|
||||
) where
|
||||
Sender: overseer::SubsystemSender<AllMessages>
|
||||
+ overseer::SubsystemSender<CandidateValidationMessage>
|
||||
+ Clone
|
||||
+ Send
|
||||
+ 'static,
|
||||
Sender: overseer::CandidateValidationSenderTrait + Clone + Send + 'static,
|
||||
{
|
||||
let _candidate_descriptor = candidate_descriptor.clone();
|
||||
let mut subsystem_sender = subsystem_sender.clone();
|
||||
@@ -200,11 +196,7 @@ fn create_validation_response(
|
||||
|
||||
impl<Sender, Spawner> MessageInterceptor<Sender> for ReplaceValidationResult<Spawner>
|
||||
where
|
||||
Sender: overseer::SubsystemSender<CandidateValidationMessage>
|
||||
+ overseer::SubsystemSender<AllMessages>
|
||||
+ Clone
|
||||
+ Send
|
||||
+ 'static,
|
||||
Sender: overseer::CandidateValidationSenderTrait + Clone + Send + 'static,
|
||||
Spawner: SpawnNamed + Clone + 'static,
|
||||
{
|
||||
type Message = CandidateValidationMessage;
|
||||
@@ -336,7 +328,10 @@ where
|
||||
}
|
||||
}
|
||||
|
||||
fn intercept_outgoing(&self, msg: AllMessages) -> Option<AllMessages> {
|
||||
fn intercept_outgoing(
|
||||
&self,
|
||||
msg: overseer::CandidateValidationOutgoingMessages,
|
||||
) -> Option<overseer::CandidateValidationOutgoingMessages> {
|
||||
Some(msg)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -71,11 +71,7 @@ struct NoteCandidate<Spawner> {
|
||||
|
||||
impl<Sender, Spawner> MessageInterceptor<Sender> for NoteCandidate<Spawner>
|
||||
where
|
||||
Sender: overseer::SubsystemSender<AllMessages>
|
||||
+ overseer::SubsystemSender<CandidateBackingMessage>
|
||||
+ Clone
|
||||
+ Send
|
||||
+ 'static,
|
||||
Sender: overseer::CandidateBackingSenderTrait + Clone + Send + 'static,
|
||||
Spawner: SpawnNamed + Clone + 'static,
|
||||
{
|
||||
type Message = CandidateBackingMessage;
|
||||
@@ -219,20 +215,21 @@ where
|
||||
}
|
||||
}
|
||||
|
||||
fn intercept_outgoing(&self, msg: AllMessages) -> Option<AllMessages> {
|
||||
fn intercept_outgoing(
|
||||
&self,
|
||||
msg: overseer::CandidateBackingOutgoingMessages,
|
||||
) -> Option<overseer::CandidateBackingOutgoingMessages> {
|
||||
let msg = match msg {
|
||||
AllMessages::CollatorProtocol(CollatorProtocolMessage::Seconded(
|
||||
relay_parent,
|
||||
statement,
|
||||
)) => {
|
||||
overseer::CandidateBackingOutgoingMessages::CollatorProtocolMessage(
|
||||
CollatorProtocolMessage::Seconded(relay_parent, statement),
|
||||
) => {
|
||||
// `parachain::collator-protocol: received an unexpected `CollationSeconded`: unknown statement statement=...`
|
||||
// TODO: Fix this error. We get this on colaltors because `malicious backing` creates a candidate that gets backed/included.
|
||||
// It is harmless for test parachain collators, but it will prevent cumulus based collators to make progress
|
||||
// as they wait for the relay chain to confirm the seconding of the collation.
|
||||
AllMessages::CollatorProtocol(CollatorProtocolMessage::Seconded(
|
||||
relay_parent,
|
||||
statement,
|
||||
))
|
||||
overseer::CandidateBackingOutgoingMessages::CollatorProtocolMessage(
|
||||
CollatorProtocolMessage::Seconded(relay_parent, statement),
|
||||
)
|
||||
},
|
||||
msg => msg,
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user