diff --git a/accounts-db/src/accounts_hash.rs b/accounts-db/src/accounts_hash.rs index d842aaa3f31c04..2999d7a4db72cd 100644 --- a/accounts-db/src/accounts_hash.rs +++ b/accounts-db/src/accounts_hash.rs @@ -1279,26 +1279,6 @@ pub struct AccountsHash(pub Hash); #[derive(Debug, Copy, Clone, Eq, PartialEq)] pub struct IncrementalAccountsHash(pub Hash); -/// Hash of accounts written in a single slot -#[derive(Debug, Copy, Clone, Eq, PartialEq)] -pub struct AccountsDeltaHash(pub Hash); - -/// Snapshot serde-safe accounts delta hash -#[cfg_attr(feature = "frozen-abi", derive(AbiExample))] -#[derive(Clone, Default, Debug, Serialize, Deserialize, PartialEq, Eq)] -pub struct SerdeAccountsDeltaHash(pub Hash); - -impl From for AccountsDeltaHash { - fn from(accounts_delta_hash: SerdeAccountsDeltaHash) -> Self { - Self(accounts_delta_hash.0) - } -} -impl From for SerdeAccountsDeltaHash { - fn from(accounts_delta_hash: AccountsDeltaHash) -> Self { - Self(accounts_delta_hash.0) - } -} - /// Snapshot serde-safe accounts hash #[cfg_attr(feature = "frozen-abi", derive(AbiExample))] #[derive(Clone, Default, Debug, Serialize, Deserialize, PartialEq, Eq)] diff --git a/runtime/src/bank/serde_snapshot.rs b/runtime/src/bank/serde_snapshot.rs index 394e266d7d3762..273216b5a93a29 100644 --- a/runtime/src/bank/serde_snapshot.rs +++ b/runtime/src/bank/serde_snapshot.rs @@ -25,7 +25,7 @@ mod tests { ACCOUNTS_DB_CONFIG_FOR_TESTING, }, accounts_file::{AccountsFile, AccountsFileError, StorageAccess}, - accounts_hash::{AccountsDeltaHash, AccountsHash}, + accounts_hash::AccountsHash, }, solana_epoch_schedule::EpochSchedule, solana_genesis_config::create_genesis_config, @@ -143,7 +143,6 @@ mod tests { &mut writer, bank_fields, bank2.get_bank_hash_stats(), - AccountsDeltaHash(Hash::default()), // obsolete, will be removed next expected_accounts_hash, &get_storages_to_serialize(&bank2.get_snapshot_storages(None)), ExtraFieldsToSerialize { @@ -393,7 +392,7 @@ mod tests { #[cfg_attr( feature = "frozen-abi", derive(AbiExample), - frozen_abi(digest = "7F6xtBno4tS6QaD3wP8kQxa9BiRtvmCu8TzFNprFjM7A") + frozen_abi(digest = "RHixw67oBUdJQn9TLES55Nb4Sr1wuAfo7NTJH56oRxb") )] #[derive(Serialize)] pub struct BankAbiTestWrapper { @@ -424,7 +423,6 @@ mod tests { serializer, bank_fields, BankHashStats::default(), - AccountsDeltaHash(Hash::new_unique()), AccountsHash(Hash::new_unique()), &get_storages_to_serialize(&snapshot_storages), ExtraFieldsToSerialize { diff --git a/runtime/src/serde_snapshot.rs b/runtime/src/serde_snapshot.rs index 41723dc15b17b4..6b9351c8fa81b2 100644 --- a/runtime/src/serde_snapshot.rs +++ b/runtime/src/serde_snapshot.rs @@ -19,7 +19,7 @@ use { AtomicAccountsFileId, DuplicatesLtHash, IndexGenerationInfo, }, accounts_file::{AccountsFile, StorageAccess}, - accounts_hash::{AccountsDeltaHash, AccountsHash, AccountsLtHash}, + accounts_hash::{AccountsHash, AccountsLtHash}, accounts_update_notifier_interface::AccountsUpdateNotifier, ancestors::AncestorsForSerialization, blockhash_queue::BlockhashQueue, @@ -61,9 +61,7 @@ mod types; mod utils; pub(crate) use { - solana_accounts_db::accounts_hash::{ - SerdeAccountsDeltaHash, SerdeAccountsHash, SerdeIncrementalAccountsHash, - }, + solana_accounts_db::accounts_hash::{SerdeAccountsHash, SerdeIncrementalAccountsHash}, storage::{SerializableAccountStorageEntry, SerializedAccountsFileId}, }; @@ -110,7 +108,7 @@ pub struct BankIncrementalSnapshotPersistence { #[cfg_attr(feature = "frozen-abi", derive(AbiExample))] #[derive(Clone, Default, Debug, Serialize, Deserialize, PartialEq, Eq)] struct BankHashInfo { - accounts_delta_hash: SerdeAccountsDeltaHash, + obsolete_accounts_delta_hash: [u8; 32], accounts_hash: SerdeAccountsHash, stats: BankHashStats, } @@ -635,7 +633,6 @@ pub fn serialize_bank_snapshot_into( stream: &mut BufWriter, bank_fields: BankFieldsToSerialize, bank_hash_stats: BankHashStats, - accounts_delta_hash: AccountsDeltaHash, accounts_hash: AccountsHash, account_storage_entries: &[Vec>], extra_fields: ExtraFieldsToSerialize, @@ -652,7 +649,6 @@ where &mut serializer, bank_fields, bank_hash_stats, - accounts_delta_hash, accounts_hash, account_storage_entries, extra_fields, @@ -665,7 +661,6 @@ pub fn serialize_bank_snapshot_with( serializer: S, bank_fields: BankFieldsToSerialize, bank_hash_stats: BankHashStats, - accounts_delta_hash: AccountsDeltaHash, accounts_hash: AccountsHash, account_storage_entries: &[Vec>], extra_fields: ExtraFieldsToSerialize, @@ -680,7 +675,6 @@ where slot, account_storage_entries, bank_hash_stats, - accounts_delta_hash, accounts_hash, write_version, }; @@ -703,7 +697,6 @@ impl Serialize for SerializableBankAndStorage<'_> { let mut bank_fields = self.bank.get_fields_to_serialize(); let accounts_db = &self.bank.rc.accounts.accounts_db; let bank_hash_stats = self.bank.get_bank_hash_stats(); - let accounts_delta_hash = AccountsDeltaHash(Hash::default()); // obsolete, any value works let accounts_hash = accounts_db.get_accounts_hash(slot).unwrap().0; let write_version = accounts_db.write_version.load(Ordering::Acquire); let lamports_per_signature = bank_fields.fee_rate_governor.lamports_per_signature; @@ -715,7 +708,6 @@ impl Serialize for SerializableBankAndStorage<'_> { slot, account_storage_entries: self.snapshot_storages, bank_hash_stats, - accounts_delta_hash, accounts_hash, write_version, }, @@ -747,7 +739,6 @@ impl Serialize for SerializableBankAndStorageNoExtra<'_> { let bank_fields = self.bank.get_fields_to_serialize(); let accounts_db = &self.bank.rc.accounts.accounts_db; let bank_hash_stats = self.bank.get_bank_hash_stats(); - let accounts_delta_hash = AccountsDeltaHash(Hash::default()); // obsolete, any value works let accounts_hash = accounts_db.get_accounts_hash(slot).unwrap().0; let write_version = accounts_db.write_version.load(Ordering::Acquire); ( @@ -756,7 +747,6 @@ impl Serialize for SerializableBankAndStorageNoExtra<'_> { slot, account_storage_entries: self.snapshot_storages, bank_hash_stats, - accounts_delta_hash, accounts_hash, write_version, }, @@ -783,8 +773,7 @@ struct SerializableAccountsDb<'a> { slot: Slot, account_storage_entries: &'a [Vec>], bank_hash_stats: BankHashStats, - accounts_delta_hash: AccountsDeltaHash, // obsolete, will be removed next - accounts_hash: AccountsHash, // obsolete, will be removed next + accounts_hash: AccountsHash, // obsolete, will be removed next write_version: u64, } @@ -806,7 +795,7 @@ impl Serialize for SerializableAccountsDb<'_> { ) })); let bank_hash_info = BankHashInfo { - accounts_delta_hash: self.accounts_delta_hash.into(), + obsolete_accounts_delta_hash: [0; 32], accounts_hash: self.accounts_hash.into(), stats: self.bank_hash_stats.clone(), }; diff --git a/runtime/src/serde_snapshot/tests.rs b/runtime/src/serde_snapshot/tests.rs index d87e413e8f486a..577d14e58d679f 100644 --- a/runtime/src/serde_snapshot/tests.rs +++ b/runtime/src/serde_snapshot/tests.rs @@ -22,7 +22,7 @@ mod serde_snapshot_tests { AccountsDb, AtomicAccountsFileId, }, accounts_file::{AccountsFile, AccountsFileError, StorageAccess}, - accounts_hash::{AccountsDeltaHash, AccountsHash}, + accounts_hash::AccountsHash, ancestors::Ancestors, }, solana_clock::Slot, @@ -103,7 +103,6 @@ mod serde_snapshot_tests { W: Write, { let bank_hash_stats = BankHashStats::default(); - let accounts_delta_hash = AccountsDeltaHash(Hash::default()); // obsolete, any value works let accounts_hash = AccountsHash(Hash::default()); // obsolete, any value works let write_version = accounts_db.write_version.load(Ordering::Acquire); serialize_into( @@ -112,7 +111,6 @@ mod serde_snapshot_tests { slot, account_storage_entries, bank_hash_stats, - accounts_delta_hash, accounts_hash, write_version, }, diff --git a/runtime/src/snapshot_package.rs b/runtime/src/snapshot_package.rs index 03085ca3a71420..5fb879d45af555 100644 --- a/runtime/src/snapshot_package.rs +++ b/runtime/src/snapshot_package.rs @@ -5,9 +5,7 @@ use { }, log::*, solana_accounts_db::{ - accounts::Accounts, - accounts_db::AccountStorageEntry, - accounts_hash::{AccountsDeltaHash, AccountsHash}, + accounts::Accounts, accounts_db::AccountStorageEntry, accounts_hash::AccountsHash, }, solana_clock::Slot, solana_epoch_schedule::EpochSchedule, @@ -67,14 +65,12 @@ impl AccountsPackage { let snapshot_info = { let accounts_db = &bank.rc.accounts.accounts_db; let write_version = accounts_db.write_version.load(Ordering::Acquire); - let accounts_delta_hash = AccountsDeltaHash(Hash::default()); // obsolete, any value works let bank_hash_stats = bank.get_bank_hash_stats(); let bank_fields_to_serialize = bank.get_fields_to_serialize(); SupplementalSnapshotInfo { status_cache_slot_deltas, bank_fields_to_serialize, bank_hash_stats, - accounts_delta_hash, write_version, } }; @@ -122,7 +118,6 @@ impl AccountsPackage { status_cache_slot_deltas: Vec::default(), bank_fields_to_serialize: BankFieldsToSerialize::default_for_tests(), bank_hash_stats: BankHashStats::default(), - accounts_delta_hash: AccountsDeltaHash(Hash::default()), write_version: u64::default(), }), enqueued: Instant::now(), @@ -145,7 +140,6 @@ pub struct SupplementalSnapshotInfo { pub status_cache_slot_deltas: Vec, pub bank_fields_to_serialize: BankFieldsToSerialize, pub bank_hash_stats: BankHashStats, - pub accounts_delta_hash: AccountsDeltaHash, // obsolete, will be removed next pub write_version: u64, } @@ -167,7 +161,6 @@ pub struct SnapshotPackage { pub status_cache_slot_deltas: Vec, pub bank_fields_to_serialize: BankFieldsToSerialize, pub bank_hash_stats: BankHashStats, - pub accounts_delta_hash: AccountsDeltaHash, // obsolete, will be removed next pub accounts_hash: AccountsHash, pub write_version: u64, @@ -199,7 +192,6 @@ impl SnapshotPackage { snapshot_storages: accounts_package.snapshot_storages, status_cache_slot_deltas: snapshot_info.status_cache_slot_deltas, bank_fields_to_serialize: snapshot_info.bank_fields_to_serialize, - accounts_delta_hash: snapshot_info.accounts_delta_hash, bank_hash_stats: snapshot_info.bank_hash_stats, accounts_hash: AccountsHash(Hash::default()), // obsolete, will be removed next write_version: snapshot_info.write_version, @@ -221,7 +213,6 @@ impl SnapshotPackage { snapshot_storages: Vec::default(), status_cache_slot_deltas: Vec::default(), bank_fields_to_serialize: BankFieldsToSerialize::default_for_tests(), - accounts_delta_hash: AccountsDeltaHash(Hash::default()), bank_hash_stats: BankHashStats::default(), accounts_hash: AccountsHash(Hash::default()), write_version: u64::default(), diff --git a/runtime/src/snapshot_utils.rs b/runtime/src/snapshot_utils.rs index 5cb10e68387f5e..3571a4c58d2646 100644 --- a/runtime/src/snapshot_utils.rs +++ b/runtime/src/snapshot_utils.rs @@ -25,7 +25,7 @@ use { account_storage_reader::AccountStorageReader, accounts_db::{AccountStorageEntry, AtomicAccountsFileId}, accounts_file::{AccountsFile, AccountsFileError, StorageAccess}, - accounts_hash::{AccountsDeltaHash, AccountsHash}, + accounts_hash::AccountsHash, hardened_unpack::{self, ArchiveChunker, BytesChannelReader, MultiBytes, UnpackError}, utils::{move_and_async_delete_path, ACCOUNTS_RUN_DIR, ACCOUNTS_SNAPSHOT_DIR}, }, @@ -828,7 +828,6 @@ pub fn serialize_and_archive_snapshot_package( status_cache_slot_deltas, bank_fields_to_serialize, bank_hash_stats, - accounts_delta_hash, accounts_hash, write_version, enqueued: _, @@ -841,7 +840,6 @@ pub fn serialize_and_archive_snapshot_package( status_cache_slot_deltas.as_slice(), bank_fields_to_serialize, bank_hash_stats, - accounts_delta_hash, accounts_hash, write_version, should_flush_and_hard_link_storages, @@ -902,7 +900,6 @@ fn serialize_snapshot( slot_deltas: &[BankSlotDelta], mut bank_fields: BankFieldsToSerialize, bank_hash_stats: BankHashStats, - accounts_delta_hash: AccountsDeltaHash, accounts_hash: AccountsHash, write_version: u64, should_flush_and_hard_link_storages: bool, @@ -965,7 +962,6 @@ fn serialize_snapshot( stream, bank_fields, bank_hash_stats, - accounts_delta_hash, accounts_hash, &get_storages_to_serialize(snapshot_storages), extra_fields,