Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Chain Agnostic MultiNode + EVM Implementation #13386

Merged
merged 170 commits into from
Oct 15, 2024

Conversation

DylanTinianov
Copy link
Contributor

@DylanTinianov DylanTinianov commented May 31, 2024

Chain Agnostic Multinode

Implemented new Chain Agnostic MultiNode design to enable the scaleability of MultiNode to nonEVM chains.

Design Doc: https://docs.google.com/document/d/1nvgelqk4xbznRy8zdy_KHeEjFjgKkqhSUGXSlDze7nU/edit#heading=h.4e7ng0tekbkc

The MultiNode now has reduced responsibility to simple do the following:

  1. Perform healthy checks on all RPCs
  2. Select the best healthy RPC node to use

Chain specific implementations will now call RPC methods directly, while MultiNode just provides which RPC to use.

Benefits

  • Maintainability: Allows for changes to chain agnostic code to be applied across all chains using MultiNode. New healthy checks and node selection mechanisms can be added across chains.
  • Reliability: Using MultiNode on nonEVM chains will improve their reliability by introducing health checks on RPCs and ensuring healthy nodes are used.

Common Components / Interfaces

  • MultiNode
  • Node
  • RPCClient
  • Transaction Sender

EVM Implementation

An EVM specific RpcClient was implemented, and the EVM Chain Client was modified to initialize the new MultiNode and TransactionSender for EVM. The client is now responsible for calling RPC methods after asking MultiNode for an RPC to use.

Copy link
Contributor

github-actions bot commented Oct 4, 2024

WF: CI Core#d5ce6f2

No errors found in this run. 🎉

Copy link
Collaborator

@dhaidashenko dhaidashenko left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice work!

@patrick-dowell patrick-dowell added this pull request to the merge queue Oct 15, 2024
Merged via the queue into develop with commit 4b21c32 Oct 15, 2024
130 checks passed
@patrick-dowell patrick-dowell deleted the BCI-3160-EVM-MultiNode-PoC branch October 15, 2024 16:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants