* Adding the beginnings of a socks5 crate
* Removing unused import
* Adding built.rs
* Figured out test failure, stuck a note in detailing under what conditions it fails.
* Added lib
* wip on the way to compile
* First compile with much of the client in place
* Comment reflow to 80 lines
* Changed Socks5 client help message
* Latest changes to from develop applied to socks5 client
* Minor cleanup on unused code
* Adding snafu dependency
* Adding socks library
* Getting socks into the module structure
* Tokio conversion for socks code nearly completed.
* Starting traffic controllers again
* Bitcoin SP starting to breathe with Socks5 proxy. Responses not yet being sent.
* Adding in some hugely verbose print action so we can see things happening
* WIP refactor of socks code.
* Renamed structs to be more rubyish
* Refactored the run command a bit.
* handle_client doesn't need to be public
* Starting to split the handle method up into smaller, refactorable chunks
* Renamed a test
* Finished initial refactor
* Minor cleanup
* Made a few notes for my future self
* Being a bit more explicit in authtentication test
* Ensuring that user/password authentication attempts fail if that auth mode is off
* Documentation
* Refactord types into a types module
* Sending the request ID across and reading the response when it comes back.
* Added the request_id to the response header
* Adding exception handling to websocket send
* Semi-working...
* Removing non-functional examples.
* Minor output clarification
* Adding a Socks5 service provider
* Websocket connection is now being made.
* Added some simple and ungraceful websocket connection error handling
* Renamed socks5_proxy back to proxy
* ibid
* Nicer websocket start method
* Receiving messages via websocket
* Socks requests work in the simple case, SSL requests don't (yet).
* Minor cleanup, renaming variables and moving private functions around
* Comments on try_read_request
* Moved some code around
* Removed commented code and printlns
* Comments sp request
* Commented response data read
* Changing Request to Connection
* ibid
* Added a controller and split connection / request parsing
* Built out error handling on requests a bit
* Initial router action
* Request deserialization tests back in action
* Request constructors
* Constructor for controller
* Renamed message_router to controller
* Starting to build out the responses
* Returning proxied connection data
* Moving towards new Socks5 request crate
* Sending Socks5 multi-part requests through mixnet
* Removed the detritus of exploratory coding.
* Breaking the socks client read loop when empty bytes are read
* Documenting the message format for serialized socks requests
* Returning a response from the socks proxy
* Removing unused import
* Removing more detritus
* Restarting loop if no response is received
* The off-by-one change that fixed it all
* Removing unused response.rs module
* Removed unused import
* Comment cleanup
* More detritus
* Cleaning...
* Docs for socks5-requests
* Using the simple-socks5-requests crate Response in the socks5 client
* Removing unused error types
* Split request/response into their own files and wrote more tests
* Removing temporary README notes
* Renamed all instances of request_id to connection_id
* Docs on Connection struct
* Caving in to connecting inside the constructor for the moment
* Fixing up comments on socks5 service provider start
* Simplified errors in the Socks5 requests crate
* Flattened service provider module hierarchy a bit.
* Removed println
* Comment to explain return on timeout
* Logging controller connect errors
* Renamed websocket reads and writes to make them a bit more understandable
* Renamed TodoError to ConnectionError
* Logging errors instead of panicking on connection read/write failures
* Fixed error handling in controller
* Removing dead comments
* Cargo fmt applied
* Removing print statements
* Removed more comments, prints, etc
Co-authored-by: jstuczyn <jedrzej.stuczynski@gmail.com>
* Changed default listening port to something slightly more meaningful
* Removed TCP socket and made websocket the default option (as opposed to 'None')
* Updated template
* Updated ReceivedBuffer to allow direct message forwarding
* ignoring vscode directory
* Push messages mechanism for websocket client-clients
* Removed flawed chunking example
* ... but added bunch of websocket examples in return!
* Moves js example directory
* Cargo fmt
* Removed old listener code
* 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