All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog (modification: no type change headlines) and this project adheres to Semantic Versioning.
3.0.3 - 2020-09-29
- Moved
TypeScripttype packages forlru-cacheandblfromdevDependenciestodependencies, PR #90
3.0.2 - 2020-09-28
- Fixed
TypeScriptimport issue causing problems when integrating the library in aTypeScriptproject, PR #88 - Updated
k-bucketlibrary tov5, added types from new@types/k-bucketpackage from @tomonari-t, PR #88
3.0.1 - 2020-06-10
This release focuses on improving the debugging
capabilities of the library. PR #72
reduces the verbosity of the log output to cut on noise on everyday debugging. There is a new verbose
logger to retain the more verbose output (e.g. with full message bodies) which can be used like this:
DEBUG=devp2p:*,verbose node -r ts-node/register ./examples/peer-communication.tsOther Logging Improvements
- Added number of peers to
refillConnections()debug message - Replaced try/catch logic for EIP-8 auth check to avoid side-effects and get rid of misleading wrong-ecies-header debug output
- Moved debug output in
BanList.add()after the set operation to get the correct size output - Added debug message for
DISCONNECTreason from peer (this was always some constant re-debug reason, and at the end it's mostlyTOO_MANY_PEERS) - Internalize detached logger output from the
devp2p:utillogger
Other Changes
- Refactored
Peerclass for better code readability, PR #77
There has also been a new high-level diagram added to the README which can be used to get an overview on the structure, available loggers and the event flow of the library (PR #76).
3.0.0 - 2020-05-25
First TypeScript release of the library, see PR #56 for all the changes and associated discussion.
All source parts of the library have been ported to TypeScript and working with the library should now therefore be much more reliable due to the additional type safety features provided by the TypeScript language. The API of the library remains unchanged in a JavaScript context.
Noteworthy Changes from PR #56:
- Type additions for all method signatures and class members of all protocol components (
dpt,eth,les,rlpx) - Addition of various structuring interfaces (like PeerInfo for
DPTmessage input) andenumconstructs (like MESSAGE_CODES from theETHprotocol) - Port of the examples to
TypeScript - Port of all the test cases to
TypeScript - Integration of the library into the common ethereumjs-config EthereumJS configuration setup (
standard->TSLintlinting, docs withTypeDoc,TypeScriptcompilation,Prettierformatting rules) - Lots of code cleanups and code part modernizations
Thanks @dryajov for all the great work on this! ❤
Other Updates:
- Added Node 12,13 support, upgrade from Travis to GitHub actions, PR #57
- Updated
ethereumjs-commondependency tov1.5.1for a bootnode update, PR #67 - Removed Node 6, 8 support, updated
secp256k1dependency to fromv3.1.0tov4.0.1, PR #68 - Updated
keccakdependency tov3.0.0, PR #64 - Some dependency cleanup, PRs #62, #65, #58
2.5.1 - 2018-12-12
- Fix connection error by ignoring
RLPXpeers with missing tcp port, PR #45
2.5.0 - 2018-03-22
- Light client protocol (
LES/2) implementation, PR #21 LES/2usage example, see:examples/peer-communication-les.js- Better test coverage for upper-layer protocols (
ETH,LES/2), PR #34
2.4.0 - 2018-02-28
- First release providing a reliable
ETHconnection - Fix Parity
DPTping echo hash bug preventing the library to connect to Parity clients, PR #32 - Fixed a bug not setting weHello in peer after sent
HELLOmsg
2.3.0 - 2018-02-27
- Fix critical
RLPXbug leading to not processing incomingEIP-8AuthorAckmessages, PR #26 - Fix bug not forwarding
k-bucketremove event throughDPT(sopeer:removedfromDPTwas not working), PR #27 - Fix updating
ingressMacwith wrongAuthmsg leading to divergingMachashes, PR #29 - Fix bug not let first
ETHstatusmessage emit amessageevent, PR #30 - Large rework of the test setup, additional
DPT,RLPXandETHsimulator tests, improving test coverage from 48% to 84%, PR #25
2.2.0 - 2017-12-07
EIP-8compatibility- Improved debug messages
- Fixes a bug on DPT ping timeout being triggered even if pong message is received
- Only send connect event after both HELLO msgs are exchanged (fixes unreliable upper-protocol communication start)
- Connection reliability improvements for
peer-communicationexample - API documentation
2.1.3 - 2017-11-09
- Dependency updates
- Improved README documentation