neo-go/pkg/network
Anna Shaleva 9b364aa7ee network: do not allow to request invalid block count
The problem is in peer disconnection due to invalid GetBlockByIndex
payload (the logs are from some patched neo-go version):
```
дек 15 16:02:39 glagoli neo-go[928530]: 2022-12-15T16:02:39.490Z        INFO        new peer connected        {"addr": "10.78.69.115:50846", "peerCount": 3}
дек 15 16:02:39 glagoli neo-go[928530]: 2022-12-15T16:02:39.490Z        WARN        peer disconnected        {"addr": "10.78.69.115:50846", "error": "invalid block count", "peerCount": 2}
дек 15 16:02:39 glagoli neo-go[928530]: 2022-12-15T16:02:39.490Z        INFO        started protocol        {"addr": "10.78.69.115:50846", "userAgent": "/NEO-GO:1.0.0/", "startHeight": 0, "id": 1339571820}
дек 15 16:02:39 glagoli neo-go[928530]: 2022-12-15T16:02:39.491Z        INFO        new peer connected        {"addr": "10.78.69.115:50856", "peerCount": 3}
дек 15 16:02:39 glagoli neo-go[928530]: 2022-12-15T16:02:39.492Z        WARN        peer disconnected        {"addr": "10.78.69.115:50856", "error": "invalid block count", "peerCount": 2}
дек 15 16:02:39 glagoli neo-go[928530]: 2022-12-15T16:02:39.492Z        INFO        started protocol        {"addr": "10.78.69.115:50856", "userAgent": "/NEO-GO:1.0.0/", "startHeight": 0, "id": 1339571820}
дек 15 16:02:39 glagoli neo-go[928530]: 2022-12-15T16:02:39.492Z        INFO        new peer connected        {"addr": "10.78.69.115:50858", "peerCount": 3}
дек 15 16:02:39 glagoli neo-go[928530]: 2022-12-15T16:02:39.493Z        INFO        started protocol        {"addr": "10.78.69.115:50858", "userAgent": "/NEO-GO:1.0.0/", "startHeight": 0, "id": 1339571820}
дек 15 16:02:39 glagoli neo-go[928530]: 2022-12-15T16:02:39.493Z        WARN        peer disconnected        {"addr": "10.78.69.115:50858", "error": "invalid block count", "peerCount": 2}
дек 15 16:02:39 glagoli neo-go[928530]: 2022-12-15T16:02:39.494Z        INFO        new peer connected        {"addr": "10.78.69.115:50874", "peerCount": 3}
дек 15 16:02:39 glagoli neo-go[928530]: 2022-12-15T16:02:39.494Z        INFO        started protocol        {"addr": "10.78.69.115:50874", "userAgent": "/NEO-GO:1.0.0/", "startHeight": 0, "id": 1339571820}
дек 15 16:02:39 glagoli neo-go[928530]: 2022-12-15T16:02:39.494Z        WARN        peer disconnected        {"addr": "10.78.69.115:50874", "error": "invalid block count", "peerCount": 2}
```

GetBlockByIndex payload can't be decoded, and the only possible cause
is zero (or <-1, but it's probably not the case) block count requested.

Error is improved as far.
2022-12-28 13:04:56 +03:00
..
capability [#2442] English Check 2022-05-04 19:48:27 +03:00
extpool [#2442] English Check 2022-05-04 19:48:27 +03:00
payload network: do not allow to request invalid block count 2022-12-28 13:04:56 +03:00
blockqueue.go network: do not allow to request invalid block count 2022-12-28 13:04:56 +03:00
blockqueue_test.go network: do not allow to request invalid block count 2022-12-28 13:04:56 +03:00
compress.go network: check compressed payload size in decompress 2022-03-24 17:22:55 +03:00
discovery.go network: add random slight delay to connection attempts 2022-11-17 18:42:43 +03:00
discovery_test.go network: allow multiple bind addresses for server 2022-12-07 13:06:03 +03:00
fuzz_test.go *: bump minimum supported go version 2022-08-08 13:59:32 +03:00
helper_test.go config: add a special Blockchain type to configure Blockchain 2022-12-07 17:35:53 +03:00
message.go golangci: enable errorlint and fix everything it found 2022-09-02 18:36:23 +03:00
message_string.go transaction: fix Rules stringer, it's WitnessRules in C# 2022-05-06 10:08:09 +03:00
message_test.go network: check compressed payload size in decompress 2022-03-24 17:22:55 +03:00
notary_feer.go network: decouple it from blockchainer.Blockchainer 2022-01-14 19:57:16 +03:00
peer.go network: rework discoverer/server interaction 2022-11-17 17:07:19 +03:00
prometheus.go network: add prometheus histogram with cmd processing time 2022-10-17 22:51:16 +03:00
server.go network: do not allow to request invalid block count 2022-12-28 13:04:56 +03:00
server_config.go *: fix Neo and NeoGo misuses 2022-12-07 17:29:09 +03:00
server_test.go config: add a special Blockchain type to configure Blockchain 2022-12-07 17:35:53 +03:00
state_sync.go network: decouple it from blockchainer.Blockchainer 2022-01-14 19:57:16 +03:00
tcp_peer.go network: allow multiple bind addresses for server 2022-12-07 13:06:03 +03:00
tcp_peer_test.go network: allow multiple bind addresses for server 2022-12-07 13:06:03 +03:00
tcp_transport.go *: use zap.Stringer instead of zap.String where it can be used 2022-12-13 12:44:54 +03:00
transport.go network: allow multiple bind addresses for server 2022-12-07 13:06:03 +03:00