mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-04-26 20:27:58 +00:00
Add new Runtime API messages and make runtime API request fallible (#1485)
* polkadot-subsystem: update runtime API message types * update all networking subsystems to use fallible runtime APIs * fix bitfield-signing and make it use new runtime APIs * port candidate-backing to handle runtime API errors and new types * remove old runtime API messages * remove unused imports * fix grumbles * fix backing tests
This commit is contained in:
committed by
GitHub
parent
d234ba38bb
commit
c8cdfbfd17
@@ -847,17 +847,37 @@ async fn run(
|
||||
let (session_tx, session_rx) = oneshot::channel();
|
||||
|
||||
let val_message = AllMessages::RuntimeApi(
|
||||
RuntimeApiMessage::Request(relay_parent, RuntimeApiRequest::Validators(val_tx)),
|
||||
RuntimeApiMessage::Request(
|
||||
relay_parent,
|
||||
RuntimeApiRequest::Validators(val_tx),
|
||||
),
|
||||
);
|
||||
let session_message = AllMessages::RuntimeApi(
|
||||
RuntimeApiMessage::Request(relay_parent, RuntimeApiRequest::SigningContext(session_tx)),
|
||||
RuntimeApiMessage::Request(
|
||||
relay_parent,
|
||||
RuntimeApiRequest::SessionIndexForChild(session_tx),
|
||||
),
|
||||
);
|
||||
|
||||
ctx.send_messages(
|
||||
std::iter::once(val_message).chain(std::iter::once(session_message))
|
||||
).await?;
|
||||
|
||||
(val_rx.await?, session_rx.await?.session_index)
|
||||
match (val_rx.await?, session_rx.await?) {
|
||||
(Ok(v), Ok(s)) => (v, s),
|
||||
(Err(e), _) | (_, Err(e)) => {
|
||||
log::warn!(
|
||||
target: "statement_distribution",
|
||||
"Failed to fetch runtime API data for active leaf: {:?}",
|
||||
e,
|
||||
);
|
||||
|
||||
// Lacking this bookkeeping might make us behave funny, although
|
||||
// not in any slashable way. But we shouldn't take down the node
|
||||
// on what are likely spurious runtime API errors.
|
||||
continue;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
active_heads.entry(relay_parent)
|
||||
|
||||
Reference in New Issue
Block a user