Collators get incoming parachain messages (#149)

* refactor out a consensus data fetcher from table router

* move statement checking logic into router

* refuse to start authority if collator

* support building the table router asynchronously

* instantiate_consensus does not overwrite old

* update key in new consensus if there was none before

* collator collects ingress from network

* test produced egress roots

* fix adder-collator compilation

* address first grumbles

* integrate new gossip with collator network launch

* address review
This commit is contained in:
Robert Habermeier
2019-03-22 00:48:36 +01:00
committed by GitHub
parent 67275abe30
commit 454ddf8921
16 changed files with 960 additions and 657 deletions
+3 -2
View File
@@ -45,6 +45,7 @@ pub use service::{
pub use cli::{VersionInfo, IntoExit};
pub use cli::error;
pub use tokio::runtime::TaskExecutor;
fn load_spec(id: &str) -> Result<Option<service::ChainSpec>, String> {
Ok(match ChainSpec::from(id) {
@@ -68,7 +69,7 @@ pub trait Worker: IntoExit {
fn configuration(&self) -> service::CustomConfiguration { Default::default() }
/// Do work and schedule exit.
fn work<S: PolkadotService>(self, service: &S) -> Self::Work;
fn work<S: PolkadotService>(self, service: &S, executor: TaskExecutor) -> Self::Work;
}
/// Parse command line arguments into service configuration.
@@ -129,7 +130,7 @@ fn run_until_exit<T, C, W>(
let executor = runtime.executor();
cli::informant::start(&service, exit.clone(), executor.clone());
let _ = runtime.block_on(worker.work(&*service));
let _ = runtime.block_on(worker.work(&*service, executor.clone()));
exit_send.fire();
// we eagerly drop the service so that the internal exit future is fired,