mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-07-19 01:45:41 +00:00
Update to latest Substrate master. (#353)
* Integrate srml/im-online * Fix all build errors with old aura. * Fix most of the build errors. * Builds and tests seem to pass (I will not trust this commit yet) * Apply suggestions from code review Co-Authored-By: Robert Habermeier <rphmeier@gmail.com> * Kill some warnings. * fix panics on 0 validators * Fix dev chain. * Fix author stuff * fix im online integration. * Some tweaks * Introduce app-crypto * Initial build work * codec update / tweaks * patch polkadot-erasure-coding input * More fixes for new crypto * More fixes * Update parachains module * evamp parachain crypto * More crypto work. * Chain spec and service. * ChainSpec stuff * Last bits for a clean build * Tweak coment * adapt polkadot-validation to the new keystore * polkadot-network compiles, but tests don't * Integrate the new parachain validation stuff * delete message_routing file * make polkadot-network tests compile and pass * runtime tests compile and pass * update substrate ref * service compiles * all tests pass * Add TODO, change branch back to polkadot-master * Lock file * TODOs done * Issue number * Remove old tODO * Remove commented code
This commit is contained in:
@@ -21,13 +21,13 @@ use super::{PolkadotProtocol, Status, Message, FullStatus};
|
||||
use crate::validation::SessionParams;
|
||||
|
||||
use polkadot_validation::GenericStatement;
|
||||
use polkadot_primitives::{Block, Hash, SessionKey};
|
||||
use polkadot_primitives::{Block, Hash};
|
||||
use polkadot_primitives::parachain::{
|
||||
CandidateReceipt, HeadData, PoVBlock, BlockData, CollatorId, ValidatorId,
|
||||
StructuredUnroutedIngress,
|
||||
StructuredUnroutedIngress
|
||||
};
|
||||
use substrate_primitives::crypto::UncheckedInto;
|
||||
use parity_codec::Encode;
|
||||
use codec::Encode;
|
||||
use substrate_network::{
|
||||
PeerId, Context, config::Roles, message::generic::ConsensusMessage,
|
||||
specialization::NetworkSpecialization,
|
||||
@@ -96,7 +96,7 @@ fn make_status(status: &Status, roles: Roles) -> FullStatus {
|
||||
}
|
||||
}
|
||||
|
||||
fn make_validation_session(parent_hash: Hash, local_key: SessionKey) -> SessionParams {
|
||||
fn make_validation_session(parent_hash: Hash, local_key: ValidatorId) -> SessionParams {
|
||||
SessionParams {
|
||||
local_session_key: Some(local_key),
|
||||
parent_hash,
|
||||
@@ -131,13 +131,13 @@ fn sends_session_key() {
|
||||
let mut ctx = TestContext::default();
|
||||
let params = make_validation_session(parent_hash, local_key.clone());
|
||||
protocol.new_validation_session(&mut ctx, params);
|
||||
assert!(ctx.has_message(peer_a, Message::SessionKey(local_key.clone())));
|
||||
assert!(ctx.has_message(peer_a, Message::ValidatorId(local_key.clone())));
|
||||
}
|
||||
|
||||
{
|
||||
let mut ctx = TestContext::default();
|
||||
protocol.on_connect(&mut ctx, peer_b.clone(), make_status(&collator_status, Roles::NONE));
|
||||
assert!(ctx.has_message(peer_b.clone(), Message::SessionKey(local_key)));
|
||||
assert!(ctx.has_message(peer_b.clone(), Message::ValidatorId(local_key)));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -186,13 +186,13 @@ fn fetches_from_those_with_knowledge() {
|
||||
{
|
||||
let mut ctx = TestContext::default();
|
||||
protocol.on_connect(&mut ctx, peer_a.clone(), make_status(&status, Roles::AUTHORITY));
|
||||
assert!(ctx.has_message(peer_a.clone(), Message::SessionKey(local_key)));
|
||||
assert!(ctx.has_message(peer_a.clone(), Message::ValidatorId(local_key)));
|
||||
}
|
||||
|
||||
// peer A gives session key and gets asked for data.
|
||||
{
|
||||
let mut ctx = TestContext::default();
|
||||
on_message(&mut protocol, &mut ctx, peer_a.clone(), Message::SessionKey(a_key.clone()));
|
||||
on_message(&mut protocol, &mut ctx, peer_a.clone(), Message::ValidatorId(a_key.clone()));
|
||||
assert!(protocol.validators.contains_key(&a_key));
|
||||
assert!(ctx.has_message(peer_a.clone(), Message::RequestPovBlock(1, parent_hash, candidate_hash)));
|
||||
}
|
||||
@@ -203,7 +203,7 @@ fn fetches_from_those_with_knowledge() {
|
||||
{
|
||||
let mut ctx = TestContext::default();
|
||||
protocol.on_connect(&mut ctx, peer_b.clone(), make_status(&status, Roles::AUTHORITY));
|
||||
on_message(&mut protocol, &mut ctx, peer_b.clone(), Message::SessionKey(b_key.clone()));
|
||||
on_message(&mut protocol, &mut ctx, peer_b.clone(), Message::ValidatorId(b_key.clone()));
|
||||
assert!(!ctx.has_message(peer_b.clone(), Message::RequestPovBlock(2, parent_hash, candidate_hash)));
|
||||
|
||||
}
|
||||
@@ -340,8 +340,8 @@ fn many_session_keys() {
|
||||
let status = Status { collating_for: None };
|
||||
protocol.on_connect(&mut ctx, peer_a.clone(), make_status(&status, Roles::AUTHORITY));
|
||||
|
||||
assert!(ctx.has_message(peer_a.clone(), Message::SessionKey(local_key_a.clone())));
|
||||
assert!(ctx.has_message(peer_a, Message::SessionKey(local_key_b.clone())));
|
||||
assert!(ctx.has_message(peer_a.clone(), Message::ValidatorId(local_key_a.clone())));
|
||||
assert!(ctx.has_message(peer_a, Message::ValidatorId(local_key_b.clone())));
|
||||
}
|
||||
|
||||
let peer_b = PeerId::random();
|
||||
@@ -354,7 +354,7 @@ fn many_session_keys() {
|
||||
let status = Status { collating_for: None };
|
||||
protocol.on_connect(&mut ctx, peer_b.clone(), make_status(&status, Roles::AUTHORITY));
|
||||
|
||||
assert!(!ctx.has_message(peer_b.clone(), Message::SessionKey(local_key_a.clone())));
|
||||
assert!(ctx.has_message(peer_b, Message::SessionKey(local_key_b.clone())));
|
||||
assert!(!ctx.has_message(peer_b.clone(), Message::ValidatorId(local_key_a.clone())));
|
||||
assert!(ctx.has_message(peer_b, Message::ValidatorId(local_key_b.clone())));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,11 +23,11 @@ use crate::gossip::GossipMessage;
|
||||
use substrate_network::Context as NetContext;
|
||||
use substrate_network::consensus_gossip::TopicNotification;
|
||||
use substrate_primitives::{NativeOrEncoded, ExecutionContext};
|
||||
use substrate_keyring::Ed25519Keyring;
|
||||
use substrate_keyring::Sr25519Keyring;
|
||||
use crate::PolkadotProtocol;
|
||||
|
||||
use polkadot_validation::{SharedTable, MessagesFrom, Network};
|
||||
use polkadot_primitives::{SessionKey, Block, Hash, Header, BlockId};
|
||||
use polkadot_primitives::{Block, Hash, Header, BlockId};
|
||||
use polkadot_primitives::parachain::{
|
||||
Id as ParaId, Chain, DutyRoster, ParachainHost, OutgoingMessage,
|
||||
ValidatorId, StructuredUnroutedIngress, BlockIngressRoots, Status,
|
||||
@@ -41,7 +41,7 @@ use sr_primitives::traits::{ApiRef, ProvideRuntimeApi};
|
||||
use std::collections::HashMap;
|
||||
use std::sync::Arc;
|
||||
use futures::{prelude::*, sync::mpsc};
|
||||
use parity_codec::Encode;
|
||||
use codec::Encode;
|
||||
|
||||
use super::TestContext;
|
||||
|
||||
@@ -398,20 +398,23 @@ impl IngressBuilder {
|
||||
}
|
||||
}
|
||||
|
||||
fn make_table(data: &ApiData, local_key: &Ed25519Keyring, parent_hash: Hash) -> Arc<SharedTable> {
|
||||
fn make_table(data: &ApiData, local_key: &Sr25519Keyring, parent_hash: Hash) -> Arc<SharedTable> {
|
||||
use av_store::Store;
|
||||
use substrate_primitives::crypto::Pair;
|
||||
|
||||
let sr_pair = local_key.pair();
|
||||
let local_key = polkadot_primitives::parachain::ValidatorPair::from(local_key.pair());
|
||||
let store = Store::new_in_memory();
|
||||
let (group_info, _) = ::polkadot_validation::make_group_info(
|
||||
DutyRoster { validator_duty: data.duties.clone() },
|
||||
&data.validators, // only possible as long as parachain crypto === aura crypto
|
||||
SessionKey::from(*local_key)
|
||||
Some(sr_pair.public().into()),
|
||||
).unwrap();
|
||||
|
||||
Arc::new(SharedTable::new(
|
||||
data.validators.as_slice(),
|
||||
data.validators.clone(),
|
||||
group_info,
|
||||
Arc::new(local_key.pair()),
|
||||
Some(Arc::new(local_key)),
|
||||
parent_hash,
|
||||
store,
|
||||
None,
|
||||
|
||||
Reference in New Issue
Block a user