Commit Graph

25059 Commits

Author SHA1 Message Date
Pankaj Garg 5cfb6e860d
SVM: Move sysvar_cache related functions and tests to SVM (#402) 2024-03-22 19:45:34 -07:00
Tyera 6e6acce798
Clarify TargetProgramBuiltin code docs (#403)
* Update comments

* Nitty variable name update
2024-03-22 23:44:38 +00:00
Lucas Steuernagel bcaf7a8f6c
Sysvar example (#399) 2024-03-22 20:26:46 -03:00
Yueh-Hsuan Chiang e9cc9f8379
[TieredStorage] Refactor file_size() code path (#400)
#### Problem
TieredStorage::file_size() essentially supports AccountsFile::len(),
but its API is inconsistent with AccountsFile's.

#### Summary of Changes
Refactor TieredStorage::file_size() to ::len() and share the same API
as AccountsFile's.

#### Test Plan
Build
Existing unit-tests.
2024-03-22 14:21:24 -07:00
Pankaj Garg 9a447ab6bd
SVM: bank to use program cache from transaction_processor (#397) 2024-03-22 14:05:20 -07:00
Yueh-Hsuan Chiang f1a82cb666
[TieredStorage] Use mmap.len() in TieredStorage::file_size() for HotStorage (#381)
#### Problem
The current implementation of TieredStorage::file_size() requires
a sys-call to provide the file size.

#### Summary of Changes
Add len() API to TieredStorageReader, and have HotStorageReader()
implement the API using Mmap::len().

#### Test Plan
Update existing unit-test to also verify HotStorageReader::len().
2024-03-22 11:56:30 -07:00
Lucas Steuernagel fe16e84806
Include simple transfer example in SVM (#388) 2024-03-22 15:45:59 -03:00
Yueh-Hsuan Chiang 977b1b836f
Rename AppendVecId to AccountsFileId (#383)
#### Problem
The current AppendVecId actually refers to an accounts file id.

#### Summary of Changes
Rename AppendVecId to AccountsFileId.

#### Test Plan
Build
2024-03-22 11:25:30 -07:00
Brooks 24fe473b46
clippy: Automated fixes for Rust 1.77.0 (#390) 2024-03-22 13:48:46 -04:00
Brooks 5cacca99b4
Fixes help text formatting (#385) 2024-03-22 12:56:54 -04:00
Justin Starry 2ee606da4f
Add `--with-compute-unit-price` to cli program deploy commands (#364)
* add set compute units arg for program deploy

* update master changes

* remove duplicates

* fixes and tests

* remove extra lines

* feedback

* Use simulation to determine compute units consumed

* feedback

---------

Co-authored-by: NagaprasadVr <nagaprasadvr246@gmail.com>
2024-03-22 16:48:52 +00:00
Joe C 62d49f123a
Runtime: Core BPF Migration: Struct for loading and checking builtin program accounts (#331)
* runtime: core_bpf_migration: add builtin config

* runtime: core_bpf_migration: add builtin config tests

* some renaming feedback
2024-03-22 11:25:10 -05:00
Joe C f799c9ff67
Runtime: Expose builtin program IDs to crate (#318)
* runtime: bank: rename `builtin_programs` to `builtin_program_ids`

* runtime: snapshot minimizer: use builtin IDs from bank
2024-03-22 11:24:49 -05:00
Andrew Fitzgerald 84639441c0
Support --block-production-method in banking-bench (#269) 2024-03-22 09:12:21 -07:00
Pankaj Garg 91b1ee3df6
Fix: deploy program on last slot of epoch during environment change (#101)
* Fix: deploy program on last slot of epoch during environment change

* solana-runtime: deploy at last epoch slot test

* disable deployment of sol_alloc_free

* Move tx-batch-constructor to its own function

* use new_from_cache

---------

Co-authored-by: Alessandro Decina <alessandro.d@gmail.com>
2024-03-22 07:43:28 -07:00
Jon C 36c66f5111
client: Timeout resends during `send_and_confirm_in_parallel` (#358)
* client: Timeout resends during `send_and_confirm_in_parallel`

* Clarify constant
2024-03-22 12:10:00 +01:00
Alexander Meißner 8f830c418c
Rekey - alt_bn128 and poseidon_syscall (#319)
Adds simplify_alt_bn128_syscall_error_codes.
2024-03-22 07:58:47 +01:00
blake 0906b8996c
Health check slot distance (#335)
Changed validator health check slot distance to 128 to be consistent
2024-03-22 00:11:36 -05:00
Brooks cbd0369da1
Uses AppendVecId in AccountsFIle::file_name() (#372) 2024-03-21 21:27:03 -04:00
samkim-crypto c7cdf238f0
[clap-v3-utils] Remove deprecated functions (#313)
* add `deprecated` feature to produce warnings on use of deprecated functions

* replace `multiple_occurrences` with arg actions

* replace `possible_values` with `PossibleValueParser`

* deprecated `value_of` and `values_of`

* deprecate `unix_timestamp_from_rfc3339_datetime`

* deprecate `cluster_type_of`

* deprecate `commitment_of`

* deprecate `keypair_of`, `keypairs_of`, `pubkey_of`, and `pubkeys_of` functions

* replace deprecated functions from `try_keypair_of`, `try_keypairs_of`, `try_pubkey_of`, and `try_pubkeys_of`

* deprecate `pubkeys_sigs_of`

* allow deprecated on tests

* remove `deprecation` feature from clap-v3-utils

* re-export `pubkeys_sigs_of`

* add helper `extract_keypair` to dedupe `try_keypair_of` and `try_keypairs_of`

* remove unwraps and expects

* bump deprecation version
2024-03-22 07:52:42 +09:00
carllin e963f87da9
Evict oldest vote on vote refresh after restart (#327) 2024-03-21 17:54:17 -04:00
Andrew Fitzgerald 5f1693224e
Discard packets statically known to fail (#370)
* Discard packets statically known to fail

* add test
2024-03-21 20:47:16 +00:00
Brooks 8b66a670b7
Removes AccountsFile::is_recyclable() (#359) 2024-03-21 15:09:26 -04:00
Lucas Steuernagel 4d838d5af9
Add `hello-solana` example source files to SVM folder (#361) 2024-03-21 15:12:32 -03:00
Tyera dff99d0740
Cli stake-split: adjust transfer amount if recipient has lamports (#266)
* Remove incorrect check

* Move to closure

* Use match statement instead

* Adjust rent_exempt_reserve by existing balance

* Only transfer lamports if rent_exempt_reserve needs are greater than 0

* Rename variable for clarity

* Add minimum-delegation check

* Bump test split amount to meet arbitrary mock minimum-delegation amount
2024-03-21 11:03:55 -06:00
Greg Cusack 792d7454d9
switch to `solana-tpu-client` from `solana_client::tpu_client` for `bench-tps`, `dos/`, `LocalCluster`, `gossip/` (#310)
* switch over to solana-tpu-client for bench-tps, dos, gossip, local-cluster

* put TpuClientWrapper back in solana_client
2024-03-21 09:25:54 -07:00
Jon C b2f4fb306e
client: Start resending sooner during `send_and_confirm_transactions_in_parallel` (#348)
client: Confirm sooner during send_and_confirm_in_parallel
2024-03-21 14:35:09 +01:00
Tao Zhu 1e08e90498
Add functions to collect executed transactions fee in details; (#178)
* Add functions to collect executed transactions fee in details;

* remove unnecessary derive attributes

* change function name from add to accumulate; remove collector_fee_details from PartialEq

* add AbiExample

* add test

* share function to withdraw errored transaction

* more tests
2024-03-21 04:33:35 +00:00
Alessandro Decina 981881544c
runtime: do fewer syscalls in remap_append_vec_file (#336)
* runtime: do fewer syscalls in remap_append_vec_file

Use renameat2(src, dest, NOREPLACE) as an atomic version of if
statx(dest).is_err() { rename(src, dest) }.

We have high inode contention during storage rebuild and this saves 1
fs syscall for each appendvec.

* Address review feedback
2024-03-21 14:28:23 +11:00
Wen 11aa06d24f
wen-restart: Find heaviest fork (#183)
* Pass the final result of LastVotedForkSlots aggregation to next
stage and find the heaviest fork we will Gossip to others.

* Change comments.

* Small fixes to address PR comments.

* Move correctness proof to SIMD.

* Fix a broken merge.

* Use blockstore to check parent slot of any block in FindHeaviestFork

* Change error message.

* Add special message when first slot in the list doesn't link to root.
2024-03-20 19:38:46 -07:00
Joe C f194f70e68
Runtime: Refactor builtins module (#304)
* runtime: builtins: move to new bank submodule

* runtime: builtins: change `feature_id` to `enable_feature_id`

* runtime: builtins: add stateless builtins
2024-03-20 20:46:38 -05:00
Dmitri Makarov 54575feb42
SVM: add a missing doc comment (#347) 2024-03-20 20:03:20 -04:00
Alessandro Decina ade90354a1
runtime: use str::split instead of regex to parse appendvec filenames (#323) 2024-03-21 09:14:16 +11:00
steviez 4a67cd495b
Allow configuration of replay thread pools from CLI (#236)
Bubble up the constants to the CLI that control the sizes of the
following two thread pools:
- The thread pool used to replay multiple forks in parallel
- The thread pool used to execute transactions in parallel
2024-03-20 15:07:04 -05:00
Dmitri Makarov 09ae5872b3
Rename LoadedPrograms to ProgramCache for readability (#339) 2024-03-20 15:26:45 -04:00
Yueh-Hsuan Chiang 3038d47f1c
[TieredStorage] Store account address range (#172)
#### Problem
The TieredStorageFooter has the min_account_address and
max_account_address fields to describe the account address
range in its file.  But the current implementation hasn't updated
the fields yet.

#### Summary of Changes
This PR enables the TieredStorage to persist address range
information into its footer via min_account_address and
max_account_address.

#### Test Plan
Updated tiered-storage test to verify persisted account address range.
2024-03-20 12:17:12 -07:00
Yueh-Hsuan Chiang 0e932c7308
[TieredStorage] Refactor TieredStorage::new_readonly() code path (#195)
#### Problem
The TieredStorage::new_readonly() function currently has the following
problems:

* It opens the file without checking the magic number before checking and loading the footer.
* It opens the file twice: first to load the footer, then open again by the reader.

#### Summary of Changes
This PR refactors TieredStorage::new_readonly() so that it first performs all
checks inside the constructor of TieredReadableFile.  The TieredReadableFile
instance is then passed to the proper reader (currently HotStorageReader)
when all checks are passed.

#### Test Plan
* Added a new test to check MagicNumberMismatch.
* Existing tiered-storage tests
2024-03-20 10:39:25 -07:00
Trent Nelson f41fb84e15
rpc-sts: add config options for stake-weighted qos (#197)
* rpc-sts: plumb options for swqos config

* rpc-sts: send to specific tpu peers when configured
2024-03-20 11:13:50 -06:00
HaoranYi 0f8f8cd970
Revert deprecate executable feature (#309)
* revert deprecate executable feature

* add native loader account transfer test

---------

Co-authored-by: HaoranYi <haoran.yi@solana.com>
2024-03-20 10:54:15 -05:00
Pankaj Garg aba8ce5f3e
Move code to check_program_modification_slot out of SVM (#329)
* Move code to check_program_modification_slot out of SVM

* add documentation for the public function
2024-03-20 05:39:07 -07:00
Jon C 261b3e9ee7
CI: Add windows clippy job and fix clippy errors (#330)
* CI: Run clippy on windows

* Update cargo-clippy-before-script.sh for Windows

* Pacify clippy
2024-03-20 13:21:00 +01:00
Tao Zhu 184ba6cb84
qos service should also accumulate executed but errored units (#328)
qos service should also accumulated executed but errored units
2024-03-20 00:44:34 +00:00
Alessandro Decina 8df80d9c12
accounts-db: unpack_archive: unpack accounts straight into their final destination (#289)
* accounts-db: unpack_archive: avoid extra iteration on each path

We used to do a iterator.clone().any(...) followed by
iterator.collect(). Merge the two and avoid an extra iteration and
re-parsing of the path.

* accounts-db: unpack_archive: unpack accounts straight into their final destination

We used to unpack accounts into account_path/accounts/<account> then
rename to account_path/<account>. We now unpack them into their final
destination directly and avoid the rename syscall.
2024-03-20 09:39:33 +11:00
Ashwin Sekar 228413ca8a
vote: reuse ff to gate tvc constant update from 8 -> 16 (#322) 2024-03-19 22:26:13 +00:00
Dmitri Makarov f1d56e95f5
SVM: minor refactoring to improve code readability (#317) 2024-03-19 15:32:07 -04:00
Lucas Steuernagel e8526f60aa
SVM integration test (#307) 2024-03-19 13:44:34 -03:00
Jon C d4bcdf856e
install: Fix check for windows build (#295) 2024-03-19 14:20:27 +08:00
Brennan 67c3bff092
fix polarity for concurrent replay (#297)
* fix polarity for concurrent replay
2024-03-18 19:37:32 -07:00
Greg Cusack ed573ff60c
add in method for building a `TpuClient` for `LocalCluster` tests (#258)
* add in method for building a TpuClient for LocalCluster tests

* add cluster trait. leave dependency on solana_client::tpu_client
2024-03-18 17:58:11 -07:00
Justin Starry 2c12500513
cli: skip no-op program buffer writes (#277)
cli: skip no-op program deploy write txs
2024-03-19 07:28:53 +08:00