0KnowledgeNetwork / opt

Zero Knowledge Network's mixnet server plugins and client apps
GNU Affero General Public License v3.0
2 stars 1 forks source link

fix(walletshield): improve concurrent request handling #43

Closed xendarboh closed 1 week ago

xendarboh commented 3 weeks ago

Walletshield client2 does not reliably handle concurrent requests from wallets.

In comparison walletshield+client1 handles this very well.

This can be tested with the local docker test network.

# Start local docker test network
cd docker
make start wait

# Start walletshield with the local test network running, for example:
cd apps/walletshield
make
./walletshield -config /tmp/katzenpost.opt/docker/voting_mixnet/client2/client.toml -listen :7070

# Then run RPC tests in separate terminals:
./tests/e2e/walletshield/test.sh

Example walletshield log ERRORs:

12:28:36.817 DEBU client2/incomingConn: read length prefix
12:28:36.817 DEBU client2/incomingConn: length prefix is 470
12:28:36.817 DEBU client2/incomingConn: after blob read
12:28:36.817 DEBU client2/incomingConn: before Unmarshal
12:28:36.817 DEBU client2/incomingConn: after Unmarshal
12:28:36.817 DEBU client2/incomingConn: incomingConn received message
12:28:36.817 DEBU client2/incomingConn: recvRequest TCP
12:28:36.817 INFO client2/incomingConn: Received Request from peer application.
12:28:36.830 DEBU client2/incomingConn: sendResponse BEFORE conn.Write
12:28:36.830 DEBU client2/incomingConn: sendResponse AFTER conn.Write
12:28:36.830 DEBU thinclient: MessageSentEvent
12:28:36.830 INFO thinclient: MessageSentEvent
12:28:38.436 DEBU client2/incomingConn: sendResponse BEFORE conn.Write
12:28:38.436 DEBU client2/incomingConn: sendResponse AFTER conn.Write
12:28:38.437 DEBU thinclient: MessageReplyEvent
12:28:38.437 INFO thinclient: MessageReplyEvent
ERRO walletshield:: Failed to send message: received MessageReplyEvent with unexpected SURB ID
12:28:38.479 DEBU client2/incomingConn: sendResponse BEFORE conn.Write
12:28:38.479 DEBU thinclient: MessageReplyEvent
12:28:38.479 INFO thinclient: MessageReplyEvent
12:28:38.479 DEBU client2/incomingConn: sendResponse AFTER conn.Write
ERRO walletshield:: Failed to send message: received MessageReplyEvent with unexpected SURB ID
INFO walletshield:: Received HTTP request for /bitcoin
xendarboh commented 1 week ago

fixed by katzenpost v0.0.43