From 5bc6173cb84c5ecac5e2b550d16169843dae174a Mon Sep 17 00:00:00 2001 From: Franck Royer Date: Thu, 8 Apr 2021 22:32:36 +1000 Subject: [PATCH 1/4] Upgrade nim-waku --- nim-waku | 2 +- proto/waku/v2/waku.proto | 3 ++- src/lib/waku_message.ts | 4 ++-- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/nim-waku b/nim-waku index d1c1a0ca13..5747ff5be0 160000 --- a/nim-waku +++ b/nim-waku @@ -1 +1 @@ -Subproject commit d1c1a0ca13e3aa2690a6550faca13210e1f46877 +Subproject commit 5747ff5be00b7b99e61021c17a975761fbe151f3 diff --git a/proto/waku/v2/waku.proto b/proto/waku/v2/waku.proto index 6082c8efea..48ee93cfb0 100644 --- a/proto/waku/v2/waku.proto +++ b/proto/waku/v2/waku.proto @@ -4,6 +4,7 @@ package waku.v2; message WakuMessageProto { optional bytes payload = 1; - optional uint32 content_topic = 2; + optional string content_topic = 2; optional uint32 version = 3; + optional double timestamp = 4; } diff --git a/src/lib/waku_message.ts b/src/lib/waku_message.ts index 0a37e9296c..b55420cfd2 100644 --- a/src/lib/waku_message.ts +++ b/src/lib/waku_message.ts @@ -4,13 +4,13 @@ import { Reader } from 'protobufjs/minimal'; // Protecting the user from protobuf oddities import { WakuMessageProto } from '../proto/waku/v2/waku'; -const DEFAULT_CONTENT_TOPIC = 1; +const DEFAULT_CONTENT_TOPIC = '/waku/2/default-content/proto'; const DEFAULT_VERSION = 0; export class WakuMessage { private constructor( public payload?: Uint8Array, - public contentTopic?: number, + public contentTopic?: string, public version?: number ) {} From 27540fae47a840af8b4680918f4ab94c85131410 Mon Sep 17 00:00:00 2001 From: Franck Royer Date: Fri, 9 Apr 2021 10:47:29 +1000 Subject: [PATCH 2/4] Remove dupe test --- src/lib/waku_relay/index.spec.ts | 71 -------------------------------- 1 file changed, 71 deletions(-) diff --git a/src/lib/waku_relay/index.spec.ts b/src/lib/waku_relay/index.spec.ts index 6e5a964483..777fe5a302 100644 --- a/src/lib/waku_relay/index.spec.ts +++ b/src/lib/waku_relay/index.spec.ts @@ -239,77 +239,6 @@ describe('Waku Relay', () => { }); }); - describe('Js connects to nim', function () { - let waku: Waku; - let nimWaku: NimWaku; - - beforeEach(async function () { - this.timeout(10_000); - waku = await Waku.create({ staticNoiseKey: NOISE_KEY_1 }); - - nimWaku = new NimWaku(makeLogFileName(this)); - await nimWaku.start(); - - await waku.dial(await nimWaku.getMultiaddrWithId()); - - await new Promise((resolve) => - waku.libp2p.pubsub.once('gossipsub:heartbeat', resolve) - ); - - await waku.relay.subscribe(); - - await new Promise((resolve) => - waku.libp2p.pubsub.once('gossipsub:heartbeat', resolve) - ); - }); - - afterEach(async function () { - nimWaku ? nimWaku.stop() : null; - waku ? await waku.stop() : null; - }); - - it('nim subscribes to js', async function () { - const subscribers = waku.libp2p.pubsub.getSubscribers( - RelayDefaultTopic - ); - - const nimPeerId = await nimWaku.getPeerId(); - expect(subscribers).to.contain(nimPeerId.toB58String()); - }); - - it('Js publishes to nim', async function () { - const message = WakuMessage.fromUtf8String('This is a message'); - - await waku.relay.publish(message); - - await nimWaku.waitForLog('WakuMessage received'); - - const msgs = await nimWaku.messages(); - - expect(msgs[0].contentTopic).to.equal(message.contentTopic); - expect(msgs[0].version).to.equal(message.version); - - const payload = Buffer.from(msgs[0].payload); - expect(Buffer.compare(payload, message.payload!)).to.equal(0); - }); - - it('Nim publishes to js', async function () { - const message = WakuMessage.fromUtf8String('Here is another message.'); - - const receivedPromise = waitForNextData(waku.libp2p.pubsub); - - await nimWaku.sendMessage(message); - - const receivedMsg = await receivedPromise; - - expect(receivedMsg.contentTopic).to.eq(message.contentTopic); - expect(receivedMsg.version).to.eq(message.version); - - const payload = Buffer.from(receivedMsg.payload!); - expect(Buffer.compare(payload, message.payload!)).to.eq(0); - }); - }); - describe('js to nim to js', function () { let waku1: Waku; let waku2: Waku; From 78292c471aea1d9a3b09ef9e37a87d4dfbc097ba Mon Sep 17 00:00:00 2001 From: Franck Royer Date: Fri, 9 Apr 2021 11:23:00 +1000 Subject: [PATCH 3/4] Enable nim-waku trace logs --- src/test_utils/nim_waku.ts | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/test_utils/nim_waku.ts b/src/test_utils/nim_waku.ts index 811c1eeb5a..a52b5685b9 100644 --- a/src/test_utils/nim_waku.ts +++ b/src/test_utils/nim_waku.ts @@ -29,6 +29,17 @@ export interface Args { rpcAdmin?: boolean; nodekey?: string; portsShift?: number; + logLevel?: LogLevel; +} + +export enum LogLevel { + Error = 'error', + Info = 'info', + Warn = 'warn', + Debug = 'debug', + Trace = 'trace', + Notice = 'notice', + Fatal = 'fatal', } export class NimWaku { @@ -61,7 +72,11 @@ export class NimWaku { const mergedArgs = defaultArgs(); // Object.assign overrides the properties with the source (if there are conflicts) - Object.assign(mergedArgs, { portsShift: this.portsShift }, args); + Object.assign( + mergedArgs, + { portsShift: this.portsShift, logLevel: LogLevel.Trace }, + args + ); const argsArray = argsToArray(mergedArgs); this.process = spawn(NIM_WAKU_BIN, argsArray, { From 5c2b10badda24e30f2bdbc925d87cd287d9aa44d Mon Sep 17 00:00:00 2001 From: Franck Royer Date: Fri, 9 Apr 2021 11:24:46 +1000 Subject: [PATCH 4/4] Switch nim-waku submodule to `revert-debug` branch --- nim-waku | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nim-waku b/nim-waku index 5747ff5be0..5d138f8a2c 160000 --- a/nim-waku +++ b/nim-waku @@ -1 +1 @@ -Subproject commit 5747ff5be00b7b99e61021c17a975761fbe151f3 +Subproject commit 5d138f8a2c3f18703cfe6f7497e5d3fba074cdf2