Files
nym/validator
Jędrzej Stuczyński 124712a954 Feature/network monitor (#369)
* 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>
2020-10-09 16:00:19 +01:00
..
2020-08-07 18:16:54 +01:00
2020-10-09 16:00:19 +01:00
2020-04-17 11:39:36 +01:00
2020-04-17 11:39:36 +01:00

Nym Validator

The Nym Validator has several jobs:

  • use Tendermint (v0.33.0) to maintain a total global ordering of incoming transactions
  • rewards + stake slashing based quality of service measurements for mixnet nodes (aka "mixmining")
  • generate Coconut credentials and ensure they're not double spent
  • maintain a decentralized directory of all Nym nodes that have staked into the system

Some of these functions may be moved away to their own node types in the future, for example to increase scalability or performance. At the moment, we'd like to keep deployments simple, so they're all in the validator node.

Running the validator on your local machine

  1. Download and install Tendermint 0.32.7
  2. tendermint init sets up Tendermint for use
  3. tendermint node runs Tendermint. You'll get errors until you run the Nym validator, this is normal :).
  4. cp sample-configs/validator-config.toml.sample sample-configs/validator-config.toml
  5. cargo run -- run --config ../sample-configs/validator-config.toml builds the Nym Validator and runs it