Commit Graph

201 Commits

Author SHA1 Message Date
Florin Barbu f1d8d6097f
chore(static sharding): add tests for multiple pubsub topics (#1624)
* new tests for static sharding

* store tests

* small fixes after ci run

* small fixes after ci run

* small fixes after ci run

* multiple pubsubtopics on nwaku node
2023-10-02 15:07:00 +05:30
dependabot[bot] 94b8fd34ca
chore(deps)(deps): bump sinon from 15.2.0 to 16.0.0 (#1611)
Bumps [sinon](https://github.com/sinonjs/sinon) from 15.2.0 to 16.0.0.
- [Release notes](https://github.com/sinonjs/sinon/releases)
- [Changelog](https://github.com/sinonjs/sinon/blob/main/docs/changelog.md)
- [Commits](https://github.com/sinonjs/sinon/compare/v15.2.0...v16.0.0)

---
updated-dependencies:
- dependency-name: sinon
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-02 13:38:23 +05:30
Danish Arora a3c45b6e1a
feat(static-sharding)!: allow multiple pubSubTopics (#1586)
* `ProtocolCreateOptions` now has `pubSubTopic` as `pubSubTopic[]`

* chore: update encoder & decoder to support `PubSubTopic`

* feat(protocols): allow multiple `PubSubTopic[]`

* feat(relay): allow multiple `PubSubTopic[]`

* chore(tests): update for new API

* chore: minor fixes

* chore: make store more robust

* fix(relay): correctly set types

* chore(address comments): update terminology around configured pubsub topics

* chore(address comments): minor refactoring

* chore(relay): split `subscribe` into smaller functions for readability & modularity

* chore(address comments): refactor `waitForGossipSubPeerInMesh`

* chore(store): only allow to query one `pubSubTopic`

* fix: `store` bug

* feat(tests): add some basic tests

* sharding utils

* address comments

* feat(relay): re-add API for `getMeshPeers`

* update error message

Co-authored-by: fryorcraken <110212804+fryorcraken@users.noreply.github.com>

* refactor for new API

* feat: simplify handling of observers (#1614)

* refactor: simplify handling of observers

* refactor: Remove redundant PubSubTopic from Observer

* use `??` instead of `||`

* update `pubsubTopic` to `pubSubTopic`

* update `interval` typo

* change occurence of `pubsubTopic` to `pubSubTopic`

* relay: rm `getAllMeshPeers` and make `pubSubTopics` public

* relay: use `push_or_init_map` and move to `utils`

* fix: update API for tests

* fix: relay waitForRemotePeer

---------

Co-authored-by: fryorcraken <110212804+fryorcraken@users.noreply.github.com>
2023-09-27 15:28:07 +05:30
Simon-Pierre Vivier 6fa106aa7f
fix: subscription RPC & added test subscriptions (#1587)
Co-authored-by: Sasha <118575614+weboko@users.noreply.github.com>
2023-09-26 00:24:49 +02:00
Danish Arora a718c40882
chore: ensure that we can dial `tls` multiaddrs (#1580)
* add a test to dial tls version of a multiaddr

* generate new lockfile
ref: https://github.com/libp2p/js-libp2p/pull/2059#issuecomment-1724031879
2023-09-22 15:56:52 +05:30
Danish Arora 8f9faf4aed
chore: upgrade engine to 18 (#1604) 2023-09-22 14:37:34 +05:30
Florin Barbu 9ab4e86f19
chore: bump nwaku version to 0.20 (#1591) 2023-09-22 02:55:49 +02:00
Sasha 020463c358
chore: update typescript (#1528)
* update typescript, define in root package.json

* update typedoc and fix typedoc comments

* update dev version of tsconfig

* set module and resolution for tsconfig dev

* bump ts plugins

* set order of typedoc generation

* turn off warnings as errors setting
2023-09-21 10:57:37 +02:00
fryorcraken.eth 8cbd4c1d00
test: light push should not throw an exception 2023-09-21 12:39:00 +10:00
fryorcraken.eth 4a9360d4e3
test: fail on unhandled rejections and uncaught exceptions 2023-09-21 12:39:00 +10:00
fryorcraken.eth 3acc4fc86f
refactor: group import 2023-09-21 12:38:59 +10:00
fryorcraken.eth feb6e1b92c
test: nwaku does not behave as expected 2023-09-21 12:25:38 +10:00
fryorcraken.eth 053b6545ad
feat!: return `REMOTE_PEER_REJECTED` if remote peer rejected the message 2023-09-21 11:56:02 +10:00
Simon-Pierre Vivier 7905aa478b
fix: explicit nwaku subscriptions in tests (#1572)
* Nwaku subscriptions explicit in tests

* Subscription before each & renaming

* Fix
2023-09-19 22:45:27 +02:00
fbarbu15 e284c78701
chore: new lightpush tests (#1571)
* new lightpush tests

* fixes after CI run

* split tests into 2 files

* small fix

* address code review comments

* small fix after CI run

---------

Co-authored-by: Danish Arora <35004822+danisharora099@users.noreply.github.com>
2023-09-19 15:51:03 +05:30
fbarbu15 aae1d9f68b
chore: move the failed retries on test level (#1573)
Co-authored-by: Sasha <118575614+weboko@users.noreply.github.com>
2023-09-18 11:48:47 +02:00
dependabot[bot] bb4fdaa248
chore(deps)(deps-dev): bump datastore-core from 9.2.2 to 9.2.3 (#1574)
Bumps [datastore-core](https://github.com/ipfs/js-stores) from 9.2.2 to 9.2.3.
- [Release notes](https://github.com/ipfs/js-stores/releases)
- [Commits](https://github.com/ipfs/js-stores/compare/datastore-core-v9.2.2...datastore-core-v9.2.3)

---
updated-dependencies:
- dependency-name: datastore-core
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Danish Arora <35004822+danisharora099@users.noreply.github.com>
2023-09-18 13:04:11 +05:30
dependabot[bot] 8312871789
chore(deps)(deps-dev): bump interface-datastore from 7.0.4 to 8.2.5 (#1575)
Bumps [interface-datastore](https://github.com/ipfs/js-stores) from 7.0.4 to 8.2.5.
- [Release notes](https://github.com/ipfs/js-stores/releases)
- [Commits](https://github.com/ipfs/js-stores/compare/interface-datastore-v7.0.4...interface-datastore-v8.2.5)

---
updated-dependencies:
- dependency-name: interface-datastore
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-17 00:55:20 +05:30
fbarbu15 b42601d156
chore: new filter tests (#1552)
* add bulk of tests

* refactored and improved tests

* add more comments

* fixes after CI run

* split filter tests into mulitple suites

* split filter tests into mulitple suites
2023-09-12 23:31:35 +02:00
Sasha db686b3f7a
chore!: revert typescript eslint plugins (#1551)
* force update lock file

* revert eslint upgrades

* revert both plugins
2023-09-08 20:32:06 +02:00
dependabot[bot] 2d7fff1e20
chore(deps)(deps-dev): bump @typescript-eslint/eslint-plugin (#1549)
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 5.62.0 to 6.6.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v6.6.0/packages/eslint-plugin)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/eslint-plugin"
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-08 21:50:05 +05:30
Danish Arora 6f09fbf4ed
feat: use the lowest latency peer for protocols (#1540)
* maintain pings in a hashmap

* convert `KeepAliveManager` into a singleton

* chore: fix an unrelated cyclic dependency error

* update `selectPeerForProtocol` to return peer with the lowest latency

* use the new KeepAliveManager API

* use the new API for `selectPeerForProtocol`

* add tests

* use PeerData to hold the ping instead of a new variable

* improve tests for readability

* move back KeepAliveManager from singleton

* reenable all tests

* minor improvements

* improve error handling

* convert .then() syntax to async/await
2023-09-08 21:36:55 +05:30
dependabot[bot] 2c0360bfe8
chore(deps)(deps): bump libp2p from 0.46.8 to 0.46.9 (#1544)
Bumps [libp2p](https://github.com/libp2p/js-libp2p) from 0.46.8 to 0.46.9.
- [Release notes](https://github.com/libp2p/js-libp2p/releases)
- [Changelog](https://github.com/libp2p/js-libp2p/blob/master/.release-please.json)
- [Commits](https://github.com/libp2p/js-libp2p/compare/libp2p-v0.46.8...libp2p-v0.46.9)

---
updated-dependencies:
- dependency-name: libp2p
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Danish Arora <35004822+danisharora099@users.noreply.github.com>
2023-09-08 00:39:40 +05:30
Danish Arora 81a52a8097
feat!: set peer-exchange with default bootstrap (#1469)
* set peer-exchange with default bootstrap

* only initialise protocols with bootstrap peers

* update package

* update package-lock

* refactor `getPeers` while setting up a protocol

* move codecs to `@waku/interfaces`

* lightpush: send messages to multiple peers

* only use multiple peers for LP and Filter

* fix: ts warnings

* lightpush: tests pass

* update breaking changes for new API

* move codecs back into protocol files

* refactor: `getPeers()`

* rm: log as an arg

* add tsdoc for getPeers

* add import

* add prettier rule to eslint

* add: peer exchange to sdk as a dep

* fix eslint error

* add try catch

* revert unecessary diff

* revert unecessary diff

* fix imports

* convert relaycodecs to array

* remove: peerId as an arg for protocol methods

* keep peerId as an arg for peer-exchange

* remove: peerId from getPeers()

* lightpush: extract hardcoded numPeers as a constant

* return all peers if numPeers is 0 and increase readability for random peers

* refactor considering more than 1 bootstrap peers can exist

* use `getPeers`

* change arg for `getPeers` to object

* address comments

* refactor tests for new API

* lightpush: make constant the class variable

* use `maxBootstrapPeers` instead of `includeBootstrap`

* refactor protocols for new API

* add tests for `getPeers`

* skip getPeers test

* rm: only from test

* move tests to `base_protocol.spec.ts`

* break down `getPeers` into a `filter` method

* return all bootstrap peers if arg is 0

* refactor test without stubbing

* address comments

* update test title

* move `filterPeers` to a separate file

* address comments & add more test

* make test title more verbose

* address comments

* remove ProtocolOptions

* chore: refactor tests for new API

* add defaults for getPeers

* address comments

* rm unneeded comment

* address comment: add diversity of node tags to test

* address comments

* fix: imports
2023-09-07 13:15:49 +05:30
dependabot[bot] 408b79d6a5
chore(deps)(deps-dev): bump @typescript-eslint/parser (#1538)
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 5.62.0 to 6.6.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v6.6.0/packages/parser)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/parser"
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Danish Arora <35004822+danisharora099@users.noreply.github.com>
2023-09-07 11:21:37 +05:30
dependabot[bot] 2364b4f8e2
chore(deps)(deps): bump libp2p from 0.46.3 to 0.46.8 (#1534)
Bumps [libp2p](https://github.com/libp2p/js-libp2p) from 0.46.3 to 0.46.8.
- [Release notes](https://github.com/libp2p/js-libp2p/releases)
- [Changelog](https://github.com/libp2p/js-libp2p/blob/master/.release-please.json)
- [Commits](https://github.com/libp2p/js-libp2p/compare/libp2p-v0.46.3...libp2p-v0.46.8)

---
updated-dependencies:
- dependency-name: libp2p
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-05 23:39:49 +05:30
dependabot[bot] 3bf9cb83c0
chore(deps)(deps-dev): bump cspell from 7.0.1 to 7.3.2
Bumps [cspell](https://github.com/streetsidesoftware/cspell) from 7.0.1 to 7.3.2.
- [Release notes](https://github.com/streetsidesoftware/cspell/releases)
- [Changelog](https://github.com/streetsidesoftware/cspell/blob/main/CHANGELOG.md)
- [Commits](https://github.com/streetsidesoftware/cspell/compare/v7.0.1...v7.3.2)

---
updated-dependencies:
- dependency-name: cspell
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-04 07:10:14 +00:00
Danish Arora 78f64f60ee
chore: remove prettier, and default to eslint (#1495)
* rm: unwanted commit ff3ffdd138

* prettier: readds trailing commas

* update: .vscode settings to use eslint by default

* run eslint -- removes trailing commas

* remove: prettier

* remove linting from autogen proto

* address comments

* lint .eslintrc.json
2023-09-04 12:37:38 +05:30
Danish Arora 574a05ff68
chore: remove `aegir` as a dependency (#1525)
* remove aegir as a dep

* upgrade @libp2p/interface-compliance-tests

* update package-lock
2023-09-04 12:26:38 +05:30
fbarbu15 a904609e19 Merge branch 'master' of https://github.com/waku-org/js-waku into chore/add-dispatch-to-ci 2023-08-29 20:18:53 +03:00
dependabot[bot] df5f286e68
chore(deps)(deps): bump @libp2p/peer-id from 2.0.4 to 3.0.2 (#1512)
Bumps [@libp2p/peer-id](https://github.com/libp2p/js-libp2p) from 2.0.4 to 3.0.2.
- [Release notes](https://github.com/libp2p/js-libp2p/releases)
- [Changelog](https://github.com/libp2p/js-libp2p/blob/master/.release-please.json)
- [Commits](https://github.com/libp2p/js-libp2p/compare/prometheus-metrics-v2.0.4...logger-v3.0.2)

---
updated-dependencies:
- dependency-name: "@libp2p/peer-id"
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-28 22:12:23 +05:30
Danish Arora 2389977a98
chore!: refactor store protocol for readability (#1456)
* refactor store protocol for readability

* update interface

* fix: test

* rm: comments

* Update packages/core/src/lib/store/index.ts

Co-authored-by: fryorcraken <110212804+fryorcraken@users.noreply.github.com>

* fix commit

---------

Co-authored-by: fryorcraken <110212804+fryorcraken@users.noreply.github.com>
2023-08-28 13:19:47 +05:30
fbarbu15 617622c3ec manually triggerr ci with custom nim node image 2023-08-24 14:03:44 +03:00
dependabot[bot] 445f7e7cb8
chore(deps)(deps-dev): bump cspell from 7.0.0 to 7.0.1 (#1493)
Bumps [cspell](https://github.com/streetsidesoftware/cspell) from 7.0.0 to 7.0.1.
- [Release notes](https://github.com/streetsidesoftware/cspell/releases)
- [Changelog](https://github.com/streetsidesoftware/cspell/blob/main/CHANGELOG.md)
- [Commits](https://github.com/streetsidesoftware/cspell/compare/v7.0.0...v7.0.1)

---
updated-dependencies:
- dependency-name: cspell
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-21 21:45:00 +05:30
dependabot[bot] 0d9ea1b4a8
chore(deps)(deps-dev): bump datastore-core from 9.2.0 to 9.2.2 (#1492)
Bumps [datastore-core](https://github.com/ipfs/js-stores) from 9.2.0 to 9.2.2.
- [Release notes](https://github.com/ipfs/js-stores/releases)
- [Commits](https://github.com/ipfs/js-stores/compare/datastore-core-v9.2.0...datastore-core-v9.2.2)

---
updated-dependencies:
- dependency-name: datastore-core
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-19 13:58:15 +05:30
dependabot[bot] ba6b380da4
chore(deps)(deps-dev): bump @types/chai from 4.3.4 to 4.3.5 (#1490)
Bumps [@types/chai](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/chai) from 4.3.4 to 4.3.5.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/chai)

---
updated-dependencies:
- dependency-name: "@types/chai"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-17 21:31:37 +05:30
dependabot[bot] 4db7fa1080
chore(deps)(deps-dev): bump @types/dockerode from 3.3.17 to 3.3.19 (#1489)
Bumps [@types/dockerode](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/dockerode) from 3.3.17 to 3.3.19.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/dockerode)

---
updated-dependencies:
- dependency-name: "@types/dockerode"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-17 20:55:30 +05:30
Danish Arora aab9c08cae
feat(dns-discovery): set default for `NodeRequirements` (#1466)
* add: test for multi enrtree + static multiaddr

* wrap up test

* rm: only

* move test to optional file

* dns-disc: setup default for node requirements & move to constants

* chore: restructure DNS Discovery for better readability

* fix: build

* fix: type import

* fix: test expect

* rm: only

* update packagelock

* use new libp2p interface

* fix linting errors
2023-08-17 19:50:35 +05:30
Danish Arora 7a805a277a
bump nwaku to 0.19 (#1485) 2023-08-16 23:23:37 +05:30
Danish Arora 87717981eb
chore: upgrade libp2p and related deps (#1482)
* chore: update noise

* update: package.lock

* update: @chainsafe/libp2p-gossipsub

* rm unwanted libp2p interface deps & bump up libp2p

* refactor code for new deps

* update: new package.lock

* setup prettier, refactor eslint  and rm trailing commas

* update package.lock

* fix build

* import type for interface

* fix imports for merge

* update typedoc exports

* add: CustomEvent import

* use new libp2p interface

* add aegir as dev dep for tests
2023-08-16 20:18:13 +05:30
Danish Arora 3d24cd6e17
re-enable @waku/tests (#1472) 2023-08-16 12:44:53 +05:30
Danish Arora 1548a4f8e4
chore(peer-exchange): refactor/fix compliance test (#1478)
* use `peer:identify` instead of `peer:update`

* dial the peer after initialising peer-exchange
2023-08-16 11:14:33 +05:30
dependabot[bot] 902914420c
chore(deps)(deps-dev): bump cspell from 6.31.2 to 7.0.0 (#1473)
Bumps [cspell](https://github.com/streetsidesoftware/cspell) from 6.31.2 to 7.0.0.
- [Release notes](https://github.com/streetsidesoftware/cspell/releases)
- [Changelog](https://github.com/streetsidesoftware/cspell/blob/main/CHANGELOG.md)
- [Commits](https://github.com/streetsidesoftware/cspell/compare/v6.31.2...v7.0.0)

---
updated-dependencies:
- dependency-name: cspell
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Danish Arora <35004822+danisharora099@users.noreply.github.com>
2023-08-12 16:11:59 +05:30
Sasha 51f9261a16
chore: update dependencies (#1460)
* update to latest prettier

* fix with prettier: added trailing comma

* remove deps from test package, add sinon types, fix type hack in a test, update esling prettier config

* update typescript eslint plugins

* update package-locks
2023-08-11 15:14:02 +02:00
Danish Arora 7227657d69
feat(tests): several enrtree + static multiaddr for bootstrap (#1448)
* add: test for multi enrtree + static multiaddr

* wrap up test

* rm: only

* move test to optional file

* fix: build

* fix: test expect

* rm: only
2023-08-11 13:52:44 +05:30
Danish Arora 462d614701
refactor peer exchange compliance test (#1468) 2023-08-10 11:53:53 +05:30
Sasha 75808ffc9d
chore: test agains Fleets and add optional tests (#1432)
* test Prod and Test fleets in CI

* compute predefined nodes once

* remove async

* add optional test step

* fix command
2023-08-07 10:27:16 +02:00
Danish Arora 0b8936f1f1
feat: ConnectionManager extends EventEmitter & exposed on the Waku interface (& minor improvements) (#1447)
* move KeepAliveOptions to dedicated interface file

* update export for KeepAlive

* expose `ConnectionManager` on the waku node

* update ConnectionManager test to use the exposed API

* rm: only for the test
2023-07-31 13:54:39 +05:30
Danish Arora 6ce898d771
feat: enable event emission for peer discovery/connection in ConnectionManager (#1438)
* disable libp2p autodial

* improve logs for peer-exchange

* add a function to fetch discovered and connected peers by discovery

* connection-manager: introduce event emissions by discovery

* write a spec test for events

* minor code improvement for peer-exchange

* rm: comment

* rename peer event result interface

* switch to using libp2p EventEmitter

* rename variables for readability

* reset peer-exchange spec file

* address review

* test: minor refactor

* fix: failing test

* increase peer IDs to test against for attemptDial

* improve structuring
2023-07-26 22:51:55 +05:30
Danish Arora d483644a4b
chore!: remove filter v1 (#1433)
* rm: v1

* fix v2 imports

* remove tests for filter v1

* set filter v1 as default and rm v2 completely

* change import name for filter v2

* rename FilterV2 to Filter completely

* fix run check
2023-07-26 11:30:48 +05:30