* Idea for stats endpoint
* Introduced /stats endpoint replacing sending data to metrics server
* Removed metrics client
* Removed old metrics file
* cargo fmt
* Using new display trait for identity key
* Establishing verloc connection with timeout
* Further decrease in log severity
* Writing echo packets with timeout
* Sender formatting
* ConnectionWriteTimeout error definition
* Writing verloc results in chunks
* Added run started and run finished fields to verloc
* Reordered the fields
* Storing the timestamps as options to indicate run in progress
* Starting to build out node descriptions
* Renamed the mod to node_description instead of descriptor
* Returning results loaded from file
* Taking user input for node describe command
* Readline without new dependencies
* Adding input format hint
* Making sure the node can still start even when the descriptor file isn't there yet
* Adding some additional runtime checks
* Removing -dev from minimum node version
* Removing initial :: on serde
* Fixing comment on the /description endpoint
* Swapped json for toml
* Being a bit more specific with my startup message.
* Cleaning up path building
* Nicer runtime checks
* Put path building inside the file methods
* Connecting to gateway with a timeout
* Added address value to InvalidAddress error
* Initial updated network monitor (does not submit results yet)
* Created client for node status api
* Changed default address to the local one
* Removed old validator client
* Renamed validator client rest to validator client
* Print conversion warnings using Display rather than Debug formattingn
* WIP for adding owner field in monitor
* Preserving changes before branch switch
* Keeping track of node owners during monitoring + using those for node status api
* Removed temporary log statement
* Dont notify node status api if good nodes are broken
* Changed default monitor interval to 5min
* Post merge issues
* Allowing dead version field in seocksrequest
* Updated monitor run interval to 15min
* Reporting gateways and mixnodes separately with the new api
* Unused imports
* Decreased testing interval to temporarily bypass the silent timeout issue
* Formattingn
* WIP
* WIP for time measurement
* In theory working sender and listener
* Further additions + main.rs for local testing
* Further improvements + config builder
* Initial integration into mixnode
* Verifying mixnode version
* 1.52+ clipy warning
* 1.54 nightly clippy fixes
* Changed HTTP Api to bind to the same ip as used for mix packets
* Changed measurements to instead write to shared object
* Required dependencies
* Connecting with the http api
* Updated mixnode common rand dependency
* Added rocket at a git tag
* Adding Rocket to the mixnode
* Verloc route now in place
* Adding an http api startup notification
* Updated version number to 0.10.1-dev
* Fixing clippy warnings
* Compressing split a bit
* Adjusted used version of js-sys
Co-authored-by: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
* Rust half done
* Removed the temporary 'test'
* Using multiple validator endpoints in the javascript client
* Dont attempt any switches with a single validator endpoint
* Removed the unused temporary function
* Updated validator-client version
* Adding hex output and coloured terminal output crates
* Adding a `sign` command to the mixnode
* IntelliJ's non-use of rustftm is non-IntelliJent. Whitespace commit.
* Removing hex, using base58 everywhere.
* Updated all non-breaking dependencies
* Updated common/crypto dependencies
* Updated all tokio [and associated] dependencies to most recent version
* Bumped version of rand_distr
* Fixed api changes in tests
* Made clippy happier about the acronym
* Fixed the type while trying to make clippy even happier
* nightly cargo fmt
* Removed reputation field from existing topology
* ibid for registration time
* Basic bond to topology conversion
* Made existing tests compilable
* Added owner and stake fields to mix and gateway topology entries
* Moved node conversion to topology crate
* Added mixnet contract field to clients configs
* topology refresher trying to use new validator
* Removed clients depepdency on the old validator client
* Removed mixnode dependency on the old validator client
* Removed gateway dependency on the old validator client
* Removed location field fron mixnode and gateway configs
* Removed incentives address from mixnodes and gateways
* Cargo.lock changes
* Ignoring clippy warnings originating from codegen from JsonSchema
* no longer formating string with a literal
* Increased default connection buffer size to help with packet bursts
* Informing remote about failure to establish connection
* Properly closing outbound proxy on failure to read from socket
* Split proxy runner into separate inbound and outbound files
* Flag indicating whether socks client actually started proxying
* Clearing stale proxies if other side is closed
* Decreased log level on not a warning
* Closing proxy if no messages were received in a while
* Dont print harmless false-positive errors
* Formatting + future notes
* Fixed packet delay in higher volume traffic
* Don't attempt writing empty messages to connection
* Added github actions templates
* removed travis .yml file
* initial clippy cleanup pass
* fixed the rest of clippy warnings
* Made github badges more fancy and consistent with the ones in sphinx
* Updated local rustc version and removed compilation warningns
* ... and fresh clippy warnings
* formatting
* beta clippy specific warnings fixed
* Fixed all nightly clippy warnings
* Fixed trying to unwrap a ()
* Actually running all tests
* Correctly passing the --all flag
* Hopefullly third time's a charm in fixing argument passing
* No backoff
* reconnections
* Increased default network monitor default sending rate
* Comment for the future
* Maximum connection buffer size as part of config
* Initial idea for the delayer
* Initial rought integration into mixnode
* Removed lock requirement from 'received' metrics
* 'sent' metrics
* Comment fix
* 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
* Feature/instant sending (#359)
* 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/network monitor (#369)
* 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>
* Added sphinx socks to default workspace members (#358)
* Feature/version in config (#376)
* Added version field to config files
* Removed built dependency
* Missing non-removed call to built
* Corrected version on client-core (#377)
* Feature/remove validator (#380)
* Replacing Rust validator sketch with Cosmos-based code.
* Removing old build instructions
* go fmt on generated code
* Removing build files for github and pi
* Starting transplant surgery
* Directory now running in validator, sans metrics
* Updating go sum
* A partly-working directory startup integrated into the nymcli app.
* Removing the Swagger docs header from nymcli, it can live in server.go
* Working swagger docs.
* Updating test title on Swagger docs
* Directory server now integrated into validator (primitive but working)
* Noted location of mixmining reports database.
* Bumped golang version
* Removing validator cargo files.
* Moving directory API init method into the nymd module
* Ditching a test which is causing tooling problems - presence will go away soon anyway
* Removing the validator and merging develop
* Update README.md
* Update README.md
* Feature/upgrade command (#381)
* 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
* Feature/mix ed25519 identity (#388)
* Introduced identity keypair to mixnode
* Updated upgrade 0.9.0 mix upgrade instructions
* Printing failed upgrade notice when it failed
* Moved printing upgrade start notice to beginning of function
* Feature/double init prevention (#386)
* Updated NymConfig trait making id always obligatory. Also added extra default method implementations
* Preventing init on mixnodes that were initialised before
* Quotes before mix id
* Preventing init on gateways that were initialised before
* Preventing init on native clients that were initialised before
* Preventing init on socks5 clients that were initialised before
* Feature/duration cleanup (#391)
* 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
* Moving subsidiary functions down below main so we can see where thing start
* Feature/fix dependabot alerts (#393)
* Fixing a dependabot alert
* Fixing npm audit failures in js example for webassembly client
* Fixed some more npm audit problems
* Explicitly handling base58 key recovery errors (#396)
* Fix compiler warnings for unneeded mut (#398)
* moved new_v4_with_node to test only section (#392)
* moved new_v4_with_node to test only section
* cargo fmt
* Feature/directory server transition (#401)
* 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
* Feature/validator api update (#402)
* Updated validator API routes
* missing comment
* Feature/wasm client fix (#399)
* Disabling wasm optimization for the moment, it isn't working on my machine
* Updating the React example back to a working state, 0.8.1 npm package is published.
* Merging develop into bugfix
* Upgrading react-scripts to fix a major vulnerability
* Using metrics interval received from server (#403)
* Using metrics interval received from server
* Test fix
* Feature/error on noninit (#404)
* More graceful shutdown in case of uninitialised client/node
* Performing version check on binary `run`
* Feature/no run config flag (#405)
* Removed `--config` parameter in `run` commands
* Removed old tests that were doing disk IO
* Renamed directory arguments to validator (#408)
* Feature/max retry (#409)
* Maximum number of allowed reconnection attempts
* Requiring initial internode connection to be successful
* Decreased logging level for failing to establish initial connection
* Feature/controlled reinit (#410)
* Allowing init with existing id but keeps existing keys
* Removed unused imports
* Removed debug print statement (#411)
* Updated upgrade commands to set new default validator (#413)
* Feature/network monitor file topology (#412)
* Network monitor loading 'good' topology from files instead
* Update .gitignore
* Passing address of validator as an argument
* Made detailed report const flag into an argument
* Flag to start network requester in open proxy mode (#418)
* Renamed 'sphinx-socks' to 'network-requester' (#417)
* Added option to set incentives address during mix and gateway init (#419)
* Updated validator topology (#420)
* Bugfix/upgrade fix (#421)
* Added default for incentives address when deserializing
* Ability to optionally pass incentives address during upgrade
* Feature/socks improvements (#423)
* Changed AvailableReader from Future to Stream
* comment formatting
* WIP
* Maximum number of bytes read per poll
* More detailed socks5 printing
* Split up socks5 service provider runner
* Fixed closing proxy too soon on one side
* Additional log information
* Printing connection id in log target
* Adjusted some constants
* Target field in log
* Removed dead code
* Decreased logging level
* Explicitly seperated 'Send' and 'Connect' request + data buffering
* Temporarily commented out test that fails due to not understanding limitations of tokio test io builder
* Fixed socks5 tests
* Starting cover traffic stream under correct condition (#422)
* Fixed bunch of clippy warnings (#427)
* Updated default sending rates (#430)
* Feature/explorer (#431)
* Initial commit of the new dashboard code.
* Periodically grabbing topology json
* Pulling file saving out into its own module
* Ignoring downloaded topology file
* Moved everything public into a public folder
* Refreshing the mixmining report
* Mounting static files from /public
* Including mixminiming report grabber
* Leaving the route in place to pick up later. It's not used right now.
* Removing json download from git
* Ignoring topology download
* Moving recurrent jobs in to a jobs module
* Adding websocket dependencies
* Starting to get client/server websocket functionality running.
* Fixing unused imports
* Separating client and server functionality a bit more cleanly
* WIP to sketch out the ws client and server a bit more
* Initial metrics broadcaster
* Import fixup
* Spawning rocket in tokio task
* Removed outdated comment
* removed the js file
Co-authored-by: Dave <futurechimp@users.noreply.github.com>
* Bugfix/metrics fixes (#434)
* Updated dashboard html file
* Changed explorer to listen on the same port as old dashboard
* Using correct field names in js file
* Sending correct key in metrics
* Added nym prefix to binary names (#436)
* Passing validator base url as an argument (#439)
* Spawning rocket as a blocking task (#440)
* Update main.js (#441)
* Update main.js
* Changed websocket port to 1648
* Changing default validator location to make it clear we're testnet (#437)
* Changing default validator location to make it clear we're on a testnet here.
* Updated validator url
* Updated metrics url
Co-authored-by: jstuczyn <jedrzej.stuczynski@gmail.com>
* Adding keybase to allowed.list.sample (#442)
* Updated nym-run gateway id (#445)
* Adjusted 'fastmode' settings (#444)
* Added validators to dashboard + validator and block count (#443)
* Slightly friendlier upgrade argument description (#446)
* Slightly friendlier upgrade argument description
* Added right format examples
* Explorer public folder being relative to the binary (#447)
* Explorer public folder being relative to the binary
* Qualifying the public mounting path
Co-authored-by: Dave <futurechimp@users.noreply.github.com>
* Extra argument to specify metrics websocket + long attribute (#448)
* Extra argument to specify metrics websocket + long attribute
* Default testnet values
* Fixed the URL of the websocket (#449)
* Removed hardcoded 'good gateways' in favour of pseusorandom choice from the active set (#450)
* Adding graceful de-registration to service
* Removed incentives form url (#451)
* Updated version numbers
* Updated generate changelog script
* Updated changelog
* wasm examples fixes
Co-authored-by: Dave Hrycyszyn <futurechimp@users.noreply.github.com>
Co-authored-by: Ethan Frey <ethanfrey@users.noreply.github.com>
* 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
* Changed identity keypair to use ed25519
* Encryption key is now x25519 based + compatibiltiy with sphinx
* Pathing and import fixes
* Moved all asymmetric keys to sub-module in crypto
* Extracted aes to separate module
* kdf module in crypto
* Ability to perform diffie hellman on encryption keys
* ecdsa on identity keys
* Extremely rough and incomplete registration handshake
* Authentication primitives
* Creating new random authenticationIV
* Wrapper type for the derived shared key
* Removed AuthToken in favour of using SharedKey for authentication
* Gateway identity keys
* Registration handshake without error mapping
* Gateway address in client config
* Added extra key for gateway presence
* Updated pemstore to work on borrows instead
* Gateway client trying to perform the handshake
* Gateway changes to allow for handshake and shared key
* Debug trait on sharedkey
* native client using updated gateway client
* Slightly updated gateway API
* Minor cleanup
* Fixed pemstore to correctly save multiple keypairs
* Gateway actually deriving shared key during handshake
* Gateway sending correct mid-handshake message
* Missing quotation mark in client config template
* Fixed template for correct shared key serialization
* Fixed gateway authentication
* Fixed tests
* Using correct gateway key when converting to sphinx node
* "get_all_clients" takes them from gateways as opposed to providers now
* cargo fmt
* Renamed pemstore methods
* Unused import
* Encryption of forward requests between client and gateway
* Updated sphinx dependency to use public revision
* Sending 'error' on handshake processing error
* Removed some dead code
* Dead code I forgot to remove before
* Extracted AckAes128Key into a struct
* Slight pemstore revamp allowing for symmetric key store
* ibid.
* PemStorableKey for SharedKey
* Introduced single location responsible for key management for client
* WIP
* Sphinx version update
* Stop using NodeAddressBytes for two distinct and confusing purposes
* Abstracting away SocketAddr from sphinx forwarding
* Passing the bool for reply surbs
* Attack plan for replies + encryption
* Comment + removed variable binding
* ReplySURB usage
* Topology import in nymsphinx
* Sphinx version update
* Changed 'Recipient' to contain client's encryption key
* Message preparation taking shape!
* reply surb also containing the encryption key
* Very initial message receiver
* Sphinx version update
* A possibly working way of receiving surbs
* Fixed incorrect field name in client config template
* camel casing all request arguments
* Renamed and moved `MessageMode` to more appropriate file
* Restored reconstruction tests
* Removed dead code from chunking
* Made rust examples compilable
* reply SURB key storage
* Replies as an InputMessage
* Forgotten commented code
* No retransmission processing for cover or replies
* Received reply processing
* Renamed client pathfinder to something more appropriate
* Made HasherOutputSize public
* Added key store path to config
* Reply surb attaching key digest when used
* Changes due to previous renaming
* Removed comment
* Fixed insert_encryption_key
* Assigning initial value of key store path
* Computing key digest with correct algorithm
* Initial and presumably temporary request serialization
* hacky way of introducing 'FragmentIdentifier' for replies
* Moved responsibility of reply encryption, padding, etc, to message preparer
* Optional recipient in try_get_valid_topology_ref
* Handling new reply surbs with acks and padding
* Updated go and python examples to include replies in text and binary cases
* Updated rust examples + binaryserverresponse
* Helpers in rust examples
* And updated JS example
* Moved shared key generation function to crypto crate
* Cover traffic encryption!
* hmac computation in crypto
* Updated aes imports due to new dependencies
* hkdf made more generic
* crypto cleanup + algorithms in params
* Clippy cleanup pass
* Generating encryption+mac shared keys between client and gateway
* MACs attached to forward requests to gateway
* Gateway messages encrypted and mac'd
* Lowered logging level
* compiler warning cleanup
* Some minor cleanup
* Generic stream cipher
* Generic shared key derivation + algorithm definitions
* Project-wide AES clean-up
* Comment fix
* Removed commented imports
* Updated comments
* Fixed topology test fixture
* Changed identity keypair to use ed25519
* Encryption key is now x25519 based + compatibiltiy with sphinx
* Pathing and import fixes
* Moved all asymmetric keys to sub-module in crypto
* Extracted aes to separate module
* kdf module in crypto
* Ability to perform diffie hellman on encryption keys
* ecdsa on identity keys
* Extremely rough and incomplete registration handshake
* Authentication primitives
* Creating new random authenticationIV
* Wrapper type for the derived shared key
* Removed AuthToken in favour of using SharedKey for authentication
* Gateway identity keys
* Registration handshake without error mapping
* Gateway address in client config
* Added extra key for gateway presence
* Updated pemstore to work on borrows instead
* Gateway client trying to perform the handshake
* Gateway changes to allow for handshake and shared key
* Debug trait on sharedkey
* native client using updated gateway client
* Slightly updated gateway API
* Minor cleanup
* Fixed pemstore to correctly save multiple keypairs
* Gateway actually deriving shared key during handshake
* Gateway sending correct mid-handshake message
* Missing quotation mark in client config template
* Fixed template for correct shared key serialization
* Fixed gateway authentication
* Fixed tests
* Using correct gateway key when converting to sphinx node
* "get_all_clients" takes them from gateways as opposed to providers now
* cargo fmt
* Renamed pemstore methods
* Unused import
* Encryption of forward requests between client and gateway
* Updated sphinx dependency to use public revision
* Sending 'error' on handshake processing error
* Removed some dead code
* 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