#### Problem
RocksDB's delete_range applies to [from, to) while delete_file_in_range
applies to [from, to] by default, and the rust-rocksdb api does not include
the option to make delete_file_in_range apply to [from, to). Such inconsistency
might cause `blockstore::run_purge` to produce an inconsistent result as it
invokes both delete_range and delete_file_in_range.
#### Summary of Changes
This PR makes all our purge / delete related functions to be inclusive
on both starting and ending slots.
* Fix test_bench_tps_local_cluster_solana
* Remove #[ignore] annotations from dos tests (which are also fixed by this change)
* Remove #[ignore] annotations from local cluster tests (which are also fixed by this change)
In kin-sim, we found that bounded channel causes halt for account
background services. As the number of accounts grows, the time for
pruning and cleaning increases, which would leads to longer intervals
between the pruning of deaded bank slots. With 1.7B accounts, we will
exceed the 10K bounded channel threshold that causes halt of account
back ground services. Without pruning, the node will eventually run out
of memory.
* Add snapshot_storage_lengths_from_fields
* Add SnapshotUnpacker
* Add SnapshotStorageRebuilder
* Rebuild snapshot storage during unpack
* move snapshot unpacker back into snapshot_utils
* use SerializedAppendVecId in storage rebuilder
* create AccountStorageMap type alias
* Wrap storage and next_append_vec_id in a type
* fixed typo
* move use StorageAndNextAppendVecId
* calculate num_rebuilder_threads more concisely
* Install `@noble/ed25519` and create a shim
* Replace `tweetnacl` with `@noble/ed25519` in `Account` class
* Replace `tweetnacl` with `@noble/ed25519` in `Keypair` class
* Replace `tweetnacl` with `@noble/ed25519` in `PublicKey` class
* Replace `tweetnacl` with `@noble/ed25519` in `Ed25519Program` class
* Replace `tweetnacl` with `@noble/ed25519` in `Transaction` class
* Replace `tweetnacl` with `@noble/ed25519` in versioned `Transaction` class
* Remove `tweetnacl` from project
* Damnit, typedoc.
* feat: added intro to dApps and programs pages
* style: removed whitespaces and updates MD syntax
* fix: spellcheck
* feat: what is rent page
* fix: fix typos and removed whitespaces
* fix: updated terminolgy
* feat: added what is web 3 page
* fix: removed dapps and web3 pages
* feat: added links to the developing sidebar
* fix: updated text based on comments
* fix: fixed link
* zk-token-sdk: optimize discrete log search with batch compression
* zk-token-sdk: include batch size as part of discrete log struct
* zk-token-sdk: add a note on discrete log timings
* zk-token-sdk: add upper bound on the number of threads
* zk-token-sdk: minor
* zk-token-sdk: cargo.lock
* add use_durable_nonce option
* log creating nonce account in bench-tps
* try get account data in a loop
* Get account with commitment for nonce in bench-tps
* use get_multiple_accounts in bench-tps
* split accounts request into chunks
* Add a SanitizedMessage type that caches writable accounts indexes
* Add is_writable_account_cache to both SanitizedMessage variants, cache is initialized in constructors