Features
- dht: implement support for additional mainline methods (db977b7)
- flush metrics every minute (de6001b)
- metadata: add support for message stream encryption (783dca8)
- metadata: add support for Multipath TCP (e81f3b1)
- persistence: implement a ZeroMQ interface (a4654c2)
- persistence: support both cgo and non-cgo builds (96ee524)
- stats: add a package for logging metrics (c96820b)
Bug Fixes
- bencode: impossible condition nil != nil (c36c58b)
- dht: correct slice reinitialization issue in CompactNodeInfo Marshaler (a72de2c)
- dht: ignore nodes that have invalid ports (819d2dd)
- dht: increase chan size but do not drop idx results (8300868)
- dht: limit the number of nodes returned by dump (1facb2b)
- infohash: gracefully handle bad hex strings without panicking (ab2e677)
- metadata: fallback on math/rand when crypto/rand fails (f7c7dee)
- oci: add zeromq dependencies in oci image build (4ec62bb)
- oci: avoid dev deps installation in the final container (914ddd4)
- oci: the 'as' keyword should match the case of the 'from' keyword (bf557ed)
- oom: lower the default
indexer-max-neighborsto 5000 peers (132bf1b) - persistence: replace zeromq deps with the gopkg.in counterpart (a75f859)
- persistence: return an invalid value - avoid panics (7e43e10)
- persistence: rows might be nil if err != nil (8f09f8e)
- persistence: rows might be nil if err != nil (c61d863)
- remove go:build statement (2c09c90)
Performance Improvements
- dht:
rt.nodes- avoid excessive allocations (3ced3c6) - dht: add slice of neighbors in the routing table (f115de1)
- dht: discard old entries in the routing table if it gets too big (1339624)
- dht: on sample_infohash query received send a find_node query (dc0e761)
- dht: prioritize
get_peersandfind_nodequeries (565801a)