Client setup
Download or compile socks5 client
If you are using OSX or a Debian-based operating system, you can download the nym-socks5-client binary from our Github releases page .
If you are using a different operating system, or want to build from source, run cargo build --release from the root of the Nym monorepo.
Viewing command help
You can check that your binaries are properly compiled with:
./nym-socks5-client --helpYou can check the necessary parameters for the available commands by running:
./nym-socks5-client <COMMAND> --helpInitialising a new client instance
Before you can use the client, you need to initalise a new instance of it, which can be done with the following command:
./nym-socks5-client init --id docs-example --use-reply-surbs true --provider Entztfv6Uaz2hpYHQJ6JKoaCTpDL5dja18SuQWVJAmmx.Cvhn9rBJw5Ay9wgHcbgCnVg89MPSV5s2muPV2YF1BXYu@Fo4f4SQLdoyoGkFae5TpVhRVoXCF8UiypLVGtGjujVPfThe --id in the example above is a local identifier so that you can name your clients and keep track of them on your local system; it is never transmitted over the network.
The --use-reply-surbs field denotes whether you wish to send SURBs along with your request. It defaults to false, we are explicitly setting it as true. It defaults to false for compatibility with versions of the pre-smoosh nym-network-requester binary which will soon be deprecated.
The --provider field needs to be filled with the Nym address of an Exit Gateway that can make network requests on your behalf. You can select one from the mixnet explorer by copying its Client ID and using this as the value of the --provider flag. Alternatively, you could use Harbourmaster .
Choosing a Gateway
By default - as in the example above - your client will choose a random gateway to connect to.
However, there are several options for choosing a gateway, if you do not want one that is randomly assigned to your client:
- If you wish to connect to a specific gateway, you can specify this with the
--gatewayflag when runninginit. - You can also choose a gateway based on its location relative to your client. This can be done by appending the
--latency-based-selectionflag to yourinitcommand. This command means that to select a gateway, your client will:- fetch a list of all availiable gateways
- send few ping messages to all of them, and measure response times.
- create a weighted distribution to randomly choose one, favouring ones with lower latency.
You can select one from the mixnet explorer by copying its Client ID and using this as the value of the --provider flag. Alternatively, you could use Harbourmaster .
Note this doesn’t mean that your client will pick the closest gateway to you, but it will be far more likely to connect to gateway with a 20ms ping rather than 200ms