Technical Learning Resources

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…?


This one? 1.2. XOR Distance and Basic Routing, from a channel called SAFE Pod Montreal.

Looks suspiciously similar to what you describe! Will check it out too, cheers @happybeing


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 pronounce it Ecks-oh-Arr. Anybody who doesn’t pronounce all the letters is lazy.

1 Like

(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)



This is the logical pronunciation because it is a contraction of exclusive-or.

The OR is a logical operation like A or B, so the result is true if either A or B are true. In binary true is 1, false is 0.

Exclusive-OR means the result will be true only if A and B have different values.

So for the result of A XOR B to be 1, A and B have to be different but if both are 1, or if both are 0, the result is 0.


I say ex or… that is how it reads to me.

Snap ‐ @happybeing

1 Like

I actually thought you were serious until I saw your clarification :smiley:

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.


Proud to be lazy and true to the original semantics of XOR as @happybeing explained

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

Whatever does the job…

1 Like

Fair enough :slight_smile:
Now tell me your thoughts on umount

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.

       A umount command appeared in Version 6 AT&T UNIX.
1 Like

Yeah, most unix commands were shortened to save on typing. I had a mate who pronounced uniq as uni-queue :joy:

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

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

I mind them, had a couple full of these 9Gb disks hooked to my Sun workstation - all of it liberated from various upgrade contracts I was on :slight_smile:

SCSI is long gone though …

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.


I’m studying Kademlia network architectures too!

(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


Och aye, laddie! We ah’ want that tae, it’s a helluva queue tho