Commit Graph

23883 Commits

Author SHA1 Message Date
mergify[bot] f3308f733f
v1.17: prunes repair QUIC connections (backport of #33775) (#33792)
prunes repair QUIC connections (#33775)

The commit implements lazy eviction for repair QUIC connections.
The cache is allowed to grow to 2 x capacity at which point at least
half of the entries with lowest stake are evicted, resulting in an
amortized O(1) performance.

(cherry picked from commit dc3c827299)

Co-authored-by: behzad nouri <behzadnouri@gmail.com>
2023-10-20 21:19:22 +00:00
mergify[bot] de407ad4a4
v1.17: separates out routing shreds from establishing connections (backport of #33599) (#33772)
separates out routing shreds from establishing connections (#33599)

Currently each outgoing shred will attempt to establish a connection if
one does not already exist. This is very wasteful and consumes many
tokio tasks if the remote node is down or unresponsive.

The commit decouples routing packets from establishing connections by
adding a buffering channel for each remote address. Outgoing packets are
always sent down this channel to be processed once the connection is
established. If connecting attempt fails, all packets already pushed to
the channel are dropped at once, reducing the number of attempts to make
a connection if the remote node is down or unresponsive.

(cherry picked from commit 8becb72b3e)

Co-authored-by: behzad nouri <behzadnouri@gmail.com>
2023-10-20 20:48:32 +00:00
mergify[bot] 685e329dc8
v1.17: docs: move rpc info to rpc docs (backport of #33723) (#33738)
docs: move rpc info to rpc docs (#33723)

docs: link fixes

docs: link fixes

docs: link fixes
(cherry picked from commit 2c6cc4dd7d)

Co-authored-by: Jacob Creech <82475023+jacobcreech@users.noreply.github.com>
2023-10-20 15:16:36 -05:00
mergify[bot] ae1bfff31f
v1.17: separates out routing repair requests from establishing connections (backport of #33742) (#33769)
separates out routing repair requests from establishing connections (#33742)

Currently each outgoing repair request will attempt to establish a
connection if one does not already exist. This is very wasteful and
consumes many tokio tasks if the remote node is down or unresponsive.

The commit decouples routing packets from establishing connections by
adding a buffering channel for each remote address. Outgoing packets are
always sent down this channel to be processed once the connection is
established. If connecting attempt fails, all packets already pushed to
the channel are dropped at once, reducing the number of attempts to make
a connection if the remote node is down or unresponsive.

(cherry picked from commit 7aa0faea96)

Co-authored-by: behzad nouri <behzadnouri@gmail.com>
2023-10-20 19:03:37 +00:00
mergify[bot] d550015e7e
v1.17: program error: add `ArithmeticOverflow` (backport of #33767) (#33779)
program error: add `ArithmeticOverflow` (#33767)

(cherry picked from commit 37d093a30e)

Co-authored-by: Joe C <joe.caulfield@solana.com>
2023-10-20 18:12:57 +02:00
mergify[bot] 945daef906
v1.17: SDK: update error variants in `Feature::from_account_info` (backport of #33750) (#33780)
SDK: update error variants in `Feature::from_account_info` (#33750)

(cherry picked from commit 6b1e9b8974)

Co-authored-by: Joe C <joe.caulfield@solana.com>
2023-10-20 16:55:52 +02:00
mergify[bot] 423de49f8f
v1.17: program error: add `InvalidAccountOwner` (backport of #33766) (#33773) 2023-10-19 20:24:30 +02:00
mergify[bot] e76dd77e45
v1.17: Fix non-determinism in account_hash_ignore_slot on genesis (backport of #33692) (#33720)
Fix non-determinism in account_hash_ignore_slot on genesis (#33692)

(cherry picked from commit 69495f4c13)

Co-authored-by: Jeff Washington (jwash) <jeff.washington@solana.com>
2023-10-19 08:56:43 -07:00
mergify[bot] ab99086553
v1.17: token-2022: Update to use program build with zk-ops enabled (backport of #33747) (#33757)
token-2022: Update to use program build with zk-ops enabled (#33747)

token-2022: Update to use version with zk-ops enabled
(cherry picked from commit d33758171b)

Co-authored-by: Jon Cinque <me@jonc.dev>
2023-10-19 00:19:26 +02:00
mergify[bot] eb31c69fdf
v1.17: down samples outgoing gossip pull requests (backport of #33719) (#33752)
down samples outgoing gossip pull requests (#33719)

Push message propagation has improved in recent versions of the gossip
code and we don't rely on pull requests as much as before. Handling pull
requests is also inefficient and expensive.
The commit reduces number of outgoing pull requests by down sampling.

(cherry picked from commit c699bc9cab)

Co-authored-by: behzad nouri <behzadnouri@gmail.com>
2023-10-18 16:40:46 +00:00
mergify[bot] 37a7350893
v1.17: remove redundant pubkey update record (backport of #33722) (#33735)
remove redundant pubkey update record (#33722)

* remove redundant pubkey update record

* from became unused, so removed from all process_pull_response() calls

(cherry picked from commit 6efc7ec61d)

Co-authored-by: Greg Cusack <greg.cusack@solana.com>
2023-10-17 19:52:13 +00:00
mergify[bot] 8af823401a
v1.17: Enable frozen_abi on banking trace file (backport of #33501) (#33578)
* Enable frozen_abi on banking trace file (#33501)

* Enable frozen_abi on banking trace file

* Fix ci with really correct bugfix...

* Remove tracker_callers

* Fix typo...

* Fix AbiExample for Arc/Rc's Weaks

* Added comment for AbiExample impl of SystemTime

* Simplify and document EvenAsOpaque with new usage

* Minor clean-ups

* Simplify SystemTime::example() with UNIX_EPOCH...

* Add comment for AbiExample subtleties

(cherry picked from commit 95810d876a)

# Conflicts:
#	Cargo.lock

* fix conflict

---------

Co-authored-by: Ryo Onodera <ryoqun@gmail.com>
2023-10-17 13:48:04 +09:00
Will Hickey 944375b953
Update version to v1.17.3 (#33721) 2023-10-16 21:08:19 +00:00
Will Hickey dfa5829b4f
Prepare changelog for v1.17.2 (#33638)
* Update v1.17 changelog to current version

* Remove edge / beta / stable links. Leaving them is potentially confusing. Maintaining them is error prone and of limited benefit

* Update v1.17.1 notes

* Prepare CHANGELOG.md for v1.17.2 release
2023-10-16 14:37:13 -05:00
mergify[bot] 05ebb1f0bb
v1.17: Change getHealth to compare optimistically confirmed slots (backport of #33651) (#33714)
Change getHealth to compare optimistically confirmed slots (#33651)

The current getHealth mechanism checks a local accounts hash slot vs.
those of other nodes as specified by --known-validator. This is a
very coarse comparison given that the default for this value is 100
slots. More so, any nodes using a value larger than the default
(ie --incremental-snapshot-interval 500) will likely see getHealth
return status behind at some point.

Change the underlying mechanism of how health is computed. Instead of
using the accounts hash slots published in gossip, use the latest
optimistically confirmed slot from the cluster. Even when a node is
behind, it is able to observe cluster optimistically confirmed by slots
by viewing votes published in gossip.

Thus, the latest cluster optimistically confirmed slot can be compared
against the latest optimistically confirmed bank from replay to
determine health. This new comparison is much more granular, and not
needing to depend on individual known validators is also a plus.

(cherry picked from commit 8bd0e4cd95)

Co-authored-by: steviez <steven@solana.com>
2023-10-16 13:04:33 -05:00
mergify[bot] 02f9c97446
v1.17: Refactor - LoadedPrograms part 2 (backport of #33694) (#33695)
* Refactor - LoadedPrograms part 2 (#33694)

(cherry picked from commit a3f85aba21)

# Conflicts:
#	runtime/src/bank/tests.rs

* fix merge conflicts

---------

Co-authored-by: Alexander Meißner <AlexanderMeissner@gmx.net>
Co-authored-by: Pankaj Garg <pankaj@solana.com>
2023-10-13 22:00:35 +00:00
mergify[bot] 10b00df3d1
v1.17: bank: do not remove trailing 0 bytes from return data (backport of #33639) (#33685)
bank: do not remove trailing 0 bytes from return data (#33639)

This is creating havoc for Solang, as the return data is borsh encoded
and therefore `u64` values like 0x100 get truncated.

(cherry picked from commit 47511999bb)

Co-authored-by: Sean Young <sean@mess.org>
2023-10-13 20:22:34 +01:00
mergify[bot] 8d270720f3
v1.17: validator: skip health check (backport of #33568) (#33588)
validator: skip health check (#33568)

* validator: skip health check

* keep `healthy` as a boolean

(cherry picked from commit 7afb11f1e6)

Co-authored-by: DimAn <diman@diman.io>
2023-10-13 10:58:32 -07:00
mergify[bot] c96223b69a
v1.17: Prevent delay_visibility_of_program_deployment feature from cache pruning (backport of #33689) (#33691)
Prevent delay_visibility_of_program_deployment feature from cache pruning (#33689)

(cherry picked from commit fd9297775a)

Co-authored-by: Pankaj Garg <pankaj@solana.com>
2023-10-13 15:24:18 +00:00
mergify[bot] e1278e2127
v1.17: Adds `--no-skip-initial-accounts-db-clean` *hidden* CLI flag (backport of #33664) (#33677)
Adds `--no-skip-initial-accounts-db-clean` *hidden* CLI flag (#33664)

(cherry picked from commit 452fd5d384)

Co-authored-by: Brooks <brooks@solana.com>
2023-10-12 16:50:38 -04:00
mergify[bot] eceba1c241
v1.17: Update hashes per tick with feature gates (backport of #33600) (#33661)
Update hashes per tick with feature gates (#33600)

* Update hashes per tick with feature gates

(cherry picked from commit b36d051b51)

Co-authored-by: Brennan <brennan.watt@solana.com>
2023-10-11 12:26:12 -07:00
mergify[bot] c6fadb7472
v1.17: docs: Removes accounts-on-ramdisk section (backport of #33655) (#33657)
(cherry picked from commit 99542d9b59)

Co-authored-by: Brooks <brooks@solana.com>
2023-10-11 14:16:53 -04:00
mergify[bot] 0e2bded0f6
v1.17: Allow to create HTTP Sender with custom Client (backport of #33580) (#33660)
Allow to create HTTP Sender with custom Client (#33580)

* Allow to create HTTP Sender with custom Client

* Update rpc-client/src/http_sender.rs

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

---------

Co-authored-by: Tyera <teulberg@gmail.com>
(cherry picked from commit a22678312e)

Co-authored-by: Kirill Fomichev <fanatid@ya.ru>
2023-10-11 17:18:10 +00:00
mergify[bot] d7dc802c11
v1.17: Fix - CPI interface `bool` masking (backport of #33623) (#33625)
Fix - CPI interface `bool` masking (#33623)

Adds masking of booleans in CPI interface to disable_cpi_setting_executable_and_rent_epoch.

(cherry picked from commit 1262ff7589)

Co-authored-by: Alexander Meißner <AlexanderMeissner@gmx.net>
2023-10-10 18:44:46 +02:00
Tyera 534d592dd5
v1.17: skip unrecognized keys in Blockstore special-column iterators (#33617)
* Add helper trait for column key deprecation

* Add ColumnIndexDeprecation iterator method

* Impl ColumnIndexDeprecation for TransactionStatus

* Fix get_transaction_status_with_counter

* Impl ColumnIndexDeprecation for AddressSignatures

* Fix find_address_signatures methods

* Fix get_confirmed_signatures_for_address2
2023-10-10 10:39:31 -06:00
mergify[bot] c45c9dc562
v1.17: Stops pushing legacy snapshot hashes to crds (backport of #33576) (#33581)
(cherry picked from commit c588f25eca)

Co-authored-by: Brooks <brooks@solana.com>
2023-10-10 11:52:53 -04:00
Will Hickey 542b53e5bb
Update version to v1.17.2 (#33573) 2023-10-07 12:36:55 -06:00
mergify[bot] c534100799
v1.17: update feature gate no-op program id (backport of #33535) (#33540)
update feature gate no-op program id (#33535)

(cherry picked from commit 93d8bcca4b)

Co-authored-by: Joe C <jcaulfield135@gmail.com>
2023-10-06 16:24:55 -05:00
mergify[bot] 194903c1cf
v1.17: Uses stable `u64::next_multiple_of()` (backport of #33549) (#33567)
Uses stable `u64::next_multiple_of()` (#33549)

(cherry picked from commit c8d545c501)

Co-authored-by: Brooks <brooks@solana.com>
2023-10-06 20:13:59 +00:00
mergify[bot] a330ffc26d
v1.17: Improves error text when snapshot intervals are incompatible (backport of #33551) (#33562)
(cherry picked from commit 35a0295376)

Co-authored-by: Brooks <brooks@solana.com>
2023-10-06 15:16:00 -04:00
mergify[bot] 3cdee9bb83
v1.17: Upgrades Rust to 1.73.0 (backport of #33546) (#33563)
(cherry picked from commit 2d1449f714)

Co-authored-by: Brooks <brooks@solana.com>
2023-10-06 15:10:21 -04:00
mergify[bot] 05bbaf3f8e
v1.17: Removes unnecessary borrow (backport of #33539) (#33541)
(cherry picked from commit e0091d6995)

Co-authored-by: Brooks <brooks@solana.com>
2023-10-05 17:57:17 -04:00
mergify[bot] 3972d9cb6b
v1.17: Fix CLI help text for `solana stake-account` (backport of #33387) (#33543)
Fix CLI help text for `solana stake-account` (#33387)

Fix help text

(cherry picked from commit 83b49daf29)

Co-authored-by: sakridge <stephen@solana.com>
2023-10-05 18:45:06 +00:00
mergify[bot] 9318394bb5
v1.17: Bank: Add function to replace empty account with upgradeable program on feature activation (backport of #32783) (#33527)
Bank: Add function to replace empty account with upgradeable program on feature activation (#32783)

* replace program account

* modify for all cases

* remove non-data swap

* address tests & conditional feedback

* get the rent involved

* mix in owner & executable

* feature-related cases

* stripped back to feature-specific case only

* added feature

* address initial feedback

* added more lamport checks

* condense tests

* using test_case

* add fail cases to tests

* more cleanup

* add verifiably built program

* update program account state

* cleaned up serializing logic

* use full word capitalization

* rename old & new to dst & src

* swap src and dst in parameters

* add warnings and errors

* rename feature to programify

* test suite description clarity

* remove strings from datapoints

* spell out source and destination

* more verbose comments in account replace functions

* move lamport calculation

* swap lamport check for state check

* move replace functions to helper module

* make replace_account methods fallible

* refactor error handling

* add test for source program state

(cherry picked from commit 25460f76e7)

Co-authored-by: Joe C <jcaulfield135@gmail.com>
2023-10-05 18:28:30 +02:00
mergify[bot] 2bfe99c2b7
v1.17: initialize with new VoteState for tests (backport of #33518) (#33531)
initialize with new VoteState for tests (#33518)

(cherry picked from commit d4941cc420)

Co-authored-by: Ashwin Sekar <ashwin@solana.com>
2023-10-04 20:43:48 +00:00
mergify[bot] d75522d7bc
v1.17: Enable the banking trace by default (backport of #33497) (#33514)
Enable the banking trace by default (#33497)

(cherry picked from commit eb262aabe3)

Co-authored-by: Ryo Onodera <ryoqun@gmail.com>
2023-10-04 06:26:18 +00:00
mergify[bot] 184b17f859
v1.17: ci: remove stable-perf from PR and push CI (backport of #33479) (#33500)
ci: remove stable-perf from PR and push CI (#33479)

ci: move stable-perf to nightly pipeline
(cherry picked from commit b87c8d163d)

Co-authored-by: Yihau Chen <a122092487@gmail.com>
2023-10-04 05:24:36 +00:00
mergify[bot] b90f08f966
v1.17: Deprecate bz2/gzip/none/tar snapshot compression types (backport of #33484) (#33492)
Deprecate bz2/gzip/none/tar snapshot compression types (#33484)

These options are now disallowed on the command line for
solana-validator and solana-ledger-tool, which effectively means no more
snapshots will be created with this types in normal usecases. However,
support for reading the deprecated types is still in place.

(cherry picked from commit 73e9e6dd70)

Co-authored-by: steviez <steven@solana.com>
2023-10-03 15:18:42 -05:00
mergify[bot] f9c87c9d57
v1.17: Refactor - `LoadedPrograms` (backport of #33482) (#33491)
Refactor - `LoadedPrograms` (#33482)

* Adds type ProgramRuntimeEnvironment.

* Moves LoadedPrograms::remove_expired_entries() into LoadedPrograms::prune().

* Adds Stats::prunes_environment and renames Stats::prunes_orphan and Stats::prunes_expired.

* Adds LoadedPrograms::latest_root_epoch.

* Typo fix, authored-by: Dmitri Makarov <dmakarov@users.noreply.github.com>

(cherry picked from commit 8033be333e)

Co-authored-by: Alexander Meißner <AlexanderMeissner@gmx.net>
2023-10-03 21:01:06 +02:00
Will Hickey 3a49a00bd4
Update version to v1.17.1 (#33489) 2023-10-03 10:20:20 -05:00
Andrew Fitzgerald 660e41a8e1
Remove entry shuffling (#33378) 2023-10-02 09:03:12 -07:00
dependabot[bot] 3508b7d84e
build(deps): bump regex from 1.9.5 to 1.9.6 (#33481)
* build(deps): bump regex from 1.9.5 to 1.9.6

Bumps [regex](https://github.com/rust-lang/regex) from 1.9.5 to 1.9.6.
- [Release notes](https://github.com/rust-lang/regex/releases)
- [Changelog](https://github.com/rust-lang/regex/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/regex/compare/1.9.5...1.9.6)

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

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

* [auto-commit] Update all Cargo lock files

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dependabot-buildkite <dependabot-buildkite@noreply.solana.com>
2023-10-02 10:47:51 +00:00
ch9xy 9f6ef2fe62
Typo fix in instruction.rs (#33473)
Typo fix
2023-09-30 06:05:05 +00:00
HaoranYi bb19ebed49
Convert tuple into dedup result struct (#33450)
convert tupe into dedup result struct

Co-authored-by: HaoranYi <haoran.yi@solana.com>
2023-09-29 21:12:50 -05:00
Jon Cinque d5195921a9
transaction-status: Remove conversions between spl re-exports and local sdk (#33456)
* transaction-status: Remove `convert_pubkey`

Ran `git g -l convert_pubkey | xargs sed -i'' -re 's/convert_pubkey\(([^)]+)\)/\1/g'`

* Remove convert_compiled_instruction

Ran `git g -l convert_compiled_instruction | xargs sed -i'' -re 's/convert_compiled_instruction\(([^)]+)\)/\1/g'`

* Cleanup + clippy

* Remove instruction conversions in new extensions

* Run clippy --fix
2023-09-30 00:40:48 +02:00
steviez 4866789b67
Fix off-by-one bug in Blockstore::purge_exact() (#33463) 2023-09-30 00:14:40 +02:00
carllin ec2e1241a1
Cleanup select_vote_and_reset_forks() (#33421) 2023-09-29 15:11:25 -07:00
Yihau Chen bdc4cbba47
ci: fix Windows build (#33467)
ci: fix windows build
2023-09-30 01:46:54 +08:00
Jon Cinque de38b05ad1
spl: Bump token-2022 and friends (#33453)
* token: Update to 4.0.0

* token-2022: Bump and support new account and instruction types

* Update token-2022 in fetch_spl / program-test

* Fixup downstream uses

* Mint and destination were flipped in 0.9.0

* Don't use `convert_pubkey`

* Bump spl dependencies to versions which avoid recompilations
2023-09-29 19:12:06 +02:00
Brooks 0e9e91c65e
Drops the shrink_candidate_slots lock after done inserting (#33459) 2023-09-29 16:58:55 +00:00