What is a Ring of Fire

In July 2021 we created the biggest Ring of Fire to date, with 65 participating nodes and 65.000.000 sats liquidity. The project is driven by our community. Developers, designers, video editors, and team leaders all joined to make this Ring of Fire a reality. This page is the place where you can find all the information you need about our Ring of Fire. We will explain what a Ring of Fire is, why it is helpful and how you can create your own.

button-text=''hsks

To understand why a Ring of Fire is helpful, you need to have a basic understanding of the Lightning Network. The Lightning Network is a second-layer payment protocol, designed to scale the number of bitcoin payments possible. Payments between Nodes on the Lightning Network are routed via so-called “Payment Channels”. These payment channels are basically multi-signature wallets in which the participating nodes deposit a certain amount of Bitcoin. Only the open and close transactions are broadcasted and included on the core bitcoin blockchain, all the payments in between (state-changes) are only recorded by the two connected nodes. While this sounds good in theory, it led to an issue in practice. Channels are generally funded from one side when opened (the side of the node initiating the channel). 

 

This means that this node has local capacity, but is lacking remote capacity. The practical translation of this problem is that the node can send transactions but cannot receive transactions. To be able to receive transactions, you need nodes to open a payment channel to your node as well. That is easier said than done. How do you get other nodes to open a channel to you? This is even more difficult for new nodes that are not well connected yet. Well-connected nodes, with high uptime and well-funded channels, act as a magnet to other nodes. Node operators will find these high-end nodes on sites like 1ML and Amboss open a channel (thereby providing remote capacity to the well-connected node) without even asking. It is just not as attractive for others to provide liquidity to you if you are just starting.

“If the Mountain won’t go to Mohammed, then Mohammed must come to the Mountain”.

 

As a new node operating looking for the remote capacity to receive payments (and maybe even start routing payments), you need to actively search for other nodes willing to provide you with liquidity. For a while, this was mostly done by knowing the right people. Being active in Lightning Telegram groups, providing helpful information, and generally being an addition to the community does wonder if you want people to open a channel to you. While this approach works, it also has some downsides. The process (if you can even call it that) is quite ad-hoc, depends on a high level of trust, and tends to centralize around the big well-connected nodes. The network began to look like a centralized network, where we want to create a decentralized or even a distributed network.

To tackle this problem, two developers by the names of SoulExporter and Czino started documenting a structured process to: “strengthen cooperation and form strong partnerships, we have devised the concept of a ring of nodes. It serves as a template to bring node runners together and lift each other up.” They called this ring of nodes “The Ring of Fire”.

The benefits are clear: these rings strengthen the community, the network and improve the general liquidity in the network. So how does it work? Node operators looking for liquidity, more channels, or better connectivity come together in Telegram groups (like Ring of Fire) or websites (such as lightningnetwork.plus). These groups and websites act like marketplaces, where node operators can find Rings of Fire in all sizes. There are two important variables, namely: the number of nodes in the ring and the size of the channel (in satoshis). However, these two variables are advertised upfront, so that node operators know what they are getting into. Sometimes, the node operator initiating the ring will set certain requirements that other nodes need to adhere to. For instance, a ring could only be available to nodes with a minimum of 50 other channels and a node capacity of 50 million satoshis (0.5 BTC).

When the group is formed and all members agree on the ring terms, the process starts. It is a best practice that the most experienced member of the group acts as the ring leader. The ring leader is in charge of designing the ring, more specifically: putting the members in the correct order. There are multiple reasons why the order is important. Nodes that already have an opened channel should not be next to each other in the ring. Furthermore, it is often rewarding to let the bigger and more connected nodes connect to smaller nodes, to distribute capacity evenly across the ring.

After the ring leader completes the position of each node in the ring, he will inform the other node operators. Each node opens one channel to the next node in a clockwise manner. All the channels are of the size that was agreed upon. Sometimes nodes operators will also agree on the on-chain fee used to open the channel, although this is not an essential step in the process. After initiating the channel, the on-chain transaction is shared with the group and ring leader to monitor the status of the ring. 

Some groups consider the ring completed after all channels are opened (and confirmed on the blockchain). Others add another step to the process: balancing the channels. Without balancing the channels, all transactions in the ring travel clockwise. This could lead to longer routing routes, which makes the ring less attractive to route transactions through. To solve this issue, rings can be balanced after all channels are opened. Initially, all nodes in the ring increase the fees on the channels to make sure that nobody routes payments through the ring while the balancing is in process. There are multiple options to balance the ring, but the most elegant and trustless way is to let the ring leader make a payment to himself that goes through all the nodes in the ring. That last part is crucial! The payment needs to be constructed so that it takes the path through the nodes in the ring, in the correct chronological order. When executed correctly, all channels between the nodes should be balanced.

Some rings will also negotiate on a share fee policy. There are two types of fees on the lightning network: base rate and fee rate. The base rate is a static fee. The fee rate is variable and depends on the transaction size. When a ring wants to act as one big node, they will set their fees to 0/0 (0 base fee and 0 fee rate). When a ring wants to attract micropayments, it could set its base rate to zero. If the ring wants to attract bigger transactions, it will agree on a lower fee rate (and higher base rate).

And that’s it. The node operators shake hands, thank each other, exchange contact information, and part ways.

Resources

Below you will find helpful resources to set up your own Lightning Node and Ring of Fire.