Skip to content
Snippets Groups Projects
Commit 1b3c67f4 authored by Éloïs's avatar Éloïs
Browse files

chore: rename bca->bda & externalize bda-types

parent dc22ce63
Branches
No related tags found
No related merge requests found
Pipeline #12503 passed
...@@ -17,13 +17,13 @@ mock = ["mockall"] ...@@ -17,13 +17,13 @@ mock = ["mockall"]
[dependencies] [dependencies]
anyhow = "1.0.34" anyhow = "1.0.34"
arrayvec = { version = "0.7", features = ["serde"] } arrayvec = { version = "0.7", features = ["serde"] }
duniter-bca-types = { path = "../bca/types" }
duniter-core = { git = "https://git.duniter.org/nodes/rust/duniter-core" } duniter-core = { git = "https://git.duniter.org/nodes/rust/duniter-core" }
duniter-gva-db = { path = "../db" } duniter-gva-db = { path = "../db" }
dubp = { version = "0.54.1", features = ["duniter"] } dubp = { version = "0.55.1", features = ["duniter"] }
flate2 = { version = "1.0", features = ["zlib-ng-compat"], default-features = false } flate2 = { version = "1.0", features = ["zlib-ng-compat"], default-features = false }
mockall = { version = "0.9.1", optional = true } mockall = { version = "0.9.1", optional = true }
resiter = "0.4.0" resiter = "0.4.0"
rand = "0.8"
[dev-dependencies] [dev-dependencies]
duniter-core = { git = "https://git.duniter.org/nodes/rust/duniter-core", features = ["mem"] } duniter-core = { git = "https://git.duniter.org/nodes/rust/duniter-core", features = ["mem"] }
......
...@@ -34,15 +34,15 @@ pub mod uds_of_pubkey; ...@@ -34,15 +34,15 @@ pub mod uds_of_pubkey;
pub mod utxos; pub mod utxos;
pub use crate::pagination::{PageInfo, PagedData}; pub use crate::pagination::{PageInfo, PagedData};
pub use duniter_bca_types::MAX_FIRST_UTXOS; pub use dubp::bda_types::MAX_FIRST_UTXOS;
use crate::pagination::{has_next_page, has_previous_page}; use crate::pagination::{has_next_page, has_previous_page};
use arrayvec::ArrayVec; use arrayvec::ArrayVec;
use dubp::bda_types::utxo::Utxo;
use dubp::common::crypto::keys::ed25519::PublicKey; use dubp::common::crypto::keys::ed25519::PublicKey;
use dubp::documents::transaction::TransactionDocumentV10; use dubp::documents::transaction::TransactionDocumentV10;
use dubp::{block::DubpBlockV10, common::crypto::hashs::Hash}; use dubp::{block::DubpBlockV10, common::crypto::hashs::Hash};
use dubp::{common::prelude::BlockNumber, wallet::prelude::*}; use dubp::{common::prelude::BlockNumber, wallet::prelude::*};
use duniter_bca_types::utxo::Utxo;
use duniter_core::dbs::{databases::network_v1::NetworkV1DbReadable, FileBackend}; use duniter_core::dbs::{databases::network_v1::NetworkV1DbReadable, FileBackend};
use duniter_core::dbs::{ use duniter_core::dbs::{
databases::{ databases::{
...@@ -56,6 +56,7 @@ use duniter_core::dbs::{ ...@@ -56,6 +56,7 @@ use duniter_core::dbs::{
kv_typed::prelude::*, HashKeyV2, PubKeyKeyV2, SourceAmountValV2, UtxoIdDbV2, kv_typed::prelude::*, HashKeyV2, PubKeyKeyV2, SourceAmountValV2, UtxoIdDbV2,
}; };
use duniter_gva_db::{GvaIdtyDbV1, GvaTxDbV1, GvaUtxoIdDbV1, GvaV1DbReadable, GvaV1DbRo}; use duniter_gva_db::{GvaIdtyDbV1, GvaTxDbV1, GvaUtxoIdDbV1, GvaV1DbReadable, GvaV1DbRo};
use rand::seq::SliceRandom;
use resiter::filter::Filter; use resiter::filter::Filter;
use resiter::filter_map::FilterMap; use resiter::filter_map::FilterMap;
use resiter::flatten::Flatten; use resiter::flatten::Flatten;
...@@ -134,6 +135,11 @@ pub trait DbsReader { ...@@ -134,6 +135,11 @@ pub trait DbsReader {
bc_db: &BcDb, bc_db: &BcDb,
current_block_meta: &BlockMetaV2, current_block_meta: &BlockMetaV2,
) -> anyhow::Result<Vec<BlockMetaV2>>; ) -> anyhow::Result<Vec<BlockMetaV2>>;
fn get_some_peers<DB: 'static + NetworkV1DbReadable>(
&self,
dunp_db: &DB,
n: usize,
) -> KvResult<Vec<duniter_core::dbs::PeerCardDbV1>>;
fn get_txs_history_bc_received( fn get_txs_history_bc_received(
&self, &self,
from: Option<u64>, from: Option<u64>,
...@@ -281,6 +287,14 @@ impl DbsReader for DbsReaderImpl { ...@@ -281,6 +287,14 @@ impl DbsReader for DbsReaderImpl {
self.get_current_frame_(bc_db, current_block_meta) self.get_current_frame_(bc_db, current_block_meta)
} }
fn get_some_peers<DB: 'static + NetworkV1DbReadable>(
&self,
dunp_db: &DB,
n: usize,
) -> KvResult<Vec<duniter_core::dbs::PeerCardDbV1>> {
self.get_some_peers_(dunp_db, n)
}
fn get_txs_history_bc_received( fn get_txs_history_bc_received(
&self, &self,
from: Option<u64>, from: Option<u64>,
......
...@@ -31,8 +31,8 @@ impl DbsReaderImpl { ...@@ -31,8 +31,8 @@ impl DbsReaderImpl {
} }
network_db.peers_old().iter(.., |it| { network_db.peers_old().iter(.., |it| {
it.values() it.values()
.map_ok(|peer| { .map_ok(|peer_db| {
peer.endpoints.into_iter().filter(|endpoint| { peer_db.peer.endpoints.into_iter().filter(|endpoint| {
api_list api_list
.iter() .iter()
.any(|api| endpoint.starts_with(api.as_str())) .any(|api| endpoint.starts_with(api.as_str()))
...@@ -42,6 +42,24 @@ impl DbsReaderImpl { ...@@ -42,6 +42,24 @@ impl DbsReaderImpl {
.collect::<Result<Vec<String>, _>>() .collect::<Result<Vec<String>, _>>()
}) })
} }
pub(super) fn get_some_peers_<DB: NetworkV1DbReadable>(
&self,
dunp_db: &DB,
n: usize,
) -> KvResult<Vec<PeerCardDbV1>> {
let peers: Vec<PeerCardDbV1> = dunp_db
.peers_old()
.iter(.., |it| it.values().collect::<KvResult<_>>())?;
if n == 0 {
Ok(peers)
} else {
Ok(peers
.choose_multiple(&mut rand::thread_rng(), n)
.cloned()
.collect())
}
}
pub(super) fn peers_and_heads_<DB: NetworkV1DbReadable>( pub(super) fn peers_and_heads_<DB: NetworkV1DbReadable>(
&self, &self,
dunp_db: &DB, dunp_db: &DB,
...@@ -49,11 +67,12 @@ impl DbsReaderImpl { ...@@ -49,11 +67,12 @@ impl DbsReaderImpl {
Ok(dunp_db.peers_old().iter(.., |it| { Ok(dunp_db.peers_old().iter(.., |it| {
it.values() it.values()
.filter_map(|peer_res| { .filter_map(|peer_res| {
if let Ok(peer) = peer_res { if let Ok(peer_db) = peer_res {
let k_min = duniter_core::dbs::DunpNodeIdV1Db::new(0, peer.pubkey); let k_min = duniter_core::dbs::DunpNodeIdV1Db::new(0, peer_db.peer.pubkey);
let k_max = duniter_core::dbs::DunpNodeIdV1Db::new(u32::MAX, peer.pubkey); let k_max =
duniter_core::dbs::DunpNodeIdV1Db::new(u32::MAX, peer_db.peer.pubkey);
Some(( Some((
peer, peer_db,
dunp_db.heads_old().iter(k_min..k_max, |it| { dunp_db.heads_old().iter(k_min..k_max, |it| {
it.values().filter_map(|head| head.ok()).collect() it.values().filter_map(|head| head.ok()).collect()
}), }),
...@@ -70,9 +89,10 @@ impl DbsReaderImpl { ...@@ -70,9 +89,10 @@ impl DbsReaderImpl {
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use super::*; use super::*;
use dubp::crypto::keys::PublicKey as _; use dubp::{crypto::keys::PublicKey as _, peer::PeerV10};
use duniter_core::dbs::databases::network_v1::NetworkV1DbWritable; use duniter_core::dbs::databases::network_v1::NetworkV1DbWritable;
use duniter_core::dbs::PeerCardDbV1; use duniter_core::dbs::PeerCardDbV1;
use smallvec::smallvec;
#[test] #[test]
fn test_empty_endpoints() -> KvResult<()> { fn test_empty_endpoints() -> KvResult<()> {
...@@ -105,7 +125,10 @@ mod tests { ...@@ -105,7 +125,10 @@ mod tests {
let db_reader = DbsReaderImpl::mem(); let db_reader = DbsReaderImpl::mem();
let pk = PublicKey::default(); let pk = PublicKey::default();
let peer = PeerCardDbV1 { let peer = PeerCardDbV1 {
endpoints: vec![dummy_endpoint.to_owned()], peer: PeerV10 {
endpoints: smallvec![dummy_endpoint.to_owned()],
..Default::default()
},
..Default::default() ..Default::default()
}; };
...@@ -130,7 +153,10 @@ mod tests { ...@@ -130,7 +153,10 @@ mod tests {
let db_reader = DbsReaderImpl::mem(); let db_reader = DbsReaderImpl::mem();
let pk = PublicKey::default(); let pk = PublicKey::default();
let peer = PeerCardDbV1 { let peer = PeerCardDbV1 {
endpoints: vec![dummy_endpoint.to_owned()], peer: PeerV10 {
endpoints: smallvec![dummy_endpoint.to_owned()],
..Default::default()
},
..Default::default() ..Default::default()
}; };
...@@ -156,9 +182,12 @@ mod tests { ...@@ -156,9 +182,12 @@ mod tests {
dunp_db.peers_old_write().upsert( dunp_db.peers_old_write().upsert(
PubKeyKeyV2(pubkey), PubKeyKeyV2(pubkey),
PeerCardDbV1 { PeerCardDbV1 {
peer: PeerV10 {
pubkey, pubkey,
..Default::default() ..Default::default()
}, },
..Default::default()
},
)?; )?;
dunp_db.heads_old_write().upsert( dunp_db.heads_old_write().upsert(
duniter_core::dbs::DunpNodeIdV1Db::new(42, pubkey), duniter_core::dbs::DunpNodeIdV1Db::new(42, pubkey),
...@@ -177,9 +206,12 @@ mod tests { ...@@ -177,9 +206,12 @@ mod tests {
db_reader.peers_and_heads(&dunp_db)?, db_reader.peers_and_heads(&dunp_db)?,
vec![( vec![(
PeerCardDbV1 { PeerCardDbV1 {
peer: PeerV10 {
pubkey, pubkey,
..Default::default() ..Default::default()
}, },
..Default::default()
},
vec![ vec![
DunpHeadDbV1::default(), DunpHeadDbV1::default(),
DunpHeadDbV1 { DunpHeadDbV1 {
......
...@@ -10,8 +10,7 @@ anyhow = "1.0.33" ...@@ -10,8 +10,7 @@ anyhow = "1.0.33"
arrayvec = { version = "0.7", features = ["serde"] } arrayvec = { version = "0.7", features = ["serde"] }
async-graphql = { version = "2.8", features = ["log"] } async-graphql = { version = "2.8", features = ["log"] }
async-trait = "0.1.41" async-trait = "0.1.41"
dubp = { version = "0.54.1", features = ["duniter"] } dubp = { version = "0.55.1", features = ["duniter"] }
duniter-bca-types = { path = "../bca/types" }
duniter-core = { git = "https://git.duniter.org/nodes/rust/duniter-core" } duniter-core = { git = "https://git.duniter.org/nodes/rust/duniter-core" }
duniter-gva-db = { path = "../db" } duniter-gva-db = { path = "../db" }
duniter-gva-dbs-reader = { path = "../dbs-reader" } duniter-gva-dbs-reader = { path = "../dbs-reader" }
......
...@@ -28,16 +28,16 @@ pub struct PeerCardGva { ...@@ -28,16 +28,16 @@ pub struct PeerCardGva {
pub member: bool, pub member: bool,
} }
impl From<duniter_core::dbs::PeerCardDbV1> for PeerCardGva { impl From<duniter_core::dbs::PeerCardDbV1> for PeerCardGva {
fn from(peer: duniter_core::dbs::PeerCardDbV1) -> Self { fn from(peer_db: duniter_core::dbs::PeerCardDbV1) -> Self {
Self { Self {
version: peer.version, version: 10,
currency: peer.currency, currency: peer_db.peer.currency,
pubkey: peer.pubkey.to_base58(), pubkey: peer_db.peer.pubkey.to_base58(),
blockstamp: peer.blockstamp.to_string(), blockstamp: peer_db.peer.blockstamp.to_string(),
endpoints: peer.endpoints, endpoints: peer_db.peer.endpoints.to_vec(),
status: if peer.status { "UP" } else { "DOWN" }.to_owned(), status: if peer_db.status { "UP" } else { "DOWN" }.to_owned(),
signature: peer.signature.to_base64(), signature: peer_db.peer.signature.to_base64(),
member: peer.member, member: peer_db.member,
} }
} }
} }
......
...@@ -54,6 +54,7 @@ use crate::tests::AsyncAccessor; ...@@ -54,6 +54,7 @@ use crate::tests::AsyncAccessor;
use crate::tests::DbsReaderImpl; use crate::tests::DbsReaderImpl;
use async_graphql::connection::{Connection, Edge, EmptyFields}; use async_graphql::connection::{Connection, Edge, EmptyFields};
use async_graphql::validators::{IntGreaterThan, IntRange, ListMaxLength, ListMinLength}; use async_graphql::validators::{IntGreaterThan, IntRange, ListMaxLength, ListMinLength};
use dubp::bda_types::MAX_FIRST_UTXOS;
use dubp::common::crypto::keys::{ed25519::PublicKey, PublicKey as _}; use dubp::common::crypto::keys::{ed25519::PublicKey, PublicKey as _};
use dubp::common::prelude::*; use dubp::common::prelude::*;
use dubp::crypto::hashs::Hash; use dubp::crypto::hashs::Hash;
...@@ -61,7 +62,6 @@ use dubp::documents::prelude::*; ...@@ -61,7 +62,6 @@ use dubp::documents::prelude::*;
use dubp::documents::transaction::{TransactionDocumentTrait, TransactionDocumentV10}; use dubp::documents::transaction::{TransactionDocumentTrait, TransactionDocumentV10};
use dubp::documents_parser::prelude::*; use dubp::documents_parser::prelude::*;
use dubp::wallet::prelude::*; use dubp::wallet::prelude::*;
use duniter_bca_types::MAX_FIRST_UTXOS;
use duniter_core::dbs::databases::txs_mp_v2::TxsMpV2DbReadable; use duniter_core::dbs::databases::txs_mp_v2::TxsMpV2DbReadable;
use duniter_core::dbs::prelude::*; use duniter_core::dbs::prelude::*;
use duniter_core::dbs::{kv_typed::prelude::*, FileBackend}; use duniter_core::dbs::{kv_typed::prelude::*, FileBackend};
......
...@@ -17,7 +17,7 @@ bincode = "1.3" ...@@ -17,7 +17,7 @@ bincode = "1.3"
duniter-core = { git = "https://git.duniter.org/nodes/rust/duniter-core" } duniter-core = { git = "https://git.duniter.org/nodes/rust/duniter-core" }
duniter-gva-db = { path = "../db" } duniter-gva-db = { path = "../db" }
duniter-gva-dbs-reader = { path = "../dbs-reader" } duniter-gva-dbs-reader = { path = "../dbs-reader" }
dubp = { version = "0.54.1", features = ["duniter"] } dubp = { version = "0.55.1", features = ["duniter"] }
flate2 = { version = "1.0", features = ["zlib-ng-compat"], default-features = false } flate2 = { version = "1.0", features = ["zlib-ng-compat"], default-features = false }
log = "0.4" log = "0.4"
once_cell = "1.7" once_cell = "1.7"
......
...@@ -243,9 +243,9 @@ impl GvaModule { ...@@ -243,9 +243,9 @@ impl GvaModule {
) { ) {
log::info!("GvaServer::start: conf={:?}", conf); log::info!("GvaServer::start: conf={:?}", conf);
// Create BcaExecutor and GvaSchema // Create BdaExecutor and GvaSchema
let self_pubkey = self_keypair.public_key(); let self_pubkey = self_keypair.public_key();
duniter_bca::set_bca_executor( duniter_bda::set_bda_executor(
currency.clone(), currency.clone(),
AsyncAccessor::new(), AsyncAccessor::new(),
dbs_pool.clone(), dbs_pool.clone(),
......
...@@ -228,7 +228,7 @@ async fn process_bincode_batch_queries( ...@@ -228,7 +228,7 @@ async fn process_bincode_batch_queries(
is_whitelisted: bool, is_whitelisted: bool,
) -> Result<ServerResponse, warp::Rejection> { ) -> Result<ServerResponse, warp::Rejection> {
Ok(ServerResponse::Bincode( Ok(ServerResponse::Bincode(
duniter_bca::execute(body_reader, is_whitelisted).await, duniter_bda::execute(body_reader, is_whitelisted).await,
)) ))
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment