Releases: vacp2p/nim-libp2p
v1.2.0
What's Changed
highlights
- gossipsub IDontWant #934
- NAT hole-punching support https://docs.libp2p.io/concepts/nat/hole-punching/
- yamux fully supported
Features
- Allow to override TCP connection timeouts by @Menduist in #903
- basic metrics for rendezvous by @vpavlin in #905
- Add GossipSub ping by @Menduist in #912
- GossipSub: IDontWant by @Menduist in #934
- Bandwidth estimate as a parameter by @diegomrsantos in #941
- IDontWant metrics by @Menduist in #946
- GossipSub Rate Limit by @diegomrsantos in #920
- add hole-punching interop tests by @diegomrsantos in #998
- feat: Yamux timeout by @lchenut in #1029
Changes
-
Autonat and HP changes by @diegomrsantos in #899
-
Consider dns as public address by @diegomrsantos in #913
-
GossipSub: remove peer if we can't establish sendConn by @Menduist in #886
-
Transports: handle TransportAbortedError properly by @Menduist in #916
-
Bumper: fix case where target is up to date by @Menduist in #917
-
TCP transport: handle getObservedAddr errors by @Menduist in #918
-
Fix #916 regression causing accept loop lockup by @Menduist in #919
-
Remove all
Result.get()
s &Option
->Opt
by @Menduist in #902 -
Handling Opt[PeerId] in logging by @diegomrsantos in #923
-
standard nimble env vars by @arnetheduck in #921
-
avoid
ProveField
warning incrypto.init
by @etan-status in #915 -
Gossipsub scoring improvements by @diegomrsantos in #909
-
wstransport.nim: avoid re-raising 'TransportOsError' to avoid stopping
switch.accept
by @Ivansete-status in #929 -
avoid a few zeroMem by @arnetheduck in #932
-
Prevent concurrent IWANT of the same message by @diegomrsantos in #943
-
avoid importing
ecnist
when not needed by @arnetheduck in #942 -
Improve rendezvous advertise by @diegomrsantos in #951
-
Split msgs in iwant response if bigger than limit by @diegomrsantos in #944
-
Add a flag if a peer should be disconnected when above rate limit by @diegomrsantos in #954
-
Rate Limit tests by @diegomrsantos in #953
-
Fix WS transport when the connection aborts by @lchenut in #967
-
Revert "Prevent concurrent IWANT of the same message (#943)" by @diegomrsantos in #977
-
Rate limit fixes by @diegomrsantos in #965
-
fix: doc workflow by @diegomrsantos in #985
-
fix chronos v4 compat by @arnetheduck in #982
-
fix: remove unittest2 range by @diegomrsantos in #986
-
fix(dcutr): make the dcutr client inbound and the server outbound by @diegomrsantos in #983
-
Make ObservedAddrManager injectable by @diegomrsantos in #970
-
fix(multiaddress): add quic-v1 multiaddress support by @diegomrsantos in #988
-
fix(dcutr): handle tcp/p2p addresses by @diegomrsantos in #989
-
fix(yamux): doesn't work in a Relayv2 connection by @diegomrsantos in #979
-
fix(identify): do not add p2p and relayed addrs to observed addr manager by @diegomrsantos in #990
-
fix(dcutr): update the DCUtR initiator transport direction to Inbound by @diegomrsantos in #994
-
fix: move workflows for Nim Devel and legacy i386 from "Daily" by @romanzac in #968
-
fix: remove forgotten "matrix-prep" job by @romanzac in #997
-
remove redundant gcsafe annotations by @arnetheduck in #999
-
include connection info when logging identify message by @etan-status in #991
-
libp2p/multiaddress.nim: use of IpAddress instead of ValidIpAddress by @Ivansete-status in #1001
-
improvement(yamux): make the window size configurable by @lchenut in #987
-
improvement(ci): improve ci daily workflows by @diegomrsantos in #1002
-
fix: use a temp var in withValue by @diegomrsantos in #1010
-
fix(hole-punching-interop): update nim to 1.6.16 by @diegomrsantos in #1012
-
fix: compilation issue when
libp2p_expensive_metrics
is enabled. by @diegomrsantos in #1014 -
fix: more metrics issues when libp2p_expensive_metrics is enabled by @diegomrsantos in #1016
-
tests(flaky): Increase check timeouts by @AlejandroCabeza in #995
-
docs: add comments and improve yamux readability by @lchenut in #1006
-
test(flaky): Log checkExpiring failure by @AlejandroCabeza in #1018
-
improvement: enhanced checkExpiring macro with custom timeout by @diegomrsantos in #1023
-
docs(general): Improve docs by @AlejandroCabeza in #1021
-
feat: message prioritization with immediate peer-published dispatch and queuing for other msgs by @diegomrsantos in #1015
-
fix: allFuturesThrowing compilation issue on daily by @diegomrsantos in #1026
-
Fix empty path crash issue for MultiAddresses
unix
,ip6zone
,dns***
. by @cheatfate in #1025 -
fix: move transport interop tests to nim-libp2p repo by @diegomrsantos in #1031
-
use chronos 4.0.0 by @diegomrsantos in #1030
-
fix typo in
ProtoMessage.toString()
by @etan-status in #1033 -
increase tolerance of
simple heartbeat
test by @etan-status in #1034 -
remove unused
MultiBase.encode(..., Cid)
function by @etan-status in #1036 -
move
allFutureThrowing
helper to tests by @etan-status in #1037 -
use new Chronos
trackCounter
APIs for leaks checks in tests by @etan-status in #1038 -
remove unused
LPStreamError
types by @etan-status in #1048 -
change
SecioError
andNoiseError
to descendants ofLPStreamError
by @etan-status in #1047 -
do not log yamux buffers without sanitization (trace log level) by @etan-status in #1046
-
don't forget closing the stream when final
{Fin}
fails in yamux by @etan-status in #1043 -
use
race
instead ofor
to avoid lockup by @etan-status in #1042 -
in yamux, do not write
{Rst}
packet to stream that's in use by @etan-status in #1041 -
avoid
KeyError
in edge case of...
v1.1.0
What's Changed
- Add libp2p label to chronicles log topics by @LNSD in #794
- Add Tor Transport support by @diegomrsantos in #765
- Fix after gcsafe requirements change and other issues on devel by @diegomrsantos in #795
- Explicit dependency to unittest2 and update other packages by @diegomrsantos in #797
- Update README by @Menduist in #798
- Allow passing max message size by @dryajov in #800
- Fix Codecov by @Menduist in #802
- Daily CI: run devel with refc by @Menduist in #799
- Store missing pubkey in PeerStore [KeyBook] by @alrevuelta in #804
- Reuseable install_nim action by @Menduist in #803
- WS leak: handleRequest can hang by @Menduist in #796
- Fix: big messages in pubsub by @Menduist in #808
- Starting switch two times does not crash by @diegomrsantos in #810
- Fix website by @Menduist in #812
- Limit number of streams per protocol per peer by @Menduist in #811
- Allow connect with known PeerId in MA by @Menduist in #817
- Fix devel 32bits by @lchenut in #818
- Fix pinning system on devel by @Menduist in #820
- Autonat service by @diegomrsantos in #814
- Fix yamux simultaneous closing by @Menduist in #823
- Handle dial error correctly by @diegomrsantos in #830
- Add Autonat timeout by @diegomrsantos in #829
- Ignore unknown answers by @diegomrsantos in #831
- More autonat tests by @diegomrsantos in #833
- Remove unnecessary async by @diegomrsantos in #836
- Autonat refactoring by @diegomrsantos in #834
- Avoid closing connection on channel EOF by @etan-status in #816
- Fix PubSub subscribe on connection race condition by @Menduist in #809
- Autorelay service by @lchenut in #819
- Happy new year! by @Menduist in #847
- Fix CI for nim devel & 1.6 by @Menduist in #848
- Add expected connections to connmngr by @Menduist in #845
- Autonat service: handle connections limits by @Menduist in #846
- Connect is able to force a new connection by @diegomrsantos in #849
- Add the peerId to the transport.dial by @lchenut in #842
- Add anyCompleted proc by @diegomrsantos in #853
- Dialing addrs concurrently in autonat by @diegomrsantos in #855
- Autonat dials dns addrs by @diegomrsantos in #856
- Autonat doesn't ask an incoming peer by @diegomrsantos in #857
- Move tests flags from 'nimble test' to 'config.nims' by @Menduist in #852
- TCP Transport: enable NO_DELAY for clients by @Menduist in #822
- Fix testrelay by @lchenut in #860
- Fix backward compatibility of #822 by @Menduist in #862
- Interop tests by @Menduist in #864
- Handle when peers ask each other at the same time by @diegomrsantos in #865
- Fix pubsub CI logs by @Menduist in #861
- reexport public types by @arnetheduck in #872
- Upgrade flow refactoring by @Menduist in #807
- Various gossipsub fixes by @Menduist in #827
- Create an ObservedAddrManager and add an AddressMapper in AutonatService and AutoRelayService by @diegomrsantos in #871
- Add getters for conns and streams by @alrevuelta in #878
- GossipSub: Better IWANT handling by @Menduist in #875
- GossipSub: TimedEntry & shortAgent fixes by @Menduist in #858
- Fix traffic metrics by @Menduist in #879
- Transport hole punching by @diegomrsantos in #873
- Does not allow an empty MA by @diegomrsantos in #877
- Fix interop tests by @diegomrsantos in #882
- Invalid MA is ignored by @diegomrsantos in #881
- Dcutr by @diegomrsantos in #824
- Hole Punching by @diegomrsantos in #806
- Fix network protocol metrics typo by @Menduist in #874
- Fix gossipsub dOut handling by @Menduist in #883
- Handle dns addrs in HP service by @diegomrsantos in #890
- Less warnings by @Menduist in #813
- Improve utility tests by @diegomrsantos in #893
- Fix bumper CI by @Menduist in #894
- Refinement of Hole Punching Service by @diegomrsantos in #892
- Try a direct connection only if there isn't one already by @diegomrsantos in #891
- fix missing import by @diegomrsantos in #897
- Fail only if all addresses in PeerRecord are invalid by @diegomrsantos in #898
- Version 1.1.0 by @Menduist in #904
New Contributors
- @LNSD made their first contribution in #794
- @alrevuelta made their first contribution in #804
Full Changelog: v1.0.0...v1.1.0
v1.0.0
The nim-libp2p library has been used in production for over a year in high-stake scenarios, so its core is considered stable. Some modules are more recent and less stable.
The versioning follows semver, with some additions:
Some of nim-libp2p procedures are marked as .public., they will remain compatible during each MAJOR version
The rest of the procedures are considered internal and can change at any MINOR version (but remain compatible for each new PATCH)
We aim to be compatible at all times with at least 2 Nim MINOR versions, currently 1.2 & 1.6