Engineering Update #5

Yuval
Lava Network
Published in
4 min readMar 3, 2023

Our engineering calls provide a sneak peek into the development process of Lava — the open standard for blockchain RPC and APIs. It’s crucial for us to ensure transparency in our progress and encourage the community to ask questions, provide feedback, and contribute 🤝

On the latest call we discussed:

  • New Feature: Server Kit
  • Upcoming Release: Lava SDK
  • Bonus: Lava over Lava!

New Feature: Server Kit

The Server Kit is a high throughput concurrent implementation of Lava’s protocol, capable of accepting raw RPC queries, wrapping them up with the protocol layer and sending them directly to providers, in a decentralized manner. Our Gateway for example, is built using Server Kit.

Developers use the Server Kit to create their own private gateway to Lava’s network of RPC providers — unlocking multi-chain RPC with unlimited scalability, and with minimum changes to their code.

Check out our docs to learn more, a full tutorial coming soon!

Upcoming Release: Lava SDK

Lava SDK is a JavaScript / TypeScript implementation of the Lava Protocol, which enables direct communication between developers and providers via peer-to-peer connections.

With Lava SDK, you can easily integrate decentralized access into your project by importing the library. Behind the scenes, Lava SDK handles all the necessary operations to implement the Lava Protocol and establishes a peer-to-peer connection with providers on the network. This allows developers to focus on building their applications, while Lava SDK takes care of the underlying communications and connection management.

Open source, documentation and full guides for the SDK coming soon!

Server Kit Vs. SDK

Both the Server Kit and SDK allow developers to access RPC providers on Lava, without going through any middleman. They each have pros and cons that make them complimentary products, that allow developers more flexibility and optimization for different use cases and app designs.

The SDK is plug-n-play for most web apps. Writing a decentralized application that accesses multiple blockchains in a completely decentralized fashion will take no more than a few simple lines of JavaScript!

The Server Kit is a more raw, throughput oriented implementation of Lava. It uses concurrent calls to provide better performance for apps with multiple frontends or backends. It is also very useful if you want to test your app in development.

Lava Over Lava

Lava’s goal is to provide apps with a truly decentralized way to consume blockchain data — Lava over Lava is the last piece in this puzzle 🧩

At the start of every epoch, apps query Lava’s blockchain to get a pairing list of providers. While using the SDK/Server Kit, Apps automatically establish a Lava-Over-Lava connection that is used to get pairing in a decentralized way.

In that aspect, there’s no difference between Lava or any other chain we support — Lava offers decentralized access to data from Lava! 🤯

The SDK uses this repo, containing SeedProviders to bootstrap the Lava Over Lava process.

Separate, But Synergizing Roles

This brings us to another interesting idea!
Lava has separations of roles, meaning that providers are not required to run a validator node or vice versa. Role separation enables flexibility, and easier onboarding for providers & validators.

However, the different roles in the network tend to co-exist and synergize — playing one role increases the value that can be earned in other roles. Validators on Lava’s blockchain for example, already hold the latest Lava state, and can benefit from easily becoming Lava-Over-Lava RPC providers.

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, March 28 at 16:00 UTC!

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.

--

--