Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
b93f07e
perf(crypto): swap blake2 to blake2b_simd
clearloop May 20, 2026
548eaa7
perf(runtime): key MemoryDb by TrieKey
clearloop May 20, 2026
2fc5b01
perf(runtime): drop state-root sort with sorted base + merge-walk
clearloop May 20, 2026
548fbdb
perf(runtime): incremental state root via parity-db multitree
clearloop May 21, 2026
2454fac
chore(crypto): bump ark-vrf to 0.2.1 for ring batch verify api
clearloop May 21, 2026
4562635
perf(runtime): batch-verify ring vrf for ticket extrinsic
clearloop May 21, 2026
fb7e9c3
fix(runtime): wrap authorization queue index
clearloop May 21, 2026
05e31e0
fix(runtime): split preimage validate/integrate
clearloop May 21, 2026
edf7ea7
fix(runtime): propagate auth queue through accumulation
clearloop May 21, 2026
79c8b68
fix(runtime): reject useless tickets in safrole extrinsic
clearloop May 21, 2026
9b0625a
fix(runtime): reject duplicate work-packages across accumulation pipe…
clearloop May 21, 2026
eee8dd0
fix(runtime): tighten verdict ordering and vote-split checks
clearloop May 21, 2026
4a0cfcd
fix(runtime): reject epoch_mark on non-epoch-transition blocks
clearloop May 21, 2026
d5e6d2e
fix(runtime): merge per-core authqueue mutations after accumulation
clearloop May 22, 2026
e30ac9a
fix(vm): honor gratis and registrar desired-id in new host call
clearloop May 22, 2026
f0628d3
chore: make clippy happy
clearloop May 22, 2026
ca3db99
feat(crypto): introduce trait for MultiTree
clearloop May 22, 2026
ee2c69b
chore: make clippy happy
clearloop May 22, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
84 changes: 52 additions & 32 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 6 additions & 5 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ resolver = "1"

[workspace.package]
edition = "2024"
version = "0.1.2-pre.1"
version = "0.1.2-pre.8"
homepage = "https://spacejam.app"
repository = "https://github.com/spacejamapp/jade"
license = "GPL-3.0"
Expand Down Expand Up @@ -74,10 +74,11 @@ ark-ed-on-bls12-381-bandersnatch = { version = "0.5", default-features = false }
ark-ff = { version = "0.5", default-features = false }
ark-std = { version = "0.5", default-features = false }
ark-serialize = { version = "0.5", default-features = false }
ark-vrf = { version = "0.1.0", features = ["bandersnatch", "ring", "parallel"] }
ark-vrf = { version = "=0.2.1", features = ["bandersnatch", "ring", "parallel"] }
async-trait = "0.1.89"
bindgen = "0.72"
blake2 = { version = "0.10.6", default-features = false }
blake2 = "0.10.6"
blake2b_simd = "1.0.4"
blake3 = "1.8.2"
cc = "1.2"
clap = "4.5.47"
Expand All @@ -102,7 +103,8 @@ libc = "0.2"
log = "0.4.28"
once_cell = "1.21.3"
paste = "1.0.15"
parity-db = "0.5.4"
parity-db = "0.5.5"
parking_lot = "0.12"
postcard = "1.1.3"
proc-macro2 = "1.0.101"
prometheus = { version = "0.23.1", package = "prometheus-client" }
Expand All @@ -112,7 +114,6 @@ rand = "0.8.5"
rayon = "1.11.0"
rcgen = { version = "0.13.2", default-features = false, features = ["crypto", "pem", "ring"] }
reed-solomon = { package = "reed-solomon-simd", version = "3.0.1" }
ring = { package = "w3f-ring-proof", version = "0.0.2", default-features = false }
rustls = { version = "0.23.31", default-features = false, features = ["std", "logging", "tls12", "ring"] }
rustls-webpki = { version = "0.102.8", default-features = false, features = ["std", "ring"] }
serde = { version = "1.0.219", features = ["derive"], default-features = false }
Expand Down
17 changes: 16 additions & 1 deletion crates/core/account/src/registry.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
//! Account registry

use crate::Account;
use score::{OpaqueHash, ServiceId, TrieKey, service::ServiceAccount};
use score::{Gas, OpaqueHash, ServiceId, TrieKey, service::ServiceAccount};
use std::collections::{BTreeMap, BTreeSet};

/// Account registry
Expand All @@ -12,6 +12,9 @@ pub trait Accounts: Clone + Send + Sync + 'static {
/// Get the code hash of an account
fn code_hash(&self, index: u32) -> Option<OpaqueHash>;

/// Get the minimum gas required to invoke the accumulate entry-point
fn min_acc_gas(&self, index: u32) -> Option<Gas>;

/// Create a new account
fn upsert(&mut self, index: u32, account: impl Account);

Expand All @@ -23,6 +26,14 @@ pub trait Accounts: Clone + Send + Sync + 'static {
self.get(index).is_some()
}

/// Check if a lookup is providable
fn is_providable(&mut self, index: ServiceId, hash: OpaqueHash, len: u32) -> bool {
let Some(account) = self.get(index) else {
return false;
};
matches!(account.lookup(hash, len), Some(Some(slots)) if slots.is_empty())
}

/// Remove an account from the registry
fn remove(&mut self, index: u32);

Expand Down Expand Up @@ -59,6 +70,10 @@ impl Accounts for BTreeMap<u32, ServiceAccount> {
Some(self.get(&index)?.info.code)
}

fn min_acc_gas(&self, index: u32) -> Option<Gas> {
Some(self.get(&index)?.info.accumulate)
}

fn upsert(&mut self, index: u32, account: impl Account) {
self.insert(index, account.account());
}
Expand Down
Loading
Loading