Blog

Geographic Bins in MainNet

Bins are changing for MainNet for better scheduling and tokenomics.

Posted by: Benjamin Wenger
Posted on: October 14, 2021

Since we announced the first nodes in 2018, the xx network has divided nodes into 8 “geographic bins”: Americas, Western Europe, Central Europe, Eastern Europe, Middle East, Africa, Russia, and Asia. 

At the time, the goal was to ensure that selection of nodes was more spread across the world. As BetaNet launched, this morphed into a basis for the selection algorithm, which uses bins to approximate an optimal ordering for the team.

As MainNet launches (on November 8th!), bins will take on a new role in the tokenomic process. As a protocol, cMix gets faster the lower the latency between the nodes in a team. In other words, as nodes get closer, they complete cMix rounds faster. And as rounds are completed faster, the nodes in them earn points faster, resulting in more xx earned for operation (You can read more about the point system in the Era Rewards - Era Points section of the xx tokenomics paper).

The problem with this system is that as nodes get closer they make more xx.. This creates an economic incentive to centralize, and if we are not careful, we could find all nodes in a datacenter in Frankfurt Germany in just a few years.  

To combat this, each bin will be assigned a “regional multiplier”which will multiply the point value of the round for all nodes in it. They are expected to be small, on the order of 1.1 to 1.4, but will ensure that those higher latency nodes who are so valuable for decentralization, are incentivized to remain in the network and that nominators are incentivized to stake them.  

We are splitting many bins so they better reflect the economic realities of running nodes in their region, so multipliers will be more reflective of the realities in various locations arounds the world. Today, the ProtoNet council voted to adopt the new bins, and the network was appropriately updated.

Over the next few weeks, the team will be looking at performance data to determine what the multipliers should look like and plan to test them before MainNet launch to ensure they work correctly and are fair.  

Resources:

List of bins: https://docs.google.com/spreadsheets/d/1z9kvEW7XXcHYxUSPpXkoA1Cv9trIbY4VkPzaWzJEN_I/edit#gid=2056956216

Scheduling Algorithm: https://git.xx.network/xx_network/primitives/-/blob/dev/region/ordering.go