From 17e1eb95e3401128a12a8d1e598ee9f455c94a69 Mon Sep 17 00:00:00 2001 From: Niko PLP Date: Mon, 19 Aug 2024 06:01:36 +0300 Subject: [PATCH] snapshot and async signature --- Cargo.lock | 90 +------ nextgraph/src/local_broker.rs | 6 + ng-app/index-web.html | 2 +- ng-app/src-tauri/src/lib.rs | 91 +++++++ ng-app/src/api.ts | 3 + ng-app/src/apps/ContainerView.svelte | 4 +- ng-app/src/lib/FullLayout.svelte | 73 +++-- ng-app/src/lib/panes/History.svelte | 15 +- ng-app/src/lib/popups/Signature.svelte | 152 +++++++++++ ng-app/src/locales/en.json | 6 + ng-app/src/store.ts | 44 ++- ng-app/src/styles.css | 6 + ng-app/src/tab.ts | 10 + ng-broker/src/server_broker.rs | 1 + ng-net/src/app_protocol.rs | 26 +- ng-net/src/types.rs | 26 ++ ng-repo/Cargo.toml | 2 +- ng-repo/src/commit.rs | 9 +- ng-repo/src/errors.rs | 10 + ng-repo/src/event.rs | 5 +- ng-repo/src/lib.rs | 2 + ng-repo/src/object.rs | 4 + ng-repo/src/repo.rs | 28 +- ng-repo/src/store.rs | 4 +- ng-repo/src/types.rs | 82 +++++- ng-sdk-js/src/lib.rs | 97 +++++++ ng-verifier/src/commits/mod.rs | 67 ++++- ng-verifier/src/commits/snapshot.rs | 121 +++++++++ ng-verifier/src/request_processor.rs | 342 +++++++++++++++++++++++- ng-verifier/src/rocksdb_user_storage.rs | 12 + ng-verifier/src/types.rs | 1 + ng-verifier/src/user_storage/repo.rs | 36 ++- ng-verifier/src/user_storage/storage.rs | 27 +- ng-verifier/src/verifier.rs | 223 +++++++++++++-- ng-wallet/src/types.rs | 24 ++ 35 files changed, 1461 insertions(+), 190 deletions(-) create mode 100644 ng-app/src/lib/popups/Signature.svelte create mode 100644 ng-verifier/src/commits/snapshot.rs diff --git a/Cargo.lock b/Cargo.lock index e2767d5..7ae749f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -12,15 +12,6 @@ dependencies = [ "psl-types", ] -[[package]] -name = "addr2line" -version = "0.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" -dependencies = [ - "gimli", -] - [[package]] name = "adler" version = "1.0.2" @@ -493,21 +484,6 @@ dependencies = [ "uuid", ] -[[package]] -name = "backtrace" -version = "0.3.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" -dependencies = [ - "addr2line", - "cc", - "cfg-if", - "libc", - "miniz_oxide", - "object", - "rustc-demangle", -] - [[package]] name = "base64" version = "0.13.1" @@ -1683,28 +1659,6 @@ dependencies = [ "zune-inflate", ] -[[package]] -name = "failure" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d32e9bd16cc02eae7db7ef620b392808b89f6a5e16bb3497d159c6b92a0f4f86" -dependencies = [ - "backtrace", - "failure_derive", -] - -[[package]] -name = "failure_derive" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", - "synstructure", -] - [[package]] name = "fastrand" version = "1.9.0" @@ -2143,12 +2097,6 @@ dependencies = [ "weezl", ] -[[package]] -name = "gimli" -version = "0.28.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" - [[package]] name = "gio" version = "0.16.7" @@ -3854,15 +3802,6 @@ dependencies = [ "objc", ] -[[package]] -name = "object" -version = "0.32.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" -dependencies = [ - "memchr", -] - [[package]] name = "once_cell" version = "1.18.0" @@ -4817,12 +4756,6 @@ dependencies = [ "num-traits", ] -[[package]] -name = "rustc-demangle" -version = "0.1.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" - [[package]] name = "rustc-hash" version = "1.1.0" @@ -5481,18 +5414,6 @@ dependencies = [ "unicode-ident", ] -[[package]] -name = "synstructure" -version = "0.12.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", - "unicode-xid", -] - [[package]] name = "sys-locale" version = "0.3.1" @@ -5893,11 +5814,9 @@ dependencies = [ [[package]] name = "threshold_crypto" version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f708705bce37e765c37a95a8e0221a327c880d5a5a148d522552e8daa85787a" +source = "git+https://github.com/nextgraph-org/threshold_crypto.git?branch=master#b60552e4d42f67058455779eed476a76986b5478" dependencies = [ "byteorder", - "failure", "ff", "group", "hex_fmt", @@ -5906,6 +5825,7 @@ dependencies = [ "rand 0.7.3", "rand_chacha 0.2.2", "serde", + "thiserror", "tiny-keccak", "zeroize", ] @@ -6287,12 +6207,6 @@ version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" -[[package]] -name = "unicode-xid" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" - [[package]] name = "unique_id" version = "0.1.5" diff --git a/nextgraph/src/local_broker.rs b/nextgraph/src/local_broker.rs index 4f6678b..8203c7d 100644 --- a/nextgraph/src/local_broker.rs +++ b/nextgraph/src/local_broker.rs @@ -1312,6 +1312,11 @@ impl LocalBroker { // user_id.to_hash_string(), // key // ); + + let site = opened_wallet.wallet.site(&user_id)?; + let core = site.cores[0]; //TODO: cycle the other cores if failure to connect (failover) + let brokers = opened_wallet.wallet.broker(core.0)?; + key_material.zeroize(); let mut verifier = Verifier::new( VerifierConfig { @@ -1325,6 +1330,7 @@ impl LocalBroker { private_store_id: credentials.2, protected_store_id: credentials.3, public_store_id: credentials.4, + locator: BrokerInfoV0::vec_into_locator(brokers), }, block_storage, )?; diff --git a/ng-app/index-web.html b/ng-app/index-web.html index 80f69de..893e71f 100644 --- a/ng-app/index-web.html +++ b/ng-app/index-web.html @@ -102,7 +102,7 @@
Your browser is too old and does not support NextGraph.
Please upgrade to a newer version of this browser,
try with another browser,

or install our native apps on
- Linux, macOS, Windows desktops and laptops,
and iOS, Android mobiles.
+ Linux, macOS, Windows desktops and laptops,
and iOS, Android mobiles.

If you are using jshelter or another javascript protection mechanism, please deactivate it as we need access to the WebWorker facility of your browser.