a70e68c7bd
* Smolmix documentation * Add smolmix docs: landing page, tutorials, and developer page links * Add Exit Gateway services page (NR vs IPR) and link from existing docs * Update auto-generated command and API outputs * Reorg of tutorials and architecture pages * License information + remove TODO from docs.rs visibile comment + reorg readme * Add versions file for doc-wide versioning * Relative -> absolute links * Relative -> absolute links * Update license + add old tutorial code as examples * Streamline smolmix docs * Clippy * Clean up doc comments * Last pass * Add larger file download to list * set new versions * Clippy * Remove blake pin from docs + add version range to root Cargo.toml * Format example logging * Remove crate blocked component * Loose whitespace * Add doc verification script for inline mdx * Formatting * Components regen * Reorg + tighten text * Voicing cohesion pass + remove bloated examples * Voicing cont. * Reduce max download size * Small suggested clarifications * Max/docs voicing consistency (#6769) * Reduce max download size * voicing consistency across docs * New landing order w smolmix * Tweaks * Final tweaks
48 lines
3.0 KiB
Plaintext
48 lines
3.0 KiB
Plaintext
# 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](https://github.com/nymtech/nym/releases).
|
|
|
|
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 --help
|
|
```
|
|
|
|
You can check the necessary parameters for the available commands by running:
|
|
|
|
```
|
|
./nym-socks5-client <COMMAND> --help
|
|
```
|
|
|
|
## Initialising 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@Fo4f4SQLdoyoGkFae5TpVhRVoXCF8UiypLVGtGjujVPf
|
|
```
|
|
|
|
The `--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](/network/mixnet-mode/anonymous-replies) 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](https://nym.com/explorer) by copying its `Client ID` and using this as the value of the `--provider` flag. Alternatively, you could use [Harbourmaster](https://harbourmaster.nymtech.net/).
|
|
|
|
## 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 `--gateway` flag when running `init`.
|
|
* You can also choose a gateway based on its location relative to your client. This can be done by appending the `--latency-based-selection` flag to your `init` command. 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](https://nym.com/explorer) by copying its `Client ID` and using this as the value of the `--provider` flag. Alternatively, you could use [Harbourmaster](https://harbourmaster.nymtech.net/).
|
|
|
|
> 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
|