Engineering Update #6

Yuval
Lava Network
Published in
3 min readMay 12, 2023

Our monthly engineering calls offer community members a glimpse into the development of Lava — the open standard for blockchain RPC and APIs. We prioritize transparency in our progress and welcome our community to ask questions, offer feedback, and contribute 🤝

On the latest call we discussed a new feature and two features in development:

  • RPCProvider Improvements
  • Dynamic gRPC
  • Provider Optimizer

🚀 New feature: RPCProvider Improvements

Last week, we deployed a new and improved RPCProvider process and with it, we opened the incubation program for new API providers to onboard our testnet. Our RPCProvider service (packaged in lavad) has underwent some major improvements! These were primarily aimed at better resource utilization and better state handling.

Utilizing Shared Resources:

We improved scalability, resource utilization by transforming the command line and multiprocessing infrastructure into a unified or more flexible deployment.

Before the upgrade, if you were serving Ethereum or Osmosis RPC, you’d have to track and manage each API separately. That’s because some APIs return different results and encodings than others. Now, all API interfaces of the same chain are unified with the same encoding.

With the latest update, providers benefit from reduced node overhead and cheaper running costs. Our goal is to synergize with existing infrastructure without causing too much hassle for small scale providers. These improvements make it easier and more profitable for node runners to become monetized providers on Lava.

Session Recovery

Real world issues like timeouts or disconnects now have better state handling. We have implemented new tolerance and recovery mechanisms that deliver a smooth consumer experience. These remain operational even when problems and mismatches in the sessions metadata arise.

👷‍♀️ Feature in development: Dynamic gRPC

gRPC is an RPC protocol that uses protobufs. Protobufs allow for strongly typed descriptions of how to serialize and deserialize any object or message into bytes. Because of this, they can be compiled in any environment and create a marshaling/unmarshaling schema that is called upon by auto generated code.
gRPC is safer and less prone to attacks which modify content within the buffer. It’s considered a lot more secure and efficient in terms of performance.

Dynamic gRPC is a new feature being explored by community contributors in close collaboration with the core dev team. Using reflective APIs like those which are implemented elsewhere in Cosmos, Dynamic gRPC allows the addition of new chains which use gRPC without needing to re-compile our lavad binary. With this feature, new chains supporting gRPC can be added to Lava Network without releasing new versions of lavad.

👷‍♂️ Feature in Development: Provider Optimizer

Every dapp is unique. Every dapp has its own special needs, according to the experience it aims to deliver to its users. That’s why the definition of ideal RPC depends on who you’re asking.

Provider Optimizer allows consumers (= dapps or services) to pick the best providers available in a given pairing list, according to their needs. It will calculate the probability of error, expected response time, and data freshness, and pick the best fit according to the consumer’s preferences (latency/sync/accuracy/cost etc.) It’s a very exciting addition to our already operational suite of Quality of Service assurances 💪

✍️ Summary

We thank everyone for attending the call! You can find the full call recording in our Discord, which is always open for questions and support.

See you all at the next call!

🌋 About Lava

Lava is a decentralized network of top-tier API providers, where developers make one subscription to access any blockchain. Providers are rewarded for their quality of service, so your users can fetch data and send transactions with maximum speed, data integrity and uptime. Pairings are randomized, meaning your users can make make queries or transact in privacy.

We help developers build web3-native apps on any chain, while giving users the best possible experience.

--

--