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

run full gossip node when running solana-gossip rpc-url #1753

Merged
merged 2 commits into from
Jun 18, 2024

Conversation

gregcusack
Copy link

Problem

PR: #1615 requires a node to respond to a ping when attempting to connect to the gossip cluster. However, solana-gossip rpc-url ... sends 127.0.0.1:8000 inside its ContactInfo when attempting to connect to the gossip cluster. As a result, a node receiving a ContactInfo message from the node running solana-gossip rpc-url... will attempt to ping 127.0.0.1:8000.

Summary of Changes

Solution is to run a full gossip node (actually very similar to what solana-gossip spy ... runs). This way, the node will send its true gossip IP:port to the destination and can respond to the ping it receives from the destination.

@gregcusack gregcusack changed the title run full gossip node when running solana-gossip rpc-url ... run full gossip node when running solana-gossip rpc-url Jun 15, 2024
@gregcusack gregcusack force-pushed the fix-gossip-rpc-url-command branch from 54b3d1f to 1d69c21 Compare June 15, 2024 00:30
@gregcusack gregcusack requested a review from behzadnouri June 15, 2024 00:31
behzadnouri
behzadnouri previously approved these changes Jun 17, 2024
Comment on lines 292 to 303
let gossip_host = parse_gossip_host(matches, entrypoint_addr);

let gossip_addr = SocketAddr::new(
gossip_host,
value_t!(matches, "gossip_port", u16).unwrap_or_else(|_| {
solana_net_utils::find_available_port_in_range(
IpAddr::V4(Ipv4Addr::UNSPECIFIED),
(0, 1),
)
.expect("unable to find an available gossip port")
}),
);
Copy link

@behzadnouri behzadnouri Jun 17, 2024

Choose a reason for hiding this comment

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

Copy link
Author

Choose a reason for hiding this comment

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

ya np

@gregcusack gregcusack force-pushed the fix-gossip-rpc-url-command branch 3 times, most recently from 03d1761 to 6a7cb44 Compare June 17, 2024 21:30
Comment on lines 326 to 338
) -> Result<SocketAddr, Box<dyn error::Error>> {
let gossip_host = parse_gossip_host(matches, entrypoint_addr);
let gossip_addr = SocketAddr::new(
gossip_host,
value_t!(matches, "gossip_port", u16).unwrap_or_else(|_| {
solana_net_utils::find_available_port_in_range(
IpAddr::V4(Ipv4Addr::UNSPECIFIED),
(0, 1),
)
.expect("unable to find an available gossip port")
}),
);
Ok(gossip_addr)

Choose a reason for hiding this comment

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

This does not seem like ever returning an Err, no?

Comment on lines 234 to 247
let entrypoint_addr = parse_entrypoint(matches);

let gossip_host = parse_gossip_host(matches, entrypoint_addr);

let gossip_addr = SocketAddr::new(
gossip_host,
value_t!(matches, "gossip_port", u16).unwrap_or_else(|_| {
solana_net_utils::find_available_port_in_range(
IpAddr::V4(Ipv4Addr::UNSPECIFIED),
(0, 1),
)
.expect("unable to find an available gossip port")
}),
);

Choose a reason for hiding this comment

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

We don't need to change process_spy and process_rpc_url signature, right?
We just need to call the added helper function here, instead.

Comment on lines 347 to 356
(gossip_type, Some(matches)) => {
let entrypoint_addr = parse_entrypoint(matches);
let gossip_addr = get_gossip_address(matches, entrypoint_addr)?;
match gossip_type {
"spy" => process_spy(matches, socket_addr_space, entrypoint_addr, gossip_addr)?,
"rpc-url" => {
process_rpc_url(matches, socket_addr_space, entrypoint_addr, gossip_addr)?
}
_ => unreachable!(),
}

Choose a reason for hiding this comment

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

As in the other comment, my inclination is not to add the logic here in main but just call the newly added helper function instead of the duplicate code.
That would avoid tying spy and rpc-url processing like here.

@gregcusack gregcusack force-pushed the fix-gossip-rpc-url-command branch from 6a7cb44 to 6e1171f Compare June 17, 2024 22:34
@gregcusack gregcusack added the automerge automerge Merge this Pull Request automatically once CI passes label Jun 17, 2024
@mergify mergify bot merged commit ddb4b3b into anza-xyz:master Jun 18, 2024
41 checks passed
@gregcusack gregcusack deleted the fix-gossip-rpc-url-command branch June 18, 2024 00:32
neutrinoks pushed a commit to nitro-svm/agave that referenced this pull request Jul 17, 2024
)

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

* refactor gossip_addr out from spy and rpc methods
neutrinoks added a commit to nitro-svm/agave that referenced this pull request Jul 17, 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>

* finalise removement of solana-metrics

---------

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>
samkim-crypto pushed a commit to samkim-crypto/agave that referenced this pull request Jul 31, 2024
)

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

* refactor gossip_addr out from spy and rpc methods
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
automerge automerge Merge this Pull Request automatically once CI passes
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants