Commit Graph

143 Commits

Author SHA1 Message Date
Jędrzej Stuczyński a77881d284 Intermediate gateway-heart surgery checkpoint (#199)
* Initial draft for ClientsHandler

* Created listener struct

* typo

* Stateful websocket connection handler

* Exposing modules

* Depdendencies updates

* Moved listener to correct file + made start consume listener

* Main starting new listener

* Catching sigint

* Copied client storage from provider into gateway

* Exposed websocket listener type for nicer import path

* Defined websocket message receiver concrete type

* Client ledger struct without implementation

* ClientsHandler using more concrete types

* Mixnet sender + receiver and exposed listener type

* Handling mix packets

* Ability to forward mix packets

* "starting" both listeners at main

* Depedencies updates

* Initial type definitions for client messages
2020-04-23 10:36:13 +01:00
Jędrzej Stuczyński 4af5788bba Feature/limit direct sphinx dependency + remove direct curve25519 dependency from wasm client (#189)
* 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
2020-04-20 16:59:51 +01:00
Jędrzej Stuczyński 8f4dff0074 Feature/persistent ledger (#187)
* Changed auth token storage to use sled instead of in memory hashmap

* Filtering sled related log messages

* Catching db error on trying to load sled

* Renamed default ledger name

* The actual dependency

* Changes due to ledger no longer being async

* Extra log statement

* Missing change to current_clients method

* Another uncommited change

* Cargo lock changes
2020-04-17 18:58:53 +01:00
Dave Hrycyszyn 0bf74a0b36 Ran npm audit fix on the wasm demo directory. (#185) 2020-04-17 12:02:30 +01:00
Dave Hrycyszyn 1200a2f02d Feature/service persistence (#171)
* 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
2020-04-17 11:39:36 +01:00
Dave Hrycyszyn 99e818952f gateway: grabbing some stuff out of nymsphinx 2020-04-16 20:57:18 +01:00
Dave Hrycyszyn 060d0b4f02 gateway: successful send using multi-tcp-client 2020-04-16 16:45:34 +01:00
Dave Hrycyszyn 146bbef3af nym-sphinx-wasm: loosening up serde-related dependencies 2020-04-16 13:40:41 +01:00
Dave Hrycyszyn 85680b22d9 ibid 2020-04-15 20:54:08 +01:00
Dave Hrycyszyn d8776d35ca Merge branch 'develop' into feature/nym-sphinx-wasm 2020-04-15 17:44:47 +01:00
Jędrzej Stuczyński dfefd2383e Improvements to sfw-provider - client communcation (#180)
* Moved auth_token to seperate file

* Extracted check_id as separate type

* Changes due to move of auth_token and making provider client mutable

* New way of serialization provider requests/responses

* Initial attempt of using new provider client

* Moved requests and responses to separate modules

* Moved serialization to separate  files

* Extracted readers and writers to io related modules

* Extra tests + bug fixes

* Updated tokio dependency to require correct features

* typo

* Easier conversion of requests/responses into enum variants

* Renamed 'read_be_u16' to better show its purpose

* Serialization related tests and fixes

* Tests for async_io + fixes

* Future considerations

* Configurable max request size

* Configurable max response size for client

* Removed debug drop implementations

* Removed debug print statement

* Changes to lock file

* Added license notifications

* Cargo fmt
2020-04-15 17:37:24 +01:00
Dave Hrycyszyn 4fd07aef10 nym-sphinx-wasm: Adding serde to deal with json across wasm boundary 2020-04-15 16:49:18 +01:00
Dave Hrycyszyn 16f466b795 Adding serde_json 2020-04-15 16:42:16 +01:00
Dave Hrycyszyn 7088fb3ffc Upgraded all Sphinx commits to latest. 2020-04-15 13:08:31 +01:00
Dave Hrycyszyn dddac13496 gateway: adding a gateway node type which listens on a websocket 2020-04-14 15:50:59 +01:00
Dave Hrycyszyn 3c8aad49fc Updated all uses of ed25519-dalek to 2.0.0 so that wasm-pack build works 2020-04-09 17:20:22 +01:00
Dave Hrycyszyn 0d33d35437 nym-sphinx-wasm: updating to latest Sphinx 2020-04-09 16:41:01 +01:00
Dave Hrycyszyn 213fd12ff7 nym-sphinx-wasm: broken WIP commit so the Stuczynski can be unleashed 2020-04-09 15:12:31 +01:00
Dave Hrycyszyn 2d323f180f Initial build of a Sphinx packet in WebAssembly 2020-04-09 14:07:16 +01:00
Dave Hrycyszyn cb82299f0e Bumped version numbers to 0.7.0-dev 2020-04-07 17:33:26 +01:00
Dave Hrycyszyn d47f0be2f2 Bumping version numbers 2020-04-07 17:29:46 +01:00
Jędrzej Stuczyński b564cd935e Feature/addressing move (#169)
* 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
2020-04-03 15:07:02 +01:00
Jędrzej Stuczyński d859a98367 Checking if any other node is already announcing the same host (#168) 2020-04-02 15:39:14 +01:00
Jędrzej Stuczyński 425746e215 Feature/minor healthchecker improvements (#165)
* Integrated new tcp client into healthchecker

* Printing detailed healtcheck score if in debug

* Decreased logging level for when establishing new connection

* Slightly better formatting for printing healthcheck scores
2020-04-01 12:19:39 +01:00
Jędrzej Stuczyński aee3286793 Feature/packet chunking (#158)
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.
2020-03-31 16:00:41 +01:00
Dave Hrycyszyn d576a17d33 New cargo versions for top-level binaries 2020-03-23 10:35:19 +00:00
Dave Hrycyszyn 684f7a1432 validator: removed unneeded serde_derive 2020-03-17 10:54:47 +00:00
Dave Hrycyszyn 4095f33fca validator: adding json-handling functionality 2020-03-16 18:01:44 +00:00
Dave Hrycyszyn 8a149570a9 validator: adding Iron router 2020-03-16 17:31:46 +00:00
Dave Hrycyszyn e76fc79a33 Getting initial REST API working 2020-03-16 13:18:07 +00:00
Jedrzej Stuczynski 8160c5295b Provider not storing loop cover messages 2020-03-11 10:54:56 +00:00
Jedrzej Stuczynski 2b1781b06d Updated binary versions 2020-03-06 11:47:52 +00:00
Jedrzej Stuczynski 374da49bcd Initial version of nym-client using persistent tcp connections
Not yet fully refactored
2020-03-05 12:54:17 +00:00
Jedrzej Stuczynski 20f2f1e04f Updated mockito to fix build issues 2020-03-03 10:21:58 +00:00
Jedrzej Stuczynski 3a2ad5ae10 sphinx version upgrade 2020-03-02 15:40:12 +00:00
Jedrzej Stuczynski 03aac5bd35 Updated sphinx 2020-02-28 12:32:47 +00:00
Jedrzej Stuczynski c71a1ae71d Changes due to updated sphinx 2020-02-27 13:08:25 +00:00
Jedrzej Stuczynski c6cceb8d4d Starting and using the forwarding channel 2020-02-27 12:20:00 +00:00
Jedrzej Stuczynski e03fd54739 Updated sphinx version 2020-02-26 17:05:18 +00:00
Jedrzej Stuczynski f599502eab log dependency required by ibid. 2020-02-24 15:23:52 +00:00
Jedrzej Stuczynski d807bcd1ee Created the multi-tcp-client crate 2020-02-21 14:29:26 +00:00
Jedrzej Stuczynski b68689dc4b Using proper release version of tokio-tungstenite rather than pointing to specific commit 2020-02-19 16:01:39 +00:00
Jedrzej Stuczynski 1f53dcc56f Removed no longe used toml dependency from the validator 2020-02-05 16:28:56 +00:00
Jedrzej Stuczynski 0d3084b956 Updated validator dependencies 2020-02-05 16:02:59 +00:00
Jedrzej Stuczynski 3497ae1043 Pushing those new debug options down the provider processing stack 2020-02-05 13:00:20 +00:00
Jedrzej Stuczynski a491f7543a More builder methods, incl. announce host/port parsers 2020-02-03 17:20:29 +00:00
Jedrzej Stuczynski fad5c98629 Initial mix config with working default test 2020-02-03 15:02:13 +00:00
Jedrzej Stuczynski f3da6d4258 Updated used sphinx revision 2020-01-31 15:07:38 +00:00
Jedrzej Stuczynski e48b28eefd Generating proper tmp random dir on each test run 2020-01-31 12:51:17 +00:00
Jedrzej Stuczynski 5a4bf6f08a ibid. 2020-01-31 11:49:45 +00:00