Compound module for a simple DHT using the KBR interface
Author: Gregoire Menuel, Ingmar Baumgart
The following diagram shows usage relationships between types. Unresolved types are missing from the diagram. Click here to see the full picture.
The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram. Click here to see the full picture.
Name | Value | Description |
---|---|---|
display | i=block/segm |
Name | Direction | Size | Description |
---|---|---|---|
udpIn | input |
gate from the UDP layer |
|
from_lowerTier | input |
gate from the lower tier |
|
from_upperTier | input |
gate from the upper tier |
|
tcpIn | input |
gate from the TCP layer |
|
tcpOut | output |
gate to the TCP layer |
|
udpOut | output |
gate to the UDP layer |
|
to_lowerTier | output |
gate to the lower tier |
|
to_upperTier | output |
gate to the upper tier |
Name | Type | Default value | Description |
---|---|---|---|
dht.rpcUdpTimeout | double |
default timeout value for direct RPCs |
|
dht.rpcKeyTimeout | double |
default timeout value for routed RPCs |
|
dht.optimizeTimeouts | bool |
calculate timeouts from measured RTTs and network coordinates |
|
dht.rpcExponentialBackoff | bool |
if true, doubles the timeout for every retransmission |
|
dht.debugOutput | bool |
enable debug output |
|
dht.numReplica | int |
number of replica for stored data records |
|
dht.numGetRequests | int |
number of queried replica for get requests |
|
dht.ratioIdentical | double |
ratio of identical replica needed for a valid result |
|
dht.secureMaintenance | bool |
use a secure maintenance algorithm based on majority decisions |
|
dht.invalidDataAttack | bool |
if node is malicious, it tries a invalidData attack |
|
dht.maintenanceAttack | bool |
if node is malicious, it tries a maintenance attack |
// // Compound module for a simple DHT using the KBR interface // // @author Gregoire Menuel, Ingmar Baumgart // module DHTModules like ITier { parameters: @display("i=block/segm"); gates: input udpIn; // gate from the UDP layer input from_lowerTier; // gate from the lower tier input from_upperTier; // gate from the upper tier input tcpIn; // gate from the TCP layer output tcpOut; // gate to the TCP layer output udpOut; // gate to the UDP layer output to_lowerTier; // gate to the lower tier output to_upperTier; // gate to the upper tier submodules: dht: DHT; dhtDataStorage: DHTDataStorage; connections allowunconnected: from_lowerTier --> dht.from_lowerTier; to_lowerTier <-- dht.to_lowerTier; from_upperTier --> dht.from_upperTier; to_upperTier <-- dht.to_upperTier; }