Parameters
E-Chord allows for customization of the network through its parameters. Note that, unless otherwise stated, the parameters for every node in a network must be the same. Executing a network whose nodes use different values for their parameters will result in undefined behavior.
Node parameters
All configurable parameters used by an E-Chord node can be found in the config/params.json file.
In the below tables, a list of all available node parameters is presented, along with its function.
seed_server
These are parameters related to the seed server.
| Parameter | Value Type | Description |
|---|---|---|
| ip | string |
IP address of the seed server. |
| port | int |
Port of the seed server. |
| attempt_limit | int |
Number of times to attempt connection before exiting. |
host
These are parameters related to the server hosted by the node. These parameters may be different between nodes.
| Parameter | Value Type | Description |
|---|---|---|
| server_port | int |
Port number to use when starting the node. |
ring
These are parameters related to the virtual ring the network uses.
| Parameter | Value Type | Description |
|---|---|---|
| bits | int |
Number of bits of IDs on the ring. This also determines the maximum number of nodes that can join the ring, which would be 2bits. |
| fallback_fingers | int |
Number of additional fingers to send with the closest preceding finger as a response to a get_closest_preceding_finger RPC. These are used as fallback fingers in case the closest is down. |
| stabilize_delay | int |
Seconds between each stabilize event. |
net
These are parameters related to networking operations.
| Parameter | Value Type | Description |
|---|---|---|
| timeout | int |
Seconds to wait for a response before timeout. |
| connection_lifespan | int |
Seconds to wait before closing a connection that hasn't been used. This resets whenever a connection is used. |
| data_size | int |
Maximum size (in bytes) of a message. Messages longer than this are sent in chunks. |
logging
These are parameters related to the output produced by each node. The value of these parameters can be different between nodes in a network.
| Parameter | Value Type | Description |
|---|---|---|
| level | string |
Level of logging to display. Available levels are INFO, DEBUG and CRITICAL. |
testing
These are parameters related to the simulation scripts and do not affect node execution.
| Parameter | Value Type | Description |
|---|---|---|
| initial_port | int |
Port of the first node started by the mass_node_join script. Subsequent nodes will use increasing port numbers, beginning with this value. |
| total_nodes | int |
Total number of nodes to attempt to add to the simulated network. |
| stabilize_wait_period | - | Unused |
| percentage_to_remove | int |
Percentage of total nodes to remove from the network, used by the mass_node_leave script. |
Seed server parameters
If you're using the default seed server provided with E-Chord, there are a few parameters you can customize. These can be found in the params.json file.
host
These are parameters related to the server hosted by the seed server.
| Parameter | Value Type | Description |
|---|---|---|
| server_port | int |
Port to use when starting the seed server. |
net
These are parameters related to networking operations.
| Parameter | Value Type | Description |
|---|---|---|
| data_size | int |
Maximum size (in bytes) of a message. Messages longer than this are sent in chunks. This should be the same as the data_size parameter of the nodes. |
| timeout | int |
Seconds to wait for a response before timeout. |
| polling_delay | int |
Seconds to wait between polling events. |
logging
These are parameters related to the output produced by the seed server.
| Parameter | Value Type | Description |
|---|---|---|
| level | string |
Level of logging to display. Available levels are INFO, DEBUG and CRITICAL. |