• 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