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.