Sasha
45284db963
feat: add getActiveSubscriptions method ( #1249 )
2023-03-21 02:44:35 +01:00
Sasha
0f6a594644
feat!: use ISender and deprecate Light Push .push ( #1217 )
2023-03-21 02:07:59 +01:00
fryorcraken.eth
3a92355543
chore: code improvement
...
- Replace exception pattern with a result pattern as it better fits the
usage.
- merge few maps to prefer chaining to assign var after var.
- Make `isDefined` type helper a common util function
2023-03-21 08:59:25 +11:00
Sasha
275b16641e
feat!: add custom events to Relay and make observers private ( #1213 )
2023-03-15 21:47:56 +01:00
Danish Arora
a30b2bd747
chore!: add exports map to @waku/utils ( #1201 )
...
* add exports map
* merge: master
* export subdir with default export path
* import according to the export path
2023-03-14 10:10:38 +05:30
fryorcraken.eth
bd983ea48e
feat!: enable encoding of `meta` field
2023-03-14 11:21:09 +11:00
fryorcraken.eth
497588bc36
chore: make topics arbitrary data
2023-03-14 11:21:08 +11:00
fryorcraken.eth
560c393662
fix: add payload to relay ping messages to avoid poor relay peer scoring
...
Note that this keep alive mechanism should probably be removed.
2023-03-14 11:14:52 +11:00
fryorcraken.eth
628ac50d71
feat!: expose pubsub topic in `IDecodedMessage`
...
Needed for deterministic message hash.
Ref: #1208
2023-03-13 13:49:24 +11:00
fryorcraken.eth
96847374d6
feat(relay): validate waku message at gossip layer
2023-03-13 13:04:24 +11:00
fryorcraken.eth
da1b18d995
feat: export `Decoder`, `Encoder` and `DecodedMessage` types from root
...
Fixes #1010
2023-03-08 09:52:27 +11:00
fryorcraken.eth
1a9b13f902
chore: use `BaseProtocol` on `WakuPeerExchange`
...
Ref: https://github.com/waku-org/js-waku/pull/1137
2023-02-28 13:49:36 +11:00
fryorcraken.eth
60e866f00d
chore: remove usage of `any`
2023-02-28 12:00:53 +11:00
fryorcraken.eth
6c37ee5f19
chore: make variable used as boolean, a boolean
2023-02-28 12:00:53 +11:00
fryorcraken.eth
81d6638067
chore: use pascal case for class name
2023-02-27 14:00:49 +11:00
fryorcraken.eth
967e6ffc7e
chore!: update store.proto
...
Ref: https://github.com/vacp2p/waku
2023-02-27 14:00:33 +11:00
fryorcraken.eth
5cf8ed2030
chore!: update message.proto: payload and content topic are always defined
...
Ref: https://github.com/vacp2p/waku
2023-02-27 14:00:33 +11:00
fryorcraken.eth
18d31381d2
chore: use pascal case for class name
2023-02-27 14:00:32 +11:00
fryorcraken.eth
3e93e8f49e
chore: update light_push.proto
...
Ref: https://github.com/vacp2p/waku/blob/main/waku/lightpush/v2beta1/lightpush.proto
2023-02-27 14:00:32 +11:00
fryorcraken.eth
d6184fb41a
fixup! chore: update filter.proto
2023-02-27 14:00:32 +11:00
fryorcraken.eth
f6130d65c9
chore: use pascal case for class name
2023-02-27 14:00:31 +11:00
fryorcraken.eth
5f0e8b72f5
chore: update filter.proto
...
Ref: https://github.com/vacp2p/waku
2023-02-27 14:00:31 +11:00
fryorcraken.eth
789bebed00
chore: add `BaseProtocol` class to req-resp protocols
...
Each protocol implementation have some common functionality.
Implements those in `BaseProtocol`, to be extended by each protocol
implementation.
2023-02-27 09:48:30 +11:00
fryorcraken.eth
7d29ed1d99
chore: move error throwing within `selectPeerForProtocol`
...
As all callers throw upon undefined result.
2023-02-27 09:48:30 +11:00
fryorcraken.eth
c85b113df7
chore: use `this.multicodec` over constant
...
To enable extraction of common functions.
2023-02-27 09:48:10 +11:00
Danish Arora
6b87ca1c4d
chore: move `random_subset.ts` to `@waku/utils` ( #1191 )
2023-02-26 12:31:55 -07:00
Danish Arora
24c24cc27d
feat!: ConnectionManager and KeepAliveManager ( #1135 )
...
* initialises ConnectionManager and KeepAliveManager
ports from previous PR and makes necessary improvements and reductions
* address: comments
* map a ConnectionManager instance with a WakuNode
* abstract event listeners logic
* minor fix
* minor cleaning
* instantiate KeepAliveManager instead of extending
* fix build and enable all tests
* fix CI
* address review
* refine event handlers
- only removes the previously attached callback from
the event handlers while shutting down service
- removes the requirement of passing around
`keepAliveOptions` and `relay` inside of
`ConnectionManager`
* add verbosity to interface
* make `dialPeer()` more readable
* use set to push tags to avoid duplicates
* fix: merge build
* remove: logging function
* rename startService and stopService
* remove: future TODO
added that as part of future refactor
* use the new libp2p api
* initialise options in constructor//fix TS error
* remove stale export
* address principal review
* reset test timeout to master
2023-02-20 15:30:59 +05:30
Danish Arora
1b41569023
fix: remove initialising peer-exchange while creating a node ( #1158 )
...
* remove peer-exchange from @waku/core
- also removes the manual test for peer-exchange (assumption is that the
only way to initialise peer-exchange is through libp2p's peerDiscovery and
not manually) (ref:
https://github.com/waku-org/js-waku/pull/1158#discussion_r1108055234 )
# Please enter the commit message for your changes. Lines
starting
* fix: build
* update interop test
* decrease test duration for px auto discovery
* rm: only for tests
* address comment
2023-02-17 13:27:37 +05:30
fryorcraken.eth
c3b01751ce
chore: fix doc generation
2023-02-10 08:32:41 +11:00
fryorcraken.eth
6b8779b3be
chore: fix dependencies for `@waku/core`
2023-02-09 19:31:12 +11:00
fryorcraken.eth
803ae7bd8e
chore!: bump libp2p dependencies
2023-02-09 19:30:59 +11:00
Danish Arora
3b4bc8b25b
chore: update changelog & minor improvements ( #1153 )
...
* address comments from https://github.com/waku-org/js-waku/pull/1145
* fix: typedoc
* address comments in https://github.com/waku-org/js-waku/pull/1146#pullrequestreview-1286307508
- update changelog
- change naming for `EciesEncoderOptions` and
`SymmetricEncoderOptions`
2023-02-09 13:15:23 +05:30
Danish Arora
b33306655a
chore: move libp2p and byte utils to a single `utils` package ( #1149 )
...
* move libp2p and byte utils to a single `utils`
package
* set package version to 0.0.1
2023-02-06 11:22:36 +05:30
Danish Arora
8910a6d76a
chore: move args for `createEncoder` into non-repeating `options` & fix typedoc ( #1146 )
...
* move args for `createEncoder` into non-repeating `options` & fix typedoc
* update tests with new API
2023-02-02 11:37:28 +05:30
Danish Arora
10b3898762
chore: move protocols `CreateOptions` into interfaces ( #1145 )
...
* move protocols `CreateOptions` into interfaces and
add possible TODO
* remove: createOptions for PeerExchange
* update test with new API
2023-02-02 08:02:06 +05:30
fryorcraken.eth
372ff6454f
chore: remove `@waku/peer-exchange` dependency
...
As per its name, `@waku/core` aims to contain, and only contains, the
minimal set of core functionalities needed for a developer to use Waku
in their webapp.
Hence, `@waku/core` should avoid depending on other Waku packages. If a
developer wishes to use functionality from other packages, they should
explicitly import such packages.
2023-01-27 09:08:28 +11:00
fryorcraken.eth
a5ff788eed
feat: codec as a property of the protocol implementations
...
For easy access from `@waku/core` without the need to depend on package
implementing the protocol.
2023-01-27 09:08:02 +11:00
Danish Arora
828f8b40e5
add `ephemeral: true` to relay ( #1123 )
2023-01-19 14:30:23 +05:30
Danish Arora
d022d8700b
chore: remove unused relay protocol identifier ( #1063 )
...
* chore: remove unused relay protocol identifier
* update: changelog
2022-12-23 17:08:41 +05:30
fryorcraken.eth
ac4ff5a00a
chore: fix links in docs, treat doc warnings as errors
2022-12-21 16:47:00 +11:00
fryorcraken.eth
89571ff497
feat!: remove peer exchange from protocols to wait on by default
...
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.
2022-12-20 23:00:30 +11:00
fryorcraken.eth
e0fd4433e7
fix: remove invalid re-export
2022-12-19 16:16:07 +11:00
fryorcraken.eth
d946e443ad
refactor: remove `Waku` from protocol names
...
This is redundant with the context (waku package).
2022-12-12 22:36:13 +11:00
fryorcraken.eth
574f3ee80f
refactor: remove `waku_` from module names
...
This is redundant with the context (waku package).
2022-12-12 22:36:13 +11:00
fryorcraken.eth
53af8994bd
feat: added `I` prefix to protocols interfaces
...
This will enable the remove of `Waku` prefix on all protocol
implementations, which is redundant due to the context.
2022-12-12 22:36:09 +11:00
fryorcraken.eth
cc691e26ce
feat: added `I` prefix to message/codec interfaces
...
To make it easier to differentiate with their implementations.
2022-12-12 22:13:46 +11:00
Danish Arora
0ca7fd790c
feat!: implement peer exchange ( #1027 )
...
* wip -- yet to test
* update: draft
* wip
* support passing flags manually to nwaku node
* refactor peer-exchange test
* switch response from uint8array to ENR
* rm: unnecesary logs
* implement clas
* fix: for loop
* init-wip: directories
* setup: new package & fix circular deps
* bind a response handler
* wip: refactor & update test
* test logs
* wip code - debugging
* address: comments
* Update packages/core/src/lib/waku_peer_exchange/peer_discovery.ts
Co-authored-by: fryorcraken.eth <110212804+fryorcraken@users.noreply.github.com>
* Update packages/core/src/lib/waku_peer_exchange/peer_discovery.ts
Co-authored-by: fryorcraken.eth <110212804+fryorcraken@users.noreply.github.com>
* address: comments
* address: comments
* address: comments
* address: comments
* address: comments
* fix: test build
* refactor
* fix: build
* comply with API
* numPeers: use number instead of bigint
* fix: build
* Update packages/peer-exchange/package.json
Co-authored-by: fryorcraken.eth <110212804+fryorcraken@users.noreply.github.com>
* Update packages/peer-exchange/src/waku_peer_exchange.ts
Co-authored-by: fryorcraken.eth <110212804+fryorcraken@users.noreply.github.com>
* Update packages/peer-exchange/src/waku_peer_exchange.ts
Co-authored-by: fryorcraken.eth <110212804+fryorcraken@users.noreply.github.com>
* Update packages/peer-exchange/src/waku_peer_exchange.ts
Co-authored-by: fryorcraken.eth <110212804+fryorcraken@users.noreply.github.com>
* address: comments, add eslint config
* Update packages/peer-exchange/.eslintrc.cjs
Co-authored-by: fryorcraken.eth <110212804+fryorcraken@users.noreply.github.com>
* Update packages/peer-exchange/src/index.ts
Co-authored-by: fryorcraken.eth <110212804+fryorcraken@users.noreply.github.com>
* address comments
* test works with test fleet
* rm: only for px test => run all tests
* fix: tests
* reorder packages for build, and fix imports
* remove: px test doesnt work with local nodes
* chore: move proto into a separate package
* fix: proto dir
* fix: build
* fix: ci
* add: index for proto
* fix: ci
* Update packages/proto/package.json
Co-authored-by: fryorcraken.eth <110212804+fryorcraken@users.noreply.github.com>
* address comments
* chore: run failing test with higher timeout
* chore: run failing test with higher timeout
* fix: ci
Co-authored-by: fryorcraken.eth <110212804+fryorcraken@users.noreply.github.com>
2022-12-07 11:35:30 +05:30
Danish Arora
56009d3b26
chore: move proto into a separate package ( #1057 )
...
* chore: move proto into a separate package
* fix: proto dir
* fix: build
* fix: ci
* add: index for proto
* fix: ci
* Update packages/proto/package.json
Co-authored-by: fryorcraken.eth <110212804+fryorcraken@users.noreply.github.com>
Co-authored-by: fryorcraken.eth <110212804+fryorcraken@users.noreply.github.com>
2022-12-07 10:19:40 +05:30
Danish Arora
03e00225bd
chore: move libp2p utils from @waku/core to new package ( #1056 )
...
* add: libp2p-utils
* address: comments
2022-12-06 15:46:10 +05:30
fryorcraken.eth
80d7215e15
doc: `createEncoder` and `createDecoder`
2022-12-05 16:05:20 +11:00