Looks like this project stopped running the `test:node` npm script when it was migrated to gh actions.
Re-enable it and fix all the related test failures.
Stop the dht before the connection manager, otherwise in-flight eviction pings fail and we move on to the next one when we should just abort them all.
Also pulls in the fix from #1039 and splits the auto-dialler out from the connection manager as during shutdown it can get into a weird state where it's simultaneously killing and creating connections so stop auto-dialling things before we cause connections to dip below the low watermark by killing existing connections.
Fixes: https://github.com/ipfs/js-ipfs/issues/3923
BREAKING CHANGES:
top level types were updated, multiaddr@9.0.0 is used, dialer and keychain internal property names changed and connectionManager minPeers is not supported anymore
* feat: add uPnP nat manager
Adds a really basic nat manager that attempts to use UPnP to punch
a hole through your router for any IPV4 tcp addresses you have
configured.
Adds any configured addresses to the node's observed addresses list
and adds observed addresses to `libp2p.multiaddrs` so we exchange
them with peers when performing `identify` and people can dial you.
Adds configuration options under `config.nat`
Hole punching is async to not affect start up time.
Co-authored-by: Vasco Santos <vasco.santos@moxy.studio>
* feat: auto relay
* fix: leverage protoBook events to ask relay peers if they support hop
* chore: refactor disconnect
* chore: do not listen on a relayed conn
* chore: tweaks
* chore: improve _listenOnAvailableHopRelays logic
* chore: default value of 1 to maxListeners on auto-relay
* feat: gossipsub 1.1
BREAKING CHANGE: pubsub implementation is now directly exposed and its API was updated according to the new pubsub interface in js-libp2p-interfaces repo
* chore: use gossipsub branch with src added
* fix: add pubsub handlers adapter
* chore: fix deps
* chore: update pubsub docs and examples
* chore: apply suggestions from code review
Co-authored-by: Jacob Heun <jacobheun@gmail.com>
* chore: use new floodsub
* chore: change validator doc set
Co-authored-by: Jacob Heun <jacobheun@gmail.com>
* chore: add new gossipsub src
Co-authored-by: Jacob Heun <jacobheun@gmail.com>
* fix: allow certain keychain operations without a password
Listing, removing, renaming etc keys do not require a password so
the user should not be required to provide one.
This means we don't have to prompt the user to create a password
when they aren't going to do any operations that require a password.
* fix: make keychain pass optional
* fix: support libp2p creation without keychain pass
Co-authored-by: Jacob Heun <jacobheun@gmail.com>
* fix: not dial all known peers on startup
* feat: connection manager should proactively connect to peers from peerStore
* chore: increase bundle size
* fix: do connMgr proactive dial on an interval
* chore: address review
* chore: use retimer reschedule
* chore: address review
* fix: use minConnections in default config
* chore: minPeers to minConnections everywhere
* chore: update examples to 0.28 api
* chore: use libp2p-noise in examples
* chore: examples using multiaddrs property of libp2p
Co-authored-by: Jacob Heun <jacobheun@gmail.com>
* docs: update language around secio in crypto example
Co-authored-by: Jacob Heun <jacobheun@gmail.com>