neo-go/pkg/network
Roman Khimov d51db20405 network: randomize peer iteration order
While iterating over map in getPeers() is non-deterministic it's not really
random enough for our purposes (usually maps have 2-3 paths through them), we
need to fill our peers queues more uniformly.

Believe it or not, but it does affect performance metrics, baseline (four
nodes, 10 workers):

RPS ≈  7791.675 7996.559 7834.504 7746.705 7891.614 ≈ 7852   ±  1.10%
TPS ≈  7241.497 7711.765 7520.211 7425.890 7334.443 ≈ 7447   ±  2.17%
CPU %    29.853   39.936   39.945   36.371   39.999 ≈   37.2 ± 10.57%
Mem MB 2749.635 2791.609 2828.610 2910.431 2863.344 ≈ 2829   ±  1.97%

Patched:

RPS    8180.760 8137.822 7858.358 7820.011 8051.076 ≈ 8010   ± 2.04% ↑ 2.01%
TPS    7819.831 7521.172 7519.023 7242.965 7426.000 ≈ 7506   ± 2.78% ↑ 0.79%
CPU %    41.983   38.775   40.606   39.375   35.537 ≈   39.3 ± 6.15% ↑ 5.65%
Mem MB 2947.189 2743.658 2896.688 2813.276 2863.108 ≈ 2853   ± 2.74% ↑ 0.85%
2021-08-06 21:10:34 +03:00
..
capability *: enable godot linter and fix all its warnings 2021-05-12 23:17:03 +03:00
extpool *: increase GAS for verification 2021-07-14 10:27:09 +03:00
metrics cli,pkg: use zap.Logger 2020-01-10 11:14:27 +03:00
payload rpc: allow to track notary requests via Notification subsystem 2021-06-01 16:29:04 +03:00
blockqueue.go network: restrict block queue size 2020-09-02 17:04:49 +03:00
blockqueue_test.go block: replace Base with Header 2021-03-10 13:38:44 +03:00
compress.go network: handle length mismatch in decompression routine 2020-08-03 22:38:55 +03:00
discovery.go *: enable godot linter and fix all its warnings 2021-05-12 23:17:03 +03:00
discovery_test.go network: optimize waiting in test 2021-07-08 11:14:35 +03:00
helper_test.go *: drop unused structure fields 2021-05-12 19:41:23 +03:00
message.go network: use optimized decoder for transactions 2021-08-04 23:49:07 +03:00
message_string.go network: replace ConsensusType with ExtensibleType 2021-01-22 10:38:33 +03:00
message_test.go network: drop Network from Message 2021-03-26 13:45:18 +03:00
notary_feer.go core: introduce mempool notifications 2021-02-02 22:01:32 +03:00
peer.go network: support non-blocking broadcast 2020-12-25 14:36:52 +03:00
prometheus.go monitoring: add prometheus monitoring 2019-10-29 20:51:17 +03:00
server.go network: randomize peer iteration order 2021-08-06 21:10:34 +03:00
server_config.go network: limit message number from the same sender 2021-05-12 10:52:11 +03:00
server_test.go network: only ask mempool for intersections with received Inv 2021-08-06 20:53:02 +03:00
tcp_peer.go network: handle incoming message in a separate goroutine 2021-08-06 19:37:37 +03:00
tcp_peer_test.go protocol: add capabilities to version payload 2020-05-27 19:01:14 +03:00
tcp_transport.go network: don't log transport errors on exit 2021-07-08 10:40:54 +03:00
transport.go protocol: add capabilities to version payload 2020-05-27 19:01:14 +03:00