Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ledger-tool: unify and colorize help #2322

Merged
merged 1 commit into from
Jul 29, 2024

Conversation

brooksprumo
Copy link

Problem

The help for ledger-tool could be more user-friendly. One, we could add color. Two, we could unify the flags and the options, like most man pages/help.

Summary of Changes

Colorize and unify ledger-tool's help.

comparison - unify

ledger-tool --help

old:

agave-ledger-tool 2.0.4 (src:4234b1ba; feat:1070130477, client:Agave)
Blockchain, Rebuilt for Scale

USAGE:
    agave-ledger-tool [FLAGS] [OPTIONS] <SUBCOMMAND>

FLAGS:
        --force-update-to-open          Allow commands that would otherwise not alter the blockstore to make necessary
                                        updates in order to open it
    -h, --help                          Prints help information
        --ignore-ulimit-nofile-error    Allow opening the blockstore to succeed even if the desired open file descriptor
                                        limit cannot be configured. Use with caution as some commands may run fine with
                                        a reduced file descriptor limit while others will not
    -V, --version                       Prints version information
    -v, --verbose                       Show additional information where supported

OPTIONS:
        --block-verification-method <METHOD>
            Switch transaction scheduling method for verifying ledger entries [default: blockstore-processor] [possible
            values: blockstore-processor, unified-scheduler]
    -l, --ledger <DIR>                                 Use DIR as ledger location [default: ledger]
        --output <FORMAT>
            Return information in specified output format, currently only available for bigtable and program subcommands
            [possible values: json, json-compact]
        --unified-scheduler-handler-threads <COUNT>
            Change the number of the unified scheduler's transaction execution threads dedicated to each block,
            otherwise calculated as cpu_cores/4 [default: 4]
        --wal-recovery-mode <MODE>
            Mode to recovery the ledger db write ahead log [possible values: tolerate_corrupted_tail_records,
            absolute_consistency, point_in_time, skip_any_corrupted_record]

SUBCOMMANDS:
    accounts                   Print account stats and contents after processing the ledger
    bank-hash                  Prints the hash of the working bank after reading the ledger
    bigtable                   Ledger data on a BigTable instance
    blockstore                 Commands to interact with a local Blockstore
    capitalization             Print capitalization (aka, total supply) while checksumming it
    compute-slot-cost          runs cost_model over the block at the given slots, computes how expensive a block was
                               based on cost_model
    create-snapshot            Create a new ledger snapshot
    genesis                    Prints the ledger's genesis config
    genesis-hash               Prints the ledger's genesis hash
    graph                      Create a Graphviz rendering of the ledger
    help                       Prints this message or the help of the given subcommand(s)
    latest-optimistic-slots    Output up to the most recent <num-slots> optimistic slots with their hashes and
                               timestamps.
    modify-genesis             Modifies genesis parameters
    program                    Run to test, debug, and analyze on-chain programs.
    shred-version              Prints the ledger's shred hash
    verify                     Verify the ledger

new:

agave-ledger-tool 2.1.0 (src:00000000; feat:1420694968, client:Agave)
Blockchain, Rebuilt for Scale

USAGE:
    agave-ledger-tool [OPTIONS] <SUBCOMMAND>

OPTIONS:
        --block-verification-method <METHOD>
            Switch transaction scheduling method for verifying ledger entries [default: blockstore-processor] [possible
            values: blockstore-processor, unified-scheduler]
        --force-update-to-open
            Allow commands that would otherwise not alter the blockstore to make necessary updates in order to open it

    -h, --help                                         Prints help information
        --ignore-ulimit-nofile-error
            Allow opening the blockstore to succeed even if the desired open file descriptor limit cannot be configured.
            Use with caution as some commands may run fine with a reduced file descriptor limit while others will not
    -l, --ledger <DIR>                                 Use DIR as ledger location [default: ledger]
        --output <FORMAT>
            Return information in specified output format, currently only available for bigtable and program subcommands
            [possible values: json, json-compact]
        --unified-scheduler-handler-threads <COUNT>
            Change the number of the unified scheduler's transaction execution threads dedicated to each block,
            otherwise calculated as cpu_cores/4 [default: 4]
    -V, --version                                      Prints version information
    -v, --verbose                                      Show additional information where supported
        --wal-recovery-mode <MODE>
            Mode to recovery the ledger db write ahead log [possible values: tolerate_corrupted_tail_records,
            absolute_consistency, point_in_time, skip_any_corrupted_record]

SUBCOMMANDS:
    accounts                   Print account stats and contents after processing the ledger
    bank-hash                  Prints the hash of the working bank after reading the ledger
    bigtable                   Ledger data on a BigTable instance
    blockstore                 Commands to interact with a local Blockstore
    capitalization             Print capitalization (aka, total supply) while checksumming it
    compute-slot-cost          runs cost_model over the block at the given slots, computes how expensive a block was
                               based on cost_model
    create-snapshot            Create a new ledger snapshot
    genesis                    Prints the ledger's genesis config
    genesis-hash               Prints the ledger's genesis hash
    graph                      Create a Graphviz rendering of the ledger
    help                       Prints this message or the help of the given subcommand(s)
    latest-optimistic-slots    Output up to the most recent <num-slots> optimistic slots with their hashes and
                               timestamps.
    modify-genesis             Modifies genesis parameters
    program                    Run to test, debug, and analyze on-chain programs.
    shred-version              Prints the ledger's shred hash
    verify                     Verify the ledger

ledger-tool verify --help

old:

agave-ledger-tool-verify 
Verify the ledger

USAGE:
    agave-ledger-tool verify [FLAGS] [OPTIONS]

FLAGS:
        --accounts-db-skip-shrink
            Enables faster starting of ledger-tool by skipping shrink. This option is for use during testing.

        --accounts-db-test-hash-calculation      
            Enable hash calculation test

        --allow-dead-slots                       
            Output dead slots as well

        --disable-accounts-disk-index
            Disable the disk-based accounts index. It is enabled by default. The entire accounts index will be kept in
            memory.
        --enable-extended-tx-metadata-storage
            Include CPI inner instructions, logs, and return data in the historical transaction info stored

        --enable-rpc-transaction-history         
            Store transaction info for processed slots into local ledger

        --force-update-to-open
            Allow commands that would otherwise not alter the blockstore to make necessary updates in order to open it

    -h, --help                                   
            Prints help information

        --ignore-ulimit-nofile-error
            Allow opening the blockstore to succeed even if the desired open file descriptor limit cannot be configured.
            Use with caution as some commands may run fine with a reduced file descriptor limit while others will not
        --no-snapshot                            
            Do not start from a local snapshot if present

        --os-memory-stats-reporting              
            Enable reporting of OS memory statistics.

        --print-accounts-stats
            After verifying the ledger, print some information about the account stores

        --print-bank-hash                        
            After verifying the ledger, print the working bank's hash

        --run-final-accounts-hash-calculation
            After 'verify' completes, run a final accounts hash calculation. Final hash calculation could race with
            accounts background service tasks and assert.
        --skip-poh-verify
            Deprecated, please use --skip-verification. Skip ledger PoH and transaction verification.

        --skip-verification                      
            Skip ledger PoH and transaction verification.

    -v, --verbose                                
            Show additional information where supported

        --verify-accounts-index                  
            For debugging and tests on accounts index.

        --write-bank-file
            After verifying the ledger, write a file that contains the information that went into computing the
            completed bank's bank hash. The file will be written within <LEDGER_DIR>/bank_hash_details/

