Skip to main content

Node Status

Date: 11/03/2021

Status

Accepted

Context

We want to be able to display more info regarding the status of the nodes connected to the network. A useful feature would be to display if a node is still connected or not and also to see a "last seen" timestamp of the nodes.

Decision

In order for the connection status to be displayed, an endpoint checking the multichain's getpeerinfo function would be called. This returns the nodes connected at the moment. However, since MultiChain doesn't provide information about when a node was last seen we want to implement this feature in the api. A new stream should be created called network_log and every 24h an event would be saved on the stream displaying the addresses of the nodes connected at that moment. All nodes in the network perform the check but only saves it on the stream if there is no event saved for that day. This way, the check is being recorded even if one of the nodes is disconnected but it is also prevents duplicate entries.

Consequences

The network.list endpoint also need to be adapted to display the information mentioned above. When nodes are listed, the field isConnected should also show the connection status and the lastSeen, which shows on what date the node was last connected.