File: Overlay/Kademlia/Kademlia.ned
C++ definition: click here
The main module of the Kademlia implementation
Author: Sebastian Mies
The following diagram shows usage relationships between modules, networks and channels. Unresolved module (and channel) types are missing from the diagram. Click here to see the full picture.

| Name | Type | Description |
|---|---|---|
| localPort | numeric | base overlay parameters |
| debugOutput | bool | enable debug output |
| keyLength | numeric | overlay key length in bits |
| measureNetwInitPhase | bool | gather statistics when bootstrapping |
| drawOverlayTopology | bool | draw arrow to successor node? |
| hopCountMax | numeric | maximum number of overlay hops |
| lookupNumberNextHops | numeric | lookup parameters |
| lookupParallelPaths | numeric | number of parallel paths |
| lookupParallelRpcs | numeric | number of nodes to ask in parallel |
| lookupSecure | bool | true, if all nodes should be identified with a ping |
| lookupMerge | bool | true, if parallel Rpc results should be merged |
| useBaseLookup | bool | use the base lookup class |
| iterativeLookup | bool | do iterative instead of recursive lookups |
| stabilizeDelay | numeric | kademlia parameters |
| k | numeric | number of paths (size of k-bucket) |
| b | numeric | network diameter O(log_{2^(b)}) |
| s | numeric | number of siblings |
| Name | Direction | Description |
|---|---|---|
| from_udp [ ] | input | gate from the UDP layer |
| to_udp [ ] | output | gate to the UDP layer |
| from_app | input | gate from the application |
| to_app | output | gate to the application |
simple Kademlia parameters: // base overlay parameters localPort : numeric, // UDP port for Chord messages debugOutput : bool, // enable debug output keyLength : numeric, // overlay key length in bits measureNetwInitPhase: bool, // gather statistics when bootstrapping drawOverlayTopology : bool, // draw arrow to successor node? hopCountMax : numeric, // maximum number of overlay hops // lookup parameters lookupNumberNextHops : numeric, // number of next hops in each step lookupParallelPaths : numeric, // number of parallel paths lookupParallelRpcs : numeric, // number of nodes to ask in parallel lookupSecure : bool, // true, if all nodes should be identified with a ping lookupMerge : bool, // true, if parallel Rpc results should be merged useBaseLookup : bool, // use the base lookup class iterativeLookup : bool, // do iterative instead of recursive lookups // kademlia parameters stabilizeDelay : numeric, // stabilization delay k : numeric, // number of paths (size of k-bucket) b : numeric, // network diameter O(log_{2^(b)}) s : numeric; // number of siblings gates: in: from_udp[]; // gate from the UDP layer out: to_udp[]; // gate to the UDP layer in: from_app; // gate from the application out: to_app; // gate to the application endsimple