* rename, mark stuff to remove
* rename type
* update exports from discovery package, improve PX implementation
* re-structure px discovery, comment tests
* implement UT, E2E Tests, clean code a bit, implement recurring PX discovery, move DNS E2E Tests to separate folder, remove not needed E2E tests
* fix discovery dialer e2e test
* mark as started
* fix dns tests
* attempt to fix e2e
* skip test
* update tests
* fix typo
* add catch all in stream manager, update tests
* update mock
* update test
Nodes returned by DNS Discovery are not guaranteed to be reachable.
Hence, setting an upfront limit based on sought capability does not provide
any guarantees that such capability should be reached.
The discovery's mechanism role is to find Waku 2 nodes. As many as possible.
It is then the role of the peer manager to decide:
- whether to attempt connecting to the node based on advertised capabilities
- retain connection to the node based on actual mounted protocols.
We still want to prevent infinite loops, hence the `maxGet` parameter.
Also, there was a dichotomy between code tested, and code actually used by libp2p peer discovery, now resolved.
# Conflicts:
# packages/discovery/src/dns/constants.ts
Concepts are being mixed up between the global network config (static vs auto sharding), that needs to be the same of all nodes in the network, individual node configuration (eg relay node subscribing to a given shard), and the routing characteristic of a specific message (eg pubsub topic, shard).
This stops proper configuration of nwaku post 0.36.0 because we know need to be deliberate on whether nwaku nodes are running with auto or static sharding.
It also included various back and forth conversions between shards, pubsub topics, etc.
With this change, we tidy up the network configuration, and make it explicit whether it is static or auto sharded.
We also introduce the concept of routing info, which is specific to a message, and tied to the overall network configuration.
Routing info abstract pubsub topic, shard, and autosharding needs. Which should lead to easier tidy up of the pubsub concept at a later stage.
# Conflicts:
# packages/core/src/lib/connection_manager/connection_manager.ts
# packages/core/src/lib/metadata/metadata.ts
# packages/interfaces/src/metadata.ts
# packages/interfaces/src/sharding.ts
# packages/relay/src/create.ts
# packages/sdk/src/filter/filter.ts
# packages/sdk/src/filter/types.ts
# packages/sdk/src/light_push/light_push.spec.ts
# packages/tests/tests/sharding/auto_sharding.spec.ts
# packages/tests/tests/sharding/static_sharding.spec.ts
# Conflicts:
# packages/sdk/src/store/store.ts
* remove IBaseProtocol
* fix references, interfaces and integration
* fix ci
* up mock
* up lock
* add mock for local storage
* add missing prop, fix tests
* up lock
* update Filter test suit, make service nodes connected to each other, remove single node Filter test suit, use 0.35 nwaku image
* update light push tests
* improve auto shard tests
* update static sharding test
* skip blocked tests
* fix test
* remove usage of pusubtopic with nwaku
* remove comment
* create retry manager
* update tests
* add retry manager tests, update peer manager
* fix start & merge with master
* return send to many logic
* add new error handling
* add sections to protocol errors
* fix check
* up test
* add waku.start in test
* fix check and test
* improve name
* feat(peer-exchange): update peer info if new is found
* chore: move diff checking logic to a private function
* chore: add tests
* chore: increase verbosity for mulltiaddr
* chore: use merge for metadata nad patch for multiaddrs
* chore: use peerId from peerInfo
* chore: remove unused import
* setup a generic protocol result type (DRY)
* metadata: use generic
* lightpush: use generic
* peer-exchange: use error codes + generic + update tests
* add issue link to skipped test
* tests: improve while loop readability
* fix peer ex tests
* remove only
* check for undefined
* add timeout
* timeout for query
* remove logs
* add log back
* whitelist 2nd erorr
* use beforeAll
* remove only
* revert last changes
* remove console logs
* skip query suite
* leave just one query test