fix(trie): include destroyed accounts in account prefix set (#4126)

This commit is contained in:
Roman Krasiuk
2023-08-09 14:25:55 +03:00
committed by GitHub
parent b823cc0177
commit 058c55cd8c
2 changed files with 48 additions and 49 deletions

92
Cargo.lock generated
View File

@ -1131,7 +1131,7 @@ checksum = "67ba02a97a2bd10f4b59b25c7973101c79642302776489e030cd13cdab09ed15"
[[package]]
name = "codecs-derive"
version = "0.1.0-alpha.4"
version = "0.1.0-alpha.5"
dependencies = [
"convert_case 0.6.0",
"parity-scale-codec",
@ -1930,7 +1930,7 @@ dependencies = [
[[package]]
name = "ef-tests"
version = "0.1.0-alpha.4"
version = "0.1.0-alpha.5"
dependencies = [
"reth-db",
"reth-interfaces",
@ -5218,7 +5218,7 @@ dependencies = [
[[package]]
name = "reth"
version = "0.1.0-alpha.4"
version = "0.1.0-alpha.5"
dependencies = [
"backon",
"clap",
@ -5288,7 +5288,7 @@ dependencies = [
[[package]]
name = "reth-auto-seal-consensus"
version = "0.1.0-alpha.4"
version = "0.1.0-alpha.5"
dependencies = [
"futures-util",
"reth-beacon-consensus",
@ -5305,7 +5305,7 @@ dependencies = [
[[package]]
name = "reth-basic-payload-builder"
version = "0.1.0-alpha.4"
version = "0.1.0-alpha.5"
dependencies = [
"futures-core",
"futures-util",
@ -5324,7 +5324,7 @@ dependencies = [
[[package]]
name = "reth-beacon-consensus"
version = "0.1.0-alpha.4"
version = "0.1.0-alpha.5"
dependencies = [
"assert_matches",
"futures",
@ -5352,7 +5352,7 @@ dependencies = [
[[package]]
name = "reth-blockchain-tree"
version = "0.1.0-alpha.4"
version = "0.1.0-alpha.5"
dependencies = [
"aquamarine",
"assert_matches",
@ -5371,7 +5371,7 @@ dependencies = [
[[package]]
name = "reth-codecs"
version = "0.1.0-alpha.4"
version = "0.1.0-alpha.5"
dependencies = [
"arbitrary",
"bytes",
@ -5386,7 +5386,7 @@ dependencies = [
[[package]]
name = "reth-config"
version = "0.1.0-alpha.4"
version = "0.1.0-alpha.5"
dependencies = [
"confy",
"reth-discv4",
@ -5403,7 +5403,7 @@ dependencies = [
[[package]]
name = "reth-consensus-common"
version = "0.1.0-alpha.4"
version = "0.1.0-alpha.5"
dependencies = [
"assert_matches",
"mockall",
@ -5414,7 +5414,7 @@ dependencies = [
[[package]]
name = "reth-db"
version = "0.1.0-alpha.4"
version = "0.1.0-alpha.5"
dependencies = [
"arbitrary",
"assert_matches",
@ -5455,7 +5455,7 @@ dependencies = [
[[package]]
name = "reth-discv4"
version = "0.1.0-alpha.4"
version = "0.1.0-alpha.5"
dependencies = [
"discv5",
"enr 0.8.1",
@ -5478,7 +5478,7 @@ dependencies = [
[[package]]
name = "reth-dns-discovery"
version = "0.1.0-alpha.4"
version = "0.1.0-alpha.5"
dependencies = [
"async-trait",
"data-encoding",
@ -5502,7 +5502,7 @@ dependencies = [
[[package]]
name = "reth-downloaders"
version = "0.1.0-alpha.4"
version = "0.1.0-alpha.5"
dependencies = [
"assert_matches",
"futures",
@ -5527,7 +5527,7 @@ dependencies = [
[[package]]
name = "reth-ecies"
version = "0.1.0-alpha.4"
version = "0.1.0-alpha.5"
dependencies = [
"aes 0.8.3",
"block-padding",
@ -5558,7 +5558,7 @@ dependencies = [
[[package]]
name = "reth-eth-wire"
version = "0.1.0-alpha.4"
version = "0.1.0-alpha.5"
dependencies = [
"arbitrary",
"async-trait",
@ -5591,7 +5591,7 @@ dependencies = [
[[package]]
name = "reth-interfaces"
version = "0.1.0-alpha.4"
version = "0.1.0-alpha.5"
dependencies = [
"arbitrary",
"async-trait",
@ -5619,7 +5619,7 @@ dependencies = [
[[package]]
name = "reth-ipc"
version = "0.1.0-alpha.4"
version = "0.1.0-alpha.5"
dependencies = [
"async-trait",
"bytes",
@ -5638,7 +5638,7 @@ dependencies = [
[[package]]
name = "reth-libmdbx"
version = "0.1.0-alpha.4"
version = "0.1.0-alpha.5"
dependencies = [
"bitflags 2.3.3",
"byteorder",
@ -5658,7 +5658,7 @@ dependencies = [
[[package]]
name = "reth-mdbx-sys"
version = "0.1.0-alpha.4"
version = "0.1.0-alpha.5"
dependencies = [
"bindgen 0.65.1",
"cc",
@ -5667,7 +5667,7 @@ dependencies = [
[[package]]
name = "reth-metrics"
version = "0.1.0-alpha.4"
version = "0.1.0-alpha.5"
dependencies = [
"futures",
"metrics 0.20.1",
@ -5677,7 +5677,7 @@ dependencies = [
[[package]]
name = "reth-metrics-derive"
version = "0.1.0-alpha.4"
version = "0.1.0-alpha.5"
dependencies = [
"metrics 0.20.1",
"once_cell",
@ -5691,7 +5691,7 @@ dependencies = [
[[package]]
name = "reth-net-common"
version = "0.1.0-alpha.4"
version = "0.1.0-alpha.5"
dependencies = [
"pin-project",
"reth-primitives",
@ -5700,7 +5700,7 @@ dependencies = [
[[package]]
name = "reth-net-nat"
version = "0.1.0-alpha.4"
version = "0.1.0-alpha.5"
dependencies = [
"igd",
"pin-project-lite",
@ -5714,7 +5714,7 @@ dependencies = [
[[package]]
name = "reth-network"
version = "0.1.0-alpha.4"
version = "0.1.0-alpha.5"
dependencies = [
"aquamarine",
"async-trait",
@ -5764,7 +5764,7 @@ dependencies = [
[[package]]
name = "reth-network-api"
version = "0.1.0-alpha.4"
version = "0.1.0-alpha.5"
dependencies = [
"async-trait",
"reth-eth-wire",
@ -5777,7 +5777,7 @@ dependencies = [
[[package]]
name = "reth-payload-builder"
version = "0.1.0-alpha.4"
version = "0.1.0-alpha.5"
dependencies = [
"futures-util",
"reth-interfaces",
@ -5796,7 +5796,7 @@ dependencies = [
[[package]]
name = "reth-primitives"
version = "0.1.0-alpha.4"
version = "0.1.0-alpha.5"
dependencies = [
"arbitrary",
"assert_matches",
@ -5845,7 +5845,7 @@ dependencies = [
[[package]]
name = "reth-provider"
version = "0.1.0-alpha.4"
version = "0.1.0-alpha.5"
dependencies = [
"auto_impl",
"derive_more",
@ -5866,7 +5866,7 @@ dependencies = [
[[package]]
name = "reth-prune"
version = "0.1.0-alpha.4"
version = "0.1.0-alpha.5"
dependencies = [
"assert_matches",
"itertools 0.11.0",
@ -5883,7 +5883,7 @@ dependencies = [
[[package]]
name = "reth-revm"
version = "0.1.0-alpha.4"
version = "0.1.0-alpha.5"
dependencies = [
"once_cell",
"reth-consensus-common",
@ -5899,7 +5899,7 @@ dependencies = [
[[package]]
name = "reth-revm-inspectors"
version = "0.1.0-alpha.4"
version = "0.1.0-alpha.5"
dependencies = [
"boa_engine",
"boa_gc",
@ -5915,7 +5915,7 @@ dependencies = [
[[package]]
name = "reth-revm-primitives"
version = "0.1.0-alpha.4"
version = "0.1.0-alpha.5"
dependencies = [
"reth-primitives",
"revm",
@ -5923,7 +5923,7 @@ dependencies = [
[[package]]
name = "reth-rlp"
version = "0.1.0-alpha.4"
version = "0.1.0-alpha.5"
dependencies = [
"arrayvec",
"auto_impl",
@ -5942,7 +5942,7 @@ dependencies = [
[[package]]
name = "reth-rlp-derive"
version = "0.1.0-alpha.4"
version = "0.1.0-alpha.5"
dependencies = [
"proc-macro2 1.0.66",
"quote 1.0.32",
@ -5951,7 +5951,7 @@ dependencies = [
[[package]]
name = "reth-rpc"
version = "0.1.0-alpha.4"
version = "0.1.0-alpha.5"
dependencies = [
"assert_matches",
"async-trait",
@ -5998,7 +5998,7 @@ dependencies = [
[[package]]
name = "reth-rpc-api"
version = "0.1.0-alpha.4"
version = "0.1.0-alpha.5"
dependencies = [
"jsonrpsee",
"reth-primitives",
@ -6008,7 +6008,7 @@ dependencies = [
[[package]]
name = "reth-rpc-api-testing-util"
version = "0.1.0-alpha.4"
version = "0.1.0-alpha.5"
dependencies = [
"async-trait",
"futures",
@ -6022,7 +6022,7 @@ dependencies = [
[[package]]
name = "reth-rpc-builder"
version = "0.1.0-alpha.4"
version = "0.1.0-alpha.5"
dependencies = [
"hyper",
"jsonrpsee",
@ -6053,7 +6053,7 @@ dependencies = [
[[package]]
name = "reth-rpc-engine-api"
version = "0.1.0-alpha.4"
version = "0.1.0-alpha.5"
dependencies = [
"assert_matches",
"async-trait",
@ -6075,7 +6075,7 @@ dependencies = [
[[package]]
name = "reth-rpc-types"
version = "0.1.0-alpha.4"
version = "0.1.0-alpha.5"
dependencies = [
"itertools 0.11.0",
"jsonrpsee-types",
@ -6090,7 +6090,7 @@ dependencies = [
[[package]]
name = "reth-stages"
version = "0.1.0-alpha.4"
version = "0.1.0-alpha.5"
dependencies = [
"aquamarine",
"assert_matches",
@ -6126,7 +6126,7 @@ dependencies = [
[[package]]
name = "reth-tasks"
version = "0.1.0-alpha.4"
version = "0.1.0-alpha.5"
dependencies = [
"dyn-clone",
"futures-util",
@ -6139,7 +6139,7 @@ dependencies = [
[[package]]
name = "reth-tracing"
version = "0.1.0-alpha.4"
version = "0.1.0-alpha.5"
dependencies = [
"tracing",
"tracing-appender",
@ -6149,7 +6149,7 @@ dependencies = [
[[package]]
name = "reth-transaction-pool"
version = "0.1.0-alpha.4"
version = "0.1.0-alpha.5"
dependencies = [
"aquamarine",
"assert_matches",
@ -6178,7 +6178,7 @@ dependencies = [
[[package]]
name = "reth-trie"
version = "0.1.0-alpha.4"
version = "0.1.0-alpha.5"
dependencies = [
"criterion",
"derive_more",

View File

@ -1435,9 +1435,8 @@ impl<'this, TX: DbTxMut<'this> + DbTx<'this>> HashingWriter for DatabaseProvider
let accounts = self.basic_accounts(lists)?;
let hashed_addresses = self.insert_account_for_hashing(accounts)?;
for (hashed_address, account) in hashed_addresses {
if account.is_some() {
account_prefix_set.insert(Nibbles::unpack(hashed_address));
} else {
account_prefix_set.insert(Nibbles::unpack(hashed_address));
if account.is_none() {
destroyed_accounts.insert(hashed_address);
}
}