Hey! How about another part of the TechTalks series? This is where we show you all the cogs and other bits that keep Iagon’s shared storage platform machine running smoothly.

This piece will uncover the details behind Rubato, a core component of our high-level architecture. The purpose of this protocol is to analyze the storage supply and demand in Iagon’s decentralized network.

The invisible hand

In general, Rubato is a storage marketplace. Its main objective is to continuously analyze the storage market and calculate trading rates accordingly.

If we take a closer look, it turns out Rubato interacts with almost every component of the high-level architecture. At the very heart of Rubato lies a module we’ve called Conduttore. One of its tasks is to evaluate the network performance. Rings a bell? Remember the network performance explorer from the previous articles? That’s right! It monitors node uptime, connection quality, transfer speed, etc. to help calculate the rewards for resource providers handled by Adagio.

Based on the collected data, it also manages and updates the NFT receipts for the providers. As a result of all this, Conduttore is able to determine the current storage subscription prices and relay them to the subscription manager module in Fermato.

Pricing models

Iagon wants to involve both enterprise and individual storage providers in the network. This, however, meant we needed to adjust our approach and come up with various pricing strategies. To be able to satisfy the needs and requirements of all providers, two pricing models were established, i.e. static and dynamic.

Enterprise storage providers are bound by contracts to offer storage services. They are obligated to do that at a fixed rate but often expect to be paid in advance in return (or, in some cases, they prefer periodical payments). This is why Rubato doesn't lock rewards for them in Adagio. All payments are transferred directly to enterprise wallets managed by Iagon. Then, the providers are paid either up-front or after a certain period, depending on their preference. In addition, providers have the option to be paid on-chain or have the assets transferred straight into their company accounts via an off-ramp. Due to the fact that the services are provided at a stable rate, we are able to put a fixed price on them. In addition, this fixed price serves as a hard price ceiling for the dynamic storage pricing model.

The approach to individual (retail) resource providers is different. In the dynamic pricing model, the storage price is influenced by a deterministic calculation based on available and occupied storage space in the subnetwork chosen by the consumer. The available liquidity is included in the calculation as well. In general, the mechanism works similarly to an automated market maker (but it has a fixed price ceiling). It’s worth noting that the same amount of storage space can be priced differently, depending on the providers’ ratings. Those ratings can be influenced by various factors, e.g. geolocation, declared commitment period, verification status, connection speed, etc.

Liquidity in check

Finally, Rubato handles liquidity-related processes to ensure the system is able to provide rewards and incentives. The reward pool module is responsible for providing liquidity to third-party yield generators and collecting the yield. It then transfers the yield earned along with transaction fees to a reserve pool that we utilize to aid liquidity (if necessary) and distribute bonuses.

Not done yet

Well, now you know how our marketplace mechanism functions and how it interacts with the rest of the ecosystem. The team is constantly working on improvements to make sure the final product satisfies storage consumers and providers.

This is not the last TechTalks article so hang around if you’d like to know more and have a better understanding of Iagon’s shared storage economy. In the meantime, you can always browse through our whitepaper.