The uTP-over-DiscV5 document specifies that all uTP traffic is encapsulated into TALKREQ
packets while TALKRESP
is not used. The problem is that the current DiscV5 implementation kind of insists on doing TALKREQ
/ TALKRESP
packet exchanges and expects a response to every request. See the existing interface here:
type TalkRequestHandler func(enode.ID, *net.UDPAddr, []byte) []byte
func (t *UDPv5) RegisterTalkHandler(protocol string, handler TalkRequestHandler) {
func (t *UDPv5) TalkRequest(n *enode.Node, protocol string, request []byte) ([]byte, error) {