Releases: vacp2p/nim-libp2p
v1.7.1
What's Changed
- fix:missing raises pragma for one of RendezVous.new by @NagyZoltanPeter in #1222
New Contributors
- @NagyZoltanPeter made their first contribution in #1222
Full Changelog: v1.7.0...v1.7.1
v1.7.0
Highlights
- feat: configurable min and max TTL for rendezvous.
What's Changed
- feat: rendezvous refactor by @SionoiS in #1183
- chore(ci): Enable S3 caching for interop by @AlejandroCabeza in #1193
- fix(CI): free disk space on interop transport job by @AlejandroCabeza in #1206
- fix(ci): Daily workflows report by @AlejandroCabeza in #1200
- docs(test): handle IHAVE / IWANT tests by @AlejandroCabeza in #1202
- fix(ci): nim 2.0 dependency failure by @AlejandroCabeza in #1216
New Contributors
Full Changelog: v1.6.0...v1.7.0
v1.6.0
Highlights
- experimental encryption-less QUIC Transport (only for test purposes, not production ready)
What's Changed
- chore(logs): remove duplicate msg key by @AlejandroCabeza in #1180
- fix(ci): Daily workflow parent's name by @AlejandroCabeza in #1182
- fix(transport): libp2p compilation in Nim version-2-0 by @tersec in #1186
- ci: Enable conditional SAT solving by @AlejandroCabeza in #1177
- chore(CI): rollback nph change by @diegomrsantos in #1187
- Create funding.json by @Cofson in #1188
- fix(transport): tcp accept fixes by @diegomrsantos in #1170
- chore(connmanager): also show peerID and dir when too many conns by @Ivansete-status in #1185
- chore: move mm:refc config and remove skipParentCfg by @diegomrsantos in #1190
- fix(multiaddress): Raise
MaError
instead ofLPError
on&
by @etan-status in #1145 - chore: add support to merge queues by @diegomrsantos in #1192
- feat(transport): add experimental QUIC Transport (not production ready) by @Menduist in #725
- chore: fix devel compilation issues by @diegomrsantos in #1195
New Contributors
Full Changelog: v1.5.0...v1.6.0
v1.5.0
Highlights
- adding an onValidated observer #1128
- we switched to Nim 2.0.x as our main Nim version. We still support Nim 1.6
What's Changed
- fix: run workflows on master by @diegomrsantos in #1144
- chore: enable Nim 2.0.x and fix compilation issues by @diegomrsantos in #1146
- fix: support ipv6 dual stack by @diegomrsantos in #1148
- chore: update os images on ci by @diegomrsantos in #1149
- chore: setting dialing canceled log to trace by @gabrielmer in #1153
- fix(ci): windows-amd64 (Nim version-1-6) by @AlejandroCabeza in #1160
- fix: add gcc 14 support by @diegomrsantos in #1151
- feat: adding onValidated observer by @gabrielmer in #1128
- fix(test): interop transport by @AlejandroCabeza in #1159
- chore: Cleanup CI by @AlejandroCabeza in #1117
- fix: infinite loop when connection is aborted before being accepted by @diegomrsantos in #1164
- fix(yamux): future leak by @lchenut in #1171
- chore(version): update libp2p.nimble to 1.5.0 by @kaiserd in #1166
Full Changelog: v1.4.0...v1.5.0
v1.4.0
Highlights
What's Changed
- chore(formatting): format the whole codebase using nph 0.5.1 by @diegomrsantos in #1118
- feat(gossipsub): support version 1.2.0 by @diegomrsantos in #1106
- fix(tests): testautorelay by @diegomrsantos in #1121
- fix(tests): flaky testdaemon by @diegomrsantos in #1123
- fix(gossipsub): pubsubpeer is created with wrong gossipsub version by @diegomrsantos in #1116
- fix(CI): generate website job by @diegomrsantos in #1124
- fix(readme): update links by @diegomrsantos in #1126
- chore: add .git-blame-ignore-revs by @diegomrsantos in #1130
- fix(CI): rebuild website job by @diegomrsantos in #1125
- chore: improve max outgoing connections log by @gabrielmer in #1129
- chore(yamux): change closedRemotely from Future into AsyncEvent by @lchenut in #1133
- feat(peerEvents): add a peerEvent Identified by @lchenut in #843
- feat: iDontWant is sent only for gossipsub 1.2 or higher by @diegomrsantos in #1135
- feat: add maxSize to TimedCache by @diegomrsantos in #1132
- chore(version): update libp2p.nimble to 1.4.0 by @kaiserd in #1143
New Contributors
- @gabrielmer made their first contribution in #1129
Full Changelog: v1.3.0...v1.4.0
v1.3.0
Highlights
- Improve memory efficiency of seen cache #1073
- add wildcard address resolver #1099
- Send IDONTWANT before validating message #1103
What's Changed
- Improve memory efficiency of seen cache by @arnetheduck in #1073
- salt
idontwant
by @arnetheduck in #1090 - avoid latency/copy when sending low-priority messages to fast peers by @arnetheduck in #1060
- fix: Asynchronous task [sendMsgSlow()] was cancelled [FutureDefect] by @diegomrsantos in #1094
- cleanups by @arnetheduck in #1092
- fix(CI): rename branch from unstable to master in bumper workflow by @diegomrsantos in #1097
- fix(transport): various tcp transport races by @arnetheduck in #1095
- chore(gossipsub): cleanups by @kaiserd in #1096
- fix(yamux): set EoF when remote peer half closes the stream in yamux by @diegomrsantos in #1086
- chore(README): small PRs by @kaiserd in #1098
- Send IDONTWANT before validating message by @arnetheduck in #1103
- scoring.nim: enhance score trace logs by @Ivansete-status in #1107
- chore(peer-score): enhance score trace logs cont' by @kaiserd in #1108
- fix typos by @omahs in #1110
- fix(multicodec): remove unnecessary "!=" operator by @diegomrsantos in #1112
- Update go-libp2p-daemon build version. by @AlejandroCabeza in #1111
- feat(service): add wildcard address resolver by @diegomrsantos in #1099
- fix(services): setup services before peerinfo is updated by @diegomrsantos in #1120
Full Changelog: v1.2.0...v1.3.0
v1.2.0
Nimble will not be able to resolve this version because libp2p.nimble has not been updated to 1.2.0 . You can still use this version with Nimble if you either use the commit hash instead of the version tag, or update libp2p.nimble . We suggest using the latest release version instead. |
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 ...
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