Algorithms

The InterPlanetary File System (IPFS)

I never had the chance to understand how IPFS – the magical public network where a bunch of Web3 stuff is stored – worked until now. Now that I finally have the chance (and the excuse) to look into it, however, I can attempt to answer a number of burning questions I had: 1. who pays for storage in IPFS? Is it free for users or what? 2. How does the process of storing and retrieving a file actually work?

Secure Key-Based Routing with S/Kademlia

Open membership P2P systems are plagued by security issues and DHTs are no exception. In this post, I will try to summarize my understanding of one attempt at mitigating some of the security issues found in the Kademlia DHT in adversarial environments. The resulting work is named S/Kademlia, and it is significant in that it underpins a number of practical DHT implementations, including the libp2p DHT spec.

Expected Lookup Complexity in Chord

As professional tides bring me into P2P once again and I revisit some classics of the P2P literature, it is disconcerting to realize just how poorly did I really understand some of those things in the past. And one of those things is the expected lookup complexity of a DHT like Chord.

Backpropagation and Reverse-mode Autodiff

Backpropagation is a method for computing gradients of complex (as in complicated) composite functions. It is one of those things that is quite simple once you have figured out how it works (the other being Paxos). In this document, I will try to explain it in a way that avoids the issues I had with most of the explanations I found in textbooks and on the Internet. Inherently, this means that this document is well-suited to my way of thinking, but my hope is that it may also suit yours or, at the very least, may give you a different perspective as you try to grasp how backpropagation works.