What is the RPC Trilemma?

What is the RPC Trilemma? Exploring how Pocket Network is building better RPC service

The blockchain development landscape is full of builders taking on the most captivating and difficult challenges facing our “new internet.” It’s what makes this space such a fascinating place to be. This is especially true when it comes to RPC service and other critical infrastructure.

Now, our team is focusing on one of the most pressing challenges that face blockchain RPC services. We’ve coined this challenge the “RPC Trilemma.” To take on this challenge, we’re utilizing an application-specific blockchain for an application-specific purpose. Our goal is to bring a major evolution in the way that blockchain data is serviced for developers.

Here, we’ll take a look at what the “RPC Trilemma” is, and how the different features of Pocket Network’s protocol help solve various parts of it.

What is the RPC Trilemma?

The RPC Trilemma is a set of challenges that blockchain networks face in providing reliable, performant, and cost-effective access to full nodes. Like the famous Scalability Trilemma, the challenge is in optimizing for all three of these components, without sacrificing any one individually.

The RPC Trilemma is the challenge that an RPC service faces when trying to optimize for Performance, Reliability, and Cost.

Remote Procedure Call (RPC) is a communication protocol that enables one machine to make a call to a remote machine to execute a procedure and return a response. In the context of blockchain communication, RPCs are used to communicate with nodes that contain copies of blockchain data. 

Developers use RPCs to query information on the blockchain, send transactions, and perform other operations for their application end users.

Reliability involves ensuring that the RPC layer provides data that is available, correct, and up-to-date. Can you get the right data when you need it, or will you be battling against outages and downtime?

Performance means providing high quality-of-service, maximum redundancy, low latency, and low complexity. Can you get the data on time, or will your user experience go down the drain with high latency?

Finally, Cost involves making the network cheap to operate and use, for both node providers and developers. Can both the data supply and data demand sides participate in the network without crazy cost burdens?

Each of these three components has their unique challenges. The RPC Trilemma is a necessary hurdle for engineers when building a web3 RPC service.

For example, centralized RPC providers might be able to offer reasonably high performance and low costs. But in doing so they often sacrifice reliability and decentralization. Developers are often forced to choose which of the three components they’re okay taking a hit on.

Most RPC services fail in one or more components of this trilemma. At Pocket Network, we’ve found a better way forward.

Building Better RPC Service: Pocket Network’s Approach to Solving the RPC Trilemma

Pocket Network’s v0 and v1 protocol actors are Validators, Applications, Servicers, Fisherbeings (v1), and Portals. They are the key players taking on this challenge. The way that these actors interact with each other on-chain, and the incentives that we’ve enabled for them, are what sets Pocket apart from other web3 infrastructure providers.

Validators, Applications, Servicers, Fisherbeings, and Portals are the protocol actors that help Pocket Network provide optimized RPC service.

On-chain sessions pair these actors, distribute work fairly, rate limit app usage as necessary, and calculate POKT rewards for servicers. This is done based on QoS and usage volume. They will also calculate POKT burn for apps based on usage volume.

Through these actors and on-chain sessions, we’re addressing each part of the RPC Trilemma: Reliability, Performance, and Cost.

Reliability

To address the reliability challenge in a decentralized way, you have to empower Servicers (node runners that provide the access points for on-chain data) to be rewarded for their work. 

Pocket Network uses unique incentives for data redundancy, geographic distribution of nodes, censorship-resistance, and data integrity. As of now, our incentive mechanism has helped create a network of more than 21,000 nodes spread across more than 20 countries worldwide. This network has enabled the best decentralized infrastructure developers can utilize for their applications.

By providing this decentralized infrastructure for dApps, we’re helping reduce reliance on centralized node providers and improving overall network reliability. Your chances of an RPC service outage go down to almost zero when you make the switch from a centralized provider to a decentralized network of thousands of separate node runners.

The decentralization of Pocket’s protocol makes our RPC service more trustless, permissionless, and reliable than centralized alternatives. 

Performance

But it’s not all about the number of nodes that are available. If you have a million nodes with poor quality of service, users are no better off.

Pocket’s protocol enables clients to access data with high quality of service, low latency and quick round-trip times, and maximum availability and uptime.

Pocket Network’s GeoMesh, built by POKTscan, is one example of a feature that provides lower latency and better network performance. GeoMesh lets all node runners service relay traffic in locations all over the world, without needing to have a full Pocket node in these locations. It ensures smart geographical utilization of nodes while servicing applications, which brings improvements in performance.

With GeoMesh and other performance optimizations across the network, users get better regional quality of service, less latency, and higher quality sessions overall.

By creating an application and minting private RPC endpoints in the Pocket Portal, developers and users get access to highly-performant RPC service in minutes.

Cost

Managing costs on both sides of the service (i.e. for node runners providing supply and for developers making requests) is another critical element of the RPC Trilemma. 

With our protocol, we’ve found unique ways to keep servicing costs low. This in turn brings cost-efficiencies for builders and developers compared to other web3 infrastructure providers.

Pocket Network’s Stake-Weighted Rewards and LeanPOKT features, for example, have both helped bring about lower network costs. Features like these have made the protocol cheaper to operate for node providers and cheaper to use for developers.

With Stake-Weighted Rewards, node runners are incentivized to run larger nodes. They no longer have to take on extra costs to run a larger number of smaller nodes. 

Meanwhile, LeanPOKT enables multiple Pocket instances to run on a single process. This allows node runners to consolidate resources, achieve better scalability, and reduce hardware costs.

With v1 of our protocol, each element (reliability, performance, and cost), will continue to improve and scale. v1 will help Pocket tackle the RPC Trilemma even more effectively. 

Taking advantage of these unique solutions and breaking free of the RPC Trilemma takes just minutes in the Pocket Portal. Builders can sign up with an account, create their own application, and get a private endpoint for any of our dozens of supported blockchains. With just a few clicks, you can optimize your RPC infrastructure, without making the sacrifices that you’re forced into with other providers.

Ready to See the Power of Decentralized RPC Service?

The RPC Trilemma is a challenge that has been present in the web3 space since its early days. However, we’ve taken significant steps towards solving this issue. We’ve done so by building a decentralized multi-chain RPC layer for dApps, providing a more efficient alternative to running your own nodes or using a centralized RPC provider, and creating an incentive mechanism for node runners to provide high QoS access to full nodes. 

Through the features and the protocol actors we’ve discussed above, our solution addresses each part of the RPC Trilemma. The structure of our protocol creates a reliable, performant, and cost-effective network.

Plus, with the philosophy of pragmatic decentralization underpinning all that we build, we’re continuing to improve our protocol and move towards higher degrees of decentralization. As the web3 space continues to grow and evolve, our approach to solving the RPC Trilemma will play a major part in shaping the future of decentralized RPC infrastructure.

Get set up with your own optimized RPC service in the Pocket Portal today!