In our ongoing series about the `eos-bios` tool that could be used to launch the EOS mainnet, Alexandre present the meshing algorithm of eos-bios to help Block Producers optimize the interconnection of nodes.

Check the mesh test data from EOS Canada’s GitHub repository.

Join the conversation in the EOSIO BIOS Boot Telegram channel.

Transcription:

Hello again! In this video, we're going to talk about the meshing algorithm of EOS BIOS. The goal of the meshing algorithm is that when we launch a main network, in a few seconds we would love that all of the participating nodes be interconnected in a way that is sufficiently connected, and not overly connected.

Let's take a look at this file here. So this is a test that tests the meshing algorithm, and it says we have a 10 nodes network, and we are node number 1. To who are we going to connect? We're going to connect to 0 1 2 3 4 and until 9. Because we're at 10, we connect to everyone. Then when we get to a 40 nodes network, we cap it to 25.

That algorithm could change, but this is the current state of affairs. We're node number 1 so we connect to node 10, 23, 3, 39, etc... Ok the algorithm does that. Let me visualize that with you. If we go to the EOS BIOS repo here, in the BIOS, there's the test data. And the mesh holds a few renders I'm going to show you right now. It looks like this. This is a two nodes network. See that one here: count2. They have one direct connection. And then if we're a three nodes network, it looks like this. This is four nodes. This is seven, this is 12... Let me show you what happens if we have a 12 nodes network, then this guy is instructed to connect to 2, 0, 9 and 5. And that is sufficiently connected.

And we are certain also with our algorithm that if everyone is connected, we're certainly going to connect to everyone. This will be one network and there's not going to be partitions or small groups within it. Ok now if we continue here, this is 16, and let's say 35. See how you connect? The red lines are 2 ways and then we can optimize that out eventually. So with that, we're properly connecting to a bunch of other nodes.

And the goal is that the meshing algorithm, when we run "join", the "EOS BIOS join," this algorithm is run by everyone the same way. And so everyone meshes, and it can take like 30 seconds. And we have like 150 nodes that boot together. That's a little bit more difficult to attack when you have a large number of players.

So that's why I think it's very important that everyone puts their hardware, their IP, their load balancers or whatever, at the service of the launch by just joining. Be they Block Producers Candidates or not. Okay so we'll see the Boot Sequence in the next video.