8bb1ecb45a
Use circular buffer which is a bit more appropriate. The problem is that priority queue accepts and stores equal items which wastes memory even in normal usage scenario, but it's especially dangerous if the node is stuck for some reason. In this case it'll accept from peers and put into queue the same blocks again and again leaking memory up to OOM condition. Notice that queue length calculation might be wrong in case circular buffer wraps, but it's not very likely to happen (usually blocks not coming from the queue are added by consensus and it's not very fast in doing so).
33 lines
1.2 KiB
Modula-2
33 lines
1.2 KiB
Modula-2
module github.com/nspcc-dev/neo-go
|
|
|
|
require (
|
|
github.com/abiosoft/ishell/v2 v2.0.2
|
|
github.com/abiosoft/readline v0.0.0-20180607040430-155bce2042db
|
|
github.com/alicebob/miniredis/v2 v2.15.1
|
|
github.com/btcsuite/btcd v0.22.0-beta
|
|
github.com/dgraph-io/badger/v2 v2.0.3
|
|
github.com/go-redis/redis v6.15.9+incompatible
|
|
github.com/gorilla/websocket v1.4.2
|
|
github.com/hashicorp/golang-lru v0.5.4
|
|
github.com/mr-tron/base58 v1.2.0
|
|
github.com/nspcc-dev/dbft v0.0.0-20210721160347-1b03241391ac
|
|
github.com/nspcc-dev/go-ordered-json v0.0.0-20210915112629-e1b6cce73d02
|
|
github.com/nspcc-dev/neofs-api-go v1.27.1
|
|
github.com/nspcc-dev/rfc6979 v0.2.0
|
|
github.com/pierrec/lz4 v2.6.1+incompatible
|
|
github.com/prometheus/client_golang v1.11.0
|
|
github.com/stretchr/testify v1.7.0
|
|
github.com/syndtr/goleveldb v1.0.1-0.20210305035536-64b5b1c73954
|
|
github.com/twmb/murmur3 v1.1.5
|
|
github.com/urfave/cli v1.22.5
|
|
go.etcd.io/bbolt v1.3.6
|
|
go.uber.org/atomic v1.9.0
|
|
go.uber.org/zap v1.18.1
|
|
golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97
|
|
golang.org/x/term v0.0.0-20210429154555-c04ba851c2a4
|
|
golang.org/x/text v0.3.6
|
|
golang.org/x/tools v0.0.0-20201022035929-9cf592e881e9
|
|
gopkg.in/yaml.v2 v2.4.0
|
|
)
|
|
|
|
go 1.15
|