filecoin-shipyard / 2019-filecoin-network-stats

(Deprecated) Dashboard by Kyokan for tracking network state of go-filecoin devnets in 2019.
Other
34 stars 12 forks source link

confirm there is some mechanism that is filtering old binaries? #26

Open phritz opened 5 years ago

phritz commented 5 years ago

Hi, it appears that the network stats dashboard is somehow filtering logs sent by old binaries. Is that the case? If so, great, just wanted to confirm. We have gone out of our way to ensure that filecoin binaries attempting to connect to the test and user devnets will disconnect if they were built at a different commit than the nodes to which they are connecting. We do this as a temporary measure until we have a model for change that enables nodes built at different commits to interoperate and because of a huge volume of issues reported that were a function of trying to run old code against a new devnet, or vice versa.

Any binaries built before that code went into go-filecoin dont have this disconnect behavior and still connect to the user and test devnets, unfortunately. We're working on something that will prevent this, eg by changing peerids with each release. Even so, we were curious whether there was any mechanism for filtering at the network stats dashboard, looks like the answer is yes but hard to tell.

Can you fill us in? Thanks!

phritz commented 5 years ago

cc @acruikshank @zenground0

mslipper commented 5 years ago

Hey Phritz! Old binaries disconnect after the initial Handshake and emit the following warning:

Mar 26 16:05:41 prod-devnet-2 go-filecoin.err.log 23:05:40.938 WARNI /fil/hello: genesis cid: zDPWYqFCutuHwRZhGXzji9L4eHeoFxxNCxCruGjWje36aAvbK2XV does not match: zDPWYqFCu9VdMN9pUSSttbjJsxd2sTJGZjXv8AGZvquxnsMRFh9e, disconnecting from peer: <peer.ID Qm*cLirsC> hello.go:93 

This is handled by the go-filecoin node that the dashboard talks to. One thing that'd be tremendously beneficial is passing that CID in the heartbeat - there's currently no direct way for me to filter the heartbeating nodes.

phritz commented 5 years ago

This is only true of client binaries that were built at or after the disconnect logic went in. If it is a very old binary it won't have the disconnect logic.

I think passing cid in heartbeat is a good idea and would enable you to filter these really old nodes. File a feature request or fold into https://github.com/filecoin-project/go-filecoin/issues/2426 or https://github.com/filecoin-project/go-filecoin/issues/2421?

phritz commented 5 years ago

(Or you could make the change if you have an associated issue)

mslipper commented 5 years ago

Ah, this is true - to be clearer, the dashboard is currently running the latest go-filecoin release and so includes the disconnect logic. If the node doesn't have the disconnect logic, the dashboard won't be able to discern between them since it relies on the node for chain state.

mslipper commented 5 years ago

I'll file an issue against go-filecoin, and should be able to implement it myself.