From f6e8b26119e00abcbf9c3d1a7d3cb869e207ab3e Mon Sep 17 00:00:00 2001 From: Oskar Thoren Date: Fri, 1 May 2020 13:00:00 +0800 Subject: [PATCH] Basic waku protocol stub floodsub --- Makefile | 3 +++ protocol/v2/waku_protocol.nim | 34 +++++++++++++++++++++++++++++++++- 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index e6499323d..e67c645a8 100644 --- a/Makefile +++ b/Makefile @@ -14,3 +14,6 @@ wakunode2: node/v2/wakunode.nim quicksim2: node/v2/quicksim.nim nim c --threads:on -o:build/quicksim2 node/v2/quicksim.nim + +protocol2: protocol/v2/waku_protocol.nim + nim c --threads:on -o:build/protocol2 protocol/v2/waku_protocol.nim diff --git a/protocol/v2/waku_protocol.nim b/protocol/v2/waku_protocol.nim index 1648fb38f..ff6474c1d 100644 --- a/protocol/v2/waku_protocol.nim +++ b/protocol/v2/waku_protocol.nim @@ -3,4 +3,36 @@ ## This file should eventually correspond to waku_protocol as RLPx subprotocol. ## Instead, it should likely be on top of GossipSub with a similar interface. -const wakuVersionStr = "2.0.0-alpha1" +import sequtils, tables, options, sets, strutils +import chronos, chronicles +import ../../vendor/nim-libp2p/libp2p/protocols/pubsub/pubsub, + ../../vendor/nim-libp2p/libp2p/protocols/pubsub/pubsubpeer, + ../../vendor/nim-libp2p/libp2p/protocols/pubsub/floodsub + +logScope: + topic = "WakuSub" + +# For spike +const WakuSubCodec* = "/WakuSub/0.0.1" + +#const wakuVersionStr = "2.0.0-alpha1" + +# So this should already have floodsub table, seen, as well as peerinfo, topics, peers, etc +# How do we verify that in nim? +type + WakuSub* = ref object of FloodSub + # XXX: just playing + text*: string + +# method subscribeTopic +# method handleDisconnect +# method rpcHandler +# method init +# method publish +# method unsubscribe +# method initPubSub + +# To defer to parent object something like: +# procCall PubSub(f).publish(topic, data) + +# Then we should be able to write tests like floodsub test