1. 19 Jun, 2021 1 commit
  2. 18 Jun, 2021 1 commit
    • Andronik Ordian's avatar
      improved gossip topology (#3270) · f223297b
      Andronik Ordian authored
      * gossip-support: gossip topology
      
      * some fixes
      
      * handle view update for newly added gossip peers
      
      * fix neighbors calculation
      
      * fix test
      
      * resolve TODOs
      
      * typo
      
      * guide updates
      
      * spaces in the guide
      
      * sneaky spaces
      
      * hash randomness
      
      * address some review nits
      
      * use unbounded in bridge for subsystem msg
      f223297b
  3. 17 Jun, 2021 1 commit
  4. 13 Jun, 2021 1 commit
    • asynchronous rob's avatar
      Dispute Coordinator Subsystem (#3150) · 19c1d29d
      asynchronous rob authored
      
      
      * skeleton for dispute-coordinator
      
      * add coordinator and participation message types
      
      * begin dispute-coordinator DB
      
      * functions for loading
      
      * implement strongly-typed DB transaction
      
      * add some tests for DB transaction
      
      * core logic for pruning
      
      * guide: update candidate-votes key for coordinator
      
      * update candidate-votes key
      
      * use big-endian encoding for session, and implement upper bound generator
      
      * finish implementing pruning
      
      * add a test for note_current_session
      
      * define state of the subsystem itself
      
      * barebones subsystem definition
      
      * control flow
      
      * more control flow
      
      * implement session-updating logic
      
      * trace
      
      * control flow for message handling
      
      * Update node/core/dispute-coordinator/src/lib.rs
      
      Co-authored-by: default avatarAndré Silva <123550+andresilva@users.noreply.github.com>
      
      * Update node/subsystem/src/messages.rs
      
      Co-authored-by: default avatarAndré Silva <123550+andresilva@users.noreply.github.com>
      
      * some more control flow
      
      * guide: remove overlay
      
      * more control flow
      
      * implement some DB getters
      
      * make progress on importing statements
      
      * add SignedDisputeStatement struct
      
      * move ApprovalVote to shared primitives
      
      * add a signing-payload API to explicit dispute statements
      
      * add signing-payload to CompactStatement
      
      * add relay-parent hash to seconded/valid dispute variatns
      
      * correct import
      
      * type-safe wrapper around dispute statements
      
      * use checked dispute statement in message type
      
      * extract rolling session window cache to subsystem-util
      
      * extract session window tests
      
      * approval-voting: use rolling session info cache
      
      * reduce dispute window to match runtime in practice
      
      * add byzantine_threshold and supermajority_threshold utilities to primitives
      
      * integrate rolling session window
      
      * Add PartialOrd to CandidateHash
      
      * add Ord to CandidateHash
      
      * implement active dispute update
      
      * add dispute messages to AllMessages
      
      * add dispute stubs to overseer
      
      * inform dispute participation to participate
      
      * implement issue_local_statement
      
      * implement `determine_undisputed_chain`
      
      * fix warnings
      
      * test harness for dispute coordinator tests
      
      * add more helpers to test harness
      
      * add some more helpers
      
      * some tests for dispute coordinator
      
      * ignore wrong validator indices
      
      * test finality voting rule constraint
      
      * add more tests
      
      * add variants to network bridge
      
      * fix test compilation
      
      * remove most dispute coordinator functionality
      
      as of #3222 we can do most of the work within the approval voting subsystem
      
      * Revert "remove most dispute coordinator functionality"
      
      This reverts commit 9cd615e8
      
      .
      
      * Use thiserror
      
      Co-authored-by: default avatarBernhard Schuster <bernhard@ahoi.io>
      
      * Update node/core/dispute-coordinator/src/lib.rs
      
      Co-authored-by: default avatarBernhard Schuster <bernhard@ahoi.io>
      
      * extract tests to separate module
      
      * address nit
      
      * adjust run_iteration API
      
      Co-authored-by: default avatarAndré Silva <123550+andresilva@users.noreply.github.com>
      Co-authored-by: default avatarBernhard Schuster <bernhard@ahoi.io>
      19c1d29d
  5. 12 Jun, 2021 2 commits
  6. 11 Jun, 2021 1 commit
  7. 09 Jun, 2021 1 commit
  8. 08 Jun, 2021 1 commit
    • Lldenaurois's avatar
      Remove candidate selection (#3148) · a4dfdf16
      Lldenaurois authored
      * Create validator_side module
      
      * Subsume Candidate Selection
      
      * Add test to ensure candidate backing logic is correct
      
      * Ensure secondings are adequately cleaned up and address test flakyness
      
      * Address Feedback
      a4dfdf16
  9. 03 Jun, 2021 1 commit
  10. 31 May, 2021 1 commit
    • asynchronous rob's avatar
      Reversion Safety tools for overseer and subsystems (#3104) · d8d8e926
      asynchronous rob authored
      * guide: reversion safety
      
      * guide: manage reversion safety in subsystems
      
      * add leaf status to ActivatedLeaf
      
      * add an LRU-cache to overseer for staleness detection
      
      * update ActivatedLeaf usages in tests to contain status field
      
      * add variant where missed accidentally
      
      * add some helpers to LeafStatus
      
      * address grumbles
      d8d8e926
  11. 22 May, 2021 2 commits
  12. 21 May, 2021 1 commit
  13. 20 May, 2021 1 commit
  14. 19 May, 2021 1 commit
  15. 14 May, 2021 1 commit
  16. 13 May, 2021 1 commit
  17. 06 May, 2021 1 commit
  18. 03 May, 2021 1 commit
  19. 16 Apr, 2021 1 commit
    • Robert Klotzner's avatar
      Infrastructure improvements (#2897) · fff63cb5
      Robert Klotzner authored
      * Factor out runtime module into utils.
      
      * Add maybe_authority information to `PeerConnected` event.
      
      We already gather this information in authority discovery, so we might
      as well share it with others.
      
      This opens up an easy path to trigger validators differently from normal
      nodes, e.g. for prioritization. This change has become more important
      now, that we just connect to all validators and therefore just have a
      long peer list without any information about those nodes.
      
      * Test fix.
      fff63cb5
  20. 09 Apr, 2021 1 commit
    • Robert Klotzner's avatar
      Req/res optimization for statement distribution (#2803) · 48d5b143
      Robert Klotzner authored
      * Wip
      
      * Increase proposer timeout.
      
      * WIP.
      
      * Better timeout values now that we are going to be connected to all nodes. (#2778)
      
      * Better timeout values.
      
      * Fix typo.
      
      * Fix validator bandwidth.
      
      * Fix compilation.
      
      * Better and more consistent sizes.
      
      Most importantly code size is now 5 Meg, which is the limit we currently
      want to support in statement distribution.
      
      * Introduce statement fetching request.
      
      * WIP
      
      * Statement cache retrieval logic.
      
      * Review remarks by @rphmeier
      
      * Fixes.
      
      * Better requester logic.
      
      * WIP: Handle requester messages.
      
      * Missing dep.
      
      * Fix request launching logic.
      
      * Finish fetching logic.
      
      * Sending logic.
      
      * Redo code size calculations.
      
      Now that max code size is compressed size.
      
      * Update Cargo.lock (new dep)
      
      * Get request receiver to statement distribution.
      
      * Expose new functionality for responding to requests.
      
      * Cleanup.
      
      * Responder logic.
      
      * Fixes + Cleanup.
      
      * Cargo.lock
      
      * Whitespace.
      
      * Add lost copyright.
      
      * Launch responder task.
      
      * Typo.
      
      * info -> warn
      
      * Typo.
      
      * Fix.
      
      * Fix.
      
      * Update comment.
      
      * Doc fix.
      
      * Better large statement heuristics.
      
      * Fix tests.
      
      * Fix network bridge tests.
      
      * Add test for size estimate.
      
      * Very simple tests that checks we get LargeStatement.
      
      * Basic check, that fetching of large candidates is performed.
      
      * More tests.
      
      * Basic metrics for responder.
      
      * More metrics.
      
      * Use Encode::encoded_size().
      
      * Some useful spans.
      
      * Get rid of redundant metrics.
      
      * Don't add peer on duplicate.
      
      * Properly check hash
      
      instead of relying on signatures alone.
      
      * Preserve ordering + better flood protection.
      
      * Get rid of redundant clone.
      
      * Don't shutdown responder on failed query.
      
      And add test for this.
      
      * Smaller fixes.
      
      * Quotes.
      
      * Better queue size calculation.
      
      * A bit saner response sizes.
      
      * Fixes.
      48d5b143
  21. 05 Apr, 2021 2 commits
  22. 04 Apr, 2021 1 commit
  23. 03 Apr, 2021 1 commit
    • asynchronous rob's avatar
      Collation protocol: stricter validators (#2810) · 54e18e65
      asynchronous rob authored
      
      
      * guide: declare one para as a collator
      
      * add ParaId to Declare messages and clean up
      
      * fix build
      
      * fix the testerinos
      
      * begin adding keystore to collator-protocol
      
      * remove request_x_ctx
      
      * add core_for_group
      
      * add bump_rotation
      
      * add some more helpers to subsystem-util
      
      * change signing_key API to take ref
      
      * determine current and next para assignments
      
      * disconnect collators who are not on current or next para
      
      * add collator peer count metric
      
      * notes for later
      
      * some fixes
      
      * add data & keystore to test state
      
      * add a test utility for answering runtime API requests
      
      * fix existing collator tests
      
      * add new tests
      
      * remove sc_keystore
      
      * update cargo lock
      
      Co-authored-by: Andronik Ordian's avatarAndronik Ordian <write@reusable.software>
      54e18e65
  24. 01 Apr, 2021 1 commit
    • asynchronous rob's avatar
      Approval Voting improvements (#2781) · 9b700da0
      asynchronous rob authored
      
      
      * extract database from av-store itself
      
      * generalize approval-voting over database type
      
      * modes (without handling) and pruning old wakeups
      
      * rework approval importing
      
      * add our_approval_sig to ApprovalEntry
      
      * import assignment
      
      * guide updates for check-full-approval changes
      
      * some aux functions
      
      * send messages when becoming active.
      
      * guide: network bridge sends view updates only when done syncing
      
      * network bridge: send view updates only when done syncing
      
      * tests for new network-bridge behavior
      
      * add a test for updating approval entry with sig
      
      * fix some warnings
      
      * test load-all-blocks
      
      * instantiate new parachains DB
      
      * fix network-bridge empty view updates
      
      * tweak
      
      * fix wasm build, i think
      
      * Update node/core/approval-voting/src/lib.rs
      
      Co-authored-by: Andronik Ordian's avatarAndronik Ordian <write@reusable.software>
      
      * add some versioning to parachains_db
      
      * warnings
      
      * fix merge changes
      
      * remove versioning again
      
      Co-authored-by: Andronik Ordian's avatarAndronik Ordian <write@reusable.software>
      9b700da0
  25. 30 Mar, 2021 1 commit
  26. 28 Mar, 2021 4 commits
    • asynchronous rob's avatar
      Split NetworkBridge and break cycles with Unbounded (#2736) · d23a6d5a
      asynchronous rob authored
      
      
      * overseer: pass messages directly between subsystems
      
      * test that message is held on to
      
      * Update node/overseer/src/lib.rs
      
      Co-authored-by: default avatarPeter Goodspeed-Niklaus <coriolinus@users.noreply.github.com>
      
      * give every subsystem an unbounded sender too
      
      * remove metered_channel::name
      
      1. we don't provide good names
      2. these names are never used anywhere
      
      * unused mut
      
      * remove unnecessary &mut
      
      * subsystem unbounded_send
      
      * remove unused MaybeTimer
      
      We have channel size metrics that serve the same purpose better now and the implementation of message timing was pretty ugly.
      
      * remove comment
      
      * split up senders and receivers
      
      * update metrics
      
      * fix tests
      
      * fix test subsystem context
      
      * use SubsystemSender in jobs system now
      
      * refactor of awful jobs code
      
      * expose public `run` on JobSubsystem
      
      * update candidate backing to new jobs & use unbounded
      
      * bitfield signing
      
      * candidate-selection
      
      * provisioner
      
      * approval voting: send unbounded for assignment/approvals
      
      * async not needed
      
      * begin bridge split
      
      * split up network tasks into background worker
      
      * port over network bridge
      
      * Update node/network/bridge/src/lib.rs
      
      Co-authored-by: Andronik Ordian's avatarAndronik Ordian <write@reusable.software>
      
      * rename ValidationWorkerNotifications
      
      Co-authored-by: default avatarPeter Goodspeed-Niklaus <coriolinus@users.noreply.github.com>
      Co-authored-by: Andronik Ordian's avatarAndronik Ordian <write@reusable.software>
      d23a6d5a
    • Pierre Krieger's avatar
      Call NetworkService::add_known_address before sending a request (#2726) · 43a26382
      Pierre Krieger authored
      * Call NetworkService::add_known_address before sending a request
      
      * Better doc
      
      * Update Substrate
      
      * Update Substrate
      
      * Restore the import 🤷
      
      ‍♀️ I don't know why it compiles locally
      
      * imports correctly
      
      Co-authored-by: asynchronous rob's avatarRobert Habermeier <rphmeier@gmail.com>
      43a26382
    • asynchronous rob's avatar
      Overseer: subsystems communicate directly (#2227) · 322ccd0d
      asynchronous rob authored
      
      
      * overseer: pass messages directly between subsystems
      
      * test that message is held on to
      
      * Update node/overseer/src/lib.rs
      
      Co-authored-by: default avatarPeter Goodspeed-Niklaus <coriolinus@users.noreply.github.com>
      
      * give every subsystem an unbounded sender too
      
      * remove metered_channel::name
      
      1. we don't provide good names
      2. these names are never used anywhere
      
      * unused mut
      
      * remove unnecessary &mut
      
      * subsystem unbounded_send
      
      * remove unused MaybeTimer
      
      We have channel size metrics that serve the same purpose better now and the implementation of message timing was pretty ugly.
      
      * remove comment
      
      * split up senders and receivers
      
      * update metrics
      
      * fix tests
      
      * fix test subsystem context
      
      * fix flaky test
      
      * fix docs
      
      * doc
      
      * use select_biased to favor signals
      
      * Update node/subsystem/src/lib.rs
      
      Co-authored-by: Andronik Ordian's avatarAndronik Ordian <write@reusable.software>
      
      Co-authored-by: default avatarPeter Goodspeed-Niklaus <coriolinus@users.noreply.github.com>
      Co-authored-by: Andronik Ordian's avatarAndronik Ordian <write@reusable.software>
      322ccd0d
    • Robert Klotzner's avatar
      Request based PoV distribution (#2640) · 39124b0a
      Robert Klotzner authored
      * Indentation fix.
      
      * Prepare request-response for PoV fetching.
      
      * Drop old PoV distribution.
      
      * WIP: Fetch PoV directly from backing.
      
      * Backing compiles.
      
      * Runtime access and connection management for PoV distribution.
      
      * Get rid of seemingly dead code.
      
      * Implement PoV fetching.
      
      Backing does not yet use it.
      
      * Don't send `ConnectToValidators` for empty list.
      
      * Even better - no need to check over and over again.
      
      * PoV fetching implemented.
      
      + Typechecks
      + Should work
      
      Missing:
      
      - Guide
      - Tests
      - Do fallback fetching in case fetching from seconding validator fails.
      
      * Check PoV hash upon reception.
      
      * Implement retry of PoV fetching in backing.
      
      * Avoid pointless validation spawning.
      
      * Add jaeger span to pov requesting.
      
      * Add back tracing.
      
      * Review remarks.
      
      * Whitespace.
      
      * Whitespace again.
      
      * Cleanup + fix tests.
      
      * Log to log target in overseer.
      
      * Fix more tests.
      
      * Don't fail if group cannot be found.
      
      * Simple test for PoV fetcher.
      
      * Handle missing group membership better.
      
      * Add test for retry functionality.
      
      * Fix flaky test.
      
      * Spaces again.
      
      * Guide updates.
      
      * Spaces.
      39124b0a
  27. 26 Mar, 2021 2 commits
  28. 25 Mar, 2021 1 commit
  29. 24 Mar, 2021 2 commits
    • André Silva's avatar
      collator-protocol: add message authentication (#2635) · c836fb85
      André Silva authored
      * 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
      c836fb85
    • asynchronous rob's avatar
      Evict inactive peers from the collator protocol peer-set (#2680) · c61383a7
      asynchronous rob authored
      * malicious reputation cost is fatal
      
      * make ReportBad a malicious cost
      
      * futures control-flow for cleaning up inactive collator peers
      
      * guide: network bridge updates
      
      * add `PeerDisconnected` message
      
      * guide: update
      
      * reverse order
      
      * remember to match
      
      * implement disconnect peer in network bridge
      
      * implement disconnect_inactive_peers
      
      * test
      
      * remove println
      
      * don't hardcore policy
      
      * add fuse outside of loop
      
      * use default eviction policy
      c61383a7
  30. 23 Mar, 2021 1 commit
  31. 19 Mar, 2021 1 commit
  32. 18 Mar, 2021 1 commit
    • Robert Klotzner's avatar
      Request based collation fetching (#2621) · 134090c2
      Robert Klotzner authored
      * Introduce collation fetching protocol
      
      also move to mod.rs
      
      * Allow `PeerId`s in requests to network bridge.
      
      * Fix availability distribution tests.
      
      * Move CompressedPoV to primitives.
      
      * Request based collator protocol: validator side
      
      - Missing: tests
      - Collator side
      - don't connect, if not connected
      
      * Fixes.
      
      * Basic request based collator side.
      
      * Minor fix on collator side.
      
      * Don't connect in requests in collation protocol.
      
      Also some cleanup.
      
      * Fix PoV distribution
      
      * Bump substrate
      
      * Add back metrics + whitespace fixes.
      
      * Add back missing spans.
      
      * More cleanup.
      
      * Guide update.
      
      * Fix tests
      
      * Handle results in tests.
      
      * Fix weird compilation issue.
      
      * Add missing )
      
      * Get rid of dead code.
      
      * Get rid of redundant import.
      
      * Fix runtime build.
      
      * Cleanup.
      
      * Fix wasm build.
      
      * Format fixes.
      
      Thanks @andronik !
      134090c2