1. Aug 04, 2020
  2. Jul 28, 2020
  3. Jul 23, 2020
    • Bernhard Schuster's avatar
      implement bitfield distribution subsystem (#1368) · 08fcbda4
      Bernhard Schuster authored
      
      
      * feat bitfield distribution
      
      * feat bitfield distribution part 2
      
      * pair programming with rustc & cargo
      
      * lets go
      
      * move bitfield-distribution to the node/network folder
      
      * shape shifting
      
      * lunchtime
      
      * ignore the two fn recursion for now
      
      * step by step
      
      * triplesteps
      
      * bandaid commit
      
      * unordered futures magic
      
      * chore
      
      * reword markdown
      
      * clarify
      
      * lacks abortable processing impl details
      
      * slimify
      
      * fix: warnings and avoid ctx.clone() improve comments
      
      * review comments
      
      * fix details
      
      * make sure outgoing messages are tracked
      
      * fix name
      
      * fix subsystem
      
      * partial test impl
      
      * relax context bounds
      
      * test
      
      * X
      
      * X
      
      * initial test
      
      * fix relay_message not tracked when origin is self
      
      * fix/guide: grammar
      
      Co-authored-by: default avatarRobert Habermeier <[email protected]>
      
      * work around missing Eq+PartialEq
      
      * fix: add missing message to provisioner
      
      * unify per_job to job_data
      
      * fix/review: part one
      
      * fix/review: more grumbles
      
      * fix/review: track incoming messages per peer
      
      * fix/review: extract fn, avoid nested matches
      
      * fix/review: more tests, simplify test
      
      * fix/review: extend tests to cover more cases
      
      * chore/rename: Tracker -> ProtocolState
      
      * chore check and comment rewording
      
      * feat test: invalid peer message
      
      * remove ignored test cases and unused macros
      
      * fix master merge fallout + warnings
      
      Co-authored-by: default avatarRobert Habermeier <[email protected]>
      08fcbda4
  4. Jul 21, 2020
    • Peter Goodspeed-Niklaus's avatar
      Add test suite and minor refinements to the utility subsystem (#1403) · cc2d7afd
      Peter Goodspeed-Niklaus authored
      * get conclude signal working properly; don't allocate a vector
      
      * wip: add test suite / example / explanation for using utility subsystem
      
      Unfortunately, the test fails right now for reasons which seem
      very odd. Just have to keep poking at it.
      
      * explicitly import everything
      
      * fix subsystem-util test
      
      The root problem here was two-fold:
      
      - there was a circular dependency from subsystem -> test-helpers/subsystem ->
        subsystem
      - cfg(test) doesn't propagate between crates
      
      The solution: move the subsystem test helpers into a sub-module
      within subsystem. Publicly export them from the previous location
      so no other code breaks.
      
      Doing this has an additional benefit: it ensures that no production
      code can ever accidentally use the subsystem helpers, as they are compile-
      gated on cfg(test).
      
      * fully commit to moving test helpers into a subsystem module
      
      * add some more tests
      
      * get rid of log tests in favor of real error forwarding
      
      It's not obvious whether we'll ever really want to chase down
      these errors outside a testing context, but having the capability
      won't hurt.
      
      * fix issue which caused test to hang on osx
      
      * only require that job errors are PartialEq when testing
      
      also fix polkadot-node-core-backing tests
      
      * get rid of any notion of partialeq
      
      * rethink testing
      
      Combine tests of starting and stopping job: leaving a test executor
      with a job running was pretty clearly the cause of the sometimes-hang.
      
      Also, add a timeout so tests _can't_ hang anymore; they just fail
      after a while.
      
      * rename fwd_errors -> forward_errors
      
      * warn on error propagation failure
      
      * fix unused import leftover from merge
      
      * derive eq for subsystemerror
      cc2d7afd
  5. Jul 17, 2020
  6. Jul 08, 2020
    • asynchronous rob's avatar
      Implement PoV Distribution Subsystem (#1344) · b651e4af
      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
      b651e4af
  7. Jun 30, 2020
    • asynchronous rob's avatar
      Implement Network Bridge (#1280) · eaae8653
      asynchronous rob 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
      
      * 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
      
      * Update node/network/bridge/src/lib.rs
      
      Co-authored-by: default avatarPeter Goodspeed-Niklaus <[email protected]>
      
      * fix compilation
      
      Co-authored-by: default avatarPeter Goodspeed-Niklaus <[email protected]>
      eaae8653