I can't wrap my head around how someone came up with something so genius. Oh, and I'm doing my MSC thesis around this algorithm, and this was by far the best explanation I came across
Thanks for this. I've read the Kademlia paper and a bunch of stuff online where people try to explain it. But I could never INTUITIVELY grasp why the "k-bucket" routing table scheme actually made sense until watching this video.
I'm really surprised by the fact that this video has such a low statistics. The video is great, you are great, the explanation is great. You deserve more
It's niche, but at the same time, if this were public knowledge, we wouldn't have crappy and leaky message apps like Telegram or Signal. Instead we'd have a truly decentralized web.
I´m studing computer ingeneering and this is the best explanation i found about Kademlia. Great video, simple explanation, new subscriber. Thanks form Salamanca, Spain
Thanks for the video, I needed a refresher, and it worked grat :) There are some wrong details: - 2m55s: 4/8/16 bits are 16/256/65536 values - 5m16s: why have Dijkstra to start from 0? And why is the 'v6' stored twice? - 10m15s: the way you explain the xor distance, and the examples you chose, makes it look like it's |a-b| (see one of the comments), when in fact the xor measure gives a new definition of the distance which has nothing to do with the distance on the linear scale: 1000 and 0111 are 0001 away on the linear scale, but 0111 on an xor scale - 12m39s: 0101 xor 1101 is 1000 - 22m28s: the 'log' here is in fact 'ln' or 'ln2', so for 1e6 nodes, you need something like 20 hops. Still not too many, and still very impressive. And as you said, there are many details in the Kademlia protocol...
I think everyone misunderstand what O(log_n)-hop means. It does not mean that for n nodes it takes log(n) or ln(n) hops. Big O notations only refer to how much the process scales. The true expected number of hops could really be log_n multiplied by any constant.
OMG, I am totally speachless after this master explanation. How in this world Wikipedia has that horrible concepts and definitions about Kademlia, and this man, has came that easily and walk around explaining so clear everything about it.... I am really thankful for having seeing this video. Sr, now you can delete it from RUclips, I know all that I need to XDDD. Thanks, for real....
A little late to the party, but this is an awesome video and I have learned a lot from it. I have a small piece of feedback, though I’m not sure if implementing it would be helpful for your intended audience. I feel that your explanation of the triangle property leaves a little to be desired. At a surface level, the triangle property doesn’t have all that much to do with “triangulation” in the sense most people are familiar with, i.e. taking measurements from multiple places to narrow down a point’s location. **Way** down under the hood, the triangle property is important for triangulation, but only because it’s important for basically any process that involves geometry and metrics, and as far as I can tell the use of the word triangle in both of these concepts is more or less coincidental. Having not read the Kademlia paper, I have a guess as to how the triangle property may be relevant to the hopping protocol: basically a big hop plus a small hop lands not much farther away from the starting point than just the big hop. This assures us that we will never hop into the wrong distant k-bucket from our current node.
The idea is that xor is the new distance measurement. So you cannot compare xor(a,b) with a |a-b|. But you have three things which are very important for the algorithm to converge to the desired destination: 1. distance to self is 0: xor(a, a) = 0 2. the order of the nodes is not important: xor(a, b) = xor(b, a) 3. triangle inequality: xor(a, c)
Now, what if you duplicate parts k-buckets over distributed systems, and suddenly you add in redundancy. If you can also add in "life expectancy probability" (for servers, i.e. for server up time, but also for server creation) into the calculation, then you can have a truly dynamic system, that can have servers pop up and "die" everywhere, without it mattering in the slightest for either up-time or service delivery times (outside of time units that are noticeable for human beings anyway). In other words, it's a super stable system that's very, very hard to break by any outside force; The kind of system that might even survive a nuclear attack, just like how the Internet was intended. ;)
Ah so you just use XOR to count occurrences of "1s" and if there are too many 1s than some threshold, then the space is too close? Edit: When you find distances you basically find probability spaces at the same time. And you can check this with the probability space of other dictionary words, to make room for enough probable possibilities in every category? Incidentally, when you do polling, you'll immediately know when or if you're about to run out of addresses, so you can load-balance efficiently and start shovelling data over to other nodes/servers.
I want to use this process to create a distributed and secure (as in non-censorable) messaging system. It's a direct reply to EU's murmuring about illegalizing all cryptography in the region, which is just an insane take on "security".
The stuff you mention at 11:30 about being non-Euclidean doesn't really make sense. Being symmetric is a requirement to be a metric and definitely doesn't make it non-Euclidean
Where is being used? Are there any new better ways to distribute? Also a little secret: Kademlia is being mispronounced everywhere. It should be kademlìa and not kadèmlia. Means Lucky man.
I can't wrap my head around how someone came up with something so genius. Oh, and I'm doing my MSC thesis around this algorithm, and this was by far the best explanation I came across
You did an amazing job of explaining the algorithm. What an ingenious system.
You deserve a gold medal for the simple yet clever way of explaining this protocol
Amazing video. To the point, good visuals, clear audio, perfection.
I am shocked how simple and fascinating you made it! First time I see a video from you, but already your fan.
I stopped at 4:00 and now I'm currently working out the trivial details so I can come back to the next step of the video.
Thanks for this. I've read the Kademlia paper and a bunch of stuff online where people try to explain it. But I could never INTUITIVELY grasp why the "k-bucket" routing table scheme actually made sense until watching this video.
Music to our ears. It's not a simple concept!
I'm really surprised by the fact that this video has such a low statistics. The video is great, you are great, the explanation is great. You deserve more
I totally agree. The problem is only a handful of us nerds in this world will do a search for kademlia.
@@flcoder jajajaja is so niche
It's niche, but at the same time, if this were public knowledge, we wouldn't have crappy and leaky message apps like Telegram or Signal. Instead we'd have a truly decentralized web.
I´m studing computer ingeneering and this is the best explanation i found about Kademlia. Great video, simple explanation, new subscriber. Thanks form Salamanca, Spain
Thanks. Best explanation of Kademlia ever
This is the best explanation out in the web so far. Just earned a sub!!
This was such a clear explanation. Thank you.
I probably need to watch one more time to understand the nuances, but I like the way you explain. Thank you
One of the best videos on Kademlia. Really straightforward!
The best explanation I've seen in the Internet! Great!
nicely presented the complex thing in simple ways
excellent explanation, thank you for making this video!
Must also join the ranks and offer thanks for the eloquent explanation.
Thanks for this, amazing presentation!
just pure knowledge, amazing.
such quality and expertise it was like watching a Netflix episode, Thanks
I love the way you have presented the idea behind the paper. Thanks for the video. Hope to see more such papers explained.
Really extremely insightful explanation
You are amazing! Thank you so much, this is really helpful!!!!
Amaaaaaaaazing!!!!!!!!!!!!!!!!!!!!!!!!!
Please keep uploading such great content!
This was brilliant. Thanks for breaking down such complex subject matter in a straightforward way!
Best educational video award on RUclips? They should give out prizes
Haha thank you!
I have to make this for my homework in distributed systems really helpful thanks
I love this explanation so much. Instantly clicked for me!
Thanks for the video, I needed a refresher, and it worked grat :)
There are some wrong details:
- 2m55s: 4/8/16 bits are 16/256/65536 values
- 5m16s: why have Dijkstra to start from 0? And why is the 'v6' stored twice?
- 10m15s: the way you explain the xor distance, and the examples you chose, makes it look like it's |a-b| (see one of the comments), when in fact the xor measure gives a new definition of the distance which has nothing to do with the distance on the linear scale: 1000 and 0111 are 0001 away on the linear scale, but 0111 on an xor scale
- 12m39s: 0101 xor 1101 is 1000
- 22m28s: the 'log' here is in fact 'ln' or 'ln2', so for 1e6 nodes, you need something like 20 hops. Still not too many, and still very impressive.
And as you said, there are many details in the Kademlia protocol...
Isnt n11 placed wrong aswell, for the routing table of n5? Maybe im confusing smth here but 0101 Xor 1011 is 1110 not 1011 (18m23s)
@@rhylow2733 Yes, absolutely correct. And why the 'v6' is twice there, once at position '6', and once at position '12' is also a mystery to me.
I think everyone misunderstand what O(log_n)-hop means. It does not mean that for n nodes it takes log(n) or ln(n) hops. Big O notations only refer to how much the process scales. The true expected number of hops could really be log_n multiplied by any constant.
Best explanation on the internet!!
top-notch explanation, subd!
Wow, fantastic video!!. You should do a video explaining the K-bucket split. When happens and why :)
thank you, this was a great explanation
Really clear explanation. Thank you!
Awesome awesome awesome video! Loved it, and it's very inspiring
Phenomenal video. Came from IPFS :)
Amazing, amazing explanation! Thank you
Glad you enjoyed it!
OMG, I am totally speachless after this master explanation. How in this world Wikipedia has that horrible concepts and definitions about Kademlia, and this man, has came that easily and walk around explaining so clear everything about it.... I am really thankful for having seeing this video. Sr, now you can delete it from RUclips, I know all that I need to XDDD. Thanks, for real....
Such a great explanation ! kudos
very easily explained
what a fantastic video! So cool and so dope.
I really like this video. earned yourself a sub.
Thanks so much!
Amazing explanation ! thank you
Fantastic presentation
A little late to the party, but this is an awesome video and I have learned a lot from it. I have a small piece of feedback, though I’m not sure if implementing it would be helpful for your intended audience. I feel that your explanation of the triangle property leaves a little to be desired. At a surface level, the triangle property doesn’t have all that much to do with “triangulation” in the sense most people are familiar with, i.e. taking measurements from multiple places to narrow down a point’s location. **Way** down under the hood, the triangle property is important for triangulation, but only because it’s important for basically any process that involves geometry and metrics, and as far as I can tell the use of the word triangle in both of these concepts is more or less coincidental. Having not read the Kademlia paper, I have a guess as to how the triangle property may be relevant to the hopping protocol: basically a big hop plus a small hop lands not much farther away from the starting point than just the big hop. This assures us that we will never hop into the wrong distant k-bucket from our current node.
Best explanation ever
Please make more videos, go through more papers. Your explanation is really good.
Working on it! We're partway through a series on bloom filters now.
Very nice explanation 👍
great video! thanks a bunch for the work! 😍
Wow you definitely just earned a new subscriber 🤝🧠
clear explanation, thanks!
Very helpful, thank you!
Amazing. Loved it.
Great video, thanks!
Idk how I got here, but very nice clear explanation. Can you update your channel description to say what you're about?
great video!
Thanks! I love this video so much 🙂
Thanks
This is amazing !!
amazing
Thanks for the video! Which camera you're using?
🙏 thanks! Sony a7iii
@@n0computer Ah, heavy artillery :D
I think there are some mistakes :
- at 12:35 0101^1101 should be 8 not 11
- at 18:14 n11 shouldn't be at 1110 ? n5^n11=0101^1011=1000=8 right ?
Yes. You're absolutely correct
why xor is not working for 0001 xor 1000 = 9 but real distance is only 7
The idea is that xor is the new distance measurement. So you cannot compare xor(a,b) with a |a-b|. But you have three things which are very important for the algorithm to converge to the desired destination:
1. distance to self is 0: xor(a, a) = 0
2. the order of the nodes is not important: xor(a, b) = xor(b, a)
3. triangle inequality: xor(a, c)
I don't really understand what the benefits of Kademlias K-Buckets are over Chord's Finger Tables. Seems like the same concept to me.
Now, what if you duplicate parts k-buckets over distributed systems, and suddenly you add in redundancy. If you can also add in "life expectancy probability" (for servers, i.e. for server up time, but also for server creation) into the calculation, then you can have a truly dynamic system, that can have servers pop up and "die" everywhere, without it mattering in the slightest for either up-time or service delivery times (outside of time units that are noticeable for human beings anyway). In other words, it's a super stable system that's very, very hard to break by any outside force; The kind of system that might even survive a nuclear attack, just like how the Internet was intended. ;)
At ruclips.net/video/1QdKhNpsj8M/видео.html shouldn't the n11 node be the second last leaf (from left to right)?
omg, what a great video
good video
amazing video that you
Cool video :)
I need this
Ah so you just use XOR to count occurrences of "1s" and if there are too many 1s than some threshold, then the space is too close? Edit: When you find distances you basically find probability spaces at the same time. And you can check this with the probability space of other dictionary words, to make room for enough probable possibilities in every category? Incidentally, when you do polling, you'll immediately know when or if you're about to run out of addresses, so you can load-balance efficiently and start shovelling data over to other nodes/servers.
I want to use this process to create a distributed and secure (as in non-censorable) messaging system. It's a direct reply to EU's murmuring about illegalizing all cryptography in the region, which is just an insane take on "security".
Kademlia is the "small world network" theory in actual use.
Sooooooo much this
Damnnn
like this video
The stuff you mention at 11:30 about being non-Euclidean doesn't really make sense. Being symmetric is a requirement to be a metric and definitely doesn't make it non-Euclidean
Where is being used?
Are there any new better ways to distribute?
Also a little secret: Kademlia is being mispronounced everywhere. It should be kademlìa and not kadèmlia. Means Lucky man.
the lesson was very useful, but his green eyes.......💔💔💔
Amazing! but please try to speak slower, would be perfect for non-english speakers. Thanks
youtube provides the feature to run at 0.75x speed. his speaking is not a problem.