internet-computer-protocol / evm-rpc-canister

Interact with EVM blockchains from the Internet Computer.
https://internetcomputer.org/docs/current/developer-docs/multi-chain/ethereum/evm-rpc/overview
Apache License 2.0
63 stars 13 forks source link

feat!: reintroduce RPC provider agreement logic #100

Closed rvanasa closed 10 months ago

rvanasa commented 10 months ago

The EVM RPC canister now calls several providers, returning either one consistent result or all individual results when calling relevant Candid-RPC methods. The agreement logic is the same as in the ckETH minter canister.

Progress:

It's important to note that because this canister returns all JSON-RPC fields, it's possible to receive "inconsistent" results in cases where the results would otherwise be consistent for ckETH. This may also cause developers to write their own consistency checks. In this case, any built-in logic would further increase the complexity of processing RPC results. It's unclear how much of an issue this would become in practice, so developer feedback will be crucial here.

Context: internal design document

dfx-json commented 10 months ago

approved. @rvanasa will address review comments in follow-up PRs