Proto commits in solana-labs/solana

These 100 commits are when the Protocol Buffers files have changed:

Commit:bfe44d9
Author:Wen
Committer:GitHub

Wen restart aggregate last voted fork slots (#33892) * Push and aggregate RestartLastVotedForkSlots. * Fix API and lint errors. * Reduce clutter. * Put my own LastVotedForkSlots into the aggregate. * Write LastVotedForkSlots aggregate progress into local file. * Fix typo and name constants. * Fix flaky test. * Clarify the comments. * - Use constant for wait_for_supermajority - Avoid waiting after first shred when repair is in wen_restart * Fix delay_after_first_shred and remove loop in wen_restart. * Read wen_restart slots inside the loop instead. * Discard turbine shreds while in wen_restart in windows insert rather than shred_fetch_stage. * Use the new Gossip API. * Rename slots_to_repair_for_wen_restart and a few others. * Rename a few more and list all states. * Pipe exit down to aggregate loop so we can exit early. * Fix import of RestartLastVotedForkSlots. * Use the new method to generate test bank. * Make linter happy. * Use new bank constructor for tests. * Fix a bad merge. * - add new const for wen_restart - fix the test to cover more cases - add generate_repairs_for_slot_not_throtted_by_tick and generate_repairs_for_slot_throtted_by_tick to make it readable * Add initialize and put the main logic into a loop. * Change aggregate interface and other fixes. * Add failure tests and tests for state transition. * Add more tests and add ability to recover from written records in last_voted_fork_slots_aggregate. * Various name changes. * We don't really care what type of error is returned. * Wait on expected progress message in proto file instead of sleep. * Code reorganization and cleanup. * Make linter happy. * Add WenRestartError. * Split WenRestartErrors into separate erros per state. * Revert "Split WenRestartErrors into separate erros per state." This reverts commit 4c920cb8f8d492707560441912351cca779129f6. * Use individual functions when testing for failures. * Move initialization errors into initialize(). * Use anyhow instead of thiserror to generate backtrace for error. * Add missing Cargo.lock. * Add error log when last_vote is missing in the tower storage. * Change error log info. * Change test to match exact error.

The documentation is generated from this commit.

Commit:573ec81
Author:Tyera
Committer:GitHub

storage-bigtable: Upload entries (#34099) * Add entries table to bt init * Add entries to storage-proto * Use new Blockstore method in bigtable_upload * Add LedgerStorage::upload_confirmed_block_with_entries and use in bigtable_upload * Upload entries to bigtable

Commit:630feed
Author:Wen
Committer:GitHub

Add wen_restart module (#33344) * Add wen_restart module: - Implement reading LastVotedForkSlots from blockstore. - Add proto file to record the intermediate results. - Also link wen_restart into validator. - Move recreation of tower outside replay_stage so we can get last_vote. * Update lock file. * Fix linter errors. * Fix depencies order. * Update wen_restart explanation and small fixes. * Generate tower outside tvu. * Update validator/src/cli.rs Co-authored-by: Tyera <teulberg@gmail.com> * Update wen-restart/protos/wen_restart.proto Co-authored-by: Tyera <teulberg@gmail.com> * Update wen-restart/build.rs Co-authored-by: Tyera <teulberg@gmail.com> * Update wen-restart/src/wen_restart.rs Co-authored-by: Tyera <teulberg@gmail.com> * Rename proto directory. * Rename InitRecord to MyLastVotedForkSlots, add imports. * Update wen-restart/Cargo.toml Co-authored-by: Tyera <teulberg@gmail.com> * Update wen-restart/src/wen_restart.rs Co-authored-by: Tyera <teulberg@gmail.com> * Move prost-build dependency to project toml. * No need to continue if the distance between slot and last_vote is already larger than MAX_SLOTS_ON_VOTED_FORKS. * Use 16k slots instead of 81k slots, a few more wording changes. * Use AncestorIterator which does the same thing. * Update Cargo.lock * Update Cargo.lock --------- Co-authored-by: Tyera <teulberg@gmail.com>

Commit:1840fd7
Author:Trent Nelson
Committer:GitHub

Feature - better error codes for tx lamport check (#33343) Replaces `TransactionError::InstructionError(0, InstructionError::UnbalancedInstruction)` with `TransactionError::UnbalancedTransaction`. Co-authored-by: Alexander Meißner <AlexanderMeissner@gmx.net>

Commit:2939e32
Author:Alexander Meißner
Committer:GitHub

v1.14 backport - better error codes for tx lamport check (#33352) Replaces `TransactionError::InstructionError(0, InstructionError::UnbalancedInstruction)` with `TransactionError::UnbalancedTransaction`.

Commit:36f43cc
Author:Alexander Meißner
Committer:GitHub

v1.16 backport - better error codes for tx lamport check (#33351) Replaces `TransactionError::InstructionError(0, InstructionError::UnbalancedInstruction)` with `TransactionError::UnbalancedTransaction`.

Commit:85a0e31
Author:Jeff Washington (jwash)
Committer:GitHub

add ProgramExecutionTemporarilyRestricted error (#31796) * add StakeProgramUnavailable error * rename to ProgramExecutionTemporarilyRestricted * Update sdk/src/transaction/error.rs Co-authored-by: Trent Nelson <trent.a.b.nelson@gmail.com> * fmt * update frozen abi hash * add account_index to ProgramExecutionTemporarilyRestricted error * Update sdk/src/transaction/error.rs Co-authored-by: mvines <mvines@gmail.com> * populate transaction_details from transaction_error for ProgramExecutionTemporarilyRestricted error * fix a test * update abi digest * Update sdk/src/transaction/error.rs Co-authored-by: Brooks <brooks@prumo.org> --------- Co-authored-by: Trent Nelson <trent.a.b.nelson@gmail.com> Co-authored-by: HaoranYi <haoran.yi@solana.com> Co-authored-by: HaoranYi <haoran.yi@gmail.com> Co-authored-by: mvines <mvines@gmail.com> Co-authored-by: Brooks <brooks@prumo.org>

Commit:75954dc
Author:Andrew Fitzgerald
Committer:GitHub

Banking worker (#30970)

Commit:3e500d9
Author:Tao Zhu
Committer:GitHub

Feature gate builtin consumes static units during processing instruction (#30702) * add feature gate * builtins consume statically defined units at beginning of process_instruction() * Add new instructionError; return error if builtin did not consume units to enforce builtin to consume units; * updated related tests * updated ProgramTest with deactivated native_programs_consume_cu feature to continue support existing mock/test programs that do not consume units

Commit:3b9438f
Author:Tao Zhu
Committer:GitHub

Replace hardcoded loaded accounts size limit with compute budget instruction (#30506) 1. replace hardcoded loaded accounts data size limit with compute budget instruction; 2. new transaction error for invalid account data size limit 3. test requested limit with combination of features and transactions

Commit:8270f29
Author:mergify[bot]
Committer:GitHub

Limit loaded data per transaction to a fixed cap (backport #29743) (#30037) Co-authored-by: Tao Zhu <82401714+taozhu-chicago@users.noreply.github.com>

Commit:a5af546
Author:Tao Zhu
Committer:GitHub

Limit loaded data per transaction to a fixed cap (#29743)

Commit:1d88654
Author:Tao Zhu
Committer:GitHub

Revert "Cap accounts data a transaction can load by its requested limit" (#29373) Revert "Cap accounts data a transaction can load by its requested limit (#27840)" This reverts commit 81dc2e56ace6705a97ab64e5f360222f0160a3de.

Commit:d7808fa
Author:Tao Zhu
Committer:GitHub

Revert "Cap accounts data a transaction can load by its requested limit (backport #27840)" (#28861) Revert "Cap accounts data a transaction can load by its requested limit (backport #27840) (#28797)" This reverts commit 8ad913621ce61f5cb1409a0763297e809a0c8407.

Commit:8ad9136
Author:mergify[bot]
Committer:GitHub

Cap accounts data a transaction can load by its requested limit (backport #27840) (#28797) * Cap accounts data a transaction can load by its requested limit (#27840) - Add new compute-budget instruction to set transaction-wide accounts data size limit - Set default accounts data limit to 10MB, and max to 100MB, per transaction; - Add getters to make changing default and/or max values easier in the future with feature gates; - added error counter for transactions exceed data size limit (cherry picked from commit 81dc2e56ace6705a97ab64e5f360222f0160a3de) # Conflicts: # core/src/transaction_priority_details.rs # program-runtime/src/compute_budget.rs # programs/bpf/tests/programs.rs # runtime/src/accounts.rs # runtime/src/bank.rs # sdk/src/feature_set.rs * manual fix backport conflicts Co-authored-by: Tao Zhu <82401714+taozhu-chicago@users.noreply.github.com> Co-authored-by: Tao Zhu <tao@solana.com>

Commit:81dc2e5
Author:Tao Zhu
Committer:GitHub

Cap accounts data a transaction can load by its requested limit (#27840) - Add new compute-budget instruction to set transaction-wide accounts data size limit - Set default accounts data limit to 10MB, and max to 100MB, per transaction; - Add getters to make changing default and/or max values easier in the future with feature gates; - added error counter for transactions exceed data size limit

Commit:2d8665d
Author:Justin Starry
Committer:GitHub

Record inner instruction stack height (#28430) * Record inner instruction stack height * fix sbf tests * feedback

Commit:71aee4f
Author:Alexander Meißner
Committer:GitHub

Feature: Explicitly limit `TransactionContext::instruction_trace_capacity` (#27938) * Renames instruction_stack_capacity => instruction_stack_capacity. * Replaces number_of_instructions_at_transaction_level by instruction_trace_capacity. * Adds MaxInstructionTraceLengthExceeded. * Adjusts TransactionContext::new() parameter. * Adds feature gate limit_max_instruction_trace_length. * Adds test_max_instruction_trace_length().

Commit:757e46c
Author:Brooks Prumo
Committer:GitHub

Set cap for new allocations per transaction (#27385)

Commit:ce594bc
Author:mergify[bot]
Committer:GitHub

transaction-status, storage-proto: add compute_units_consumed (backport #26528) (#26970) transaction-status, storage-proto: add compute_units_consumed (#26528) * transaction-status, storage-proto: add compute_units_consumed * fix bpf test Co-authored-by: Justin Starry <justin@solana.com> (cherry picked from commit 270315a7f6b226e4ab16379a9f3f11505a7cbd41) Co-authored-by: Richard Patel <me@terorie.dev>

Commit:270315a
Author:Richard Patel
Committer:GitHub

transaction-status, storage-proto: add compute_units_consumed (#26528) * transaction-status, storage-proto: add compute_units_consumed * fix bpf test Co-authored-by: Justin Starry <justin@solana.com>

Commit:f8e9af5
Author:Justin Starry
Committer:GitHub

Cap the number of accounts passed to a bpf program ix (#26630) * Cap the number of accounts passed to a bpf program ix * update bank abi hash * fix ci failures

Commit:8c1ae18
Author:mergify[bot]
Committer:GitHub

Add program_id to TokenBalances structs (backport #24513) (#26148) * Add program_id to TokenBalances structs (#24513) * Add program_id to TokenBalances structs * Update docs (cherry picked from commit 77f6ec5625e2686c19161ead42dd9a66f612ca25) # Conflicts: # docs/src/developing/clients/jsonrpc-api.md * Fixup docs conflicts Co-authored-by: Tyera Eulberg <tyera@solana.com>

Commit:12a12b9
Author:mergify[bot]
Committer:GitHub

Include account index in rent paying account tx error (backport #25189) (#25246) * Include account index in rent paying account tx error (#25189) (cherry picked from commit f81c5df1f02b0e41f3e5dd3d236a34818cc40a5a) # Conflicts: # sdk/src/feature_set.rs * conflicts Co-authored-by: Justin Starry <justin@solana.com>

Commit:f81c5df
Author:Justin Starry
Committer:GitHub

Include account index in rent paying account tx error (#25189)

Commit:d7badcb
Author:mergify[bot]
Committer:GitHub

support 64-bit prioritization fee (backport #25027) (#25196) * support 64-bit prioritization fee (#25027) (cherry picked from commit cde15ff687b27c0d9df29304f8b94c326b67f021) Co-authored-by: Jack May <jack@solana.com> Co-authored-by: Tao Zhu <tao@solana.com>

Commit:cde15ff
Author:Jack May
Committer:GitHub

support 64-bit prioritization fee (#25027)

Commit:77f6ec5
Author:Tyera Eulberg
Committer:GitHub

Add program_id to TokenBalances structs (#24513) * Add program_id to TokenBalances structs * Update docs

Commit:fb67ff1
Author:Tyera Eulberg
Committer:GitHub

Remove replica-node crates (#24152)

Commit:7af4846
Author:Jon Cinque
Committer:GitHub

transaction-status: Add return data to meta (#23688) * transaction-status: Add return data to meta * Add return data to simulation results * Use pretty-hex for printing return data * Update arg name, make TransactionRecord struct * Rename TransactionRecord -> ExecutionRecord

Commit:7758c32
Author:Brooks Prumo
Committer:GitHub

Banking Stage drops transactions that'll exceed the total account data size limit (#23537)

Commit:e0f5fb8
Author:mergify[bot]
Committer:GitHub

Ensure blocks do not exceed the max accounts data size during Replay Stage (backport #23422) (#23589) * Ensure blocks do not exceed the max accounts data size during Replay Stage (#23422) (cherry picked from commit 3c6840050cdb662359e8eec3eba1bdbe1552c45b) # Conflicts: # runtime/src/bank.rs * fix conflicts Co-authored-by: Brooks Prumo <brooks@solana.com>

Commit:3c68400
Author:Brooks Prumo
Committer:GitHub

Ensure blocks do not exceed the max accounts data size during Replay Stage (#23422)

Commit:4ce59bb
Author:mergify[bot]
Committer:GitHub

Reject close of active vote accounts (backport #22651) (#22895) * Reject close of active vote accounts (#22651) * 10461 Reject close of vote accounts unless it earned no credits in the previous epoch. This is checked by comparing current epoch (from clock sysvar) with the most recent epoch with credits in vote state. (cherry picked from commit 75563f6c7b5bcba062468385093dc7840d388451) # Conflicts: # programs/vote/src/vote_processor.rs # programs/vote/src/vote_state/mod.rs # runtime/src/bank.rs # sdk/program/src/instruction.rs # sdk/program/src/program_error.rs # storage-proto/proto/transaction_by_addr.proto # storage-proto/src/convert.rs * Resolve merge conflicts * lint * Clippy cleanup * Add import to test module * remove vote processor * Update test_abi_digest hash * cleanup Co-authored-by: Will Hickey <csu_hickey@yahoo.com> Co-authored-by: Will Hickey <will.hickey@solana.com>

Commit:643442e
Author:mergify[bot]
Committer:GitHub

Reject close of active vote accounts (backport #22651) (#22896) * Reject close of active vote accounts (#22651) * 10461 Reject close of vote accounts unless it earned no credits in the previous epoch. This is checked by comparing current epoch (from clock sysvar) with the most recent epoch with credits in vote state. (cherry picked from commit 75563f6c7b5bcba062468385093dc7840d388451) # Conflicts: # programs/vote/src/vote_processor.rs # sdk/src/feature_set.rs * Resolve merge conflicts Co-authored-by: Will Hickey <csu_hickey@yahoo.com> Co-authored-by: Will Hickey <will.hickey@solana.com>

Commit:75563f6
Author:Will Hickey
Committer:GitHub

Reject close of active vote accounts (#22651) * 10461 Reject close of vote accounts unless it earned no credits in the previous epoch. This is checked by comparing current epoch (from clock sysvar) with the most recent epoch with credits in vote state.

Commit:9c9f2dd
Author:Tao Zhu
Committer:Tao Zhu

port counting vote CUs to block cost (#22477)

Commit:7a421fe
Author:Tao Zhu
Committer:Tao Zhu

Port counting vote CUs to block cost to v1.9

Commit:f804ccd
Author:Justin Starry
Committer:GitHub

Store address table lookups in blockstore and bigtable (#22402)

Commit:58dcc45
Author:mergify[bot]
Committer:GitHub

Prevent rent-paying account creation (backport #22292) (#22428) * Prevent rent-paying account creation (#22292) * Fixup typo * Add new feature * Add new TransactionError * Add framework for checking account state before and after transaction processing * Fail transactions that leave new rent-paying accounts * Only check rent-state of writable tx accounts * Review comments: combine process_result success behavior; log and metrics before feature activation * Fix tests that assume rent-exempt accounts are okay * Remove test no longer relevant * Remove native/sysvar special case * Move metrics submission to report legacy->legacy rent paying transitions as well (cherry picked from commit 637e366b18334e655a80c4453eef6702864d122b) # Conflicts: # runtime/src/bank.rs # runtime/src/lib.rs * Fix conflicts and rework for TransactionRefCells Co-authored-by: Tyera Eulberg <teulberg@gmail.com> Co-authored-by: Tyera Eulberg <tyera@solana.com>

Commit:637e366
Author:Tyera Eulberg
Committer:GitHub

Prevent rent-paying account creation (#22292) * Fixup typo * Add new feature * Add new TransactionError * Add framework for checking account state before and after transaction processing * Fail transactions that leave new rent-paying accounts * Only check rent-state of writable tx accounts * Review comments: combine process_result success behavior; log and metrics before feature activation * Fix tests that assume rent-exempt accounts are okay * Remove test no longer relevant * Remove native/sysvar special case * Move metrics submission to report legacy->legacy rent paying transitions as well

Commit:1f00926
Author:Justin Starry
Committer:GitHub

Add runtime support for address table lookups (backport #22223) (#22354)

Commit:52d12cc
Author:Justin Starry
Committer:GitHub

Add runtime support for address table lookups (#22223) * Add support for address table lookups in runtime * feedback * feedback

Commit:687cd47
Author:mergify[bot]
Committer:GitHub

Add AccountsDataMeter to InvokeContext (#21813) (#22299) (cherry picked from commit 800472ddf57af0ef3c946829c4aa094a9184f391) Co-authored-by: Brooks Prumo <brooks@solana.com>

Commit:3b59f67
Author:mergify[bot]
Committer:GitHub

Limit number of accounts that a transaction can lock (backport #22201) (#22263) * Limit number of accounts that a transaction can lock (#22201) (cherry picked from commit 2b5e00d36d58186f1c2bd9b956b488a89573f239) # Conflicts: # accountsdb-plugin-postgres/src/postgres_client/postgres_client_transaction.rs # runtime/src/accounts.rs # runtime/src/bank.rs # sdk/src/feature_set.rs # sdk/src/transaction/error.rs # storage-proto/proto/transaction_by_addr.proto # storage-proto/src/convert.rs * resolve conflicts Co-authored-by: Justin Starry <justin@solana.com>

Commit:2b5e00d
Author:Justin Starry
Committer:GitHub

Limit number of accounts that a transaction can lock (#22201)

Commit:800472d
Author:Brooks Prumo
Committer:GitHub

Add AccountsDataMeter to InvokeContext (#21813)

Commit:90f41fd
Author:Jeff Washington (jwash)
Committer:GitHub

use cost model to limit new account creation (#21369) * use cost model to limit new account creation * handle every system instruction * remove & * simplify match * simplify match * add datapoint for account data size * add postgres error handling * handle accounts:unlock_accounts

Commit:1ae9cdc
Author:Michael Vines
Committer:Michael Vines

RPC: Ensure innerInstructions/logMessages metadata is `null` when `--enable-cpi-and-log-storage` is disabled

Commit:11153e1
Author:Tao Zhu
Committer:GitHub

refactor cost calculation (#21062) * - cache calculated transaction cost to allow sharing; - atomic cost tracking op; - only lock accounts for transactions eligible for current block; - moved qos service and stats reporting to its own model; - add cost_weight default to neutral (as 1), vote has zero weight; Co-authored-by: Tyera Eulberg <teulberg@gmail.com> * Update core/src/qos_service.rs Co-authored-by: Tyera Eulberg <teulberg@gmail.com> * Update core/src/qos_service.rs Co-authored-by: Tyera Eulberg <teulberg@gmail.com> Co-authored-by: Tyera Eulberg <teulberg@gmail.com>

Commit:3fd0f45
Author:mergify[bot]
Committer:GitHub

Include token owners in TransactionTokenBalances (backport #20642) (#20676) * Include token owners in TransactionTokenBalances (#20642) * Cache owners in TransactionTokenBalances * Light cleanup * Use return struct, and remove pub * Single-use statements * Why not, just do the whole crate * Add metrics * Make datapoint_debug to prevent spam unless troubleshooting (cherry picked from commit e806fa69040c368e2e3cc83b7d74fec1434ddb82) # Conflicts: # ledger/src/blockstore.rs # transaction-status/Cargo.toml # transaction-status/src/token_balances.rs * Fix conflicts Co-authored-by: Tyera Eulberg <teulberg@gmail.com> Co-authored-by: Tyera Eulberg <tyera@solana.com>

Commit:88e6f41
Author:mergify[bot]
Committer:GitHub

Include token owners in TransactionTokenBalances (backport #20642) (#20677) * Include token owners in TransactionTokenBalances (#20642) * Cache owners in TransactionTokenBalances * Light cleanup * Use return struct, and remove pub * Single-use statements * Why not, just do the whole crate * Add metrics * Make datapoint_debug to prevent spam unless troubleshooting (cherry picked from commit e806fa69040c368e2e3cc83b7d74fec1434ddb82) # Conflicts: # ledger/src/blockstore.rs # transaction-status/Cargo.toml # transaction-status/src/token_balances.rs * Fix conflicts Co-authored-by: Tyera Eulberg <teulberg@gmail.com> Co-authored-by: Tyera Eulberg <tyera@solana.com>

Commit:e806fa6
Author:Tyera Eulberg
Committer:GitHub

Include token owners in TransactionTokenBalances (#20642) * Cache owners in TransactionTokenBalances * Light cleanup * Use return struct, and remove pub * Single-use statements * Why not, just do the whole crate * Add metrics * Make datapoint_debug to prevent spam unless troubleshooting

Commit:b9a0156
Author:mergify[bot]
Committer:GitHub

Return error if Transaction contains writable executable or ProgramData accounts (backport #19629) (#19730) * Return error if Transaction contains writable executable or ProgramData accounts (#19629) * Return error if Transaction locks an executable as writable * Return error if a ProgramData account is writable but the upgradable loader isn't present * Remove unreachable clause * Fixup bpf tests * Review comments * Add new TransactionError * Disallow writes to any upgradeable-loader account when loader not present; remove is_upgradeable_loader_present exception for all other executables (cherry picked from commit 38bbb779890c363cb4b7bcf7b19c1348fe41320c) # Conflicts: # programs/bpf/tests/programs.rs # runtime/src/accounts.rs # runtime/src/bank.rs # sdk/src/transaction.rs # storage-proto/proto/transaction_by_addr.proto # storage-proto/src/convert.rs * Fix conflicts Co-authored-by: Tyera Eulberg <teulberg@gmail.com> Co-authored-by: Tyera Eulberg <tyera@solana.com>

Commit:3eee222
Author:mergify[bot]
Committer:GitHub

Return error if Transaction contains writable executable or ProgramData accounts (backport #19629) (#19729) * Return error if Transaction contains writable executable or ProgramData accounts (#19629) * Return error if Transaction locks an executable as writable * Return error if a ProgramData account is writable but the upgradable loader isn't present * Remove unreachable clause * Fixup bpf tests * Review comments * Add new TransactionError * Disallow writes to any upgradeable-loader account when loader not present; remove is_upgradeable_loader_present exception for all other executables (cherry picked from commit 38bbb779890c363cb4b7bcf7b19c1348fe41320c) # Conflicts: # programs/bpf/tests/programs.rs # runtime/src/accounts.rs # runtime/src/bank.rs # sdk/src/transaction.rs # storage-proto/proto/transaction_by_addr.proto # storage-proto/src/convert.rs * Fix conflicts Co-authored-by: Tyera Eulberg <teulberg@gmail.com> Co-authored-by: Tyera Eulberg <tyera@solana.com>

Commit:38bbb77
Author:Tyera Eulberg
Committer:GitHub

Return error if Transaction contains writable executable or ProgramData accounts (#19629) * Return error if Transaction locks an executable as writable * Return error if a ProgramData account is writable but the upgradable loader isn't present * Remove unreachable clause * Fixup bpf tests * Review comments * Add new TransactionError * Disallow writes to any upgradeable-loader account when loader not present; remove is_upgradeable_loader_present exception for all other executables

Commit:8378e87
Author:Lijun Wang
Committer:GitHub

Accountsdb replication installment 2 (#19325) This is the 2nd installment for the AccountsDb replication. Summary of Changes The basic google protocol buffer protocol for replicating updated slots and accounts. tonic/tokio is used for transporting the messages. The basic framework of the client and server for replicating slots and accounts -- the persisting of accounts in the replica-side will be done at the next PR -- right now -- the accounts are streamed to the replica-node and dumped. Replication for information about Bank is also not done in this PR -- to be addressed in the next PR to limit the change size. Functionality used by both the client and server side are encapsulated in the replica-lib crate. There is no impact to the existing validator by default. Tests: Observe the confirmed slots replicated to the replica-node. Observe the accounts for the confirmed slot are received at the replica-node side.

Commit:c50b01c
Author:Justin Starry
Committer:GitHub

Store versioned transactions in the ledger, disabled by default (#19139) * Add support for versioned transactions, but disable by default * merge conflicts * trent's feedback * bump Cargo.lock * Fix transaction error encoding * Rename legacy_transaction method * cargo clippy * Clean up casts, int arithmetic, and unused methods * Check for duplicates in sanitized message conversion * fix clippy * fix new test * Fix bpf conditional compilation for message module

Commit:414d904
Author:Tao Zhu
Committer:GitHub

Reject blocks for costs above the max block cost (#18994) * added realtime cost checking logic to reject block that would exceed max limit: - defines max limits at block_cost_limits.rs - right after each bath's execution, accumulate its cost and check again limit, return error if limit is exceeded * update abi that changed due to adding additional TransactionError * To avoid counting stats mltiple times, only accumulate execute-timing when a bank is completed * gate it by a feature * move cost const def into block_cost_limits.rs * redefine the cost for signature and account access, removed signer part as it is not well defined for now * check if per_program_timings of execute_timings before sending

Commit:b629291
Author:Michael Vines
Committer:Michael Vines

Record vote account commission with voting/staking rewards and surface in RPC (cherry picked from commit 4098af3b5bd69d51729f338b7aab0799bd2f699c) # Conflicts: # docs/src/developing/clients/jsonrpc-api.md # runtime/src/bank.rs

Commit:e5d60bc
Author:Michael Vines
Committer:Michael Vines

Record vote account commission with voting/staking rewards and surface in RPC (cherry picked from commit 4098af3b5bd69d51729f338b7aab0799bd2f699c)

Commit:4098af3
Author:Michael Vines
Committer:Michael Vines

Record vote account commission with voting/staking rewards and surface in RPC

Commit:c537409
Author:mergify[bot]
Committer:GitHub

storage-proto: Rework source generation (#18584) (cherry picked from commit 899b09872bd7c4af4d1c9c73f7b26d268af276eb) Co-authored-by: Trent Nelson <trent@solana.com>

Commit:240895d
Author:mergify[bot]
Committer:GitHub

storage-proto: Rework source generation (#18583) (cherry picked from commit 899b09872bd7c4af4d1c9c73f7b26d268af276eb) Co-authored-by: Trent Nelson <trent@solana.com>

Commit:899b098
Author:Trent Nelson
Committer:Trent Nelson

storage-proto: Rework source generation

Commit:6c99c1a
Author:mergify[bot]
Committer:GitHub

Bump prost, prost-types, and tonic (backport #18537) (#18558) * Bump prost, prost-types, and tonic (#18537) * Bump prost+tonic and accommodate generated service changes * Unignore advisory * Fixup .proto error list (cherry picked from commit 761de8b1a30f1f9ee5738c13ead65faf30fde25d) # Conflicts: # Cargo.lock # storage-bigtable/Cargo.toml # storage-proto/Cargo.toml * Fix conflicts Co-authored-by: Tyera Eulberg <teulberg@gmail.com> Co-authored-by: Tyera Eulberg <tyera@solana.com>

Commit:a53fe7b
Author:mergify[bot]
Committer:GitHub

Bump prost, prost-types, and tonic (backport #18537) (#18557) * Bump prost, prost-types, and tonic (#18537) * Bump prost+tonic and accommodate generated service changes * Unignore advisory * Fixup .proto error list (cherry picked from commit 761de8b1a30f1f9ee5738c13ead65faf30fde25d) # Conflicts: # Cargo.lock # storage-bigtable/Cargo.toml # storage-proto/Cargo.toml * Fix conflicts Co-authored-by: Tyera Eulberg <teulberg@gmail.com> Co-authored-by: Tyera Eulberg <tyera@solana.com>

Commit:761de8b
Author:Tyera Eulberg
Committer:GitHub

Bump prost, prost-types, and tonic (#18537) * Bump prost+tonic and accommodate generated service changes * Unignore advisory * Fixup .proto error list

Commit:01e2d5c
Author:mergify[bot]
Committer:GitHub

Add block height to ConfirmedBlock structs (backport #17523) (#17534) * Add block height to ConfirmedBlock structs (#17523) * Add BlockHeight CF to blockstore * Rename CacheBlockTimeService to be more general * Cache block-height using service * Fixup previous proto mishandling * Add block_height to block structs * Add block-height to solana block * Fallback to BankForks if block time or block height are not yet written to Blockstore * Add docs * Review comments (cherry picked from commit ab581dafc20a6fcf7cc31322bb20706f91291be9) # Conflicts: # core/src/replay_stage.rs # core/src/tvu.rs # core/src/validator.rs * Fix conflicts Co-authored-by: Tyera Eulberg <teulberg@gmail.com> Co-authored-by: Tyera Eulberg <tyera@solana.com>

Commit:f364956
Author:mergify[bot]
Committer:GitHub

Plumb transaction-level rewards (aka "rent debits") into the `getTransaction` RPC method (backport #17528) (#17532) * Plumb transaction-level rewards (aka "rent debits") into the `getTransaction` RPC method (cherry picked from commit 9541411c15760cf230057cb581050c00c8005aca) # Conflicts: # docs/src/developing/clients/jsonrpc-api.md * rebase Co-authored-by: Michael Vines <mvines@gmail.com>

Commit:ab581da
Author:Tyera Eulberg
Committer:GitHub

Add block height to ConfirmedBlock structs (#17523) * Add BlockHeight CF to blockstore * Rename CacheBlockTimeService to be more general * Cache block-height using service * Fixup previous proto mishandling * Add block_height to block structs * Add block-height to solana block * Fallback to BankForks if block time or block height are not yet written to Blockstore * Add docs * Review comments

Commit:9541411
Author:Michael Vines
Committer:mergify[bot]

Plumb transaction-level rewards (aka "rent debits") into the `getTransaction` RPC method

Commit:e3e8179
Author:Tyera Eulberg
Committer:GitHub

Sdk: start to appease clippy's integer arithmetic check (#15736) * Move to module-level clippy allowance * Fix stake_weighted_timestamp math * Fix genesis_config * Fix shred_version * Fix hard_forks * Fix process_instruction * Add ArithmeticOverflow ix error * Fix nonce_keyed_account * Update BankSlotDelta frozen abi due to new ix error

Commit:16ded21
Author:mergify[bot]
Committer:GitHub

Deprecate UiTokenAmount::ui_amount (bp #15616) (#15651) * Deprecate UiTokenAmount::ui_amount (#15616) * Add TokenAmount::ui_amount_string * Fixup solana-tokens * Update docs (cherry picked from commit 19ac79b5cc2f40fa5b09e9fdc9ab98086dfb85ed) # Conflicts: # storage-proto/proto/solana.storage.confirmed_block.rs * Fix conflicts Co-authored-by: Tyera Eulberg <teulberg@gmail.com> Co-authored-by: Tyera Eulberg <tyera@solana.com>

Commit:19ac79b
Author:Tyera Eulberg
Committer:GitHub

Deprecate UiTokenAmount::ui_amount (#15616) * Add TokenAmount::ui_amount_string * Fixup solana-tokens * Update docs

Commit:7d67f5b
Author:mergify[bot]
Committer:GitHub

check program owners (#15495) (#15568) * check program owners * BankSlotDelta should change because InstructionError variant added Co-authored-by: Tyera Eulberg <tyera@solana.com> (cherry picked from commit 8399851d114e4f18352fedc192557e5b5ef3885d) Co-authored-by: sakridge <sakridge@gmail.com>

Commit:8399851
Author:sakridge
Committer:GitHub

check program owners (#15495) * check program owners * BankSlotDelta should change because InstructionError variant added Co-authored-by: Tyera Eulberg <tyera@solana.com>

Commit:1ad2c9f
Author:Tyera Eulberg
Committer:GitHub

Revert "Make UiTokenAmount::ui_amount a String (#15447)" (#15542) This reverts commit d14374bc9fbeb5774e2edc866c65c4d6c8266871.

Commit:5f03a17
Author:Ryo Onodera
Committer:GitHub

Revert "Make UiTokenAmount::ui_amount a String (#15447) (#15472)" (#15535) This reverts commit 1f1dd58c78c3f4d543fb96526a0f6ee6d8a7f969.

Commit:1f1dd58
Author:Tyera Eulberg
Committer:GitHub

Make UiTokenAmount::ui_amount a String (#15447) (#15472) * Make UiTokenAmount::ui_amount a String * Fixup solana-tokens * Ignore spl downstream-project

Commit:d14374b
Author:Tyera Eulberg
Committer:GitHub

Make UiTokenAmount::ui_amount a String (#15447) * Make UiTokenAmount::ui_amount a String * Fixup solana-tokens * Ignore spl downstream-project

Commit:5216f51
Author:Michael Vines
Committer:Michael Vines

Rename IOError to BorshIoError

Commit:995bd0c
Author:Michael Vines
Committer:Michael Vines

Rename IOError to BorshIoError

Commit:e4068cb
Author:mergify[bot]
Committer:GitHub

SPL token balance in transaction metadata (bp #13673) (#14752) * SPL token balance in transaction metadata (#13673) * feat: store pre / post token balances * move helper functions into separate include * move token balance functionality to transaction-status crate * fix blockstore processor test * fix bigtable legacy test * add caching to decimals (cherry picked from commit 13db3eca9f2bb1a1abb5b4aeccfd8064bebdb2af) # Conflicts: # core/src/banking_stage.rs # storage-proto/Cargo.toml # storage-proto/src/convert.rs * resolve merges storage-proto banking_stage * fix bpf tests with token deltas Co-authored-by: Josh <josh.hundley@gmail.com>

Commit:733a1c8
Author:mergify[bot]
Committer:GitHub

Add block_time to getConfirmedSignaturesForAddress2 and getConfirmedTransaction (bp #14572) (#14728) * Add block_time to getConfirmedSignaturesForAddress2 and getConfirmedTransaction (#14572) * add block_time to get_confirmed_signatures_for_address2 and protobuf implementation for tx_by_addr * add tests for convert * update cargo lock * run cargo format after rebase * introduce legacy TransactionByAddrInfo * move LegacyTransactionByAddrInfo back to storage-bigtable (cherry picked from commit 1de6d28eaf1e264fa4f1d90fde55b7056767f138) * fix local sanity script * add missing block_time field Co-authored-by: Josh <josh.hundley@gmail.com>

Commit:53ea18d
Author:mergify[bot]
Committer:GitHub

Add block_time to getConfirmedSignaturesForAddress2 and getConfirmedTransaction (bp #14572) (#14727) * Add block_time to getConfirmedSignaturesForAddress2 and getConfirmedTransaction (#14572) * add block_time to get_confirmed_signatures_for_address2 and protobuf implementation for tx_by_addr * add tests for convert * update cargo lock * run cargo format after rebase * introduce legacy TransactionByAddrInfo * move LegacyTransactionByAddrInfo back to storage-bigtable (cherry picked from commit 1de6d28eaf1e264fa4f1d90fde55b7056767f138) # Conflicts: # storage-proto/src/convert.rs * merge storage proto convert * fix bpf test for ConfirmedTransaction Co-authored-by: Josh <josh.hundley@gmail.com>

Commit:1de6d28
Author:Josh
Committer:GitHub

Add block_time to getConfirmedSignaturesForAddress2 and getConfirmedTransaction (#14572) * add block_time to get_confirmed_signatures_for_address2 and protobuf implementation for tx_by_addr * add tests for convert * update cargo lock * run cargo format after rebase * introduce legacy TransactionByAddrInfo * move LegacyTransactionByAddrInfo back to storage-bigtable

Commit:13db3ec
Author:Josh
Committer:GitHub

SPL token balance in transaction metadata (#13673) * feat: store pre / post token balances * move helper functions into separate include * move token balance functionality to transaction-status crate * fix blockstore processor test * fix bigtable legacy test * add caching to decimals

Commit:f36cfb9
Author:mergify[bot]
Committer:GitHub

Convert Blockstore Rewards cf to protobuf (bp #12860) (#12935) * Convert Blockstore Rewards cf to protobuf (#12860) * Add Blockstore protobuf cf type * Add Rewards message to proto and make generated pub * Convert Rewards cf to ProtobufColumn * Add bench * Adjust tags * Move solana proto definitions and conversion methods to new crate (cherry picked from commit 359707c85eaf9fb3dd793adb4038160e036aba0a) # Conflicts: # Cargo.lock # ledger/Cargo.toml # storage-bigtable/Cargo.toml * v1.4-ify Co-authored-by: Tyera Eulberg <teulberg@gmail.com> Co-authored-by: Tyera Eulberg <tyera@solana.com>

Commit:359707c
Author:Tyera Eulberg
Committer:GitHub

Convert Blockstore Rewards cf to protobuf (#12860) * Add Blockstore protobuf cf type * Add Rewards message to proto and make generated pub * Convert Rewards cf to ProtobufColumn * Add bench * Adjust tags * Move solana proto definitions and conversion methods to new crate

Commit:68f8080
Author:mergify[bot]
Committer:GitHub

Add log_messages to proto file (#12859) (#12863) (cherry picked from commit 67ed44c007535baf0c07457a1f99ddff6eabe6e5) Co-authored-by: Tyera Eulberg <teulberg@gmail.com>

Commit:7ce9bea
Author:mergify[bot]
Committer:GitHub

Add log_messages to proto file (#12859) (#12862) (cherry picked from commit 67ed44c007535baf0c07457a1f99ddff6eabe6e5) Co-authored-by: Tyera Eulberg <teulberg@gmail.com>

Commit:67ed44c
Author:Tyera Eulberg
Committer:GitHub

Add log_messages to proto file (#12859)

Commit:e4bd382
Author:mergify[bot]
Committer:GitHub

Expose all rewards (fees, rent, voting and staking) in RPC getConfirmedBlock and the cli (bp #12768) (#12789) * Expose all rewards (fees, rent, voting and staking) in RPC getConfirmedBlock and the cli (cherry picked from commit c5c8da1ac0e1b8b38590782d763280c0cd0daa5f) # Conflicts: # Cargo.lock # runtime/src/bank.rs # transaction-status/Cargo.toml * fix: surface full block rewards type (cherry picked from commit 1b167903257e048ead482fff63dff7fb63f14036) * resolve conflicts Co-authored-by: Michael Vines <mvines@gmail.com>

Commit:3fef98f
Author:mergify[bot]
Committer:GitHub

Expose all rewards (fees, rent, voting and staking) in RPC getConfirmedBlock and the cli (bp #12768) (#12790) * Expose all rewards (fees, rent, voting and staking) in RPC getConfirmedBlock and the cli (cherry picked from commit c5c8da1ac0e1b8b38590782d763280c0cd0daa5f) # Conflicts: # Cargo.lock # transaction-status/Cargo.toml * fix: surface full block rewards type (cherry picked from commit 1b167903257e048ead482fff63dff7fb63f14036) * resolve conflicts Co-authored-by: Michael Vines <mvines@gmail.com>

Commit:c5c8da1
Author:Michael Vines
Committer:Michael Vines

Expose all rewards (fees, rent, voting and staking) in RPC getConfirmedBlock and the cli

Commit:afbdcf3
Author:mergify[bot]
Committer:GitHub

Include post balance information for rewards (#12598) (#12602) * Include post balance information for rewards * Add post-balance to stored Reward struct * Handle extended Reward in bigtable Co-authored-by: Michael Vines <mvines@gmail.com> (cherry picked from commit c31a34fbcb719e2ee719588e3349c706dfed0c36) Co-authored-by: Tyera Eulberg <teulberg@gmail.com>

Commit:c31a34f
Author:Tyera Eulberg
Committer:GitHub

Include post balance information for rewards (#12598) * Include post balance information for rewards * Add post-balance to stored Reward struct * Handle extended Reward in bigtable Co-authored-by: Michael Vines <mvines@gmail.com>

Commit:2d1b995
Author:mergify[bot]
Committer:GitHub

Use protobufs to store confirmed blocks in BigTable (#12526) (#12597) * Use protobufs to store confirmed blocks in BigTable * Cleanup * Reorganize proto * Clean up use statements * Split out function for unit testing * s/utils/convert Co-authored-by: Tyera Eulberg <teulberg@gmail.com> (cherry picked from commit ce598c5c98e7384c104fe7f5121e32c2c5a2d2eb) Co-authored-by: Justin Starry <justin@solana.com>

Commit:ce598c5
Author:Justin Starry
Committer:GitHub

Use protobufs to store confirmed blocks in BigTable (#12526) * Use protobufs to store confirmed blocks in BigTable * Cleanup * Reorganize proto * Clean up use statements * Split out function for unit testing * s/utils/convert Co-authored-by: Tyera Eulberg <teulberg@gmail.com>