Commit Graph

25172 Commits

Author SHA1 Message Date
Jeff Washington (jwash) 620f5658da
introduce scan_pubkeys for clean storage iteration (#507)
* introduce pubkey_iter for clean storage iteration

* rename scan_pubkeys

* pr feedback

* pr feedback
2024-04-01 12:07:41 -05:00
steviez 79e316eb56
Reduce the default number of IP echo server threads (#354)
The IP echo server currently spins up a worker thread for every thread
on the machine. Observing some data for nodes,
- MNB validators and RPC nodes look to get several hundred of these
  requests per day
- MNB entrypoint nodes look to get 2-3 requests per second on average

In both instances, the current threadpool is severely overprovisioned
which is a waste of resources. This PR plumnbs a flag to control the
number of worker threads for this pool as well as setting a default of
two threads for this server. Two threads allow for one thread to always
listen on the TCP port while the other thread processes requests
2024-04-01 10:24:59 -05:00
Andrew Fitzgerald 92c9b45479
Scheduler: Use single hashmap for read and write locks (#458) 2024-04-01 10:18:59 -05:00
Andrew Fitzgerald 2d82a947e3
Scheduler: Add leader bank detection metrics (#405) 2024-04-01 10:18:46 -05:00
Brooks 288d5ba121
Moves where modules are included in accounts_db.rs (#515) 2024-04-01 09:51:59 -04:00
dependabot[bot] 92b09e6791
build(deps): bump anyhow from 1.0.80 to 1.0.81 (#516)
* build(deps): bump anyhow from 1.0.80 to 1.0.81

Bumps [anyhow](https://github.com/dtolnay/anyhow) from 1.0.80 to 1.0.81.
- [Release notes](https://github.com/dtolnay/anyhow/releases)
- [Commits](https://github.com/dtolnay/anyhow/compare/1.0.80...1.0.81)

---
updated-dependencies:
- dependency-name: anyhow
  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>
2024-04-01 21:03:07 +08:00
sakridge e0e659680a
Remove duplicated token ids and use a shared inline-spl crate (#456) 2024-04-01 14:31:04 +02:00
dependabot[bot] 3c8da0dbea
build(deps): bump serde_json from 1.0.114 to 1.0.115 (#517)
* build(deps): bump serde_json from 1.0.114 to 1.0.115

Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.114 to 1.0.115.
- [Release notes](https://github.com/serde-rs/json/releases)
- [Commits](https://github.com/serde-rs/json/compare/v1.0.114...v1.0.115)

---
updated-dependencies:
- dependency-name: serde_json
  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>
2024-04-01 18:53:10 +08:00
Yihau Chen 1cee392637
ci: remove increment-cargo-version-on-release.yml (#494) 2024-04-01 10:41:21 +08:00
Yihau Chen bfd69b069f
chore: bump to actions/checkout@v4 (#495) 2024-04-01 10:41:00 +08:00
dependabot[bot] 43e70dbe79
build(deps): bump js-sys from 0.3.68 to 0.3.69 (#263)
* build(deps): bump js-sys from 0.3.68 to 0.3.69

Bumps [js-sys](https://github.com/rustwasm/wasm-bindgen) from 0.3.68 to 0.3.69.
- [Release notes](https://github.com/rustwasm/wasm-bindgen/releases)
- [Changelog](https://github.com/rustwasm/wasm-bindgen/blob/main/CHANGELOG.md)
- [Commits](https://github.com/rustwasm/wasm-bindgen/commits)

---
updated-dependencies:
- dependency-name: js-sys
  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>
2024-04-01 01:54:49 +08:00
dependabot[bot] 725518ebad
build(deps): bump strum from 0.24.0 to 0.24.1 (#38)
* build(deps): bump strum from 0.24.0 to 0.24.1

Bumps [strum](https://github.com/Peternator7/strum) from 0.24.0 to 0.24.1.
- [Release notes](https://github.com/Peternator7/strum/releases)
- [Changelog](https://github.com/Peternator7/strum/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Peternator7/strum/commits)

---
updated-dependencies:
- dependency-name: strum
  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>
2024-04-01 01:49:40 +08:00
Jeff Washington (jwash) e56d314df5
determine if account is in write cache earlier (#504) 2024-03-29 17:10:02 -05:00
Joe C 4b0e7d6ba3
Test Validator: Set deployment slot to `0` for cloned upgradeable programs (#501)
test-validator: clone upgradeable programs with slot 0
2024-03-29 17:05:53 -05:00
samkim-crypto fb1ee7842f
[zk-token-sdk] Allow discrete log to be executed in the current thread (#443) 2024-03-30 06:37:43 +09:00
samkim-crypto c5b9196df7
[clap-v3-utils] Use `Arg::new` in place of `Arg::with_name` (#491) 2024-03-30 06:37:19 +09:00
Jeff Washington (jwash) 18c32aba35
disable read cache while populating stakes cache on load (#482)
* dsiable read cache while populating stakes cache on load

* use struct with drop as api

* use LoadHint

* remove disable_read_cache_updates_count

* add comment

* fmt
2024-03-29 15:20:38 -05:00
Greg Cusack 04feed2cf5
add metric for duplicate push messages (#321)
* add metric for duplicate push messages

* add in num_total_push

* address comments. don't lock stats each time

* address comments. remove num_total_push

* change dup push message name in code to reflect metric name
2024-03-29 12:12:12 -07:00
Andrew Fitzgerald a41210f898
Scheduler: remove allow(dead_code) markers (#481)
remove allow(dead_code) markers
2024-03-29 10:27:41 -07:00
Yihau Chen b1e17998b6
ci: fix some issues for the release pipeline (#493)
* add TRIGGERED_BUILDKITE_TAG to the pipeline

* publish a pre-release for the release id
2024-03-29 20:56:54 +08:00
steviez 9076348ef4
Make CostTracker aware of inflight transactions (#437)
When a leader is packing a Bank, transactions costs are added to the
CostTracker and then later updated or removed, depending on if the
tx is committed. However, it is possible for a Bank to be frozen while
there are several tx's in flight.

CostUpdateService submits a metric with cost information almost
immediately after a Bank has been frozen. The result is that we have
observed cost details being submitted before some cost removals take
place, which causes a massive over-reporting of the block cost
compared to actual.

This PR adds a field to track the number of transactions that are
inflight, and adds a simple mechanism to try to allow that value to
settle to zero before submitting the datapoint. The number of inflight
tx's is submitted with the datapoint, so even if the value does not
settle to zero, we can still detect this case and know the metric is
tainted.

Co-authored-by: Andrew Fitzgerald <apfitzge@gmail.com>
2024-03-29 07:34:12 -05:00
Tyera d140cdbeab
Update crate check to new crates.io error string (#484) 2024-03-29 00:42:09 -06:00
Ryo Onodera ae327c0156
Bump blake3 from v1.5.0 to v1.5.1 (#488) 2024-03-29 15:30:42 +09:00
Yihau Chen 212cbdbc4e
ci: add release pipeline (#466) 2024-03-29 11:41:53 +08:00
Jeff Washington (jwash) e261e2704a
store only removes from read cache if slot is possibly present (#452)
* store only removes from read cache if slot is possibly present

* remove_assume_not_present
2024-03-28 17:00:48 -05:00
Brooks d5c0c0b1c2
Removes support for loading snapshots with > 1 append vec per slot (#474) 2024-03-28 16:32:17 -04:00
Alessandro Decina f36a45a971
ledger-tool: name rayon threads (#464)
ledger-tool: name and shame rayon threads
2024-03-29 06:13:01 +11:00
Brooks 8822aaa67e
Do not purge all bank snapshots after fastboot (#345) 2024-03-28 15:10:50 -04:00
Joe C b9a998a69b
config: deprecate date instructions (#465) 2024-03-28 13:41:09 -05:00
Will Hickey 1ded5a875a
Update RELEASE.md to reflect current release process (#444)
* Update RELEASE.md to reflect current release process

* Changed a few Solana -> agave
2024-03-28 13:13:27 -05:00
Brooks 182d27f718
Checks if bank snapshot is loadable before fastbooting (#343) 2024-03-28 11:14:23 -04:00
samkim-crypto b1919bd9e4
[keygen] Remove deprecated functions from `keygen` cli (minus `grind` command) (#438) 2024-03-28 13:31:43 +09:00
Tyera ecb4f62887
Simd 118: extend EpochRewards sysvar (#428)
* Update EpochRewards sysvar

* Update Clone trait

* Update doctests

* Update bank to new sysvar fields

* Update runtime tests

* Update syscall test

* Update tests

* Clean up doctest EpochRewards construction
2024-03-27 19:24:06 -06:00
Jon C 8246590f47
clap-utils: Add more compute unit helpers (#440)
* clap-utils: Refactor compute_unit_price into compute_budget

* clap-utils: Validate compute unit price as a u64

* clap-utils: Add compute unit limit arg

* clap-v3-utils: Add compute unit price and limit helpers

* Add deprecation on `pub use` even though it isn't triggered
2024-03-28 01:58:20 +01:00
steviez 10d06773cd
Share the threadpool for tx execution and entry verifification (#216)
Previously, entry verification had a dedicated threadpool used to verify
PoH hashes as well as some basic transaction verification via
Bank::verify_transaction(). It should also be noted that the entry
verification code provides logic to offload to a GPU if one is present.

Regardless of whether a GPU is present or not, some of the verification
must be done on a CPU. Moreso, the CPU verification of entries and
transaction execution are serial operations; entry verification finishes
first before moving onto transaction execution.

So, tx execution and entry verification are not competing for CPU cycles
at the same time and can use the same pool.

One exception to the above statement is that if someone is using the
feature to replay forks in parallel, then hypothetically, different
forks may end up competing for the same resources at the same time.
However, that is already true given that we had pools that were shared
between replay of multiple forks. So, this change doesn't really change
much for that case, but will reduce overhead in the single fork case
which is the vast majority of the time.
2024-03-27 16:33:21 -05:00
Lucas Steuernagel e70ff38f35
Use loader v3 instead of v2 in the SVM (#454) 2024-03-27 15:47:34 -03:00
Kirill Fomichev ba9c25c41e
prioritization fee cache: remove lru crate (#30) 2024-03-27 11:09:17 -06:00
Ashwin Sekar cfd5b71b28
shred: expose chained merkle root (#435)
* shred: expose chained merkle root

* pr feedback: macro, pub(super), _=> none
2024-03-27 10:06:43 -07:00
Lucas Steuernagel 02918a5af1
Update sysvar API in SVM integration test (#451) 2024-03-27 13:49:43 -03:00
Yueh-Hsuan Chiang 4b9e1e0ab3
[TieredStorage] Exclude NotFound in reporting storage leakage on drop() (#446)
#### Problem
TieredStorage::drop() currently panic when it fails to delete the
underlying file to raise awareness of possible storage resource
leakage, including io::ErrorKind::NotFound.  But sometimes the
TieredStorage (or AccountsFile in general) instance is created
then dropped without any file being created.  This causes some
false-alarms including unit-tests.

#### Summary of Changes
This PR excludes NotFound in reporting storage leakage on
TieredStorage::drop().
2024-03-27 09:43:38 -07:00
Lucas Steuernagel 9cd90751f0
Add `SanitizedTransaction` builder to SVM (#442)
Add SanitizedTransaction builder
2024-03-27 10:00:04 -03:00
Kirill Fomichev 80d3200f4a
prioritization fee cache: remove not required locks (#272)
* prioritization fee cache: remove not required locks

* update HashMap to BTreeMap

* fix clippy

* add type alias

* apply name change

* check that cache is empty

* remove sleep

* remove outdated commented tests

* fmt

* extra warn
2024-03-26 17:19:26 -06:00
Andrew Fitzgerald 7c8a287ff2
Bugfix: Report scheduler slot timing metrics under correct name (#376) 2024-03-26 13:52:45 -07:00
Brooks 21fbde741a
Uses Into<PathBuf> for path in AccountsFile::new_from_file() (#434) 2024-03-26 16:19:06 -04:00
Kevin Heavey 24c55f39ee
Replace Vec::new() with Vec::with_capacity(2) (#413) 2024-03-26 17:08:56 -03:00
Brooks 21b6821885
Uses Into<PathBuf> for path in AppendVec::new() (#433) 2024-03-26 14:44:17 -04:00
samkim-crypto 01314a4fc3
[clap-v3-utils] Add `try_get_language` and deprecate `acquire_language` (#430) 2024-03-27 02:51:54 +09:00
Tyera bcf3d809c9
Simd 118: rekey partitioned epoch rewards feature (#427)
Rekey partitioned epoch rewards feature
2024-03-26 10:13:25 -06:00
Brooks b2b159ad92
Adds bench for writing accounts to append vecs and hot storage (#421) 2024-03-26 10:44:23 -04:00
Brooks 8e37ad7665
Removes unused dependencies from accounts-db crate (#416) 2024-03-26 09:30:06 -04:00