1. 04 Jan, 2021 1 commit
    • 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
  2. 21 Dec, 2020 1 commit
    • Sergey Pepyakin's avatar
      Do not use rely on the block initialization when calling runtime APIs (#2123) · e21f5cec
      Sergey Pepyakin authored
      
      
      * Don't initialize block when calling runtime APIs
      
      * Adapt check_validation_outputs
      
      We split the code path for the inclusion and for the commitments checking.
      
      * Slap #[skip_initialize_block] on safe runtime APIs
      
      That is, those that should not be affected by this attribute
      
      * Make `Scheduled` not ephemeral
      
      So that it is persisted in the storage and ready to be inspected
      by the runtime APIs. This is in contrast to what was before, where we
      would remove the storage entry and then rely on the scheduling performed
      by `on_initialize` again.
      
      * Add a big fat comment
      
      * Typos
      
      Co-authored-by: asynchronous rob's avatarRobert Habermeier <rphmeier@gmail.com>
      
      * Move session change to the end of the current block
      
      Previously, it was the beginning of the next block. This allows us to
      put #[skip_initialize_block]
      
      * Update tests
      
      * Fix a test in paras registrar
      
      Also refactor it a bit so the next time there are more chances this kind
      of issue is diagnosed quicker.
      
      * Add for_runtime_api to inclusion's check_validation_outputs
      
      Co-authored-by: asynchronous rob's avatarRobert Habermeier <rphmeier@gmail.com>
      e21f5cec
  3. 18 Dec, 2020 1 commit
    • asynchronous rob's avatar
      Add candidate info to OccupiedCore (#2134) · af0aff96
      asynchronous rob authored
      * guide: add candidate information to OccupiedCore
      
      * add descriptor and hash to occupied core type
      
      * guide: add candidate hash to inclusion
      
      * runtime: return candidate info in core state
      
      * bitfield signing: stop querying runtime as much
      
      * minimize going to runtime in availability distribution
      
      * fix availability distribution tests
      
      * guide: remove para ID from Occupied core
      
      * get all crates compiling
      af0aff96
  4. 08 Dec, 2020 1 commit
  5. 30 Nov, 2020 1 commit
  6. 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
  7. 26 Nov, 2020 1 commit
    • Andronik Ordian's avatar
      past-session validator discovery APIs (#2009) · 734eda87
      Andronik Ordian authored
      
      
      * guide: fix formatting for SessionInfo module
      
      * primitives: SessionInfo type
      
      * punt on approval keys
      
      * ah, revert the type alias
      
      * session info runtime module skeleton
      
      * update the guide
      
      * runtime/configuration: sync with the guide
      
      * runtime/configuration: setters for newly added fields
      
      * runtime/configuration: set codec indexes
      
      * runtime/configuration: update test
      
      * primitives: fix SessionInfo definition
      
      * runtime/session_info: initial impl
      
      * runtime/session_info: use initializer for session handling (wip)
      
      * runtime/session_info: mock authority discovery trait
      
      * guide: update the initializer's order
      
      * runtime/session_info: tests skeleton
      
      * runtime/session_info: store n_delay_tranches in Configuration
      
      * runtime/session_info: punt on approval keys
      
      * runtime/session_info: add some basic tests
      
      * Update primitives/src/v1.rs
      
      * small fixes
      
      * remove codec index annotation on structs
      
      * fix off-by-one error
      
      * validator_discovery: accept a session index
      
      * runtime: replace validator_discovery api with session_info
      
      * Update runtime/parachains/src/session_info.rs
      
      Co-authored-by: Sergey Pepyakin's avatarSergei Shulepov <sergei@parity.io>
      
      * runtime/session_info: add a comment about missing entries
      
      * runtime/session_info: define the keys
      
      * util: expose connect_to_past_session_validators
      
      * util: allow session_info requests for jobs
      
      * runtime-api: add mock test for session_info
      
      * collator-protocol: add session_index to test state
      
      * util: fix error message for runtime error
      
      * fix compilation
      
      * fix tests after merge with master
      
      Co-authored-by: Sergey Pepyakin's avatarSergei Shulepov <sergei@parity.io>
      734eda87
  8. 16 Nov, 2020 1 commit
    • Sergey Pepyakin's avatar
      Breakdown the Router module on Dmp, Ump, Hrmp modules (#1939) · c7708818
      Sergey Pepyakin authored
      
      
      * Guide: Split router module in guide.
      
      Now we have: DMP, UMP and Router module.
      
      * Add a glossary entry for what used to be called Router
      
      * Extract DMP
      
      * Extract UMP
      
      * Extract HRMP
      
      * Switch over to new modules
      
      * Router: goodbye sweet prince
      
      * Link to messaging overview for details.
      
      * Update missed rococo and test runtimes.
      
      * Commit destroyed by rebase changes
      
      * Don't deprecate Router but rather make it a meta-project
      
      Co-authored-by: default avatarBernhard Schuster <bernhard@ahoi.io>
      
      * Fix typos suggestion
      
      Co-authored-by: default avatarBernhard Schuster <bernhard@ahoi.io>
      
      * Fix repetition in the impl guide
      
      * Clarify that processed_downward_messages has the u32 type
      
      * Remove the router subdir.
      
      * Deabbreviate DMP,UMP,HRMP
      
      Co-authored-by: default avatarBernhard Schuster <bernhard@ahoi.io>
      c7708818
  9. 11 Nov, 2020 1 commit
  10. 06 Nov, 2020 1 commit
    • Sergey Pepyakin's avatar
      Implement HRMP (#1900) · 73553661
      Sergey Pepyakin authored
      * HRMP: Update the impl guide
      
      * HRMP: Incorporate the channel notifications into the guide
      
      * HRMP: Renaming in the impl guide
      
      * HRMP: Constrain the maximum number of HRMP messages per candidate
      
      This commit addresses the HRMP part of https://github.com/paritytech/polkadot/issues/1869
      
      
      
      * XCM: Introduce HRMP related message types
      
      * HRMP: Data structures and plumbing
      
      * HRMP: Configuration
      
      * HRMP: Data layout
      
      * HRMP: Acceptance & Enactment
      
      * HRMP: Test base logic
      
      * Update adder collator
      
      * HRMP: Runtime API for accessing inbound messages
      
      Also, removing some redundant fully-qualified names.
      
      * HRMP: Add diagnostic logging in acceptance criteria
      
      * HRMP: Additional tests
      
      * Self-review fixes
      
      * save test refactorings for the next time
      
      * Missed a return statement.
      
      * a formatting blip
      
      * Add missing logic for appending HRMP digests
      
      * Remove the channel contents vectors which became empty
      
      * Tighten HRMP channel digests invariants.
      
      * Apply suggestions from code review
      
      Co-authored-by: default avatarPeter Goodspeed-Niklaus <coriolinus@users.noreply.github.com>
      
      * Remove a note about sorting for channel id
      
      * Add missing rustdocs to the configuration
      
      * Clarify and update the invariant for HrmpChannelDigests
      
      * Make the onboarding invariant less sloppy
      
      Namely, introduce `Paras::is_valid_para` (in fact, it already is present
      in the implementation) and hook up the invariant to that.
      
      Note that this says "within a session" because I don't want to make it
      super strict on the session boundary. The logic on the session boundary
      should be extremely careful.
      
      * Make `CandidateCheckContext` use T::BlockNumber for hrmp_watermark
      
      Co-authored-by: default avatarPeter Goodspeed-Niklaus <coriolinus@users.noreply.github.com>
      73553661
  11. 03 Nov, 2020 1 commit
  12. 02 Nov, 2020 1 commit
  13. 28 Oct, 2020 1 commit
    • Sergey Pepyakin's avatar
      Downward Message Processing implementation (#1859) · ed759c75
      Sergey Pepyakin authored
      * DMP: data structures and plumbing
      
      * DMP: Implement DMP logic in the router module
      
      DMP: Integrate DMP parts into the inclusion module
      
      * DMP: Introduce the max size limit for the size of a downward message
      
      * DMP: Runtime API for accessing inbound messages
      
      * OCD
      
      Small clean ups
      
      * DMP: fix the naming of the error
      
      * DMP: add caution about a non-existent recipient
      ed759c75
  14. 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
  15. 06 Oct, 2020 1 commit
    • 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
  16. 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
  17. 04 Aug, 2020 1 commit
  18. 31 Jul, 2020 1 commit
    • Fedor Sakharov's avatar
      Parachains-runtime (#1505) · eca01a8c
      Fedor Sakharov authored
      * Initial commit
      
      * v0 to v1 primitives and remove attestations
      
      * Review fixes
      
      * implement candidate_events
      
      * remove dead code
      eca01a8c
  19. 23 Jul, 2020 1 commit
    • asynchronous rob's avatar
      Include a reference to the validation data in the candidate descriptor (#1442) · cce0a950
      asynchronous rob authored
      * rename GlobalValidationSchedule to GlobalValidationData
      
      * guide: update candidate descriptor to contain validation data hash
      
      * guide: add note in inclusion module about checking validation data hash
      
      * primitives: update CandidateDescriptor to contain new hash
      
      * fix payload computation
      
      * add helpers for computing validation data to runtime modules
      
      * guide: note routines
      
      * inclusion: check validation data hash and fix local_validation_data bug
      
      * add a case to candidate_checks and improve that test substantially
      
      * bump versions
      
      * address review comments
      
      * add a test for including code upgrade
      
      * bump kusama version
      
      * bump westend & polkadot versions
      cce0a950
  20. 18 Jul, 2020 1 commit
    • asynchronous rob's avatar
      Implement Runtime APIs (#1411) · 5d7142f1
      asynchronous rob authored
      * create a README on Runtime APIs
      
      * add ParaId type
      
      * write up runtime APIs
      
      * more preamble
      
      * rename
      
      * rejig runtime APIs
      
      * add occupied_since to `BlockNumber`
      
      * skeleton crate for runtime API subsystem
      
      * improve group_for_core
      
      * improve docs on availability cores runtime API
      
      * guide: freed -> free
      
      * add primitives for runtime APIs
      
      * create a v1 ParachainHost API trait
      
      * guide: make validation code return `Option`al.
      
      * skeleton runtime API helpers
      
      * make parachain-host runtime-generic
      
      * skeleton for most runtime API implementation functions
      
      * guide: add runtime API helper methods
      
      * implement new helpers of the inclusion module
      
      * guide: remove retries check, as it is unneeded
      
      * implement helpers for scheduler module for Runtime APIs
      
      * clean up `validator_groups` implementation
      
      * implement next_rotation_at and last_rotation_at
      
      * guide: more helpers on GroupRotationInfo
      
      * almost finish implementing runtime APIs
      
      * add explicit block parameter to runtime API fns
      
      * guide: generalize number parameter
      
      * guide: add group_responsible to occupied-core
      
      * update primitives due to guide changes
      
      * finishing touches on runtime API implementation; squash warnings
      
      * break out runtime API impl to separate file
      
      * add tests for next_up logic
      
      * test group rotation info
      
      * point to filed TODO
      
      * remove unused TODO [now]
      
      * indentation
      
      * guide: para -> para_id
      
      * rename para field to para_id for core meta
      
      * remove reference to outdated AvailabilityCores type
      
      * add an event in `inclusion` for candidates being included or timing out
      
      * guide: candidate events
      
      * guide: adjust language
      
      * Candidate events type from guide and adjust inclusion event
      
      * implement `candidate_events` runtime API
      
      * fix runtime test compilation
      
      * max -> min
      
      * fix typos
      
      * guide: add `RuntimeAPIRequest::CandidateEvents`
      5d7142f1