huskies: merge 925
This commit is contained in:
@@ -15,15 +15,15 @@ bft = []
|
||||
|
||||
[dependencies]
|
||||
bft-crdt-derive = { path = "bft-crdt-derive" }
|
||||
colored = "2.0.0"
|
||||
colored = "3"
|
||||
fastcrypto = "0.1.9"
|
||||
indexmap = { version = "2.2.6", features = ["serde"] }
|
||||
rand = "0.8"
|
||||
random_color = "0.6.1"
|
||||
rand = "0.9"
|
||||
random_color = "1"
|
||||
serde = { version = "1.0", features = ["derive"] }
|
||||
serde_json = { version = "1.0.85", features = ["preserve_order"] }
|
||||
serde_with = "3.18"
|
||||
sha2 = "0.10.6"
|
||||
serde_with = "3"
|
||||
sha2 = "0.11"
|
||||
|
||||
[dev-dependencies]
|
||||
criterion = { version = "0.5", features = ["html_reports"] }
|
||||
|
||||
@@ -33,7 +33,7 @@ fn bench_insert_many_agents_conflicts(c: &mut Criterion) {
|
||||
c.bench_function("bench insert many agents conflicts", |b| {
|
||||
b.iter(|| {
|
||||
const N: u8 = 10;
|
||||
let mut rng = rand::thread_rng();
|
||||
let mut rng = rand::rng();
|
||||
let mut crdts: Vec<ListCrdt<i64>> = Vec::with_capacity(N as usize);
|
||||
let mut logs: Vec<Op<JsonValue>> = Vec::new();
|
||||
for i in 0..N {
|
||||
|
||||
@@ -18,7 +18,7 @@ use {
|
||||
op::{print_hex, print_path, ROOT_ID},
|
||||
},
|
||||
colored::Colorize,
|
||||
random_color::{Luminosity, RandomColor},
|
||||
random_color::{options::Luminosity, RandomColor},
|
||||
};
|
||||
|
||||
#[cfg(feature = "logging-list")]
|
||||
|
||||
@@ -10,9 +10,10 @@ pub use fastcrypto::{
|
||||
Ed25519KeyPair, Ed25519PublicKey, Ed25519Signature, ED25519_PUBLIC_KEY_LENGTH,
|
||||
ED25519_SIGNATURE_LENGTH,
|
||||
},
|
||||
traits::{KeyPair, Signer},
|
||||
traits::{KeyPair, Signer, ToFromBytes},
|
||||
// Verifier,
|
||||
};
|
||||
use rand::RngCore as _;
|
||||
use sha2::{Digest, Sha256};
|
||||
|
||||
/// Represents the ID of a unique node. An Ed25519 public key
|
||||
@@ -48,8 +49,9 @@ pub fn sha256(input: String) -> [u8; 32] {
|
||||
|
||||
/// Generate a random Ed25519 keypair from OS rng
|
||||
pub fn make_keypair() -> Ed25519KeyPair {
|
||||
let mut csprng = rand::thread_rng();
|
||||
Ed25519KeyPair::generate(&mut csprng)
|
||||
let mut seed = [0u8; 32];
|
||||
rand::rng().fill_bytes(&mut seed);
|
||||
Ed25519KeyPair::from_bytes(&seed).expect("32-byte seed always yields a valid Ed25519 keypair")
|
||||
}
|
||||
|
||||
/// Sign a byte array
|
||||
|
||||
@@ -5,9 +5,12 @@ use bft_json_crdt::{
|
||||
list_crdt::ListCrdt,
|
||||
op::{Op, OpId, ROOT_ID},
|
||||
};
|
||||
use rand::{rngs::ThreadRng, seq::SliceRandom, Rng};
|
||||
use rand::{
|
||||
seq::{IndexedRandom, SliceRandom},
|
||||
Rng,
|
||||
};
|
||||
|
||||
fn random_op<T: CrdtNode>(arr: &[Op<T>], rng: &mut ThreadRng) -> OpId {
|
||||
fn random_op<T: CrdtNode>(arr: &[Op<T>], rng: &mut impl Rng) -> OpId {
|
||||
arr.choose(rng).map(|op| op.id).unwrap_or(ROOT_ID)
|
||||
}
|
||||
|
||||
@@ -15,7 +18,7 @@ const TEST_N: usize = 100;
|
||||
|
||||
#[test]
|
||||
fn test_list_fuzz_commutative() {
|
||||
let mut rng = rand::thread_rng();
|
||||
let mut rng = rand::rng();
|
||||
let mut op_log = Vec::<Op<JsonValue>>::new();
|
||||
let mut op_log1 = Vec::<Op<JsonValue>>::new();
|
||||
let mut op_log2 = Vec::<Op<JsonValue>>::new();
|
||||
@@ -23,14 +26,14 @@ fn test_list_fuzz_commutative() {
|
||||
let mut l2 = ListCrdt::<char>::new(make_author(2), vec![]);
|
||||
let mut chk = ListCrdt::<char>::new(make_author(3), vec![]);
|
||||
for _ in 0..TEST_N {
|
||||
let letter1: char = rng.gen_range(b'a'..=b'z') as char;
|
||||
let letter2: char = rng.gen_range(b'a'..=b'z') as char;
|
||||
let op1 = if rng.gen_bool(4.0 / 5.0) {
|
||||
let letter1: char = rng.random_range(b'a'..=b'z') as char;
|
||||
let letter2: char = rng.random_range(b'a'..=b'z') as char;
|
||||
let op1 = if rng.random_bool(4.0 / 5.0) {
|
||||
l1.insert(random_op(&op_log1, &mut rng), letter1)
|
||||
} else {
|
||||
l1.delete(random_op(&op_log1, &mut rng))
|
||||
};
|
||||
let op2 = if rng.gen_bool(4.0 / 5.0) {
|
||||
let op2 = if rng.random_bool(4.0 / 5.0) {
|
||||
l2.insert(random_op(&op_log2, &mut rng), letter2)
|
||||
} else {
|
||||
l2.delete(random_op(&op_log2, &mut rng))
|
||||
@@ -67,8 +70,8 @@ fn test_list_fuzz_commutative() {
|
||||
let mut op_log1 = Vec::<Op<JsonValue>>::new();
|
||||
let mut op_log2 = Vec::<Op<JsonValue>>::new();
|
||||
for _ in 0..TEST_N {
|
||||
let letter1: char = rng.gen_range(b'a'..=b'z') as char;
|
||||
let letter2: char = rng.gen_range(b'a'..=b'z') as char;
|
||||
let letter1: char = rng.random_range(b'a'..=b'z') as char;
|
||||
let letter2: char = rng.random_range(b'a'..=b'z') as char;
|
||||
let op1 = l1.insert(random_op(&op_log, &mut rng), letter1);
|
||||
let op2 = l2.insert(random_op(&op_log, &mut rng), letter2);
|
||||
op_log1.push(op1);
|
||||
|
||||
Reference in New Issue
Block a user