This repo contains the Elixxir command-line client (used for integration
testing) and related libraries that facilitate making more full-featured
clients for all platforms.
##Running the Command Line Client
First, make sure dependencies are installed into the vendor folder by running
`glide up`. Then, in the project directory, run `go run main.go`.
If what you're working on requires you to change other repos, you can remove
the other repo from the vendor folder and Go's build tools will look for those
packages in your Go path instead. Knowing which dependencies to remove can be
really helpful if you're changing a lot of repos at once.
If glide isn't working and you don't know why, try removing glide.lock and
~/.glide to brutally cleanse the cache.
Mutually exclusive (almost) required args:
|Long flag|Short flag|Effect|Example|
|---|---|---|---|
|--userid|-i|ID of precanned user to use|-i 5|
|--regcode|-e|Registration code to use for logging in a new user|-e AAAA|
The above args are mutually exclusive and are not fully required.
For example, to login as canned user 18, use `-i 18` and any registration code specified with `-e` will be ignored.
To login as a new user, `-i` MUST not be specified, and `-e` will be the registration code to be used.
NOTE: There is a third way of starting the client, which ONLY works without specifying any of the above args.
This will internally ignore the registration address, if specified, and will do registration directly on the Nodes
only.
Optional args:
|Long flag|Short flag|Effect|Example|
|---|---|---|---|
|--message|-m|Message to send|-m "top of the morning"|
|--messageTimeout|-t|The number of seconds to wait for 'waitForMessages' messages to arrive (default 45)|-t 42|
|--ndf|-n|Path to the network definition JSON file (default "ndf.json")| -n "ndf.json"|
|--SearchForUser|-s|Sets the email to search for to find a user with user discovery| -s "david@chaum.com|
|--dest64| |Sets the destination user id encoded in base 64| --dest64 "yCvV6AsEK3l+45Gn4awBJ4lpb+hT2sO6yzxjeraRor0="|
|--destid|-d|ID to send message to| -d 69|
|--email|-E|Email to register for User Discovery| -e "david@chaum.com"|
|--end2end| |Send messages with E2E encryption to destination user. Must have found each other via UDB first| -end2end|
|--help| |help for client| --help|
|--keyParams| |Define key generation parameters. Pass values in comma separated list in the following order: MinKeys,MaxKeys,NumRekeys,TTLScalar,MinNumKeys| |
|--ndfPubKey|-p|Path to the public key for the network definition JSON file|
|--nick| |Nickname to register for User Discovery (default "Default")| --nick "zezima"|
|--noBlockingTransmission| |Sets if transmitting messages blocks or not. Defaults to true if unset.|--noBlockingTransmission|
|--noTLS| |Set to ignore TLS. Connections will fail if the network requires TLS. For debugging|--noTLS|
|--privateKey| |The path for a PEM encoded private key which will be used to create the user|--privateKey "key.pem"|
|--rateLimiting| |Sets the amount of time, in ms, that the client waits between sending messages. set to zero to disable. Automatically disabled if 'blockingTransmission' is false (default 1000)| --rateLimiting 100|
|--regcode string|-r|Registration Code with the registration server |--regcode "AAAA"|
|--sessionfile|-f|Passes a file path for loading a session. If the file doesnt exist the code will register the user and store it there. If not passed the session will be stored to ram and lost when the cli finishes| -s "user.session"|
|--skipNDFVerification| |Specifies if the NDF should be loaded without the signature|--skipNDFVerification|
|--userid|-i|ID to sign in as. Does not register, must be an available precanned user |-i 32|
|--verbose|-v|Verbose mode for debugging|-v|
|--version|-V|Show the client version information|-V|
|--waitForMessages|-w|Denotes the number of messages the client should receive before closing (default 1)|-w 7|
Runs a client for cMix anonymous communication platform
The XX Network client is a command line tool and related libraries
that facilitate making full-featured XX clients for all platforms. The
command line tool can be built for any platform supported by
golang. The libraries are built for iOS and Android using