Skip to content
  1. Nov 25, 2022
  2. Nov 22, 2022
  3. Nov 21, 2022
    • Adrian Catangiu's avatar
      client/beefy: persist voter state (#12712) · 3e7a2778
      Adrian Catangiu authored
      
      
      * client/beefy: prepare worker for persisting state
      
      * client/beefy: persist voter state
      
      * client/beefy: initialize persistent state
      
      * client/beefy: try to vote from the very beginning
      
      Now that voter is initialized from persistent state, it makes
      sense that it can attempt voting right away. This also helps
      the genesis case when we consider block `One` as mandatory.
      
      * client/beefy: add tests for voter state db
      * client/beefy: persist voter state as soon as initialized
      * client/beefy: make sure min-block-delta is at least 1
      * client/beefy: persist state after voting
      
      Persist state after handling self vote to avoid double voting in case
      of voter restarts.
      
      * client/beefy: persist state after handling mandatory block vote
      
      For mandatory blocks we want to make sure we're not losing votes
      in case of crashes or restarts, since voter will not make further
      progress without finalizing them.
      
      * frame/beefy: use GENESIS_AUTHORITY_SET_ID on pallet genesis
      
      * client/beefy: initialize voter at either genesis or last finalized
      To guarantee unbroken chain of mandatory blocks justifications, voter
      will always resume from either last BEEFY-justified block or
      `pallet-beefy` genesis, whichever is more recent.
      
      Initialization walks back the chain from latest GRANDPA finalized
      block looking for one of the above. Along the way, it also records
      and enqueues for processing any BEEFY mandatory blocks that have
      been already GRANDPA finalized but not BEEFY finalized.
      
      * client/beefy: decouple voter init from aux db state load
      * client/beefy: fix voter init tests
      * remove debug prints
      * gadget future must be type ()
      * fix init from last justification
      
      Signed-off-by: default avatarAdrian Catangiu <[email protected]>
      3e7a2778
  4. Nov 18, 2022
  5. Nov 16, 2022
  6. Nov 15, 2022
  7. Nov 11, 2022
  8. Nov 10, 2022
  9. Nov 09, 2022
  10. Nov 08, 2022
    • cheme's avatar
      Remove partial key size limit from trie codec (#12566) · 8b2ca711
      cheme authored
      * remove size limit from trie codec
      
      * test previous upper limit is not enforced anymore
      
      * fmt
      
      * restore test
      8b2ca711
    • Bastian Köcher's avatar
      `payment_queryInfo`: Make it work with `WeightV2` (#12633) · ec6a428a
      Bastian Köcher authored
      * `payment_queryInfo`: Make it work with `WeighV2`
      
      The runtime api for querying the payment info depends on the `Weight` type and broke for old
      runtimes that still use the `WeighV1`. This pull requests fixes this by:
      
      1. Bumping the version of the runtime api.
      2. Making the node side code use the correct runtime api function depending on the version of the
      runtime api.
      3. Make the RPC always return `WeighV1`.
      
      Users of the api should switch to `state_call` and decide based on the version of the runtime api
      which `Weight` type is being returned.
      
      * Fix tests
      
      * Review comment
      ec6a428a
    • Bastian Köcher's avatar
      `sp_trie::Recorder`: Fix recording the same key for different tries (#12636) · 8fcc6f2e
      Bastian Köcher authored
      With `StateVersion::V1` values over a certain size are not inlined and being put into the backend
      with their own hash. When accessing a value in the trie with a recorder, we check if the value is maybe already
      recorded and thus, we can check the cache. To check if a value is already recorded, we use the key
      of the value to differentiate them. The problem is when there are multiple tries, like multiple
      child tries that all have different values under the same key. Before this pull request we didn't
      have differentiated for which trie we already had recorded a (key, value) pair. This is now done by also taking
      the storage root into account in the recorder to differentiate the different (key, value) pair in
      the tries.
      8fcc6f2e
    • Alexander Samusev's avatar
      Pipeline with ci image with rust 1.65 (#12628) · 698f415b
      Alexander Samusev authored
      * Pipeline with ci image with rust 1.65
      
      * fix tests
      
      * use image with sha
      698f415b
  11. Nov 07, 2022
  12. Nov 05, 2022
  13. Nov 03, 2022
  14. Nov 02, 2022
  15. Nov 01, 2022
  16. Oct 29, 2022
  17. Oct 28, 2022
    • clangenb's avatar
    • Bastian Köcher's avatar
      Aura: Adds some compatibility mode to support old chains (#12492) · 33b61f0e
      Bastian Köcher authored
      * Aura: Adds some compatibility mode to support old chains
      
      In https://github.com/paritytech/substrate/pull/9132
      
       we changed the way how we get the authorities
      from the runtime. Before this mentioned pr we would call `initialize_block` before calling the
      authorities runtime function. The problem with this was that when you have a block X that would
      switch the authority set, it would already be signed by an authority of the new set. This was wrong,
      as a block should only be signed by the current authority set. As this change is a hard fork, this
      pr brings back the possibility for users that have a chain running with this old logic to upgrade.
      
      They will need to use:
      ```
      CompatibilityMode::UseInitializeBlock { until: some_block_in_the_future }
      ```
      
      Using this compatibility mode will make the node behave like the old nodes, aka calling
      `initialize_block` before doing the actual runtime call to `authorities`. Then when the given
      `until` block is being build/imported the node switches to the new behaviour of not calling
      `initialize_block` before. This is a hard fork, so the `until` block should be chosen wisely as a
      point where all nodes in the network have upgraded.
      
      * Fixes
      
      * Make docs ready
      
      * Update client/consensus/aura/src/lib.rs
      
      Co-authored-by: default avatarAndré Silva <[email protected]>
      
      * Update client/consensus/aura/src/lib.rs
      
      Co-authored-by: default avatarAndré Silva <[email protected]>
      
      * Update client/consensus/aura/src/lib.rs
      
      Co-authored-by: default avatarAndré Silva <[email protected]>
      
      * FMT
      
      Co-authored-by: default avatarAndré Silva <[email protected]>
      33b61f0e
  18. Oct 25, 2022
  19. Oct 20, 2022
  20. Oct 18, 2022
  21. Oct 17, 2022
  22. Oct 14, 2022
  23. Oct 13, 2022