OPTIONS:
        --accounts <PATHS>
            Persistent accounts location. May be specified multiple times. [default: <LEDGER>/accounts]

        --accounts-hash-cache-path <PATH>
            Use PATH as accounts hash cache location [default: <LEDGER>/accounts_hash_cache]

        --accounts-index-bins <BINS>
            Number of bins to divide the accounts index into

        --accounts-index-memory-limit-mb <MEGABYTES>
            How much memory the accounts index can consume. If this is exceeded, some account index entries will be
            stored on disk.
        --accounts-index-path <PATH>...
            Persistent accounts-index location. May be specified multiple times. [default: <LEDGER>/accounts_index]

        --block-verification-method <METHOD>
            Switch transaction scheduling method for verifying ledger entries [default: blockstore-processor] [possible
            values: blockstore-processor, unified-scheduler]
        --debug-key <ADDRESS>...
            Log when transactions are processed that reference the given key(s).

        --geyser-plugin-config <FILE>...
            Specify the configuration file for the Geyser plugin.

        --halt-at-slot <SLOT>                                                    
            Halt processing at the given slot

        --hard-fork <SLOT>...                                                    
            Add a hard fork at this slot

        --incremental-snapshot-archive-path <DIR>
            Use DIR for separate incremental snapshot location

    -l, --ledger <DIR>
            Use DIR as ledger location [default: ledger]

        --limit-load-slot-count-from-snapshot <SLOT>
            For debugging and profiling with large snapshots, artificially limit how many slots are loaded from a
            snapshot.
        --log-messages-bytes-limit <BYTES>
            Maximum number of bytes written to the program log before truncation

        --max-genesis-archive-unpacked-size <NUMBER>
            maximum total uncompressed size of unpacked genesis archive [default: 10485760]

        --output <FORMAT>
            Return information in specified output format, currently only available for bigtable and program subcommands
            [possible values: json, json-compact]
        --record-slots <FILENAME>
            Record slots to a file [default: slots.json]

        --record-slots-config <record_slots_config>...
            In addition to the bank hash, optionally include accounts and/or transactions details for the slot [possible
            values: accounts, tx]
        --snapshots <DIR>
            Use DIR for snapshot location [default: --ledger value]

        --unified-scheduler-handler-threads <COUNT>
            Change the number of the unified scheduler's transaction execution threads dedicated to each block,
            otherwise calculated as cpu_cores/4 [default: 4]
        --use-snapshot-archives-at-startup <use_snapshot_archives_at_startup>
            At startup, when should snapshot archives be extracted versus using what is already on disk? 
            Specifying "always" will always startup by extracting snapshot archives and disregard any snapshot-related
            state already on disk. Note that starting up from snapshot archives will incur the runtime costs associated
            with extracting the archives and rebuilding the local state. 
            Specifying "never" will never startup from snapshot archives and will only use snapshot-related state
            already on disk. If there is no state already on disk, startup will fail. Note, this will use the latest
            state available, which may be newer than the latest snapshot archive. 
            Specifying "when-newest" will use snapshot-related state already on disk unless there are snapshot archives
            newer than it. This can happen if a new snapshot archive is downloaded while the node is stopped. [default:
            always]  [possible values: always, never, when-newest]
        --verify-slots <FILENAME>
            Verify slots match contents of file [default: slots.json]

        --wal-recovery-mode <MODE>
            Mode to recovery the ledger db write ahead log [possible values: tolerate_corrupted_tail_records,
            absolute_consistency, point_in_time, skip_any_corrupted_record]

new:

agave-ledger-tool-verify 
Verify the ledger

USAGE:
    agave-ledger-tool verify [OPTIONS]

OPTIONS:
        --accounts <PATHS>
            Persistent accounts location. May be specified multiple times. [default: <LEDGER>/accounts]

        --accounts-db-skip-shrink
            Enables faster starting of ledger-tool by skipping shrink. This option is for use during testing.

        --accounts-db-test-hash-calculation                                      
            Enable hash calculation test

        --accounts-hash-cache-path <PATH>
            Use PATH as accounts hash cache location [default: <LEDGER>/accounts_hash_cache]

        --accounts-index-bins <BINS>
            Number of bins to divide the accounts index into

        --accounts-index-memory-limit-mb <MEGABYTES>
            How much memory the accounts index can consume. If this is exceeded, some account index entries will be
            stored on disk.
        --accounts-index-path <PATH>...
            Persistent accounts-index location. May be specified multiple times. [default: <LEDGER>/accounts_index]

        --allow-dead-slots                                                       
            Output dead slots as well

        --block-verification-method <METHOD>
            Switch transaction scheduling method for verifying ledger entries [default: blockstore-processor] [possible
            values: blockstore-processor, unified-scheduler]
        --debug-key <ADDRESS>...
            Log when transactions are processed that reference the given key(s).

        --disable-accounts-disk-index
            Disable the disk-based accounts index. It is enabled by default. The entire accounts index will be kept in
            memory.
        --enable-extended-tx-metadata-storage
            Include CPI inner instructions, logs, and return data in the historical transaction info stored

        --enable-rpc-transaction-history
            Store transaction info for processed slots into local ledger

        --force-update-to-open
            Allow commands that would otherwise not alter the blockstore to make necessary updates in order to open it

        --geyser-plugin-config <FILE>...
            Specify the configuration file for the Geyser plugin.

        --halt-at-slot <SLOT>                                                    
            Halt processing at the given slot

        --hard-fork <SLOT>...                                                    
            Add a hard fork at this slot

    -h, --help                                                                   
            Prints help information

        --ignore-ulimit-nofile-error
            Allow opening the blockstore to succeed even if the desired open file descriptor limit cannot be configured.
            Use with caution as some commands may run fine with a reduced file descriptor limit while others will not
        --incremental-snapshot-archive-path <DIR>
            Use DIR for separate incremental snapshot location

    -l, --ledger <DIR>
            Use DIR as ledger location [default: ledger]

        --limit-load-slot-count-from-snapshot <SLOT>
            For debugging and profiling with large snapshots, artificially limit how many slots are loaded from a
            snapshot.
        --log-messages-bytes-limit <BYTES>
            Maximum number of bytes written to the program log before truncation

        --max-genesis-archive-unpacked-size <NUMBER>
            maximum total uncompressed size of unpacked genesis archive [default: 10485760]

        --no-snapshot
            Do not start from a local snapshot if present

        --os-memory-stats-reporting
            Enable reporting of OS memory statistics.

        --output <FORMAT>
            Return information in specified output format, currently only available for bigtable and program subcommands
            [possible values: json, json-compact]
        --print-accounts-stats
            After verifying the ledger, print some information about the account stores

        --print-bank-hash
            After verifying the ledger, print the working bank's hash

        --record-slots <FILENAME>
            Record slots to a file [default: slots.json]

        --record-slots-config <record_slots_config>...
            In addition to the bank hash, optionally include accounts and/or transactions details for the slot [possible
            values: accounts, tx]
        --run-final-accounts-hash-calculation
            After 'verify' completes, run a final accounts hash calculation. Final hash calculation could race with
            accounts background service tasks and assert.
        --skip-poh-verify
            Deprecated, please use --skip-verification. Skip ledger PoH and transaction verification.

        --skip-verification
            Skip ledger PoH and transaction verification.

        --snapshots <DIR>
            Use DIR for snapshot location [default: --ledger value]

        --unified-scheduler-handler-threads <COUNT>
            Change the number of the unified scheduler's transaction execution threads dedicated to each block,
            otherwise calculated as cpu_cores/4 [default: 4]
        --use-snapshot-archives-at-startup <use_snapshot_archives_at_startup>
            At startup, when should snapshot archives be extracted versus using what is already on disk? 
            Specifying "always" will always startup by extracting snapshot archives and disregard any snapshot-related
            state already on disk. Note that starting up from snapshot archives will incur the runtime costs associated
            with extracting the archives and rebuilding the local state. 
            Specifying "never" will never startup from snapshot archives and will only use snapshot-related state
            already on disk. If there is no state already on disk, startup will fail. Note, this will use the latest
            state available, which may be newer than the latest snapshot archive. 
            Specifying "when-newest" will use snapshot-related state already on disk unless there are snapshot archives
            newer than it. This can happen if a new snapshot archive is downloaded while the node is stopped. [default:
            always]  [possible values: always, never, when-newest]
    -v, --verbose
            Show additional information where supported

        --verify-accounts-index
            For debugging and tests on accounts index.

        --verify-slots <FILENAME>
            Verify slots match contents of file [default: slots.json]

        --wal-recovery-mode <MODE>
            Mode to recovery the ledger db write ahead log [possible values: tolerate_corrupted_tail_records,
            absolute_consistency, point_in_time, skip_any_corrupted_record]
        --write-bank-file
            After verifying the ledger, write a file that contains the information that went into computing the
            completed bank's bank hash. The file will be written within <LEDGER_DIR>/bank_hash_details/

comparison - color

old:
old

new:
new

@brooksprumo brooksprumo self-assigned this Jul 28, 2024
@brooksprumo brooksprumo added the v2.0 Backport to v2.0 branch label Jul 28, 2024
Copy link

mergify bot commented Jul 28, 2024

Backports to the beta branch are to be avoided unless absolutely necessary for fixing bugs, security issues, and perf regressions. Changes intended for backport should be structured such that a minimum effective diff can be committed separately from any refactoring, plumbing, cleanup, etc that are not strictly necessary to achieve the goal. Any of the latter should go only into master and ride the normal stabilization schedule. Exceptions include CI/metrics changes, CLI improvements and documentation updates on a case by case basis.

@brooksprumo brooksprumo marked this pull request as ready for review July 28, 2024 18:54
Copy link

