Skip to content

Predictable RPC Provider Selection for System Chains #11691

@helixstreet

Description

@helixstreet

Issue Description:

Currently, when a user selects a specific RPC provider for a relay chain (e.g., Kusama), Polkadot.js appears to randomly select RPC providers for the necessary system chains (people, coretime, etc.). This can lead to an inconsistent and sometimes unreliable user experience, as the randomly chosen providers for the system chains may not be as stable or performant as the user's chosen relay chain provider.

For example, a user might explicitly choose "Provider A" for the Kusama relay chain. However, behind the scenes, Polkadot.js might connect to "Provider B" for the kusama-people chain and "Provider C" for the kusama-coretime chain. This randomized mixture of providers can sometimes fail or lead to performance issues.

Here is a visual illustration of this behavior:

Image

In this case, IBP.network was selected for Kusama, but Polkadot.js independently chose polkadot.io for kusama-people and stakeworld.io for kusama-coretime.

Proposed Solution:

To improve predictability and reliability, it would be beneficial to adjust the RPC selection logic for system chains.

If a user selects an RPC provider (e.g., "Provider A") for the relay chain, Polkadot.js should first check if "Provider A" also offers an RPC endpoint for the required system chain. If it does, this endpoint should be prioritized and used.

Only if the chosen relay chain provider does not offer an endpoint for the specific system chain should Polkadot.js revert to the current random selection logic.

This approach would likely lead to a more stable and consistent experience for users who have a preferred RPC provider.

Thank you for considering this enhancement.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions