when the query is set in an interval, it first
gets invoked when the interval time is reached.
refactor: invoke it immmediately, and then set an
interval
* temp-add: debugging
* fix: ENR root signature verification
the nodes in the TXT/fleet were updated causing the publicKey to change
and verification to fail
* add: libp2p compliance tests
* fix: bind function
`bind` was being passed an empty object reference
* fix: tests
* merge with master
* chore: address review
- move compliance test to dev dependency
- move global mocha timeout to test specific timeout
* chore: update enrtree pubkey and fqdn
ref: https://github.com/status-im/infra-nim-waku/issues/64
* chore: update libp2p-peer-discovery-compliance-tests
ref: https://github.com/libp2p/js-libp2p-interfaces/pull/328
* chore: fix typedoc errors
* add: dns-discovery to dependencies
* fix: discovery for peer-exchange
use the bootstrap node as a starter to send a
peer-exchange query to, and emit the response
peers received from it for further connection to
libp2p using the peer-discovery interface
* init: test for libp2p bootstrap/discovery for
peer-exchange
* temp-add: console.logs for easier debugging
* add: peer discovery test & rm: console.logs
* chore: rm and redundant spec test
* add: interval for peer exchange queries
we set an interval to query a peer every 5 minutes
for peer exchange, and add new peers if found
* address: reviews
- add `type` for imports not using values
- better handling for peer-exchange query interval
* chore: fix tsc for peer-exchange
use node16 for module resolution
* chore: add extra exports to fix typedoc warnings
ref: https://github.com/TypeStrong/typedoc/issues/1739
@waku packages are expected to (dev)depend on @waku/interfaces to
implement them. Hence, to avoid possible cyclic (dev)dependency, define
IEnr interface and use it as a type across @waku/packages.
Useless in a monorepo because dependabot expects all manifest files to
be in the same directory, which is not the case (lock file at root
and package.json file in packages/*).
This is because peer exchange is still experimental and not enabled
on all prod fleets.
The issue is that we could be connected to a remote peer with relay/
filter/lightpush yet never resolve because peer exchange is missing.
This also shows the limit of this function logic which should be
addressed as we dive deeper in peer management.