I'm been work on a system where the address space is broken into 256 blocks then each of those block is broken into 256 blocks until to get a block of 256 addresses.
this means a node only needs to keep track of
routing blocks. where n is the size of the address space.
The -1 is because the highest block don't contain blocks but the address directly and those are kept tracked of only in the direct routing table.
For a 64 bit address that's 1792 entries.
So a node only tracks 1792 blocks in its volume of the dictionary and (1793 * number_of_experts) + 255 nodes in its routing table.
That's O(1) memory usage and if a node has more memory, it can take advantage of to keep track of more blocks and increase the performance.
I just realize today that that at each level only a max of N blocks will contain any nodes. where N is the number of nodes on the network. and since each node keeps track of one block for each level.
So there will always be enough capacity to store the complete routing information for the entire network even is every node is only doing the minimum
This also means that node can just keep track of the blocks that it's own address is in. at each level.
I'm still working on how to handle the routing tables. The fact that node might not have an entry for an address means most algos won't work.
Hsingai Tigris Altaica
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.