From d9a821e7bed8180b74ec428482cc302fb6b13476 Mon Sep 17 00:00:00 2001 From: benbierens Date: Wed, 8 Jan 2025 15:43:45 +0100 Subject: [PATCH] messages numbers and send/recv logs --- codex/blockexchange/network/networkpeer.nim | 13 ++++++++++++- codex/blockexchange/protobuf/message.nim | 5 +++++ docker/build.bat | 4 ++-- docker/codex.Dockerfile | 1 - 4 files changed, 19 insertions(+), 4 deletions(-) diff --git a/codex/blockexchange/network/networkpeer.nim b/codex/blockexchange/network/networkpeer.nim index 133d8c7c..ed99ade7 100644 --- a/codex/blockexchange/network/networkpeer.nim +++ b/codex/blockexchange/network/networkpeer.nim @@ -31,6 +31,7 @@ type handler*: RPCHandler sendConn: Connection getConn: ConnProvider + num: int32 proc connected*(b: NetworkPeer): bool = not(isNil(b.sendConn)) and @@ -45,6 +46,7 @@ proc readLoop*(b: NetworkPeer, conn: Connection) {.async.} = let data = await conn.readLp(MaxMessageSize.int) msg = Message.protobufDecode(data).mapFailure().tryGet() + trace "MsgReceived", num = msg.num await b.handler(b, msg) except CancelledError: trace "Read loop cancelled" @@ -61,14 +63,23 @@ proc connect*(b: NetworkPeer): Future[Connection] {.async.} = asyncSpawn b.readLoop(b.sendConn) return b.sendConn -proc send*(b: NetworkPeer, msg: Message) {.async.} = +proc send*(b: NetworkPeer, msga: Message) {.async.} = let conn = await b.connect() + inc b.num + if b.num > 9: + b.num = 1 + + var msg = msga + msg.num = b.num + if isNil(conn): warn "Unable to get send connection for peer message not sent", peer = b.id return + trace "MsgSending", num = msg.num await conn.writeLp(protobufEncode(msg)) + trace "MsgSent", num = msg.num proc broadcast*(b: NetworkPeer, msg: Message) = proc sendAwaiter() {.async.} = diff --git a/codex/blockexchange/protobuf/message.nim b/codex/blockexchange/protobuf/message.nim index 19080e80..6189e723 100644 --- a/codex/blockexchange/protobuf/message.nim +++ b/codex/blockexchange/protobuf/message.nim @@ -63,6 +63,7 @@ type pendingBytes*: uint account*: AccountMessage payment*: StateChannelUpdate + num*: int32 # # Encoding Message into seq[byte] in Protobuf format @@ -139,6 +140,7 @@ proc protobufEncode*(value: Message): seq[byte] = ipb.write(5, value.pendingBytes) ipb.write(6, value.account) ipb.write(7, value.payment) + ipb.write(8, value.num.uint64) ipb.finish() ipb.buffer @@ -260,6 +262,7 @@ proc protobufDecode*(_: type Message, msg: seq[byte]): ProtoResult[Message] = value = Message() pb = initProtoBuffer(msg, maxSize = MaxMessageSize) ipb: ProtoBuffer + field: uint64 sublist: seq[seq[byte]] if ? pb.getField(1, ipb): value.wantList = ? WantList.decode(ipb) @@ -274,4 +277,6 @@ proc protobufDecode*(_: type Message, msg: seq[byte]): ProtoResult[Message] = value.account = ? AccountMessage.decode(ipb) if ? pb.getField(7, ipb): value.payment = ? StateChannelUpdate.decode(ipb) + if ? pb.getField(8, field): + value.num = int32(field) ok(value) diff --git a/docker/build.bat b/docker/build.bat index 87dca68d..c4fe79a3 100644 --- a/docker/build.bat +++ b/docker/build.bat @@ -1,2 +1,2 @@ -docker build --build-arg MAKE_PARALLEL=4 --build-arg NIMFLAGS="-d:disableMarchNative -d:codex_enable_api_debug_peers=true -d:codex_enable_proof_failures=true -d:codex_use_hardhat=false -d:codex_enable_log_counter=true -d:verify_circuit=true" --build-arg NAT_IP_AUTO=true -t thatbenbierens/nim-codex:blkex-cancelpresence-18-s -f codex.Dockerfile .. -docker push thatbenbierens/nim-codex:blkex-cancelpresence-18-s +docker build --build-arg MAKE_PARALLEL=4 --build-arg NIMFLAGS="-d:disableMarchNative -d:codex_enable_api_debug_peers=true -d:codex_enable_proof_failures=true -d:codex_use_hardhat=false -d:codex_enable_log_counter=true -d:verify_circuit=true" --build-arg NAT_IP_AUTO=true -t thatbenbierens/nim-codex:blkex-cancelpresence-20-s -f codex.Dockerfile .. +docker push thatbenbierens/nim-codex:blkex-cancelpresence-20-s diff --git a/docker/codex.Dockerfile b/docker/codex.Dockerfile index 3c86ad6b..66261118 100644 --- a/docker/codex.Dockerfile +++ b/docker/codex.Dockerfile @@ -28,7 +28,6 @@ WORKDIR ${BUILD_HOME} COPY . . RUN make -j ${MAKE_PARALLEL} update RUN make -j ${MAKE_PARALLEL} -RUN make -j ${MAKE_PARALLEL} cirdl # Create FROM ${IMAGE}