112 Commits

Author SHA1 Message Date
gabrielmer
726c7c56c1
chore: improve keep alive (#3458) 2025-06-27 11:16:00 +02:00
Ivan FB
5c34e59589
chore: rename modules (#3469) 2025-06-26 11:27:39 +02:00
Ivan FB
fcd8207b58
chore: Libwaku watchdog that can potentially raise a WakuNotResponding event if Waku is blocked (#3466)
* refactor add waku not responding event to libwaku

Co-authored-by: NagyZoltanPeter <113987313+NagyZoltanPeter@users.noreply.github.com>
2025-06-24 23:20:08 +02:00
Ivan FB
2e40f2971f
chore: refactor to unify online and health monitors (#3456) 2025-06-16 18:44:21 +02:00
Ivan FB
f016ede600
feat: retrieve metrics from libwaku (#3452) 2025-06-12 12:49:05 +02:00
gabrielmer
7f51d103bb
feat: add waku_disconnect_all_peers to libwaku (#3438) 2025-06-05 17:25:14 +02:00
Ivan FB
9fc631e103
fix: relay unsubscribe (#3422)
* waku_relay protocol fix unsubscribe and remove topic validator
* simplify subscription and avoid unneeded code
* tests adaptations
* call wakuRelay.subscribe only in one place within waku_node
2025-06-02 22:02:49 +02:00
gabrielmer
e7f5c8cb23
chore: exposing online state in libwaku (#3433) 2025-05-30 17:47:06 +02:00
Ivan FB
924cc9341a
simplify libwaku error returns (#3399) 2025-05-14 11:05:02 +02:00
fryorcraken
dd8d664311
chore!: separate internal and CLI configurations (#3357)
Split `WakuNodeConfig` object for better separation of concerns and to introduce a tree-like structure to configuration.

* fix: ensure twn cluster conf is still applied when clusterId=1
* test: remove usage of `WakuNodeConf`
* Remove macro, split builder files, remove wakunodeconf from tests
* rm network_conf_builder module as it is not used

---------

Co-authored-by: NagyZoltanPeter <113987313+NagyZoltanPeter@users.noreply.github.com>
Co-authored-by: Ivan Folgueira Bande <ivansete@status.im>
2025-05-07 23:05:35 +02:00
Ivan FB
7d5eb93747
chore: Avoid double relay subscription (#3396)
* make sure subscribe once to every topic in waku_node
* start suggest use of removeValidator in waku_relay/protocol. Commented until libp2p updated.
2025-05-05 22:57:20 +02:00
gabrielmer
237f7abbb0
fix: mistaken comments and broken link (#3381) 2025-04-17 23:16:35 +02:00
gabrielmer
ac454a30b9
fix: libwaku's redundant allocs (#3380) 2025-04-17 23:15:35 +02:00
gabrielmer
ccb4ed51db
chore: expect camelCase JSON for libwaku store queries (#3366) 2025-04-11 11:07:35 +02:00
Ivan FB
25d30d44d0
chore: maintenance to c and c++ simple examples (#3367) 2025-04-11 11:05:22 +02:00
gabrielmer
b8707b6a5c
fix: avoid performing nil check for userData (#3365) 2025-04-10 14:34:54 +03:00
Ivan FB
df58643ea3
chore: retrieve protocols in new added peer from discv5 (#3354)
* add new unit test to validate that any peer can be retrieved
* add new discv5 test and better peer store management
* wakuPeerStore -> switch.peerStore
* simplify waku_peer_store, better logs and peer_manager enhancements
2025-04-07 12:24:03 +02:00
gabrielmer
0eb9c6200f
feat: add waku_get_connected_peers_info to libwaku (#3356) 2025-04-04 11:52:33 +03:00
gabrielmer
ef9074443a
feat: waku_relay_get_peers_in_mesh to libwaku (#3352) 2025-04-03 15:13:10 +03:00
gabrielmer
7250d73929
feat: add waku_relay_get_connected_peers to libwaku (#3353) 2025-04-03 14:27:27 +03:00
NagyZoltanPeter
e0b563ffe5
feat: lightpush v3 (#3279)
* Separate new lightpush protocol
New RPC defined
Rename al occurence of old lightpush to legacy lightpush, fix rest tests of lightpush
New lightpush protocol added back
Setup new lightpush protocol, mounting and rest api for it

	modified:   apps/chat2/chat2.nim
	modified:   tests/node/test_wakunode_lightpush.nim
	modified:   tests/node/test_wakunode_sharding.nim
	modified:   tests/test_peer_manager.nim
	modified:   tests/test_wakunode_lightpush.nim
	renamed:    tests/waku_lightpush/lightpush_utils.nim -> tests/waku_lightpush_legacy/lightpush_utils.nim
	renamed:    tests/waku_lightpush/test_all.nim -> tests/waku_lightpush_legacy/test_all.nim
	renamed:    tests/waku_lightpush/test_client.nim -> tests/waku_lightpush_legacy/test_client.nim
	renamed:    tests/waku_lightpush/test_ratelimit.nim -> tests/waku_lightpush_legacy/test_ratelimit.nim
	modified:   tests/wakunode_rest/test_all.nim
	renamed:    tests/wakunode_rest/test_rest_lightpush.nim -> tests/wakunode_rest/test_rest_lightpush_legacy.nim
	modified:   waku/factory/node_factory.nim
	modified:   waku/node/waku_node.nim
	modified:   waku/waku_api/rest/admin/handlers.nim
	modified:   waku/waku_api/rest/builder.nim
	new file:   waku/waku_api/rest/legacy_lightpush/client.nim
	new file:   waku/waku_api/rest/legacy_lightpush/handlers.nim
	new file:   waku/waku_api/rest/legacy_lightpush/types.nim
	modified:   waku/waku_api/rest/lightpush/client.nim
	modified:   waku/waku_api/rest/lightpush/handlers.nim
	modified:   waku/waku_api/rest/lightpush/types.nim
	modified:   waku/waku_core/codecs.nim
	modified:   waku/waku_lightpush.nim
	modified:   waku/waku_lightpush/callbacks.nim
	modified:   waku/waku_lightpush/client.nim
	modified:   waku/waku_lightpush/common.nim
	modified:   waku/waku_lightpush/protocol.nim
	modified:   waku/waku_lightpush/rpc.nim
	modified:   waku/waku_lightpush/rpc_codec.nim
	modified:   waku/waku_lightpush/self_req_handler.nim
	new file:   waku/waku_lightpush_legacy.nim
	renamed:    waku/waku_lightpush/README.md -> waku/waku_lightpush_legacy/README.md
	new file:   waku/waku_lightpush_legacy/callbacks.nim
	new file:   waku/waku_lightpush_legacy/client.nim
	new file:   waku/waku_lightpush_legacy/common.nim
	new file:   waku/waku_lightpush_legacy/protocol.nim
	new file:   waku/waku_lightpush_legacy/protocol_metrics.nim
	new file:   waku/waku_lightpush_legacy/rpc.nim
	new file:   waku/waku_lightpush_legacy/rpc_codec.nim
	new file:   waku/waku_lightpush_legacy/self_req_handler.nim

Adapt to non-invasive libp2p observers

cherry pick latest lightpush (v1) changes into legacy lightpush code after rebase to latest master

Fix vendor dependencies from origin/master after failed rebase of them

Adjust examples, test to new lightpush - keep using of legacy

Fixup error code mappings

Fix REST admin interface with distinct legacy and new lightpush

Fix lightpush v2 tests

* Utilize new publishEx interface of pubsub libp2p

* Adapt to latest libp2p pubslih design changes. publish returns an outcome as Result error.

* Fix review findings

* Fix tests, re-added lost one

* Fix rebase

* Apply suggestions from code review

Co-authored-by: Ivan FB <128452529+Ivansete-status@users.noreply.github.com>

* Addressing review comments

* Fix incentivization tests

* Fix build failed on libwaku

* Change new lightpush endpoint version to 3 instead of 2. Noticed that old and new lightpush metrics can cause trouble in monitoring dashboards so decided to give new name as v3 for the new lightpush metrics and change legacy ones back - temporarly till old lightpush will be decommissioned

* Fixing flaky test with rate limit timing

* Fixing logscope of lightpush and legacy lightpush

---------

Co-authored-by: Ivan FB <128452529+Ivansete-status@users.noreply.github.com>
2025-03-05 12:07:56 +01:00
gabrielmer
a407664613
fix: using nimMainPrefix in libwaku (#3311) 2025-03-03 11:22:48 +02:00
gabrielmer
ef634c436e
fix: subscribing to RelaydefaultHandler in libwaku (#3308) 2025-02-26 18:04:13 +02:00
gabrielmer
addce8dc33
chore: deprecating dnsDiscovery flag (#3305) 2025-02-24 22:06:48 +02:00
gabrielmer
a3876f1ec4
fix: libwaku's invalid waku message error handling (#3301) 2025-02-17 18:37:43 +02:00
gabrielmer
85da5efa13
chore: supporting parallel libwaku requests (#3296) 2025-02-13 15:08:32 +02:00
gabrielmer
b792bee695
fix: libwaku store request parsing (#3294) 2025-02-12 18:35:50 +02:00
gabrielmer
8a7e602543
fix: avoid sending relay callbacks if relay is disabled (#3276) 2025-02-05 18:16:37 +02:00
gabrielmer
9c209b4c3b
chore: sending msg hash as string on libwaku message event (#3234) 2025-01-30 10:15:31 +02:00
Ivan FB
625c8ee51b
chore: libwaku tweaks (#3233)
* make lightpush return msg hash after successful publish
* libwaku avoid the use of string
* library alloc.nim allocate memory when nil cstring is passed
* libwaku store_request remove extra destroyShared(self)
2025-01-08 20:52:44 +01:00
gabrielmer
e81a5517be
feat: connection change event (#3225) 2025-01-08 18:53:00 +01:00
richΛrd
d932dd10cc
feat(libwaku): add protected topic (#3211) 2025-01-07 09:29:39 -04:00
Ivan FB
04a5355631
libwaku invoke callback within waku_destroy (#3228) 2025-01-03 16:13:26 +01:00
Ivan FB
22ce9ee872
chore: enhance libwaku store protocol and more (#3223)
* json_message_event: avoid converting a WakuMessageHash into 0x...
* waku_thread: wait until the waku thread completely received the request
* waku_thread: add missing deallocShared
* libwaku avoid nonsense onReceivedMessage cb in waku_relay_publish
2025-01-03 12:26:46 +01:00
gabrielmer
6020a673b0
feat: topic health tracking (#3212) 2024-12-24 11:47:38 +01:00
gabrielmer
049fbeabbb
feat: allowing configuration of application level callbacks (#3206) 2024-12-13 17:38:16 +01:00
richΛrd
ab0c1d4aa0
fix(libwaku): waku_relay_unsubscribe (#3207) 2024-12-12 08:06:54 -04:00
richΛrd
2022f54f5c
fix(libwaku): support string and int64 for timestamps (#3205) 2024-12-10 13:52:21 -04:00
gabrielmer
d7d00bfd79
feat: making dns discovery async (#3175) 2024-12-03 14:39:37 +01:00
richΛrd
47a6235414
refactor(libwaku): async (#3180) 2024-12-02 10:56:12 -04:00
Ivan FB
f856298caa
chore: Filter in libwaku (#3177) 2024-11-29 15:31:08 +01:00
Ivan FB
294dd03c45
chore: libwaku - better error handling and better waku thread destroy handling (#3167) 2024-11-08 14:59:02 +07:00
richΛrd
3cb8ebdd8f
refactor(libwaku): allow several multiaddresses for a single peer in store queries (#3171)
* fix: parameter name
* refactor: allow multiple addresses for a peer in a store query
2024-11-08 14:36:16 +07:00
gabrielmer
507b1fc4d9
feat: adding waku_dial_peer and get_connected_peers to libwaku (#3149) 2024-10-30 16:26:33 +02:00
gabrielmer
5c7720c24d
fixing libwaku's dns discovery multiaddress generation (#3155) 2024-10-29 11:39:38 +02:00
richΛrd
3665991a65
chore: support ping with multiple multiaddresses and close stream (#3154) 2024-10-28 15:51:07 -04:00
Ivan FB
cfde7eea82
chore: Circuit relay (#3112)
* undo apt install libpcre (not circuit-relay related.)
* nat.nim: protect against possible exceptions when calling getExternalIP
* new external CLI argument, isRelayClient
* waku factory change to mount circuit hop proto by default
* waku_node: move autonat_service to a separate module
2024-10-28 09:17:46 +01:00
richΛrd
de11e576f4
feat(libwaku): ping peer (#3144) 2024-10-24 09:07:08 -04:00
gabrielmer
76606421a2
fix: peer exchange libwaku response handling (#3141) 2024-10-24 10:32:57 +03:00
gabrielmer
c5a825e206
chore: add to libwaku peer id retrieval proc (#3124) 2024-10-17 19:13:00 +03:00