Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

XOR-trie based routing table #572

Open
petar opened this issue Apr 8, 2020 · 5 comments
Open

XOR-trie based routing table #572

petar opened this issue Apr 8, 2020 · 5 comments
Labels
Milestone

Comments

@petar
Copy link
Contributor

petar commented Apr 8, 2020

Implement RT using XOR tries (from github.com/libp2p/go-libp2p-xor).
Wins:

  • Allows for more flexible changes in RT policies (e.g. different bucket sizes)
  • Simplifies reasoning about the RT
  • Simplifies parity with other language implementations (they just need to implement the XOR tries)
@aarshkshah1992
Copy link
Contributor

@petar Please do post some slides explaining this when you get the time.

@aarshkshah1992
Copy link
Contributor

aarshkshah1992 commented Apr 9, 2020

Here's a comment by @Stebalien explaining how to visualize a Routing Table as a binary Tree for a given local node. Use the image from Kad paper(though it visualizes the whole network and not the Routing Table for a peer, but the idea is the same) for reference.

"As far as i know, It will be a binary tree based on the xor distance between the local peer and arbitrary target keys. The local peer will be all the way on the left at 000000... Then, starting from the root, traversing down to the left towards the local peer, each branch to the right will represent a bucket. The peers on the first branch will have no bits in common, the peers on the second branch will have one bit in common, etc."

Screenshot 2020-04-09 at 12 48 29 PM

@petar
Copy link
Contributor Author

petar commented Apr 10, 2020

@jacobheun jacobheun added this to the go-ipfs 0.6 milestone Apr 20, 2020
@jacobheun jacobheun added the Epic label Apr 20, 2020
@jacobheun jacobheun modified the milestones: go-ipfs 0.6, go-ipfs 0.7 May 4, 2020
@aarshkshah1992
Copy link
Contributor

@Stebalien What's the priority of this ?

Would it be fair to say that Accelerated Lookups depends on this ?

@Stebalien
Copy link
Member

Yes, accelerated lookups depends on this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants