图片

We, the DFINITY R&D team, are excited to announce that the EVM RPC container is now live and available to the ICP developer community. EVM RPC is an Internet Computer container smart contract designed to communicate with Ethereum and other EVM blockchains using an on-chain API.

Why this matters

The goal for developers is to write ICP smart contracts that communicate with the Ethereum network and other EVM chains. ICP has achieved this through HTTPS calls. The Ethereum protocol defines the specifications for software applications to interact with any Ethereum node through an HTTP-based RPC (remote procedure call) interface.

With the rise of EVM-compatible Layer-2 chains, developers can now leverage this interface to sign and send raw transactions, among other features. The RPC interface can be used to interact directly with the Ethereum network and other networks such as Optimism or Arbitrum.

While protocol-level tools are available, bundling them together can be cumbersome for developers, which is why the DFINITY R&D team announced a few months ago that they would be creating an EVM RPC container for the community that would consolidate all best practices.

DFINITY’s engineering team designed a solution that leverages the ability of container smart contracts to execute HTTPS calls and reach Byzantine consensus, providing a method for direct integration with the Ethereum network or any EVM-compatible derivative network, which is achieved by integrating with other container smart contracts deployed on the ICP mainnet.

EVM RPC container smart contracts can combine the infinite computing power of the Internet Computer with the billions of assets held on the Ethereum network to build novel, interesting, and useful applications in the decentralized application ecosystem.

How to use it

The container is now running!

To get started, check out the EVM RPC documentation or sample code or the container code on GitHub, or you can find the container on the ICP dashboard:

  • internetcomputer.org/blog/features/evm-rpc-canister-launch

  • internetcomputer.org/docs/current/developer-docs/multi-chain/ethereum/evm-rpc/samples

  • github.com/internet-computer-protocol/evm-rpc-canister

  • dashboard.internetcomputer.org/canister/7hfb6-caaaa-aaaar-qadga-cai

How it works

Before EVM RPC Container

To send or receive data from Ethereum (such as querying the latest block), an application must perform several complex steps.

The first step is to get the address of the Ethereum node to which you want to send the request. While multiple aggregators do exist, the availability of any single RPC server cannot be guaranteed, making it difficult to build reliable applications that rely on data from arbitrary RPC endpoints. In addition, some RPC servers lack consistent privacy policies and many servers introduce high latency to the request chain.

For these reasons, it is common to use well-known RPC providers such as Ankr or PublicNode, which offer APIs with high uptime, low latency, and a wide range of supported chains.

图片
Application that queries Ethereum nodes using a unique RPC provider

For applications with strict security requirements, it is also necessary to ensure that the provider's results are consistent with other nodes on the network. This is achieved by sending multiple requests to different providers in parallel and then comparing the responses returned by each provider to determine whether they are consistent. If any responses do not match, there must be a clearly defined mechanism to distinguish fact from fiction.

图片
Applications that use multiple RPC providers to ensure high data integrity

Finally, the response returned by the Ethereum node must be decoded and deserialized into the underlying type system used by the application so that it can be used in the context of the application's implementation of Ethereum data.

The Internet Computer’s role as a hub connecting different blockchains is enabled by strong security properties and the unique ability to perform outbound HTTPS requests on-chain via container smart contracts.

What all this means is that any application attempting to integrate with the Ethereum network in some way must acquire multiple API keys, store them securely, and manage their rotation, while also vetting providers to ensure API quality, uptime, and data integrity.

On top of that, the application must define interfaces and implement conversion logic to handle the incoming data, and if all this seems a bit overwhelming for a standalone application to handle efficiently, that’s because it is.

The design behind the EVM RPC container

The EVM RPC container is designed to reduce the complexity of querying and transacting with EVM-compatible networks. It is intended to be used by other ICP containers and by applications that utilize a proxy deployed outside of ICP.

The service exposes an interface that encapsulates several key Ethereum JSON RPC APIs into a convenient type, the Candid interface, which ensures response consistency by normalizing and comparing the results of a given call from multiple providers. This ensures a high degree of confidence in the integrity of data returned from and sent to supported EVM-compatible networks (including the Ethereum mainnet).

The EVM RPC container also removes the burden of sourcing, managing, and rotating API keys for different RPC providers, exposing only a single interface that opaquely scales with usage, which means that containers only need to connect to Cycles and can assume that the EVM RPC container will work, allowing container developers to focus on their business logic.

Behind the scenes, the EVM RPC container is instrumented and monitored 24/7 for anomalies, usage spikes, outages, attacks, and more, and is supported by a highly skilled team ready to resolve any issues that arise.

图片

Governance

The Network Nervous System is a DAO, or decentralized autonomous organization, that governs the Internet Computer and makes it possible to build democratic, decentralized applications that are governed by the community.

The EVM RPC container is an example of such an application — it is controlled by NNS, which means that any changes made to the container code must be made through proposals voted and approved by the neurons in the system (i.e. ICP token holders).

Any changes to the RPC provider, including additions, removals, or modifications, must be performed by a party authorized to perform a one-time operation via an NNS proposal, which ultimately puts the power to shape the functionality of the EVM RPC container directly in the hands of the community using it.

The code for building the Web Assembly (Wasm) module that installs into the EVM RPC container is publicly available on GitHub, allowing anyone to build Wasm and verify that its hash matches the one deployed to the ICP mainnet. Doing so ensures the integrity of the container itself - the code that people can read and verify is exactly the same as the code that runs on the Internet Computer.

Safe and convenient

The EVM RPC container eliminates the complexity of sourcing, managing, and rotating API keys used to facilitate communications with Ethereum and Ethereum-compatible networks, and it provides a variety of conveniences that make processing data from EVM-based RPC endpoints simple and effortless.

DFINITY developed the EVM RPC container as a decentralized service, enabling the community to manage its evolution over time.

Together, these innovations enable developers to build dApps and DeFi projects that natively use one of the world’s largest cryptocurrencies, unlock tremendous value and bring advanced capabilities to Ethereum smart contracts.

in conclusion

The EVM RPC container simplifies the integration of ICP smart contracts with Ethereum and other EVM-compatible networks. By eliminating the complexity of managing API keys and ensuring data integrity, the EVM RPC container enables developers to focus on building innovative decentralized applications.

图片

start immediately

  • Explore the EVM RPC documentation to learn how to integrate the EVM RPC container into your project;

  • Check out the sample code to see the actual implementation of the EVM RPC container;

  • Join the developer community at forum.dfinity.org to share your experiences, ask questions, and collaborate with other developers.

By using EVM RPC containers, you can build dApps and DeFi projects that leverage the strengths of ICP and Ethereum, driving the future of decentralized applications.

Start building at internetcomputer.org and join the developer community at forum.dfinity.org.

#EVM #ICP #DFINITY $BTC $ETH $ICP

IC content you care about

Technology Progress | Project Information | Global Activities

Collect and follow IC Binance Channel

Get the latest news