1200a2f02d
* 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
1.2 KiB
1.2 KiB
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
- Download and install Tendermint 0.32.7
tendermint initsets up Tendermint for usetendermint noderuns Tendermint. You'll get errors until you run the Nym validator, this is normal :).cp sample-configs/validator-config.toml.sample sample-configs/validator-config.tomlcargo run -- run --config ../sample-configs/validator-config.tomlbuilds the Nym Validator and runs it