From 9e3f55568ff0562edc0f89f6e637b64ba4fef169 Mon Sep 17 00:00:00 2001 From: arnaucube Date: Tue, 10 Mar 2020 22:23:46 +0100 Subject: [PATCH] Add kademlia slides --- kademlia.pdf | Bin 0 -> 105364 bytes src/kademlia/kademlia.md | 164 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 164 insertions(+) create mode 100644 kademlia.pdf create mode 100644 src/kademlia/kademlia.md diff --git a/kademlia.pdf b/kademlia.pdf new file mode 100644 index 0000000000000000000000000000000000000000..9c9e0bab58eaef8e80165c262cd20cd3bca05866 GIT binary patch literal 105364 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≠jEAnQT3=F}WP( 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 literal 0 HcmV?d00001 diff --git a/src/kademlia/kademlia.md b/src/kademlia/kademlia.md new file mode 100644 index 0000000..4e9da89 --- /dev/null +++ b/src/kademlia/kademlia.md @@ -0,0 +1,164 @@ +--- +marp: true +--- + + +# Kademlia + + +


+[@arnaucube](https://twitter.com/arnaucube) + +2019-04-26 + +--- + +### Overview +- nodes self sets a random unique ID (UUID) +- nodes are grouped in `neighbourhoods` determined by the `node ID` distance +- Kademlia uses `distance` calculation between two nodes + - distance is computed as XOR (exclusive or) of the two `node ID`s + +--- + +- XOR acts as the distance function between all `node ID`s. Why: + - distance between a node and itself is zero + - is symmetric: distance between A to B is the same to B to A + - follows `triangle inequality` + - given A, B, C vertices (points) of a triangle + - AB <= (AC + CB) + - the distance from A to B is shorter or equal to the sum of the distance from A to C plus the distance from C to B + - so, we get the shortest path +--- +- with that last 3 properties we ensure that XOR + - captures all of the essential & important features of a "real" distance function + - is simple and cheap to calculate +- each search iteration comes one bit closer to the target + - a basic Kademlia network with `2^n` nodes will only take `n` steps (in worst case) to find that node + +--- + +### Routing tables +- each node has a routing table, that consists of a `list` for each bit of the `node ID` + - each entry holds the necessary data to locate another node + - IP address, port, `node ID`, etc + - each entry corresponds to a specific distance from the node + - for example, node in the Nth position in the `list`, must have a differing Nth bit from the `node ID` + - so, the list holds a classification of 128 distances of other nodes in the network +--- +- as nodes are encountered on the network, they are added to the `lists` + - store and retrieval operations + - helping other nodes to find a key + - every node encountered will be considered for inclusion in the lists + - keps network constantly updated + - adding resilience to failures and attacks +--- +- `k-buckets` + - `k` is a system wide number + - every `k-bucket` is a `list` having up to `k` entries inside + - example: + - network with `k=20` + - each node will have `lists` containing up to 20 nodes for a particular bit +- possible nodes for each `k-bucket` decreases quickly + - as there will be very few nodes that are that close +- since quantity of possible IDs is much larger than any node population, some of the `k-buckets` corresponding to very short distances will remain empty +--- +- example: +![k-buckets](https://upload.wikimedia.org/wikipedia/commons/6/63/Dht_example_SVG.svg "k-buckets") + - network size: 2^3 + - max nodes: 8, current nodes: 7 + - let's take 6th node (110) (black leaf) + - 3 `k-buckets` for each node in the network (gray circles) + - nodes 0, 1, 2 (000, 001, 010) are in the farthest `k-bucket` + - node 3 (011) is not participating in the network + - middle `k-bucket` contains the nodes 4 and 5 (100, 101) + - last `k-bucket` can only contain node 7 (111) + +--- + +- Each node knows its neighbourhood well and has contact with a few nodes far away which can help locate other nodes far away. +- Kademlia priorizes long connected nodes to remain stored in the `k-buckets` + - as the nodes that have been connected for a long time in a network will probably remain connected for a long time in the future +--- +- when a `k-bucket` is full and a new node is discovered for that `k-bucket` + - node sends a ping to the last recently seen node in the `k-bucket` + - if the node is still alive, the new node is stored in a secondary list (a replacement cache) + - replacement cache is used if a node in the `k-bucket` stops responding + - basically, new nodes are used only when older nodes disappear + +--- + +### Protocol messages +- PING +- STORE +- FIND_NODE +- FIND_VALUE +Each `rpc` msg includes a random value from the initiator, to ensure that the response corresponds to the request + +--- + +### Locating nodes +- node lookups can proceed asynchronously + - `α` denotes the quantity of simultaneous lookups + - `α` tipically is 3 +- node initiates a FIND_NODE request to the `α` nodes in its own `k-bucket` that are closest ones to the desired key +--- +- when the recipient nodes receive the request, they will look in their `k-buckets` and return the `k` closest nodes to the desired key that they know +- the requester will update a results list with the results (`node ID`s) that receives + - keeping the `k` best ones (the `k` nodes that are closer to the searched key) +- the requester node will select these `k` best results and issue the request to them +- the proces is repeated again and again until get the searched key +--- +- iterations continue until no nodes are returned that are closer than the best previous results + - when iterations stop, the best `k` nodes in the results list are the ones in the whole network that are the closest to the desired key +- node information can be augmented with RTT (round trip times) + - when the RTT is spended, another query can be initiated + - always the query's number are <= `α` (quantity of simultaneous lookups) + +--- + +### Locating resources +- data (values) located by mapping it to a key + - typically a hash is used for the map +- locating data follows the same procedure as locating the closest nodes to a key + - except the search terminates when a node has the requested value in his store and returns this value + +--- + +#### Data replicating & caching +- values are stored at several nodes (k of them) +- the node that stores a value + - periodically explores the network to find the k nodes close to the key value + - to replicate the value onto them + - this compensates the disappeared nodes +--- +- avoiding "hot spots" + - for popular values (might have many requests) + - near nodes outside the k closest ones, store the value + - this new storing is called `cache` + - caching nodes will drop the value after a certain time + - depending on their distance from the key + - in this way the value is stored farther away from the key + - depending on the quantity of requests + - allows popular searches to find a storer more quickly + - alleviates possible "hot spots" +- not all implementations of Kademlia have these functionallities (replicating & caching) + - in order to remove old information quickly from the system + +--- + +### Joining the network +- to join the net, a node must first go through a `bootstrap` process +- `bootstrap` process + - needs to know the IP address & port of another node (bootstrap node) + - compute random unique `node ID` number + - inserts the bootstrap node into one of its k-buckets +--- +- `bootstrap` process [...] + - perform a node lookup of its own `node ID` against the bootstrap node + - this populate other nodes `k-buckets` with the new `node ID` + - populate the joining node `k-buckets` with the nodes in the path between that node and the bootstrap node + - refresh all `k-buckets` further away than the `k-bucket` the bootstrap node falls in + - this refresh is a lookup of a random key that is within that `k-bucket` range + - initially nodes have one `k-bucket` + - when is full, it can be split