* Allow Blockstore to open unknown columns (#34174)
As we develop new features or modifications, we occassionally need to
introduce new columns to the Blockstore. Adding a new column introduces
a compatibility break given that opening the database in Primary mode
(R/W access) requires opening all columns. Reverting to an old software
version that is unaware of the new column is obviously problematic.
In the past, we have addressed by backporting minimal "stub" PR's to
older versions. This is annoying, and only allow compatibility for the
single version or two that we backport to.
This PR adds a change to automatically detect all columns, and create
default column descriptors for columns we were unaware of. As a result,
older software versions can open a Blockstore that was modified by a
newer software version, even if that new version added columns that the
old version is unaware of.
(cherry picked from commit 71c1782c74)
# Conflicts:
# ledger/src/blockstore_db.rs
* Merge conflicts
---------
Co-authored-by: steviez <steven@solana.com>
Output BankHashDetails file when leader drops its' own block (#34256)
Currently, the file is generated when a node drops a block that was
produced by another node. However, it would also be beneficial to see
the account state when a node drops its' own block.
Output the file in this additional failure codepath
(cherry picked from commit 935e06f8f1)
Co-authored-by: steviez <steven@solana.com>
direct_mapping: disable stack frame gaps (#34254)
Gaps don't work with direct mapping which assumes a 1:1 mapping between virtual
and host addresses.
(cherry picked from commit a0df9def91)
Co-authored-by: Alessandro Decina <alessandro.d@gmail.com>
cpi: direct_mapping: always zero spare capacity if account alloc changes (#34141)
If the vector holding an account is reallocated during execution of a callee,
we must zero the spare capacity regardless of whether the account size changed,
because the underlying vector might contain uninitialized memory in the spare
capacity.
Co-authored-by: Alessandro Decina <alessandro.d@gmail.com>
direct_mapping: fix iter_memory_pair_chunks in reverse mode (#34204)
iter_memory_pair_chunks was iterating regions in reverse, but not memory
_within_ regions in reverse.
This commit fixes the issue and simplifies the implementation by removing
nested loops which made control flow hard to reason about.
(cherry picked from commit 09088822e7)
Co-authored-by: Alessandro Decina <alessandro.d@gmail.com>
Do not prune cache entry if the runtime environment is different (#34100)
(cherry picked from commit 3368579eff)
Co-authored-by: Pankaj Garg <pankaj@solana.com>
Fix - `Bank::compute_active_feature_set()` and `Bank::apply_feature_activations()` (#34124)
* Moves modification of feature accounts from Bank::compute_active_feature_set() into Bank::apply_feature_activations().
* Renames allow_new_activations and newly_activated to include_pending and pending.
* Fix test_compute_active_feature_set.
(cherry picked from commit 6b8545061f)
Co-authored-by: Alexander Meißner <AlexanderMeissner@gmx.net>
propagates the new contact-info through gossip (#34092)
Working towards migrating from legacy contact-info to the new
contact-info:
https://github.com/solana-labs/solana/pull/29596
(cherry picked from commit ba0a49b436)
Co-authored-by: behzad nouri <behzadnouri@gmail.com>
cpi: fix capacity check in update_caller_account (#34064)
reserve(additional) reserves additional bytes on top of the current _length_
not capacity. Before this fix we could potentially reserve less capacity than
required.
(cherry picked from commit d009d7304a)
Co-authored-by: Alessandro Decina <alessandro.d@gmail.com>
Add --release-with-debug option to cargo-install-all.sh (#33383)
* Add --canary option to cargo-install-all for building with separate debug symbols
* lint
* Remove debug-assertions
* switch flag from --canary to --release-with-debug
(cherry picked from commit 87b4dc64e3)
Co-authored-by: Will Hickey <will.hickey@solana.com>
adds keep-alive-interval to repair QUIC transport config (#33866)
QUIC connections may timeout due to infrequent repair requests. The commit
configures keep_alive_interval and max_idle_timeout to avoid timeouts.
(cherry picked from commit 3ac2507d36)
Co-authored-by: behzad nouri <behzadnouri@gmail.com>
Geyser: return real parent blockhash, or default (#33873)
Return real parent blockhash, or default
(cherry picked from commit d6ac9bea84)
Co-authored-by: Tyera <tyera@solana.com>
[zk-token-proof] Round compute units to nice numbers (#33910)
round zk-token-proof compute units to nice numbers
(cherry picked from commit b0bf24b6fc)
Co-authored-by: samkim-crypto <skim13@cs.stanford.edu>
Use program cache fork graph in extract() (#33806)
* Use program cache fork graph instead of WorkingSlot trait
* Fix deadlocked tests
* keep WorkingSlot trait for now
(cherry picked from commit 78c31aa6b8)
Co-authored-by: Pankaj Garg <pankaj@solana.com>
docs: outline requirement of stake in order to vote (#33842)
* docs: outline requirement of stake in order to vote
* pr feedback: move stake section up
(cherry picked from commit a3b0348649)
Co-authored-by: Ashwin Sekar <ashwin@solana.com>
[zk-token-sdk] Check that discrete log compression batch size is greater than 0 (#33699)
check that discrete log compression batch size is greater than 0
(cherry picked from commit 381d2254eb)
Co-authored-by: samkim-crypto <skim13@cs.stanford.edu>
Update Solang Solidity compiler to v0.3.3 (#33830)
Signed-off-by: Sean Young <sean@mess.org>
(cherry picked from commit 8e0acf481c)
Co-authored-by: Sean Young <sean@mess.org>
prunes turbine QUIC connections (#33663)
The commit implements lazy eviction for turbine QUIC connections.
The cache is allowed to grow to 2 x capacity at which point at least
half of the entries with lowest stake are evicted, resulting in an
amortized O(1) performance.
(cherry picked from commit e0b59a6f53)
Co-authored-by: behzad nouri <behzadnouri@gmail.com>
Set a global fork graph in program cache (#33776)
* Set a global fork graph in program cache
* fix deadlock
* review feedback
(cherry picked from commit 59cb3b57ee)
Co-authored-by: Pankaj Garg <pankaj@solana.com>
* updated inner_call for hashing fn to follow generic approach (#33128)
* updated inner_call for hashing fn to follow generic approach
* different hash compute budget values for all digests
* fixed conflicts
* reverted changes to compute_budget.rs and added 3method to trait to get compute budget values
* updated type for result fn for HasherImpl
* using Hash directly in result fn, got rid of HASH_BYTES and removed comment form compute_budget
* updated import statement
* cargo fmt -all
* removed unused import and reference related warning
* oops forgot semicolon
* removed trailing white space
(cherry picked from commit a60d1857bf)
* Bump solana_rbpf to v0.8.0 (#33679)
* Bumps solana_rbpf to v0.8.0
* Adjustments:
Replaces declare_syscall!() with declare_builtin_function!().
Removes Config::encrypt_runtime_environment.
Simplifies error propagation.
(cherry picked from commit a5c7c999e2)
---------
Co-authored-by: Alexander Meißner <AlexanderMeissner@gmx.net>
[zk-token-sdk] Limit max seed length for key derivations (#33700)
* limit max seed length for elgamal keypairs
* limit max seed length for authenticated encryption keys
* Apply suggestions from code review
Co-authored-by: Jon Cinque <me@jonc.dev>
* rename `SeedLengthTooLarge` to `SeedLengthTooLong`
---------
Co-authored-by: Jon Cinque <me@jonc.dev>
(cherry picked from commit dd2b1bb5a0)
Co-authored-by: samkim-crypto <skim13@cs.stanford.edu>