From 327c4bcb1442b587221098f6d2c371a84901baaa Mon Sep 17 00:00:00 2001 From: Karim Agha Date: Sun, 14 Mar 2021 10:25:45 +0100 Subject: [PATCH 1/3] Fixing outdated readme links (#322) --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 86ccc0e16..588b25bb3 100644 --- a/README.md +++ b/README.md @@ -297,9 +297,9 @@ Caching, Importing Blocks, and Block Information In addition to the OpenEthereum client, there are additional tools in this repository available: -- [evmbin](./evmbin) - OpenEthereum EVM Implementation. -- [ethstore](./accounts/ethstore) - OpenEthereum Key Management. -- [ethkey](./accounts/ethkey) - OpenEthereum Keys Generator. +- [evmbin](./bin/evmbin) - OpenEthereum EVM Implementation. +- [ethstore](./crates/accounts/ethstore) - OpenEthereum Key Management. +- [ethkey](./crates/accounts/ethkey) - OpenEthereum Keys Generator. The following tools are available in a separate repository: - [ethabi](https://github.com/openethereum/ethabi) - OpenEthereum Encoding of Function Calls. [Docs here](https://crates.io/crates/ethabi) From 3317797285918d7fa3eb16696ecaeff37778dc47 Mon Sep 17 00:00:00 2001 From: rakita Date: Sun, 14 Mar 2021 11:18:38 +0100 Subject: [PATCH 2/3] Initial sync block stuck. Block import logs (#318) --- crates/ethcore/src/client/client.rs | 20 +++++++++++++++++--- crates/ethcore/src/verification/queue/mod.rs | 5 +++++ 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/crates/ethcore/src/client/client.rs b/crates/ethcore/src/client/client.rs index 80531f721..e6d6f56a9 100644 --- a/crates/ethcore/src/client/client.rs +++ b/crates/ethcore/src/client/client.rs @@ -281,7 +281,9 @@ impl Importer { // t_nb 6.0 This is triggered by a message coming from a block queue when the block is ready for insertion pub fn import_verified_blocks(&self, client: &Client) -> usize { // Shortcut out if we know we're incapable of syncing the chain. - if !client.enabled.load(AtomicOrdering::Relaxed) { + trace!(target: "block_import", "fn import_verified_blocks"); + if !client.enabled.load(AtomicOrdering::SeqCst) { + self.block_queue.reset_verification_ready_signal(); return 0; } @@ -303,6 +305,8 @@ impl Importer { let _import_lock = self.import_lock.lock(); let blocks = self.block_queue.drain(max_blocks_to_import); if blocks.is_empty() { + debug!(target: "block_import", "block_queue is empty"); + self.block_queue.resignal_verification(); return 0; } trace_time!("import_verified_blocks"); @@ -315,6 +319,13 @@ impl Importer { let is_invalid = invalid_blocks.contains(header.parent_hash()); if is_invalid { + debug!( + target: "block_import", + "Refusing block #{}({}) with invalid parent {}", + header.number(), + header.hash(), + header.parent_hash() + ); invalid_blocks.insert(hash); continue; } @@ -323,7 +334,7 @@ impl Importer { Ok((closed_block, pending)) => { imported_blocks.push(hash); let transactions_len = closed_block.transactions.len(); - + trace!(target:"block_import","Block #{}({}) check pass",header.number(),header.hash()); // t_nb 8.0 commit block to db let route = self.commit_block( closed_block, @@ -332,6 +343,7 @@ impl Importer { pending, client, ); + trace!(target:"block_import","Block #{}({}) commited",header.number(),header.hash()); import_results.push(route); client .report @@ -365,6 +377,7 @@ impl Importer { { if !imported_blocks.is_empty() { + trace!(target:"block_import","Imported block, notify rest of system"); let route = ChainRoute::from(import_results.as_ref()); // t_nb 10 Notify miner about new included block. @@ -393,11 +406,12 @@ impl Importer { }); } } - + trace!(target:"block_import","Flush block to db"); let db = client.db.read(); db.key_value().flush().expect("DB flush failed."); self.block_queue.resignal_verification(); + trace!(target:"block_import","Resignal verifier"); imported } diff --git a/crates/ethcore/src/verification/queue/mod.rs b/crates/ethcore/src/verification/queue/mod.rs index cb67d689c..01be5cfde 100644 --- a/crates/ethcore/src/verification/queue/mod.rs +++ b/crates/ethcore/src/verification/queue/mod.rs @@ -683,6 +683,11 @@ impl VerificationQueue { } } + /// Reset verification ready signal so that it allows other threads to send IoMessage to Client + pub fn reset_verification_ready_signal(&self) { + self.ready_signal.reset(); + } + /// Returns true if there is nothing currently in the queue. pub fn is_empty(&self) -> bool { let v = &self.verification; From 5fdedf0858bf1ae95e718909a1476d8172845f6c Mon Sep 17 00:00:00 2001 From: rakita Date: Wed, 17 Mar 2021 09:46:36 +0100 Subject: [PATCH 3/3] Bump to v3.2.1. Changelog --- CHANGELOG.md | 4 ++++ Cargo.lock | 4 ++-- Cargo.toml | 2 +- crates/util/version/Cargo.toml | 2 +- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ea086927d..554b8c982 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## OpenEthereum v3.2.1 + +Hot fix issue, related to initial sync: +* Initial sync gets stuck. (#318) ## OpenEthereum v3.2.0 Bug fixes: diff --git a/Cargo.lock b/Cargo.lock index c232f7753..89f67a062 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2825,7 +2825,7 @@ checksum = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c" [[package]] name = "openethereum" -version = "3.2.0" +version = "3.2.1" dependencies = [ "ansi_term 0.10.2", "atty", @@ -3188,7 +3188,7 @@ dependencies = [ [[package]] name = "parity-version" -version = "3.2.0" +version = "3.2.1" dependencies = [ "parity-bytes", "rlp 0.3.0", diff --git a/Cargo.toml b/Cargo.toml index 2906d1545..3e966e596 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -2,7 +2,7 @@ description = "OpenEthereum" name = "openethereum" # NOTE Make sure to update util/version/Cargo.toml as well -version = "3.2.0" +version = "3.2.1" license = "GPL-3.0" authors = [ "OpenEthereum developers", diff --git a/crates/util/version/Cargo.toml b/crates/util/version/Cargo.toml index 7fdef2e3b..61c4cbaf4 100644 --- a/crates/util/version/Cargo.toml +++ b/crates/util/version/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "parity-version" # NOTE: this value is used for OpenEthereum version string (via env CARGO_PKG_VERSION) -version = "3.2.0" +version = "3.2.1" authors = ["Parity Technologies "] build = "build.rs"