IOTA Congestion Control Algorithm is now Enforced into GoShimmer

Director of Research at the IOTA Foundation, Billy Sanders, said the IOTA congestion control algorithm is now implemented into GoShimmer, and soon they will release the Nectar.

The IOTA Congestion Control Algorithm (ICCA) remodels the transaction process to reduce potential congestion and regulate writing access to the ledger. The ICCA accomplishes this through the scheduler, the rate setter, and the blacklister.

The scheduler decides the transactions that are written into the ledger and gossiped. The rate setter uses a classical Additive Increase Multiplicative Decrease (AIMD) algorithm to adjust each individual’s rate and blacklist censors nodes attacking the network.

It is the first non Proof of Work, DAG-based congestion control algorithm that has been published within the cryptocurrency field. It is the most novel element of Coordicide and an essential foundation to the IOTA 2.0 protocol.


In early March, the IOTA team released a new version of our Pollen testnet which contains mana. Mana was to be implemented into many modules, a crucial step in the road to Nectar, a first fully functioning Coordicide testnet.

Mana is essential as whenever a transaction moves funds, that transaction “pledges” a quantity known as mana to a node ID. So, mana can be thought of as Proof of Delegated Token Ownership. Mana can only be gained by either controlling tokens or having some relationship with someone who controls them. The amount of mana committed during a transfer is computed so that an attacker cannot artificially inflate the mana retained by a node.

Many DLTs relay information across the network through gossiping, where participating nodes receive messages from one neighbor and then forward them to other neighbors. Naturally, nodes receive many messages; thus, they must choose the report to relay to their neighbors and their order. A congestion control algorithm makes these decisions.

Need for Congestion Control

When a network has more traffic than it can handle, congestion occurs. The network can become oversaturated without proper congestion control. It can cease to function because nodes can overwhelm their neighbors with more messages than can be handled by an individual node. On settling on which messages to forward, a congestion control algorithm is utilized to prevent this oversaturation.

In an unshared DLT, the issue is majorly acute because every network participant (“node”) must process all valid transactions. Thus, the overall throughput of the network (informally known as transactions per second) is ultimately limited by the available resources such as internet connectivity, device processing, and storage capabilities.

Bitcoin live price
price change

The congestion control algorithm decides what messages are gossiped about and determines who has access to the network. The algorithm has a profound effect on the user experience.

Stay up to date with our latest articles