#tetsy #orchestrator #greedy #peering #node

tetsy-orchestrator

Tetsy Orchestrator enables greedy peering between tetsy nodes

Show the crate…

1 unstable release

0.0.0 May 27, 2021

#6 in #peering

Apache-2.0

4KB

Tetsy Orchestrator

NB: This is a prototype, an updated version will be published soon, with a few more features, improved documentation and code. Tetsy Orchestrator enables greedy peering (and, potentially, other strategies) between Tetsy nodes. It operates as an external program and communicates with its local parity node over JSON-RPC. Orchestrator announces its local node regularly and listens for other announcements to add nodes its own Parity node doesn't peer with. Every node that wants to participate in greedy peering must run Orchestrator alongside. Currently, to be used, a workaround version of Parity with Whisper issues fixed needs to be used. That is, until it's fixed. A node to be managed by Orchestrator needs to enable tetsy_set JSON-RPC API and Whisper. The node's port should be available through the node's public IP. Orchestrator WILL try to "call back home" and will fail to start if this attempt will be unsuccessful. One has to provide a configuration for the node, such as: toml [node_announcement_topic] type = "string" topic = "announcement" This defines which Whisper topic will be used to announce node's enode across the network. A binary topic name can be used as well: toml [node_announcement_topic] type = "binary" topic = "0x...." By default, Orchestrator will announce the node every 30 seconds, and this can be configured as well: toml node_announcement_frequency = 60 By default, Orchestrator will try to figure out node's public IP using http://checkip.amazonaws.com, however, this can be changed to a manual IP address: toml [address] type = "manual" ip = "..." It's also possible to specify different JSON-RPC endpoint (other than http://localhost:8545): toml tetsy_node = "http://host:8545" By default, Orchestrator will try to find tetsy-orchestrator.toml, but this can be changed with a -c/--config argument.

Notes

In some cases, it is useful to see if Tetsy Orchestrator is doing anything. It's typically logging "Polling announcements" into a trace log, which is normally disabled. For that reason, there's reveal_trace_every_secs configuration parameter. It will show this log statement every 10 seconds by default. Setting it to 0 will disable it. Orchestrator also keeps a log of enodes it added (format: "iso8601 enode" lines), configured with orchestrator_additions_file configuration parameter ("tetsy-orchestrator-nodes" by default)

No runtime deps