1. Feb 08, 2024
  2. Feb 03, 2024
  3. Feb 01, 2024
  4. Jan 26, 2024
  5. Jan 25, 2024
  6. Jan 24, 2024
  7. Jan 23, 2024
    • Alexandru Vasile's avatar
      rpc-v2: Enable the `archive` class of methods (#3017) · 01ac54db
      Alexandru Vasile authored
      The
      [archive](https://github.com/paritytech/json-rpc-interface-spec/blob/main/src/api/archive.md
      
      )
      API is unstable and subject to change.
      
      This PR enables the `archive` class of the RPC-V2 spec to substrate
      based chains.
      
      The `archive` API is enabled for archive nodes: 
      - the state of the blocks is in archive mode
      - the block's bodies are in archive mode
      
      While at it, this PR extends the `BlocksPrunning` enum with an
      `is_archive` helper to check if the pruning mode keeps the block's
      bodies for long enough.
      
      Defaults used for the `archive` API:
      - a maximum of 5 responses are provided for descendants queries (this is
      similar to chainHead)
      - a maximum of 8 item queries are accepted at a time
      
      Before stabilizing the API we should look into these defaults and adjust
      after collecting some data.
      
      ---------
      
      Signed-off-by: default avatarAlexandru Vasile <[email protected]>
      01ac54db
    • Niklas Adolfsson's avatar
      rpc: backpressured RPC server (bump jsonrpsee 0.20) (#1313) · e16ef086
      Niklas Adolfsson authored
      This is a rather big change in jsonrpsee, the major things in this bump
      are:
      - Server backpressure (the subscription impls are modified to deal with
      that)
      - Allow custom error types / return types (remove jsonrpsee::core::Error
      and jsonrpee::core::CallError)
      - Bug fixes (graceful shutdown in particular not used by substrate
      anyway)
         - Less dependencies for the clients in particular
         - Return type requires Clone in method call responses
         - Moved to tokio channels
         - Async subscription API (not used in this PR)
      
      Major changes in this PR:
      - The subscriptions are now bounded and if subscription can't keep up
      with the server it is dropped
      - CLI: add parameter to configure the jsonrpc server bounded message
      buffer (default is 64)
      - Add our own subscription helper to deal with the unbounded streams in
      substrate
      
      The most important things in this PR to review is the added helpers
      functions in `substrate/client/rpc/src/utils.rs` and the rest is pretty
      much chore.
      
      Regarding the "bounded buffer limit" it may cause the server to handle
      the JSON-RPC calls
      slower than before.
      
      The message size limit is bounded by "--rpc-response-size" thus "by
      default 10MB * 64 = 640MB"
      but the subscription message size is not covered by this limit and could
      be capped as well.
      
      Hopefully the last release prior to 1.0, sorry in advance for a big PR
      
      Previous attempt: https://github.com/paritytech/substrate/pull/13992
      
      Resolves https://github.com/paritytech/polkadot-sdk/issues/748, resolves
      https://github.com/paritytech/polkadot-sdk/issues/627
      e16ef086
  8. Jan 22, 2024
  9. Jan 19, 2024
  10. Jan 18, 2024
  11. Jan 17, 2024
  12. Jan 15, 2024
  13. Jan 12, 2024
    • Dmitry Markin's avatar
      Extract warp sync strategy from `ChainSync` (#2467) · 5208bed7
      Dmitry Markin authored
      
      
      Extract `WarpSync` (and `StateSync` as part of warp sync) from
      `ChainSync` as independent syncing strategy called by `SyncingEngine`.
      Introduce `SyncingStrategy` enum as a proxy between `SyncingEngine` and
      specific syncing strategies.
      
      ## Limitations
      Gap sync is kept in `ChainSync` for now because it shares the same set
      of peers as block syncing implementation in `ChainSync`. Extraction of a
      common context responsible for peer management in syncing strategies
      able to run in parallel is planned for a follow-up PR.
      
      ## Further improvements
      A possibility of conversion of `SyncingStartegy` into a trait should be
      evaluated. The main stopper for this is that different strategies need
      to communicate different actions to `SyncingEngine` and respond to
      different events / provide different APIs (e.g., requesting
      justifications is only possible via `ChainSync` and not through
      `WarpSync`; `SendWarpProofRequest` action is only relevant to
      `WarpSync`, etc.)
      
      ---------
      
      Co-authored-by: default avatarAaro Altonen <[email protected]>
      5208bed7
  14. Jan 11, 2024
  15. Jan 10, 2024
  16. Jan 09, 2024
  17. Jan 08, 2024
  18. Jan 07, 2024
  19. Jan 04, 2024
  20. Jan 02, 2024
  21. Dec 28, 2023
  22. Dec 27, 2023
  23. Dec 21, 2023
  24. Dec 20, 2023
  25. Dec 19, 2023
  26. Dec 18, 2023
  27. Dec 15, 2023
  28. Dec 14, 2023