Skip to main content

Detailed Usage

Detailed Usage​

info

This information is geared toward technical users and focuses on the terminal application, providing feedback to support the development of a graphical desktop application with enhanced usability and features.

The walletshield.sh launcher script provides some utility to make it easier to launch the Walletshield mixnet client connected to a currently deployed network by its network id. If you build the Walletshield binary from source (see below), name the file for the correct platform and place it next to the launcher script before execution, otherwise a pre-built Walletshield binary will be downloaded and used.

Note: It is recommended to periodically re-download the walletshield.sh launcher script as every part of the stack is under evolving development.

Build Walletshield Client From Source​

Alternatively, building from source is a great idea when possible.

1. Determine deployed network's source branches​

Note: Clients must match source revisions of the deployed network.

To find the source branch for a deployed network by its network id, refer to the version_zkn_opt value within its build file.

For example: https://test.net.zknet.io/<networkd_id>/build.yml

build_date: 1717111111
version_katzenpost: v0.0.43
version_zkn_opt: v0.4.2

2. Build Walletshield​

git clone https://github.com/ZeroKnowledgeNetwork/opt.git
cd opt

# checkout a particular "version_zkn_opt", for example:
git checkout v0.4.2

# build it
make warped=false app-walletshield

# the built binary is at ./apps/walletshield/walletshield

3. Run​

# run client directly (see below for more info)
./apps/walletshield/walletshield -listen :7070 -config <network_id>-client.toml

# or place walletshield binary to run with walleshield.sh launcher (recommended, see above)
cp apps/walletshield/walletshield ../path/of/walletshield.sh/<network_id>-walletshield-<platform>

Mix Network Client: Walletshield​

The Walletshield may be executed directly without assistance from the launcher script. However, it does require the client.toml file for the current network deployment. (Simply run the launcher script, or refer to its source for clues for obtaining the client file)

Usage of ./apps/walletshield/walletshield:
-config string
file path of the client configuration TOML file
-listen string
local socket to listen HTTP on
-log_level string
logging level could be set to: DEBUG, INFO, WARNING, ERROR, CRITICAL (default "DEBUG")
Example working output...
22:42:39.419 NOTI pki/voting/Client: Get(ctx, 1835451)
22:42:39.761 NOTI pki/voting/client/connector: sending getConsensus to auth1
22:42:40.011 NOTI pki/voting/client/connector: got response from auth1 to GetConsensus(1835451) (attempt 0, err=<nil>, res=Ok)
22:42:40.041 NOTI pki/voting/Client: OK, received fully signed consensus document.
22:42:40.041 NOTI pki/voting/Client: voting/Client: Get() document:
&{Epoch: 1835451 GenesisEpoch: 1835175
SendRatePerMinute: 100 Mu: 0.005 MuMaxDelay: 1000 LambdaP:0.001 LambdaPMaxDelay:1000 LambdaL:0.0005 LambdaLMaxDelay:1000 LambdaD:0.0005 LambdaDMaxDelay:3000 LambdaM: 0.0005 LambdaMMaxDelay: 100
SharedRandomValue: 4wLIt7I1NTQnJi2vFFBhQI2SARycyJ0ND++E1tXDQZ0= PriorSharedRandom: [sbjtEKnLqRtlCyombywRkEPtX2a24yvYerqjZ3snkfw=, AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=]
Topology:
[0]{[{mix1 89e9bfd5f71314976df4ebc88a7a3e47760fe5cba7930a05ef96d279b84bc8c1 map[tcp4:[172.31.50.181:8080]]}]}
[1]{[{mix2 08d9fc5eeea590ac751f5f7b660bc532556585bbc9e05d1a8a471fbb922a1714 map[tcp4:[172.31.53.215:8080]]}]}
[2]{[{mix3 9979565d366938f1248c2cbef1ac0bcd9daa495a5ab931d4a8ae2db97bdcee8f map[tcp4:[172.31.57.215:8080]]}]}
}
Providers:[]{[{provider1 234c0bc06fc131bf16640e31eb30e3bff9979b93b09b95c3733e8761bde3ba9e map[tcp:[100.26.163.146:8080] tcp4:[172.31.50.38:8080]]map[echo:map[endpoint:+echo] http_proxy:map[endpoint:http_proxy]]tofu} {provider2 2f8ce7a2d5126d93b798f35933b0cb407715da0006da7551b782b02110fcdf81 map[tcp:[3.84.239.48:8080] tcp4:[172.31.52.50:8080]]map[echo:map[endpoint:+echo] http_proxy:map[endpoint:http_proxy]]tofu}]}}}
22:42:40.041 NOTI minclient:9db7fa907ca7909ed1b7e80cfadd5c831ffeeb8f70fdb270a76504855292ec37@provider1: Katzenpost is still pre-alpha. DO NOT DEPEND ON IT FOR STRONG SECURITY OR ANONYMITY.
22:42:42.939 INFO provider1_client: sending loop decoy
22:42:43.025 INFO provider1_client: sending loop decoy
22:42:43.653 INFO provider1_client: sending loop decoy
22:42:44.273 INFO provider1_client: OnACK with SURBID [92d171d7df5baaab883b0afd404d0960]
22:42:44.871 INFO provider1_client: sending loop decoy
22:42:45.505 INFO provider1_client: OnACK with SURBID [3a06abaa1b36e651f343a86cb3a92633]
22:42:46.121 INFO provider1_client: OnACK with SURBID [a573060dc1a443adb6d1fa5f218d9168]
22:42:46.507 INFO provider1_client: OnACK with SURBID [4ca771d11a81bb402f82bfc4f80dc5cf]
22:42:51.529 INFO provider1_client: sending loop decoy
...