1. 02 Aug, 2021 1 commit
  2. 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...
      8a6af441
  3. 09 Jul, 2021 1 commit
    • asynchronous rob's avatar
      Wire up candidate backing, approval-voting to disputes (#3348) · 567cfb99
      asynchronous rob authored
      * add a from_backing_statement to SignedDisputeStatement
      
      * inform dispute coordinator of all backing statements
      
      * add dispute coordinator message to backing tests
      
      * send positive dispute statement with every approval
      
      * issue disputes when encountering invalid candidates.
      
      * try to fix flaky test for CI (passed locally)
      
      * guide: keep track of concluded-positive disputes until pruned
      
      * guide: block implications
      
      * guide: new dispute inherent flow
      
      * mostly implement recency changes for dispute coordinator
      
      * add a clock to dispute coordinator
      
      * adjust DB tests
      
      * fix and add new dispute coordinator tests
      
      * provisioner: select disputes
      
      * import all validators' approvals
      
      * address nit: refactor backing statement submission
      
      * gracefully handle disconnected dispute coordinator
      
      * remove `review` comment
      
      * fix up old_tests
      
      * fix approval-voting compilation
      
      * fix backing compilation
      
      * use known-leaves in WaitForActivation
      
      * follow-up test fixing
      
      * add back allow(dead_code)
      567cfb99
  4. 23 Jun, 2021 1 commit
  5. 19 Jun, 2021 1 commit
  6. 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
  7. 17 Jun, 2021 1 commit
  8. 09 Apr, 2021 1 commit
  9. 01 Apr, 2021 4 commits
    • 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
    • Andronik Ordian's avatar
      gossip: do not try to connect if we are not validators (#2786) · 05cd0d24
      Andronik Ordian authored
      * gossip: do not issue a connection request if we are not a validator
      
      * guide updates
      
      * use all relevant authorities when issuing a request
      
      * use AuthorityDiscoveryApi instead
      
      * update comments to the status quo
      05cd0d24
    • asynchronous rob's avatar
      Avoid querying the local validator in availability recovery (#2792) · 5b5bf207
      asynchronous rob authored
      * guide: don't request availability data from ourselves
      
      * add QueryAllChunks message
      
      * implement QueryAllChunks
      
      * remove unused relay_parent from StoreChunk
      
      * test QueryAllChunks
      
      * fast paths make short roads
      
      * test early exit behavior
      5b5bf207
    • asynchronous rob's avatar
      Node-side subsystems for Disputes (#2566) · 55c9e96d
      asynchronous rob authored
      * dispute subsystem files
      
      * rename
      
      * fix linkcheck
      
      * flesh out section README
      
      * coordinator schema
      
      * DisputeCoordinatorMessage
      
      * stub & coordinator protocol
      
      * dispute coordinator
      
      * add some more message fields
      
      * move links to bottom
      
      * dispute participation
      
      * Cleen It Up !
      
      * runtime: store candidate receipts in dispute state
      
      yeah, this is a little heavier. why are you reading this?
      
      * Revert "runtime: store candidate receipts in dispute state"
      
      This reverts commit 51c10bfd.
      
      * add dispute availability statement type and prepare for availability
      
      * add 'spam slots' to disputes runtmie
      
      * return Spam Slots info from runtime
      
      * rework `ImportStatement` to `ImportStatements`
      
      * some more methods for dispute coordinator
      
      * candidates-included runtime API
      
      * algo for providing disputes to runtime.
      
      * handle signing with coordinator
      
      * dispute coordinator chain ops
      
      * remove dead file
      
      * remove keystore from dispute participation
      
      * adjust ApprovedAncestor to return the necssary data
      
      * discuss how approved ancestor and determine undisputed chain are used together
      
      * add TODO
      
      * initiate disputes from approval voting
      
      * route statements from candidate backing and approval voting
      
      * fix guide build
      55c9e96d
  10. 24 Mar, 2021 1 commit
    • 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
  11. 17 Feb, 2021 2 commits
  12. 16 Feb, 2021 1 commit
    • asynchronous rob's avatar
      Disputes High-level rewrite & Disputes runtime (#2424) · f877b041
      asynchronous rob authored
      * REVERT: comment out graphviz
      
      * rewrite most of protocol-disputes
      
      * write about conclusion and  chain selection
      
      * tie back in overview
      
      * basic disputes module
      
      * guide: InclusionInherent -> ParaInherent
      
      * language
      
      * add ParaInherentData type
      
      * plug parainherentdata into provisioner
      
      * provide_multi_dispute
      
      * tweak
      
      * inclusion pipeline logic for disputes
      
      * be clearer about signature checking
      
      * reject backing of disputed blocks
      
      * some type rejigging
      
      * known-disputes runtime API
      
      * wire up inclusion
      
      * Revert "REVERT: comment out graphviz"
      
      This reverts commit 66203e36.
      
      * timeouts
      
      * include in initialization order
      
      * address grumbles
      f877b041
  13. 06 Feb, 2021 1 commit
  14. 14 Jan, 2021 1 commit
    • Robert Klotzner's avatar
      Some refactoring in network-bridge in the course of dealing with #2177 (#2263) · 490cbd72
      Robert Klotzner authored
      * More doc fixes.
      
      * Minor refactorings in the process of #2177
      
      By having everything peer set related depend directly on the enum the
      code becomes more clear and it is also straight forward to add more
      peersets/protocols as the compiler will complain if you forget to
      implement parts of it.
      
      * Add peer set infos on startup properly
      
      For feature real_overseer.
      
      + Fixes from review. Thanks @coriolinus and @ordian
      
      !
      
      * More structure in network-bridge
      
      Some changes, which would have helped me in groking the code faster.
      
      Entry points/public types more to the top. Factored out implementation
      in their own files, to clear up the top-level view.
      
      * Get rid of local ProtocolName type definition.
      
      Does not add much at this level.
      
      * Fix tests + import cleanup.
      
      * Make spaces tabs.
      
      * Clarify what correct parameters to send_message are
      
      * Be more less vague in docs of send_message.
      
      * Apply suggestions from code review
      
      Extend copyright on new files to 2021 as well.
      
      Co-authored-by: Andronik Ordian's avatarAndronik Ordian <write@reusable.software>
      
      Co-authored-by: Andronik Ordian's avatarAndronik Ordian <write@reusable.software>
      490cbd72
  15. 11 Jan, 2021 1 commit
  16. 07 Jan, 2021 1 commit
  17. 17 Dec, 2020 1 commit
    • Andronik Ordian's avatar
      refactor View to include finalized_number (#2128) · c429e15c
      Andronik Ordian authored
      * refactor View to include finalized_number
      
      * guide: update the NetworkBridge on BlockFinalized
      
      * av-store: fix the tests
      
      * actually fix tests
      
      * grumbles
      
      * ignore macro doctest
      
      * use Hash::repeat_bytes more consistently
      
      * broadcast empty leaves updates as well
      
      * fix issuing view updates on empty leaves updates
      c429e15c
  18. 25 Nov, 2020 1 commit
  19. 24 Oct, 2020 1 commit
    • Sergey Pepyakin's avatar
      Runtime API for checking validation outputs (#1842) · 4a17a2bc
      Sergey Pepyakin authored
      * annoying whitespaces
      
      * update guide
      
      Add `CheckValidationOutputs` runtime api and also change the
      candidate-validation stuff
      
      * promote ValidationOutputs to global primitives
      
      i.e. move it from node specific primitives to global v1 primitives. This
      will be needed when we share it later in the runtime inclusion module
      
      * refactor acceptance checks in the inclusion module
      
      factor out the common code to share it during the block inclusion and
      for the forthcoming CheckValidationOutputs runtime api.
      
      Also note that the acceptance criteria was updated to incorporate checks
      that exist now in candidate-validation
      
      * plumb the runtime api outside
      
      * extract validation_data from ValidationOutputs
      
      * use runtime-api to check validation outputs
      
      apart from that refactor, update docs and tidy a bit
      
      * Update the maxium code size
      
      This is to fix a test that performs an upgrade.
      4a17a2bc
  20. 06 Oct, 2020 2 commits
    • Andronik Ordian's avatar
      chain-api subsystem: implement BlockHeader messsage (#1778) · 2ea7de99
      Andronik Ordian authored
      * chain-api subsystem: implement BlockHeader messsage
      
      * update the guide
      2ea7de99
    • Andronik Ordian's avatar
      NetworkBridge: validator (authorities) discovery api (#1699) · b84f3c03
      Andronik Ordian authored
      
      
      * stupid, but it compiles
      
      * redo
      
      * cleanup
      
      * add ValidatorDiscovery to msgs
      
      * sketch network bridge code
      
      * ConnectToAuthorities instead of validators
      
      * more stuff
      
      * cleanup
      
      * more stuff
      
      * complete ConnectToAuthoritiesState
      
      * Update node/network/bridge/src/lib.rs
      
      Co-authored-by: default avatarPeter Goodspeed-Niklaus <coriolinus@users.noreply.github.com>
      
      * Collator protocol subsystem (#1659)
      
      * WIP
      
      * The initial implementation of the collator side.
      
      * Improve comments
      
      * Multiple collation requests
      
      * Add more tests and comments to validator side
      
      * Add comments, remove dead code
      
      * Apply suggestions from code review
      
      Co-authored-by: default avatarPeter Goodspeed-Niklaus <coriolinus@users.noreply.github.com>
      
      * Fix build after suggested changes
      
      * Also connect to the next validator group
      
      * Remove a Future impl and move TimeoutExt to util
      
      * Minor nits
      
      * Fix build
      
      * Change FetchCollations back to FetchCollation
      
      * Try this
      
      * Final fixes
      
      * Fix build
      
      Co-authored-by: default avatarPeter Goodspeed-Niklaus <coriolinus@users.noreply.github.com>
      
      * handle multiple in-flight connection requests
      
      * handle cancelled requests
      
      * Update node/core/runtime-api/src/lib.rs
      
      Co-authored-by: default avatarBernhard Schuster <bernhard@ahoi.io>
      
      * redo it again
      
      * more stuff
      
      * redo it again
      
      * update comments
      
      * workaround Future is not Send
      
      * fix trailing spaces
      
      * clarify comments
      
      * bridge: fix compilation in tests
      
      * update more comments
      
      * small fixes
      
      * port collator protocol to new validator discovery api
      
      * collator tests compile
      
      * collator tests pass
      
      * do not revoke a request when the stream receiver is closed
      
      * make revoking opt-in
      
      * fix is_fulfilled
      
      * handle request revokation in collator
      
      * tests
      
      * wait for validator connections asyncronously
      
      * fix compilation
      
      * relabel my todos
      
      * apply Fedor's patch
      
      * resolve reconnection TODO
      
      * resolve revoking TODO
      
      * resolve channel capacity TODO
      
      * resolve peer cloning TODO
      
      * resolve peer disconnected TODO
      
      * resolve PeerSet TODO
      
      * wip tests
      
      * more tests
      
      * resolve Arc TODO
      
      * rename pending to non_revoked
      
      * one more test
      
      * extract utility function into util crate
      
      * fix compilation in tests
      
      * Apply suggestions from code review
      
      Co-authored-by: Fedor Sakharov's avatarFedor Sakharov <fedor.sakharov@gmail.com>
      
      * revert pin_project removal
      
      * fix while let loop
      
      * Revert "revert pin_project removal"
      
      This reverts commit ae7f529d
      
      .
      
      * fix compilation
      
      * Update node/subsystem/src/messages.rs
      
      * docs on pub items
      
      * guide updates
      
      * remove a TODO
      
      * small guide update
      
      * fix a typo
      
      * link to the issue
      
      * validator discovery: on_request docs
      
      Co-authored-by: default avatarPeter Goodspeed-Niklaus <coriolinus@users.noreply.github.com>
      Co-authored-by: Fedor Sakharov's avatarFedor Sakharov <fedor.sakharov@gmail.com>
      Co-authored-by: default avatarBernhard Schuster <bernhard@ahoi.io>
      b84f3c03
  21. 31 Aug, 2020 1 commit
  22. 18 Aug, 2020 1 commit
    • asynchronous rob's avatar
      Implement validation data refactor (#1585) · 8c881e45
      asynchronous rob authored
      
      
      * update primitives
      
      * correct parent_head field
      
      * make hrmp field pub
      
      * refactor validation data: runtime
      
      * refactor validation data: messages
      
      * add arguments to full_validation_data runtime API
      
      * port runtime API
      
      * mostly port over candidate validation
      
      * remove some parameters from ValidationParams
      
      * guide: update candidate validation
      
      * update candidate outputs
      
      * update ValidationOutputs in primitives
      
      * port over candidate validation
      
      * add a new test for no-transient behavior
      
      * update util runtime API wrappers
      
      * candidate backing
      
      * fix missing imports
      
      * change some fields of validation data around
      
      * runtime API impl
      
      * update candidate validation
      
      * fix backing tests
      
      * grumbles from review
      
      * fix av-store tests
      
      * fix some more crates
      
      * fix provisioner tests
      
      * fix availability distribution tests
      
      * port collation-generation to new validation data
      
      * fix overseer tests
      
      * Update roadmap/implementers-guide/src/node/utility/candidate-validation.md
      
      Co-authored-by: default avatarPeter Goodspeed-Niklaus <coriolinus@users.noreply.github.com>
      
      Co-authored-by: default avatarPeter Goodspeed-Niklaus <coriolinus@users.noreply.github.com>
      8c881e45
  23. 13 Aug, 2020 1 commit
  24. 06 Aug, 2020 1 commit
    • Peter Goodspeed-Niklaus's avatar
      implement provisioner (#1473) · a39d8803
      Peter Goodspeed-Niklaus authored
      * sketch out provisioner basics
      
      * handle provisionable data
      
      * stub out select_inherent_data
      
      * split runtime APIs into sub-chapters to improve linkability
      
      * explain SignedAvailabilityBitfield semantics
      
      * add internal link to further documentation
      
      * some more work figuring out how the provisioner can do its thing
      
      * fix broken link
      
      * don't import enum variants where it's one layer deep
      
      * make request_availability_cores a free fn in util
      
      * document more precisely what should happen on block production
      
      * finish first-draft implementation of provisioner
      
      * start working on the full and proper backed candidate selection rule
      
      * Pass number of block under construction via RequestInherentData
      
      * Revert "Pass number of block under construction via RequestInherentData"
      
      This reverts commit 850fe62c.
      
      That initially looked like the better approach--it spent the time
      budget for fetching the block number in the proposer, instead of
      the provisioner, and that felt more appropriate--but it turns out
      not to be obvious how to get the block number of the block under
      construction from within the proposer. The Chain API may be less
      ideal, but it should be easier to implement.
      
      * wip: get the block under production from the Chain API
      
      * add ChainApiMessage to AllMessages
      
      * don't break the run loop if a provisionable data channel closes
      
      * clone only those backed candidates which are coherent
      
      * propagate chain_api subsystem through various locations
      
      * add delegated_subsystem! macro to ease delegating subsystems
      
      Unfortunately, it doesn't work right:
      
      ```
      error[E0446]: private type `CandidateBackingJob` in public interface
         --> node/core/backing/src/lib.rs:775:1
          |
      86  | struct CandidateBackingJob {
          | - `CandidateBackingJob` declared as private
      ...
      775 | delegated_subsystem!(CandidateBackingJob as CandidateBackingSubsystem);
          | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ can't leak private type
      ```
      
      I'm not sure precisely what's going wrong, here; I suspect the problem is
      the use of `$job as JobTrait>::RunArgs` and `::ToJob`; the failure would be
      that it's not reifying the types to verify that the actual types are public,
      but instead referring to them via `CandidateBackingJob`, which is in fact private;
      that privacy is the point.
      
      Going to see if I can generic my way out of this, but we may be headed for a
      quick revert here.
      
      * fix delegated_subsystem
      
      The invocation is a bit more verbose than I'd prefer, but it's also
      more explicit about what types need to be public. I'll take it as a win.
      
      * add provisioning subsystem; reduce public interface of provisioner
      
      * deny missing docs in provisioner
      
      * refactor core selection per code review suggestion
      
      This is twice as much code when measured by line, but IMO it is
      in fact somewhat clearer to read, so overall a win.
      
      Also adds an improved rule for selecting availability bitfields,
      which (unlike the previous implementation) guarantees that the
      appropriate postconditions hold there.
      
      * fix bad merge double-declaration
      
      * update guide with (hopefully) complete provisioner candidate selection procedure
      
      * clarify candidate selection algorithm
      
      * Revert "clarify candidate selection algorithm"
      
      This reverts commit c68a02ac.
      
      * clarify candidate selection algorithm
      
      * update provisioner to implement candidate selection per the guide
      
      * add test that no more than one bitfield is selected per validator
      
      * add test that each selected bitfield corresponds to an occupied core
      
      * add test that more set bits win conflicts
      
      * add macro for specializing runtime requests; specailize all runtime requests
      
      * add tests harness for select_candidates tests
      
      * add first real select_candidates test, fix test_harness
      
      * add mock overseer and test that success is possible
      
      * add test that the candidate selection algorithm picks the right ones
      
      * make candidate selection test somewhat more stringent
      a39d8803
  25. 05 Aug, 2020 1 commit
  26. 31 Jul, 2020 2 commits
    • Andronik Ordian's avatar
      Chain API subsystem (#1498) · d4022633
      Andronik Ordian authored
      * chain-api subsystem skeleton
      
      * chain-api subsystem: draft impl
      
      * chain-api subsystem: mock testclient
      
      * chain-api subsystem: impl HeaderBacked for TestClient
      
      * chain-api subsystem: impl basic tests
      
      * chain-api subsystem: tiny guide
      
      * chain-api subsystem: rename ChainApiRequestMessage to ChainApiMessage
      
      * chain-api subsystem: add the page to the ToC
      
      * chain-api subsystem: proper error type
      
      * chain-api subsystem: impl ancestors request
      
      * chain-api subsystem: tests for ancestors request
      
      * guide: fix ancestor return type
      
      * runtime-api subsystem: remove unused dep
      
      * fix fmt
      
      * fix outdated comment
      
      * chain-api subsystem: s/format/to_string
      
      * lower-case subsystem names
      
      * chain-api subsystem: resolve Finalized todo
      
      * chain-api subsystem: remove TODO
      
      * extract request errors into a module
      
      * remove caching TODO
      
      * fix imports
      d4022633
    • asynchronous rob's avatar
      guide: collator networking & subsystems (#1452) · 0bcb6f9d
      asynchronous rob authored
      * Do a small write-up on collation-generation
      
      * preamble to collator protocol
      
      * notes on protocol
      
      * collation-generation: point to collator protocol
      
      * fix missing bracket
      
      * expand on collator protocol wire protocol
      
      * add a couple more sentences
      
      * expand on requests some more
      
      * go higher level
      
      * network bridge: note peerset
      
      * note peer-set = validation for protocols
      
      * add `ConnectToValidators` message
      
      * use ConnectToValidators in collator protocol
      
      * typo
      
      * remove references to sentry nodes
      0bcb6f9d
  27. 30 Jul, 2020 1 commit
    • asynchronous rob's avatar
      Candidate Validation Subsystem (#1432) · cdb5c408
      asynchronous rob authored
      * skeleton for candidate-validation
      
      * add to workspace
      
      * implement candidate validation logic
      
      * guide: note occupied-core assumption for candidate validation
      
      * adjust message doc
      
      * wire together `run` asynchronously
      
      * add a Subsystem implementation
      
      * clean up a couple warnings
      
      * fix compilation errors due to merge
      
      * improve candidate-validation.md
      
      * remove old reference to subsystem-test helpers crate
      
      * update Cargo.lock
      
      * add a couple new Runtime API methods
      
      * add a candidate validation message
      
      * fetch validation data from the chain state
      
      * some tests for assumption checking
      
      * make spawn_validate_exhaustive mockable
      
      * more tests on the error handling side
      
      * fix all other grumbles except for wasm validation API change
      
      * wrap a SpawnNamed in candidate-validation
      
      * warn
      
      * amend guide
      
      * squanch warning
      
      * remove duplicate after merge
      cdb5c408
  28. 27 Jul, 2020 1 commit
  29. 22 Jul, 2020 1 commit
  30. 10 Jul, 2020 1 commit
  31. 07 Jul, 2020 1 commit