@CriesofCarrots CriesofCarrots left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

wfm

Copy link

@steviez steviez left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, I think this is the default in newer version of CLAP so if we ever get there, we'd have this happen for free.

I imagine that we should keep this PR and #2323 in sync such that they we have same colorization on same versions

@brooksprumo brooksprumo merged commit 38458f4 into anza-xyz:master Jul 29, 2024
42 checks passed
@brooksprumo brooksprumo deleted the cli/ledger-tool/arg-order branch July 29, 2024 17:19
mergify bot pushed a commit that referenced this pull request Jul 29, 2024
brooksprumo added a commit that referenced this pull request Jul 30, 2024
ledger-tool: unify and colorize help (#2322)

(cherry picked from commit 38458f4)

Co-authored-by: Brooks <brooks@anza.xyz>
DudessaPr added a commit to nitro-svm/agave that referenced this pull request Aug 14, 2024
* ScanConfig defaults no longer sort results (anza-xyz#1539)

* accounts-db: get rid of const in tests (anza-xyz#1732)

get rid of const in tests

Co-authored-by: HaoranYi <haoran.yi@solana.com>

* rpc: add more services to getClusterNodes (anza-xyz#1637)

* rpc: add tpu_forwards/tpu_forwards_quic to getClusterNodes

* add tvu

* order

* add tpu_vote

* add serve_repair

* fix tests

* fix name in tests

* remove tvu / repair quic

* wen_restart: Ignore Gossip messages from my own pubkey. (anza-xyz#1678)

* CHANGELOG: `Copy` no longer derived on Rent and EpochSchedule (anza-xyz#1746)

* SVM: update spec (anza-xyz#1757)

* remove unused build dep `cc` from solana-program (anza-xyz#1659)

* remove unused build dep `cc` from solana-program

* remove cc from workspace

* refactor: clean up geyser-plugin-manager (anza-xyz#1570)

* Remove redundant Option return type from accountinfo_from_shared_account_data

* Remove redundant Option return type from accountinfo_from_stored_account_meta

* add retries to transaction sending in LocalCluster (anza-xyz#1747)

* ci: upgrade client-traget macos version (anza-xyz#1765)

* ledger-tool: Use helper for AccountsDb args (anza-xyz#1749)

There are a handful of commands that specify AccountsDb config. To
create consistency between all these commands and remove repeated code,
build all of the arguments in a helper function that is passed to the
relevant commands.

* Simd-118: [HAL-02] add lamports burned to error log (anza-xyz#1768)

Add lamports burned to error log

* Simd-118: [HAL-01] add log to unreachable macro (anza-xyz#1767)

Add log to unreachable macro

* Verify elf with active feature set before attempting deployment (anza-xyz#1654)


Co-authored-by: Jon C <me@jonc.dev>

* Simd-118: [HAL-04] simplify assertion that epoch contains enough slots for partitions (anza-xyz#1769)

Simplify assertion that epoch contains enough slots for partitions

* [docs] Update ZK Token Proof program to ZK ElGamal Proof program (anza-xyz#1758)

* docs: update ZK Token Proof program to ZK ElGamal Proof program

* remove blank line at eof

* Program Runtime: Unify transaction batch program caches (anza-xyz#1399)

* local program cache: add `modified_entries` field

* use `modified_entries` for modified program cache

* invoke context: make `program_cache_for_tx_batch` mutable

* invoke context: unify local program cache instances

* remove `find_program_in_cache` alias

* SVM: Unify different instances of epoch_schedule in SVM and Bank into one (anza-xyz#1736)

* Add Shuttle multithreading test infrastructure (anza-xyz#1634)

* Add num_partitions to Blockstore rewards (anza-xyz#1601)

* Add num_partitions field to Rewards proto definition

* Add type to hold rewards plus num_partitions

* Add Bank method to get rewards plus num_partitions for recording

* Update Blockstore::write_rewards to use num_partitions

* Update RewardsRecorderService to handle num_partitions

* Populate num_partitions in ReplayStage::record_rewards

* Write num_partitions to Bigtable

* Reword KeyedRewardsAndNumPartitions method

* Clone immediately

* Determine epoch boundary by checking parent epoch

* Rename UiConfirmedBlock field

* nit: fix comment typo

* Add test_get_rewards_and_partitions

* Add pre-activation test

* Add should_record unit test

* run full gossip node when running `solana-gossip rpc-url` (anza-xyz#1753)

* send actual gossip ip:port when running solana-gossip rpc-url

* refactor gossip_addr out from spy and rpc methods

* fix race condition on vote count (anza-xyz#1762)

* [sdk] Add ZK Elgamal Proof program feature gate (anza-xyz#1679)

* add `zk-elgamal-proof-program-enabled` feature gate

* reserve account for zk elgamal proof program

* add zk elgamal proof as builtin program

* cargo lock

* cargo sort

* replace feature gate key to start with `zk..`

* add simd number

* update `elgamal_program` to `zk_elgamal_proof_program`

* Don't panic when pausing stale unified schedulers (anza-xyz#1761)

* ledger-tool: Subfunction for snapshot args (anza-xyz#1773)

There are several arguments to control snapshot configuration in the
various ledger-tool commands. The inclusion of args in each command
is inconsistent, especially for commands outside of main.rs

This change consolidates the snapshot related arguments into a single
function to help create consistency and reduce duplicate code

* ledger-tool: Make joining AccountsBackgroundService optional (anza-xyz#1673)

AccountsBackgroundService performs several operations that can take a
long time to complete and do not check the exit flag mid-operation.
Thus, ledger-tool can get hung up for a while waiting for ABS to
finish. However, many ledger-tool command do not ABS to have finished.

So, return a handle to the ABS thread and allow the caller to decide
whether to join ABS or not. As of right now, create-snapshot is the
only command that requires ABS to have finished before continuing.

* Extract curve25519 crate from zk-token-sdk (anza-xyz#951)

* extract curve25519 crate

* remove obsolete comment

* fix Cargo.toml files

* fix imports

* update lock file

* remove unused deps from zk-token-sdk

* fmt

* add solana-curve25519 patch

* add missing override to programs/sbf/Cargo.toml

* copy over an allow()

* move new crate to curves dir

* use workspace version

* add back missing dev dep

* add missing dependencies to programs/sbf

* fmt

* move dep to the correct dependency table

* remove #[cfg(not(target_os = "solana"))] above errors mod

* Ensure mapping of callee is updated with direct mapping (anza-xyz#1093)

Consider this scenario:

 - Program increases length of an account
 - Program start CPI and adds this account as a read-only account
 - In fn update_callee_account() we resize account, which may change
   the pointer
 - Once CPI finishes, the program continues and may read/write from
   the account. The mapping must be up-to-date else we use stale
   pointers.

Note that we always call callee_account.set_data_length(), which
may change the pointer. In testing I found that resizing a vector
from 10240 down to 127 sometimes changes its pointer. So, always
update the pointer.

* [curve25519] Remove `ElGamalError` from curve25519 crate (anza-xyz#1777)

* remove `ElGamalError` from curve25519 crate

* add `ElGamalError` to zk-token-sdk

* sdk: Only compile wasm-bindgen when target_arch = "wasm32" (anza-xyz#1658)

* move wasm-bindgen dep under cfg(target_arch = "wasm32") in sdk and program

* remove wasm_bindgen_stub (we don't need it where we're going)

* put wasm_bindgen usage behind #[cfg(target_arch = "wasm32")]

* remove doc comments from skippeed fields

* add missing attribute

* another missing attribute

* add doc comments explaining duplicated structs

* fmt

* fix wasm comments

* Update sdk/program/src/instruction.rs

---------

Co-authored-by: Jon C <me@jonc.dev>

* transaction-status: Use string instead of int for `amount` in `amountToUiAmount` (anza-xyz#1737)

* transaction-status: Use string instead of int for `amount`

* Add a changelog entry

* Update CHANGELOG.md

Co-authored-by: Tyera <teulberg@gmail.com>

---------

Co-authored-by: Tyera <teulberg@gmail.com>

* Adds `diff` to accounts-hash-cache-tool (anza-xyz#1772)

* SVM: Move `fee_structure` to environment input (anza-xyz#1771)

* SVM: add `fee_structure` to environment arg

* runtime: add `fee_structure` to bank

* SVM: drop `fee_structure` from global configs

* always pack a few newest ancient slots (anza-xyz#1730)

* always pack a few newest ancient slots

* pr feedback

* remove extra ()

* adds high slot tests

---------

Co-authored-by: brooks <brooks@anza.xyz>

* remove double-counted metric (anza-xyz#1748)

* SVM: Reduce public visibility of sysvar_cache (anza-xyz#1783)

* ledger-tool: Deduplicate max-genesis-archive-unpacked-size argument (anza-xyz#1774)

The argument is currently declared in multiple places. So, delcare the
argument in one central place.

* add ancient pack metrics (anza-xyz#1750)

* add ancient pack metrics

* add missing params

---------

Co-authored-by: brooks <brooks@anza.xyz>

* Refactor - Avoid host build of SBPF program test crates (anza-xyz#1711)

* Removes ProgramTest from simulation tests.

* Removes ProgramTest from sysvar syscall tests.

* Workaround for rustc crash caused by 16 byte aligned memcpy.

* Deduplicates test_program_sbf_sanity.

* Moves mem and remaining_compute_units into test_program_sbf_sanity().

* Removes unused dev-dependencies in Cargo.toml.

* Removes crate-type = lib from Cargo.tomls.

* Adds SBF_OUT_DIR env to CI script.

* Adds "sysvar" to build.rs.

* ci: ignore curve25519-dalek audit temporarily (anza-xyz#1786)

ci: ignore curve25519-dalek audit

* build(deps): bump bytemuck from 1.16.0 to 1.16.1 (anza-xyz#1789)

* build(deps): bump bytemuck from 1.16.0 to 1.16.1

Bumps [bytemuck](https://github.com/Lokathor/bytemuck) from 1.16.0 to 1.16.1.
- [Changelog](https://github.com/Lokathor/bytemuck/blob/main/changelog.md)
- [Commits](Lokathor/bytemuck@v1.16.0...v1.16.1)

---
updated-dependencies:
- dependency-name: bytemuck
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update all Cargo files

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps): bump url from 2.5.1 to 2.5.2 (anza-xyz#1788)

* build(deps): bump url from 2.5.1 to 2.5.2

Bumps [url](https://github.com/servo/rust-url) from 2.5.1 to 2.5.2.
- [Release notes](https://github.com/servo/rust-url/releases)
- [Commits](servo/rust-url@v2.5.1...v2.5.2)

---
updated-dependencies:
- dependency-name: url
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update all Cargo files

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* program: move itertools to dev-dependencies (anza-xyz#1782)

* port join from itertools and use it in program_stubs.rs

* move itertools to dev-dependencies of solana-program

* add comment to join fn

* more concise replacement for join fn

Co-authored-by: Jon C <me@jonc.dev>

* remove join fn

---------

Co-authored-by: Jon C <me@jonc.dev>

* Adjust replay-related metrics for unified scheduler (anza-xyz#1741)

* Adjust replay-related metrics for unified schduler

* Fix grammar

* Don't compute slowest for unified scheduler

* Rename to is_unified_scheduler_enabled

* Hoist uses to top of file

* Conditionally disable replay-slot-end-to-end-stats

* Remove the misleading fairly balanced text

* bpf_loader: use an explicit thread-local pool for stack and heap memory (anza-xyz#1370)

* Rename ComputeBudget::max_invoke_stack_height to max_instruction_stack_depth

The new name is consistent with the existing
ComputeBudget::max_instruction_trace_length.

Also expose compute_budget:MAX_INSTRUCTION_DEPTH.

* bpf_loader: use an explicit thread-local pool for stack and heap memory

Use a fixed thread-local pool to hold stack and heap memory. This
mitigates the long standing issue of jemalloc causing TLB shootdowns to
serve such frequent large allocations.

Because we need 1 stack and 1 heap region per instruction, and the
current max instruction nesting is hardcoded to 5, the pre-allocated
size is (MAX_STACK + MAX_HEAP) * 5 * NUM_THREADS. With the current
limits that's about 2.5MB per thread. Note that this is memory that
would eventually get allocated anyway, we're just pre-allocating it now.

* programs/sbf: add test for stack/heap zeroing

Add TEST_STACK_HEAP_ZEROED which tests that stack and heap regions are
zeroed across reuse from the memory pool.

* ledger-tool: Make verify --print-bank-hash support json (anza-xyz#1745)

The bank-hash command in ledger-tool was recently deprecated. However,
the command is used by some of the scripts that coordinate starting up
a fresh cluster. So, the deprecation of bank-hash broke those scripts.

This change fixes the scripts by doing the following:
- Makes --print-bank-hash support --output json
- Updates scripts to install jq on provisioned nodes
- Update remote-node.sh to parse the bank hash from json using jq

* use bytemuck_derive 1.7.0 explicitly in sdk and program (anza-xyz#1793)

* use bytemuck_derive 1.7.0 explicitly in sdk and program

* explicitly activate the derive feature of bytemuck in zk-sdk

* Make futures crate optional in solana-type-overrides (anza-xyz#1792)

* CI - SBPF program build script (anza-xyz#1581)

* Replaces the rust build script by a makefile

* PrioGraphScheduler::complete_batch remove TransactionAccountLocks allocation (anza-xyz#1759)

* Round up correctly when truncating max ancient storages (anza-xyz#1781)

* refactor: consolidate fee deduction for failed transactions (anza-xyz#1636)

* change match to an if (anza-xyz#726)

* typo fixes (anza-xyz#1795)

* charging CU for loaded accounts data size (anza-xyz#1356)

* Fix SyscallLogPubkey doc comment (anza-xyz#1805)

* Fix SyscallLogPubkey doc comment

* Update logging.rs

* ReadWriteAccountSet: use AHashSet (anza-xyz#1265)

* Reuse compute budget processing (anza-xyz#1700)

* refactor: reuse compute budget limits

* fix tests

* Rename tx counts from committed to executed (anza-xyz#1807)

* Clean up: remove unused _feature_set (anza-xyz#1803)

* ledger-tool: Get shreds from BigTable blocks (anza-xyz#1638)

There is often a desire to examine/replay/etc older blocks. If the
blocks are recent enough, they can be pulled from an actively running
node. Otherwise, the blocks must be pulled down from warehouse node
archives. These archives are uploaded on a per-epoch basis so they are
quite large, and can take multiple hours to download and decompress.

With the addition of Entry data to BigTable, blocks can be recreated
from BigTable data. Namely, we can recreate the Entries with proper PoH
and transaction data. We can then shred them such that they are the
same format as blocks that are produced from the cluster.

This change introduces a new command that will read BigTable data and
insert shreds into a local Blockstore. The new command is:
  $ agave-ledger-tool bigtable shreds ...

Several important notes about the change:
- Shred for some slot S will not be signed by the actual leader for
  slot S. Instead, shreds will be signed with a "dummy" keypair. The
  shred signatures does not affect the ability to replay the block.
- Entry PoH data does not go back to genesis in BigTable. This data
  could be extracted and uploaded from the existing rocksdb archives;
  however, that work is not planned as far as I know. --allow-mock-poh
  can be passed to generate filler PoH data. Blocks created with this
  flag are replayable by passing --skip-poh-verify to ledger-tool.
- A snapshot will be unpacked to determine items such as the shred
  version, tick hash rate and ticks per slot. This snapshot must be in
  the same epoch as the requested slots

* [docs] Add ciphertext validity proof docs (anza-xyz#1776)

* docs: add ciphertext validity proof docs

* update docs link to anza's

* remove extra space at the end of line

* deps: Use bytemuck_derive explicitly instead of "derive" feature on bytemuck (anza-xyz#1799)

* deps: Use bytemuck_derive explicitly

* Missed a couple in zk-token-sdk

* Fix last few bits

* Fixup a re-export

* Use re-exports properly

* harden sbf realloc tests (anza-xyz#1600)

* Improve SchedulerStatus code and test as follow-up (anza-xyz#1797)

* Improve SchedulerStatus code and test as follow-up

* Don't use wait_timeout_while with magic number

* SVM: Refactor program match criteria (anza-xyz#1784)

* SVM: hoist `program_modification_slot` up from bank

* SVM: add `check_program_modification_slot` to processing config

* SVM: hoist `program_match_criteria` up from bank

* SVM: drop `get_program_match_critera` from callbacks

* SVM: update spec (anza-xyz#1814)

* Verify elf locally for write buffer cli command (anza-xyz#1794)

Verify elf locally for write buffer command

* add stats for ancient bytes_from_newest_storages (anza-xyz#1802)

* add stats for ancient bytes_from_smallest_storages

* fix else if

* remove totally unrelated demo code. ugh.

* Update CHANGELOG.md in preparation for branching v2.0 (anza-xyz#1819)

* Bump version to v2.0.1 (anza-xyz#1821)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* v2.0: add .github/CODEOWNERS (anza-xyz#1833)

* v2.0: chore: add dcou to apply_votes_to_tower (backport of anza-xyz#1831) (anza-xyz#1843)

chore: add dcou to apply_votes_to_tower (anza-xyz#1831)

* add dcou to apply_votes_to_tower

* cargo sort

* fix fmt

(cherry picked from commit 66bdefd)

Co-authored-by: Yihau Chen <yihau.chen@icloud.com>

* v2.0: chore: remove publish=false from transaction-metrics-tracker/Cargo.toml (backport of anza-xyz#1828) (anza-xyz#1844)

chore: remove publish=false from transaction-metrics-tracker/Cargo.toml (anza-xyz#1828)

(cherry picked from commit ac63c0a)

Co-authored-by: Yihau Chen <yihau.chen@icloud.com>

* v2.0: chore: publish solana-tps-client (backport of anza-xyz#1845) (anza-xyz#1846)

chore: publish solana-tps-client (anza-xyz#1845)

(cherry picked from commit 7584773)

Co-authored-by: Yihau Chen <yihau.chen@icloud.com>

* Bump version to v2.0.2 (anza-xyz#1848)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* v2.0: Add partitioned epoch rewards to changelog for v2.0 (backport of anza-xyz#1864) (anza-xyz#1868)

Add partitioned epoch rewards to changelog for v2.0 (anza-xyz#1864)

Add partitioned epoch rewards to changelog

(cherry picked from commit f0641ef)

Co-authored-by: Tyera <tyera@anza.xyz>

* v2.0: spl: Upgrade all crates to v2-only versions (backport of anza-xyz#1872) (anza-xyz#1880)

spl: Upgrade all crates to v2-only versions (anza-xyz#1872)

(cherry picked from commit 6aee845)

Co-authored-by: Jon C <me@jonc.dev>

* v2.0: Use num_partitions to find specific stake rewards in partitions (backport of anza-xyz#1677) (anza-xyz#1881)

Use num_partitions to find specific stake rewards in partitions (anza-xyz#1677)

* Add helper to find and filter rewards from a slot

* Check feature enabled for desired epoch

* Refactor existing rewards code to support vote-rewards after activation

* Append stake rewards from partitions

* Remove feature deactivation from TestValidator

* Improve comments

* Add comment about retaining feature activation slot logic

* Add custom error and use in getInflationReward

* Review nit

(cherry picked from commit 0496b06)

Co-authored-by: Tyera <tyera@anza.xyz>

* v2.0: Make unified scheduler opt-in for block verification (backport of anza-xyz#1668) (anza-xyz#1874)

Make unified scheduler opt-in for block verification (anza-xyz#1668)

* Enable unified scheduler for block verification

* Revert making unified scheduler enabled by default

(cherry picked from commit 40508cd)

Co-authored-by: Ryo Onodera <ryoqun@gmail.com>

* v2.0: Remove support for deprecated rpc endpoints (backport of anza-xyz#1809) (anza-xyz#1886)

* Remove support for deprecated rpc endpoints (anza-xyz#1809)

* Remove rpc_obsolete_v1_7

* Remove rpc_deprecated_v1_7

* Remove rpc_deprecated_v1_9

* Add CHANGELOG entry

* Add another CHANGELOG entry

(cherry picked from commit 83527d9)

# Conflicts:
#	CHANGELOG.md

* Fix conflict

---------

Co-authored-by: Tyera <tyera@anza.xyz>

* v2.0: Add --block-verification-method=unified-scheduler for v2.0 changelog (backport of anza-xyz#1878) (anza-xyz#1879)

Add --block-verification-method=unified-scheduler for v2.0 changelog (anza-xyz#1878)

(cherry picked from commit 2b88299)

# Conflicts:
#	CHANGELOG.md

Co-authored-by: Ryo Onodera <ryoqun@gmail.com>

* v2.0: Avoid unneeded start_session() with cleanups (bp: anza-xyz#1815, anza-xyz#1861) (anza-xyz#1854)

* Avoid unneeded start_session() when spawning (anza-xyz#1815)

* Avoid unneeded start_session() when spawning

* Add comments

(cherry picked from commit 40a9851)

* Apply cosmetic changes to unified scheduler (anza-xyz#1861)

* Apply cosmetic changes to unified scheduler

* Use first instead of old-fashioned firstly

Co-authored-by: Andrew Fitzgerald <apfitzge@gmail.com>

---------

Co-authored-by: Andrew Fitzgerald <apfitzge@gmail.com>

---------

Co-authored-by: Ryo Onodera <ryoqun@gmail.com>
Co-authored-by: Andrew Fitzgerald <apfitzge@gmail.com>

* v2.0: Add since field to deprecation note (backport of anza-xyz#1905) (anza-xyz#1910)

Add since field to deprecation note (anza-xyz#1905)

Add  to deprecation note

(cherry picked from commit 70254b1)

Co-authored-by: Tyera <tyera@anza.xyz>

* v2.0: vote: remove deprecated ixs (backport of anza-xyz#1906) (anza-xyz#1917)

vote: remove deprecated ixs (anza-xyz#1906)

(cherry picked from commit e42e7fd)

Co-authored-by: Ashwin Sekar <ashwin@anza.xyz>

* v2.0: Deprecate --rocksdb-shred-compaction fifo (backport of anza-xyz#1882) (anza-xyz#1907)

Deprecate --rocksdb-shred-compaction fifo (anza-xyz#1882)

The fifo compaction option was originally added to mitigate write
stalls that were occurring with level compaction. Since fifo was
introduced, the level compaction implementation has been optimized
to reduce I/O amplification. With these improvements, level and fifo
are comparable and sticking with level only simplifies things.

For now, only a deprecation warning will be printed. In the next
release branch (2.1.0), specifying fifo will be an error

(cherry picked from commit e15e235)

Co-authored-by: steviez <steven@anza.xyz>

* v2.0: Refactor and additional metrics for cost tracking (backport of anza-xyz#1888) (anza-xyz#1900)

* Refactor and additional metrics for cost tracking (anza-xyz#1888)

* Refactor and add metrics:
- Combine remove_* and update_* functions to reduce locking on cost-tracker and iteration.
- Add method to calculate executed transaction cost by directly using actual execution cost and loaded accounts size;
- Wireup histogram to report loaded accounts size;
- Report time of block limits checking;
- Move account counters from ExecuteDetailsTimings to ExecuteAccountsDetails;

* Move committed transactions adjustment into its own function

(cherry picked from commit c3fadac)

* rename cost_tracker.account_data_size to better describe its purpose is to tracker per-block new account allocation

---------

Co-authored-by: Tao Zhu <82401714+tao-stones@users.noreply.github.com>
Co-authored-by: Tao Zhu <tao@solana.com>

* v2.0: Remove deprecated SyncClient methods (backport of anza-xyz#1902) (anza-xyz#1909)

Remove deprecated SyncClient methods (anza-xyz#1902)

* Remove deprecated methods from SyncClient trait

* Add line to changelog

(cherry picked from commit 3d3faf5)

Co-authored-by: Tyera <tyera@anza.xyz>

* Revert "v2.0: Refactor and additional metrics for cost tracking (backport of anza-xyz#1888) (anza-xyz#1900) (anza-xyz#1937)

Revert "v2.0: Refactor and additional metrics for cost tracking (backport of anza-xyz#1888) (anza-xyz#1900)"

This reverts commit 0aef62e.

* v2.0: Remove deprecated RpcClient methods (backport of anza-xyz#1899) (anza-xyz#1922)

Remove deprecated RpcClient methods (anza-xyz#1899)

* Remove deprecated RpcClient methods corresponding to anza-xyz#1809

* Remove internal handling for pre-v1.9.0 servers

* Remove unused import of deprecated_config module

* Remove request mapping (pre-v1.7.0)

* Remove dangling allow-deprecated tag

* Add line to changelog

* Remove deprecated RpcRequest variants

* Remove reprecated rpc-client-nonce-utils methods

* Remove deprecated TestValidator method

* Remove deprecated solana fees command

(cherry picked from commit 51af772)

Co-authored-by: Tyera <tyera@anza.xyz>

* v2.0: Deprecate RpcClient::get_stake_activation (backport of anza-xyz#1895) (anza-xyz#1925)

Deprecate RpcClient::get_stake_activation (anza-xyz#1895)

* Deprecate RpcClient::get_stake_activation

* Fixup redelegation test

(cherry picked from commit 114041c)

Co-authored-by: Tyera <tyera@anza.xyz>

* v2.0: Remove rpc endpoint deprecated in v1.18 (backport of anza-xyz#1897) (anza-xyz#1926)

Remove rpc endpoint deprecated in v1.18 (anza-xyz#1897)

* Remove rpc_deprecated_v1_18

* Update changelog

* Fixup redelegation test

(cherry picked from commit 99b2d5a)

Co-authored-by: Tyera <tyera@anza.xyz>

* v2.0: Remove deprecated_config module (backport of anza-xyz#1951) (anza-xyz#1957)

Remove deprecated_config module (anza-xyz#1951)

(cherry picked from commit 00ee0ac)

Co-authored-by: Tyera <tyera@anza.xyz>

* v2.0: gossip: do not allow duplicate proofs for incorrect shred versions (backport of anza-xyz#1931) (anza-xyz#1941)

gossip: do not allow duplicate proofs for incorrect shred versions (anza-xyz#1931)

* gossip: do not allow duplicate proofs for incorrect shred versions

* pr feedback: refactor test function to take shred_version

(cherry picked from commit 69ea21e)

Co-authored-by: Ashwin Sekar <ashwin@anza.xyz>

* v2.0: ci: skip spl test when version is too high (backport of anza-xyz#1945) (anza-xyz#1961)

ci: skip spl test when version is too high (anza-xyz#1945)

(cherry picked from commit 4d9d27f)

Co-authored-by: Yihau Chen <yihau.chen@icloud.com>

* v2.0: Remove deprecated symbols from solana-sdk (backport of anza-xyz#1953) (anza-xyz#1962)

Remove deprecated symbols from solana-sdk (anza-xyz#1953)

* Remove deprecated Account methods

* Remove deprecated info macro

* Remove deprecated Signature method

* Remove deprecated native_loader method

* Remove deprecated transaction method (deprecated in v1.9)

* Remove deprecated entrypoint definitions

* Remove deprecated program_stubs macro

(cherry picked from commit e2643f3)

Co-authored-by: Tyera <tyera@anza.xyz>

* v2.0: Remove deprecated BanksClient methods and dependent ProgramTest methods (backport of anza-xyz#1956) (anza-xyz#1963)

Remove deprecated BanksClient methods and dependent ProgramTest methods (anza-xyz#1956)

* Remove deprecated Banks client/interface methods

* Remove dependent deprecated program-test methods

(cherry picked from commit 6e4e82e)

Co-authored-by: Tyera <tyera@anza.xyz>

* v2.0: Remove deprecated spl-token conversion methods (backport of anza-xyz#1955) (anza-xyz#1978)

Remove deprecated spl-token conversion methods (anza-xyz#1955)

(cherry picked from commit 58027a3)

Co-authored-by: Tyera <tyera@anza.xyz>

* v2.0: Remove deprecated symbols from solana-program (backport of anza-xyz#1958) (anza-xyz#1977)

Remove deprecated symbols from solana-program (anza-xyz#1958)

* Remove SLOT_MS

* Remove deprecated Pubkey methods

* Remove deprecated info! macro

* Delete deprecated and dangling borsh 0.9 module

* Remove deprecated UpgradeableLoaderState methods

* Remove FeeCalculator deprecated method

* Remove deprecated Instruction ctor

* Remove deprecated legacy-message methods (deprecated in v1.9)

(cherry picked from commit 2f85940)

Co-authored-by: Tyera <tyera@anza.xyz>

* v2.0: Handle deprecated Instructions sysvar methods (backport of anza-xyz#1959) (anza-xyz#1979)

* Handle deprecated Instructions sysvar methods (anza-xyz#1959)

* Remove deprecated legacy-message methods (deprecated in v1.9)

* Unpub deprecated method load_current_index; dedupe

* Unpub deprecated method load_instruction_at; dedupe

* Remove allow(deprecated) tags

* Make load_instruction_at available to benches

(cherry picked from commit adb9d9e)

# Conflicts:
#	sdk/program/Cargo.toml
#	sdk/program/src/sysvar/instructions.rs

* Fix conflicts

---------

Co-authored-by: Tyera <tyera@anza.xyz>

* v2.0: Remove deprecated address_lookup_table_account re-export (backport of anza-xyz#1972) (anza-xyz#1990)

* Remove deprecated address_lookup_table_account re-export (anza-xyz#1972)

* Remove deprecated re-export

* Remove deprecated stuff from example_mocks

* Remove deprecated programs/alt re-export

(cherry picked from commit f681fe8)

# Conflicts:
#	sdk/program/src/lib.rs

* Fix conflict

---------

Co-authored-by: Tyera <tyera@anza.xyz>

* v2.0: Remove deprecated, unused methods from Bank (backport of anza-xyz#1980) (anza-xyz#1988)

Remove deprecated, unused methods from Bank (anza-xyz#1980)

Remove deprecated methods from Bank (not in use)

(cherry picked from commit 0313047)

Co-authored-by: Tyera <tyera@anza.xyz>

* v2.0: Refactor cost tracking (backport of anza-xyz#1954) (anza-xyz#1975)

* Refactor cost tracking (anza-xyz#1954)

* Refactor and additional metrics for cost tracking (anza-xyz#1888)

* Refactor and add metrics:
- Combine remove_* and update_* functions to reduce locking on cost-tracker and iteration.
- Add method to calculate executed transaction cost by directly using actual execution cost and loaded accounts size;
- Wireup histogram to report loaded accounts size;
- Report time of block limits checking;
- Move account counters from ExecuteDetailsTimings to ExecuteAccountsDetails;

* Move committed transactions adjustment into its own function

* remove histogram for loaded accounts size due to performance impact

(cherry picked from commit f8630a3)

* rename cost_tracker.account_data_size to better describe its purpose is to tracker per-block new account allocation

---------

Co-authored-by: Tao Zhu <82401714+tao-stones@users.noreply.github.com>
Co-authored-by: Tao Zhu <tao@solana.com>

* v2.0: Bump ThinClient since version (backport of anza-xyz#1991) (anza-xyz#2001)

Bump ThinClient since version (anza-xyz#1991)

(cherry picked from commit 1063be7)

Co-authored-by: Tyera <tyera@anza.xyz>

* v2.0: Add suggestion to deprecation message (backport of anza-xyz#1993) (anza-xyz#2000)

Add suggestion to deprecation message (anza-xyz#1993)

(cherry picked from commit c848645)

Co-authored-by: Tyera <tyera@anza.xyz>

* v2.0: Remove assorted deprecated symbols (backport of anza-xyz#1995) (anza-xyz#2002)

* Remove assorted deprecated symbols (anza-xyz#1995)

* Remove deprecated method from program-test

* Remove deprecated programs stuff from TestValidator

* Remove deprecated method from TestValidator (deprecated in v1.11.0)

* Remove deprecated re-export from cluster_info

(cherry picked from commit efdbdc0)

# Conflicts:
#	gossip/src/cluster_info.rs

* Fix conflict

---------

Co-authored-by: Tyera <tyera@anza.xyz>

* v2.0: Use node's latest vote for commitment calc. too (backport of anza-xyz#1964) (anza-xyz#1994)

Use node's latest vote for commitment calc. too (anza-xyz#1964)

* Use node's latest vote for commitment calc. too

* Make local_cluster test use finalized

* Update core/src/commitment_service.rs

Co-authored-by: Tyera <teulberg@gmail.com>

* Don't wrap with Option and update tests

---------

Co-authored-by: Tyera Eulberg <tyera@anza.xyz>
Co-authored-by: Tyera <teulberg@gmail.com>
(cherry picked from commit 5562989)

Co-authored-by: Ryo Onodera <ryoqun@gmail.com>

* v2.0: [zk-token-sdk] Specify version in deprecations in `zk-token-sdk` (backport of anza-xyz#2011) (anza-xyz#2014)

* v2.0: Remove deprecated CommitmentLevel variants (backport of anza-xyz#1903) (anza-xyz#1989)

Remove deprecated CommitmentLevel variants (anza-xyz#1903)

* Remove deprecated CommitmentLevel variants and CommitmentConfig methods

* Remove deprecated variants from BlockCommitmentCache usage

* Remove deprecated variants from rpc

* Remove maybe_map_commitment from RpcClient

(cherry picked from commit 2e3c2c7)

Co-authored-by: Tyera <tyera@anza.xyz>

* v2.0: Remove deprecated symbols from recent_blockhashes_account (backport of anza-xyz#2004) (anza-xyz#2009)

Remove deprecated symbols from recent_blockhashes_account (anza-xyz#2004)

* Move recent_blockhashes_account to runtime

* Fixup imports

* Reduce pub

* Remove unused method

* Duplicate code to limit pub and dependency complexity

* Move test-only fn into tests module

(cherry picked from commit f77658b)

Co-authored-by: Tyera <tyera@anza.xyz>

* v2.0: Remove rpc methods from mock sender (backport of anza-xyz#1996) (anza-xyz#2008)

Remove rpc methods from mock sender (anza-xyz#1996)

Remove deleted RPC methods from mock_sender

(cherry picked from commit 27988e7)

Co-authored-by: Tyera <tyera@anza.xyz>

* v2.0: Deprecate RpcRequest::GetStakeActivation (backport of anza-xyz#2005) (anza-xyz#2013)

Deprecate RpcRequest::GetStakeActivation (anza-xyz#2005)

* Correct deprecation note

* Deprecate rpc-client-api request

(cherry picked from commit 0deb6fb)

Co-authored-by: Tyera <tyera@anza.xyz>

* v2.0: Remove deprecated symbols from solana-client (mostly re-exports) (backport of anza-xyz#1992) (anza-xyz#2041)

Remove deprecated symbols from solana-client (mostly re-exports) (anza-xyz#1992)

* Remove usage of deprecated re-export from SendTransactionService

* Remove usage of deprecated re-export from core

* Remove usage of deprecated re-export from solana-dos

* Remove deprecated ConnectionCache methods

* Remove deprecated udp_client re-export

* Remove deprecated tpu_connection re-export

* Remove deprecated quic_client re-export

(cherry picked from commit 3cd7621)

Co-authored-by: Tyera <tyera@anza.xyz>

* v2.0: Update changlog re: removal of deprecated symbols (backport of anza-xyz#2006) (anza-xyz#2042)

Update changlog re: removal of deprecated symbols (anza-xyz#2006)

* Format SDK changes as bulleted list, and make deprecation removal generic

* Add changelog line for solana-program

* Add line for solana-client

* Update CHANGELOG.md

(cherry picked from commit b61ce73)

Co-authored-by: Tyera <tyera@anza.xyz>

* v2.0: Clean up disable_fees_sysvar feature (backport of anza-xyz#2003) (anza-xyz#2043)

Clean up disable_fees_sysvar feature (anza-xyz#2003)

* Clean up disable_fees_sysvar

* Remove bank fees test

* Remove unused rpc response types

* Fixup sysvar_cache tests

* Remove fees-sysvar from bootstrap_validator_stake_lamports; no longer included

* Update account counts, since fees no longer touched

* Update bank hashes in test, since fees sysvar is not populated

* Remove test case passing fees sysvar as account

(cherry picked from commit 1c34908)

Co-authored-by: Tyera <tyera@anza.xyz>

* v2.0: Remove get_stake_activation methods from RpcClient (backport of anza-xyz#2036) (anza-xyz#2044)

Remove get_stake_activation methods from RpcClient (anza-xyz#2036)

* Remove dangling JsonRpcRequestProcessor method

* Remove get_stake_activation methods from RpcClient

* Remove getStakeActivation from mock_sender

* Remove unused rpc response type

(cherry picked from commit 3079181)

Co-authored-by: Tyera <tyera@anza.xyz>

* v2.0: Update install docs to agave (backport of anza-xyz#2060) (anza-xyz#2061)

Update install docs to agave (anza-xyz#2060)

* s/SOLANA/AGAVE

* s/solana.com/anza.xyz

(cherry picked from commit b1bb9ff)

Co-authored-by: Tyera <tyera@anza.xyz>

* v2.0: Removes unused deprecated cli args (backport of anza-xyz#2058) (anza-xyz#2063)

Removes unused deprecated cli args (anza-xyz#2058)

(cherry picked from commit 05134be)

Co-authored-by: Brooks <brooks@anza.xyz>

* v2.0: Remove rpc- and pubsub-client version querying (backport of anza-xyz#2045) (anza-xyz#2052)

Remove rpc- and pubsub-client version querying (anza-xyz#2045)

* Remove filter mapping

* Remove unused internal module

* Remove unused pubsub-client stuff

* Remove unused RpcClient encoding maping, node_version

(cherry picked from commit 69d2eb8)

Co-authored-by: Tyera <tyera@anza.xyz>

* v2.0: Remove deprecated Memcmp filter symbols (backport of anza-xyz#2050) (anza-xyz#2069)

Remove deprecated Memcmp filter symbols (anza-xyz#2050)

* Add test to demonstrate serialization and acceptable json inputs

* Remove custom serialization

* Unpub deprecated fields

* Remove deprecated, unused field

* Remove deprecated MemcmpEncodedBytes variant

* Remove deprecated error variants

* Add back custom deserialization to support missing 'encoding' field

* Update tests to demonstrate consistency and changes

* Add helper fns to use in rpc spl-token filter checks

* Update base64 syntax and remove allow-deprecated

(cherry picked from commit 3b3ffbb)

Co-authored-by: Tyera <tyera@anza.xyz>

* Bump version to v2.0.3 (anza-xyz#2080)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* v2.0: Update EpochRewards in sysvars doc (backport of anza-xyz#2102) (anza-xyz#2150)

Update EpochRewards in sysvars doc (anza-xyz#2102)

Update sysvars doc

(cherry picked from commit 147c97d)

Co-authored-by: Tyera <tyera@anza.xyz>

* v2.0: blockstore: only consume duplicate proofs from root_slot + 1 on startup (backport of anza-xyz#1971) (anza-xyz#2114)

blockstore: only consume duplicate proofs from root_slot + 1 on startup (anza-xyz#1971)

* blockstore: only consume duplicate proofs from root_slot + 1 on startup

* pr feedback: update test comments

* pr feedback: add pub behind dcou for test fns

(cherry picked from commit 2a48564)

Co-authored-by: Ashwin Sekar <ashwin@anza.xyz>

* v2.0: Removes deprecated --incremental-snapshots cli arg (backport of anza-xyz#2132) (anza-xyz#2148)

Removes deprecated --incremental-snapshots cli arg (anza-xyz#2132)

(cherry picked from commit 92a9a0e)

Co-authored-by: Brooks <brooks@anza.xyz>

* v2.0: Fix BankForks::new_rw_arc memory leak (backport of anza-xyz#1893) (anza-xyz#2066)

* Fix BankForks::new_rw_arc memory leak (anza-xyz#1893)

(cherry picked from commit d441c0f)

* Fix flaky test test_banking_stage_entries_only_central_scheduler (anza-xyz#2082)

---------

Co-authored-by: Andrei Silviu Dragnea <andreisilviudragnea@gmail.com>
Co-authored-by: Andrew Fitzgerald <apfitzge@gmail.com>

* v2.0: stake-program: `MoveStake` and `MoveLamports` (backport of anza-xyz#1415) (anza-xyz#1928)

stake-program: `MoveStake` and `MoveLamports` (anza-xyz#1415)

implement two new instructions for moving delegated stake and undelegated lamports, respectively, between accounts with the same Authorized and Lockup using the Staker authority

(cherry picked from commit 361ade4)

Co-authored-by: hana <81144685+2501babe@users.noreply.github.com>

* v2.0: docs: Move node hardware requirements to markdown table (backport of anza-xyz#1756) (anza-xyz#2070)

docs: Move node hardware requirements to markdown table (anza-xyz#1756)

(cherry picked from commit a8c3280)

Co-authored-by: ferric <95399413+ferric-sol@users.noreply.github.com>

* v2.0: docs: Removes --halt-on-known-validators-accounts-hash-mismatch mentions (backport of anza-xyz#2155) (anza-xyz#2160)

docs: Removes --halt-on-known-validators-accounts-hash-mismatch mentions (anza-xyz#2155)

(cherry picked from commit 150f4d7)

Co-authored-by: Brooks <brooks@anza.xyz>

* v2.0: fix solana-stake-program-tests version (anza-xyz#2180)

* v2.0: ci: update docs pipeline (backport of anza-xyz#2162) (anza-xyz#2170)

ci: update docs pipeline (anza-xyz#2162)

Co-authored-by: yihau <yihau.chen@icloud.com>

* v2.0: Removes deprecated --halt-on-known-validators-accounts-hash-mismatch cli arg (backport of anza-xyz#2154) (anza-xyz#2157)

Removes deprecated --halt-on-known-validators-accounts-hash-mismatch cli arg (anza-xyz#2154)

(cherry picked from commit 4f228f4)

Co-authored-by: Brooks <brooks@anza.xyz>

* v2.0: validator cli: Clarifies snapshot intervals (backport of anza-xyz#2128) (anza-xyz#2152)

validator cli: Clarifies snapshot intervals (anza-xyz#2128)

(cherry picked from commit 4c7996c)

Co-authored-by: Brooks <brooks@anza.xyz>

* v2.0: ci: "Fix" the downstream anchor build (backport of anza-xyz#2208) (anza-xyz#2214)

ci: "Fix" the downstream anchor build (anza-xyz#2208)

* ci: "Fix" the downstream anchor build

* Force the CI run to happen

(cherry picked from commit fe652ca)

Co-authored-by: Jon C <me@jonc.dev>

* Bump version to v2.0.4 (anza-xyz#2223)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* v2.0: geyser: add num_partitions to block info (backport of anza-xyz#2158) (anza-xyz#2178)

geyser: add num_partitions to block info (anza-xyz#2158)

* geyser: add num_partitions to block info

* fix comment

(cherry picked from commit d8791a6)

Co-authored-by: Kirill Fomichev <fanatid@ya.ru>
Co-authored-by: Tyera <tyera@anza.xyz>

* v2.0: Update index.md (backport of anza-xyz#2242) (anza-xyz#2250)

Update index.md (anza-xyz#2242)

(cherry picked from commit c3ea4e2)

Co-authored-by: Rex St. John | Anza <160657826+rexstjohn-anza@users.noreply.github.com>

* v2.0: chore: bump openssl to 0.10.66 (backport of anza-xyz#2228) (anza-xyz#2235)

chore: bump openssl to 0.10.66 (anza-xyz#2228)

(cherry picked from commit 02918b8)

Co-authored-by: Yihau Chen <yihau.chen@icloud.com>

* v2.0: changelog: Lists removed validator args (backport of anza-xyz#2324) (anza-xyz#2336)

changelog: Lists removed validator args (anza-xyz#2324)

(cherry picked from commit 298eb42)

Co-authored-by: Brooks <brooks@anza.xyz>

* v2.0: ledger-tool: unify and colorize help (backport of anza-xyz#2322) (anza-xyz#2335)

ledger-tool: unify and colorize help (anza-xyz#2322)

(cherry picked from commit 38458f4)

Co-authored-by: Brooks <brooks@anza.xyz>

* v2.0: validator: unify and colorize help (backport of anza-xyz#2323) (anza-xyz#2337)

validator: unify and colorize help (anza-xyz#2323)

(cherry picked from commit e05dbe7)

Co-authored-by: Brooks <brooks@anza.xyz>

* v2.0: Refactor match and add test cases (backport of anza-xyz#2357) (anza-xyz#2359)

Refactor match and add test cases (anza-xyz#2357)

(cherry picked from commit 9c0a927)

Co-authored-by: Tyera <tyera@anza.xyz>

* v2.0: ledger-tool: Set initial last full snapshot slot (backport of anza-xyz#2314) (anza-xyz#2343)

ledger-tool: Set initial last full snapshot slot (anza-xyz#2314)

(cherry picked from commit 75a640e)

Co-authored-by: Brooks <brooks@anza.xyz>

* v2.0: [ed25519] Use `verify_strict` for signature verification in ed25519 precompile (backport of anza-xyz#1876) (anza-xyz#2179)

[ed25519] Use `verify_strict` for signature verification in ed25519 precompile (anza-xyz#1876)

* use `verify_strict` for signature verification in ed25519 precompile

* add test

* clippy

* increase ed25519 precompile cost constant by 5%

* put ed25519 strict verification cost change under feature gate

---------

Co-authored-by: Emanuele Cesena <ecesena@jumptrading.com>
(cherry picked from commit ddda6c3)

Co-authored-by: samkim-crypto <skim13@cs.stanford.edu>

* v2.0: Add removed line from PR1192 (backport of anza-xyz#2249) (anza-xyz#2319)

Add removed line from PR1192 (anza-xyz#2249)

* Add removed line from PR1192

* Test missing programs were loaded

(cherry picked from commit b14f103)

Co-authored-by: asolana <110843012+ksolana@users.noreply.github.com>

* v2.0: rolls out chained Merkle shreds to ~5% of testnet (backport of anza-xyz#2389) (anza-xyz#2407)

rolls out chained Merkle shreds to ~5% of testnet (anza-xyz#2389)

(cherry picked from commit a60fbc2)

Co-authored-by: behzad nouri <behzadnouri@gmail.com>

* v2.0: verifies retransmitter signature on chained Merkle shreds (backport of anza-xyz#1735) (anza-xyz#2201)

verifies retransmitter signature on chained Merkle shreds (anza-xyz#1735)

(cherry picked from commit 6f94686)

Co-authored-by: behzad nouri <behzadnouri@gmail.com>

* Bump version to v2.0.5 (anza-xyz#2419)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* v2.0: Cleanup PoH speed check error (backport of anza-xyz#2400) (anza-xyz#2458)

* Cleanup PoH speed check logs and error

The current logging and error message from the Poh speed check are
confusing. If the node fails, the error message states that the node is
too slow. But, the reported numbers are slot durations in nanoseconds
where a slower node will have a larger number. Lastly, the reported
numbers aren't labeled with a unit so it is hard to make sense of this
without looking at the actual code.

The check now computes and reports hashes per second.

(cherry picked from commit ecc05c5)

# Conflicts:
#	core/src/validator.rs

* merge conflicts

---------

Co-authored-by: steviez <steven@anza.xyz>

* v2.0: Bump platform tools version to v1.42 (backport of anza-xyz#2355) (anza-xyz#2461)

Bump platform tools version to v1.42 (anza-xyz#2355)

(cherry picked from commit fb80e48)

Co-authored-by: Lucas Ste <38472950+LucasSte@users.noreply.github.com>

* Bump rbpf version to 0.8.4 (backport of anza-xyz#2515) (anza-xyz#2514)

Bump rbpf version to 0.8.4

* resolve cargo toml

* fix typos while merging

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: galactus <96341601+godmodegalactus@users.noreply.github.com>
Co-authored-by: HaoranYi <haoran.yi@gmail.com>
Co-authored-by: HaoranYi <haoran.yi@solana.com>
Co-authored-by: Kirill Fomichev <fanatid@ya.ru>
Co-authored-by: Wen <113942165+wen-coding@users.noreply.github.com>
Co-authored-by: Jon C <me@jonc.dev>
Co-authored-by: Joe C <joe.caulfield@anza.xyz>
Co-authored-by: Kevin Heavey <heaveykevin2@gmail.com>
Co-authored-by: Andrei Silviu Dragnea <andreisilviudragnea@gmail.com>
Co-authored-by: Greg Cusack <greg.cusack@anza.xyz>
Co-authored-by: Yihau Chen <yihau.chen@icloud.com>
Co-authored-by: steviez <steven@anza.xyz>
Co-authored-by: Tyera <tyera@anza.xyz>
Co-authored-by: Lucas Ste <38472950+LucasSte@users.noreply.github.com>
Co-authored-by: samkim-crypto <skim13@cs.stanford.edu>
Co-authored-by: Pankaj Garg <pankaj@anza.xyz>
Co-authored-by: Andrew Fitzgerald <apfitzge@gmail.com>
Co-authored-by: Ryo Onodera <ryoqun@gmail.com>
Co-authored-by: Sean Young <sean@mess.org>
Co-authored-by: Tyera <teulberg@gmail.com>
Co-authored-by: Brooks <brooks@anza.xyz>
Co-authored-by: Jeff Washington (jwash) <jeff.washington@anza.xyz>
Co-authored-by: Alexander Meißner <AlexanderMeissner@gmx.net>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Alessandro Decina <alessandro.d@gmail.com>
Co-authored-by: Justin Starry <justin@anza.xyz>
Co-authored-by: knotts <knotts1416@protonmail.com>
Co-authored-by: Tao Zhu <82401714+tao-stones@users.noreply.github.com>
Co-authored-by: Sammy Harris <41593264+stegaBOB@users.noreply.github.com>
Co-authored-by: Will Hickey <csu_hickey@yahoo.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Co-authored-by: Ashwin Sekar <ashwin@anza.xyz>
Co-authored-by: Tao Zhu <tao@solana.com>
Co-authored-by: hana <81144685+2501babe@users.noreply.github.com>
Co-authored-by: ferric <95399413+ferric-sol@users.noreply.github.com>
Co-authored-by: Rex St. John | Anza <160657826+rexstjohn-anza@users.noreply.github.com>
Co-authored-by: asolana <110843012+ksolana@users.noreply.github.com>
Co-authored-by: behzad nouri <behzadnouri@gmail.com>
Co-authored-by: Will Hickey <will.hickey@anza.xyz>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
v2.0 Backport to v2.0 branch
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants