Commit Graph

25 Commits

Author SHA1 Message Date
Drazen Urch 424230c3bb Squashed commit of the following:
commit cddd9e8e4c
Merge: 40fbdff0 976dd7aa
Author: Drazen Urch <durch@users.noreply.guthub.com>
Date:   Thu Sep 16 17:27:27 2021 +0200

    Merge branch 'develop' into tauri-wallet

commit 976dd7aae2
Author: Drazen Urch <drazen@urch.eu>
Date:   Wed Sep 15 17:28:49 2021 +0200

    Add block_height method to Delegation (#778)

    Co-authored-by: Drazen Urch <durch@users.noreply.guthub.com>

commit 0d21f4e937
Merge: e84af4f6 1403449a
Author: Fouad <fmtabbara@hotmail.co.uk>
Date:   Wed Sep 15 12:41:29 2021 +0100

    Merge pull request #776 from nymtech/update/re-enable-bonding

    re-enable bonding

commit 1403449ad5
Author: fmtabbara <fmtabbara@hotmail.co.uk>
Date:   Tue Sep 14 16:00:21 2021 +0100

    enable bonding

commit e84af4f601
Author: Drazen Urch <drazen@urch.eu>
Date:   Tue Sep 14 15:15:26 2021 +0200

    Migrate legacy delegation data (#771)

    * Skip ReadOnlyBucket deserialization errors

    * empty migration

    * clippy

    * cargo schema

    * Drop invalid delegation data

    * Dont drop old data

    * Add todo

    * Unify on type param

    * gateways are different

    * cargo fmt

    Co-authored-by: Drazen Urch <durch@users.noreply.guthub.com>

commit 26b032c15c
Merge: e1ddaff0 cba36253
Author: Mark Sinclair <mmsinclair@gmail.com>
Date:   Tue Sep 14 10:09:14 2021 +0100

    Merge pull request #774 from nymtech/feature/explorer-api-delegations

    Explorer-api: add API resource to show the delegations for each mix node

commit cba3625394
Author: Mark Sinclair <mmsinclair@gmail.com>
Date:   Mon Sep 13 10:33:41 2021 +0100

    explorer-api: add API resource to show the delegations for each mix node

commit e1ddaff04d
Merge: 0b9c03ca 66ab5de4
Author: Fouad <fmtabbara@hotmail.co.uk>
Date:   Fri Sep 10 17:17:14 2021 +0100

    Merge pull request #772 from nymtech/update/disable-bonding

    add app alert

commit 66ab5de442
Author: fmtabbara <fmtabbara@hotmail.co.uk>
Date:   Fri Sep 10 16:16:58 2021 +0100

    add app alert

commit 0b9c03ca90
Author: Dave Hrycyszyn <futurechimp@users.noreply.github.com>
Date:   Fri Sep 10 11:23:21 2021 +0300

    Adding deps for building the Tauri wallet under Ubuntu (#770)

commit c9dce0c1da
Author: Bogdan-Ștefan Neacşu <bogdan@nymtech.net>
Date:   Thu Sep 9 11:21:45 2021 +0200

    Feature/consumable bandwidth (#766)

    * Set actual value for bandwidth

    Also put it as a public attribute, such that it can be actively used
    by the credential consumer

    * Switch from sending Attribute structs to sending the actual attribute bytes over the wire

    * Add atomic bandwidth value to gateway

    * Consume bandwidth based on the mix packet size

    * Use Bandwidth struct for specific functionality

    * Move bandwidth code outside the dependency path of wasm client

    * Use u64 instead of AtomicU64, as the handling is not parallel

commit e00e77db15
Author: Bogdan-Ștefan Neacşu <bogdan@nymtech.net>
Date:   Wed Sep 8 15:07:24 2021 +0200

    Feature/bond blockstamp (#760)

    * Add block_height to MixNode/GatewayBond

    * Reward based on blockstamp of bonded node or of delegation

    * Add specific tests

    * Add migration code

    * Apply doc nit

commit 1074449f91
Merge: 08276e6e 9a3d824a
Author: Fouad <fmtabbara@hotmail.co.uk>
Date:   Tue Sep 7 23:45:10 2021 +0100

    Merge pull request #767 from nymtech/update/remove-app-alert

    remove alert

commit 08276e6e42
Author: Bogdan-Ștefan Neacşu <bogdan@nymtech.net>
Date:   Tue Sep 7 16:33:30 2021 +0200

    Remove migration code (#759)

commit 9a3d824a4a
Author: fmtabbara <fmtabbara@hotmail.co.uk>
Date:   Mon Sep 6 20:39:24 2021 +0100

    remove alert

commit 2789ee8f18
Author: Bogdan-Ștefan Neacşu <bogdan@nymtech.net>
Date:   Fri Sep 3 15:30:45 2021 +0300

    Update coconut-rs and use hash_to_scalar from there (#765)

    Failed tests are due to some nightly issue, not related to this PR

commit a7ba643c35
Merge: 28be53ee c42f3c68
Author: Fouad <fmtabbara@hotmail.co.uk>
Date:   Fri Sep 3 09:14:50 2021 +0100

    Merge pull request #762 from nymtech/feature/app-alert

    add app alert banner

commit 28be53eefb
Author: Bogdan-Ștefan Neacşu <bogdan@nymtech.net>
Date:   Thu Sep 2 18:26:40 2021 +0300

    Add block_height in the Delegation structure as well (#757)

commit 219c45a352
Author: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
Date:   Thu Sep 2 15:48:29 2021 +0100

    Updated cosmos-sdk (#761)

    * Updated cosmos-sdk

    * Re-exposing more things

commit 1a3b83752e
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Thu Sep 2 15:45:56 2021 +0100

    Bump next from 11.1.0 to 11.1.1 in /wallet-web (#758)

    Bumps [next](https://github.com/vercel/next.js) from 11.1.0 to 11.1.1.
    - [Release notes](https://github.com/vercel/next.js/releases)
    - [Changelog](https://github.com/vercel/next.js/blob/canary/release.js)
    - [Commits](https://github.com/vercel/next.js/compare/v11.1.0...v11.1.1)

    ---
    updated-dependencies:
    - dependency-name: next
      dependency-type: direct:production
    ...

    Signed-off-by: dependabot[bot] <support@github.com>

    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit c42f3c6844
Author: fmtabbara <fmtabbara@hotmail.co.uk>
Date:   Thu Sep 2 12:29:47 2021 +0100

    add app alert banner

commit a5d3ba3900
Merge: 92e13a5d cdf0d443
Author: Mark Sinclair <mmsinclair@gmail.com>
Date:   Tue Aug 31 15:59:11 2021 +0100

    Merge pull request #755 from nymtech/bugfix/explorer-api-ping

    Explorer API: port test now split out address resolution and add units tests

commit cdf0d44341
Author: Mark Sinclair <mmsinclair@gmail.com>
Date:   Tue Aug 31 14:37:28 2021 +0100

    explorer-api: turned down logging from `error` to `warn`

commit 92f976a45d
Author: Mark Sinclair <mmsinclair@gmail.com>
Date:   Fri Aug 27 11:34:21 2021 +0100

    explorer-api: sanitize hostname before running checks to avoid leading or trailing spaces that are known to exist in the current test net

commit 2bc858cde3
Author: Mark Sinclair <mmsinclair@gmail.com>
Date:   Fri Aug 27 09:32:26 2021 +0100

    explorer-api: port test: split out address resolution and add units tests

commit 92e13a5d00
Author: Bogdan-Ștefan Neacşu <bogdan@nymtech.net>
Date:   Tue Aug 31 14:51:15 2021 +0300

    Feature/add blockstamp (#756)

    * Add RawDelegationData

    * Fix current tests for the new stored data

    * Added migration commit. Will be reverted after doing the migration

    * New tests for block height

    * Use current blockstamp instead of 24h old one

    * Put _alot_ of migration stuff in the migrate function scope

commit 122f5d9f2e
Author: Bogdan-Ștefan Neacşu <bogdan@nymtech.net>
Date:   Mon Aug 30 10:27:20 2021 +0300

    Feature/cred after handshake (#745)

    * Call perform_initial_authentication instead of register in clients

    * Refactor the register/authenticate functions a bit

    * Introduce Bandwidth request type

    * Add encryption layer to cred

    * Remove cred pass and check from handshake

    * Replaced unreachable!  with error

    * Changed decrypt_tagged signature to not take mutable ownership of data

    * Put handle_bandwidth work inside a function

    * Add check before unwrap

    * Remove unnecessary async

    * Decouple bandwidth credential from authentication

    * Use new_error for ServerResponse:Error

    * Send a fresh IV each time the BandwidthCredential request is sent

    * Remove unwrap of bincode::serialize

    * Add comment regarding Bandwidth response

    * Remove _mut from naming

    * Leave Debug trait alone, as the initial error doesn't reproduce anymore

    * Pass iv as Vec<u8> instead of base58 string

    * Renamed AuthenticationIV to IV, as it is now used for more the just authentication

    * Did some IV refactorization

commit 982ee0266c
Author: Bogdan-Ștefan Neacşu <bogdan@nymtech.net>
Date:   Fri Aug 27 16:02:34 2021 +0300

    Feature/get own delegations (#748)

    * Introduce reverse delegation bucket

    * Add client command

    * Fix clippy error

    * Added tests in queries

    * Add tests in transactions

    * Migration code. Will be reverted after it's called on testnet

    * Replace unwrap with expect

    * Move some test code in the right file...

    ... to remove unnecessary auxiliary function.

    * Reduce the scope to migration auxiliary functions

    * Rename everything from [node]reverse to reverse[node]

    * Fix fmt

commit 5f42a9bd05
Author: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
Date:   Fri Aug 27 13:52:18 2021 +0100

    NetworkMonitorBuilder - starting the monitor after rocket has launched (#754)

    * NetworkMonitorBuilder - starting the monitor after rocket has launched

    * Removed unused import

commit 1811df9ddb
Author: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
Date:   Fri Aug 27 13:52:10 2021 +0100

    Enabled validators api argument (#753)

commit 6bdfe7f895
Author: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
Date:   Thu Aug 26 11:21:01 2021 +0100

    Correctly bounding nominator of uptime calculation (#752)

commit c6b286a1db
Author: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
Date:   Wed Aug 25 14:50:57 2021 +0100

    Fixed argument parsing for ipv6 'good' topology (#751)

commit b3568a26f5
Author: Bogdan-Ștefan Neacşu <bogdan@nymtech.net>
Date:   Tue Aug 24 11:25:05 2021 +0300

    Revert "Migration commit, will be reverted after the testnet contract is updated" (#749)

    This reverts commit 38d868bcce.

commit 15ae0f521e
Author: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
Date:   Mon Aug 23 10:26:51 2021 +0100

    Feature/more reliable uptime calculation (#747)

    * New database table holding monitor run info

    * SQL interface for new table

    * Updated uptime calculation to instead rely on number of monitor test runs

commit 2923d4b872
Author: Bogdan-Ștefan Neacşu <bogdan@nymtech.net>
Date:   Thu Aug 19 22:03:07 2021 +0300

    Update template toml key (#746)
2021-09-16 17:33:20 +02:00
Jędrzej Stuczyński a274edffba Feature/nymd client integration (#736)
* Calculating gas fees

* Ability to set custom fees

* Added extra test

* Removed commented code

* Moved all msg types to common contract crate

* Temporarily disabling get_tx method

* Finishing up nymd client API

* Comment fix

* Remaining fee values

* Some cleanup

* Removed needless borrow

* Fixed imports in contract tests

* Moved error types around

* New ValidatorClient

* Experiment with new type of defaults

* Removed dead module

* Dealt with unwrap

* Migrated mixnode to use new validator client

* Migrated gateway to use new validator client

* Mixnode and gateway adjustments

* More exported defaults

* Clients using new validator client

* Fixed mixnode upgrade

* Moved default values to a new crate

* Changed behaviour of validator client features

* Migrated basic functions of validator api

* Updated config + fixed startup

* Fixed wasm client build

* Integration with the explorer api

* Removed tokio dev dependency

* Needless borrow

* Fixex wasm client build

* Fixed tauri client build

* Needless borrows

* Fixed client upgrade print

* Removed redundant comments

* Made note on aggregated verification key into a doc comment

* Removed mixnet contract references from verloc

* Modified default validators structure

* Reformatted validator-api Cargo.toml file

* Removed commented code

* Made the doc comment example a no-run

* Fixed a upgrade print... again

* Adjusted the doc example

* Removed unused import
2021-08-18 14:41:00 +01:00
Drazen Urch 28e55c6de6 Hang coconut issuance off the validator-api (#679)
* Hand coconut issuance off the validator-api

* git to cargo

* Move to own module

* Integrate tauri-client, extract common interface

* cargo fmt

* Ergonomics

* Facelift

* Wrap up tauri client

* Set up publish

* Fix fmt

* Install CI dependencies

* Inline deps

* Remove mac deps

* Add dist dir

* Fix beta clippy nag

* Commit some gateway work

* Thread coconut creds through gateway handshake

* Push in progress patch

* Move State from tauri client to coconut interface

* Move get_aggregated_signature from tauri client to coconut interface

* Move prove_credential from tauri client to coconut interface

* Update sphinx version

* Mount coconut routes and manage config file in rocket

* Split default validator endpoint into host and port

* Add init for simple credential initialization

* Fix common gateway client

* Add coconut cred to webassembly client

* Add coconut cred to socks5 client

* Add coconut cred to native client

* Remove direct coconut-rs dependency

* Use only coconut interface in validator api

* Leave validator-api out of workspace and update Cargo.lock

* Fix clippy warnings and update Cargo.lock after rebase

* Switch from attohttpc to reqwest for async gets

This is not only needed for using async requests, but also because attohttpc
causes OpenSSL issues when cross compiling the webassembly client.

* Replace attohttpc with reqwest for puts too

* Make tauri client commands async

* Fix borrow error

* Guard gateway server code from compiling for wasm (client)

* Fix clippy wasm client

* Fix tests

* Fix clippy in tauri client

* Remove commented code

* Update comment of init message

* Remove unnecessary hex dependency

* Replace config argument with key_pair

* Use `trim()` for whitespace removal

* Move verification key query higher up the function calls

* Put KeyPair instead of Config into rocket's managed items

* Re-enable tauri client verify button

* Move verification key up the function calls for prove_credential

* Use consts for verification_key and blind_sign routes of validator-api

* Replace `match` with `map_err`

* Fix typo

* Remove now unnecessary `Clone` derives

... as config is no longer managed by rocket

* Replace `match` with `map_err`

* Make `InternalSignRequest` really internal to validator-api

* Make `with_keypair` live up to its name

* Update Cargo.lock after rebase

* Replace String error with HandshakeError

* Add CoconutInterfaceError to coconut-interface

* Format the new error in tauri client

* Remove  from default, as wasm client doesn't build

* Put public key as init argument...

... for the public attributes of the credential

* Use the hash_to_scalar function to make public key into attribute

Use the function from cli-demo-rs from https://github.com/nymtech/coconut
to make the identity public key into a public attribute.

* Replace vector with array for InitMessage

As we know beforehand the size of the keys, we can use fixed size array
instead of vectors. This eliminates the need for a prefixed length in
the serialized form of the InitMessage structure and enables a easy
deserialization of the remote identity before the actual bincode
deserialization that we do in the handshake process.

Before this, the `extract_remote_identity_from_register_init` function
attempted to deserialize into a public key the length-prefixed public key
received from the client, thus failing sporadically with a `Cannot decompress
Edwards point` error.

* Pass public and private attributes to state `init` instead of PublicKey

* Make tauri call with dummy attributes

* Make clients call with their keypairs

* Revert "Make clients call with their keypairs"

This reverts commit b348f47f7a.

* Put dummy, bandwidth private attribute

Co-authored-by: Bogdan-Ștefan Neacșu <bogdan@nymtech.net>
2021-08-13 14:27:40 +03:00
Jędrzej Stuczyński fb253e53a4 Removed all sphinx key caching from mixnodes and gateways (#713)
* Removed all sphinx key caching from mixnodes and gateways

* Missing change in network monitor
2021-08-11 12:47:35 +01:00
Jędrzej Stuczyński 2db79de722 Feature/superbuild (#719)
* Adding build script

* Added build dependencies

* Cleaned up build.rs

* Restored validator-api to default workspace

* Removed split for validator-api build in github ations

* Don't build validator API on Windows

* Remove validator-api Cargo.lock

* Remove fmt from the conditional steps

Co-authored-by: Dave Hrycyszyn <futurechimp@users.noreply.github.com>
Co-authored-by: Bogdan-Ștefan Neacșu <bogdan@nymtech.net>
2021-08-04 11:55:58 +03:00
Jędrzej Stuczyński f4305dfaa5 Warnings with identities of good nodes failing checks (#714)
* Warnings with identities of good nodes failing checks

* Fixed logging messages
2021-08-02 14:08:23 +01:00
Bogdan-Ștefan Neacşu 18f5d4084d Feature/default values (#700)
* Put endpoints and contract address in one place

* Put common ports in one place

* Split cache version from route

* Share validator-api port value between server and client

* Put BECH32 prefix in defaults

* Put DENOM in defaults

* Put network monitor address in defaults

* Fix clippy

* Fix another clippy + tests import of DENOM
2021-07-26 10:55:59 +01:00
Jędrzej Stuczyński 1d18def642 Run cargo fmt 2021-07-22 15:34:34 +01:00
Jędrzej Stuczyński c81454e00b Validator API storage fixes and adjustments 2021-07-22 15:15:08 +01:00
Jędrzej Stuczyński 5568073c17 Fixed validator-api network version check 2021-07-22 10:05:38 +01:00
Bogdan-Ștefan Neacşu 191b3c09e2 V0.11.0 release (#696)
* Update the version to 0.11.0 for non-upgradable crates

* Fix target version for the current upgrade functions

* Upgrade native client

* Upgrade socks5 client

* Upgrade mixnode

* Upgrade gateway
2021-07-21 14:10:27 +01:00
Bogdan-Ștefan Neacșu c1808ae692 Update to RC 0.11.0-rc1 2021-07-21 13:19:50 +03:00
Bogdan-Ștefan Neacşu 3f2fa717c9 Return the vec instead of the cache wrapper for topology (#695) 2021-07-20 17:30:58 +01:00
Jędrzej Stuczyński e86467d007 Changed validator-api version to 0.10.2 2021-07-19 14:36:25 +01:00
Jędrzej Stuczyński e5afd54ce0 Feature/node status api (#680)
* Basic storage stub

* New models for new node status api

* Route handling

* Mounting new routes

* Missing selective commit

* Moved network monitor related files to separate package

* Starting to see some sqlx action

* Schema updates

* Log statement upon finished migration

* Removed old diesel related imports

* Converted mixnode cache initialisation into a fairing

* Moved cache related functionalities to separate package

Also defined staging there

* Created run method for validator cache + removed unwrap

* Removed old node-status-api types and left bunch of todo placeholders in their place

* Fixed managing validatorcache

* Status reports are starting to get constructed

* Submitting some dummy results to the database

* Removing duplicate code for generating reports

* Removed statuses older than 48h

* Initial attempt at trying to obtain reports for all active nodes

* Removed duplicates from the full report

* Grabbing uptime history

* Updating historical uptimes of active nodes

* Updated sqlx-data.json

* Removed all placeholder foomp owner values

* Changed Layer serde behaviour for easier usage

* Extended validator api config

* Initial (seems working !) integration with network monitor

* Added database path configuration to config

* Using ValidatorCache in NetworkMonitor

* Flag indicating whether validator cache has been initialised

* Introduced a locla-only route for reward script to perform daily chores

* Flag to save config to a file

* Moved spawning of receiving future to run method rather than new

* Removed arguments that dont make sense to be configured via CLI

* Removed dead code from config file

* More dead code removal

* Added validator API to CI

* Corrected manifest-path arguments

* Constructing network monitor by passing config

* Combined validator API CI with the main CI file

* Using query_as for NodeStatus

* Checking if historical uptimes were already calculated on particular day

* Making id field NOT NULL

* More query_as! action

* Updated sqlx-data.json

* Removed unused chrono feature

* Renamed the migration file

* Changed default validator endpoint to point to local validator

* Removing unnecessary clone

* More appropriate naming

* Removed dead code

* Lock file updates

* Updated network monitor address in contract code

* Don't stage node status api if network monitor is disabled

* cargo fmt

* Updated all license notices to SPDX
2021-07-19 14:02:47 +01:00
Dave Hrycyszyn a9797879e8 Correcting the contract address 2021-07-15 16:16:20 +01:00
Dave Hrycyszyn 8f4b5ab4c7 Updating default settings to get the next testnet up 2021-07-14 16:46:13 +01:00
Jędrzej Stuczyński 0fd203371d Using specific commit of rocket cors (#678) 2021-07-13 16:14:11 +01:00
Bogdan-Ștefan Neacşu 973c30592f Use cached topology for clients (#674)
* Add validator-api common client

* Call validator-api from different clients for gateway topology

* Call validator-api from different clients for mixnode topology

* Use consts for the validator-api queries

* Rename the new query_validator function to query_validator_api

* Add mut to mixnode validator client

* Add refreshValidatorAPIGateways as a way to get the gateways...

... from validator-api

* Add refreshValidatorAPIGateways as a way to get the mixnodes...

... from validator-api

* Add yet another mut

* Change the port to validator-api service when querying the topology

* Add parsing check on the config phase...

... to make sure the validator URLs are in the correct format.

* Fix another clippy error

* Use all provided validators instead of just the first one

* The mutable reference was not actually needed, so remove it

* Use global variable for validator-api port

* Use url crate for checking the format and changing the port

* Use URL for parsing and move constants of validator-api to index.ts...

... until we find a way to link to the values from the validator-api
crate.

* Change global variables naming and have the API version into each API query

* Revert the changes to the index on connect...

... as they were working correctly before.

* Use all provided validators for mixnodes as well

* Remove location and layer
2021-07-09 11:50:41 +01:00
Drazen Urch 3886ec5291 Minimize read/write cache contention (#676)
* Add timeout to cache.write() call

* mixnode_cache -> validator_cache

* Fix rename

* Minimize read/write contention
2021-07-08 10:42:53 +01:00
Jędrzej Stuczyński 8f98de4abc Feature/validator api config (#671)
* Modified NymConfig trait to make id optional

* Basic validator-api config definition

* Optionally using the config during startup + flag to enable monitoring
2021-07-05 13:48:55 +02:00
Drazen Urch 3aafe54887 Remove mut where possible, parallel cache requests (#668) 2021-07-02 10:50:49 +02:00
Drazen Urch 2e6a32b298 Generalize cache, and cache gateways (#666)
* Generalize cache, and cache gateways

* Allow dead code
2021-07-01 17:24:23 +02:00
Drazen Urch 343c55f981 Validator API server (#665)
* Rocket main stub

* Add anyhow

* Stub cache reads and writes

* Finalize stubs

* Add generic Rocket.toml

* Put back targets

* Have cache own its validator client

* allow dead code

* Update rocket.toml for 0.5
2021-07-01 14:08:04 +02:00
Drazen Urch b30f11ed7a Rename network-monitor (#662) 2021-06-29 14:48:15 +02:00