I did a quick review of the code for the QUIC network implementation. It seems to be creating a QUIC session and dropping it for every incoming packet. Is this intentional? If yes, why?
Of course thrashing sessions will penalise performance – and a 3x slowdown when compared to UDP is not even bad in that circumstance.
To run fair UDP vs QUIC comparisons, this aspect should be fixed.
(BTW – apologies in advance if I misread the code – I did a very quick pass)
Relevant code: https://github.com/ConsenSys/handel/blob/master/network/quic/net.go#L127
CC @marten-seemann