collator-protocol: add message authentication (#2635)

* collator: authenticate collator protocol messages

* fix tests compilation

* node: verify collator protocol signatures in tests

* collator: fix tests

* implementers-guide: update CollatorProtocol messages

* collator: add test for verification of collator protocol signatures

* node: remove fixmes

* node: remove signature from advertisecollation message

* node: add magic constant to Declare message signature payload
This commit is contained in:
André Silva
2021-03-24 21:13:32 +00:00
committed by GitHub
parent 358fa9f22a
commit bfbb078525
12 changed files with 255 additions and 109 deletions
+11 -4
View File
@@ -24,7 +24,7 @@ pub use chain_spec::*;
use futures::future::Future;
use polkadot_overseer::OverseerHandler;
use polkadot_primitives::v1::{
Id as ParaId, HeadData, ValidationCode, Balance, CollatorPair, CollatorId,
Id as ParaId, HeadData, ValidationCode, Balance, CollatorPair,
};
use polkadot_runtime_common::BlockHashCount;
use polkadot_service::{
@@ -250,12 +250,19 @@ pub fn run_collator_node(
key: Sr25519Keyring,
storage_update_func: impl Fn(),
boot_nodes: Vec<MultiaddrWithPeerId>,
collator_id: CollatorId,
collator_pair: CollatorPair,
) -> PolkadotTestNode {
let config = node_config(storage_update_func, task_executor, key, boot_nodes, false);
let multiaddr = config.network.listen_addresses[0].clone();
let NewFull { task_manager, client, network, rpc_handlers, overseer_handler, .. } =
new_full(config, IsCollator::Yes(collator_id)).expect("could not create Polkadot test service");
let NewFull {
task_manager,
client,
network,
rpc_handlers,
overseer_handler,
..
} = new_full(config, IsCollator::Yes(collator_pair))
.expect("could not create Polkadot test service");
let overseer_handler = overseer_handler.expect("test node must have an overseer handler");
let peer_id = network.local_peer_id().clone();