Commit Graph

1311 Commits

Author SHA1 Message Date
Jędrzej Stuczyński ff2e24afbc Updated directory_client reqwest to 0.10 (#226)
* Updated directory_client reqwest to 0.10

* Using consistent syntax
2020-05-12 12:52:31 +01:00
Jędrzej Stuczyński f47b7cfb13 Updated js-example to get gateway from topology (#225) 2020-05-11 14:52:23 +01:00
Dave Hrycyszyn e2b9a9468a Feature/minor docs fixes (#223)
* webassembly: fixing example directory name in README

* rust client: fixing what I suspect is a typo in a type name

* Fixing wasm build instructions
2020-05-07 17:30:29 +01:00
Jędrzej Stuczyński 981f4de397 Requiring explicit timestamp when converting from rest to service mixnodes (#224) 2020-05-07 17:08:39 +01:00
Jędrzej Stuczyński a3192a190f Removed having to care about SURB_ID (#222) 2020-05-07 16:55:05 +01:00
Dave Hrycyszyn 37f5bfdf02 Simplified and corrected wasm-pack build instructions 2020-05-07 16:30:17 +01:00
Dave Hrycyszyn ccc516903c client: docs typos fix 2020-05-07 15:57:00 +01:00
Jędrzej Stuczyński 97a944a33e Updated wasm code to work with new gateway and updated the example (#219)
* Updated wasm code to work with new gateway and updated the example

* cargo fmt

* Fixed test by ensuring destination is present at a gateway

* Updated hardcoded default port

* ibid. to correct value
2020-05-06 16:20:43 +01:00
Jędrzej Stuczyński f9d3ee7fc4 Moved relevant parts of old mix-client to nymsphinx (#221) 2020-05-06 16:18:27 +01:00
Jędrzej Stuczyński c3e18cedd5 Feature/load keys on run (#220)
* Mixnode keys loaded in run command

* Client keys loaded in run command

* Removed unused imports
2020-05-06 16:17:02 +01:00
Dave Hrycyszyn fe17bdaf49 validator: removing health checker (#217) 2020-05-05 18:15:49 +01:00
Jędrzej Stuczyński 8249475fba Feature/healthchecker removal (#214)
* Some clippy and compiler warning fixes

* Removed healthchecker from the client

* Cargo fmt issue after 100 explicit saves.........

* Changes accidentally removed in previous PR
2020-05-05 14:19:39 +01:00
Jędrzej Stuczyński 65b9808662 The great sfw-provider purge of 2020 (#216)
* The great sfw-provider purge

* Cargo fmt...
2020-05-05 14:19:11 +01:00
Jędrzej Stuczyński fa1bcabe5a Fixed compilation warnings on unreachable code when compiling with features flag (#215) 2020-05-05 13:16:56 +01:00
Dave Hrycyszyn 20b25b1074 Update README.md 2020-05-05 13:00:57 +01:00
Jędrzej Stuczyński e6ec803818 Bugfix/send to correct gateway (#213)
* Initial multiple gateway support

* Hello random cargo fmt
2020-05-05 12:50:34 +01:00
Jędrzej Stuczyński 57c43a1f6b Feature/client socket adjustments (#212)
* 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
2020-05-04 17:07:27 +01:00
Jędrzej Stuczyński e7b8ab8c10 Sending sphinx packet independent of the receiver task (#210) 2020-04-30 13:14:03 +01:00
Jędrzej Stuczyński abbf7041a4 Feature/gateway provider merge (#208)
* 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

* Initial "gateway-requests" with AuthToken

* ibid.

* Restored most of ledger's functionalities

* Ability to retrieve all messages regardless of rate limit

* ClientsHandler request handling logic

* Required 'new' dependencies

* Main changes required for compilation

* PacketProcessor getting private key pointer

* "moved" types into gateway requests crate

* Moved and renamed types

* ibid.

* Added required serde_json dependency

* Skeleton for websocket request handling

* helper methods on ServerResponse

* WebSocket Handler pushing received mix messages directly to client

* PacketForwarder returning JoinHandle alongside the channel

* ClientsHandler following the same pattern

* Made websocket listener start method consistent with mix listener

* Syntax error + formatting

* Websocket handler having access to mix forwarder

* Minimal binary request parsing

* Implicitly derived std::error::Error on GatewayRequestsError

* Handling of all websocket requests

* Types import cleanup

* Updated placeholder fields

* Everything put into main

* Missing license notices

* Cleaned up unused code

* Copied and did initial minor changes to commands and config

* It's actually gateway

* Gateway sending its regular presence to directory server

* Re-organisation of gateway code + Gateway struct

* Updated provider argument description

* Restored duplicate ip check without importing NymTopology trait

* Moved hardcoded values into config

* Cargo fmt

* Compilation errors in other crates due to topology adjustments

* Test fixes

* Initial gateway-client

* Seemingly working version with bunch of hardcoded and temporary values

* cargo fmt

* Removed provider poller

* Updated config with gateway values instead of provider

* Gateway address including ws

* Removed hardcoded gateway address

* Properly skipping loop cover messages

* Updated log filter with tokio tungstenite related modules

* Updated sphinx version used

* Very minor cleanup

* unused import
2020-04-30 10:14:21 +01:00
Dave Hrycyszyn 903ef44328 Feature/route from topology (#201)
* directory-client: removing explicit type definitions

* clients/webassembly: ugly commit, removes dependency on HTTP crates

...at the cost of copying quite a bit of NymTopology-related stuff into
the WebAssembly client. I'll make an issue to refactor that later.

* A more helpful hint in the error message when websocket connection fails.

* Removing superfluous JavaScript, route checking now happens in Rust
2020-04-23 12:01:25 +01:00
Dave Hrycyszyn 44c48ef8ee FIXING DUE TO SOMEONE'S CHOICE OF EDITOR / OPERATING SYSTEM 2020-04-23 11:41:44 +01:00
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
Dave Hrycyszyn 8baa236d81 Feature/wasm js demo (#191)
* 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
2020-04-21 10:05:38 +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
Dave Hrycyszyn c5dd6bf93d Feature/improve js example (#190)
* nym-client: refactoring js example code a bit.

* nym-client: ignoring node modules in demo

* nym-client: adding webpack and a dev server

* nym-client: banging example into webpack format

* nym-client: webpack starting to work in the demo

* nym-client: more webpacking

* nym-client: ignoring bundle.js in dist

* Example code starting to breathe with webpack, not quite there yet

* nym-client: high point of attempted webpack business. Will revert to minimal, it's getting crazy.

* nym-client: removed lots of npm deps

* nym-client: added webpack html plugin to demo

* nym-client: removed app.scss from demo

* nym-client: removed lots of webpack config

* nym-client: ugly but working simple javascript demo

* nym-client: more demo simplification

* Simplifying a bit more

* nym-client: added some comments to js demo

* parameter rename
2020-04-20 15:48:26 +01:00
Jędrzej Stuczyński fda308694e Feature/very minor refactoring (#188)
* log statement for forwarding traffic

* Mixnode logging intent to forward packet

* Presence logging level decrease + making things less public

* Default adjustments + human readable equivalents in comments

* Do not immediately refresh topology on start
2020-04-17 18:59:22 +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 b8edb5c436 Optimising wasm build size, shaves about 10% size off our wasm output. (#186) 2020-04-17 18:21:22 +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 9ab2517b87 Update README.md 2020-04-17 11:37:51 +01:00
Jędrzej Stuczyński 2b48e85554 Merge pull request #183 from nymtech/feature/nym-sphinx-wasm
Feature/nym sphinx wasm
2020-04-17 11:16:38 +01:00
Dave Hrycyszyn 00d31267fa nym-sphinx-wasm: taking advice from The Man Who Loved Iterators 2020-04-17 10:48:57 +01:00
Dave Hrycyszyn f8b2900698 Making Arc clones more explicit. 2020-04-17 10:33:54 +01:00
Dave Hrycyszyn bf2ff5cd78 Ditching comment that told me where to start work one morning. 2020-04-17 10:33:40 +01:00
Dave Hrycyszyn d3bb0b216d nym-sphinx-wasm: using the Try that was already available and reverting foolish change to public API of addressing/nodes 2020-04-17 10:28:10 +01:00
Dave Hrycyszyn 526d7fa27d Some README improvements 2020-04-17 09:52:17 +01:00
Dave Hrycyszyn befad123f6 Removing MIT license 2020-04-17 09:51:44 +01:00
Dave Hrycyszyn 7d49ac8d25 gateway: broke things apart a little bit 2020-04-16 21:11:25 +01:00
Dave Hrycyszyn d628e065f1 gateway: using named function for packet forwarding 2020-04-16 20:59:23 +01:00
Dave Hrycyszyn 1412fdb6a7 gateway: removing text messages 2020-04-16 20:59:03 +01:00
Dave Hrycyszyn 6654d72e78 gateway: shortening multi_tcp_client usages 2020-04-16 20:58:46 +01:00
Dave Hrycyszyn d7150cfa58 nymsphinx: re-exporting NODE_ADDRESS_LENGTH so gateway can use it 2020-04-16 20:57:53 +01:00
Dave Hrycyszyn 99e818952f gateway: grabbing some stuff out of nymsphinx 2020-04-16 20:57:18 +01:00
Dave Hrycyszyn a717a8aabf gateway: client cleanup 2020-04-16 19:47:06 +01:00
Dave Hrycyszyn 10520469dd typo fix 2020-04-16 18:34:18 +01:00
Dave Hrycyszyn ffd941169e nym-sphinx-wasm: documented sphinx_route_from(str) 2020-04-16 18:32:42 +01:00
Dave Hrycyszyn fd874845cd nym-sphinx-wasm: various cleanups on packet creation 2020-04-16 18:26:12 +01:00
Dave Hrycyszyn d7e4374054 nym-sphinx-wasm: noted that message chunking is not yet implemented 2020-04-16 17:12:59 +01:00
Dave Hrycyszyn 044b12cdf1 nym-sphinx-wasm: ditched old code 2020-04-16 17:12:41 +01:00