* bunch of wip with focus on serialization * Being able to send normal data (NO SURBS yet) to yourself again * Fixed RepliableMessage deserialization * Recovering data from surb messages * Extracted common code in sphinx payload construction * Cleanup within received buffer * requesting, sending and using additional reply surbs * Following discussion with @simonwicky, removing sender proof and decreasing size of sender tag * Made sender tag more easily configurable * Refactoring of message creation * Propagating reply surb acks but not retransmitting them yet * Surb retransmissions * requesting additional surbs from the retransmission flow * correctly determining the point of requesting additional surbs * Ability to use socks5 (and network requester) with surbs * Improved surbs retranmsission reliability * naive way of not over-requesting surbs * wip on tag storage * Improved error propagation for message construction * Requesting more surbs for stale entries * Better controlling the point of having to request additional surbs * Using pseudorandom sender tag instead of a hardcoded one * First cleanup round in MessageHandler * Error cleanup and if simplification * Assigned a more permanent name to the ReplyController * Removed PendingReply redundant type * Made socks5 client less eager to over-send reply surbs * 'anonymous' field on socks5 client to decide whether to use surbs or attach address * Dead code and import removal in client-core * Updating ClientRequest variants * Adjusted decision threshold for requesting more surbs * Native client cleanup * Made socks5 client usage of surbs configurable * Restored statistics in network requester * Validator-api compiles once again * Further improved surb request logic * boxing the recipient in controller requests * Removal of hardcoded values in favour of propagating them from the config * more validation during surb requests * Fixed ClientRequest::Send deserialization * Added length checks for request deserialization * post-merge formatting * Unit tests once again compile and pass * controlling retransmission_reply_surb_request_size from config * More Recipient boxing action * Requesting additional reply surbs for retransmission BEFORE dipping below the threshold * Making clippy generally happier * Wasm client compiles (but might not yet work correctly) * Feature/use expect instead of panicking (#1797) * Implementation of 'Debug' on 'RealMessage' * expect with failed channel name instead of throwing empty panics * Introduced Debug trait constraint in ProxyRunner * Derive Debug for socks5_requests::Message * Fix decrypting stored received msg (#1786) * Fix decrypting stored received msg * rustfmt * Moving binary message recovery to separate function Co-authored-by: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com> * real_traffic_stream: reduce frequency of status print (#1794) * Properly defined unnamed errors * Dealing with previously ignored errors * logging improvements * Removed old example code Co-authored-by: Jon Häggblad <jon.haggblad@gmail.com>
Nym Connect
Nym is an open-source, decentralized and permissionless privacy system. It provides full-stack privacy, allowing other applications, services or blockchains to provide their users with strong metadata protection, at both the network level (mixnet), and the application level (anonymous credentials) without the need to build privacy from scratch.
Nym Connects sets up a SOCKS5 proxy for local applications to use.
Installation prerequisites - Linux / Mac
YarnNodeJS >= v16.8.0Rust & cargo >= v1.56
Installation prerequisites - Windows
- When running on Windows you will need to install c++ build tools
- An easy guide to get rust up and running Installation
- When installing NodeJS please use the
current featuresversion - Using a package manager like Chocolatey is recommended
- Nym connect requires you to have
Webview2installed, please head to the Installer, this will ensure a smooth app launch
Installation
Inside the nym-connect directory, run the following command:
yarn install
Development mode
You can compile nym-connect in development mode by running the following command inside the nym-connect directory:
yarn dev
This will produce a binary in - nym-connect/target/debug/ named nym-connect
To launch, navigate to the directory and run the following command: ./nym-connect
Production mode
Run the following command from the nym-connect folder
yarn build
The output will compile different types of binaries dependent on your hardware / OS system. Once the binaries are built, they can be located as follows:
Binary output directory structure
**macos**
|
└─── target/release
| |─ nym-connect
└───target/release/bundle/dmg
│ │─ bundle_dmg.sh
│ │─ nym-connect.*.dmg
└───target/release/bundle/macos/MacOs
│ │─ nym-connect
|
**Linux**
└─── target/release
| │─ nym-connect
└───target/release/bundle/appimage
│ │─ nym-connect_*_.AppImage
│ │─ build_appimage.sh
└───target/release/bundle/deb
│ │─ nym-connect_*_.deb
|
**Windows**
└─── target/release
| │─ nym-connect.exe
└───target/release/bundle/msi
│ │─ nym-connect_*_.msi
For instructions on how to release nym-connect, please see RELEASE.md.
Storybook
Run storybook with:
yarn storybook
And build storybook static site with:
yarn storybook:build