diff --git a/lib/modules-lib/bc-db-reader/src/blocks.rs b/lib/modules-lib/bc-db-reader/src/blocks.rs
index 2867c98afb44c8bdc65b83398bf2a7228736b6bf..b280dee7d14ac16a459c0dc8566590fd01b665e7 100644
--- a/lib/modules-lib/bc-db-reader/src/blocks.rs
+++ b/lib/modules-lib/bc-db-reader/src/blocks.rs
@@ -124,12 +124,13 @@ pub fn get_fork_block<DB: DbReadable, R: DbReader>(
 }
 
 /// Get block hash
-pub fn get_block_hash<DB: DbReadable>(
+pub fn get_block_hash<DB: DbReadable, R: DbReader>(
     db: &DB,
+    r: &R,
     block_number: BlockNumber,
 ) -> Result<Option<BlockHash>, DbError> {
     Ok(
-        if let Some(block) = get_block_in_local_blockchain(db, block_number)? {
+        if let Some(block) = get_block_in_local_blockchain(db, r, block_number)? {
             block.hash()
         } else {
             None
@@ -139,16 +140,12 @@ pub fn get_block_hash<DB: DbReadable>(
 
 /// Get block in local blockchain
 #[inline]
-pub fn get_block_in_local_blockchain<DB: DbReadable>(
+pub fn get_block_in_local_blockchain<DB: DbReadable, R: DbReader>(
     db: &DB,
+    r: &R,
     block_number: BlockNumber,
 ) -> Result<Option<BlockDocument>, DbError> {
-    db.read(|r| {
-        Ok(
-            get_dal_block_in_local_blockchain(db, r, block_number)?
-                .map(|dal_block| dal_block.block),
-        )
-    })
+    Ok(get_dal_block_in_local_blockchain(db, r, block_number)?.map(|dal_block| dal_block.block))
 }
 
 /// Get block in local blockchain
diff --git a/lib/modules/blockchain/blockchain/src/dbex.rs b/lib/modules/blockchain/blockchain/src/dbex.rs
index 1aea3853ab4ab5268baecb18cdb1c875118335ec..355cb65da99b1895ebdbc5a06242ab0a23f6ceba 100644
--- a/lib/modules/blockchain/blockchain/src/dbex.rs
+++ b/lib/modules/blockchain/blockchain/src/dbex.rs
@@ -146,9 +146,9 @@ pub fn dbex_bc(profile_path: PathBuf, _csv: bool, _query: DbExBcQuery) -> Result
         durs_bc_db_reader::current_meta_datas::get_current_blockstamp(&db)?
     {
         println!("Current block: #{}.", current_blockstamp);
-        if let Some(current_block) =
-            durs_bc_db_reader::blocks::get_block_in_local_blockchain(&db, current_blockstamp.id)?
-        {
+        if let Some(current_block) = db.read(|r| {
+            durs_bc_db_reader::blocks::get_block_in_local_blockchain(&db, r, current_blockstamp.id)
+        })? {
             let map_pubkey = durs_bc_db_reader::blocks::get_current_frame(&current_block, &db)?;
 
             let mut vec = map_pubkey.iter().collect::<Vec<(&PubKey, &usize)>>();
diff --git a/lib/modules/blockchain/blockchain/src/dubp/check/mod.rs b/lib/modules/blockchain/blockchain/src/dubp/check/mod.rs
index caa7422b049a62594e91d3bdc169ad81da4f173d..be5d5a91624de86d9de898795b4658492af70ca8 100644
--- a/lib/modules/blockchain/blockchain/src/dubp/check/mod.rs
+++ b/lib/modules/blockchain/blockchain/src/dubp/check/mod.rs
@@ -36,7 +36,7 @@ pub enum InvalidBlockError {
 pub fn verify_block_validity<DB, R, W>(
     block: &BlockDocument,
     db: &DB,
-    _r: &R,
+    r: &R,
     _wot_index: &HashMap<PubKey, WotId>,
     _wot_db: &BinFreeStructDb<W>,
 ) -> Result<(), BlockError>
@@ -50,6 +50,7 @@ where
         // Get previous block
         let previous_block_opt = durs_bc_db_reader::blocks::get_block_in_local_blockchain(
             db,
+            r,
             BlockNumber(block.number().0 - 1),
         )?;
 
diff --git a/lib/modules/blockchain/blockchain/src/fork/fork_algo.rs b/lib/modules/blockchain/blockchain/src/fork/fork_algo.rs
index 7adda645f6b27483dc6907e3570bd3febde2ec2e..645fef8c71c72be37795b81d3bc2df972783895b 100644
--- a/lib/modules/blockchain/blockchain/src/fork/fork_algo.rs
+++ b/lib/modules/blockchain/blockchain/src/fork/fork_algo.rs
@@ -140,11 +140,15 @@ mod tests {
         })?;
 
         // Local blockchain must contain at least `fork_window_size +2` blocks
-        assert!(durs_bc_db_reader::blocks::get_block_in_local_blockchain(
-            &db,
-            BlockNumber((fork_window_size + 1) as u32)
-        )?
-        .is_some());
+        assert!(db
+            .read(
+                |r| durs_bc_db_reader::blocks::get_block_in_local_blockchain(
+                    &db,
+                    r,
+                    BlockNumber((fork_window_size + 1) as u32)
+                )
+            )?
+            .is_some());
 
         // Fork tree must contain at least `fork_window_size +2` blocks
         assert_eq!(fork_window_size, fork_tree.size());
diff --git a/lib/modules/blockchain/blockchain/src/requests/received.rs b/lib/modules/blockchain/blockchain/src/requests/received.rs
index 1de8ba259f1a4a9d5f894248bfe2e49f1782e4c8..48c4c7ef076d1a1a976a71f89696c1f2c5d2f7f0 100644
--- a/lib/modules/blockchain/blockchain/src/requests/received.rs
+++ b/lib/modules/blockchain/blockchain/src/requests/received.rs
@@ -37,10 +37,13 @@ pub fn receive_req(
             BlockchainRequest::CurrentBlock => {
                 debug!("BlockchainModule : receive BlockchainRequest::CurrentBlock()");
 
-                if let Ok(block_opt) = durs_bc_db_reader::blocks::get_block_in_local_blockchain(
-                    bc.db(),
-                    bc.current_blockstamp.id,
-                ) {
+                if let Ok(block_opt) = bc.db().read(|r| {
+                    durs_bc_db_reader::blocks::get_block_in_local_blockchain(
+                        bc.db(),
+                        r,
+                        bc.current_blockstamp.id,
+                    )
+                }) {
                     if let Some(block) = block_opt {
                         debug!(
                             "BlockchainModule : send_req_response(CurrentBlock({}))",
@@ -70,9 +73,13 @@ pub fn receive_req(
                     block_number
                 );
 
-                if let Ok(block_opt) =
-                    durs_bc_db_reader::blocks::get_block_in_local_blockchain(bc.db(), block_number)
-                {
+                if let Ok(block_opt) = bc.db().read(|r| {
+                    durs_bc_db_reader::blocks::get_block_in_local_blockchain(
+                        bc.db(),
+                        r,
+                        block_number,
+                    )
+                }) {
                     if let Some(block) = block_opt {
                         debug!(
                             "BlockchainModule : send_req_response(BlockByNumber(#{}))",