EDIT: original post is below, but I changed tack and decided it’d be nice to collect general resources related to Safe in one place. Kademlia, XOR, DHTs, DBCs, BLS signatures, and so on. Feel free to share, and optionally include some thoughts and observations on the resource. Cheers.
Hey SAFE gang,
Feel free to share resources / thoughts / descriptions / metaphors / etc related to Kademlia here. As implemented and used by Safe, or generally.
Things are kicking off, and anyone who has half-looked at Kademlia, or been putting it off, or who wants to refresh their knowledge, there’s clearly never been a better time. I’m in the “finally checking it out half-seriously” boat.
I managed to get an hour today to go through this, taking notes, drawing little diagrams, looking up words I half-know Distributed Hash Tables with Kademlia — Stanford Code the Change Guides documentation it seems good, but then again, it’s the first tutorial I found on the subject when I searched. Oh how I wish I’d five hours free instead of one to go at it.
My plan would be, after I get through this one in a few days, to look up: “build a kademlia network”, and see if I can make a toy one.
So yes, resources, thoughts, all welcome. Does SAFE do anything differently to a standard Kademlia DHT? What other uses has Kademlia been put to?
Back in 2014ish someone (I think from MaidSafe) gave one or two presentations about this and xor addressing. Those may well still be applicable and were pretty good. They may even be in the MaidSafe channel on YouTube. I’ll have a look - no, no sign there - does anyone else remember them / know where they are…?
I’ve gotten through 12 minutes of the 17 with extensive notes and searching things, and I can confirm, it’s really a very nice explanation from Erick. The simple examples in a reduced space are great, and seems totally obvious after you’ve seen it - imagine 16 computers, assign them numbers, and move a few pretend messages or files around. Something I’ll be trying to copy and employ as I go on learning about networks.
Small question, not important at all, mild chance of causing a flame war, but I do enjoy knowing the norms: how do people pronounce XOR? I’d been saying “Ex-Oh-Or”, and Erick says something that sounds like “Kzor”. Which sounds more futuristic, I suppose.
(I assumed I didn’t need to call out that I’m joking, but then remembered we have a global, multilingual community. For the avoidance of doubt that was a joke. I say Zor)
I actually thought you were serious until I saw your clarification
Thanks @happybeing, that is clear. I found an intuitive description earlier today (which I just tried to re-find and couldn’t find, typical) where it was explained that XOR is how kids understand “or”.
Mother: you can have ice cream or chocolate.
Child: but I want both!
Mother: you can have ice cream or chocolate.
Programmer: oh how generous, thanks, I’ll be stuffed after both of those!
And for the pronunciation then, we have zor, ex-or and ex-oh-or/ar. I think ex-or makes sense given the fact it hints at what it is, but zor sounds like a sci-fi villain, so obviously that’s a great choice too. I’m going to say ex-or, and chalk it down as one of those things. Great progress aha.
Previously the pedant in me would be adamant that ex-or was the correct pronunciation given its meaning. As I’ve gotten older & a bit more relaxed, I’m happier to go with something that’s a bit less of a mouthful. Sounding out X-or makes sense - there will be no ambiguity, but putting in context & saying something like X-or URL doesn’t scan too well & would become tedious for me after a while so I take the lazy route & say zor. I think my philosophy logic lecturers said X-or & my computing ones said Ksor. Was a long time ago mind you. Saw something about a Twitter poll suggesting X-or was the most popular, followed by zor, then Ksor.
For me I internalise it as what it means, unmount, rather than what it actually says - which was one unfortunate typo perhaps 47+ years ago by a stressed dev (almost definitely someone famous) who was in a hurry and it Just Stuck.
HISTORY
A umount command appeared in Version 6 AT&T UNIX.
@neo is old enough to know about optimisation by estimating the next time the spot on the drum you just wrote to will come round.
Me, I remember building 19" rack units that were very proudly labelled 16k core store. Used in test equipment for Inertial Navigation Systems for Tornado, Jaguar and stuff they wouldn’t tell us about. Then my manager took two of them to the Paris Air Show and dropped one. Which was unfortunate… and very expensive.
Thankfully by the time I started my career we had A1000 storage arrays which had hot swappable disks (when they actually worked), eventually up to a whopping 36GB per disk! (though 9GB disks were more common unless you had cash to splash). Then SAN took over… Our EMC engineer explained that they didn’t install arrays into data centres which were still under construction, due to an unfortunate incident where someone powered the array up and the fans sucked all the dust and debris straight into the array! It was someone’s million quid mistake.
Too right. Swapping disk on the mainframe was a 38 head drum drive (36 bits). 10 platter 14" 80 MB removal disk pack drives and mag/dec tapes as bulk storage. Not to mention punch cards as bulk input, editing programs by replacing cards with newly punched cards.
The first hard drive I bought for myself was a 5MB 5 1/4" half height drive going into a CP/M computer. But first I hooked up my self was a 14" hard drive into a Unix machine.
And add to that core memory.
I always pronounced XOR as X-OR. Its a or function where you can only have one or the other not both. 0x0=0 1x0=1 0x1=1 1x1=0 (The x should be a x in a circle) So useful in digital circuits and one of the last logic gates types people seem to understand. The cake or icecream example is a good one.
(ChatGPT, describe in a Scottish accent what a kademlia network is in terms of Legos):
Och aye, laddie! Let me tell ye aboot this Kademlia network using the braw example of Legos.
Ye ken how ye can build a Lego structure wi’ different wee pieces that fit thegither? Weel, in a Kademlia network, ye’ve got a bunch of computers, or “nodes,” that can communicate wi’ each other and share information. Each node is like a Lego brick, and they can connect to other nodes to form a network.
Now, just like how ye can build a variety of different structures wi’ Legos, the Kademlia network can be used for different things too. For example, ye could use it to store and share files, or to host websites. And just like how ye can add more Lego bricks to make yer structure bigger and stronger, ye can add more nodes to the Kademlia network to make it more robust and efficient.
So there ye have it, laddie! The Kademlia network is like a big Lego structure made up of lots of individual nodes that can communicate wi’ each other to get things done.
Ok I’m an expert now, I’ll accept a full time remote work position with MaidSafe with no less than a 6 figure salary and full benefits thank you very much