Commit Graph

1291 Commits

Author SHA1 Message Date
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
Dave Hrycyszyn 060d0b4f02 gateway: successful send using multi-tcp-client 2020-04-16 16:45:34 +01:00
Dave Hrycyszyn 4b2a6f20f3 scripts: building for local in debug mode 2020-04-16 13:43:25 +01:00
Dave Hrycyszyn 1eb211dbd4 nym-sphinx-wasm: including provider encoding in the packet 2020-04-16 13:43:04 +01:00
Dave Hrycyszyn 40e67e7809 nym-sphinx-wasm: chunking packet sends 2020-04-16 13:42:09 +01:00
Dave Hrycyszyn 146bbef3af nym-sphinx-wasm: loosening up serde-related dependencies 2020-04-16 13:40:41 +01:00
Dave Hrycyszyn ab61ef8680 Changing recipient 2020-04-15 20:56:17 +01:00
Dave Hrycyszyn dbd657646c Sending packet to the server 2020-04-15 20:56:02 +01:00
Dave Hrycyszyn beffc45cbe nym-client: typo fix 2020-04-15 20:54:59 +01:00
Dave Hrycyszyn 96bbf9c3f5 gateway: simplifying 2020-04-15 20:54:20 +01:00
Dave Hrycyszyn 85680b22d9 ibid 2020-04-15 20:54:08 +01:00
Dave Hrycyszyn e226001530 gateway: adding log related crates 2020-04-15 20:54:00 +01:00
Dave Hrycyszyn 2a6dd1d5a8 scripts: adding a stop script so I don't need to manually killall all the time 2020-04-15 20:53:29 +01:00
jstuczyn 62e61328a1 Updated email 2020-04-15 18:14:00 +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 53f29fd4a5 nym-sphinx-wasm: added a bit of documentation onto the www demo 2020-04-15 17:31:35 +01:00
Dave Hrycyszyn 3cbf1fa754 nym-sphinx-wasm: adding an example of wasm Sphinx in action 2020-04-15 17:24:43 +01:00
Dave Hrycyszyn a2e9590420 nym-sphinx-wasm: removing outdated Sphinx examples 2020-04-15 17:24:15 +01:00
Dave Hrycyszyn 9dc9ccd9d4 Removing submodule 2020-04-15 17:18:26 +01:00
Dave Hrycyszyn b662edc343 gateway: simplifying a bit. 2020-04-15 16:54:52 +01:00