Explorar o código

Cargo.toml: updated sled-overlay version

skoupidi hai 1 ano
pai
achega
130582d6a9
Modificáronse 4 ficheiros con 12 adicións e 12 borrados
  1. 2 2
      Cargo.lock
  2. 1 1
      Cargo.toml
  3. 7 7
      src/validator/consensus.rs
  4. 2 2
      src/validator/mod.rs

+ 2 - 2
Cargo.lock

@@ -6545,9 +6545,9 @@ dependencies = [
 
 [[package]]
 name = "sled-overlay"
-version = "0.1.2"
+version = "0.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1cb251f5f64d4d645399c8cdf53b7bc3134051b541a5662b9435366a433a50f7"
+checksum = "0fd73f339f6dd4b551bfdfcf7081ebdb2a3396d92567db6874aac35eb2a0a236"
 dependencies = [
  "sled",
 ]

+ 1 - 1
Cargo.toml

@@ -119,7 +119,7 @@ wasmer-middlewares = {version = "4.3.4", optional = true}
 
 # Blockchain store
 sled = {version = "0.34.7", optional = true}
-sled-overlay = {version = "0.1.2", optional = true}
+sled-overlay = {version = "0.1.3", optional = true}
 
 # Miner
 randomx = {git = "https://github.com/darkrenaissance/RandomX", optional = true}

+ 7 - 7
src/validator/consensus.rs

@@ -22,7 +22,7 @@ use darkfi_sdk::{crypto::MerkleTree, tx::TransactionHash};
 use darkfi_serial::{async_trait, SerialDecodable, SerialEncodable};
 use log::{debug, info, warn};
 use num_bigint::BigUint;
-use sled_overlay::database::SledDbOverlayState;
+use sled_overlay::database::SledDbOverlayStateDiff;
 use smol::lock::RwLock;
 
 use crate::{
@@ -200,7 +200,7 @@ impl Consensus {
         let blocks = &original_fork.overlay.lock().unwrap().get_blocks_by_hash(&fork.proposals)?;
         for (index, block) in blocks.iter().enumerate() {
             // Apply block diffs
-            fork.overlay.lock().unwrap().overlay.lock().unwrap().add_diff(&fork.diffs[index]);
+            fork.overlay.lock().unwrap().overlay.lock().unwrap().add_diff(&fork.diffs[index])?;
 
             // Grab next mine target and difficulty
             let (next_target, next_difficulty) = fork.module.next_mine_target_and_difficulty()?;
@@ -445,7 +445,7 @@ impl Consensus {
                 for tree in &overlay.state.new_tree_names {
                     referenced_trees.insert(tree.clone());
                 }
-                for tree in &overlay.state.dropped_tree_names {
+                for tree in overlay.state.dropped_trees.keys() {
                     referenced_trees.insert(tree.clone());
                 }
                 // Remove finalized proposals txs from fork's mempool
@@ -493,7 +493,7 @@ impl Consensus {
             for tree in &overlay.state.new_tree_names {
                 referenced_trees.insert(tree.clone());
             }
-            for tree in &overlay.state.dropped_tree_names {
+            for tree in overlay.state.dropped_trees.keys() {
                 referenced_trees.insert(tree.clone());
             }
             drop(overlay);
@@ -524,7 +524,7 @@ impl Consensus {
                     dropped_trees.insert(tree.clone());
                 }
             }
-            for tree in &overlay.state.dropped_tree_names {
+            for tree in overlay.state.dropped_trees.keys() {
                 if !referenced_trees.contains(tree) {
                     dropped_trees.insert(tree.clone());
                 }
@@ -602,7 +602,7 @@ pub struct Fork {
     /// Fork proposal hashes sequence
     pub proposals: Vec<HeaderHash>,
     /// Fork proposal overlay diffs sequence
-    pub diffs: Vec<SledDbOverlayState>,
+    pub diffs: Vec<SledDbOverlayStateDiff>,
     /// Valid pending transaction hashes
     pub mempool: Vec<TransactionHash>,
     /// Current fork mining targets rank, cached for better performance
@@ -665,7 +665,7 @@ impl Fork {
         self.proposals.push(proposal.hash);
 
         // Push proposal overlay diff
-        self.diffs.push(self.overlay.lock().unwrap().overlay.lock().unwrap().diff(&self.diffs));
+        self.diffs.push(self.overlay.lock().unwrap().overlay.lock().unwrap().diff(&self.diffs)?);
 
         Ok(())
     }

+ 2 - 2
src/validator/mod.rs

@@ -366,7 +366,7 @@ impl Validator {
         let rest_proposals = fork.proposals.split_off(excess);
         let rest_diffs = fork.diffs.split_off(excess);
         let finalized_proposals = fork.proposals.clone();
-        let mut diffs = fork.diffs.clone();
+        let diffs = fork.diffs.clone();
         fork.proposals = rest_proposals;
         fork.diffs = rest_diffs;
 
@@ -380,7 +380,7 @@ impl Validator {
         info!(target: "validator::finalization", "Finalizing proposals:");
         for (index, proposal) in finalized_proposals.iter().enumerate() {
             info!(target: "validator::finalization", "\t{} - {}", proposal, finalized_blocks[index].header.height);
-            fork.overlay.lock().unwrap().overlay.lock().unwrap().apply_diff(&mut diffs[index])?;
+            fork.overlay.lock().unwrap().overlay.lock().unwrap().apply_diff(&diffs[index])?;
             let next_difficulty = module.next_difficulty()?;
             module.append(finalized_blocks[index].header.timestamp, &next_difficulty);
             finalized_txs.extend_from_slice(&finalized_blocks[index].txs);