Releases: sigp/discv5
v0.1.0-beta.4
This release provides a number of upgrades/improvements. The key updates are:
- Adds an abstract filter to the local routing table, allowing easier ways to filter entries from being added to the table. This is currently used for creating limits on IP ranges and incoming/vs outgoing nodes.
- Introduces the concept of connection direction. Sessions that get established are now tagged with either being ingoing or outgoing. This can be used to limit the number of incoming connections allowed per bucket.
- Improves and adds some extra filtering logic to harden the security and limit the allowed actions of malicious actors.
- Keeps track of peers to ping individually. Only send pings on an interval on a per-peer basis.
- Prevent counting IP votes from all peers, rather just those in the routing table.
- Dependency updates
- Strict IPv4 conversion for vote counting.
v0.1.0-beta.3
This release provides a number of dependency updates.
The most important updates are:
- Update to tokio 0.1
- Update RLP to 0.5
- Update ENR to 0.5 (and therefore the underlying cyptographic libraries)
v0.1.0-beta.2
This release provides a number of security and dependency updates.
Primarily:
- Tokio update to 0.3
- Extended packet verification
- Maintaining session challenges on failed responses
- Documentation fixes.
v0.1.0-beta.1
This release signifies the update to v5.1 of the specification. Please see the v5.1 specification for the protocol level feature updates.
This release is the first of the beta channel. The 5.1 specification of discovery v5 is not compatible with v5.0. Therefore this version is not-compatible with any prior version.
Moving forward, only v5.1 and future versions will be supported with 5.0 being deprecated.
Major changes (excluding modification to the underlying wire protocol and specification update):
- New API function:
talk_req()
allows users to submit a TALK request (a new RPC introduced in 5.1). - Crypto library has shifted from libsecp256k1 to k256
log
dependency updated totracing
- New configuration parameter
max_nodes_response
- v5.1 allows collapsing multiple FINDNODES requests into a single call. We can now request many buckets in a single request. This configuration parameter limits the number of nodes in response we will accept. Default is 16. - New configuration parameter
talkreq_callback
- v5.1 adds a new RPC call calledTALK
. Nodes are able to request arbitrary data based on a protocol. A user may set a function that takes the received bytes and forms a response to interact with this new RPC method. Note: This API is limited in its structure and may be updated in the future.
v0.1.0-alpha.13
v0.1.0-alpha.11
Description
This release brings a number of minor improvements and marks the last major update before the migration to the v5.1 spec.
Specifically
- Shifts the underlying
net2
crate to the maintainedsocket2
crate. - Adds a message counter to prevent the possibility of re-using a nonce for a message.
- Removes unnecessary ID verification when checking challenge messages.
v0.1.0-alpha.10
This release provides a number of small improvements to the protocol.
It updates the crypto library from ssl to rust-crypto's aes-gcm library. Removes unnecessary async functions and adds miscelanneous code improvements.
v0.1.0-alpha.7
Release Notes
This update contains a bug-fix which corrects a panic which can occur when a node responds with a WHOAREYOU request to a request it has already answered. Various dependency updates are also included.
In summary form:
- A bug-fix (The Jonny Prevention Patch) which removes an active_request_auth mapping for requests that get responded to.
- Updates to dependencies to accommodate the ed25519 update
- Increase in the default size of the session cache, to prevent sessions expiring early and rapidly.
v0.1.0-alpha.5
Discv5 Overhaul
This release brings major structural changes and API modifications.
Core changes:
- Packet inbound/outbound, session management and query logic are split out into their own long-lived tasks
- Support for multiaddr connections with the
libp2p
flag - User-level API involves asynchronous 'static queries
v0.1.0-alpha.2
Security and Bug Fixes
- ENR has been updated which corrects a decoding panic with malformed strings
- Fix for session timeouts which could error when creating multiple timeouts for a single sesison
- QueryID's have been added to
FindNodeResults
and returned in query requests, allowing user's to track which result corresponds to which query. - The
find_enr()
function has been made public. - Misc documentation and code improvements.