1. 28 Mar, 2021 2 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
    • 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
  2. 26 Mar, 2021 1 commit
  3. 19 Mar, 2021 1 commit
  4. 18 Mar, 2021 1 commit
  5. 14 Mar, 2021 1 commit
  6. 10 Mar, 2021 2 commits
  7. 09 Mar, 2021 2 commits
  8. 26 Feb, 2021 1 commit
    • Robert Klotzner's avatar
      Request based availability distribution (#2423) · 950447e1
      Robert Klotzner authored
      * WIP
      
      * availability distribution, still very wip.
      
      Work on the requesting side of things.
      
      * Some docs on what I intend to do.
      
      * Checkpoint of session cache implementation
      
      as I will likely replace it with something smarter.
      
      * More work, mostly on cache
      
      and getting things to type check.
      
      * Only derive MallocSizeOf and Debug for std.
      
      * availability-distribution: Cache feature complete.
      
      * Sketch out logic in `FetchTask` for actual fetching.
      
      - Compile fixes.
      - Cleanup.
      
      * Format cleanup.
      
      * More format fixes.
      
      * Almost feature complete `fetch_task`.
      
      Missing:
      
      - Check for cancel
      - Actual querying of peer ids.
      
      * Finish FetchTask so far.
      
      * Directly use AuthorityDiscoveryId in protocol and cache.
      
      * Resolve `AuthorityDiscoveryId` on sending requests.
      
      * Rework fetch_task
      
      - also make it impossible to check the wrong chunk index.
      - Export needed function in validator_discovery.
      
      * From<u32> implementation for `ValidatorIndex`.
      
      * Fixes and more integration work.
      
      * Make session cache proper lru cache.
      
      * Use proper lru cache.
      
      * Requester finished.
      
      * ProtocolState -> Requester
      
      Also make sure to not fetch our own chunk.
      
      * Cleanup + fixes.
      
      * Remove unused functions
      
      - FetchTask::is_finished
      - SessionCache::fetch_session_info
      
      * availability-distribution responding side.
      
      * Cleanup + Fixes.
      
      * More fixes.
      
      * More fixes.
      
      adder-collator is running!
      
      * Some docs.
      
      * Docs.
      
      * Fix reporting of bad guys.
      
      * Fix tests
      
      * Make all tests compile.
      
      * Fix test.
      
      * Cleanup + get rid of some warnings.
      
      * state -> requester
      
      * Mostly doc fixes.
      
      * Fix test suite.
      
      * Get rid of now redundant message types.
      
      * WIP
      
      * Rob's review remarks.
      
      * Fix test suite.
      
      * core.relay_parent -> leaf for session request.
      
      * Style fix.
      
      * Decrease request timeout.
      
      * Cleanup obsolete errors.
      
      * Metrics + don't fail on non fatal errors.
      
      * requester.rs -> requester/mod.rs
      
      * Panic on invalid BadValidator report.
      
      * Fix indentation.
      
      * Use typed default timeout constant.
      
      * Make channel size 0, as each sender gets one slot anyways.
      
      * Fix incorrect metrics initialization.
      
      * Fix build after merge.
      
      * More fixes.
      
      * Hopefully valid metrics names.
      
      * Better metrics names.
      
      * Some tests that already work.
      
      * Slightly better docs.
      
      * Some more tests.
      
      * Fix network bridge test.
      950447e1
  9. 22 Feb, 2021 1 commit
  10. 19 Feb, 2021 1 commit
    • Bernhard Schuster's avatar
      feat/jaeger: more spans, more stages (#2477) · f9186eb2
      Bernhard Schuster authored
      * feat/jaeger: more spans, more stages
      
      Stage numbers are still arbitrarily picked.
      
      * feat/jaeger: additional spans
      
      * chore/spellcheck: improve the dictionary
      
      * fix/jaeger JaegerSpan -> jaeger::Span
      f9186eb2
  11. 18 Feb, 2021 1 commit
  12. 14 Feb, 2021 1 commit
    • Bastian Köcher's avatar
      Notify collators about seconded collation (#2430) · ac5ef00e
      Bastian Köcher authored
      * Notify collators about seconded collation
      
      This pr adds functionality to inform a collator that its collation was
      seconded by a parachain validator. Before this signed statement was only
      gossiped over the validation substream. Now, we explicitly send the
      seconded statement to the collator after it was validated successfully.
      
      Besides that it changes the `CollatorFn` to return an optional result
      sender that is informed when the build collation was seconded by a
      parachain validator.
      
      * Add test
      
      * Make sure we only send `Seconded` statements
      
      * Make sure we only receive valid statements
      
      * Review feedback
      ac5ef00e
  13. 02 Feb, 2021 1 commit
    • Sergey Pepyakin's avatar
      Clean up PersistedValidationData (#2353) · aba42e4a
      Sergey Pepyakin authored
      * PVD: `block_number`->`relay_parent_number`
      
      * ValidationParams: `relay_chain_height`->`relay_parent_number`
      
      * Expose DMQ MQC hash as a well-known-key
      
      This way the relay storage merkle proofs will be able to obtain the DMQ
      MQC hash and we will be able to remove the it from the
      PersistedValidationData struct.
      
      * PersistedValidationData: Remove HRMP MQC heads
      
      * PersistedValidationData: Remove `dmq_mqc_head`
      
      * Expose the HRMP ingress channel index as a well-known-key
      
      This way a parachain (PVF and collator) can find all the parachains that
      have an outbound channel to the given one. That allows in turn to find
      all the inbound channels for the given para.
      
      Having access to that allows the parachain to get the same information
      as the hrmp_mqc_heads now provide.
      
      * Rename `relay_storage_root` to `relay_parent_storage_root`
      aba42e4a
  14. 29 Jan, 2021 1 commit
  15. 28 Jan, 2021 1 commit
    • Peter Goodspeed-Niklaus's avatar
      misbehavior: report multiple offenses per validator as necessary (#2222) · 25694f6f
      Peter Goodspeed-Niklaus authored
      * use proper descriptive generic type names
      
      * cleanup
      
      * Table stores a list of detected misbehavior per authority
      
      * add Table::drain_misbehaviors_for
      
      * WIP: unify misbehavior types; report multiple misbehaviors per validator
      
      Code checks, but tests don't yet pass.
      
      * update drain_misbehaviors: return authority id as well as specific misbehavior
      
      * enable unchecked construction of Signed structs in tests
      
      * remove test-features feature & unnecessary generic
      
      * fix backing tests
      
      This took a while to figure out, because where we'd previously been
      passing around `SignedFullStatement`s, we now needed to construct
      those on the fly within the test, to take advantage of the signature-
      checking in the constructor. That, in turn, necessitated changing the
      iterable type of `drain_misbehaviors` to return the validator index,
      and passing that validator index along within the misbehavior report.
      
      Once that was sorted, however, it became relatively straightforward:
      just needed to add appropriate methods to deconstruct the misbehavior
      reports, and then we could construct the signed statements directly.
      
      * fix bad merge
      25694f6f
  16. 18 Jan, 2021 1 commit
    • Sergey Pepyakin's avatar
      Remove TransientValidationData (#2272) · 44f01a39
      Sergey Pepyakin authored
      * collation-generation: use persisted validation data
      
      * node: remote FullValidationData API
      
      * runtime: remove FullValidationData API
      
      * backing tests: use persisted validation data
      
      * FullCandidateReceipt: use persisted validation data
      
      This is not a big change since this type is not used anywhere
      
      * Remove ValidationData and TransientValidationData
      
      Also update the guide
      44f01a39
  17. 17 Jan, 2021 1 commit
  18. 05 Jan, 2021 2 commits
  19. 04 Jan, 2021 2 commits
    • Sergey Pepyakin's avatar
      Add relay storage root to persisted validation data (#2161) · 50538aa5
      Sergey Pepyakin authored
      * Cont.: Implement the state root obtaining during inclusion
      
      During inclusion now we obtain the storage root by passing it through
      the inclusion_inherent.
      
      * Fix tests
      
      * Bump rococo spec version
      
      * Reorder the parent header into the end
      
      of the inclusion inherent.
      
      When the parent header is in the beginning, it shifts the other two
      fields, so that a previous version won't be able to decode that. If
      we put the parent header in the end, the other two fields will stay
      at their positions, thus make it possible to decode with the previous
      version.
      
      That allows us to perform upgrade of rococo runtime without needing of
      simultanuous upgrade of nodes and runtime, or restart of the network.
      
      * Squash a stray tab
      50538aa5
    • Bastian Köcher's avatar
      Improve unbacked span (#2191) · 85932d15
      Bastian Köcher authored
      We need to make sure to drop the import-statement child span before the
      parent span is dropped.
      85932d15
  20. 02 Jan, 2021 1 commit
  21. 18 Dec, 2020 3 commits
  22. 17 Dec, 2020 2 commits
  23. 11 Dec, 2020 1 commit
  24. 07 Dec, 2020 1 commit
  25. 04 Dec, 2020 2 commits
    • Sergey Pepyakin's avatar
    • Peter Goodspeed-Niklaus's avatar
      do not store backed candidates in the provisioner (#1909) · 113ae827
      Peter Goodspeed-Niklaus authored
      * guide: non-semantic changes
      
      * guide: update per the issue description
      
      * GetBackedCandidates operates on multiple hashes now
      
      * GetBackedCandidates still needs a relay parent
      
      * implement changes specified in guide
      
      * distinguish between various occasions for canceled oneshots
      
      * add tracing info to getbackedcandidates
      
      * REVERT ME: add tracing messages for GetBackedCandidates
      
      Note that these messages are only sometimes actually passed on to the
      candidate backing subsystem, with the consequence that it is
      unexpectedly frequent that the provisioner fails to create its
      provisionable data.
      
      * REVERT ME: more tracing logging
      
      * REVERT ME: log when CandidateBackingJob receives any message at all
      
      * REVERT ME: log when send_msg sends a message to a job
      
      * fix candidate-backing tests
      
      * streamline GetBackedCandidates
      
      This uses table.attested_candidate instead of table.get_candidate, because
      it's not obvious how to get a BackedCandidate from just a
      CommittedCandidateReceipt.
      
      * REVERT ME: more logging tracing job lifespans
      
      * promote warning about job premature demise
      
      * don't terminate CandiateBackingJob::run_loop in event of failure to process message
      
      * Revert "REVERT ME: more logging tracing job lifespans"
      
      This reverts commit 7365f2fb.
      
      * Revert "REVERT ME: log when send_msg sends a message to a job"
      
      This reverts commit 58e46aad.
      
      * Revert "REVERT ME: log when CandidateBackingJob receives any message at all"
      
      This reverts commit 0d6f3841.
      
      * Revert "REVERT ME: more tracing logging"
      
      This reverts commit 675fd262.
      
      * Revert "REVERT ME: add tracing messages for GetBackedCandidates"
      
      This reverts commit e09e1564.
      
      * formatting
      
      * add logging message to CandidateBackingJob::run_loop start
      
      * REVERT ME: add tracing to candidate-backing job creation
      
      * run candidatebacking loop even if no assignment
      
      * use unique error variants for each canceled oneshot
      
      * Revert "REVERT ME: add tracing to candidate-backing job creation"
      
      This reverts commit 8ce5f4f0.
      
      * try_runtime_api more to reduce silent exits
      
      * add sanity check that returned backed candidates preserve ordering
      
      * remove redundant err attribute
      113ae827
  26. 02 Dec, 2020 1 commit
  27. 30 Nov, 2020 2 commits
    • asynchronous rob's avatar
      Move candidate validation to the background (#2028) · 1e0c9910
      asynchronous rob authored
      * refactor some functions to not rely on `self`
      
      * factor out common elements of seconding and attesting
      
      * Add Spawn to backing FromJob
      
      * do candidate validation in background
      
      * tests
      
      * address grumbles
      1e0c9910
    • Bastian Köcher's avatar
      Simplify subsystem jobs (#2037) · 1fbf09ac
      Bastian Köcher authored
      * Simplify subsystem jobs
      
      This pr simplifies the subsystem jobs interface. Instead of requiring an
      extra message that is used to signal that a job should be ended, a job
      now ends when the receiver returns `None`. Besides that it changes the
      interface to enforce that messages to a job provide a relay parent.
      
      * Drop ToJobTrait
      
      * Remove FromJob
      
      We always convert this message to FromJobCommand anyway.
      1fbf09ac
  28. 28 Nov, 2020 1 commit
  29. 27 Nov, 2020 1 commit
    • asynchronous rob's avatar
      Move erasure root out of candidate commitments and into descriptor (#2010) · fff46359
      asynchronous rob authored
      
      
      * guide: move erasure-root to candidate descriptor
      
      * primitives: move erasure root to descriptor
      
      * guide: unify candidate commitments and validation outputs
      
      * primitives: unify validation outputs and candidate commitments
      
      * parachains-runtime: fix fallout
      
      * runtimes: fix fallout
      
      * collation generation: fix fallout
      
      * fix stray reference in primitives
      
      * fix fallout in node-primitives
      
      * fix remaining fallout in collation generation
      
      * fix fallout in candidate validation
      
      * fix fallout in runtime API subsystem
      
      * fix fallout in subsystem messages
      
      * fix fallout in candidate backing
      
      * fix fallout in availability distribution
      
      * don't clone
      
      * clone
      
      Co-authored-by: Sergey Pepyakin's avatarSergei Shulepov <sergei@parity.io>
      fff46359
  30. 24 Nov, 2020 1 commit