Improve and consolidate RPC UX
Improve and consolidate RPC UX
This is a sub-milestone of %(2024Q2) - Layer 1 - Public RPC endpoint supporting average 1k RPS
This milestone aims to improve the RPC UX thanks to the feedback of users, service providers, wallets, indexers or anyone from the community. The idea is to identify the issues raised by the community, resolve straightforward requests and specify solutions for future improvements. This is a preliminary step toward the following milestone (<INSERT_MILESTONE_ID> Design a wide RPC engine rehaul
).
As this milestone will generate a workload depending on community feedbacks and code inspection, it contains long running steps that aims to be tackled, as background tasks, during the whole project. The potentially remaining tasks will be considered as backlog.
Work breakdown
-
(ETA: 2024-04-26) Inventory of the frictions encountered by users (indexers/wallets/bakers/community) @ryan.tan3 -
Collect feedback from the community - [WIP] RPC user feedback -
Analyse former requests Nicolas Ochem which list -
Formulate potential RPC improvements -
Ask feedback from wallets (Simon McLoughlin, Jev Björsell) -
Ask feedback from indexers (Max Strebkov, Alexander Eichhorn) -
Propose/organize discussion during #proto-ecosystem -
#proto-ecosystem call analysis Conclusions
-
-
-
(ETA: 2024-04-26) Define, estimate and consolidate the Requests Per Second indicator @julien.t -
(ETA: 2024-04-26) Understand Rollup nodes file descriptor leaks @diana.savvatina, #7042 -
Discuss with rollup operators (Chris P.) and developers (Alain M.) (see) -
Understand the issue and sketch a solution (document) -
Compare to former know issue from Non blocking RPC project -
Conclude thanks to investigations
-
-
(ETA: 2024-06-28) Conform to the RPC API standards that are considered as low hanging fruits -
Identify and a tackle low hanging fruits thanks to the feedbacks/survey -
HTTP Header Caching semantics @ryan.tan3 -
Investigate feasibility -
Add configuration flag to enable caching semantics -
Expose internal RPCs for RPC middleware -
Implements expires
tag -
Implement Etag
tag -
Respect If-None-Match
tag -
Add, to the doc, basic instructions to get a working nginx caching config
-
-
Improve synchronisation transparency @ryan.tan3 -
Investigate feasibility -
Introduce sync=always
flag to ensure synchronized node for/blocks
RPCs
-
-
Finer monitoring of RPCs -
Investigate feasibility -
Introduce a new metrics server for the RPC-process -
Improve RPC grafana dashboard
-
-
-
Performance profiling -
Identify top X slowest endpoints (where X is a placeholder) -
Understand where slow down is coming from, if any
-
-
Enforce deprecation policy by cleaning deprecated RPCs -
Update and improve RPC documentation -
Improve Errors of typical use-cases
-
-
(ETA: 2024-06-28) Investigate the RPC API standards that cannot be met because of our current RPC implementation -
Identify blockers thanks to the feedbacks/survey -
Specify required improvements
-