commit 574f10c0f5032cf2cd0b607271a0e1e4d5a1335e
parent e83e3ac4f0994c4e052b2578ffa6d04b11d4c722
Author: Antoine A <>
Date: Wed, 9 Jul 2025 14:10:18 +0200
common: update common libs
Diffstat:
6 files changed, 19 insertions(+), 33 deletions(-)
diff --git a/Cargo.lock b/Cargo.lock
@@ -2661,6 +2661,7 @@ dependencies = [
[[package]]
name = "taler-api"
version = "0.0.0"
+source = "git+https://git.taler.net/taler-rust.git/#85f6f177780ebc84dcb96dda59c3f9c20ed5ede4"
dependencies = [
"axum",
"base64",
@@ -2683,6 +2684,7 @@ dependencies = [
[[package]]
name = "taler-common"
version = "0.0.0"
+source = "git+https://git.taler.net/taler-rust.git/#85f6f177780ebc84dcb96dda59c3f9c20ed5ede4"
dependencies = [
"anyhow",
"clap",
@@ -2707,6 +2709,7 @@ dependencies = [
[[package]]
name = "taler-test-utils"
version = "0.0.0"
+source = "git+https://git.taler.net/taler-rust.git/#85f6f177780ebc84dcb96dda59c3f9c20ed5ede4"
dependencies = [
"axum",
"http-body-util",
diff --git a/Cargo.toml b/Cargo.toml
@@ -25,9 +25,9 @@ sqlx = { version = "0.8", features = [
"time",
], default-features = false }
url = { version = "2.2", features = ["serde"] }
-taler-common = { path = "../taler-rust/common/taler-common" }
-taler-api = { path = "../taler-rust/common/taler-api" }
-taler-test-utils = { path = "../taler-rust/common/taler-test-utils" }
+taler-common = { git = "https://git.taler.net/taler-rust.git/" }
+taler-api = { git = "https://git.taler.net/taler-rust.git/" }
+taler-test-utils = { git = "https://git.taler.net/taler-rust.git/" }
bitcoin = { version = "0.32.5", features = [
"std",
"serde",
@@ -38,4 +38,4 @@ anyhow = "1"
tracing = "0.1"
criterion = "0.6"
base64 = "0.22.1"
-rand = { version = "0.9.0" }
-\ No newline at end of file
+rand = { version = "0.9.0" }
diff --git a/common/src/lib.rs b/common/src/lib.rs
@@ -15,7 +15,6 @@
*/
use rand::{RngCore as _, rngs::ThreadRng};
pub use taler_common;
-use taler_common::ExpoBackoffDecorr;
pub use url;
pub mod metadata;
@@ -27,8 +26,3 @@ pub fn rand_slice<const N: usize>() -> [u8; N] {
ThreadRng::default().fill_bytes(&mut slice);
slice
}
-
-/// Default jitter config
-pub fn jitter() -> ExpoBackoffDecorr {
- ExpoBackoffDecorr::new(200, 15 * 1000, 2.0)
-}
diff --git a/depolymerizer-bitcoin/src/api.rs b/depolymerizer-bitcoin/src/api.rs
@@ -14,12 +14,9 @@
TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
*/
-use std::{
- sync::{
- Arc,
- atomic::{AtomicBool, Ordering},
- },
- time::Duration,
+use std::sync::{
+ Arc,
+ atomic::{AtomicBool, Ordering},
};
use axum::{
@@ -29,7 +26,6 @@ use axum::{
response::{IntoResponse as _, Response},
};
use bitcoin::address::NetworkUnchecked;
-use common::jitter;
use sqlx::{
PgPool, QueryBuilder, Row,
postgres::{PgListener, PgRow},
@@ -384,7 +380,7 @@ pub async fn status_middleware(
/// Listen to backend status change
async fn status_watcher(state: Arc<ServerState>) {
- let mut jitter = jitter();
+ let mut jitter = ExpoBackoffDecorr::default();
async fn inner(
state: &ServerState,
jitter: &mut ExpoBackoffDecorr,
@@ -408,8 +404,7 @@ async fn status_watcher(state: Arc<ServerState>) {
loop {
if let Err(err) = inner(&state, &mut jitter).await {
error!("status-watcher: {}", err);
- // TODO better sleep
- sleep(Duration::from_secs(jitter.next() as u64)).await;
+ sleep(jitter.next()).await;
}
}
}
diff --git a/depolymerizer-bitcoin/src/loops/watcher.rs b/depolymerizer-bitcoin/src/loops/watcher.rs
@@ -14,10 +14,9 @@
TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
*/
-use common::jitter;
use depolymerizer_bitcoin::{config::RpcCfg, rpc::rpc_common};
use sqlx::PgPool;
-use std::time::Duration;
+use taler_common::ExpoBackoffDecorr;
use tokio::time::sleep;
use tracing::error;
@@ -25,7 +24,7 @@ use super::LoopResult;
/// Wait for new block and notify arrival with postgreSQL notifications
pub async fn watcher(rpc_cfg: RpcCfg, pool: PgPool) {
- let mut jitter = jitter();
+ let mut jitter = ExpoBackoffDecorr::default();
loop {
let result: LoopResult<()> = async {
let mut rpc = rpc_common(&rpc_cfg).await?;
@@ -38,7 +37,7 @@ pub async fn watcher(rpc_cfg: RpcCfg, pool: PgPool) {
.await;
if let Err(e) = result {
error!("watcher: {e}");
- sleep(Duration::from_millis(jitter.next() as u64)).await;
+ sleep(jitter.next()).await;
}
}
}
diff --git a/depolymerizer-bitcoin/src/loops/worker.rs b/depolymerizer-bitcoin/src/loops/worker.rs
@@ -13,15 +13,10 @@
You should have received a copy of the GNU Affero General Public License along with
TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
*/
-use std::{
- collections::HashMap,
- fmt::Write,
- time::{Duration, SystemTime},
-};
+use std::{collections::HashMap, fmt::Write, time::SystemTime};
use bitcoin::{Amount as BtcAmount, BlockHash, Txid, hashes::Hash};
use common::{
- jitter,
metadata::OutMetadata,
status::{BounceStatus, DebitStatus},
taler_common::{api_common::ShortHashCode, types::timestamp::Timestamp},
@@ -34,6 +29,7 @@ use depolymerizer_bitcoin::{
};
use sqlx::{PgPool, Row, postgres::PgListener};
use taler_api::db::{BindHelper as _, TypeHelper};
+use taler_common::ExpoBackoffDecorr;
use tokio::time::sleep;
use tracing::{error, info, warn};
@@ -47,7 +43,7 @@ use super::{LoopError, LoopResult, analysis::analysis};
/// Synchronize local db with blockchain and perform transactions
pub async fn worker(mut state: WorkerCfg, pool: PgPool) {
- let mut jitter = jitter();
+ let mut jitter = ExpoBackoffDecorr::default();
let mut lifetime = state.lifetime;
let mut status = true;
let mut skip_notification = true;
@@ -146,7 +142,7 @@ pub async fn worker(mut state: WorkerCfg, pool: PgPool) {
| LoopError::DB(_)
| LoopError::Injected(_)
);
- sleep(Duration::from_millis(jitter.next() as u64)).await;
+ sleep(jitter.next()).await;
} else {
return;
}