From 4747eb66b5b424c8ca33f2c6bb55f21346031d8a Mon Sep 17 00:00:00 2001 From: librelois <c@elo.tf> Date: Fri, 14 May 2021 17:04:31 +0200 Subject: [PATCH 1/6] =?UTF-8?q?deps:=C2=A0upgrade=20core=20&=20gva=20(peer?= =?UTF-8?q?s=20db=20change)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Cargo.lock | 44 ++++++++++++--------- neon/native/src/server.rs | 40 ++++++++++++------- rust-libs/duniter-server/src/legacy/dunp.rs | 34 ++++++---------- 3 files changed, 63 insertions(+), 55 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d78e7b918..aad889c51 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -864,7 +864,7 @@ dependencies = [ [[package]] name = "dubp-wot" version = "0.11.0" -source = "git+https://git.duniter.org/nodes/rust/duniter-core#4f26e9e6f687f2c42adf7027bebb34f4ed58e600" +source = "git+https://git.duniter.org/nodes/rust/duniter-core#193a64f042500c7a0b327fc216db1773a904270c" dependencies = [ "log", "rayon", @@ -874,7 +874,7 @@ dependencies = [ [[package]] name = "duniter-bc-reader" version = "0.1.0" -source = "git+https://git.duniter.org/nodes/rust/duniter-core#4f26e9e6f687f2c42adf7027bebb34f4ed58e600" +source = "git+https://git.duniter.org/nodes/rust/duniter-core#193a64f042500c7a0b327fc216db1773a904270c" dependencies = [ "anyhow", "dubp", @@ -885,7 +885,7 @@ dependencies = [ [[package]] name = "duniter-bca" version = "0.1.0" -source = "git+https://git.duniter.org/nodes/rust/modules/duniter-gva#7fe98256d2775eecaaedf03401f1a0ff9b08a49b" +source = "git+https://git.duniter.org/nodes/rust/modules/duniter-gva#26602884a286a202c729b1a89a4e00c89152106a" dependencies = [ "anyhow", "arrayvec", @@ -908,7 +908,7 @@ dependencies = [ [[package]] name = "duniter-bca-types" version = "0.1.0" -source = "git+https://git.duniter.org/nodes/rust/modules/duniter-gva#7fe98256d2775eecaaedf03401f1a0ff9b08a49b" +source = "git+https://git.duniter.org/nodes/rust/modules/duniter-gva#26602884a286a202c729b1a89a4e00c89152106a" dependencies = [ "arrayvec", "bincode", @@ -940,7 +940,7 @@ dependencies = [ [[package]] name = "duniter-conf" version = "0.1.0" -source = "git+https://git.duniter.org/nodes/rust/duniter-core#4f26e9e6f687f2c42adf7027bebb34f4ed58e600" +source = "git+https://git.duniter.org/nodes/rust/duniter-core#193a64f042500c7a0b327fc216db1773a904270c" dependencies = [ "anyhow", "dubp", @@ -954,7 +954,7 @@ dependencies = [ [[package]] name = "duniter-core" version = "1.8.1" -source = "git+https://git.duniter.org/nodes/rust/duniter-core#4f26e9e6f687f2c42adf7027bebb34f4ed58e600" +source = "git+https://git.duniter.org/nodes/rust/duniter-core#193a64f042500c7a0b327fc216db1773a904270c" dependencies = [ "duniter-bc-reader", "duniter-conf", @@ -991,7 +991,7 @@ dependencies = [ [[package]] name = "duniter-dbs" version = "0.1.0" -source = "git+https://git.duniter.org/nodes/rust/duniter-core#4f26e9e6f687f2c42adf7027bebb34f4ed58e600" +source = "git+https://git.duniter.org/nodes/rust/duniter-core#193a64f042500c7a0b327fc216db1773a904270c" dependencies = [ "arrayvec", "bincode", @@ -1014,7 +1014,7 @@ dependencies = [ [[package]] name = "duniter-dbs-write-ops" version = "0.1.0" -source = "git+https://git.duniter.org/nodes/rust/duniter-core#4f26e9e6f687f2c42adf7027bebb34f4ed58e600" +source = "git+https://git.duniter.org/nodes/rust/duniter-core#193a64f042500c7a0b327fc216db1773a904270c" dependencies = [ "chrono", "dubp", @@ -1029,7 +1029,7 @@ dependencies = [ [[package]] name = "duniter-global" version = "1.8.1" -source = "git+https://git.duniter.org/nodes/rust/duniter-core#4f26e9e6f687f2c42adf7027bebb34f4ed58e600" +source = "git+https://git.duniter.org/nodes/rust/duniter-core#193a64f042500c7a0b327fc216db1773a904270c" dependencies = [ "async-rwlock", "dubp", @@ -1042,7 +1042,7 @@ dependencies = [ [[package]] name = "duniter-gva" version = "0.1.0" -source = "git+https://git.duniter.org/nodes/rust/modules/duniter-gva#7fe98256d2775eecaaedf03401f1a0ff9b08a49b" +source = "git+https://git.duniter.org/nodes/rust/modules/duniter-gva#26602884a286a202c729b1a89a4e00c89152106a" dependencies = [ "anyhow", "arrayvec", @@ -1073,7 +1073,7 @@ dependencies = [ [[package]] name = "duniter-gva-conf" version = "0.1.0" -source = "git+https://git.duniter.org/nodes/rust/modules/duniter-gva#7fe98256d2775eecaaedf03401f1a0ff9b08a49b" +source = "git+https://git.duniter.org/nodes/rust/modules/duniter-gva#26602884a286a202c729b1a89a4e00c89152106a" dependencies = [ "anyhow", "duniter-core", @@ -1085,7 +1085,7 @@ dependencies = [ [[package]] name = "duniter-gva-db" version = "0.1.0" -source = "git+https://git.duniter.org/nodes/rust/modules/duniter-gva#7fe98256d2775eecaaedf03401f1a0ff9b08a49b" +source = "git+https://git.duniter.org/nodes/rust/modules/duniter-gva#26602884a286a202c729b1a89a4e00c89152106a" dependencies = [ "bincode", "chrono", @@ -1102,7 +1102,7 @@ dependencies = [ [[package]] name = "duniter-gva-dbs-reader" version = "0.1.0" -source = "git+https://git.duniter.org/nodes/rust/modules/duniter-gva#7fe98256d2775eecaaedf03401f1a0ff9b08a49b" +source = "git+https://git.duniter.org/nodes/rust/modules/duniter-gva#26602884a286a202c729b1a89a4e00c89152106a" dependencies = [ "anyhow", "arrayvec", @@ -1116,7 +1116,7 @@ dependencies = [ [[package]] name = "duniter-gva-gql" version = "0.1.0" -source = "git+https://git.duniter.org/nodes/rust/modules/duniter-gva#7fe98256d2775eecaaedf03401f1a0ff9b08a49b" +source = "git+https://git.duniter.org/nodes/rust/modules/duniter-gva#26602884a286a202c729b1a89a4e00c89152106a" dependencies = [ "anyhow", "arrayvec", @@ -1137,12 +1137,14 @@ dependencies = [ [[package]] name = "duniter-gva-indexer" version = "0.1.0" -source = "git+https://git.duniter.org/nodes/rust/modules/duniter-gva#7fe98256d2775eecaaedf03401f1a0ff9b08a49b" +source = "git+https://git.duniter.org/nodes/rust/modules/duniter-gva#26602884a286a202c729b1a89a4e00c89152106a" dependencies = [ "anyhow", + "bincode", "dubp", "duniter-core", "duniter-gva-db", + "lz4_flex", "once_cell", "resiter", ] @@ -1167,7 +1169,7 @@ dependencies = [ [[package]] name = "duniter-mempools" version = "0.1.0" -source = "git+https://git.duniter.org/nodes/rust/duniter-core#4f26e9e6f687f2c42adf7027bebb34f4ed58e600" +source = "git+https://git.duniter.org/nodes/rust/duniter-core#193a64f042500c7a0b327fc216db1773a904270c" dependencies = [ "dubp", "duniter-bc-reader", @@ -1180,7 +1182,7 @@ dependencies = [ [[package]] name = "duniter-module" version = "0.1.0" -source = "git+https://git.duniter.org/nodes/rust/duniter-core#4f26e9e6f687f2c42adf7027bebb34f4ed58e600" +source = "git+https://git.duniter.org/nodes/rust/duniter-core#193a64f042500c7a0b327fc216db1773a904270c" dependencies = [ "anyhow", "async-mutex", @@ -1811,7 +1813,7 @@ dependencies = [ [[package]] name = "kv_typed" version = "0.1.0" -source = "git+https://git.duniter.org/nodes/rust/duniter-core#4f26e9e6f687f2c42adf7027bebb34f4ed58e600" +source = "git+https://git.duniter.org/nodes/rust/duniter-core#193a64f042500c7a0b327fc216db1773a904270c" dependencies = [ "byteorder", "cfg-if 0.1.10", @@ -1886,6 +1888,12 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3d0925aed5b12ed59857f438d25a910cf051dbcd4107907be1e7abf6c44ec903" +[[package]] +name = "lz4_flex" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05304f8e67dfc93d1b4b990137fd1a7a4c6ad44b60a9c486c8c4486f9d2027ae" + [[package]] name = "maplit" version = "1.0.2" diff --git a/neon/native/src/server.rs b/neon/native/src/server.rs index 9662c2a90..3a603784d 100644 --- a/neon/native/src/server.rs +++ b/neon/native/src/server.rs @@ -14,18 +14,28 @@ // along with this program. If not, see <https://www.gnu.org/licenses/>. use crate::into_neon_res; -use dubp::common::crypto::keys::{ed25519::PublicKey, PublicKey as _}; -use dubp::documents::{ - prelude::*, - transaction::{TransactionDocumentV10, TransactionDocumentV10Stringified}, +use dubp::{ + common::{ + crypto::{ + hashs::Hash, + keys::{ + ed25519::{Ed25519KeyPair, PublicKey, Signature}, + PublicKey as _, Signature as _, + }, + }, + prelude::*, + }, + documents::{ + prelude::*, + transaction::{TransactionDocumentV10, TransactionDocumentV10Stringified}, + }, + documents_parser::prelude::*, }; -use dubp::documents_parser::prelude::*; -use dubp::{common::crypto::hashs::Hash, crypto::keys::ed25519::Ed25519KeyPair}; use duniter_server::{DuniterCoreConf, DuniterMode, DuniterServer}; use neon::declare_types; use neon::prelude::*; use serde::{Deserialize, Serialize}; -use std::path::PathBuf; +use std::{path::PathBuf, str::FromStr}; pub struct RustServer { server: DuniterServer, @@ -373,11 +383,11 @@ declare_types! { let peer = duniter_server::PeerCardDbV1 { version: peer_stringified.version, currency: peer_stringified.currency, - pubkey: peer_stringified.pubkey, - blockstamp: peer_stringified.blockstamp, + pubkey: into_neon_res(&mut cx, PublicKey::from_base58(&peer_stringified.pubkey))?, + blockstamp: into_neon_res(&mut cx, Blockstamp::from_str(&peer_stringified.blockstamp))?, endpoints: peer_stringified.endpoints, - status: peer_stringified.status, - signature: peer_stringified.signature, + status: &peer_stringified.status == "UP", + signature: into_neon_res(&mut cx, Signature::from_base64(&peer_stringified.signature))?, }; let this = cx.this(); @@ -395,11 +405,11 @@ declare_types! { let peer = duniter_server::PeerCardDbV1 { version: peer_stringified.version, currency: peer_stringified.currency, - pubkey: peer_stringified.pubkey, - blockstamp: peer_stringified.blockstamp, + pubkey: into_neon_res(&mut cx, PublicKey::from_base58(&peer_stringified.pubkey))?, + blockstamp: into_neon_res(&mut cx, Blockstamp::from_str(&peer_stringified.blockstamp))?, endpoints: peer_stringified.endpoints, - status: peer_stringified.status, - signature: peer_stringified.signature, + status: &peer_stringified.status == "UP", + signature: into_neon_res(&mut cx, Signature::from_base64(&peer_stringified.signature))?, }; let this = cx.this(); diff --git a/rust-libs/duniter-server/src/legacy/dunp.rs b/rust-libs/duniter-server/src/legacy/dunp.rs index ef720fd4e..59e9e54d6 100644 --- a/rust-libs/duniter-server/src/legacy/dunp.rs +++ b/rust-libs/duniter-server/src/legacy/dunp.rs @@ -64,23 +64,13 @@ impl DuniterServer { .expect("dbs pool disconnected") } pub fn save_peer(&self, new_peer_card: PeerCardDbV1) -> anyhow::Result<()> { - use dubp::crypto::keys::PublicKey as _; - let pubkey = PublicKey::from_base58(&new_peer_card.pubkey)?; + let pubkey = new_peer_card.pubkey; use duniter_core::dbs::databases::network_v1::NetworkV1DbWritable as _; self.dbs_pool .execute(move |dbs| { - dbs.dunp_db.peers_old_write().upsert( - PubKeyKeyV2(pubkey), - duniter_core::dbs::PeerCardDbV1 { - version: new_peer_card.version, - currency: new_peer_card.currency, - pubkey: new_peer_card.pubkey, - blockstamp: new_peer_card.blockstamp, - endpoints: new_peer_card.endpoints, - status: new_peer_card.status, - signature: new_peer_card.signature, - }, - ) + dbs.dunp_db + .peers_old_write() + .upsert(PubKeyKeyV2(pubkey), new_peer_card) }) .expect("dbs pool disconnected") .map_err(|e| e.into()) @@ -94,14 +84,14 @@ impl DuniterServer { #[cfg(test)] mod tests { + use super::*; use dubp::crypto::keys::{ ed25519::{PublicKey, Signature}, - PublicKey as _, + PublicKey as _, Signature as _, }; use duniter_core::dbs::databases::network_v1::NetworkV1DbReadable; use duniter_core::dbs::PeerCardDbV1; - - use super::*; + use std::str::FromStr; #[test] fn test_receive_new_heads() -> anyhow::Result<()> { @@ -140,13 +130,13 @@ mod tests { let peer = PeerCardDbV1 { version: 0, currency: "test".to_owned(), - pubkey: "82NdD9eEbXSjRJXeJdqf56xkpu6taTfTeEqtAtmtbyXY".to_owned(), - blockstamp: "379922-0000001D97770A8203062F9E618F29FFAA2EF4218649FCE6DD13E01C3932E943".to_owned(), + pubkey: PublicKey::from_base58("82NdD9eEbXSjRJXeJdqf56xkpu6taTfTeEqtAtmtbyXY")?, + blockstamp: Blockstamp::from_str("379922-0000001D97770A8203062F9E618F29FFAA2EF4218649FCE6DD13E01C3932E943")?, endpoints: vec![], - status: "UP".to_owned(), - signature: "KBaoJuKIfkWJO015BTegUN8l81VYPfleVUfQUwPRPAAF1oB398hDb1bX/QUFe+3CKFz57aGT8bB745mz90x5Ag==".to_owned(), + status: true, + signature: Signature::from_base64("KBaoJuKIfkWJO015BTegUN8l81VYPfleVUfQUwPRPAAF1oB398hDb1bX/QUFe+3CKFz57aGT8bB745mz90x5Ag==")?, }; - let pubkey = PublicKey::from_base58(&peer.pubkey)?; + let pubkey = peer.pubkey; assert_eq!(dbs.dunp_db.peers_old().count()?, 0); server.save_peer(peer.clone())?; -- GitLab From c494379b4aa44060aae3628763bfe59d69d94ddf Mon Sep 17 00:00:00 2001 From: librelois <c@elo.tf> Date: Fri, 14 May 2021 17:31:26 +0200 Subject: [PATCH 2/6] feat(peers): add field member for peers v1 --- Cargo.lock | 36 +++++++++---------- neon/native/server.d.ts | 1 + neon/native/src/server.rs | 39 +++++++++++---------- rust-libs/duniter-server/src/legacy/dunp.rs | 1 + 4 files changed, 41 insertions(+), 36 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index aad889c51..aeff2fb5f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -864,7 +864,7 @@ dependencies = [ [[package]] name = "dubp-wot" version = "0.11.0" -source = "git+https://git.duniter.org/nodes/rust/duniter-core#193a64f042500c7a0b327fc216db1773a904270c" +source = "git+https://git.duniter.org/nodes/rust/duniter-core#520d3893ec9bc3f4ca523af5de27933a0b0bd52d" dependencies = [ "log", "rayon", @@ -874,7 +874,7 @@ dependencies = [ [[package]] name = "duniter-bc-reader" version = "0.1.0" -source = "git+https://git.duniter.org/nodes/rust/duniter-core#193a64f042500c7a0b327fc216db1773a904270c" +source = "git+https://git.duniter.org/nodes/rust/duniter-core#520d3893ec9bc3f4ca523af5de27933a0b0bd52d" dependencies = [ "anyhow", "dubp", @@ -885,7 +885,7 @@ dependencies = [ [[package]] name = "duniter-bca" version = "0.1.0" -source = "git+https://git.duniter.org/nodes/rust/modules/duniter-gva#26602884a286a202c729b1a89a4e00c89152106a" +source = "git+https://git.duniter.org/nodes/rust/modules/duniter-gva#34836303e693149ffe11439e34cdb049d6a69b83" dependencies = [ "anyhow", "arrayvec", @@ -908,7 +908,7 @@ dependencies = [ [[package]] name = "duniter-bca-types" version = "0.1.0" -source = "git+https://git.duniter.org/nodes/rust/modules/duniter-gva#26602884a286a202c729b1a89a4e00c89152106a" +source = "git+https://git.duniter.org/nodes/rust/modules/duniter-gva#34836303e693149ffe11439e34cdb049d6a69b83" dependencies = [ "arrayvec", "bincode", @@ -940,7 +940,7 @@ dependencies = [ [[package]] name = "duniter-conf" version = "0.1.0" -source = "git+https://git.duniter.org/nodes/rust/duniter-core#193a64f042500c7a0b327fc216db1773a904270c" +source = "git+https://git.duniter.org/nodes/rust/duniter-core#520d3893ec9bc3f4ca523af5de27933a0b0bd52d" dependencies = [ "anyhow", "dubp", @@ -954,7 +954,7 @@ dependencies = [ [[package]] name = "duniter-core" version = "1.8.1" -source = "git+https://git.duniter.org/nodes/rust/duniter-core#193a64f042500c7a0b327fc216db1773a904270c" +source = "git+https://git.duniter.org/nodes/rust/duniter-core#520d3893ec9bc3f4ca523af5de27933a0b0bd52d" dependencies = [ "duniter-bc-reader", "duniter-conf", @@ -991,7 +991,7 @@ dependencies = [ [[package]] name = "duniter-dbs" version = "0.1.0" -source = "git+https://git.duniter.org/nodes/rust/duniter-core#193a64f042500c7a0b327fc216db1773a904270c" +source = "git+https://git.duniter.org/nodes/rust/duniter-core#520d3893ec9bc3f4ca523af5de27933a0b0bd52d" dependencies = [ "arrayvec", "bincode", @@ -1014,7 +1014,7 @@ dependencies = [ [[package]] name = "duniter-dbs-write-ops" version = "0.1.0" -source = "git+https://git.duniter.org/nodes/rust/duniter-core#193a64f042500c7a0b327fc216db1773a904270c" +source = "git+https://git.duniter.org/nodes/rust/duniter-core#520d3893ec9bc3f4ca523af5de27933a0b0bd52d" dependencies = [ "chrono", "dubp", @@ -1029,7 +1029,7 @@ dependencies = [ [[package]] name = "duniter-global" version = "1.8.1" -source = "git+https://git.duniter.org/nodes/rust/duniter-core#193a64f042500c7a0b327fc216db1773a904270c" +source = "git+https://git.duniter.org/nodes/rust/duniter-core#520d3893ec9bc3f4ca523af5de27933a0b0bd52d" dependencies = [ "async-rwlock", "dubp", @@ -1042,7 +1042,7 @@ dependencies = [ [[package]] name = "duniter-gva" version = "0.1.0" -source = "git+https://git.duniter.org/nodes/rust/modules/duniter-gva#26602884a286a202c729b1a89a4e00c89152106a" +source = "git+https://git.duniter.org/nodes/rust/modules/duniter-gva#34836303e693149ffe11439e34cdb049d6a69b83" dependencies = [ "anyhow", "arrayvec", @@ -1073,7 +1073,7 @@ dependencies = [ [[package]] name = "duniter-gva-conf" version = "0.1.0" -source = "git+https://git.duniter.org/nodes/rust/modules/duniter-gva#26602884a286a202c729b1a89a4e00c89152106a" +source = "git+https://git.duniter.org/nodes/rust/modules/duniter-gva#34836303e693149ffe11439e34cdb049d6a69b83" dependencies = [ "anyhow", "duniter-core", @@ -1085,7 +1085,7 @@ dependencies = [ [[package]] name = "duniter-gva-db" version = "0.1.0" -source = "git+https://git.duniter.org/nodes/rust/modules/duniter-gva#26602884a286a202c729b1a89a4e00c89152106a" +source = "git+https://git.duniter.org/nodes/rust/modules/duniter-gva#34836303e693149ffe11439e34cdb049d6a69b83" dependencies = [ "bincode", "chrono", @@ -1102,7 +1102,7 @@ dependencies = [ [[package]] name = "duniter-gva-dbs-reader" version = "0.1.0" -source = "git+https://git.duniter.org/nodes/rust/modules/duniter-gva#26602884a286a202c729b1a89a4e00c89152106a" +source = "git+https://git.duniter.org/nodes/rust/modules/duniter-gva#34836303e693149ffe11439e34cdb049d6a69b83" dependencies = [ "anyhow", "arrayvec", @@ -1116,7 +1116,7 @@ dependencies = [ [[package]] name = "duniter-gva-gql" version = "0.1.0" -source = "git+https://git.duniter.org/nodes/rust/modules/duniter-gva#26602884a286a202c729b1a89a4e00c89152106a" +source = "git+https://git.duniter.org/nodes/rust/modules/duniter-gva#34836303e693149ffe11439e34cdb049d6a69b83" dependencies = [ "anyhow", "arrayvec", @@ -1137,7 +1137,7 @@ dependencies = [ [[package]] name = "duniter-gva-indexer" version = "0.1.0" -source = "git+https://git.duniter.org/nodes/rust/modules/duniter-gva#26602884a286a202c729b1a89a4e00c89152106a" +source = "git+https://git.duniter.org/nodes/rust/modules/duniter-gva#34836303e693149ffe11439e34cdb049d6a69b83" dependencies = [ "anyhow", "bincode", @@ -1169,7 +1169,7 @@ dependencies = [ [[package]] name = "duniter-mempools" version = "0.1.0" -source = "git+https://git.duniter.org/nodes/rust/duniter-core#193a64f042500c7a0b327fc216db1773a904270c" +source = "git+https://git.duniter.org/nodes/rust/duniter-core#520d3893ec9bc3f4ca523af5de27933a0b0bd52d" dependencies = [ "dubp", "duniter-bc-reader", @@ -1182,7 +1182,7 @@ dependencies = [ [[package]] name = "duniter-module" version = "0.1.0" -source = "git+https://git.duniter.org/nodes/rust/duniter-core#193a64f042500c7a0b327fc216db1773a904270c" +source = "git+https://git.duniter.org/nodes/rust/duniter-core#520d3893ec9bc3f4ca523af5de27933a0b0bd52d" dependencies = [ "anyhow", "async-mutex", @@ -1813,7 +1813,7 @@ dependencies = [ [[package]] name = "kv_typed" version = "0.1.0" -source = "git+https://git.duniter.org/nodes/rust/duniter-core#193a64f042500c7a0b327fc216db1773a904270c" +source = "git+https://git.duniter.org/nodes/rust/duniter-core#520d3893ec9bc3f4ca523af5de27933a0b0bd52d" dependencies = [ "byteorder", "cfg-if 0.1.10", diff --git a/neon/native/server.d.ts b/neon/native/server.d.ts index 8e53fd2b9..763b49308 100644 --- a/neon/native/server.d.ts +++ b/neon/native/server.d.ts @@ -63,6 +63,7 @@ export class PeerCard { endpoints: string[] signature: string status: string + member: boolean } export class RustDbTx { diff --git a/neon/native/src/server.rs b/neon/native/src/server.rs index 3a603784d..ffabe4e94 100644 --- a/neon/native/src/server.rs +++ b/neon/native/src/server.rs @@ -380,15 +380,7 @@ declare_types! { let peer_js = cx.argument::<JsValue>(0)?; let peer_stringified: PeerCardStringified = neon_serde::from_value(&mut cx, peer_js)?; - let peer = duniter_server::PeerCardDbV1 { - version: peer_stringified.version, - currency: peer_stringified.currency, - pubkey: into_neon_res(&mut cx, PublicKey::from_base58(&peer_stringified.pubkey))?, - blockstamp: into_neon_res(&mut cx, Blockstamp::from_str(&peer_stringified.blockstamp))?, - endpoints: peer_stringified.endpoints, - status: &peer_stringified.status == "UP", - signature: into_neon_res(&mut cx, Signature::from_base64(&peer_stringified.signature))?, - }; + let peer = peer_stringified.into_peer_card_db_v1(&mut cx)?; let this = cx.this(); let res = { @@ -402,15 +394,7 @@ declare_types! { let peer_js = cx.argument::<JsValue>(0)?; let peer_stringified: PeerCardStringified = neon_serde::from_value(&mut cx, peer_js)?; - let peer = duniter_server::PeerCardDbV1 { - version: peer_stringified.version, - currency: peer_stringified.currency, - pubkey: into_neon_res(&mut cx, PublicKey::from_base58(&peer_stringified.pubkey))?, - blockstamp: into_neon_res(&mut cx, Blockstamp::from_str(&peer_stringified.blockstamp))?, - endpoints: peer_stringified.endpoints, - status: &peer_stringified.status == "UP", - signature: into_neon_res(&mut cx, Signature::from_base64(&peer_stringified.signature))?, - }; + let peer = peer_stringified.into_peer_card_db_v1(&mut cx)?; let this = cx.this(); { @@ -525,6 +509,25 @@ pub struct PeerCardStringified { pub endpoints: Vec<String>, pub status: String, pub signature: String, + pub member: bool, +} + +impl PeerCardStringified { + fn into_peer_card_db_v1<'c, C: Context<'c>>( + self, + cx: &mut C, + ) -> NeonResult<duniter_server::PeerCardDbV1> { + Ok(duniter_server::PeerCardDbV1 { + version: self.version, + currency: self.currency, + pubkey: into_neon_res(cx, PublicKey::from_base58(&self.pubkey))?, + blockstamp: into_neon_res(cx, Blockstamp::from_str(&self.blockstamp))?, + endpoints: self.endpoints, + status: &self.status == "UP", + signature: into_neon_res(cx, Signature::from_base64(&self.signature))?, + member: self.member, + }) + } } #[derive(Deserialize, Serialize)] diff --git a/rust-libs/duniter-server/src/legacy/dunp.rs b/rust-libs/duniter-server/src/legacy/dunp.rs index 59e9e54d6..637474d32 100644 --- a/rust-libs/duniter-server/src/legacy/dunp.rs +++ b/rust-libs/duniter-server/src/legacy/dunp.rs @@ -135,6 +135,7 @@ mod tests { endpoints: vec![], status: true, signature: Signature::from_base64("KBaoJuKIfkWJO015BTegUN8l81VYPfleVUfQUwPRPAAF1oB398hDb1bX/QUFe+3CKFz57aGT8bB745mz90x5Ag==")?, + member: false, }; let pubkey = peer.pubkey; -- GitLab From a8bccaac2811e7c8bb3681fb8f1685e11cb55756 Mon Sep 17 00:00:00 2001 From: librelois <c@elo.tf> Date: Fri, 14 May 2021 17:32:17 +0200 Subject: [PATCH 3/6] fix(peers): convert nonWoT to member bool --- app/lib/dto/PeerDTO.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/lib/dto/PeerDTO.ts b/app/lib/dto/PeerDTO.ts index 50c9b109c..8f5c14b4f 100644 --- a/app/lib/dto/PeerDTO.ts +++ b/app/lib/dto/PeerDTO.ts @@ -346,7 +346,7 @@ export class PeerDTO implements Cloneable { p.signature, p.status, p.statusTS, - false + !p.nonWoT ); } -- GitLab From 39bd571e57528267d2a1e354cb278ac42cfd3c0a Mon Sep 17 00:00:00 2001 From: librelois <c@elo.tf> Date: Fri, 14 May 2021 17:33:02 +0200 Subject: [PATCH 4/6] fix(peers): save peer in rust db when edit peer status --- app/lib/dal/fileDAL.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/lib/dal/fileDAL.ts b/app/lib/dal/fileDAL.ts index 83c77b46c..8f4848f77 100644 --- a/app/lib/dal/fileDAL.ts +++ b/app/lib/dal/fileDAL.ts @@ -1232,6 +1232,7 @@ export class FileDAL implements ServerDAO { p.status = "UP"; p.first_down = null; p.last_try = null; + this.rustServer.savePeer(PeerDTO.fromDBPeer(p)); return this.peerDAL.savePeer(p); } catch (err) { return null; @@ -1250,6 +1251,7 @@ export class FileDAL implements ServerDAO { p.first_down = now; } p.last_try = now; + this.rustServer.savePeer(PeerDTO.fromDBPeer(p)); await this.peerDAL.savePeer(p); } } -- GitLab From c306f371345ecdc75ae5b3a9bed56f87fb59f6a8 Mon Sep 17 00:00:00 2001 From: librelois <c@elo.tf> Date: Fri, 14 May 2021 21:56:16 +0200 Subject: [PATCH 5/6] build(cargo): add aliases to update core & gva --- .cargo/config | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.cargo/config b/.cargo/config index 1798a5f3a..ff955fe6d 100644 --- a/.cargo/config +++ b/.cargo/config @@ -5,4 +5,6 @@ cn = "check --manifest-path neon/native/Cargo.toml" dex = "run --release --package duniter-dbex --" ta = "test --all" rr = "run --release --" +uc = "update -p duniter-core" +ug = "update -p duniter-gva" xtask = "run --package xtask --" -- GitLab From b9713c68d2b14c28550a60146e645d13238b1d07 Mon Sep 17 00:00:00 2001 From: librelois <c@elo.tf> Date: Fri, 14 May 2021 21:56:45 +0200 Subject: [PATCH 6/6] =?UTF-8?q?deps:=C2=A0upgrade=20core=20&=20gva=20(dbs?= =?UTF-8?q?=20bincode=20conf=20change)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Cargo.lock | 61 ++++++++++++++++++++++++++++++------------------------ 1 file changed, 34 insertions(+), 27 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index aeff2fb5f..ecbe5dcd2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -60,6 +60,12 @@ name = "arrayvec" version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" + +[[package]] +name = "arrayvec" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a2f58b0bb10c380af2b26e57212856b8c9a59e0925b4c20f4a174a49734eaf7" dependencies = [ "serde", ] @@ -281,7 +287,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "afa748e348ad3be8263be728124b24a24f268266f6f5d58af9d75f6a40b5c587" dependencies = [ "arrayref", - "arrayvec", + "arrayvec 0.5.2", "constant_time_eq", ] @@ -292,7 +298,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e9ff35b701f3914bdb8fad3368d822c766ef2858b2583198e41639b936f09d3f" dependencies = [ "arrayref", - "arrayvec", + "arrayvec 0.5.2", "cc", "cfg-if 0.1.10", "constant_time_eq", @@ -864,7 +870,7 @@ dependencies = [ [[package]] name = "dubp-wot" version = "0.11.0" -source = "git+https://git.duniter.org/nodes/rust/duniter-core#520d3893ec9bc3f4ca523af5de27933a0b0bd52d" +source = "git+https://git.duniter.org/nodes/rust/duniter-core#4ce40a98dbc3cb3241e6d91817a8753a9be95ee8" dependencies = [ "log", "rayon", @@ -874,7 +880,7 @@ dependencies = [ [[package]] name = "duniter-bc-reader" version = "0.1.0" -source = "git+https://git.duniter.org/nodes/rust/duniter-core#520d3893ec9bc3f4ca523af5de27933a0b0bd52d" +source = "git+https://git.duniter.org/nodes/rust/duniter-core#4ce40a98dbc3cb3241e6d91817a8753a9be95ee8" dependencies = [ "anyhow", "dubp", @@ -885,10 +891,10 @@ dependencies = [ [[package]] name = "duniter-bca" version = "0.1.0" -source = "git+https://git.duniter.org/nodes/rust/modules/duniter-gva#34836303e693149ffe11439e34cdb049d6a69b83" +source = "git+https://git.duniter.org/nodes/rust/modules/duniter-gva#f8c5e0a0afdfeeedcc6bccc18f5c0e517169b892" dependencies = [ "anyhow", - "arrayvec", + "arrayvec 0.7.0", "async-bincode", "async_io_stream", "bincode", @@ -908,9 +914,9 @@ dependencies = [ [[package]] name = "duniter-bca-types" version = "0.1.0" -source = "git+https://git.duniter.org/nodes/rust/modules/duniter-gva#34836303e693149ffe11439e34cdb049d6a69b83" +source = "git+https://git.duniter.org/nodes/rust/modules/duniter-gva#f8c5e0a0afdfeeedcc6bccc18f5c0e517169b892" dependencies = [ - "arrayvec", + "arrayvec 0.7.0", "bincode", "dubp", "serde", @@ -940,7 +946,7 @@ dependencies = [ [[package]] name = "duniter-conf" version = "0.1.0" -source = "git+https://git.duniter.org/nodes/rust/duniter-core#520d3893ec9bc3f4ca523af5de27933a0b0bd52d" +source = "git+https://git.duniter.org/nodes/rust/duniter-core#4ce40a98dbc3cb3241e6d91817a8753a9be95ee8" dependencies = [ "anyhow", "dubp", @@ -954,7 +960,7 @@ dependencies = [ [[package]] name = "duniter-core" version = "1.8.1" -source = "git+https://git.duniter.org/nodes/rust/duniter-core#520d3893ec9bc3f4ca523af5de27933a0b0bd52d" +source = "git+https://git.duniter.org/nodes/rust/duniter-core#4ce40a98dbc3cb3241e6d91817a8753a9be95ee8" dependencies = [ "duniter-bc-reader", "duniter-conf", @@ -970,7 +976,7 @@ name = "duniter-dbex" version = "0.1.0" dependencies = [ "anyhow", - "arrayvec", + "arrayvec 0.5.2", "comfy-table", "dirs", "dubp", @@ -991,9 +997,9 @@ dependencies = [ [[package]] name = "duniter-dbs" version = "0.1.0" -source = "git+https://git.duniter.org/nodes/rust/duniter-core#520d3893ec9bc3f4ca523af5de27933a0b0bd52d" +source = "git+https://git.duniter.org/nodes/rust/duniter-core#4ce40a98dbc3cb3241e6d91817a8753a9be95ee8" dependencies = [ - "arrayvec", + "arrayvec 0.7.0", "bincode", "byteorder", "chrono", @@ -1014,7 +1020,7 @@ dependencies = [ [[package]] name = "duniter-dbs-write-ops" version = "0.1.0" -source = "git+https://git.duniter.org/nodes/rust/duniter-core#520d3893ec9bc3f4ca523af5de27933a0b0bd52d" +source = "git+https://git.duniter.org/nodes/rust/duniter-core#4ce40a98dbc3cb3241e6d91817a8753a9be95ee8" dependencies = [ "chrono", "dubp", @@ -1029,7 +1035,7 @@ dependencies = [ [[package]] name = "duniter-global" version = "1.8.1" -source = "git+https://git.duniter.org/nodes/rust/duniter-core#520d3893ec9bc3f4ca523af5de27933a0b0bd52d" +source = "git+https://git.duniter.org/nodes/rust/duniter-core#4ce40a98dbc3cb3241e6d91817a8753a9be95ee8" dependencies = [ "async-rwlock", "dubp", @@ -1042,10 +1048,10 @@ dependencies = [ [[package]] name = "duniter-gva" version = "0.1.0" -source = "git+https://git.duniter.org/nodes/rust/modules/duniter-gva#34836303e693149ffe11439e34cdb049d6a69b83" +source = "git+https://git.duniter.org/nodes/rust/modules/duniter-gva#f8c5e0a0afdfeeedcc6bccc18f5c0e517169b892" dependencies = [ "anyhow", - "arrayvec", + "arrayvec 0.7.0", "async-graphql", "async-mutex", "async-trait", @@ -1073,7 +1079,7 @@ dependencies = [ [[package]] name = "duniter-gva-conf" version = "0.1.0" -source = "git+https://git.duniter.org/nodes/rust/modules/duniter-gva#34836303e693149ffe11439e34cdb049d6a69b83" +source = "git+https://git.duniter.org/nodes/rust/modules/duniter-gva#f8c5e0a0afdfeeedcc6bccc18f5c0e517169b892" dependencies = [ "anyhow", "duniter-core", @@ -1085,7 +1091,7 @@ dependencies = [ [[package]] name = "duniter-gva-db" version = "0.1.0" -source = "git+https://git.duniter.org/nodes/rust/modules/duniter-gva#34836303e693149ffe11439e34cdb049d6a69b83" +source = "git+https://git.duniter.org/nodes/rust/modules/duniter-gva#f8c5e0a0afdfeeedcc6bccc18f5c0e517169b892" dependencies = [ "bincode", "chrono", @@ -1102,10 +1108,10 @@ dependencies = [ [[package]] name = "duniter-gva-dbs-reader" version = "0.1.0" -source = "git+https://git.duniter.org/nodes/rust/modules/duniter-gva#34836303e693149ffe11439e34cdb049d6a69b83" +source = "git+https://git.duniter.org/nodes/rust/modules/duniter-gva#f8c5e0a0afdfeeedcc6bccc18f5c0e517169b892" dependencies = [ "anyhow", - "arrayvec", + "arrayvec 0.7.0", "dubp", "duniter-bca-types", "duniter-core", @@ -1116,13 +1122,14 @@ dependencies = [ [[package]] name = "duniter-gva-gql" version = "0.1.0" -source = "git+https://git.duniter.org/nodes/rust/modules/duniter-gva#34836303e693149ffe11439e34cdb049d6a69b83" +source = "git+https://git.duniter.org/nodes/rust/modules/duniter-gva#f8c5e0a0afdfeeedcc6bccc18f5c0e517169b892" dependencies = [ "anyhow", - "arrayvec", + "arrayvec 0.7.0", "async-graphql", "async-trait", "dubp", + "duniter-bca-types", "duniter-core", "duniter-gva-db", "duniter-gva-dbs-reader", @@ -1137,7 +1144,7 @@ dependencies = [ [[package]] name = "duniter-gva-indexer" version = "0.1.0" -source = "git+https://git.duniter.org/nodes/rust/modules/duniter-gva#34836303e693149ffe11439e34cdb049d6a69b83" +source = "git+https://git.duniter.org/nodes/rust/modules/duniter-gva#f8c5e0a0afdfeeedcc6bccc18f5c0e517169b892" dependencies = [ "anyhow", "bincode", @@ -1169,7 +1176,7 @@ dependencies = [ [[package]] name = "duniter-mempools" version = "0.1.0" -source = "git+https://git.duniter.org/nodes/rust/duniter-core#520d3893ec9bc3f4ca523af5de27933a0b0bd52d" +source = "git+https://git.duniter.org/nodes/rust/duniter-core#4ce40a98dbc3cb3241e6d91817a8753a9be95ee8" dependencies = [ "dubp", "duniter-bc-reader", @@ -1182,7 +1189,7 @@ dependencies = [ [[package]] name = "duniter-module" version = "0.1.0" -source = "git+https://git.duniter.org/nodes/rust/duniter-core#520d3893ec9bc3f4ca523af5de27933a0b0bd52d" +source = "git+https://git.duniter.org/nodes/rust/duniter-core#4ce40a98dbc3cb3241e6d91817a8753a9be95ee8" dependencies = [ "anyhow", "async-mutex", @@ -1813,7 +1820,7 @@ dependencies = [ [[package]] name = "kv_typed" version = "0.1.0" -source = "git+https://git.duniter.org/nodes/rust/duniter-core#520d3893ec9bc3f4ca523af5de27933a0b0bd52d" +source = "git+https://git.duniter.org/nodes/rust/duniter-core#4ce40a98dbc3cb3241e6d91817a8753a9be95ee8" dependencies = [ "byteorder", "cfg-if 0.1.10", -- GitLab