* 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>
* 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
* 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
* validator: adding Diesel ORM
* validator: making sure Iron::status is always avaialable
* ibid
* validator: presence-announcement REST API
* validator: adding Diesel setup
* Removing Diesel stuff from root of monorepo
* validator: adding Diesel migrations and setup
* validator: documenting how PresenceAnnouncement is different from presence.
* validator: added Chrono crate for datetime conversions into sql
* validator: restructured the presence module
* validator: removed presence announcements from persistence
* validator: commenting topology
* Adding staking to the mixmining service
* Start of mixmining + stake service
* validator: added a bit about mixmining to README
* validator: added Iron's params crate
* validator: reorganized mixmining service and db code
* validator: no need for this .env warning
* validator: removing params parser, it's now unused
* validator: adding json body parser library for Iron
* validator: adding spelling exceptions
* validator: adding bodyparser deps
* validator: ability to (de)serialize Mixnode struct
* validator: further announcement HTTP progress
* validator: simplified announcement route
* validator: injecting database and service into handler
* validator: renaming service and db variables
* validator: using camelCase json
* validator: using base Iron handler rather than middleware handler
* validator: better error message on unexpected json parsing
* validator: adding 'location' to presence::Announcement
* comments on mixmining::Db
* validator: commenting out unused mixmining::Service methods for the moment
* validator: noting that we don't yet know how to measure capacity
* validator: comments
* validator: starting to add correct serializers in rest API
* validator: renaming a mixnode announcements
* validator: extracted route creation
* validator: going lower-case for node in "Mixnode"
* validator: removing the "announcement" model
* validator: renamed annoucements handlers
* validator: temporarily removed Chrono, remove it fully if it's not needed.
* validator: added all the needed Mixnode fields to the service model
* validator: moved models into their own file.
* validator: conversions to/from api vs service models
* validator: doing type conversions from rest to service models
* validator: unused import cleanup
* validator: rewrote mixmining service comments in light of recent thinking
* validator: some notes on type conversion tests
* wip
* validator: getting capacity from db works
* wip
* validator: eliminating borrows so we can have something pure to mutex out on
* validator: a working mutex on the mixmining service
* validator: renaming mixmining db get_capacity to capacity
* validator: making mixmining db capacity field private, using accessor
* validator: local capacity updates working
* validator: starting REST API for staking
* validator: fixing clippy warning
* validator: minor naming fixes on mixmining service
* validator: service mixnode and rest mixnode + topology conversions + tests
* validator: renaming mix_nodes to mixnodes for consistency
* validator: test fixtures for mixnode
* validator: moved service models into their own file
* validator: a properly-structured toplogy route
* validator: topology retrieval
* validator: killed test fixture warning
* validator: getting set for topology equality checks (testing purposes)
* validator: otherway conversions for topology and mixnode types
* validator: initial topology retrieval working
* validator: ditching go-ish variable name :)
* ibid
* validator: added a StakeUpdate struct to get around cargo fmt failing
* validator: commenting out struct so kill warning
* Ignoring validator vscode settings
* ibid
* ibid