|

|

The Dapp Noisy Neighbor Problem

The Dapp Noisy Neighbor Problem

Published on

Jun 30, 2023

If you're a software engineer, you might have heard the term "noisy neighbor effect". This describes a common problem in computing where one application or process can impact the performance of others running on the same system. It's like having a loud neighbor who keeps everyone on the block up all night with their partying, harming people's performance at work the next day.

This term is most often used to describe multi-tenant services, where several applications are running on the same infrastructure.

To illustrate, imagine you run a cloud service, and you want to allow developers to rent servers to host their applications. If you try to rent remote access to actual, physical servers directly, you'll run into a problem: typical servers in datacenters are super beefy, but most developers don't need as many resources to run their applications.

So you devise a solution: you'll break up each server into multiple "virtual" servers. Each virtual server will have its own set of resources, and each developer can rent out a virtual server to run their application. This way, you can make efficient use of your physical servers and offer your service to a wider range of customers with varying resource needs.

Everything works if you share fair...

But there's a catch: what if one developer's application starts hogging up resources, and uses more than their "fair share"? Suddenly, the other virtual servers on the same box will have fewer resources to split among themselves -- their performance will be degraded.

...but if someone hogs resources, everyone else gets screwed

Crucially, this drop in performance is purely due to the other users who were "randomly" colocated on the same physical server as you by your cloud provider. You have no say in the matter.

Thankfully, in 2023 cloud providers have taken measures to mitigate the noisy neighbor effect. For example, they may provide more advanced virtualization techniques that place hard limits on the resources available to any one customer.

But there's one category of cases where the noisy neighbor problem is alive and well: blockchain apps.

Dapps are Noisy Neighbors

There are multiple ways to conceive of a blockchain. In one sense, a blockchain is a distributed network of many servers, all working together to maintain a shared ledger of transactions.

But from the perspective of a developer, the virtual machine running on top of the blockchain is a single-threaded computer, with limited resources that are shared among all the applications running on it.

That's right: blockchains are the ultimate "multi-tenant" infrastructure.

On a single blockchain, you can have hundreds of thousands of applications (smart contracts) competing for limited resources. And, because these resources are allocated via a market, more competition directly leads to higher costs.

Commonly, how "fast" and "cheap" transactions are is considered to be an intrinsic property of the underlying blockchain. But this is wrong: these properties are also determined by the usage of the chain -- and can change quickly as usage changes.

That means if, say, a memecoin happens to take off at the wrong moment, you (and your users!) can suddently find yourselves paying massively increased gas fees.

This example is not just an issue with Ethereum! All popular chains eventually run into this issue -- it's a testament to how successful the chain is in creating demand for blockspace. This is an issue of monolithic blockchains in general. Noisy neighbors can always ruin your day, leading to degraded UX and high costs.

Enter Dedicated Rollups

The only long-term solution to the noisy neighbor problem is to avoid a "multi-tenant" architecture to begin with. Enter dedicated rollups: a new technology that promises to solve the noisy neighbor problem once and for all for blockchain applications.

With a dedicated rollup, projects get a layer-2 scaling solution that functions as its own separate blockchain. The layer-two chain posts transaction data to an underlying layer-one, but offloads computation and storage offchain. This means significantly reduced resource contention between apps. It's like moving from a shared hosting plan to a dedicated server.

Even better: dedicated rollups can be customized to each applications specific needs. Want to minimize transaction costs? You can choose to settle on a less expensive chain. Need tons of compute power? Launch the rollup on a beefier server, and bump up the gas limit. Or maybe you need to dip below the EVM and add new lower-level primitives, like BLS curve operations, ZK-friendly hash functions, or more efficient utilities for memory management.


Caldera: the dedicated rollup platform

Caldera is the easiest way for projects to launch customizable dedicated rollups. Committed to empowering developers, Caldera provides the necessary infrastructure to build a dedicated blockchain for any ecosystem or application.

Developers like zkHoldem, Syndr and Curio are already using Caldera to launch fast, secure blockchains and applications, without compromising on performance or features.

If you’re a builder, reach out to us! We’d love to talk about why a dedicated blockchain might make sense for your app.

About Caldera

Caldera is one of the fastest-growing rollup ecosystems on Ethereum, empowering web3 teams to launch high-performance, customizable, application-specific rollups. Leading EVM chains like Manta, Apechain, Kinto, Injective, RARI Chain and Zero Network by Zerion use our industry-leading rollups-as-a-service platform and enjoy unified connectivity with rollups across all leading frameworks.

Website | X/Twitter | Docs | Metalayer