From b90e358905ff74d22570350c97a80c4396337e3d Mon Sep 17 00:00:00 2001 From: Oskar Thoren Date: Wed, 29 Apr 2020 13:54:03 +0800 Subject: [PATCH] Basic RPC client and callsigs to get version --- Makefile | 3 +++ node/v2/quicksim.nim | 31 +++++++++++++++++++++++++++++++ node/v2/rpc/wakucallsigs.nim | 29 +++++++++++++++++++++++++++++ 3 files changed, 63 insertions(+) create mode 100644 node/v2/quicksim.nim create mode 100644 node/v2/rpc/wakucallsigs.nim diff --git a/Makefile b/Makefile index 8a141c388..e6499323d 100644 --- a/Makefile +++ b/Makefile @@ -11,3 +11,6 @@ wakunode: node/v0/wakunode.nim wakunode2: node/v2/wakunode.nim nim c --threads:on -o:build/wakunode2 node/v2/wakunode.nim + +quicksim2: node/v2/quicksim.nim + nim c --threads:on -o:build/quicksim2 node/v2/quicksim.nim diff --git a/node/v2/quicksim.nim b/node/v2/quicksim.nim new file mode 100644 index 000000000..f8b3ea8c6 --- /dev/null +++ b/node/v2/quicksim.nim @@ -0,0 +1,31 @@ +import + os, strformat, chronicles, json_rpc/[rpcclient, rpcserver], nimcrypto/sysrand, + eth/common as eth_common, eth/keys, + # XXX: Replace me + eth/p2p/rlpx_protocols/waku_protocol, + ../../vendor/nimbus/nimbus/rpc/[hexstrings, rpc_types, waku], + rpc/wakurpc, + options as what # TODO: Huh? Redefinition? + +from os import DirSep +from strutils import rsplit +template sourceDir: string = currentSourcePath.rsplit(DirSep, 1)[0] + +const sigWakuPath = &"{sourceDir}{DirSep}rpc{DirSep}wakucallsigs.nim" +createRpcSigs(RpcHttpClient, sigWakuPath) + +# More minimal than v0 quicksim, just RPC client for now + +let node1 = newRpcHttpClient() +#let node2 = newRpcHttpClient() + +# Where do we connect nodes here? Protocol so not RPC based, maybe? +# Could hack it I suppose + +info "Hello there" +# Hello world +waitFor node1.connect("localhost", Port(8545)) + +let version = waitFor node1.wakuVersion() + +info "Version is", version diff --git a/node/v2/rpc/wakucallsigs.nim b/node/v2/rpc/wakucallsigs.nim new file mode 100644 index 000000000..b04412cf1 --- /dev/null +++ b/node/v2/rpc/wakucallsigs.nim @@ -0,0 +1,29 @@ +# NOTE: Taken from v0, only version exists right now +proc waku_version(): string + +proc waku_info(): WhisperInfo +proc waku_setMaxMessageSize(size: uint64): bool +proc waku_setMinPoW(pow: float): bool +proc waku_markTrustedPeer(enode: string): bool + +proc waku_newKeyPair(): Identifier +proc waku_addPrivateKey(key: string): Identifier +proc waku_deleteKeyPair(id: Identifier): bool +proc waku_hasKeyPair(id: Identifier): bool +proc waku_getPublicKey(id: Identifier): PublicKey +proc waku_getPrivateKey(id: Identifier): PrivateKey + +proc waku_newSymKey(): Identifier +proc waku_addSymKey(key: string): Identifier +proc waku_generateSymKeyFromPassword(password: string): Identifier +proc waku_hasSymKey(id: Identifier): bool +proc waku_getSymKey(id: Identifier): SymKey +proc waku_deleteSymKey(id: Identifier): bool + +proc waku_newMessageFilter(options: WhisperFilterOptions): Identifier +proc waku_deleteMessageFilter(id: Identifier): bool +proc waku_getFilterMessages(id: Identifier): seq[WhisperFilterMessage] +proc waku_post(message: WhisperPostMessage): bool + +proc wakusim_generateTraffic(amount: int): bool +proc wakusim_generateRandomTraffic(amount: int): bool