Highlights
- Kademlia DHT support for decentralized peer routing and content lookup.
- Full ipv6 support for transport, addressing, and peer connectivity.
- C Bindings are available offering node lifecycle control, peer connections, stream i/o, gossipsub messaging, and kademlia operations.
- Changed our quic backend from ngtcp2 to lsquic
What's Changed
- test: organise transports tests by @rlve in #1776
- chore: remove
libp2p_quic_supportcompile flag, and openssl dependency by @richard-ramos in #1782 - test(quic): Add Multiaddress Handling tests by @rlve in #1784
- fix: echo in rendezvous by @richard-ramos in #1785
- feat(kad): addProvider by @gmelodie in #1773
- feat(mix): reuse streams by @richard-ramos in #1753
- test: Refactor common transports tests by @rlve in #1786
- chore(deps): bump quic to v0.5.0 by @vladopajic in #1792
- chore(performance): increase msg size by @vladopajic in #1791
- chore(ci): add verbose output for test binaries by @vladopajic in #1790
- chore(test): remove quic test variant by @vladopajic in #1809
- chore: fix the CI versions for nim by @richard-ramos in #1810
- chore(test): temporally split test all task by @vladopajic in #1808
- fix: length prefix handling in exit layer for lenght-prefixed protocols by @chaitanyaprem in #1804
- chore: remove redundant
gcsafefromswitch.disconnectby @arnetheduck in #1796 - chore(test): reduce global vars (rng) by @vladopajic in #1807
- test(pubsub): utilize quic transport by @vladopajic in #1685
- chore(deps): chronos bump by @vladopajic in #1812
- test: move MultiAddress handling tests into
basicTransportTestsand use them in QUIC by @rlve in #1793 - chore: change from check false to raiseAssert in tests by @chaitanyaprem in #1815
- test: too many global vars workaround by @rlve in #1816
- test(tools): add tools package by @vladopajic in #1819
- chore(nimble): remove workaround in
runTestby @vladopajic in #1823 - test(tools): add trackers by @vladopajic in #1824
- test: include dangling
testipaddrfile by @vladopajic in #1825 - test: imports cleanup by @vladopajic in #1828
- fix: when an invalid multiaddr is encountered skip that node in mix path selection by @chaitanyaprem in #1821
- test(tools): move unittest tests by @vladopajic in #1831
- ci: license check by @vladopajic in #1832
- chore(test): improve logic in some tests by @vladopajic in #1817
- ci: linters names fix by @vladopajic in #1835
- feat(kad): add ProviderManager by @gmelodie in #1789
- test(transports): stream tests by @rlve in #1829
- fix(quic): eof handling by @vladopajic in #1839
- fix(wildcardresolver): quic addresses by @richard-ramos in #1844
- chore(pubusb): improvements by @vladopajic in #1845
- fix(pubsub): use negotiated protocol in getConn if available by @richard-ramos in #1846
- chore(kad): providerManager limits by @gmelodie in #1843
- chore(kad): provider manager limits touchups by @gmelodie in #1848
- test: add
test_alltest bundle for every dir by @vladopajic in #1842 - test: add crypto dir by @vladopajic in #1849
- test(tls): move test to suite that fits it better by @vladopajic in #1841
- fix(autotls): integration test nil pointer dereference by @gmelodie in #1847
- chore(quic): add
toMultiAddressutility by @vladopajic in #1853 - feat(c-bindings): libp2p thread and request handling by @richard-ramos in #1820
- chore: use test_all in coverage workflow by @rlve in #1855
- test(transports): add parallel stream tests by @rlve in #1838
- test(transport): add ipv6 tcp tests by @vladopajic in #1850
- test: add stream dir by @vladopajic in #1857
- test: add utils dir by @vladopajic in #1858
- ci(nph): run on whole repo by @vladopajic in #1862
- test: remove testnative bundle by @vladopajic in #1864
- test: add protocols dir by @vladopajic in #1865
- test: add more parallel streams test by @rlve in #1861
- test: run final trackers check by @vladopajic in #1869
- test: add muxers dir by @vladopajic in #1868
- test(mix): skip test if flag is not defined by @vladopajic in #1866
- ci: pin transport interop test to version by @vladopajic in #1870
- test: add wait group by @vladopajic in #1872
- fix(nimble): install should not install non-libp2p dependencies by @vladopajic in #1871
- feat(kad): get providers by @gmelodie in #1852
- test(waitgroup): fix tight timeouts by @vladopajic in #1874
- test: use ipv6 addresses in identify by @vladopajic in #1863
- fix(autotls): interop nil pointer (2) by @gmelodie in #1860
- test(quic): QuicMuxer is created without upgrader by @vladopajic in #1877
- chore: document local testing of hole punching interop tests by @gmelodie in #1713
- test(quic): Misc tests by @rlve in #1879
- test(performance): use p95 instead of max by @rlve in #1883
- test(transports): fix muxer handling by @vladopajic in #1884
- fix(autonat-v2): interop tests failing by @gmelodie in #1893
- fix(quic): muxer handling by @vladopajic in #1885
- test(transports): Generate cert for WSS by @rlve in #1894
- chore(discovery): remove unused discovery interface by @gmelodie in #1890
- test(mix): improve flaky test by @rlve in #1896
- test(autotls): Organise test files by @rlve in #1905
- test: Organise test file - Multiformat and Services by @rlve in #1909
- test: reorganise libp2p tests by @rlve in #1911
- chore: replace doAssert with raiseAssert by @ashiskumarnaik in #1797
- test: Organise test files - final rename by @rlve in #1914
- test: report by @rlve in #1912
- test(tools): rng singleton by @vladopajic in #1895
- test: fix logs by @rlve in #1920
- test(coverage): ignore tests by @rlve in #1922
- test(switch): improve flaky test by @rlve in #1928
- chore(pubsub): improvements by @vladopajic in #1924
- test(gossipsub): make test more robust by @vladopajic in #1930
- test(gossipsub): making tests more robust pt2 by @vladopajic in #1933
- test(gossipsub): making tests more robust pt3 by @vladopajic in #1936
- test: only failed test in report by @rlve in #1932
- test(gossipsub): making tests more robust pt4 by @vladopajic in #1938
- test: dynamic imports by @rlve in #1918
- test: ensure tests run without flags by @rlve in #1929
- test(gossipsub): various improvements by @vladopajic in #1942
- chore: organise nimble files by @rlve in #1939
- test(gossipsub): making tests more robust pt5 by @vladopajic in #1947
- test: fix multiformat_exts tests are not executed on win by @rlve in #1949
- test(gossipsub): making tests more robust pt6 by @vladopajic in #1950
- chore: utilize AsyncSemaphore from chronos by @vladopajic in #1957
- test(gossipsub): utilities that wait for nodes to subscribe by @rlve in #1958
- feat(cbind): start/stop/connect/disconnect by @richard-ramos in #1927
- feat(cbind): peerInfo by @richard-ramos in #1931
- test(pubsub): Refactor Floodsub tests & waitSubscribe util by @rlve in #1961
- feat(cbind): pubsub pt1 by @richard-ramos in #1935
- test(gossipsub): Remove hardcoded repeated topic "foobar" by @rlve in #1962
- test(gossipsub): making tests more robust pt7 by @vladopajic in #1963
- feat(cbind): connected peers by @richard-ramos in #1955
- test(gossipsub): making tests more robust pr8 by @vladopajic in #1965
- fix(cbind): do not use raw void* but an opaque type instead by @richard-ramos in #1964
- test: add import semaphore by @vladopajic in #1967
- refactor(cbind): add userdata to topic handler by @richard-ramos in #1956
- test(gossipsub): making tests more robust pr9 by @vladopajic in #1968
- test(gossipsub): making tests more robust pr10 by @vladopajic in #1969
- feat(transports): lsquic by @richard-ramos in #1876
- chore(kad): interop tests by @gmelodie in #1902
- chore: reduce size of docker image by @richard-ramos in #1972
- chore(kad): iterative get providers by @gmelodie in #1975
- chore(kad): GetProviders retries only failed peers by @gmelodie in #1980
- chore: allFuturesThrowing renamed to allFuturesRaising by @vladopajic in #1934
- feat(cbind): kademlia by @richard-ramos in #1960
- chore: improve flaky test by @vladopajic in #1983
- ci(interop): use ipv6 by @vladopajic in #1985
- feat(cbind): dialing, opening and closing streams by @richard-ramos in #1974
- feat(cbind): start/stop providing by @richard-ramos in #1977
- chore: remove license duplicate by @vladopajic in #1992
- docs: add common hurdles by @vladopajic in #1991
- chore(interop): cosmetics by @vladopajic in #1986
- test(interop): Autonatv2 test template by @rlve in #1993
- test(kad): Key conversion by @rlve in #1996
- chore(kad): refactor find and lookupstate by @gmelodie in #1982
- fix(utility): take taking an extra element by @gmelodie in #2001
- fix(kad): GetProviders test hanging forever by @rlve in #2005
- chore(ConnManager): avoid exposing impl details by @vladopajic in #2007
- feat(cbind): stream read / write by @richard-ramos in #1976
- test(kad): Routing table and refresh bucket by @rlve in #1998
- chore(kad): bootstrap send findNode to all non-empty buckets by @gmelodie in #2008
- feat(cbind): config parameters by @richard-ramos in #2009
- fix(kad): chunks ignored in getValue by @gmelodie in #2015
- test(kad): find & lookup by @rlve in #2014
- refactor(kad): iterative search and cid handling by @richard-ramos in #2017
- test(kad): find & lookup 2 by @rlve in #2018
- fix(kad): Bootstrap by @rlve in #2022
- chore(kad): add quorum ignored test by @gmelodie in #2024
- fix(kad-dht): stop condition on find_node and track whether node responded succesfully or not by @richard-ramos in #2020
- test(interop): Kad test template by @rlve in #2025
- feat(peerstore): add LastSeenOutboundBook for outbound-only address by @chaitanyaprem in #2027
- test(kad): bootstrap and refactor find tests by @rlve in #2023
- feat(transport): add ipv6 support for quic by @vladopajic in #1981
- test(kad): put value 1 - refactor by @rlve in #2029
- test(kad): put value 2 - new tests + small fix by @rlve in #2030
New Contributors
- @ashiskumarnaik made their first contribution in #1797
Full Changelog: v1.14.2...v1.15.0