Kademlia, Explained

แชร์
ฝัง
  • เผยแพร่เมื่อ 16 ธ.ค. 2024

ความคิดเห็น • 102

  • @TheMrChugger
    @TheMrChugger ปีที่แล้ว +35

    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

  • @oneke4498
    @oneke4498 ปีที่แล้ว +7

    You deserve a gold medal for the simple yet clever way of explaining this protocol

  • @MekeninzoUG
    @MekeninzoUG 6 หลายเดือนก่อน +7

    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.

  • @sparkfire47
    @sparkfire47 ปีที่แล้ว +12

    Amazing video. To the point, good visuals, clear audio, perfection.

  • @aaaa-kr7yt
    @aaaa-kr7yt ปีที่แล้ว +7

    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

    • @flcoder
      @flcoder ปีที่แล้ว +2

      I totally agree. The problem is only a handful of us nerds in this world will do a search for kademlia.

    • @CatainaLopez
      @CatainaLopez 10 หลายเดือนก่อน

      @@flcoder jajajaja is so niche

    • @kebman
      @kebman 3 หลายเดือนก่อน

      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.

  • @xKaihatsu
    @xKaihatsu 24 วันที่ผ่านมา

    You did an amazing job of explaining the algorithm. What an ingenious system.

  • @sandromartins3579
    @sandromartins3579 5 หลายเดือนก่อน +2

    I am shocked how simple and fascinating you made it! First time I see a video from you, but already your fan.

  • @parakoopa72
    @parakoopa72 11 หลายเดือนก่อน +2

    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.

    • @n0computer
      @n0computer  7 หลายเดือนก่อน

      Music to our ears. It's not a simple concept!

  • @hhmmdds
    @hhmmdds 6 หลายเดือนก่อน +4

    Best educational video award on TH-cam? They should give out prizes

    • @n0computer
      @n0computer  6 หลายเดือนก่อน +1

      Haha thank you!

  • @thebutlah
    @thebutlah 2 วันที่ผ่านมา

    What an incredible explanation. Thank you so much!

  • @StefanoBub
    @StefanoBub 18 วันที่ผ่านมา

    Incredibly well explained. The algorithm reminds me of a theory spanwned some time ago, about the 5 grades of friendships. You are 5 acquaitances away from anyone on this planet

  • @ajayreddy9176
    @ajayreddy9176 ปีที่แล้ว +2

    nicely presented the complex thing in simple ways

  • @ROBERTOGONZALEZNAVAS
    @ROBERTOGONZALEZNAVAS 6 หลายเดือนก่อน

    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

  • @GodstimeIsrael-m4n
    @GodstimeIsrael-m4n 6 หลายเดือนก่อน +1

    Thanks. Best explanation of Kademlia ever

  • @ramen.uchinanchu
    @ramen.uchinanchu ปีที่แล้ว +3

    Thanks for this, amazing presentation!

  • @michaelgirma8688
    @michaelgirma8688 8 หลายเดือนก่อน

    This is the best explanation out in the web so far. Just earned a sub!!

  • @cken27
    @cken27 6 หลายเดือนก่อน

    I probably need to watch one more time to understand the nuances, but I like the way you explain. Thank you

  • @abheektripathy8991
    @abheektripathy8991 ปีที่แล้ว +2

    just pure knowledge, amazing.

  • @manjurhassan9145
    @manjurhassan9145 3 หลายเดือนก่อน

    This was such a clear explanation. Thank you.

  • @filippomenchini
    @filippomenchini ปีที่แล้ว

    One of the best videos on Kademlia. Really straightforward!

  • @bashiroboev8497
    @bashiroboev8497 ปีที่แล้ว

    The best explanation I've seen in the Internet! Great!

  • @jmms49
    @jmms49 3 หลายเดือนก่อน

    excellent explanation, thank you for making this video!

  • @the_teknomads
    @the_teknomads ปีที่แล้ว

    Must also join the ranks and offer thanks for the eloquent explanation.

  • @shahzaibhassan2777
    @shahzaibhassan2777 ปีที่แล้ว +1

    Amaaaaaaaazing!!!!!!!!!!!!!!!!!!!!!!!!!
    Please keep uploading such great content!

  • @linusgasser5019
    @linusgasser5019 5 หลายเดือนก่อน +1

    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...

    • @rhylow2733
      @rhylow2733 5 หลายเดือนก่อน

      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)

    • @linusgasser5019
      @linusgasser5019 5 หลายเดือนก่อน +1

      @@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.

    • @dagmarski4133
      @dagmarski4133 4 หลายเดือนก่อน

      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.

  • @m___pryor
    @m___pryor ปีที่แล้ว

    Phenomenal video. Came from IPFS :)

  • @kennys1881
    @kennys1881 5 หลายเดือนก่อน

    Really extremely insightful explanation

  • @himanshu899
    @himanshu899 ปีที่แล้ว

    I love the way you have presented the idea behind the paper. Thanks for the video. Hope to see more such papers explained.

  • @rajawatramraj4690
    @rajawatramraj4690 ปีที่แล้ว

    such quality and expertise it was like watching a Netflix episode, Thanks

  • @jeremyckahn
    @jeremyckahn ปีที่แล้ว

    This was brilliant. Thanks for breaking down such complex subject matter in a straightforward way!

  • @shotgan
    @shotgan 7 หลายเดือนก่อน

    Wow, fantastic video!!. You should do a video explaining the K-bucket split. When happens and why :)

  • @ronakshah725
    @ronakshah725 2 หลายเดือนก่อน

    top-notch explanation, subd!

  • @genohm5664
    @genohm5664 7 หลายเดือนก่อน

    Best explanation on the internet!!

  • @mahdikarimi6467
    @mahdikarimi6467 ปีที่แล้ว +4

    I really like this video. earned yourself a sub.

  • @jacobderosa8258
    @jacobderosa8258 10 หลายเดือนก่อน

    I have to make this for my homework in distributed systems really helpful thanks

  • @X90Chris
    @X90Chris 26 วันที่ผ่านมา

    You are amazing! Thank you so much, this is really helpful!!!!

  • @maharajaraadh4397
    @maharajaraadh4397 ปีที่แล้ว

    Please make more videos, go through more papers. Your explanation is really good.

    • @n0computer
      @n0computer  7 หลายเดือนก่อน

      Working on it! We're partway through a series on bloom filters now.

  • @lod20
    @lod20 10 หลายเดือนก่อน

    Amazing, amazing explanation! Thank you

    • @n0computer
      @n0computer  7 หลายเดือนก่อน

      Glad you enjoyed it!

  • @NoNames_tv
    @NoNames_tv ปีที่แล้ว +1

    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 ?

    • @n0computer
      @n0computer  7 หลายเดือนก่อน

      Yes. You're absolutely correct

  • @kamikaz1k
    @kamikaz1k ปีที่แล้ว

    Idk how I got here, but very nice clear explanation. Can you update your channel description to say what you're about?

  • @japanijoota6190
    @japanijoota6190 3 หลายเดือนก่อน

    thank you, this was a great explanation

  • @rallokkcaz
    @rallokkcaz ปีที่แล้ว

    I love this explanation so much. Instantly clicked for me!

  • @GreatCollapsingHrung
    @GreatCollapsingHrung ปีที่แล้ว

    Really clear explanation. Thank you!

  • @launchpad-stevens
    @launchpad-stevens 7 หลายเดือนก่อน

    what a fantastic video! So cool and so dope.

  • @moonlessiguana1826
    @moonlessiguana1826 ปีที่แล้ว

    Awesome awesome awesome video! Loved it, and it's very inspiring

  • @ajml_hnter
    @ajml_hnter ปีที่แล้ว

    Very nice explanation 👍

  • @TheAkiller101
    @TheAkiller101 ปีที่แล้ว

    Such a great explanation ! kudos

  • @solvenlearn
    @solvenlearn ปีที่แล้ว

    Fantastic presentation

  • @zuggrr
    @zuggrr 10 หลายเดือนก่อน

    Amazing explanation ! thank you

  • @franciscoayracaceres7163
    @franciscoayracaceres7163 7 หลายเดือนก่อน

    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 TH-cam, I know all that I need to XDDD. Thanks, for real....

  • @nosh3019
    @nosh3019 ปีที่แล้ว

    great video! thanks a bunch for the work! 😍

  • @FugalBaboon
    @FugalBaboon ปีที่แล้ว

    Wow you definitely just earned a new subscriber 🤝🧠

  • @maxwibert
    @maxwibert 6 หลายเดือนก่อน

    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.

  • @alekseizinchenko1171
    @alekseizinchenko1171 ปีที่แล้ว +1

    Thanks for the video! Which camera you're using?

  • @HamzaMahmood1261
    @HamzaMahmood1261 11 หลายเดือนก่อน

    very easily explained

  • @qualiathesnow
    @qualiathesnow 11 หลายเดือนก่อน

    great video!

  • @lukebrichey
    @lukebrichey ปีที่แล้ว

    Great video, thanks!

  • @deepakkumarm4621
    @deepakkumarm4621 ปีที่แล้ว

    Amazing. Loved it.

  • @m-meier
    @m-meier ปีที่แล้ว

    Very helpful, thank you!

  • @pnyda1994
    @pnyda1994 ปีที่แล้ว

    Best explanation ever

  • @tobias8933
    @tobias8933 ปีที่แล้ว

    Thanks! I love this video so much 🙂

  • @ruizdai7797
    @ruizdai7797 ปีที่แล้ว

    clear explanation, thanks!

  • @tesfayeyimam3700
    @tesfayeyimam3700 ปีที่แล้ว

    This is amazing !!

  • @burlak3182
    @burlak3182 ปีที่แล้ว

    Cool video :)

  • @WhoEls
    @WhoEls 6 หลายเดือนก่อน

    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.

  • @darshankabariya5474
    @darshankabariya5474 6 หลายเดือนก่อน +1

    why xor is not working for 0001 xor 1000 = 9 but real distance is only 7

    • @linusgasser5019
      @linusgasser5019 5 หลายเดือนก่อน

      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)

  • @chrisgravel2747
    @chrisgravel2747 ปีที่แล้ว +1

    At th-cam.com/video/1QdKhNpsj8M/w-d-xo.html shouldn't the n11 node be the second last leaf (from left to right)?

  • @kebman
    @kebman 3 หลายเดือนก่อน

    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. ;)

  • @doven8500
    @doven8500 ปีที่แล้ว

    omg, what a great video

  • @Cottarino
    @Cottarino 4 วันที่ผ่านมา

    I don't think you should say that hashing the computer name, is the same as generating a random number, hashing it again will result in the same number, the hash isn't random, it just looks random.

  • @XxCrawdadCraigxX
    @XxCrawdadCraigxX ปีที่แล้ว

    good video

  • @harshrathi3843
    @harshrathi3843 10 หลายเดือนก่อน

    amazing

  • @LettersAndNumbers300
    @LettersAndNumbers300 6 หลายเดือนก่อน

    I need this

  • @demonsync57
    @demonsync57 10 หลายเดือนก่อน

    Thanks

  • @kebman
    @kebman 3 หลายเดือนก่อน

    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.

  • @amnaalmusawy1780
    @amnaalmusawy1780 ปีที่แล้ว

    amazing video that you

  • @chrraz
    @chrraz 2 หลายเดือนก่อน

    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

  • @markxueyuan
    @markxueyuan 11 หลายเดือนก่อน

    Kademlia is the "small world network" theory in actual use.

    • @n0computer
      @n0computer  7 หลายเดือนก่อน

      Sooooooo much this

  • @kebman
    @kebman 3 หลายเดือนก่อน

    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".

  • @mahendars1417
    @mahendars1417 หลายเดือนก่อน

    Damnnn

  • @edbertkwesi4931
    @edbertkwesi4931 ปีที่แล้ว

    like this video

  • @marinaevdokimova4681
    @marinaevdokimova4681 6 หลายเดือนก่อน

    the lesson was very useful, but his green eyes.......💔💔💔

  • @id104335409
    @id104335409 ปีที่แล้ว

    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.

  • @arkantaha93
    @arkantaha93 9 หลายเดือนก่อน

    Amazing! but please try to speak slower, would be perfect for non-english speakers. Thanks

    • @HandscharGeorgeCostanza
      @HandscharGeorgeCostanza 8 หลายเดือนก่อน

      youtube provides the feature to run at 0.75x speed. his speaking is not a problem.