From 46b1648912adafb4355298780e61b9a2f5493092 Mon Sep 17 00:00:00 2001 From: gabrielmer <101006718+gabrielmer@users.noreply.github.com> Date: Wed, 12 Feb 2025 16:20:23 +0200 Subject: [PATCH 1/5] fixing hash to bytes conversion and increasing chan sizes (#32) --- waku/common/message_hash.go | 7 ++++++- waku/nwaku.go | 6 +++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/waku/common/message_hash.go b/waku/common/message_hash.go index c51e480..c7a3cfe 100644 --- a/waku/common/message_hash.go +++ b/waku/common/message_hash.go @@ -35,5 +35,10 @@ func (h MessageHash) String() string { } func (h MessageHash) Bytes() ([]byte, error) { - return hex.DecodeString(string(h)) + s := string(h) + // Remove 0x prefix if present + if len(s) >= 2 && s[:2] == "0x" { + s = s[2:] + } + return hex.DecodeString(s) } diff --git a/waku/nwaku.go b/waku/nwaku.go index e3dc669..b62a228 100644 --- a/waku/nwaku.go +++ b/waku/nwaku.go @@ -337,9 +337,9 @@ import ( ) const requestTimeout = 30 * time.Second -const MsgChanBufferSize = 100 -const TopicHealthChanBufferSize = 100 -const ConnectionChangeChanBufferSize = 100 +const MsgChanBufferSize = 1024 +const TopicHealthChanBufferSize = 1024 +const ConnectionChangeChanBufferSize = 1024 type WakuConfig struct { Host string `json:"host,omitempty"` From 77122cd5d7d07747ba2e084d3c3deff66979946f Mon Sep 17 00:00:00 2001 From: gabrielmer <101006718+gabrielmer@users.noreply.github.com> Date: Fri, 14 Feb 2025 14:20:49 +0200 Subject: [PATCH 2/5] chore: adding makefile targets (#34) --- waku/Makefile | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/waku/Makefile b/waku/Makefile index ce412bb..ce51036 100644 --- a/waku/Makefile +++ b/waku/Makefile @@ -5,7 +5,7 @@ THIRD_PARTY_DIR := ../third_party NWAKU_REPO := https://github.com/waku-org/nwaku NWAKU_DIR := $(THIRD_PARTY_DIR)/nwaku -.PHONY: all clean prepare build +.PHONY: all clean prepare build-libwaku build # Default target all: build @@ -22,12 +22,14 @@ prepare: else \ echo "nwaku repository already exists."; \ fi - + +# Build libwaku +build-libwaku: prepare @echo "Building libwaku..." @cd $(NWAKU_DIR) && make libwaku # Build Waku Go Bindings -build: prepare +build: build-libwaku @echo "Building Waku Go Bindings..." go build ./... From cd77341fb3c79ae80c6f7f724afc2ace516ca50c Mon Sep 17 00:00:00 2001 From: gabrielmer <101006718+gabrielmer@users.noreply.github.com> Date: Fri, 14 Feb 2025 17:01:03 +0200 Subject: [PATCH 3/5] chore: moving types to common package (#35) --- waku/common/config.go | 36 +++++++++++++++++ waku/common/rate_limit.go | 47 ++++++++++++++++++++++ waku/nwaku.go | 84 ++------------------------------------- waku/nwaku_test.go | 38 +++++++++--------- waku/test_data.go | 6 ++- 5 files changed, 110 insertions(+), 101 deletions(-) create mode 100644 waku/common/config.go create mode 100644 waku/common/rate_limit.go diff --git a/waku/common/config.go b/waku/common/config.go new file mode 100644 index 0000000..5026ab0 --- /dev/null +++ b/waku/common/config.go @@ -0,0 +1,36 @@ +package common + +type WakuConfig struct { + Host string `json:"host,omitempty"` + Nodekey string `json:"nodekey,omitempty"` + Relay bool `json:"relay"` + Store bool `json:"store,omitempty"` + LegacyStore bool `json:"legacyStore"` + Storenode string `json:"storenode,omitempty"` + StoreMessageRetentionPolicy string `json:"storeMessageRetentionPolicy,omitempty"` + StoreMessageDbUrl string `json:"storeMessageDbUrl,omitempty"` + StoreMessageDbVacuum bool `json:"storeMessageDbVacuum,omitempty"` + StoreMaxNumDbConnections int `json:"storeMaxNumDbConnections,omitempty"` + StoreResume bool `json:"storeResume,omitempty"` + Filter bool `json:"filter,omitempty"` + Filternode string `json:"filternode,omitempty"` + FilterSubscriptionTimeout int64 `json:"filterSubscriptionTimeout,omitempty"` + FilterMaxPeersToServe uint32 `json:"filterMaxPeersToServe,omitempty"` + FilterMaxCriteria uint32 `json:"filterMaxCriteria,omitempty"` + Lightpush bool `json:"lightpush,omitempty"` + LightpushNode string `json:"lightpushnode,omitempty"` + LogLevel string `json:"logLevel,omitempty"` + DnsDiscovery bool `json:"dnsDiscovery,omitempty"` + DnsDiscoveryUrl string `json:"dnsDiscoveryUrl,omitempty"` + MaxMessageSize string `json:"maxMessageSize,omitempty"` + Staticnodes []string `json:"staticnodes,omitempty"` + Discv5BootstrapNodes []string `json:"discv5BootstrapNodes,omitempty"` + Discv5Discovery bool `json:"discv5Discovery,omitempty"` + Discv5UdpPort int `json:"discv5UdpPort,omitempty"` + ClusterID uint16 `json:"clusterId,omitempty"` + Shards []uint16 `json:"shards,omitempty"` + PeerExchange bool `json:"peerExchange,omitempty"` + PeerExchangeNode string `json:"peerExchangeNode,omitempty"` + TcpPort int `json:"tcpPort,omitempty"` + RateLimits RateLimitsConfig `json:"rateLimits,omitempty"` +} diff --git a/waku/common/rate_limit.go b/waku/common/rate_limit.go new file mode 100644 index 0000000..246ae76 --- /dev/null +++ b/waku/common/rate_limit.go @@ -0,0 +1,47 @@ +package common + +import ( + "encoding/json" + "fmt" +) + +type RateLimitsConfig struct { + Filter *RateLimit `json:"-"` + Lightpush *RateLimit `json:"-"` + PeerExchange *RateLimit `json:"-"` +} + +type RateLimit struct { + Volume int // Number of allowed messages per period + Period int // Length of each rate-limit period (in TimeUnit) + TimeUnit RateLimitTimeUnit // Time unit of the period +} + +type RateLimitTimeUnit string + +const Hour RateLimitTimeUnit = "h" +const Minute RateLimitTimeUnit = "m" +const Second RateLimitTimeUnit = "s" +const Millisecond RateLimitTimeUnit = "ms" + +func (rl RateLimit) String() string { + return fmt.Sprintf("%d/%d%s", rl.Volume, rl.Period, rl.TimeUnit) +} + +func (rl RateLimit) MarshalJSON() ([]byte, error) { + return json.Marshal(rl.String()) +} + +func (rlc RateLimitsConfig) MarshalJSON() ([]byte, error) { + output := []string{} + if rlc.Filter != nil { + output = append(output, fmt.Sprintf("filter:%s", rlc.Filter.String())) + } + if rlc.Lightpush != nil { + output = append(output, fmt.Sprintf("lightpush:%s", rlc.Lightpush.String())) + } + if rlc.PeerExchange != nil { + output = append(output, fmt.Sprintf("px:%s", rlc.PeerExchange.String())) + } + return json.Marshal(output) +} diff --git a/waku/nwaku.go b/waku/nwaku.go index b62a228..9d2b2d0 100644 --- a/waku/nwaku.go +++ b/waku/nwaku.go @@ -341,82 +341,6 @@ const MsgChanBufferSize = 1024 const TopicHealthChanBufferSize = 1024 const ConnectionChangeChanBufferSize = 1024 -type WakuConfig struct { - Host string `json:"host,omitempty"` - Nodekey string `json:"nodekey,omitempty"` - Relay bool `json:"relay"` - Store bool `json:"store,omitempty"` - LegacyStore bool `json:"legacyStore"` - Storenode string `json:"storenode,omitempty"` - StoreMessageRetentionPolicy string `json:"storeMessageRetentionPolicy,omitempty"` - StoreMessageDbUrl string `json:"storeMessageDbUrl,omitempty"` - StoreMessageDbVacuum bool `json:"storeMessageDbVacuum,omitempty"` - StoreMaxNumDbConnections int `json:"storeMaxNumDbConnections,omitempty"` - StoreResume bool `json:"storeResume,omitempty"` - Filter bool `json:"filter,omitempty"` - Filternode string `json:"filternode,omitempty"` - FilterSubscriptionTimeout int64 `json:"filterSubscriptionTimeout,omitempty"` - FilterMaxPeersToServe uint32 `json:"filterMaxPeersToServe,omitempty"` - FilterMaxCriteria uint32 `json:"filterMaxCriteria,omitempty"` - Lightpush bool `json:"lightpush,omitempty"` - LightpushNode string `json:"lightpushnode,omitempty"` - LogLevel string `json:"logLevel,omitempty"` - DnsDiscovery bool `json:"dnsDiscovery,omitempty"` - DnsDiscoveryUrl string `json:"dnsDiscoveryUrl,omitempty"` - MaxMessageSize string `json:"maxMessageSize,omitempty"` - Staticnodes []string `json:"staticnodes,omitempty"` - Discv5BootstrapNodes []string `json:"discv5BootstrapNodes,omitempty"` - Discv5Discovery bool `json:"discv5Discovery,omitempty"` - Discv5UdpPort int `json:"discv5UdpPort,omitempty"` - ClusterID uint16 `json:"clusterId,omitempty"` - Shards []uint16 `json:"shards,omitempty"` - PeerExchange bool `json:"peerExchange,omitempty"` - PeerExchangeNode string `json:"peerExchangeNode,omitempty"` - TcpPort int `json:"tcpPort,omitempty"` - RateLimits RateLimitsConfig `json:"rateLimits,omitempty"` -} - -type RateLimitsConfig struct { - Filter *RateLimit `json:"-"` - Lightpush *RateLimit `json:"-"` - PeerExchange *RateLimit `json:"-"` -} - -func (rlc RateLimitsConfig) MarshalJSON() ([]byte, error) { - output := []string{} - if rlc.Filter != nil { - output = append(output, fmt.Sprintf("filter:%s", rlc.Filter.String())) - } - if rlc.Lightpush != nil { - output = append(output, fmt.Sprintf("lightpush:%s", rlc.Lightpush.String())) - } - if rlc.PeerExchange != nil { - output = append(output, fmt.Sprintf("px:%s", rlc.PeerExchange.String())) - } - return json.Marshal(output) -} - -type RateLimitTimeUnit string - -const Hour RateLimitTimeUnit = "h" -const Minute RateLimitTimeUnit = "m" -const Second RateLimitTimeUnit = "s" -const Millisecond RateLimitTimeUnit = "ms" - -type RateLimit struct { - Volume int // Number of allowed messages per period - Period int // Length of each rate-limit period (in TimeUnit) - TimeUnit RateLimitTimeUnit // Time unit of the period -} - -func (rl RateLimit) String() string { - return fmt.Sprintf("%d/%d%s", rl.Volume, rl.Period, rl.TimeUnit) -} - -func (rl RateLimit) MarshalJSON() ([]byte, error) { - return json.Marshal(rl.String()) -} - //export GoCallback func GoCallback(ret C.int, msg *C.char, len C.size_t, resp unsafe.Pointer) { if resp != nil { @@ -432,14 +356,14 @@ func GoCallback(ret C.int, msg *C.char, len C.size_t, resp unsafe.Pointer) { // WakuNode represents an instance of an nwaku node type WakuNode struct { wakuCtx unsafe.Pointer - config *WakuConfig + config *common.WakuConfig MsgChan chan common.Envelope TopicHealthChan chan topicHealth ConnectionChangeChan chan connectionChange nodeName string } -func NewWakuNode(config *WakuConfig, nodeName string) (*WakuNode, error) { +func NewWakuNode(config *common.WakuConfig, nodeName string) (*WakuNode, error) { Debug("Creating new WakuNode: %v", nodeName) n := &WakuNode{ config: config, @@ -1359,11 +1283,11 @@ func GetFreePortIfNeeded(tcpPort int, discV5UDPPort int) (int, int, error) { } // Create & start node -func StartWakuNode(nodeName string, customCfg *WakuConfig) (*WakuNode, error) { +func StartWakuNode(nodeName string, customCfg *common.WakuConfig) (*WakuNode, error) { Debug("Initializing %s", nodeName) - var nodeCfg WakuConfig + var nodeCfg common.WakuConfig if customCfg == nil { nodeCfg = DefaultWakuConfig } else { diff --git a/waku/nwaku_test.go b/waku/nwaku_test.go index 96450a7..4c058d7 100644 --- a/waku/nwaku_test.go +++ b/waku/nwaku_test.go @@ -37,7 +37,7 @@ func TestBasicWaku(t *testing.T) { // ctx := context.Background() - nwakuConfig := WakuConfig{ + nwakuConfig := common.WakuConfig{ Nodekey: "11d0dcea28e86f81937a3bd1163473c7fbc0a0db54fd72914849bc47bdf78710", Relay: true, LogLevel: "DEBUG", @@ -190,7 +190,7 @@ func TestPeerExchange(t *testing.T) { tcpPort, udpPort, err := GetFreePortIfNeeded(0, 0) require.NoError(t, err) // start node that will be discovered by PeerExchange - discV5NodeWakuConfig := WakuConfig{ + discV5NodeWakuConfig := common.WakuConfig{ Relay: true, LogLevel: "DEBUG", Discv5Discovery: true, @@ -215,7 +215,7 @@ func TestPeerExchange(t *testing.T) { require.NoError(t, err) // start node which serves as PeerExchange server - pxServerWakuConfig := WakuConfig{ + pxServerWakuConfig := common.WakuConfig{ Relay: true, LogLevel: "DEBUG", Discv5Discovery: true, @@ -264,7 +264,7 @@ func TestPeerExchange(t *testing.T) { require.NoError(t, err) // start light node which uses PeerExchange to discover peers - pxClientWakuConfig := WakuConfig{ + pxClientWakuConfig := common.WakuConfig{ Relay: false, LogLevel: "DEBUG", Discv5Discovery: false, @@ -324,7 +324,7 @@ func TestDnsDiscover(t *testing.T) { require.NoError(t, err) nameserver := "8.8.8.8" - nodeWakuConfig := WakuConfig{ + nodeWakuConfig := common.WakuConfig{ Relay: true, LogLevel: "DEBUG", ClusterID: 16, @@ -353,7 +353,7 @@ func TestDial(t *testing.T) { require.NoError(t, err) // start node that will initiate the dial - dialerNodeWakuConfig := WakuConfig{ + dialerNodeWakuConfig := common.WakuConfig{ Relay: true, LogLevel: "DEBUG", Discv5Discovery: false, @@ -371,7 +371,7 @@ func TestDial(t *testing.T) { require.NoError(t, err) // start node that will receive the dial - receiverNodeWakuConfig := WakuConfig{ + receiverNodeWakuConfig := common.WakuConfig{ Relay: true, LogLevel: "DEBUG", Discv5Discovery: false, @@ -418,7 +418,7 @@ func TestRelay(t *testing.T) { require.NoError(t, err) // start node that will send the message - senderNodeWakuConfig := WakuConfig{ + senderNodeWakuConfig := common.WakuConfig{ Relay: true, LogLevel: "DEBUG", Discv5Discovery: false, @@ -436,7 +436,7 @@ func TestRelay(t *testing.T) { require.NoError(t, err) // start node that will receive the message - receiverNodeWakuConfig := WakuConfig{ + receiverNodeWakuConfig := common.WakuConfig{ Relay: true, LogLevel: "DEBUG", Discv5Discovery: false, @@ -502,7 +502,7 @@ func TestTopicHealth(t *testing.T) { require.NoError(t, err) // start node1 - wakuConfig1 := WakuConfig{ + wakuConfig1 := common.WakuConfig{ Relay: true, LogLevel: "DEBUG", Discv5Discovery: false, @@ -520,7 +520,7 @@ func TestTopicHealth(t *testing.T) { require.NoError(t, err) // start node2 - wakuConfig2 := WakuConfig{ + wakuConfig2 := common.WakuConfig{ Relay: true, LogLevel: "DEBUG", Discv5Discovery: false, @@ -575,7 +575,7 @@ func TestConnectionChange(t *testing.T) { require.NoError(t, err) // start node1 - wakuConfig1 := WakuConfig{ + wakuConfig1 := common.WakuConfig{ Relay: true, LogLevel: "DEBUG", Discv5Discovery: false, @@ -593,7 +593,7 @@ func TestConnectionChange(t *testing.T) { require.NoError(t, err) // start node2 - wakuConfig2 := WakuConfig{ + wakuConfig2 := common.WakuConfig{ Relay: true, LogLevel: "DEBUG", Discv5Discovery: false, @@ -662,7 +662,7 @@ func TestStore(t *testing.T) { require.NoError(t, err) // start node that will send the message - senderNodeWakuConfig := WakuConfig{ + senderNodeWakuConfig := common.WakuConfig{ Relay: true, Store: true, LogLevel: "DEBUG", @@ -682,7 +682,7 @@ func TestStore(t *testing.T) { require.NoError(t, err) // start node that will receive the message - receiverNodeWakuConfig := WakuConfig{ + receiverNodeWakuConfig := common.WakuConfig{ Relay: true, Store: true, LogLevel: "DEBUG", @@ -845,7 +845,7 @@ func TestParallelPings(t *testing.T) { require.NoError(t, err) // start node that will initiate the dial - dialerNodeWakuConfig := WakuConfig{ + dialerNodeWakuConfig := common.WakuConfig{ Relay: true, LogLevel: "DEBUG", Discv5Discovery: false, @@ -862,7 +862,7 @@ func TestParallelPings(t *testing.T) { tcpPort, udpPort, err = GetFreePortIfNeeded(0, 0) require.NoError(t, err) - receiverNodeWakuConfig1 := WakuConfig{ + receiverNodeWakuConfig1 := common.WakuConfig{ Relay: true, LogLevel: "DEBUG", Discv5Discovery: false, @@ -883,7 +883,7 @@ func TestParallelPings(t *testing.T) { tcpPort, udpPort, err = GetFreePortIfNeeded(0, 0) require.NoError(t, err) - receiverNodeWakuConfig2 := WakuConfig{ + receiverNodeWakuConfig2 := common.WakuConfig{ Relay: true, LogLevel: "DEBUG", Discv5Discovery: false, @@ -904,7 +904,7 @@ func TestParallelPings(t *testing.T) { tcpPort, udpPort, err = GetFreePortIfNeeded(0, 0) require.NoError(t, err) - receiverNodeWakuConfig3 := WakuConfig{ + receiverNodeWakuConfig3 := common.WakuConfig{ Relay: true, LogLevel: "DEBUG", Discv5Discovery: false, diff --git a/waku/test_data.go b/waku/test_data.go index bdb139c..121e1f2 100644 --- a/waku/test_data.go +++ b/waku/test_data.go @@ -2,9 +2,11 @@ package waku import ( "time" + + "github.com/waku-org/waku-go-bindings/waku/common" ) -var DefaultWakuConfig WakuConfig +var DefaultWakuConfig common.WakuConfig func init() { @@ -15,7 +17,7 @@ func init() { Error("Failed to get free ports %v %v", err1, err2) } - DefaultWakuConfig = WakuConfig{ + DefaultWakuConfig = common.WakuConfig{ Relay: false, LogLevel: "DEBUG", Discv5Discovery: true, From f18c532f70bdb78cdddd54bb74e011e13ce2de6f Mon Sep 17 00:00:00 2001 From: gabrielmer <101006718+gabrielmer@users.noreply.github.com> Date: Mon, 17 Feb 2025 18:37:19 +0200 Subject: [PATCH 4/5] fix: not exiting the program when a call fails (#36) --- waku/nwaku.go | 113 +++++++++++++++++++++++--------------------------- 1 file changed, 52 insertions(+), 61 deletions(-) diff --git a/waku/nwaku.go b/waku/nwaku.go index 9d2b2d0..1f29fd6 100644 --- a/waku/nwaku.go +++ b/waku/nwaku.go @@ -56,15 +56,6 @@ package waku // resp must be set != NULL in case interest on retrieving data from the callback void GoCallback(int ret, char* msg, size_t len, void* resp); - #define WAKU_CALL(call) \ - do { \ - int ret = call; \ - if (ret != 0) { \ - printf("Failed the call to: %s. Returned code: %d\n", #call, ret); \ - exit(1); \ - } \ - } while (0) - static void* cGoWakuNew(const char* configJson, void* resp) { // We pass NULL because we are not interested in retrieving data from this callback void* ret = waku_new(configJson, (WakuCallBack) GoCallback, resp); @@ -72,27 +63,27 @@ package waku } static void cGoWakuStart(void* wakuCtx, void* resp) { - WAKU_CALL(waku_start(wakuCtx, (WakuCallBack) GoCallback, resp)); + waku_start(wakuCtx, (WakuCallBack) GoCallback, resp); } static void cGoWakuStop(void* wakuCtx, void* resp) { - WAKU_CALL(waku_stop(wakuCtx, (WakuCallBack) GoCallback, resp)); + waku_stop(wakuCtx, (WakuCallBack) GoCallback, resp); } static void cGoWakuDestroy(void* wakuCtx, void* resp) { - WAKU_CALL(waku_destroy(wakuCtx, (WakuCallBack) GoCallback, resp)); + waku_destroy(wakuCtx, (WakuCallBack) GoCallback, resp); } static void cGoWakuStartDiscV5(void* wakuCtx, void* resp) { - WAKU_CALL(waku_start_discv5(wakuCtx, (WakuCallBack) GoCallback, resp)); + waku_start_discv5(wakuCtx, (WakuCallBack) GoCallback, resp); } static void cGoWakuStopDiscV5(void* wakuCtx, void* resp) { - WAKU_CALL(waku_stop_discv5(wakuCtx, (WakuCallBack) GoCallback, resp)); + waku_stop_discv5(wakuCtx, (WakuCallBack) GoCallback, resp); } static void cGoWakuVersion(void* wakuCtx, void* resp) { - WAKU_CALL(waku_version(wakuCtx, (WakuCallBack) GoCallback, resp)); + waku_version(wakuCtx, (WakuCallBack) GoCallback, resp); } static void cGoWakuSetEventCallback(void* wakuCtx) { @@ -118,21 +109,21 @@ package waku char* encoding, void* resp) { - WAKU_CALL( waku_content_topic(wakuCtx, + waku_content_topic(wakuCtx, appName, appVersion, contentTopicName, encoding, (WakuCallBack) GoCallback, - resp) ); + resp); } static void cGoWakuPubsubTopic(void* wakuCtx, char* topicName, void* resp) { - WAKU_CALL( waku_pubsub_topic(wakuCtx, topicName, (WakuCallBack) GoCallback, resp) ); + waku_pubsub_topic(wakuCtx, topicName, (WakuCallBack) GoCallback, resp); } static void cGoWakuDefaultPubsubTopic(void* wakuCtx, void* resp) { - WAKU_CALL (waku_default_pubsub_topic(wakuCtx, (WakuCallBack) GoCallback, resp)); + waku_default_pubsub_topic(wakuCtx, (WakuCallBack) GoCallback, resp); } static void cGoWakuRelayPublish(void* wakuCtx, @@ -141,44 +132,44 @@ package waku int timeoutMs, void* resp) { - WAKU_CALL (waku_relay_publish(wakuCtx, + waku_relay_publish(wakuCtx, pubSubTopic, jsonWakuMessage, timeoutMs, (WakuCallBack) GoCallback, - resp)); + resp); } static void cGoWakuRelaySubscribe(void* wakuCtx, char* pubSubTopic, void* resp) { - WAKU_CALL ( waku_relay_subscribe(wakuCtx, + waku_relay_subscribe(wakuCtx, pubSubTopic, (WakuCallBack) GoCallback, - resp) ); + resp); } static void cGoWakuRelayAddProtectedShard(void* wakuCtx, int clusterId, int shardId, char* publicKey, void* resp) { - WAKU_CALL ( waku_relay_add_protected_shard(wakuCtx, + waku_relay_add_protected_shard(wakuCtx, clusterId, shardId, publicKey, (WakuCallBack) GoCallback, - resp) ); + resp); } static void cGoWakuRelayUnsubscribe(void* wakuCtx, char* pubSubTopic, void* resp) { - WAKU_CALL ( waku_relay_unsubscribe(wakuCtx, + waku_relay_unsubscribe(wakuCtx, pubSubTopic, (WakuCallBack) GoCallback, - resp) ); + resp); } static void cGoWakuConnect(void* wakuCtx, char* peerMultiAddr, int timeoutMs, void* resp) { - WAKU_CALL( waku_connect(wakuCtx, + waku_connect(wakuCtx, peerMultiAddr, timeoutMs, (WakuCallBack) GoCallback, - resp) ); + resp); } static void cGoWakuDialPeer(void* wakuCtx, @@ -187,12 +178,12 @@ package waku int timeoutMs, void* resp) { - WAKU_CALL( waku_dial_peer(wakuCtx, + waku_dial_peer(wakuCtx, peerMultiAddr, protocol, timeoutMs, (WakuCallBack) GoCallback, - resp) ); + resp); } static void cGoWakuDialPeerById(void* wakuCtx, @@ -201,51 +192,51 @@ package waku int timeoutMs, void* resp) { - WAKU_CALL( waku_dial_peer_by_id(wakuCtx, + waku_dial_peer_by_id(wakuCtx, peerId, protocol, timeoutMs, (WakuCallBack) GoCallback, - resp) ); + resp); } static void cGoWakuDisconnectPeerById(void* wakuCtx, char* peerId, void* resp) { - WAKU_CALL( waku_disconnect_peer_by_id(wakuCtx, + waku_disconnect_peer_by_id(wakuCtx, peerId, (WakuCallBack) GoCallback, - resp) ); + resp); } static void cGoWakuListenAddresses(void* wakuCtx, void* resp) { - WAKU_CALL (waku_listen_addresses(wakuCtx, (WakuCallBack) GoCallback, resp) ); + waku_listen_addresses(wakuCtx, (WakuCallBack) GoCallback, resp); } static void cGoWakuGetMyENR(void* ctx, void* resp) { - WAKU_CALL (waku_get_my_enr(ctx, (WakuCallBack) GoCallback, resp) ); + waku_get_my_enr(ctx, (WakuCallBack) GoCallback, resp); } static void cGoWakuGetMyPeerId(void* ctx, void* resp) { - WAKU_CALL (waku_get_my_peerid(ctx, (WakuCallBack) GoCallback, resp) ); + waku_get_my_peerid(ctx, (WakuCallBack) GoCallback, resp); } static void cGoWakuPingPeer(void* ctx, char* peerAddr, int timeoutMs, void* resp) { - WAKU_CALL (waku_ping_peer(ctx, peerAddr, timeoutMs, (WakuCallBack) GoCallback, resp) ); + waku_ping_peer(ctx, peerAddr, timeoutMs, (WakuCallBack) GoCallback, resp); } static void cGoWakuGetNumPeersInMesh(void* ctx, char* pubSubTopic, void* resp) { - WAKU_CALL (waku_relay_get_num_peers_in_mesh(ctx, pubSubTopic, (WakuCallBack) GoCallback, resp) ); + waku_relay_get_num_peers_in_mesh(ctx, pubSubTopic, (WakuCallBack) GoCallback, resp); } static void cGoWakuGetNumConnectedRelayPeers(void* ctx, char* pubSubTopic, void* resp) { - WAKU_CALL (waku_relay_get_num_connected_peers(ctx, pubSubTopic, (WakuCallBack) GoCallback, resp) ); + waku_relay_get_num_connected_peers(ctx, pubSubTopic, (WakuCallBack) GoCallback, resp); } static void cGoWakuGetConnectedPeers(void* wakuCtx, void* resp) { - WAKU_CALL (waku_get_connected_peers(wakuCtx, (WakuCallBack) GoCallback, resp) ); + waku_get_connected_peers(wakuCtx, (WakuCallBack) GoCallback, resp); } static void cGoWakuGetPeerIdsFromPeerStore(void* wakuCtx, void* resp) { - WAKU_CALL (waku_get_peerids_from_peerstore(wakuCtx, (WakuCallBack) GoCallback, resp) ); + waku_get_peerids_from_peerstore(wakuCtx, (WakuCallBack) GoCallback, resp); } static void cGoWakuLightpushPublish(void* wakuCtx, @@ -253,11 +244,11 @@ package waku const char* jsonWakuMessage, void* resp) { - WAKU_CALL (waku_lightpush_publish(wakuCtx, + waku_lightpush_publish(wakuCtx, pubSubTopic, jsonWakuMessage, (WakuCallBack) GoCallback, - resp)); + resp); } static void cGoWakuStoreQuery(void* wakuCtx, @@ -266,32 +257,32 @@ package waku int timeoutMs, void* resp) { - WAKU_CALL (waku_store_query(wakuCtx, - jsonQuery, - peerAddr, - timeoutMs, - (WakuCallBack) GoCallback, - resp)); + waku_store_query(wakuCtx, + jsonQuery, + peerAddr, + timeoutMs, + (WakuCallBack) GoCallback, + resp); } static void cGoWakuPeerExchangeQuery(void* wakuCtx, uint64_t numPeers, void* resp) { - WAKU_CALL (waku_peer_exchange_request(wakuCtx, + waku_peer_exchange_request(wakuCtx, numPeers, (WakuCallBack) GoCallback, - resp)); + resp); } static void cGoWakuGetPeerIdsByProtocol(void* wakuCtx, const char* protocol, void* resp) { - WAKU_CALL (waku_get_peerids_by_protocol(wakuCtx, + waku_get_peerids_by_protocol(wakuCtx, protocol, (WakuCallBack) GoCallback, - resp)); + resp); } static void cGoWakuDnsDiscovery(void* wakuCtx, @@ -300,12 +291,12 @@ package waku int timeoutMs, void* resp) { - WAKU_CALL (waku_dns_discovery(wakuCtx, - entTreeUrl, - nameDnsServer, - timeoutMs, - (WakuCallBack) GoCallback, - resp)); + waku_dns_discovery(wakuCtx, + entTreeUrl, + nameDnsServer, + timeoutMs, + (WakuCallBack) GoCallback, + resp); } */ From f230f7911a8b2fc9db4c64b70bbea0a7f4d3f1b0 Mon Sep 17 00:00:00 2001 From: pablo Date: Mon, 24 Feb 2025 11:05:43 +0200 Subject: [PATCH 5/5] fix_: dont mix logging libraries --- waku/nwaku.go | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/waku/nwaku.go b/waku/nwaku.go index 1f29fd6..f2cdd9a 100644 --- a/waku/nwaku.go +++ b/waku/nwaku.go @@ -316,7 +316,6 @@ import ( "unsafe" "github.com/ethereum/go-ethereum/crypto" - "github.com/ethereum/go-ethereum/log" "github.com/ethereum/go-ethereum/p2p/enode" "github.com/libp2p/go-libp2p/core/peer" libp2pproto "github.com/libp2p/go-libp2p/core/protocol" @@ -324,7 +323,6 @@ import ( "github.com/waku-org/go-waku/waku/v2/protocol/pb" "github.com/waku-org/go-waku/waku/v2/utils" "github.com/waku-org/waku-go-bindings/waku/common" - "go.uber.org/zap" ) const requestTimeout = 30 * time.Second @@ -427,11 +425,12 @@ func globalEventCallback(callerRet C.int, msg *C.char, len C.size_t, userData un node.OnEvent(eventStr) } } else { - errMsgField := zap.Skip() if len != 0 { - errMsgField = zap.String("error", C.GoStringN(msg, C.int(len))) + errMsg := C.GoStringN(msg, C.int(len)) + Error("globalEventCallback retCode not ok, retCode: %v: %v", callerRet, errMsg) + } else { + Error("globalEventCallback retCode not ok, retCode: %v", callerRet) } - log.Error("globalEventCallback retCode not ok", zap.Int("retCode", int(callerRet)), errMsgField) } } @@ -571,7 +570,7 @@ func (n *WakuNode) GetConnectedPeers() (peer.IDSlice, error) { if C.getRet(resp) == C.RET_OK { peersStr := C.GoStringN(C.getMyCharPtr(resp), C.int(C.getMyCharLen(resp))) if peersStr == "" { - Debug("No connected peers found for " + n.nodeName) + Debug("No connected peers found for %v", n.nodeName) return nil, nil } @@ -580,18 +579,18 @@ func (n *WakuNode) GetConnectedPeers() (peer.IDSlice, error) { for _, peerID := range peerIDs { id, err := peer.Decode(peerID) if err != nil { - Error("Failed to decode peer ID for "+n.nodeName, zap.Error(err)) + Error("Failed to decode peer ID for %v: %v", n.nodeName, err) return nil, err } peers = append(peers, id) } - Debug("Successfully fetched connected peers for "+n.nodeName, zap.Int("count", len(peers))) + Debug("Successfully fetched connected peers for %v, count: %v", n.nodeName, len(peers)) return peers, nil } errMsg := "error GetConnectedPeers: " + C.GoStringN(C.getMyCharPtr(resp), C.int(C.getMyCharLen(resp))) - Error("Failed to get connected peers for "+n.nodeName, zap.String("error", errMsg)) + Error("Failed to get connected peers for %v: %v", n.nodeName, errMsg) return nil, errors.New(errMsg) } @@ -962,7 +961,7 @@ func (n *WakuNode) Destroy() error { } errMsg := "error WakuDestroy: " + C.GoStringN(C.getMyCharPtr(resp), C.int(C.getMyCharLen(resp))) - Error("Failed to destroy "+n.nodeName, zap.String("error", errMsg)) + Error("Failed to destroy %v: %v", n.nodeName, errMsg) return errors.New(errMsg) } @@ -1206,7 +1205,7 @@ func (n *WakuNode) GetNumConnectedPeers() (int, error) { } numPeers := len(peers) - Debug("Successfully fetched number of connected peers for "+n.nodeName, zap.Int("count", numPeers)) + Debug("Successfully fetched number of connected peers for %v, count: %v", n.nodeName, numPeers) return numPeers, nil } @@ -1228,7 +1227,7 @@ func GetFreePortIfNeeded(tcpPort int, discV5UDPPort int) (int, int, error) { for i := 0; i < 10; i++ { tcpAddr, err := net.ResolveTCPAddr("tcp", net.JoinHostPort("localhost", "0")) if err != nil { - Warn("unable to resolve tcp addr: %v", zap.Error(err)) + Warn("unable to resolve tcp addr: %v", err) continue } tcpListener, err := net.ListenTCP("tcp", tcpAddr)