* Initial changes to validator client API
* Updated models
* GatewayRegistrationInfo constructor
* Change validator topology to convert into NymTopology without failure
* Mixnode registering and unregistering presence
* Directory -> Validator renamings + adjustments
* Updated upgrade command for mixnode
* Extracted metrics part of directory client into separate library
* Removed no longer needed traits
* Integrated new metrics client into mixnode
* Introduced the same set of changes to the gateway
* Getting active topology in client core via validator client
* Updated clients to get correct topology
* Introduced mix mining endpoints to validator client
* Network monitor using validator client
* Removed directory client
* Updated wasm client
* Temporarily disabled the test
* Checking ok status for validator client response
* Updated upgrade command for clients
* Allowing using old presence directory as new validator endpoint for mixnodes and gateways
* Fixed tests in non-default crates
* Mixnode using Duration for time intervals + human readable config fields for them
* Removed old comment
* Native client using Duration for time intervals + human readable config fields for them
* Socks5 client using Duration for time intervals + human readable config fields for them
* Gateway using Duration for time intervals + human readable config fields for them
* Config compatibility with 0.8.0 debug values
* Fixed previous merge issue
* Exposed version parsing from version checker
* Ability to upgrade mixnode from 0.8.X to 0.9.0
* Ability to upgrade gateway from 0.8.X to 0.9.0
* Ability to upgrade native client from 0.8.X to 0.9.0
* Ability to upgrade socks5 client from 0.8.X to 0.9.0
* Typo
* Minor renaming
* Preventing upgrade if current is not a release version
* Additional upgrade restrictions
* Corrected version bound
* WIP commit
* Further into errors (WIP)
* WIP commit, more stuff compiling, but now we switch to sneaky Jedrzej trick
* Websocket connections starting to work
* WIP
* Constructing the socket stream in one go
* Nicer connections. Getting topology now works.
* Fixing startup message
* Injecting directory uri
* Injecting good mixndodes
* Deleting old healthcheck
* Starting to wrap gateway client
* Splitting out good topology contstruction
* Starting to breathe finally
* Fixed layer assignment error
* Starting gateway client in a better spot
* Cleanup
* Renamed construct() to new()
* Injected channels, removed websockets
* Added a MixnetListener to deal with returned packet traffic
* Simplification
* Renaming and commenting a few things
* Renamed temp variables
* Fixed variable names
* Made errors a bit more explicit on message reconstruction
* Added the mixmining route / object to the directory server client
* Recipient is always "me", a bit easier to understand what's going on
* Subbing in test nodes works
* Using QA directory
* Noting which directory server we're using at monitor start
* Adding Debug to MixStatus so we can print it more easily
* Prettification of startup messages
* Notifying directory of successful packet receipt
* All nodes now being tested
* Now able to do timer-based test runs and detect the last node tested
* Renamed mixnet_listener to notifier
* Moved message chunking into its own home
* Starting to pull out packet sends
* Basic functionality working!
* Enabled timer runs forever
* License notices
* Depdendency cleanup
* Import cleanup
* Moved to implicit tokio runtime
* Removed some unnecessary data clones
* Fixed monitor doing two runs at startup rather than one
* dalek version updates
* This should have been split but got carried away
* Initial ipv6 support
* Don't test outdated nodes
* Added network monitor to default workspace members
* Actually sending reports
* Batch-sending mix status
* Cargo fmt
* Minor cleanup
* Malformed Cargo.lock
* Post-merge fixes
* Defined constant in main.rs for enabling detailed reporting
* Updated package versions of the system
* Checking version compatibility on startup
Co-authored-by: Dave Hrycyszyn <futurechimp@users.noreply.github.com>
* Ability to set client in vpn mode
* Connection handler for mixnode
* Initial vpn mode for mixes
* Updated SphinxCodec to contain more metadata
* Renaming
* Removed handle from mixnet client and introduced forwarder
* Mixnode using new forwarder
* Mixnode common module containing shared packet processing
* ibid. incorporated inside mixnode
* New processing for gateway
* Type cleanup
* Wasm fix
* Fixed client config
* Fixed mixnode runtime issues
* Formatting
* Client re-using secret on 'normal' packets
* Using the same key for acks
* WIP
* vpn key manager cleanup
* wasm fix
* VPN_KEY_REUSE_LIMIT moved to config
* Moved AckDelayQueue to separate common crate
* Key cache invalidator
* Updated dashmap used in gateway
* Old typo
* Additional comment
* Cargo fmt
* Fixed tests
* Sphinx update
* cache ttl as config option
* Cargo fmt
* Feature/wasm update (#341)
* Split text and binary client apis
* Very initial attempt at new serialization
* Defined ser+de for Recipient and ReplySURB
* Response errors
* builds with changes
* Working WS API + moved to separate crate
* updated python examples
* Fixed parsing bug
* Updated go examples
* Updated rust examples
* formatting
* Removed unused imports
* dependency updates
* Further dependency changes
* nymsphinx exposingn framing only if not in wasm32
* Cargo lock changes before develop merge
* Pending work
* Actually sending and receiving websocket from rust!
* more WIP
* Initial wasm client + establishing shared key with gateway!
* Splitting and sending a message!
* WIP
* WIP
* Initial wasm-ification of the gateway client
* Passing reconstruction result to js callback!
* Initial WASM cleaning pass
* Dependency pruning
* Moved processing loop to received_processor + at least ack unwrappingn
* Post merge fix
* Kinda updated react example
* Old print statement removed
* Removed yarn.lock
* Fixed building issue for other clients
* Fixed travis test command
* Updated wasm publishing instructions
* Increased default presence and metrics sending interval (#354)
* Defaulting to mix layer with fewest node if no argument provided (#353)
* Defaulting to mix layer with fewest node if no argument provided
* cargo fmt
* Selecting the gateway randomly from 2 known good ones. (#355)
* Selecting the gateway randomly from 2 known good ones. There's a problem with the config file in this commit though.
* Saving value of chosen gateway
* Removed duplicate printing of gateway being used
Co-authored-by: jstuczyn <jedrzej.stuczynski@gmail.com>
* More detailed error response on authentication/registration failure (#356)
* Updated changelog
* Updated version numbers
Co-authored-by: Dave Hrycyszyn <futurechimp@users.noreply.github.com>
* Updated built dependency
So that it wouldn't fail on nwindows
* Concurrent RW client-side
* Draft of a ProxyRunner
* Super experimental proxy runner for provider
Very much WIP
* Extracting shared code + cleanup
* Logging cleanup
* Removed redundant close request
* Ability to send sphinx packets of different sizes + more efficient decoding
* Closing connection on connection corruption
* Missing semicolons
* Missing license notices
* Default for packetsize
* Split nymsphinx
* Replaced Mutex with RwLock for TopologyAccessor + impl Deref
* Sphinx update + import cleanup
* Moved packet_sizes file
* Updated NymTopology API
* sphinx version bump
* Missing license notice
* nymsphinx-params crate
* Changes due to ibid.
* Chunking rework to allow variable size fragments
* Initial ack crate
* Version bump to new dev build
* Cargo lock changes
* random_route_to_gateway by node address
* exposing getting read permit
* Very initial draft on ack control
* Correctly dereferencing out of topology read permit
* All pending changes + compilation todo!s
* Restricted scope of deref on TopologyAccessorInner
* Type path alias for generate_key
* Derived traits for MessageChunker
* Ack control starting to take shape!
* Awaiting callbacks
* Most of work done on acks. Now to wire it all together
* Import cleanup
* rng generalization
* Connected real traffic together; only acks from gateway left
* Removed redundant things from nymsphinx::utils
* nymsphinx-cover crate
* Ack-related fields in client config
* Decreased packet store log level
* Restored forward sphinx request
* Slight adjustements to surb acks
* Changed TopologyReadPermit from type alias into a struct
* Changes due to ibid.
* Sphinx version upgrade
* Gateway being able to understand and handle acks
* Special Cover FragmentIdentifier + removal of dead code
* Initial packet router for gateway client
* Kill client if it fails to send to gateway too many times
* Cover messages with acks
* Moved out gateway client errors
* Ignoring cover traffic acks
* Changes in ack control
* Another sphinx version upgrade
* websocket handler delegating message chunking
* Using config defined ack wait additions
* Other minor changes I should have been more dilligent with splitting
* Import path fix
* sphinx_receiver => mixnet_receiver
* Missing renamed variable instance
* Updated aes-ctr to 0.4.0
* Removed concept of 'unfragmented' single fragment
* Replay fragments detection
* Long method split
* typo
* Cleaner client init
* Fixed race condition
* Fixed similar issue for retransmission
* Cargo fmt
* Minor clenaup
* Ability to send sphinx packets of different sizes + more efficient decoding
* Closing connection on connection corruption
* Missing semicolons
* Missing license notices
* Default for packetsize
* Moved directory_server from Debug section of configs
* Using correct variable path
* Updated start_local_network script
* Actually killing gateways on startup
* Removed redundant stop_local_network.sh
* The Canadian appeasement accord
* Moved `nym-sphinx-wasm` into `wasm` folder and renamed its examples
* A proposal for some structural cleanup
* desktop client: beginning of a Rust example for chunking.
* Simplifying desktop client readme
* Tarting up webassembly README
* A more visual webassembly client example
* clients/webassembly: grouping a few things into named functions for clarity
* clients/webassembly: put URLs at top of file, prepping for drop-down action
* mixnode + provider run: changed startup error messages a bit
* clients/webassembly: scrolling from the bottom in the demo
* Initial set of re-exported sphinx types and constants
* Removed direct sphinx dependency from healthchecker
* Crypto module
* nym-client no longer needing sphinx
* All common modules
* mix-client until removed
* Sfw-provider no longer depending on sphinx crate
* Mixnode no longe depending directly on sphinx crate
* Ibid. for sfw-provider-requests
* Corrected import inside nymsphinx itself
* wasm client no longer needing direct sphinx dependency
* Required gateway change due to re-exporting constants in one place
* Missing import path changes in tests
* Removed direct dependency on curve25519 from wasm client
* Lock file changes
* Moved 'addressing' to nymsphinx + slightly better API + tests
* Replaced all usages of above in the project
* Removed 'split_and_encapsulate_message' from chunking API to get rid of circular dependency + to prefer usage of TopologyAccessor
* changes in Cargo.lock
* formatting
Basic support for message chunking and reconstruction. It's now possible to take arbitrarily-sized input and send it through the mixnet. The sending Nym client will automatically chunk the input into Sphinx packets, and the receiving Nym client will then reconstruct the message at the other end.