// implements eventmeter.DisconnectCallbackFunc func (tn *TendermintNetwork) disconnectCallback(chain *types.ChainState, val *types.ValidatorState) eventmeter.DisconnectCallbackFunc { return func() { // Validator is down! chain.SetOnline(val, false) // reconnect // TODO: stop trying eventually ... for { time.Sleep(time.Second) if err := val.Start(); err != nil { log.Debug("Can't connect to validator", "valID", val.Config.Validator.ID) } else { // register callbacks for the validator tn.registerCallbacks(chain, val) chain.SetOnline(val, true) // TODO: authenticate pubkey return } } } }