The peer routing module starts a recurring process that searches for
peers close to our peer id.
This makes the DHT module query the network for peers. Thing is the
DHT module is already doing this because periodically searching for
peers close to us is in the DHT spec so this ends up making redundant
queries.
This PR removes the recurring task configured by the peer routing module.
* chore: remove ipfs-utils dep
We only use it for the env detection, so use [wherearewe](https://www.npmjs.com/package/wherearewe)
instead which is that, but pulled out into a tiny module.
The `TextDecoder` class is global everywhere we support so we don't
need to pull it in from `ipfs-utils` and it's been removed from v8
anyway.
* chore: update ipfs-http-client
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>
BREAKING CHANGE: pubsub signing policy properties were changed according to libp2p-interfaces changes to a single property. The emitSelf option default value was also modified to match the routers value
* chore: examples not using secio
* chore(docs): remove unused dep
* chore(docs): remove reference of secio in setup
* chore(docs): replace circuit secio reference with noise
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
* docs: getting started
* docs: review getting started (#520)
* doc: initial review of getting started
Co-Authored-By: Vasco Santos <vasco.santos@moxy.studio>
* chore: move multiplexing to basic setup
* chore: add read more cta
* chore: apply suggestions from code review
Co-Authored-By: Jacob Heun <jacobheun@gmail.com>
* chore: just configure multiplexer
* chore: apply suggestions from code review
Co-Authored-By: Jacob Heun <jacobheun@gmail.com>
* chore: just use websockets and changed dht module introduction
* chore: add reference for events in the API doc
* docs: simplify getting started guide and clean up language
* chore: apply suggestions from code review
Co-Authored-By: Alan Shaw <alan.shaw@protocol.ai>
* docs(fix): address review comments
Co-authored-by: Jacob Heun <jacobheun@gmail.com>
Co-authored-by: Alan Shaw <alan.shaw@protocol.ai>
* refactor: initial refactor of the connection manager
* fix: start/stop issues
* fix: add tests and resolve pruning issues
* chore: fix lint
* test: move conn manager tests to node only for now
* chore: apply suggestions from code review
Co-Authored-By: Vasco Santos <vasco.santos@moxy.studio>
* fix: assert min max connection options
* test: fix assertion check for browser
* docs: add api and config docs for conn manager