1. 27 Sep, 2021 1 commit
    • Robert Klotzner's avatar
      Log info about low connectivity and unreachable validators (#3916) · 0c2a0fd9
      Robert Klotzner authored
      * Attempt to add log stats to gossip-support.
      
      * WIP: Keep track of connected validators.
      
      * Clarify metric.
      
      * WIP: Make gossip support report connectivity.
      
      * WIP: Fixing tests.
      
      * Fix network bridge + integrate in overseer.
      
      * Consistent naming.
      
      * Fix logic error
      
      * cargo fmt
      
      * Pretty logs.
      
      * cargo fmt
      
      * Use `Delay` to trigger periodic checks.
      
      * fmt
      
      * Fix warning for authority set size of 1.
      
      * More correct ratio report if there are no resolved validators.
      
      * Prettier rendering of empty set.
      
      * Fix typo.
      
      * Another typo.
      
      * Don't check on every leaf update.
      
      * Make compatible with older rustc.
      
      * Fix tests.
      
      * Demote warning.
      0c2a0fd9
  2. 12 Aug, 2021 1 commit
    • Robert Klotzner's avatar
      Remove request multiplexer (#3624) · 117466aa
      Robert Klotzner authored
      * WIP: Get rid of request multiplexer.
      
      * WIP
      
      * Receiver for handling of incoming requests.
      
      * Get rid of useless `Fault` abstraction.
      
      The things the type system let us do are not worth getting abstracted in
      its own type. Instead error handling is going to be merely a pattern.
      
      * Make most things compile again.
      
      * Port availability distribution away from request multiplexer.
      
      * Formatting.
      
      * Port dispute distribution over.
      
      * Fixup statement distribution.
      
      * Handle request directly in collator protocol.
      
      + Only allow fatal errors at top level.
      
      * Use direct request channel for availability recovery.
      
      * Finally get rid of request multiplexer
      
      Fixes #2842 and paves the way for more back pressure possibilities.
      
      * Fix overseer and statement distribution tests.
      
      * Fix collator protocol and network bridge tests.
      
      * Fix tests in availability recovery.
      
      * Fix availability distribution tests.
      
      * Fix dispute distribution tests.
      
      * Add missing dependency
      
      * Typos.
      
      * Review remarks.
      
      * More remarks.
      117466aa
  3. 02 Aug, 2021 1 commit
  4. 27 Jul, 2021 1 commit
  5. 14 Jul, 2021 1 commit
    • Denis_P's avatar
      WIP: CI: add spellcheck (#3421) · 8a6af441
      Denis_P authored
      
      
      * CI: add spellcheck
      
      * revert me
      
      * CI: explicit command for spellchecker
      
      * spellcheck: edit misspells
      
      * CI: run spellcheck on diff
      
      * spellcheck: edits
      
      * spellcheck: edit misspells
      
      * spellcheck: add rules
      
      * spellcheck: mv configs
      
      * spellcheck: more edits
      
      * spellcheck: chore
      
      * spellcheck: one more thing
      
      * spellcheck: and another one
      
      * spellcheck: seems like it doesn't get to an end
      
      * spellcheck: new words after rebase
      
      * spellcheck: new words appearing out of nowhere
      
      * chore
      
      * review edits
      
      * more review edits
      
      * more edits
      
      * wonky behavior
      
      * wonky behavior 2
      
      * wonky behavior 3
      
      * change git behavior
      
      * spellcheck: another bunch of new edits
      
      * spellcheck: new words are koming out of nowhere
      
      * CI: finding the master
      
      * CI: fetching master implicitly
      
      * CI: undebug
      
      * new errors
      
      * a bunch of new edits
      
      * and some more
      
      * Update node/core/approval-voting/src/approval_db/v1/mod.rs
      
      Co-authored-by: Andronik Ordian's avatarAndronik Ordian <write@reusable.software>
      
      * Update xcm/xcm-executor/src/assets.rs
      
      Co-authored-by: Andronik Ordian's avatarAndronik Ordian <write@reusable.software>
      
      * Apply suggestions from code review
      
      Co-authored-by: Andronik Ordian's avatarAndronik Ordian <write@reusable.software>
      
      * Suggestions from the code review
      
      * CI: scan only changed files
      
      Co-authored-by: Andronik Ordian's avatarAndronik Ordian <write@reusable.software>
      8a6af441
  6. 09 Jul, 2021 1 commit
    • Robert Klotzner's avatar
      Dispute distribution implementation (#3282) · f9d71f8c
      Robert Klotzner authored
      * Dispute protocol.
      
      * Dispute distribution protocol.
      
      * Get network requests routed.
      
      * WIP: Basic dispute sender logic.
      
      * Basic validator determination logic.
      
      * WIP: Getting things to typecheck.
      
      * Slightly larger timeout.
      
      * More typechecking stuff.
      
      * Cleanup.
      
      * Finished most of the sending logic.
      
      * Handle active leaves updates
      
      - Cleanup dead disputes
      - Update sends for new sessions
      - Retry on errors
      
      * Pass sessions in already.
      
      * Startup dispute sending.
      
      * Provide incoming decoding facilities
      
      and use them in statement-distribution.
      
      * Relaxed runtime util requirements.
      
      We only need a `SubsystemSender` not a full `SubsystemContext`.
      
      * Better usability of incoming requests.
      
      Make it possible to consume stuff without clones.
      
      * Add basic receiver functionality.
      
      * Cleanup + fixes for sender.
      
      * One more sender fix.
      
      * Start receiver.
      
      * Make sure to send responses back.
      
      * WIP: Exposed authority discovery
      
      * Make tests pass.
      
      * Fully featured receiver.
      
      * Decrease cost of `NotAValidator`.
      
      * Make `RuntimeInfo` LRU cache size configurable.
      
      * Cache more sessions.
      
      * Fix collator protocol.
      
      * Disable metrics for now.
      
      * Make dispute-distribution a proper subsystem.
      
      * Fix naming.
      
      * Code style fixes.
      
      * Factored out 4x copied mock function.
      
      * WIP: Tests.
      
      * Whitespace cleanup.
      
      * Accessor functions.
      
      * More testing.
      
      * More Debug instances.
      
      * Fix busy loop.
      
      * Working tests.
      
      * More tests.
      
      * Cleanup.
      
      * Fix build.
      
      * Basic receiving test.
      
      * Non validator message gets dropped.
      
      * More receiving tests.
      
      * Test nested and subsequent imports.
      
      * Fix spaces.
      
      * Better formatted imports.
      
      * Import cleanup.
      
      * Metrics.
      
      * Message -> MuxedMessage
      
      * Message -> MuxedMessage
      
      * More review remarks.
      
      * Add missing metrics.rs.
      
      * Fix flaky test.
      
      * Dispute coordinator - deliver confirmations.
      
      * Send out `DisputeMessage` on issue local statement.
      
      * Unwire dispute distribution.
      
      * Review remarks.
      
      * Review remarks.
      
      * Better docs.
      f9d71f8c
  7. 08 Jul, 2021 1 commit
  8. 02 Jul, 2021 1 commit
  9. 22 Jun, 2021 1 commit
  10. 19 Jun, 2021 1 commit
  11. 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
  12. 12 Jun, 2021 1 commit
  13. 11 Jun, 2021 1 commit
  14. 09 Jun, 2021 1 commit
  15. 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
  16. 03 Jun, 2021 1 commit
  17. 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
  18. 22 May, 2021 2 commits
  19. 21 May, 2021 1 commit
  20. 20 May, 2021 1 commit
  21. 19 May, 2021 1 commit
  22. 14 May, 2021 1 commit
  23. 13 May, 2021 1 commit
  24. 06 May, 2021 1 commit
  25. 03 May, 2021 1 commit
  26. 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
  27. 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
  28. 05 Apr, 2021 2 commits
  29. 04 Apr, 2021 1 commit
  30. 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
  31. 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
  32. 30 Mar, 2021 1 commit
  33. 28 Mar, 2021 3 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
    • 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
  34. 26 Mar, 2021 2 commits
  35. 25 Mar, 2021 1 commit