iuna

iuna - experimental devnet protocol
git clone https://iuna.jhx.app/git/iuna.git
Log | Files | Refs | README | LICENSE

commit 43044bbba40e6075b9eb5ace2e3545a211de1ce7
parent 077241db423715c64a608534926c520c4c75ca76
Author: Joris Hartog <jorishartog@hotmail.com>
Date:   Mon, 10 Aug 2026 21:58:10 +0200

Release v0.2.42

Diffstat:
MCargo.lock | 2+-
MCargo.toml | 2+-
Msrc-tauri/Cargo.lock | 2+-
Msrc-tauri/Cargo.toml | 2+-
Msrc-tauri/tauri.conf.json | 2+-
Msrc/domain.rs | 14+++++++++-----
6 files changed, 14 insertions(+), 10 deletions(-)

diff --git a/Cargo.lock b/Cargo.lock @@ -537,7 +537,7 @@ checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" [[package]] name = "iuna" -version = "0.2.41" +version = "0.2.42" dependencies = [ "anyhow", "axum", diff --git a/Cargo.toml b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "iuna" -version = "0.2.41" +version = "0.2.42" edition = "2024" license = "Apache-2.0" diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock @@ -1511,7 +1511,7 @@ checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" [[package]] name = "iuna-desktop" -version = "0.2.40" +version = "0.2.42" dependencies = [ "tauri", "tauri-build", diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "iuna-desktop" -version = "0.2.40" +version = "0.2.42" edition = "2024" publish = false diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json @@ -1,7 +1,7 @@ { "$schema": "https://schema.tauri.app/config/2", "productName": "iuna", - "version": "0.2.40", + "version": "0.2.42", "identifier": "labs.iuna.desktop", "build": { "beforeDevCommand": "", diff --git a/src/domain.rs b/src/domain.rs @@ -29,6 +29,7 @@ pub const MINE_DIFFICULTY_BITS: u32 = 12; pub const MINE_ACTIONS_PER_ANCHOR_LIMIT: usize = 2; pub const MINE_ACTIONS_PER_ANCHOR_LIMIT_ACTIVATION_HEIGHT: u64 = 200; pub const FALLBACK_VDF_RETARGET_ACTIVATION_HEIGHT: u64 = 380; +pub const FALLBACK_VDF_RETARGET_DEACTIVATION_HEIGHT: u64 = 1_000; pub const AGGREGATE_FINALIZER_FEE_ACTIVATION_HEIGHT: u64 = 795; pub const MAX_BLINDED_TRANSACTION_EXPIRY_HEIGHTS: u64 = 20; pub const REVEAL_COMMITTEE_SIZE: usize = 3; @@ -6068,7 +6069,10 @@ fn vdf_retarget_observed_block_ms(parent: &Block, child: &Block) -> Option<u64> if child.finalizer_mode != FinalizerMode::Ticket { return None; } - if child.finalizer_rank != 0 && child.height < FALLBACK_VDF_RETARGET_ACTIVATION_HEIGHT { + if child.finalizer_rank != 0 + && (child.height < FALLBACK_VDF_RETARGET_ACTIVATION_HEIGHT + || child.height >= FALLBACK_VDF_RETARGET_DEACTIVATION_HEIGHT) + { return None; } @@ -6879,7 +6883,7 @@ mod tests { } #[test] - fn vdf_retarget_observed_block_time_includes_ticket_fallback_ranks_after_activation() { + fn vdf_retarget_observed_block_time_includes_historical_ticket_fallback_ranks() { let parent = vdf_retarget_sample_block(0, FinalizerMode::Ticket, 0); let primary_child = vdf_retarget_sample_block(VDF_TARGET_BLOCK_MS, FinalizerMode::Ticket, 0); @@ -6888,7 +6892,7 @@ mod tests { rank_one_child.height = FALLBACK_VDF_RETARGET_ACTIVATION_HEIGHT; let mut rank_two_child = vdf_retarget_sample_block(VDF_TARGET_BLOCK_MS * 4, FinalizerMode::Ticket, 2); - rank_two_child.height = FALLBACK_VDF_RETARGET_ACTIVATION_HEIGHT + 1; + rank_two_child.height = FALLBACK_VDF_RETARGET_DEACTIVATION_HEIGHT - 1; assert_eq!( vdf_retarget_observed_block_ms(&parent, &primary_child), @@ -6905,11 +6909,11 @@ mod tests { } #[test] - fn vdf_retarget_observed_block_time_ignores_ticket_fallback_ranks_before_activation() { + fn vdf_retarget_observed_block_time_ignores_new_ticket_fallback_ranks() { let parent = vdf_retarget_sample_block(0, FinalizerMode::Ticket, 0); let mut fallback_child = vdf_retarget_sample_block(VDF_TARGET_BLOCK_MS * 2, FinalizerMode::Ticket, 1); - fallback_child.height = FALLBACK_VDF_RETARGET_ACTIVATION_HEIGHT - 1; + fallback_child.height = FALLBACK_VDF_RETARGET_DEACTIVATION_HEIGHT; assert_eq!( vdf_retarget_observed_block_ms(&parent, &fallback_child),