- Jul 08, 2020
-
-
asynchronous rob authored
* introduce candidatedescriptor type * add PoVDistribution message type * loosen bound on PoV Distribution to account for equivocations * re-export some types from the messages module * begin PoV Distribution subsystem * remove redundant index from PoV distribution * define state machine for pov distribution * handle overseer signals * set up control flow * remove `ValidatorStatement` section * implement PoV fetching * implement distribution logic * add missing ` * implement some network bridge event handlers * stub for message processing, handle our view change * control flow for handling messages * handle `awaiting` message * handle any incoming PoVs and redistribute * actually provide a subsystem implementation * remove set-builder notation * begin testing PoV distribution * test that we send awaiting messages only to peers with same view * ensure we distribute awaited PoVs to peers on view changes * test that peers can complete fetch and are rewarded * test some reporting logic * ensure peer is reported for flooding * test punishing peers diverging from awaited protocol * test that we eagerly complete peers' awaited PoVs based on what we receive * test that we prune the awaited set after receiving * expand pov-distribution in guide to match a change I made * remove unneeded import
-
- Jul 07, 2020
-
-
asynchronous rob authored
* rename implementor's guide to implementer's guide * fix typos in more places
-
- Jul 05, 2020
-
-
Peter Goodspeed-Niklaus authored
* network bridge skeleton * move some primitives around and add debug impls * protocol registration glue & abstract network interface * add send_msgs to subsystemctx * select logic * transform different events into actions and handle * implement remaining network bridge state machine * start test skeleton * make network methods asynchronous * extract subsystem out to subsystem crate * port over overseer to subsystem context trait * fix minimal example * fix overseer doc test * update network-bridge crate * write a subsystem test-helpers crate * write a network test helper for network-bridge * set up (broken) view test * Revamp network to be more async-friendly and not require Sync * fix spacing * fix test compilation * insert side-channel for actions * Add some more message types to AllMessages * introduce a test harness * impl ProvideInherent for InclusionInherent * reduce import churn; correct expect message * move inclusion inherent identifier into primitives It's not clear precisely why this is desired, but it's a pattern I've seen in several places, so I'm going this to be on the safe side. Worst case, we can revert this commit pretty easily. * bump kusama spec_version to placate CI * copy sc_basic_authorship::{ProposerFactory, Proposer} We have from the problem description: > This Proposer will require an OverseerHandle to make requests via. That's next on the plate. * use polkadot custom proposer instead of basic-authorship one * add some tests * ensure service compiles and passes tests * fix typo * fix service-new compilation * Subsystem test helpers send messages synchronously * remove smelly action inspector * remove superfluous let binding * fix warnings * add license header * empty commit; maybe github will notice the one with changes * Update node/network/bridge/src/lib.rs Co-authored-by: Peter Goodspeed-Niklaus <[email protected]> * add sanity check to only include valid inherents * stub: encapsulate block production mechanics instead of copying them The goal is to end up with something like what's in validation::block_production::*, which encapsulates basic block production mechanics. This is a better idea than just straight-up copying those mechanics. * partial implementation of propose fn Doesn't actually compile yet; need to bring in some other commits to ensure ProvisionerMessage is a thing, and also figure out how to get the block hash given the current context. * fix compilation * clear a few more compile errors * finish fn propose * broken: add timeout to proposal * add timeout to proposal * guide: provisioner is responsible for selecting parachain candidates * implement ProvisionerMessage::RequestInherentData & update fn propose * impl CreateProposer::init; clean up * impl std::error::Error for Error * document error-handling rationale * cause polkadot-service-new to compile correctly * Move potentially-blocking call from fn init -> fn propose This means that we can wrap the delayed call into the same timeout check used elsewhere. * document struct Proposer * extract provisioner data fetch This satisfies two requirements: - only applies the timeout to actually fetching the provisioner data, not to constructing the block after - simplifies the problem of injecting default data if we could not get the real provisioner data in time. Co-authored-by: Robert Habermeier <[email protected]> Co-authored-by: Gavin Wood <[email protected]>
-
- Jun 22, 2020
-
-
asynchronous rob authored
* rejig candidate types a bit * adjust doc * describe basic PoV distribution * replace some straggling html links * address grumbles from review and fix links
-
- Jun 20, 2020
-
-
Peter Goodspeed-Niklaus authored
* add signed wrapper, typedef SignedStatement * typedef SignedAvailabilityBitfield * implement Signed wrapper This is strictly an addition as of this commit; nothing is yet changed in existing behavior. * inline getters, remove review comment * move EncodeAs, Signed from node::primitives to primitives::parachain * Refactor SignedAvailabilityBitfield to use Signed * don't double-encode real payload This isn't an ideal solution, because it depends on the implementation details of how SCALE encodes tuples, but OTOH that behavior seems unlikely to change anytime soon. * fix build errors * cause the runtime to build properly with the new changes Not sure why cargo check didn't catch this earlier; oh well. * fix runtime tests and separate SignedStatement from SignedFullStatement * better explain why CompactStatement exists Co-authored-by: Robert Habermeier <[email protected]> Co-authored-by: Robert Habermeier <[email protected]>
-
Sergey Pepyakin authored
* Add mdbook-linkcheck * Convert todo to not a link * Fix external glossary link * Fix various broken links * Mass replace: s/.html/.md/ * My sloppy attempt to add a gitlab CI check
-
- Jun 17, 2020
-
-
asynchronous rob authored
* introduce polkadot-node-primitives * guide: change statement distribution message types * guide: remove variant from `CandidateSelectionMessage` * add a few more message types * add TODOs * Almost all messages * NewBackedCandidate notification * Formatting * Use AttestedCandidate as BackedCandidate * Update node/primitives/src/lib.rs Co-authored-by: Peter Goodspeed-Niklaus <[email protected]> * Fix the tests * Bring in types from #1242 * Adds network bridge messages * More message types from doc * use fn pointer type * Fixes from the review * Add missing Runtime subsystem message * rename to CandidateValidationMessage and fix tests Co-authored-by: Fedor Sakharov <[email protected]> Co-authored-by: Peter Goodspeed-Niklaus <[email protected]>
-
asynchronous rob authored
* types chapter & candidate types * Factor out some message types * backing and availability types. * spacing * finish thought * info on signed payloads * update links * explicit wrapper types * add remaining message types * add runtime API subsystem * adjust language * tweak candidate validation message * find homes for some misfit types * embed abridged within full candidate receipt * Update roadmap/implementors-guide/src/SUMMARY.md Co-authored-by: Peter Goodspeed-Niklaus <[email protected]> * Update roadmap/implementors-guide/src/SUMMARY.md Co-authored-by: Peter Goodspeed-Niklaus <[email protected]> * adjust text on candidate selection message to match Co-authored-by: Peter Goodspeed-Niklaus <[email protected]>
-