Compare commits

..

11 Commits

Author SHA1 Message Date
Michael Vines
a93915f1bd Wait for one slot to be produced 2020-05-26 15:06:34 -07:00
Michael Vines
ee05266a09 Adjust v1.0 CRDS version to be compatible with v1.1 2020-05-26 15:06:34 -07:00
mergify[bot]
8cde8a54ac LedgerCleanupService no longer causes an OOM and actually purges (bp #10199) (#10220)
* LedgerCleanupService no longer causes an OOM and actually purges (#10199)

* cleanup_ledger() now services new_root_receiver while purging
* purge_slots() now fully deletes before compacting
* Add ledger pruning grafana graph

(cherry picked from commit 156387aba4)

* fixup

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-05-25 00:00:59 -07:00
mergify[bot]
65b5bddf4e v1.0: Test ledger-tool commands in run-sanity.sh (bp #10211) (#10213)
automerge
2020-05-24 09:00:21 -07:00
sakridge
88199e77ab Enable disk metrics (#10009) 2020-05-22 22:55:39 -07:00
Michael Vines
b2b10f4989 Update another non-circulating account 2020-05-22 15:10:56 -07:00
mergify[bot]
41d3fbcb60 Add another non-circulating account (#10186) (#10189)
automerge

(cherry picked from commit e2b5cd6d47)

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-05-22 14:35:36 -07:00
Tyera Eulberg
33322d9501 Add circ/non-circ filter to getLargestAccounts (#10188) 2020-05-22 15:14:18 -06:00
mergify[bot]
ee1f218e76 Fixup deserialize_bs58_transaction, and make a few error types more targeted (#10171) (#10176)
automerge

(cherry picked from commit 12a3b1ba6a)

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
2020-05-21 17:50:54 -07:00
mergify[bot]
b3b32befd7 REST API now returns supply in SOL rather than lamports (#10170) (#10173)
automerge

(cherry picked from commit 18be7a7966)

Co-authored-by: Michael Vines <mvines@gmail.com>
2020-05-21 16:53:58 -07:00
Michael Vines
95675f8f42 Bump version to 1.0.24 2020-05-21 13:29:16 -07:00
96 changed files with 766 additions and 770 deletions

122
Cargo.lock generated
View File

@@ -299,7 +299,7 @@ dependencies = [
[[package]] [[package]]
name = "btc_spv_bin" name = "btc_spv_bin"
version = "1.0.23" version = "1.0.24"
dependencies = [ dependencies = [
"clap", "clap",
"hex 0.3.2", "hex 0.3.2",
@@ -3265,7 +3265,7 @@ dependencies = [
[[package]] [[package]]
name = "solana-archiver" name = "solana-archiver"
version = "1.0.23" version = "1.0.24"
dependencies = [ dependencies = [
"clap", "clap",
"console 0.9.2", "console 0.9.2",
@@ -3280,7 +3280,7 @@ dependencies = [
[[package]] [[package]]
name = "solana-archiver-lib" name = "solana-archiver-lib"
version = "1.0.23" version = "1.0.24"
dependencies = [ dependencies = [
"bincode", "bincode",
"crossbeam-channel", "crossbeam-channel",
@@ -3309,7 +3309,7 @@ dependencies = [
[[package]] [[package]]
name = "solana-archiver-utils" name = "solana-archiver-utils"
version = "1.0.23" version = "1.0.24"
dependencies = [ dependencies = [
"hex 0.4.1", "hex 0.4.1",
"log 0.4.8", "log 0.4.8",
@@ -3324,7 +3324,7 @@ dependencies = [
[[package]] [[package]]
name = "solana-banking-bench" name = "solana-banking-bench"
version = "1.0.23" version = "1.0.24"
dependencies = [ dependencies = [
"crossbeam-channel", "crossbeam-channel",
"log 0.4.8", "log 0.4.8",
@@ -3340,7 +3340,7 @@ dependencies = [
[[package]] [[package]]
name = "solana-bench-exchange" name = "solana-bench-exchange"
version = "1.0.23" version = "1.0.24"
dependencies = [ dependencies = [
"clap", "clap",
"itertools 0.8.2", "itertools 0.8.2",
@@ -3367,7 +3367,7 @@ dependencies = [
[[package]] [[package]]
name = "solana-bench-streamer" name = "solana-bench-streamer"
version = "1.0.23" version = "1.0.24"
dependencies = [ dependencies = [
"clap", "clap",
"solana-clap-utils", "solana-clap-utils",
@@ -3378,7 +3378,7 @@ dependencies = [
[[package]] [[package]]
name = "solana-bench-tps" name = "solana-bench-tps"
version = "1.0.23" version = "1.0.24"
dependencies = [ dependencies = [
"bincode", "bincode",
"clap", "clap",
@@ -3404,7 +3404,7 @@ dependencies = [
[[package]] [[package]]
name = "solana-bpf-loader-program" name = "solana-bpf-loader-program"
version = "1.0.23" version = "1.0.24"
dependencies = [ dependencies = [
"bincode", "bincode",
"byteorder", "byteorder",
@@ -3420,7 +3420,7 @@ dependencies = [
[[package]] [[package]]
name = "solana-btc-spv-program" name = "solana-btc-spv-program"
version = "1.0.23" version = "1.0.24"
dependencies = [ dependencies = [
"bincode", "bincode",
"hex 0.3.2", "hex 0.3.2",
@@ -3434,7 +3434,7 @@ dependencies = [
[[package]] [[package]]
name = "solana-budget-program" name = "solana-budget-program"
version = "1.0.23" version = "1.0.24"
dependencies = [ dependencies = [
"bincode", "bincode",
"chrono", "chrono",
@@ -3450,7 +3450,7 @@ dependencies = [
[[package]] [[package]]
name = "solana-chacha" name = "solana-chacha"
version = "1.0.23" version = "1.0.24"
dependencies = [ dependencies = [
"hex-literal", "hex-literal",
"log 0.4.8", "log 0.4.8",
@@ -3465,7 +3465,7 @@ dependencies = [
[[package]] [[package]]
name = "solana-chacha-cuda" name = "solana-chacha-cuda"
version = "1.0.23" version = "1.0.24"
dependencies = [ dependencies = [
"hex-literal", "hex-literal",
"log 0.4.8", "log 0.4.8",
@@ -3479,14 +3479,14 @@ dependencies = [
[[package]] [[package]]
name = "solana-chacha-sys" name = "solana-chacha-sys"
version = "1.0.23" version = "1.0.24"
dependencies = [ dependencies = [
"cc", "cc",
] ]
[[package]] [[package]]
name = "solana-clap-utils" name = "solana-clap-utils"
version = "1.0.23" version = "1.0.24"
dependencies = [ dependencies = [
"chrono", "chrono",
"clap", "clap",
@@ -3500,7 +3500,7 @@ dependencies = [
[[package]] [[package]]
name = "solana-cli" name = "solana-cli"
version = "1.0.23" version = "1.0.24"
dependencies = [ dependencies = [
"bincode", "bincode",
"bs58", "bs58",
@@ -3544,7 +3544,7 @@ dependencies = [
[[package]] [[package]]
name = "solana-cli-config" name = "solana-cli-config"
version = "1.0.23" version = "1.0.24"
dependencies = [ dependencies = [
"dirs", "dirs",
"lazy_static", "lazy_static",
@@ -3556,7 +3556,7 @@ dependencies = [
[[package]] [[package]]
name = "solana-client" name = "solana-client"
version = "1.0.23" version = "1.0.24"
dependencies = [ dependencies = [
"assert_matches", "assert_matches",
"bincode", "bincode",
@@ -3582,7 +3582,7 @@ dependencies = [
[[package]] [[package]]
name = "solana-config-program" name = "solana-config-program"
version = "1.0.23" version = "1.0.24"
dependencies = [ dependencies = [
"bincode", "bincode",
"chrono", "chrono",
@@ -3595,7 +3595,7 @@ dependencies = [
[[package]] [[package]]
name = "solana-core" name = "solana-core"
version = "1.0.23" version = "1.0.24"
dependencies = [ dependencies = [
"bincode", "bincode",
"bs58", "bs58",
@@ -3665,7 +3665,7 @@ dependencies = [
[[package]] [[package]]
name = "solana-crate-features" name = "solana-crate-features"
version = "1.0.23" version = "1.0.24"
dependencies = [ dependencies = [
"backtrace", "backtrace",
"bytes 0.4.12", "bytes 0.4.12",
@@ -3688,7 +3688,7 @@ dependencies = [
[[package]] [[package]]
name = "solana-exchange-program" name = "solana-exchange-program"
version = "1.0.23" version = "1.0.24"
dependencies = [ dependencies = [
"bincode", "bincode",
"log 0.4.8", "log 0.4.8",
@@ -3705,7 +3705,7 @@ dependencies = [
[[package]] [[package]]
name = "solana-failure-program" name = "solana-failure-program"
version = "1.0.23" version = "1.0.24"
dependencies = [ dependencies = [
"solana-runtime", "solana-runtime",
"solana-sdk", "solana-sdk",
@@ -3713,7 +3713,7 @@ dependencies = [
[[package]] [[package]]
name = "solana-faucet" name = "solana-faucet"
version = "1.0.23" version = "1.0.24"
dependencies = [ dependencies = [
"bincode", "bincode",
"byteorder", "byteorder",
@@ -3732,7 +3732,7 @@ dependencies = [
[[package]] [[package]]
name = "solana-genesis" name = "solana-genesis"
version = "1.0.23" version = "1.0.24"
dependencies = [ dependencies = [
"base64 0.11.0", "base64 0.11.0",
"chrono", "chrono",
@@ -3752,7 +3752,7 @@ dependencies = [
[[package]] [[package]]
name = "solana-genesis-programs" name = "solana-genesis-programs"
version = "1.0.23" version = "1.0.24"
dependencies = [ dependencies = [
"log 0.4.8", "log 0.4.8",
"solana-bpf-loader-program", "solana-bpf-loader-program",
@@ -3769,7 +3769,7 @@ dependencies = [
[[package]] [[package]]
name = "solana-gossip" name = "solana-gossip"
version = "1.0.23" version = "1.0.24"
dependencies = [ dependencies = [
"clap", "clap",
"solana-clap-utils", "solana-clap-utils",
@@ -3782,7 +3782,7 @@ dependencies = [
[[package]] [[package]]
name = "solana-install" name = "solana-install"
version = "1.0.23" version = "1.0.24"
dependencies = [ dependencies = [
"atty", "atty",
"bincode", "bincode",
@@ -3814,7 +3814,7 @@ dependencies = [
[[package]] [[package]]
name = "solana-keygen" name = "solana-keygen"
version = "1.0.23" version = "1.0.24"
dependencies = [ dependencies = [
"bs58", "bs58",
"clap", "clap",
@@ -3829,7 +3829,7 @@ dependencies = [
[[package]] [[package]]
name = "solana-ledger" name = "solana-ledger"
version = "1.0.23" version = "1.0.24"
dependencies = [ dependencies = [
"assert_matches", "assert_matches",
"bincode", "bincode",
@@ -3876,7 +3876,7 @@ dependencies = [
[[package]] [[package]]
name = "solana-ledger-tool" name = "solana-ledger-tool"
version = "1.0.23" version = "1.0.24"
dependencies = [ dependencies = [
"assert_cmd", "assert_cmd",
"bs58", "bs58",
@@ -3898,7 +3898,7 @@ dependencies = [
[[package]] [[package]]
name = "solana-local-cluster" name = "solana-local-cluster"
version = "1.0.23" version = "1.0.24"
dependencies = [ dependencies = [
"assert_matches", "assert_matches",
"itertools 0.8.2", "itertools 0.8.2",
@@ -3927,7 +3927,7 @@ dependencies = [
[[package]] [[package]]
name = "solana-log-analyzer" name = "solana-log-analyzer"
version = "1.0.23" version = "1.0.24"
dependencies = [ dependencies = [
"byte-unit", "byte-unit",
"clap", "clap",
@@ -3939,7 +3939,7 @@ dependencies = [
[[package]] [[package]]
name = "solana-logger" name = "solana-logger"
version = "1.0.23" version = "1.0.24"
dependencies = [ dependencies = [
"env_logger 0.7.1", "env_logger 0.7.1",
"lazy_static", "lazy_static",
@@ -3948,7 +3948,7 @@ dependencies = [
[[package]] [[package]]
name = "solana-measure" name = "solana-measure"
version = "1.0.23" version = "1.0.24"
dependencies = [ dependencies = [
"jemalloc-ctl", "jemalloc-ctl",
"jemallocator", "jemallocator",
@@ -3959,7 +3959,7 @@ dependencies = [
[[package]] [[package]]
name = "solana-merkle-tree" name = "solana-merkle-tree"
version = "1.0.23" version = "1.0.24"
dependencies = [ dependencies = [
"hex 0.4.1", "hex 0.4.1",
"solana-sdk", "solana-sdk",
@@ -3967,7 +3967,7 @@ dependencies = [
[[package]] [[package]]
name = "solana-metrics" name = "solana-metrics"
version = "1.0.23" version = "1.0.24"
dependencies = [ dependencies = [
"env_logger 0.7.1", "env_logger 0.7.1",
"gethostname", "gethostname",
@@ -3982,7 +3982,7 @@ dependencies = [
[[package]] [[package]]
name = "solana-net-shaper" name = "solana-net-shaper"
version = "1.0.23" version = "1.0.24"
dependencies = [ dependencies = [
"clap", "clap",
"rand 0.7.2", "rand 0.7.2",
@@ -3994,7 +3994,7 @@ dependencies = [
[[package]] [[package]]
name = "solana-net-utils" name = "solana-net-utils"
version = "1.0.23" version = "1.0.24"
dependencies = [ dependencies = [
"bincode", "bincode",
"bytes 0.4.12", "bytes 0.4.12",
@@ -4013,7 +4013,7 @@ dependencies = [
[[package]] [[package]]
name = "solana-noop-program" name = "solana-noop-program"
version = "1.0.23" version = "1.0.24"
dependencies = [ dependencies = [
"log 0.4.8", "log 0.4.8",
"solana-logger", "solana-logger",
@@ -4022,7 +4022,7 @@ dependencies = [
[[package]] [[package]]
name = "solana-ownable" name = "solana-ownable"
version = "1.0.23" version = "1.0.24"
dependencies = [ dependencies = [
"bincode", "bincode",
"num-derive 0.3.0", "num-derive 0.3.0",
@@ -4034,7 +4034,7 @@ dependencies = [
[[package]] [[package]]
name = "solana-perf" name = "solana-perf"
version = "1.0.23" version = "1.0.24"
dependencies = [ dependencies = [
"bincode", "bincode",
"dlopen", "dlopen",
@@ -4054,7 +4054,7 @@ dependencies = [
[[package]] [[package]]
name = "solana-rayon-threadlimit" name = "solana-rayon-threadlimit"
version = "1.0.23" version = "1.0.24"
dependencies = [ dependencies = [
"lazy_static", "lazy_static",
"num_cpus", "num_cpus",
@@ -4073,7 +4073,7 @@ dependencies = [
[[package]] [[package]]
name = "solana-remote-wallet" name = "solana-remote-wallet"
version = "1.0.23" version = "1.0.24"
dependencies = [ dependencies = [
"base32", "base32",
"console 0.9.2", "console 0.9.2",
@@ -4089,7 +4089,7 @@ dependencies = [
[[package]] [[package]]
name = "solana-runtime" name = "solana-runtime"
version = "1.0.23" version = "1.0.24"
dependencies = [ dependencies = [
"assert_matches", "assert_matches",
"bincode", "bincode",
@@ -4125,7 +4125,7 @@ dependencies = [
[[package]] [[package]]
name = "solana-scripts" name = "solana-scripts"
version = "1.0.23" version = "1.0.24"
dependencies = [ dependencies = [
"csv", "csv",
"serde", "serde",
@@ -4133,7 +4133,7 @@ dependencies = [
[[package]] [[package]]
name = "solana-sdk" name = "solana-sdk"
version = "1.0.23" version = "1.0.24"
dependencies = [ dependencies = [
"assert_matches", "assert_matches",
"bincode", "bincode",
@@ -4167,7 +4167,7 @@ dependencies = [
[[package]] [[package]]
name = "solana-sdk-c" name = "solana-sdk-c"
version = "1.0.23" version = "1.0.24"
dependencies = [ dependencies = [
"bincode", "bincode",
"bs58", "bs58",
@@ -4181,7 +4181,7 @@ dependencies = [
[[package]] [[package]]
name = "solana-sdk-macro" name = "solana-sdk-macro"
version = "1.0.23" version = "1.0.24"
dependencies = [ dependencies = [
"bs58", "bs58",
"proc-macro2 1.0.1", "proc-macro2 1.0.1",
@@ -4191,7 +4191,7 @@ dependencies = [
[[package]] [[package]]
name = "solana-stake-monitor" name = "solana-stake-monitor"
version = "1.0.23" version = "1.0.24"
dependencies = [ dependencies = [
"clap", "clap",
"console 0.10.0", "console 0.10.0",
@@ -4215,7 +4215,7 @@ dependencies = [
[[package]] [[package]]
name = "solana-stake-program" name = "solana-stake-program"
version = "1.0.23" version = "1.0.24"
dependencies = [ dependencies = [
"bincode", "bincode",
"log 0.4.8", "log 0.4.8",
@@ -4233,7 +4233,7 @@ dependencies = [
[[package]] [[package]]
name = "solana-storage-program" name = "solana-storage-program"
version = "1.0.23" version = "1.0.24"
dependencies = [ dependencies = [
"assert_matches", "assert_matches",
"bincode", "bincode",
@@ -4249,7 +4249,7 @@ dependencies = [
[[package]] [[package]]
name = "solana-sys-tuner" name = "solana-sys-tuner"
version = "1.0.23" version = "1.0.24"
dependencies = [ dependencies = [
"clap", "clap",
"libc", "libc",
@@ -4264,7 +4264,7 @@ dependencies = [
[[package]] [[package]]
name = "solana-transaction-status" name = "solana-transaction-status"
version = "1.0.23" version = "1.0.24"
dependencies = [ dependencies = [
"bincode", "bincode",
"bs58", "bs58",
@@ -4275,7 +4275,7 @@ dependencies = [
[[package]] [[package]]
name = "solana-upload-perf" name = "solana-upload-perf"
version = "1.0.23" version = "1.0.24"
dependencies = [ dependencies = [
"serde_json", "serde_json",
"solana-metrics", "solana-metrics",
@@ -4283,7 +4283,7 @@ dependencies = [
[[package]] [[package]]
name = "solana-validator" name = "solana-validator"
version = "1.0.23" version = "1.0.24"
dependencies = [ dependencies = [
"bzip2", "bzip2",
"chrono", "chrono",
@@ -4314,7 +4314,7 @@ dependencies = [
[[package]] [[package]]
name = "solana-version" name = "solana-version"
version = "1.1.11" version = "1.0.24"
dependencies = [ dependencies = [
"serde", "serde",
"serde_derive", "serde_derive",
@@ -4323,7 +4323,7 @@ dependencies = [
[[package]] [[package]]
name = "solana-vest-program" name = "solana-vest-program"
version = "1.0.23" version = "1.0.24"
dependencies = [ dependencies = [
"bincode", "bincode",
"chrono", "chrono",
@@ -4339,7 +4339,7 @@ dependencies = [
[[package]] [[package]]
name = "solana-vote-program" name = "solana-vote-program"
version = "1.0.23" version = "1.0.24"
dependencies = [ dependencies = [
"bincode", "bincode",
"log 0.4.8", "log 0.4.8",
@@ -4355,7 +4355,7 @@ dependencies = [
[[package]] [[package]]
name = "solana-vote-signer" name = "solana-vote-signer"
version = "1.0.23" version = "1.0.24"
dependencies = [ dependencies = [
"clap", "clap",
"jsonrpc-core", "jsonrpc-core",
@@ -4370,7 +4370,7 @@ dependencies = [
[[package]] [[package]]
name = "solana-watchtower" name = "solana-watchtower"
version = "1.0.23" version = "1.0.24"
dependencies = [ dependencies = [
"clap", "clap",
"humantime 2.0.0", "humantime 2.0.0",

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "solana-archiver-lib" name = "solana-archiver-lib"
version = "1.0.23" version = "1.0.24"
description = "Solana Archiver Library" description = "Solana Archiver Library"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -15,22 +15,22 @@ ed25519-dalek = "=1.0.0-pre.3"
log = "0.4.8" log = "0.4.8"
rand = "0.7.0" rand = "0.7.0"
rand_chacha = "0.2.2" rand_chacha = "0.2.2"
solana-client = { path = "../client", version = "1.0.23" } solana-client = { path = "../client", version = "1.0.24" }
solana-storage-program = { path = "../programs/storage", version = "1.0.23" } solana-storage-program = { path = "../programs/storage", version = "1.0.24" }
thiserror = "1.0" thiserror = "1.0"
serde = "1.0.104" serde = "1.0.104"
serde_json = "1.0.46" serde_json = "1.0.46"
serde_derive = "1.0.103" serde_derive = "1.0.103"
solana-net-utils = { path = "../net-utils", version = "1.0.23" } solana-net-utils = { path = "../net-utils", version = "1.0.24" }
solana-chacha = { path = "../chacha", version = "1.0.23" } solana-chacha = { path = "../chacha", version = "1.0.24" }
solana-chacha-sys = { path = "../chacha-sys", version = "1.0.23" } solana-chacha-sys = { path = "../chacha-sys", version = "1.0.24" }
solana-ledger = { path = "../ledger", version = "1.0.23" } solana-ledger = { path = "../ledger", version = "1.0.24" }
solana-logger = { path = "../logger", version = "1.0.23" } solana-logger = { path = "../logger", version = "1.0.24" }
solana-perf = { path = "../perf", version = "1.0.23" } solana-perf = { path = "../perf", version = "1.0.24" }
solana-sdk = { path = "../sdk", version = "1.0.23" } solana-sdk = { path = "../sdk", version = "1.0.24" }
solana-core = { path = "../core", version = "1.0.23" } solana-core = { path = "../core", version = "1.0.24" }
solana-archiver-utils = { path = "../archiver-utils", version = "1.0.23" } solana-archiver-utils = { path = "../archiver-utils", version = "1.0.24" }
solana-metrics = { path = "../metrics", version = "1.0.23" } solana-metrics = { path = "../metrics", version = "1.0.24" }
[dev-dependencies] [dev-dependencies]
hex = "0.4.0" hex = "0.4.0"

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "solana-archiver-utils" name = "solana-archiver-utils"
version = "1.0.23" version = "1.0.24"
description = "Solana Archiver Utils" description = "Solana Archiver Utils"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -11,12 +11,12 @@ edition = "2018"
[dependencies] [dependencies]
log = "0.4.8" log = "0.4.8"
rand = "0.7.0" rand = "0.7.0"
solana-chacha = { path = "../chacha", version = "1.0.23" } solana-chacha = { path = "../chacha", version = "1.0.24" }
solana-chacha-sys = { path = "../chacha-sys", version = "1.0.23" } solana-chacha-sys = { path = "../chacha-sys", version = "1.0.24" }
solana-ledger = { path = "../ledger", version = "1.0.23" } solana-ledger = { path = "../ledger", version = "1.0.24" }
solana-logger = { path = "../logger", version = "1.0.23" } solana-logger = { path = "../logger", version = "1.0.24" }
solana-perf = { path = "../perf", version = "1.0.23" } solana-perf = { path = "../perf", version = "1.0.24" }
solana-sdk = { path = "../sdk", version = "1.0.23" } solana-sdk = { path = "../sdk", version = "1.0.24" }
[dev-dependencies] [dev-dependencies]
hex = "0.4.0" hex = "0.4.0"

View File

@@ -2,7 +2,7 @@
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
edition = "2018" edition = "2018"
name = "solana-archiver" name = "solana-archiver"
version = "1.0.23" version = "1.0.24"
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0" license = "Apache-2.0"
homepage = "https://solana.com/" homepage = "https://solana.com/"
@@ -10,13 +10,13 @@ homepage = "https://solana.com/"
[dependencies] [dependencies]
clap = "2.33.0" clap = "2.33.0"
console = "0.9.2" console = "0.9.2"
solana-clap-utils = { path = "../clap-utils", version = "1.0.23" } solana-clap-utils = { path = "../clap-utils", version = "1.0.24" }
solana-core = { path = "../core", version = "1.0.23" } solana-core = { path = "../core", version = "1.0.24" }
solana-logger = { path = "../logger", version = "1.0.23" } solana-logger = { path = "../logger", version = "1.0.24" }
solana-metrics = { path = "../metrics", version = "1.0.23" } solana-metrics = { path = "../metrics", version = "1.0.24" }
solana-archiver-lib = { path = "../archiver-lib", version = "1.0.23" } solana-archiver-lib = { path = "../archiver-lib", version = "1.0.24" }
solana-net-utils = { path = "../net-utils", version = "1.0.23" } solana-net-utils = { path = "../net-utils", version = "1.0.24" }
solana-sdk = { path = "../sdk", version = "1.0.23" } solana-sdk = { path = "../sdk", version = "1.0.24" }
[package.metadata.docs.rs] [package.metadata.docs.rs]

View File

@@ -2,7 +2,7 @@
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
edition = "2018" edition = "2018"
name = "solana-banking-bench" name = "solana-banking-bench"
version = "1.0.23" version = "1.0.24"
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0" license = "Apache-2.0"
homepage = "https://solana.com/" homepage = "https://solana.com/"
@@ -10,12 +10,12 @@ homepage = "https://solana.com/"
[dependencies] [dependencies]
log = "0.4.6" log = "0.4.6"
rayon = "1.2.0" rayon = "1.2.0"
solana-core = { path = "../core", version = "1.0.23" } solana-core = { path = "../core", version = "1.0.24" }
solana-ledger = { path = "../ledger", version = "1.0.23" } solana-ledger = { path = "../ledger", version = "1.0.24" }
solana-logger = { path = "../logger", version = "1.0.23" } solana-logger = { path = "../logger", version = "1.0.24" }
solana-runtime = { path = "../runtime", version = "1.0.23" } solana-runtime = { path = "../runtime", version = "1.0.24" }
solana-measure = { path = "../measure", version = "1.0.23" } solana-measure = { path = "../measure", version = "1.0.24" }
solana-sdk = { path = "../sdk", version = "1.0.23" } solana-sdk = { path = "../sdk", version = "1.0.24" }
rand = "0.7.0" rand = "0.7.0"
crossbeam-channel = "0.3" crossbeam-channel = "0.3"

View File

@@ -2,7 +2,7 @@
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
edition = "2018" edition = "2018"
name = "solana-bench-exchange" name = "solana-bench-exchange"
version = "1.0.23" version = "1.0.24"
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0" license = "Apache-2.0"
homepage = "https://solana.com/" homepage = "https://solana.com/"
@@ -18,20 +18,20 @@ rand = "0.7.0"
rayon = "1.2.0" rayon = "1.2.0"
serde_json = "1.0.46" serde_json = "1.0.46"
serde_yaml = "0.8.11" serde_yaml = "0.8.11"
solana-clap-utils = { path = "../clap-utils", version = "1.0.23" } solana-clap-utils = { path = "../clap-utils", version = "1.0.24" }
solana-core = { path = "../core", version = "1.0.23" } solana-core = { path = "../core", version = "1.0.24" }
solana-genesis = { path = "../genesis", version = "1.0.23" } solana-genesis = { path = "../genesis", version = "1.0.24" }
solana-client = { path = "../client", version = "1.0.23" } solana-client = { path = "../client", version = "1.0.24" }
solana-faucet = { path = "../faucet", version = "1.0.23" } solana-faucet = { path = "../faucet", version = "1.0.24" }
solana-exchange-program = { path = "../programs/exchange", version = "1.0.23" } solana-exchange-program = { path = "../programs/exchange", version = "1.0.24" }
solana-logger = { path = "../logger", version = "1.0.23" } solana-logger = { path = "../logger", version = "1.0.24" }
solana-metrics = { path = "../metrics", version = "1.0.23" } solana-metrics = { path = "../metrics", version = "1.0.24" }
solana-net-utils = { path = "../net-utils", version = "1.0.23" } solana-net-utils = { path = "../net-utils", version = "1.0.24" }
solana-runtime = { path = "../runtime", version = "1.0.23" } solana-runtime = { path = "../runtime", version = "1.0.24" }
solana-sdk = { path = "../sdk", version = "1.0.23" } solana-sdk = { path = "../sdk", version = "1.0.24" }
[dev-dependencies] [dev-dependencies]
solana-local-cluster = { path = "../local-cluster", version = "1.0.23" } solana-local-cluster = { path = "../local-cluster", version = "1.0.24" }
[package.metadata.docs.rs] [package.metadata.docs.rs]
targets = ["x86_64-unknown-linux-gnu"] targets = ["x86_64-unknown-linux-gnu"]

View File

@@ -2,17 +2,17 @@
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
edition = "2018" edition = "2018"
name = "solana-bench-streamer" name = "solana-bench-streamer"
version = "1.0.23" version = "1.0.24"
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0" license = "Apache-2.0"
homepage = "https://solana.com/" homepage = "https://solana.com/"
[dependencies] [dependencies]
clap = "2.33.0" clap = "2.33.0"
solana-clap-utils = { path = "../clap-utils", version = "1.0.23" } solana-clap-utils = { path = "../clap-utils", version = "1.0.24" }
solana-core = { path = "../core", version = "1.0.23" } solana-core = { path = "../core", version = "1.0.24" }
solana-logger = { path = "../logger", version = "1.0.23" } solana-logger = { path = "../logger", version = "1.0.24" }
solana-net-utils = { path = "../net-utils", version = "1.0.23" } solana-net-utils = { path = "../net-utils", version = "1.0.24" }
[package.metadata.docs.rs] [package.metadata.docs.rs]
targets = ["x86_64-unknown-linux-gnu"] targets = ["x86_64-unknown-linux-gnu"]

View File

@@ -2,7 +2,7 @@
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
edition = "2018" edition = "2018"
name = "solana-bench-tps" name = "solana-bench-tps"
version = "1.0.23" version = "1.0.24"
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0" license = "Apache-2.0"
homepage = "https://solana.com/" homepage = "https://solana.com/"
@@ -14,24 +14,24 @@ log = "0.4.8"
rayon = "1.2.0" rayon = "1.2.0"
serde_json = "1.0.46" serde_json = "1.0.46"
serde_yaml = "0.8.11" serde_yaml = "0.8.11"
solana-clap-utils = { path = "../clap-utils", version = "1.0.23" } solana-clap-utils = { path = "../clap-utils", version = "1.0.24" }
solana-core = { path = "../core", version = "1.0.23" } solana-core = { path = "../core", version = "1.0.24" }
solana-genesis = { path = "../genesis", version = "1.0.23" } solana-genesis = { path = "../genesis", version = "1.0.24" }
solana-client = { path = "../client", version = "1.0.23" } solana-client = { path = "../client", version = "1.0.24" }
solana-faucet = { path = "../faucet", version = "1.0.23" } solana-faucet = { path = "../faucet", version = "1.0.24" }
#solana-librapay = { path = "../programs/librapay", version = "1.0.20", optional = true } #solana-librapay = { path = "../programs/librapay", version = "1.0.20", optional = true }
solana-logger = { path = "../logger", version = "1.0.23" } solana-logger = { path = "../logger", version = "1.0.24" }
solana-metrics = { path = "../metrics", version = "1.0.23" } solana-metrics = { path = "../metrics", version = "1.0.24" }
solana-measure = { path = "../measure", version = "1.0.23" } solana-measure = { path = "../measure", version = "1.0.24" }
solana-net-utils = { path = "../net-utils", version = "1.0.23" } solana-net-utils = { path = "../net-utils", version = "1.0.24" }
solana-runtime = { path = "../runtime", version = "1.0.23" } solana-runtime = { path = "../runtime", version = "1.0.24" }
solana-sdk = { path = "../sdk", version = "1.0.23" } solana-sdk = { path = "../sdk", version = "1.0.24" }
#solana-move-loader-program = { path = "../programs/move_loader", version = "1.0.20", optional = true } #solana-move-loader-program = { path = "../programs/move_loader", version = "1.0.20", optional = true }
[dev-dependencies] [dev-dependencies]
serial_test = "0.3.2" serial_test = "0.3.2"
serial_test_derive = "0.4.0" serial_test_derive = "0.4.0"
solana-local-cluster = { path = "../local-cluster", version = "1.0.23" } solana-local-cluster = { path = "../local-cluster", version = "1.0.24" }
#[features] #[features]
#move = ["solana-librapay", "solana-move-loader-program"] #move = ["solana-librapay", "solana-move-loader-program"]

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "solana-chacha-cuda" name = "solana-chacha-cuda"
version = "1.0.23" version = "1.0.24"
description = "Solana Chacha Cuda APIs" description = "Solana Chacha Cuda APIs"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -10,12 +10,12 @@ edition = "2018"
[dependencies] [dependencies]
log = "0.4.8" log = "0.4.8"
solana-archiver-utils = { path = "../archiver-utils", version = "1.0.23" } solana-archiver-utils = { path = "../archiver-utils", version = "1.0.24" }
solana-chacha = { path = "../chacha", version = "1.0.23" } solana-chacha = { path = "../chacha", version = "1.0.24" }
solana-ledger = { path = "../ledger", version = "1.0.23" } solana-ledger = { path = "../ledger", version = "1.0.24" }
solana-logger = { path = "../logger", version = "1.0.23" } solana-logger = { path = "../logger", version = "1.0.24" }
solana-perf = { path = "../perf", version = "1.0.23" } solana-perf = { path = "../perf", version = "1.0.24" }
solana-sdk = { path = "../sdk", version = "1.0.23" } solana-sdk = { path = "../sdk", version = "1.0.24" }
[dev-dependencies] [dev-dependencies]
hex-literal = "0.2.1" hex-literal = "0.2.1"

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "solana-chacha-sys" name = "solana-chacha-sys"
version = "1.0.23" version = "1.0.24"
description = "Solana chacha-sys" description = "Solana chacha-sys"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "solana-chacha" name = "solana-chacha"
version = "1.0.23" version = "1.0.24"
description = "Solana Chacha APIs" description = "Solana Chacha APIs"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -12,11 +12,11 @@ edition = "2018"
log = "0.4.8" log = "0.4.8"
rand = "0.7.0" rand = "0.7.0"
rand_chacha = "0.2.2" rand_chacha = "0.2.2"
solana-chacha-sys = { path = "../chacha-sys", version = "1.0.23" } solana-chacha-sys = { path = "../chacha-sys", version = "1.0.24" }
solana-ledger = { path = "../ledger", version = "1.0.23" } solana-ledger = { path = "../ledger", version = "1.0.24" }
solana-logger = { path = "../logger", version = "1.0.23" } solana-logger = { path = "../logger", version = "1.0.24" }
solana-perf = { path = "../perf", version = "1.0.23" } solana-perf = { path = "../perf", version = "1.0.24" }
solana-sdk = { path = "../sdk", version = "1.0.23" } solana-sdk = { path = "../sdk", version = "1.0.24" }
[dev-dependencies] [dev-dependencies]
hex-literal = "0.2.1" hex-literal = "0.2.1"

View File

@@ -2,8 +2,10 @@
set -e set -e
cd "$(dirname "$0")/.." cd "$(dirname "$0")/.."
# shellcheck source=multinode-demo/common.sh
source multinode-demo/common.sh
rm -f config/run/init-completed rm -rf config/run/init-completed config/ledger config/snapshot-ledger
timeout 15 ./run.sh & timeout 15 ./run.sh &
pid=$! pid=$!
@@ -17,6 +19,14 @@ while [[ ! -f config/run/init-completed ]]; do
fi fi
done done
while [[ $($solana_cli slot --commitment recent) -eq 0 ]]; do
sleep 1
done
curl -X POST -H 'Content-Type: application/json' -d '{"jsonrpc":"2.0","id":1, "method":"validatorExit"}' http://localhost:8899 curl -X POST -H 'Content-Type: application/json' -d '{"jsonrpc":"2.0","id":1, "method":"validatorExit"}' http://localhost:8899
wait $pid wait $pid
$solana_ledger_tool create-snapshot --ledger config/ledger 1 config/snapshot-ledger
cp config/ledger/genesis.tar.bz2 config/snapshot-ledger
tar -C config/snapshot-ledger -xvf config/snapshot-ledger/genesis.tar.bz2
$solana_ledger_tool verify --ledger config/snapshot-ledger

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "solana-clap-utils" name = "solana-clap-utils"
version = "1.0.23" version = "1.0.24"
description = "Solana utilities for the clap" description = "Solana utilities for the clap"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -11,8 +11,8 @@ edition = "2018"
[dependencies] [dependencies]
clap = "2.33.0" clap = "2.33.0"
rpassword = "4.0" rpassword = "4.0"
solana-remote-wallet = { path = "../remote-wallet", version = "1.0.23" } solana-remote-wallet = { path = "../remote-wallet", version = "1.0.24" }
solana-sdk = { path = "../sdk", version = "1.0.23" } solana-sdk = { path = "../sdk", version = "1.0.24" }
thiserror = "1.0.11" thiserror = "1.0.11"
tiny-bip39 = "0.7.0" tiny-bip39 = "0.7.0"
url = "2.1.0" url = "2.1.0"

View File

@@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.com>"]
edition = "2018" edition = "2018"
name = "solana-cli-config" name = "solana-cli-config"
description = "Blockchain, Rebuilt for Scale" description = "Blockchain, Rebuilt for Scale"
version = "1.0.23" version = "1.0.24"
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0" license = "Apache-2.0"
homepage = "https://solana.com/" homepage = "https://solana.com/"

View File

@@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.com>"]
edition = "2018" edition = "2018"
name = "solana-cli" name = "solana-cli"
description = "Blockchain, Rebuilt for Scale" description = "Blockchain, Rebuilt for Scale"
version = "1.0.23" version = "1.0.24"
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0" license = "Apache-2.0"
homepage = "https://solana.com/" homepage = "https://solana.com/"
@@ -26,29 +26,29 @@ reqwest = { version = "0.10.1", default-features = false, features = ["blocking"
serde = "1.0.104" serde = "1.0.104"
serde_derive = "1.0.103" serde_derive = "1.0.103"
serde_json = "1.0.46" serde_json = "1.0.46"
solana-budget-program = { path = "../programs/budget", version = "1.0.23" } solana-budget-program = { path = "../programs/budget", version = "1.0.24" }
solana-clap-utils = { path = "../clap-utils", version = "1.0.23" } solana-clap-utils = { path = "../clap-utils", version = "1.0.24" }
solana-cli-config = { path = "../cli-config", version = "1.0.23" } solana-cli-config = { path = "../cli-config", version = "1.0.24" }
solana-client = { path = "../client", version = "1.0.23" } solana-client = { path = "../client", version = "1.0.24" }
solana-config-program = { path = "../programs/config", version = "1.0.23" } solana-config-program = { path = "../programs/config", version = "1.0.24" }
solana-faucet = { path = "../faucet", version = "1.0.23" } solana-faucet = { path = "../faucet", version = "1.0.24" }
solana-logger = { path = "../logger", version = "1.0.23" } solana-logger = { path = "../logger", version = "1.0.24" }
solana-net-utils = { path = "../net-utils", version = "1.0.23" } solana-net-utils = { path = "../net-utils", version = "1.0.24" }
solana-remote-wallet = { path = "../remote-wallet", version = "1.0.23" } solana-remote-wallet = { path = "../remote-wallet", version = "1.0.24" }
solana-runtime = { path = "../runtime", version = "1.0.23" } solana-runtime = { path = "../runtime", version = "1.0.24" }
solana-sdk = { path = "../sdk", version = "1.0.23" } solana-sdk = { path = "../sdk", version = "1.0.24" }
solana-stake-program = { path = "../programs/stake", version = "1.0.23" } solana-stake-program = { path = "../programs/stake", version = "1.0.24" }
solana-storage-program = { path = "../programs/storage", version = "1.0.23" } solana-storage-program = { path = "../programs/storage", version = "1.0.24" }
solana-transaction-status = { path = "../transaction-status", version = "1.0.23" } solana-transaction-status = { path = "../transaction-status", version = "1.0.24" }
solana-vote-program = { path = "../programs/vote", version = "1.0.23" } solana-vote-program = { path = "../programs/vote", version = "1.0.24" }
solana-vote-signer = { path = "../vote-signer", version = "1.0.23" } solana-vote-signer = { path = "../vote-signer", version = "1.0.24" }
titlecase = "1.1.0" titlecase = "1.1.0"
thiserror = "1.0.11" thiserror = "1.0.11"
url = "2.1.1" url = "2.1.1"
[dev-dependencies] [dev-dependencies]
solana-core = { path = "../core", version = "1.0.23" } solana-core = { path = "../core", version = "1.0.24" }
solana-budget-program = { path = "../programs/budget", version = "1.0.23" } solana-budget-program = { path = "../programs/budget", version = "1.0.24" }
tempfile = "3.1.0" tempfile = "3.1.0"
[[bin]] [[bin]]

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "solana-client" name = "solana-client"
version = "1.0.23" version = "1.0.24"
description = "Solana Client" description = "Solana Client"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -19,10 +19,10 @@ reqwest = { version = "0.10.1", default-features = false, features = ["blocking"
serde = "1.0.104" serde = "1.0.104"
serde_derive = "1.0.103" serde_derive = "1.0.103"
serde_json = "1.0.46" serde_json = "1.0.46"
solana-net-utils = { path = "../net-utils", version = "1.0.23" } solana-net-utils = { path = "../net-utils", version = "1.0.24" }
solana-sdk = { path = "../sdk", version = "1.0.23" } solana-sdk = { path = "../sdk", version = "1.0.24" }
solana-transaction-status = { path = "../transaction-status", version = "1.0.23" } solana-transaction-status = { path = "../transaction-status", version = "1.0.24" }
solana-vote-program = { path = "../programs/vote", version = "1.0.23" } solana-vote-program = { path = "../programs/vote", version = "1.0.24" }
thiserror = "1.0" thiserror = "1.0"
tungstenite = "0.10.1" tungstenite = "0.10.1"
url = "2.1.1" url = "2.1.1"
@@ -31,7 +31,7 @@ url = "2.1.1"
assert_matches = "1.3.0" assert_matches = "1.3.0"
jsonrpc-core = "14.0.5" jsonrpc-core = "14.0.5"
jsonrpc-http-server = "14.0.6" jsonrpc-http-server = "14.0.6"
solana-logger = { path = "../logger", version = "1.0.23" } solana-logger = { path = "../logger", version = "1.0.24" }
[package.metadata.docs.rs] [package.metadata.docs.rs]
targets = ["x86_64-unknown-linux-gnu"] targets = ["x86_64-unknown-linux-gnu"]

View File

@@ -8,6 +8,7 @@ pub mod perf_utils;
pub mod pubsub_client; pub mod pubsub_client;
pub mod rpc_client; pub mod rpc_client;
pub mod rpc_client_request; pub mod rpc_client_request;
pub mod rpc_config;
pub mod rpc_request; pub mod rpc_request;
pub mod rpc_response; pub mod rpc_response;
pub mod thin_client; pub mod thin_client;

View File

@@ -3,7 +3,10 @@ use solana_sdk::commitment_config::CommitmentConfig;
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")] #[serde(rename_all = "camelCase")]
pub struct RpcSignatureStatusConfig { pub struct RpcSignatureStatusConfig {
pub search_transaction_history: bool, pub search_transaction_history: Option<bool>,
// DEPRECATED
#[serde(flatten)]
pub commitment: Option<CommitmentConfig>,
} }
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]

View File

@@ -18,6 +18,7 @@ pub enum RpcRequest {
GetGenesisHash, GetGenesisHash,
GetIdentity, GetIdentity,
GetInflation, GetInflation,
GetLargestAccounts,
GetLeaderSchedule, GetLeaderSchedule,
GetProgramAccounts, GetProgramAccounts,
GetRecentBlockhash, GetRecentBlockhash,
@@ -61,6 +62,7 @@ impl RpcRequest {
RpcRequest::GetGenesisHash => "getGenesisHash", RpcRequest::GetGenesisHash => "getGenesisHash",
RpcRequest::GetIdentity => "getIdentity", RpcRequest::GetIdentity => "getIdentity",
RpcRequest::GetInflation => "getInflation", RpcRequest::GetInflation => "getInflation",
RpcRequest::GetLargestAccounts => "getLargestAccounts",
RpcRequest::GetLeaderSchedule => "getLeaderSchedule", RpcRequest::GetLeaderSchedule => "getLeaderSchedule",
RpcRequest::GetProgramAccounts => "getProgramAccounts", RpcRequest::GetProgramAccounts => "getProgramAccounts",
RpcRequest::GetRecentBlockhash => "getRecentBlockhash", RpcRequest::GetRecentBlockhash => "getRecentBlockhash",

View File

@@ -1,7 +1,7 @@
[package] [package]
name = "solana-core" name = "solana-core"
description = "Blockchain, Rebuilt for Scale" description = "Blockchain, Rebuilt for Scale"
version = "1.0.23" version = "1.0.24"
documentation = "https://docs.rs/solana" documentation = "https://docs.rs/solana"
homepage = "https://solana.com/" homepage = "https://solana.com/"
readme = "../README.md" readme = "../README.md"
@@ -43,35 +43,35 @@ regex = "1.3.4"
serde = "1.0.104" serde = "1.0.104"
serde_derive = "1.0.103" serde_derive = "1.0.103"
serde_json = "1.0.46" serde_json = "1.0.46"
solana-budget-program = { path = "../programs/budget", version = "1.0.23" } solana-budget-program = { path = "../programs/budget", version = "1.0.24" }
solana-clap-utils = { path = "../clap-utils", version = "1.0.23" } solana-clap-utils = { path = "../clap-utils", version = "1.0.24" }
solana-client = { path = "../client", version = "1.0.23" } solana-client = { path = "../client", version = "1.0.24" }
solana-transaction-status = { path = "../transaction-status", version = "1.0.23" } solana-transaction-status = { path = "../transaction-status", version = "1.0.24" }
solana-faucet = { path = "../faucet", version = "1.0.23" } solana-faucet = { path = "../faucet", version = "1.0.24" }
ed25519-dalek = "=1.0.0-pre.3" ed25519-dalek = "=1.0.0-pre.3"
solana-ledger = { path = "../ledger", version = "1.0.23" } solana-ledger = { path = "../ledger", version = "1.0.24" }
solana-logger = { path = "../logger", version = "1.0.23" } solana-logger = { path = "../logger", version = "1.0.24" }
solana-merkle-tree = { path = "../merkle-tree", version = "1.0.23" } solana-merkle-tree = { path = "../merkle-tree", version = "1.0.24" }
solana-metrics = { path = "../metrics", version = "1.0.23" } solana-metrics = { path = "../metrics", version = "1.0.24" }
solana-measure = { path = "../measure", version = "1.0.23" } solana-measure = { path = "../measure", version = "1.0.24" }
solana-net-utils = { path = "../net-utils", version = "1.0.23" } solana-net-utils = { path = "../net-utils", version = "1.0.24" }
solana-chacha-cuda = { path = "../chacha-cuda", version = "1.0.23" } solana-chacha-cuda = { path = "../chacha-cuda", version = "1.0.24" }
solana-perf = { path = "../perf", version = "1.0.23" } solana-perf = { path = "../perf", version = "1.0.24" }
solana-runtime = { path = "../runtime", version = "1.0.23" } solana-runtime = { path = "../runtime", version = "1.0.24" }
solana-sdk = { path = "../sdk", version = "1.0.23" } solana-sdk = { path = "../sdk", version = "1.0.24" }
solana-stake-program = { path = "../programs/stake", version = "1.0.23" } solana-stake-program = { path = "../programs/stake", version = "1.0.24" }
solana-storage-program = { path = "../programs/storage", version = "1.0.23" } solana-storage-program = { path = "../programs/storage", version = "1.0.24" }
solana-version = { path = "../version", version = "1.0.23" } solana-version = { path = "../version", version = "1.0.24" }
solana-vote-program = { path = "../programs/vote", version = "1.0.23" } solana-vote-program = { path = "../programs/vote", version = "1.0.24" }
solana-vote-signer = { path = "../vote-signer", version = "1.0.23" } solana-vote-signer = { path = "../vote-signer", version = "1.0.24" }
solana-sys-tuner = { path = "../sys-tuner", version = "1.0.23" } solana-sys-tuner = { path = "../sys-tuner", version = "1.0.24" }
tempfile = "3.1.0" tempfile = "3.1.0"
thiserror = "1.0" thiserror = "1.0"
tokio = "0.1" tokio = "0.1"
tokio-codec = "0.1" tokio-codec = "0.1"
tokio-fs = "0.1" tokio-fs = "0.1"
tokio-io = "0.1" tokio-io = "0.1"
solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "1.0.23" } solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "1.0.24" }
trees = "0.2.1" trees = "0.2.1"
[dev-dependencies] [dev-dependencies]

View File

@@ -71,6 +71,7 @@ pub enum CrdsData {
EpochSlots(EpochSlotIndex, EpochSlots), EpochSlots(EpochSlotIndex, EpochSlots),
SnapshotHashes(SnapshotHash), SnapshotHashes(SnapshotHash),
AccountsHashes(SnapshotHash), AccountsHashes(SnapshotHash),
NewEpochSlotsPlaceholder, // Reserve this enum entry for the v1.1 version of EpochSlots
Version(Version), Version(Version),
} }
@@ -123,6 +124,7 @@ impl Sanitize for CrdsData {
} }
val.sanitize() val.sanitize()
} }
CrdsData::NewEpochSlotsPlaceholder => Err(SanitizeError::InvalidValue), // Not supported on v1.0
CrdsData::Version(version) => version.sanitize(), CrdsData::Version(version) => version.sanitize(),
} }
} }
@@ -266,6 +268,7 @@ pub enum CrdsValueLabel {
EpochSlots(Pubkey), EpochSlots(Pubkey),
SnapshotHashes(Pubkey), SnapshotHashes(Pubkey),
AccountsHashes(Pubkey), AccountsHashes(Pubkey),
NewEpochSlotsPlaceholder,
Version(Pubkey), Version(Pubkey),
} }
@@ -277,6 +280,7 @@ impl fmt::Display for CrdsValueLabel {
CrdsValueLabel::EpochSlots(_) => write!(f, "EpochSlots({})", self.pubkey()), CrdsValueLabel::EpochSlots(_) => write!(f, "EpochSlots({})", self.pubkey()),
CrdsValueLabel::SnapshotHashes(_) => write!(f, "SnapshotHashes({})", self.pubkey()), CrdsValueLabel::SnapshotHashes(_) => write!(f, "SnapshotHashes({})", self.pubkey()),
CrdsValueLabel::AccountsHashes(_) => write!(f, "AccountsHashes({})", self.pubkey()), CrdsValueLabel::AccountsHashes(_) => write!(f, "AccountsHashes({})", self.pubkey()),
CrdsValueLabel::NewEpochSlotsPlaceholder => write!(f, "NewEpochSlotsPlaceholder"),
CrdsValueLabel::Version(_) => write!(f, "Version({})", self.pubkey()), CrdsValueLabel::Version(_) => write!(f, "Version({})", self.pubkey()),
} }
} }
@@ -290,6 +294,7 @@ impl CrdsValueLabel {
CrdsValueLabel::EpochSlots(p) => *p, CrdsValueLabel::EpochSlots(p) => *p,
CrdsValueLabel::SnapshotHashes(p) => *p, CrdsValueLabel::SnapshotHashes(p) => *p,
CrdsValueLabel::AccountsHashes(p) => *p, CrdsValueLabel::AccountsHashes(p) => *p,
CrdsValueLabel::NewEpochSlotsPlaceholder => Pubkey::default(),
CrdsValueLabel::Version(p) => *p, CrdsValueLabel::Version(p) => *p,
} }
} }
@@ -318,6 +323,7 @@ impl CrdsValue {
CrdsData::EpochSlots(_, vote) => vote.wallclock, CrdsData::EpochSlots(_, vote) => vote.wallclock,
CrdsData::SnapshotHashes(hash) => hash.wallclock, CrdsData::SnapshotHashes(hash) => hash.wallclock,
CrdsData::AccountsHashes(hash) => hash.wallclock, CrdsData::AccountsHashes(hash) => hash.wallclock,
CrdsData::NewEpochSlotsPlaceholder => 0,
CrdsData::Version(version) => version.wallclock, CrdsData::Version(version) => version.wallclock,
} }
} }
@@ -328,6 +334,7 @@ impl CrdsValue {
CrdsData::EpochSlots(_, slots) => slots.from, CrdsData::EpochSlots(_, slots) => slots.from,
CrdsData::SnapshotHashes(hash) => hash.from, CrdsData::SnapshotHashes(hash) => hash.from,
CrdsData::AccountsHashes(hash) => hash.from, CrdsData::AccountsHashes(hash) => hash.from,
CrdsData::NewEpochSlotsPlaceholder => Pubkey::default(),
CrdsData::Version(version) => version.from, CrdsData::Version(version) => version.from,
} }
} }
@@ -338,6 +345,7 @@ impl CrdsValue {
CrdsData::EpochSlots(_, _) => CrdsValueLabel::EpochSlots(self.pubkey()), CrdsData::EpochSlots(_, _) => CrdsValueLabel::EpochSlots(self.pubkey()),
CrdsData::SnapshotHashes(_) => CrdsValueLabel::SnapshotHashes(self.pubkey()), CrdsData::SnapshotHashes(_) => CrdsValueLabel::SnapshotHashes(self.pubkey()),
CrdsData::AccountsHashes(_) => CrdsValueLabel::AccountsHashes(self.pubkey()), CrdsData::AccountsHashes(_) => CrdsValueLabel::AccountsHashes(self.pubkey()),
CrdsData::NewEpochSlotsPlaceholder => CrdsValueLabel::NewEpochSlotsPlaceholder,
CrdsData::Version(_) => CrdsValueLabel::Version(self.pubkey()), CrdsData::Version(_) => CrdsValueLabel::Version(self.pubkey()),
} }
} }
@@ -456,6 +464,7 @@ mod test {
CrdsValueLabel::AccountsHashes(_) => hits[3] = true, CrdsValueLabel::AccountsHashes(_) => hits[3] = true,
CrdsValueLabel::Version(_) => hits[4] = true, CrdsValueLabel::Version(_) => hits[4] = true,
CrdsValueLabel::Vote(ix, _) => hits[*ix as usize + 5] = true, CrdsValueLabel::Vote(ix, _) => hits[*ix as usize + 5] = true,
CrdsValueLabel::NewEpochSlotsPlaceholder => unreachable!(),
} }
} }
assert!(hits.iter().all(|x| *x)); assert!(hits.iter().all(|x| *x));

View File

@@ -3,7 +3,6 @@
use solana_ledger::blockstore::Blockstore; use solana_ledger::blockstore::Blockstore;
use solana_ledger::blockstore_db::Result as BlockstoreResult; use solana_ledger::blockstore_db::Result as BlockstoreResult;
use solana_measure::measure::Measure; use solana_measure::measure::Measure;
use solana_metrics::datapoint_debug;
use solana_sdk::clock::Slot; use solana_sdk::clock::Slot;
use std::string::ToString; use std::string::ToString;
use std::sync::atomic::{AtomicBool, Ordering}; use std::sync::atomic::{AtomicBool, Ordering};
@@ -30,9 +29,8 @@ pub const DEFAULT_MIN_MAX_LEDGER_SHREDS: u64 = 50_000_000;
// and starve other blockstore users. // and starve other blockstore users.
pub const DEFAULT_PURGE_SLOT_INTERVAL: u64 = 512; pub const DEFAULT_PURGE_SLOT_INTERVAL: u64 = 512;
// Remove a limited number of slots at a time, so the operation // Delay between purges to cooperate with other blockstore users
// does not take too long and block other blockstore users. pub const DEFAULT_DELAY_BETWEEN_PURGES: Duration = Duration::from_millis(500);
pub const DEFAULT_PURGE_BATCH_SIZE: u64 = 256;
pub struct LedgerCleanupService { pub struct LedgerCleanupService {
t_cleanup: JoinHandle<()>, t_cleanup: JoinHandle<()>,
@@ -63,6 +61,7 @@ impl LedgerCleanupService {
max_ledger_slots, max_ledger_slots,
&mut last_purge_slot, &mut last_purge_slot,
DEFAULT_PURGE_SLOT_INTERVAL, DEFAULT_PURGE_SLOT_INTERVAL,
Some(DEFAULT_DELAY_BETWEEN_PURGES),
) { ) {
match e { match e {
RecvTimeoutError::Disconnected => break, RecvTimeoutError::Disconnected => break,
@@ -78,8 +77,8 @@ impl LedgerCleanupService {
blockstore: &Arc<Blockstore>, blockstore: &Arc<Blockstore>,
root: Slot, root: Slot,
max_ledger_shreds: u64, max_ledger_shreds: u64,
) -> (u64, Slot, Slot) { ) -> (bool, Slot, Slot, u64) {
let mut shreds = Vec::new(); let mut total_slots = Vec::new();
let mut iterate_time = Measure::start("iterate_time"); let mut iterate_time = Measure::start("iterate_time");
let mut total_shreds = 0; let mut total_shreds = 0;
let mut first_slot = 0; let mut first_slot = 0;
@@ -90,33 +89,43 @@ impl LedgerCleanupService {
} }
// Not exact since non-full slots will have holes // Not exact since non-full slots will have holes
total_shreds += meta.received; total_shreds += meta.received;
shreds.push((slot, meta.received)); total_slots.push((slot, meta.received));
if slot > root { if slot > root {
break; break;
} }
} }
iterate_time.stop(); iterate_time.stop();
info!( info!(
"checking for ledger purge: max_shreds: {} slots: {} total_shreds: {} {}", "first_slot={} total_slots={} total_shreds={} max_ledger_shreds={}, {}",
max_ledger_shreds, first_slot,
shreds.len(), total_slots.len(),
total_shreds, total_shreds,
max_ledger_shreds,
iterate_time iterate_time
); );
if (total_shreds as u64) < max_ledger_shreds { if (total_shreds as u64) < max_ledger_shreds {
return (0, 0, 0); return (false, 0, 0, total_shreds);
} }
let mut cur_shreds = 0; let mut num_shreds_to_clean = 0;
let mut lowest_slot_to_clean = shreds[0].0; let mut lowest_cleanup_slot = total_slots[0].0;
for (slot, num_shreds) in shreds.iter().rev() { for (slot, num_shreds) in total_slots.iter().rev() {
cur_shreds += *num_shreds as u64; num_shreds_to_clean += *num_shreds as u64;
if cur_shreds > max_ledger_shreds { if num_shreds_to_clean > max_ledger_shreds {
lowest_slot_to_clean = *slot; lowest_cleanup_slot = *slot;
break; break;
} }
} }
(cur_shreds, lowest_slot_to_clean, first_slot) (true, lowest_cleanup_slot, first_slot, total_shreds)
}
fn receive_new_roots(new_root_receiver: &Receiver<Slot>) -> Result<Slot, RecvTimeoutError> {
let mut root = new_root_receiver.recv_timeout(Duration::from_secs(1))?;
// Get the newest root
while let Ok(new_root) = new_root_receiver.try_recv() {
root = new_root;
}
Ok(root)
} }
fn cleanup_ledger( fn cleanup_ledger(
@@ -125,68 +134,78 @@ impl LedgerCleanupService {
max_ledger_shreds: u64, max_ledger_shreds: u64,
last_purge_slot: &mut u64, last_purge_slot: &mut u64,
purge_interval: u64, purge_interval: u64,
delay_between_purges: Option<Duration>,
) -> Result<(), RecvTimeoutError> { ) -> Result<(), RecvTimeoutError> {
let mut root = new_root_receiver.recv_timeout(Duration::from_secs(1))?; let root = Self::receive_new_roots(new_root_receiver)?;
// Get the newest root if root - *last_purge_slot <= purge_interval {
while let Ok(new_root) = new_root_receiver.try_recv() { return Ok(());
root = new_root;
} }
if root - *last_purge_slot > purge_interval {
let disk_utilization_pre = blockstore.storage_size(); let disk_utilization_pre = blockstore.storage_size();
info!( info!(
"purge: new root: {} last_purge: {} purge_interval: {} disk: {:?}", "purge: last_root={}, last_purge_slot={}, purge_interval={}, disk_utilization={:?}",
root, last_purge_slot, purge_interval, disk_utilization_pre root, last_purge_slot, purge_interval, disk_utilization_pre
); );
*last_purge_slot = root; *last_purge_slot = root;
let (num_shreds_to_clean, lowest_slot_to_clean, mut first_slot) = let (slots_to_clean, lowest_cleanup_slot, first_slot, total_shreds) =
Self::find_slots_to_clean(blockstore, root, max_ledger_shreds); Self::find_slots_to_clean(&blockstore, root, max_ledger_shreds);
if num_shreds_to_clean > 0 { if slots_to_clean {
debug!( info!(
"cleaning up to: {} shreds: {} first: {}", "purging data from slots {} to {}",
lowest_slot_to_clean, num_shreds_to_clean, first_slot first_slot, lowest_cleanup_slot
); );
loop {
let current_lowest =
std::cmp::min(lowest_slot_to_clean, first_slot + DEFAULT_PURGE_BATCH_SIZE);
let purge_complete = Arc::new(AtomicBool::new(false));
let blockstore = blockstore.clone();
let purge_complete1 = purge_complete.clone();
let _t_purge = Builder::new()
.name("solana-ledger-purge".to_string())
.spawn(move || {
let mut slot_update_time = Measure::start("slot_update"); let mut slot_update_time = Measure::start("slot_update");
*blockstore.lowest_cleanup_slot.write().unwrap() = current_lowest; *blockstore.lowest_cleanup_slot.write().unwrap() = lowest_cleanup_slot;
slot_update_time.stop(); slot_update_time.stop();
let mut clean_time = Measure::start("ledger_clean"); let mut purge_time = Measure::start("purge_slots_with_delay");
blockstore.purge_slots(first_slot, Some(current_lowest)); blockstore.purge_slots_with_delay(
clean_time.stop(); first_slot,
lowest_cleanup_slot,
debug!( delay_between_purges,
"ledger purge {} -> {}: {} {}",
first_slot, current_lowest, slot_update_time, clean_time
); );
first_slot += DEFAULT_PURGE_BATCH_SIZE; purge_time.stop();
if current_lowest == lowest_slot_to_clean { info!("{}", purge_time);
break; purge_complete1.store(true, Ordering::Relaxed);
})
.unwrap();
// Keep pulling roots off `new_root_receiver` while purging to avoid channel buildup
while !purge_complete.load(Ordering::Relaxed) {
if let Err(err) = Self::receive_new_roots(new_root_receiver) {
debug!("receive_new_roots: {}", err);
} }
thread::sleep(Duration::from_millis(500)); thread::sleep(Duration::from_secs(1));
} }
} }
let disk_utilization_post = blockstore.storage_size(); let disk_utilization_post = blockstore.storage_size();
Self::report_disk_metrics(disk_utilization_pre, disk_utilization_post, total_shreds);
Self::report_disk_metrics(disk_utilization_pre, disk_utilization_post);
}
Ok(()) Ok(())
} }
fn report_disk_metrics(pre: BlockstoreResult<u64>, post: BlockstoreResult<u64>) { fn report_disk_metrics(
pre: BlockstoreResult<u64>,
post: BlockstoreResult<u64>,
total_shreds: u64,
) {
if let (Ok(pre), Ok(post)) = (pre, post) { if let (Ok(pre), Ok(post)) = (pre, post) {
datapoint_debug!( datapoint_info!(
"ledger_disk_utilization", "ledger_disk_utilization",
("disk_utilization_pre", pre as i64, i64), ("disk_utilization_pre", pre as i64, i64),
("disk_utilization_post", post as i64, i64), ("disk_utilization_post", post as i64, i64),
("disk_utilization_delta", (pre as i64 - post as i64), i64) ("disk_utilization_delta", (pre as i64 - post as i64), i64),
("total_shreds", total_shreds, i64),
); );
} }
} }
@@ -215,7 +234,14 @@ mod tests {
//send a signal to kill all but 5 shreds, which will be in the newest slots //send a signal to kill all but 5 shreds, which will be in the newest slots
let mut last_purge_slot = 0; let mut last_purge_slot = 0;
sender.send(50).unwrap(); sender.send(50).unwrap();
LedgerCleanupService::cleanup_ledger(&receiver, &blockstore, 5, &mut last_purge_slot, 10) LedgerCleanupService::cleanup_ledger(
&receiver,
&blockstore,
5,
&mut last_purge_slot,
10,
None,
)
.unwrap(); .unwrap();
//check that 0-40 don't exist //check that 0-40 don't exist
@@ -269,6 +295,7 @@ mod tests {
initial_slots, initial_slots,
&mut last_purge_slot, &mut last_purge_slot,
10, 10,
None,
) )
.unwrap(); .unwrap();
time.stop(); time.stop();
@@ -311,6 +338,7 @@ mod tests {
max_ledger_shreds, max_ledger_shreds,
&mut next_purge_batch, &mut next_purge_batch,
10, 10,
None,
) )
.unwrap(); .unwrap();

View File

@@ -74,6 +74,7 @@ solana_sdk::pubkeys!(
"CHmdL15akDcJgBkY6BP3hzs98Dqr6wbdDC5p8odvtSbq", "CHmdL15akDcJgBkY6BP3hzs98Dqr6wbdDC5p8odvtSbq",
"FR84wZQy3Y3j2gWz6pgETUiUoJtreMEuWfbg6573UCj9", "FR84wZQy3Y3j2gWz6pgETUiUoJtreMEuWfbg6573UCj9",
"5q54XjQ7vDx4y6KphPeE97LUNiYGtP55spjvXAWPGBuf", "5q54XjQ7vDx4y6KphPeE97LUNiYGtP55spjvXAWPGBuf",
"3o6xgkJ9sTmDeQWyfj3sxwon18fXJB9PV5LDc8sfgR4a",
] ]
); );

View File

@@ -13,7 +13,7 @@ use crate::{
use bincode::serialize; use bincode::serialize;
use jsonrpc_core::{Error, Metadata, Result}; use jsonrpc_core::{Error, Metadata, Result};
use jsonrpc_derive::rpc; use jsonrpc_derive::rpc;
use solana_client::rpc_response::*; use solana_client::{rpc_config::*, rpc_response::*};
use solana_faucet::faucet::request_airdrop_transaction; use solana_faucet::faucet::request_airdrop_transaction;
use solana_ledger::{ use solana_ledger::{
bank_forks::BankForks, blockstore::Blockstore, blockstore_db::BlockstoreError, bank_forks::BankForks, blockstore::Blockstore, blockstore_db::BlockstoreError,
@@ -64,21 +64,6 @@ pub struct JsonRpcConfig {
pub faucet_addr: Option<SocketAddr>, pub faucet_addr: Option<SocketAddr>,
} }
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct RpcSignatureStatusConfig {
pub search_transaction_history: Option<bool>,
// DEPRECATED
#[serde(flatten)]
pub commitment: Option<CommitmentConfig>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct RpcSimulateTransactionConfig {
pub sig_verify: bool,
}
#[derive(Clone)] #[derive(Clone)]
pub struct JsonRpcRequestProcessor { pub struct JsonRpcRequestProcessor {
bank_forks: Arc<RwLock<BankForks>>, bank_forks: Arc<RwLock<BankForks>>,
@@ -287,16 +272,24 @@ impl JsonRpcRequestProcessor {
fn get_largest_accounts( fn get_largest_accounts(
&self, &self,
commitment: Option<CommitmentConfig>, config: Option<RpcLargestAccountsConfig>,
) -> RpcResponse<Vec<RpcAccountBalance>> { ) -> RpcResponse<Vec<RpcAccountBalance>> {
let bank = self.bank(commitment)?; let config = config.unwrap_or_default();
let bank = self.bank(config.commitment)?;
let (addresses, address_filter) = if let Some(filter) = config.filter {
let non_circulating_supply = calculate_non_circulating_supply(&bank);
let addresses = non_circulating_supply.accounts.into_iter().collect();
let address_filter = match filter {
RpcLargestAccountsFilter::Circulating => AccountAddressFilter::Exclude,
RpcLargestAccountsFilter::NonCirculating => AccountAddressFilter::Include,
};
(addresses, address_filter)
} else {
(HashSet::new(), AccountAddressFilter::Exclude)
};
new_response( new_response(
&bank, &bank,
bank.get_largest_accounts( bank.get_largest_accounts(NUM_LARGEST_ACCOUNTS, &addresses, address_filter)
NUM_LARGEST_ACCOUNTS,
&HashSet::new(),
AccountAddressFilter::Exclude,
)
.into_iter() .into_iter()
.map(|(address, lamports)| RpcAccountBalance { .map(|(address, lamports)| RpcAccountBalance {
address: address.to_string(), address: address.to_string(),
@@ -684,11 +677,15 @@ fn get_tpu_addr(cluster_info: &Arc<RwLock<ClusterInfo>>) -> Result<SocketAddr> {
} }
fn verify_pubkey(input: String) -> Result<Pubkey> { fn verify_pubkey(input: String) -> Result<Pubkey> {
input.parse().map_err(|_e| Error::invalid_request()) input
.parse()
.map_err(|e| Error::invalid_params(format!("{:?}", e)))
} }
fn verify_signature(input: &str) -> Result<Signature> { fn verify_signature(input: &str) -> Result<Signature> {
input.parse().map_err(|_e| Error::invalid_request()) input
.parse()
.map_err(|e| Error::invalid_params(format!("{:?}", e)))
} }
#[derive(Clone)] #[derive(Clone)]
@@ -847,7 +844,7 @@ pub trait RpcSol {
fn get_largest_accounts( fn get_largest_accounts(
&self, &self,
meta: Self::Metadata, meta: Self::Metadata,
commitment: Option<CommitmentConfig>, config: Option<RpcLargestAccountsConfig>,
) -> RpcResponse<Vec<RpcAccountBalance>>; ) -> RpcResponse<Vec<RpcAccountBalance>>;
#[rpc(meta, name = "getSupply")] #[rpc(meta, name = "getSupply")]
@@ -1272,13 +1269,13 @@ impl RpcSol for RpcSolImpl {
fn get_largest_accounts( fn get_largest_accounts(
&self, &self,
meta: Self::Metadata, meta: Self::Metadata,
commitment: Option<CommitmentConfig>, config: Option<RpcLargestAccountsConfig>,
) -> RpcResponse<Vec<RpcAccountBalance>> { ) -> RpcResponse<Vec<RpcAccountBalance>> {
debug!("get_largest_accounts rpc request received"); debug!("get_largest_accounts rpc request received");
meta.request_processor meta.request_processor
.read() .read()
.unwrap() .unwrap()
.get_largest_accounts(commitment) .get_largest_accounts(config)
} }
fn get_supply( fn get_supply(
@@ -1604,21 +1601,24 @@ impl RpcSol for RpcSolImpl {
} }
fn deserialize_bs58_transaction(bs58_transaction: String) -> Result<(Vec<u8>, Transaction)> { fn deserialize_bs58_transaction(bs58_transaction: String) -> Result<(Vec<u8>, Transaction)> {
let wire_transaction = bs58::decode(bs58_transaction).into_vec().unwrap(); let wire_transaction = bs58::decode(bs58_transaction)
.into_vec()
.map_err(|e| Error::invalid_params(format!("{:?}", e)))?;
if wire_transaction.len() >= PACKET_DATA_SIZE { if wire_transaction.len() >= PACKET_DATA_SIZE {
info!( let err = format!(
"transaction too large: {} bytes (max: {} bytes)", "transaction too large: {} bytes (max: {} bytes)",
wire_transaction.len(), wire_transaction.len(),
PACKET_DATA_SIZE PACKET_DATA_SIZE
); );
return Err(Error::invalid_request()); info!("{}", err);
return Err(Error::invalid_params(&err));
} }
bincode::config() bincode::config()
.limit(PACKET_DATA_SIZE as u64) .limit(PACKET_DATA_SIZE as u64)
.deserialize(&wire_transaction) .deserialize(&wire_transaction)
.map_err(|err| { .map_err(|err| {
info!("transaction deserialize error: {:?}", err); info!("transaction deserialize error: {:?}", err);
Error::invalid_request() Error::invalid_params(&err.to_string())
}) })
.map(|transaction| (wire_transaction, transaction)) .map(|transaction| (wire_transaction, transaction))
} }
@@ -1630,10 +1630,11 @@ pub mod tests {
commitment::BlockCommitment, commitment::BlockCommitment,
contact_info::ContactInfo, contact_info::ContactInfo,
genesis_utils::{create_genesis_config, GenesisConfigInfo}, genesis_utils::{create_genesis_config, GenesisConfigInfo},
non_circulating_supply::non_circulating_accounts,
replay_stage::tests::create_test_transactions_and_populate_blockstore, replay_stage::tests::create_test_transactions_and_populate_blockstore,
}; };
use bincode::deserialize; use bincode::deserialize;
use jsonrpc_core::{MetaIoHandler, Output, Response, Value}; use jsonrpc_core::{ErrorCode, MetaIoHandler, Output, Response, Value};
use solana_ledger::{ use solana_ledger::{
blockstore::entries_to_test_shreds, blockstore_processor::fill_blockstore_slot_with_ticks, blockstore::entries_to_test_shreds, blockstore_processor::fill_blockstore_slot_with_ticks,
entry::next_entry_mut, get_tmp_ledger_path, entry::next_entry_mut, get_tmp_ledger_path,
@@ -1779,6 +1780,9 @@ pub mod tests {
let blockhash = bank.confirmed_last_blockhash().0; let blockhash = bank.confirmed_last_blockhash().0;
let tx = system_transaction::transfer(&alice, pubkey, 20, blockhash); let tx = system_transaction::transfer(&alice, pubkey, 20, blockhash);
bank.process_transaction(&tx).expect("process transaction"); bank.process_transaction(&tx).expect("process transaction");
let tx =
system_transaction::transfer(&alice, &non_circulating_accounts()[0], 20, blockhash);
bank.process_transaction(&tx).expect("process transaction");
let tx = system_transaction::transfer(&alice, pubkey, std::u64::MAX, blockhash); let tx = system_transaction::transfer(&alice, pubkey, std::u64::MAX, blockhash);
let _ = bank.process_transaction(&tx); let _ = bank.process_transaction(&tx);
@@ -1935,7 +1939,7 @@ pub mod tests {
let req = format!(r#"{{"jsonrpc":"2.0","id":1,"method":"getTransactionCount"}}"#); let req = format!(r#"{{"jsonrpc":"2.0","id":1,"method":"getTransactionCount"}}"#);
let res = io.handle_request_sync(&req, meta); let res = io.handle_request_sync(&req, meta);
let expected = format!(r#"{{"jsonrpc":"2.0","result":3,"id":1}}"#); let expected = format!(r#"{{"jsonrpc":"2.0","result":4,"id":1}}"#);
let expected: Response = let expected: Response =
serde_json::from_str(&expected).expect("expected response deserialization"); serde_json::from_str(&expected).expect("expected response deserialization");
let result: Response = serde_json::from_str(&res.expect("actual response")) let result: Response = serde_json::from_str(&res.expect("actual response"))
@@ -1983,6 +1987,31 @@ pub mod tests {
assert!(supply >= TEST_MINT_LAMPORTS); assert!(supply >= TEST_MINT_LAMPORTS);
} }
#[test]
fn test_get_supply() {
let bob_pubkey = Pubkey::new_rand();
let RpcHandler { io, meta, .. } = start_rpc_handler_with_tx(&bob_pubkey);
let req = format!(r#"{{"jsonrpc":"2.0","id":1,"method":"getSupply"}}"#);
let res = io.handle_request_sync(&req, meta.clone());
let json: Value = serde_json::from_str(&res.unwrap()).unwrap();
let supply: RpcSupply = serde_json::from_value(json["result"]["value"].clone())
.expect("actual response deserialization");
assert_eq!(supply.non_circulating, 20);
assert!(supply.circulating >= TEST_MINT_LAMPORTS);
assert!(supply.total >= TEST_MINT_LAMPORTS + 20);
let expected_accounts: Vec<String> = non_circulating_accounts()
.iter()
.map(|pubkey| pubkey.to_string())
.collect();
assert_eq!(
supply.non_circulating_accounts.len(),
expected_accounts.len()
);
for address in supply.non_circulating_accounts {
assert!(expected_accounts.contains(&address));
}
}
#[test] #[test]
fn test_get_largest_accounts() { fn test_get_largest_accounts() {
let bob_pubkey = Pubkey::new_rand(); let bob_pubkey = Pubkey::new_rand();
@@ -1995,7 +2024,7 @@ pub mod tests {
let largest_accounts: Vec<RpcAccountBalance> = let largest_accounts: Vec<RpcAccountBalance> =
serde_json::from_value(json["result"]["value"].clone()) serde_json::from_value(json["result"]["value"].clone())
.expect("actual response deserialization"); .expect("actual response deserialization");
assert_eq!(largest_accounts.len(), 18); assert_eq!(largest_accounts.len(), 19);
// Get Alice balance // Get Alice balance
let req = format!( let req = format!(
@@ -2016,7 +2045,7 @@ pub mod tests {
r#"{{"jsonrpc":"2.0","id":1,"method":"getBalance","params":["{}"]}}"#, r#"{{"jsonrpc":"2.0","id":1,"method":"getBalance","params":["{}"]}}"#,
bob_pubkey bob_pubkey
); );
let res = io.handle_request_sync(&req, meta); let res = io.handle_request_sync(&req, meta.clone());
let json: Value = serde_json::from_str(&res.unwrap()).unwrap(); let json: Value = serde_json::from_str(&res.unwrap()).unwrap();
let bob_balance: u64 = serde_json::from_value(json["result"]["value"].clone()) let bob_balance: u64 = serde_json::from_value(json["result"]["value"].clone())
.expect("actual response deserialization"); .expect("actual response deserialization");
@@ -2024,6 +2053,26 @@ pub mod tests {
address: bob_pubkey.to_string(), address: bob_pubkey.to_string(),
lamports: bob_balance, lamports: bob_balance,
})); }));
// Test Circulating/NonCirculating Filter
let req = format!(
r#"{{"jsonrpc":"2.0","id":1,"method":"getLargestAccounts","params":[{{"filter":"circulating"}}]}}"#
);
let res = io.handle_request_sync(&req, meta.clone());
let json: Value = serde_json::from_str(&res.unwrap()).unwrap();
let largest_accounts: Vec<RpcAccountBalance> =
serde_json::from_value(json["result"]["value"].clone())
.expect("actual response deserialization");
assert_eq!(largest_accounts.len(), 18);
let req = format!(
r#"{{"jsonrpc":"2.0","id":1,"method":"getLargestAccounts","params":[{{"filter":"nonCirculating"}}]}}"#
);
let res = io.handle_request_sync(&req, meta.clone());
let json: Value = serde_json::from_str(&res.unwrap()).unwrap();
let largest_accounts: Vec<RpcAccountBalance> =
serde_json::from_value(json["result"]["value"].clone())
.expect("actual response deserialization");
assert_eq!(largest_accounts.len(), 1);
} }
#[test] #[test]
@@ -2679,14 +2728,10 @@ pub mod tests {
}; };
let req = r#"{"jsonrpc":"2.0","id":1,"method":"sendTransaction","params":["37u9WtQpcm6ULa3Vmu7ySnANv"]}"#; let req = r#"{"jsonrpc":"2.0","id":1,"method":"sendTransaction","params":["37u9WtQpcm6ULa3Vmu7ySnANv"]}"#;
let res = io.handle_request_sync(req, meta.clone()); let res = io.handle_request_sync(req, meta);
let expected = let json: Value = serde_json::from_str(&res.unwrap()).unwrap();
r#"{"jsonrpc":"2.0","error":{"code":-32600,"message":"Invalid request"},"id":1}"#; let error = &json["error"];
let expected: Response = assert_eq!(error["code"], ErrorCode::InvalidParams.code());
serde_json::from_str(expected).expect("expected response deserialization");
let result: Response = serde_json::from_str(&res.expect("actual response"))
.expect("actual response deserialization");
assert_eq!(expected, result);
} }
#[test] #[test]
@@ -2707,7 +2752,7 @@ pub mod tests {
let bad_pubkey = "a1b2c3d4"; let bad_pubkey = "a1b2c3d4";
assert_eq!( assert_eq!(
verify_pubkey(bad_pubkey.to_string()), verify_pubkey(bad_pubkey.to_string()),
Err(Error::invalid_request()) Err(Error::invalid_params("WrongSize"))
); );
} }
@@ -2721,7 +2766,7 @@ pub mod tests {
let bad_signature = "a1b2c3d4"; let bad_signature = "a1b2c3d4";
assert_eq!( assert_eq!(
verify_signature(&bad_signature.to_string()), verify_signature(&bad_signature.to_string()),
Err(Error::invalid_request()) Err(Error::invalid_params("WrongSize"))
); );
} }

View File

@@ -15,7 +15,7 @@ use solana_ledger::{
blockstore::Blockstore, blockstore::Blockstore,
snapshot_utils, snapshot_utils,
}; };
use solana_sdk::{hash::Hash, pubkey::Pubkey}; use solana_sdk::{hash::Hash, native_token::lamports_to_sol, pubkey::Pubkey};
use std::{ use std::{
collections::HashSet, collections::HashSet,
net::SocketAddr, net::SocketAddr,
@@ -245,13 +245,16 @@ fn process_rest(bank_forks: &Arc<RwLock<BankForks>>, path: &str) -> Option<Strin
let total_supply = bank.capitalization(); let total_supply = bank.capitalization();
let non_circulating_supply = let non_circulating_supply =
crate::non_circulating_supply::calculate_non_circulating_supply(&bank).lamports; crate::non_circulating_supply::calculate_non_circulating_supply(&bank).lamports;
Some(format!("{}", total_supply - non_circulating_supply)) Some(format!(
"{}",
lamports_to_sol(total_supply - non_circulating_supply)
))
} }
"/v0/total-supply" => { "/v0/total-supply" => {
let r_bank_forks = bank_forks.read().unwrap(); let r_bank_forks = bank_forks.read().unwrap();
let bank = r_bank_forks.root_bank(); let bank = r_bank_forks.root_bank();
let total_supply = bank.capitalization(); let total_supply = bank.capitalization();
Some(format!("{}", total_supply)) Some(format!("{}", lamports_to_sol(total_supply)))
} }
_ => None, _ => None,
} }
@@ -444,11 +447,11 @@ mod tests {
assert_eq!(None, process_rest(&bank_forks, "not-a-supported-rest-api")); assert_eq!(None, process_rest(&bank_forks, "not-a-supported-rest-api"));
assert_eq!( assert_eq!(
Some("10127".to_string()), Some("0.000010127".to_string()),
process_rest(&bank_forks, "/v0/circulating-supply") process_rest(&bank_forks, "/v0/circulating-supply")
); );
assert_eq!( assert_eq!(
Some("10127".to_string()), Some("0.000010127".to_string()),
process_rest(&bank_forks, "/v0/total-supply") process_rest(&bank_forks, "/v0/total-supply")
); );
} }

View File

@@ -148,7 +148,7 @@ fn test_rpc_invalid_requests() {
.unwrap(); .unwrap();
let json: Value = serde_json::from_str(&response.text().unwrap()).unwrap(); let json: Value = serde_json::from_str(&response.text().unwrap()).unwrap();
let the_error = json["error"]["message"].as_str().unwrap(); let the_error = json["error"]["message"].as_str().unwrap();
assert_eq!(the_error, "Invalid request"); assert_eq!(the_error, "Invalid");
// test invalid get_account_info request // test invalid get_account_info request
let client = reqwest::blocking::Client::new(); let client = reqwest::blocking::Client::new();
@@ -168,7 +168,7 @@ fn test_rpc_invalid_requests() {
.unwrap(); .unwrap();
let json: Value = serde_json::from_str(&response.text().unwrap()).unwrap(); let json: Value = serde_json::from_str(&response.text().unwrap()).unwrap();
let the_error = json["error"]["message"].as_str().unwrap(); let the_error = json["error"]["message"].as_str().unwrap();
assert_eq!(the_error, "Invalid request"); assert_eq!(the_error, "Invalid");
// test invalid get_account_info request // test invalid get_account_info request
let client = reqwest::blocking::Client::new(); let client = reqwest::blocking::Client::new();

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "solana-crate-features" name = "solana-crate-features"
version = "1.0.23" version = "1.0.24"
description = "Solana Crate Features" description = "Solana Crate Features"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"

View File

@@ -1009,7 +1009,7 @@ The result field will be a JSON object with the following fields:
// Request // Request
curl -X POST -H "Content-Type: application/json" -d '{"jsonrpc":"2.0","id":1, "method":"getVersion"}' http://localhost:8899 curl -X POST -H "Content-Type: application/json" -d '{"jsonrpc":"2.0","id":1, "method":"getVersion"}' http://localhost:8899
// Result // Result
{"jsonrpc":"2.0","result":{"solana-core": "1.0.23"},"id":1} {"jsonrpc":"2.0","result":{"solana-core": "1.0.24"},"id":1}
``` ```
### getVoteAccounts ### getVoteAccounts

View File

@@ -171,7 +171,7 @@ $ solana send-timestamp <PUBKEY> <PROCESS_ID> --date 2018-12-24T23:59:00
## Usage ## Usage
### solana-cli ### solana-cli
```text ```text
solana-cli 1.0.23 [channel=unknown commit=unknown] solana-cli 1.0.24 [channel=unknown commit=unknown]
Blockchain, Rebuilt for Scale Blockchain, Rebuilt for Scale
USAGE: USAGE:

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "solana-faucet" name = "solana-faucet"
version = "1.0.23" version = "1.0.24"
description = "Solana Faucet" description = "Solana Faucet"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -19,10 +19,10 @@ clap = "2.33"
log = "0.4.8" log = "0.4.8"
serde = "1.0.104" serde = "1.0.104"
serde_derive = "1.0.103" serde_derive = "1.0.103"
solana-clap-utils = { path = "../clap-utils", version = "1.0.23" } solana-clap-utils = { path = "../clap-utils", version = "1.0.24" }
solana-logger = { path = "../logger", version = "1.0.23" } solana-logger = { path = "../logger", version = "1.0.24" }
solana-metrics = { path = "../metrics", version = "1.0.23" } solana-metrics = { path = "../metrics", version = "1.0.24" }
solana-sdk = { path = "../sdk", version = "1.0.23" } solana-sdk = { path = "../sdk", version = "1.0.24" }
tokio = "0.1" tokio = "0.1"
tokio-codec = "0.1" tokio-codec = "0.1"

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "solana-genesis-programs" name = "solana-genesis-programs"
version = "1.0.23" version = "1.0.24"
description = "Solana genesis programs" description = "Solana genesis programs"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -10,16 +10,16 @@ edition = "2018"
[dependencies] [dependencies]
log = { version = "0.4.8" } log = { version = "0.4.8" }
solana-bpf-loader-program = { path = "../programs/bpf_loader", version = "1.0.23" } solana-bpf-loader-program = { path = "../programs/bpf_loader", version = "1.0.24" }
solana-budget-program = { path = "../programs/budget", version = "1.0.23" } solana-budget-program = { path = "../programs/budget", version = "1.0.24" }
solana-config-program = { path = "../programs/config", version = "1.0.23" } solana-config-program = { path = "../programs/config", version = "1.0.24" }
solana-exchange-program = { path = "../programs/exchange", version = "1.0.23" } solana-exchange-program = { path = "../programs/exchange", version = "1.0.24" }
solana-runtime = { path = "../runtime", version = "1.0.23" } solana-runtime = { path = "../runtime", version = "1.0.24" }
solana-sdk = { path = "../sdk", version = "1.0.23" } solana-sdk = { path = "../sdk", version = "1.0.24" }
solana-stake-program = { path = "../programs/stake", version = "1.0.23" } solana-stake-program = { path = "../programs/stake", version = "1.0.24" }
solana-storage-program = { path = "../programs/storage", version = "1.0.23" } solana-storage-program = { path = "../programs/storage", version = "1.0.24" }
solana-vest-program = { path = "../programs/vest", version = "1.0.23" } solana-vest-program = { path = "../programs/vest", version = "1.0.24" }
solana-vote-program = { path = "../programs/vote", version = "1.0.23" } solana-vote-program = { path = "../programs/vote", version = "1.0.24" }
[lib] [lib]
crate-type = ["lib"] crate-type = ["lib"]

View File

@@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.com>"]
edition = "2018" edition = "2018"
name = "solana-genesis" name = "solana-genesis"
description = "Blockchain, Rebuilt for Scale" description = "Blockchain, Rebuilt for Scale"
version = "1.0.23" version = "1.0.24"
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0" license = "Apache-2.0"
homepage = "https://solana.com/" homepage = "https://solana.com/"
@@ -15,13 +15,13 @@ chrono = "0.4"
serde = "1.0.104" serde = "1.0.104"
serde_json = "1.0.46" serde_json = "1.0.46"
serde_yaml = "0.8.11" serde_yaml = "0.8.11"
solana-clap-utils = { path = "../clap-utils", version = "1.0.23" } solana-clap-utils = { path = "../clap-utils", version = "1.0.24" }
solana-genesis-programs = { path = "../genesis-programs", version = "1.0.23" } solana-genesis-programs = { path = "../genesis-programs", version = "1.0.24" }
solana-ledger = { path = "../ledger", version = "1.0.23" } solana-ledger = { path = "../ledger", version = "1.0.24" }
solana-sdk = { path = "../sdk", version = "1.0.23" } solana-sdk = { path = "../sdk", version = "1.0.24" }
solana-stake-program = { path = "../programs/stake", version = "1.0.23" } solana-stake-program = { path = "../programs/stake", version = "1.0.24" }
solana-storage-program = { path = "../programs/storage", version = "1.0.23" } solana-storage-program = { path = "../programs/storage", version = "1.0.24" }
solana-vote-program = { path = "../programs/vote", version = "1.0.23" } solana-vote-program = { path = "../programs/vote", version = "1.0.24" }
tempfile = "3.1.0" tempfile = "3.1.0"
[[bin]] [[bin]]

View File

@@ -3,19 +3,19 @@ authors = ["Solana Maintainers <maintainers@solana.com>"]
edition = "2018" edition = "2018"
name = "solana-gossip" name = "solana-gossip"
description = "Blockchain, Rebuilt for Scale" description = "Blockchain, Rebuilt for Scale"
version = "1.0.23" version = "1.0.24"
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0" license = "Apache-2.0"
homepage = "https://solana.com/" homepage = "https://solana.com/"
[dependencies] [dependencies]
clap = "2.33.0" clap = "2.33.0"
solana-clap-utils = { path = "../clap-utils", version = "1.0.23" } solana-clap-utils = { path = "../clap-utils", version = "1.0.24" }
solana-core = { path = "../core", version = "1.0.23" } solana-core = { path = "../core", version = "1.0.24" }
solana-client = { path = "../client", version = "1.0.23" } solana-client = { path = "../client", version = "1.0.24" }
solana-logger = { path = "../logger", version = "1.0.23" } solana-logger = { path = "../logger", version = "1.0.24" }
solana-net-utils = { path = "../net-utils", version = "1.0.23" } solana-net-utils = { path = "../net-utils", version = "1.0.24" }
solana-sdk = { path = "../sdk", version = "1.0.23" } solana-sdk = { path = "../sdk", version = "1.0.24" }

View File

@@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.com>"]
edition = "2018" edition = "2018"
name = "solana-install" name = "solana-install"
description = "The solana cluster software installer" description = "The solana cluster software installer"
version = "1.0.23" version = "1.0.24"
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0" license = "Apache-2.0"
homepage = "https://solana.com/" homepage = "https://solana.com/"
@@ -24,11 +24,11 @@ reqwest = { version = "0.10.1", default-features = false, features = ["blocking"
serde = "1.0.104" serde = "1.0.104"
serde_derive = "1.0.103" serde_derive = "1.0.103"
serde_yaml = "0.8.11" serde_yaml = "0.8.11"
solana-clap-utils = { path = "../clap-utils", version = "1.0.23" } solana-clap-utils = { path = "../clap-utils", version = "1.0.24" }
solana-client = { path = "../client", version = "1.0.23" } solana-client = { path = "../client", version = "1.0.24" }
solana-config-program = { path = "../programs/config", version = "1.0.23" } solana-config-program = { path = "../programs/config", version = "1.0.24" }
solana-logger = { path = "../logger", version = "1.0.23" } solana-logger = { path = "../logger", version = "1.0.24" }
solana-sdk = { path = "../sdk", version = "1.0.23" } solana-sdk = { path = "../sdk", version = "1.0.24" }
semver = "0.9.0" semver = "0.9.0"
tar = "0.4.26" tar = "0.4.26"
tempdir = "0.3.7" tempdir = "0.3.7"

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "solana-keygen" name = "solana-keygen"
version = "1.0.23" version = "1.0.24"
description = "Solana key generation utility" description = "Solana key generation utility"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -13,10 +13,10 @@ bs58 = "0.3.0"
clap = "2.33" clap = "2.33"
dirs = "2.0.2" dirs = "2.0.2"
num_cpus = "1.12.0" num_cpus = "1.12.0"
solana-clap-utils = { path = "../clap-utils", version = "1.0.23" } solana-clap-utils = { path = "../clap-utils", version = "1.0.24" }
solana-cli-config = { path = "../cli-config", version = "1.0.23" } solana-cli-config = { path = "../cli-config", version = "1.0.24" }
solana-remote-wallet = { path = "../remote-wallet", version = "1.0.23" } solana-remote-wallet = { path = "../remote-wallet", version = "1.0.24" }
solana-sdk = { path = "../sdk", version = "1.0.23" } solana-sdk = { path = "../sdk", version = "1.0.24" }
tiny-bip39 = "0.7.0" tiny-bip39 = "0.7.0"
[[bin]] [[bin]]

View File

@@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.com>"]
edition = "2018" edition = "2018"
name = "solana-ledger-tool" name = "solana-ledger-tool"
description = "Blockchain, Rebuilt for Scale" description = "Blockchain, Rebuilt for Scale"
version = "1.0.23" version = "1.0.24"
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0" license = "Apache-2.0"
homepage = "https://solana.com/" homepage = "https://solana.com/"
@@ -14,15 +14,15 @@ clap = "2.33.0"
histogram = "*" histogram = "*"
serde_json = "1.0.46" serde_json = "1.0.46"
serde_yaml = "0.8.11" serde_yaml = "0.8.11"
solana-clap-utils = { path = "../clap-utils", version = "1.0.23" } solana-clap-utils = { path = "../clap-utils", version = "1.0.24" }
solana-cli = { path = "../cli", version = "1.0.23" } solana-cli = { path = "../cli", version = "1.0.24" }
solana-ledger = { path = "../ledger", version = "1.0.23" } solana-ledger = { path = "../ledger", version = "1.0.24" }
solana-logger = { path = "../logger", version = "1.0.23" } solana-logger = { path = "../logger", version = "1.0.24" }
solana-runtime = { path = "../runtime", version = "1.0.23" } solana-runtime = { path = "../runtime", version = "1.0.24" }
solana-sdk = { path = "../sdk", version = "1.0.23" } solana-sdk = { path = "../sdk", version = "1.0.24" }
solana-vote-program = { path = "../programs/vote", version = "1.0.23" } solana-vote-program = { path = "../programs/vote", version = "1.0.24" }
solana-stake-program = { path = "../programs/stake", version = "1.0.23" } solana-stake-program = { path = "../programs/stake", version = "1.0.24" }
solana-transaction-status = { path = "../transaction-status", version = "1.0.23" } solana-transaction-status = { path = "../transaction-status", version = "1.0.24" }
tempfile = "3.1.0" tempfile = "3.1.0"
[dev-dependencies] [dev-dependencies]

View File

@@ -731,17 +731,6 @@ fn main() {
.arg(&account_paths_arg) .arg(&account_paths_arg)
.arg(&halt_at_slot_arg) .arg(&halt_at_slot_arg)
.arg(&hard_forks_arg) .arg(&hard_forks_arg)
).subcommand(
SubCommand::with_name("prune")
.about("Prune the ledger at the block height")
.arg(
Arg::with_name("slot_list")
.long("slot-list")
.value_name("FILENAME")
.takes_value(true)
.required(true)
.help("The location of the YAML file with a list of rollback slot heights and hashes"),
)
).subcommand( ).subcommand(
SubCommand::with_name("purge") SubCommand::with_name("purge")
.about("Purge the ledger at the block height") .about("Purge the ledger at the block height")
@@ -751,14 +740,14 @@ fn main() {
.value_name("SLOT") .value_name("SLOT")
.takes_value(true) .takes_value(true)
.required(true) .required(true)
.help("Start slot to purge from."), .help("Start slot to purge from (inclusive)"),
) )
.arg( .arg(
Arg::with_name("end_slot") Arg::with_name("end_slot")
.index(2) .index(2)
.value_name("SLOT") .value_name("SLOT")
.takes_value(true) .required(true)
.help("Optional ending slot to stop purging."), .help("Ending slot to stop purging (inclusive)"),
) )
) )
.subcommand( .subcommand(
@@ -1133,48 +1122,10 @@ fn main() {
} }
("purge", Some(arg_matches)) => { ("purge", Some(arg_matches)) => {
let start_slot = value_t_or_exit!(arg_matches, "start_slot", Slot); let start_slot = value_t_or_exit!(arg_matches, "start_slot", Slot);
let end_slot = value_t!(arg_matches, "end_slot", Slot); let end_slot = value_t_or_exit!(arg_matches, "end_slot", Slot);
let end_slot = end_slot.map_or(None, Some);
let blockstore = open_blockstore(&ledger_path); let blockstore = open_blockstore(&ledger_path);
blockstore.purge_slots(start_slot, end_slot); blockstore.purge_slots(start_slot, end_slot);
} }
("prune", Some(arg_matches)) => {
if let Some(prune_file_path) = arg_matches.value_of("slot_list") {
let blockstore = open_blockstore(&ledger_path);
let prune_file = File::open(prune_file_path.to_string()).unwrap();
let slot_hashes: BTreeMap<u64, String> =
serde_yaml::from_reader(prune_file).unwrap();
let iter =
RootedSlotIterator::new(0, &blockstore).expect("Failed to get rooted slot");
let potential_hashes: Vec<_> = iter
.filter_map(|(slot, _meta)| {
let blockhash = blockstore
.get_slot_entries(slot, 0, None)
.unwrap()
.last()
.unwrap()
.hash
.to_string();
slot_hashes.get(&slot).and_then(|hash| {
if *hash == blockhash {
Some((slot, blockhash))
} else {
None
}
})
})
.collect();
let (target_slot, target_hash) = potential_hashes
.last()
.expect("Failed to find a valid slot");
println!("Prune at slot {:?} hash {:?}", target_slot, target_hash);
blockstore.prune(*target_slot);
}
}
("list-roots", Some(arg_matches)) => { ("list-roots", Some(arg_matches)) => {
let blockstore = open_blockstore(&ledger_path); let blockstore = open_blockstore(&ledger_path);
let max_height = if let Some(height) = arg_matches.value_of("max_height") { let max_height = if let Some(height) = arg_matches.value_of("max_height") {

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "solana-ledger" name = "solana-ledger"
version = "1.0.23" version = "1.0.24"
description = "Solana ledger" description = "Solana ledger"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -28,19 +28,19 @@ reed-solomon-erasure = { package = "solana-reed-solomon-erasure", version = "4.0
regex = "1.3.4" regex = "1.3.4"
serde = "1.0.104" serde = "1.0.104"
serde_bytes = "0.11.3" serde_bytes = "0.11.3"
solana-transaction-status = { path = "../transaction-status", version = "1.0.23" } solana-transaction-status = { path = "../transaction-status", version = "1.0.24" }
solana-genesis-programs = { path = "../genesis-programs", version = "1.0.23" } solana-genesis-programs = { path = "../genesis-programs", version = "1.0.24" }
solana-logger = { path = "../logger", version = "1.0.23" } solana-logger = { path = "../logger", version = "1.0.24" }
solana-measure = { path = "../measure", version = "1.0.23" } solana-measure = { path = "../measure", version = "1.0.24" }
solana-merkle-tree = { path = "../merkle-tree", version = "1.0.23" } solana-merkle-tree = { path = "../merkle-tree", version = "1.0.24" }
solana-metrics = { path = "../metrics", version = "1.0.23" } solana-metrics = { path = "../metrics", version = "1.0.24" }
solana-perf = { path = "../perf", version = "1.0.23" } solana-perf = { path = "../perf", version = "1.0.24" }
ed25519-dalek = "1.0.0-pre.1" ed25519-dalek = "1.0.0-pre.1"
solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "1.0.23" } solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "1.0.24" }
solana-runtime = { path = "../runtime", version = "1.0.23" } solana-runtime = { path = "../runtime", version = "1.0.24" }
solana-sdk = { path = "../sdk", version = "1.0.23" } solana-sdk = { path = "../sdk", version = "1.0.24" }
solana-stake-program = { path = "../programs/stake", version = "1.0.23" } solana-stake-program = { path = "../programs/stake", version = "1.0.24" }
solana-vote-program = { path = "../programs/vote", version = "1.0.23" } solana-vote-program = { path = "../programs/vote", version = "1.0.24" }
symlink = "0.1.0" symlink = "0.1.0"
tar = "0.4.26" tar = "0.4.26"
thiserror = "1.0" thiserror = "1.0"
@@ -57,7 +57,7 @@ features = ["lz4"]
[dev-dependencies] [dev-dependencies]
assert_matches = "1.3.0" assert_matches = "1.3.0"
matches = "0.1.6" matches = "0.1.6"
solana-budget-program = { path = "../programs/budget", version = "1.0.23" } solana-budget-program = { path = "../programs/budget", version = "1.0.24" }
[lib] [lib]
crate-type = ["lib"] crate-type = ["lib"]

View File

@@ -298,47 +298,56 @@ impl Blockstore {
false false
} }
/// Silently deletes all blockstore column families starting at the given slot until the `to` slot /// Silently deletes all blockstore column families in the range [from_slot,to_slot]
/// Dangerous; Use with care: /// Dangerous; Use with care:
/// Does not check for integrity and does not update slot metas that refer to deleted slots /// Does not check for integrity and does not update slot metas that refer to deleted slots
/// Modifies multiple column families simultaneously /// Modifies multiple column families simultaneously
pub fn purge_slots(&self, mut from_slot: Slot, to_slot: Option<Slot>) { pub fn purge_slots_with_delay(
&self,
from_slot: Slot,
to_slot: Slot,
delay_between_purges: Option<Duration>,
) {
// if there's no upper bound, split the purge request into batches of 1000 slots // if there's no upper bound, split the purge request into batches of 1000 slots
const PURGE_BATCH_SIZE: u64 = 1000; const PURGE_BATCH_SIZE: u64 = 1000;
let mut batch_end = to_slot.unwrap_or(from_slot + PURGE_BATCH_SIZE); let mut batch_start = from_slot;
while from_slot < batch_end { while batch_start < to_slot {
match self.run_purge(from_slot, batch_end) { let batch_end = (batch_start + PURGE_BATCH_SIZE).min(to_slot);
Ok(end) => { match self.run_purge(batch_start, batch_end) {
if !self.no_compaction { Ok(_all_columns_purged) => {
if let Err(e) = self.compact_storage(from_slot, batch_end) { batch_start = batch_end;
// This error is not fatal and indicates an internal error
error!(
"Error: {:?}; Couldn't compact storage from {:?} to {:?}",
e, from_slot, batch_end
);
}
}
if end { if let Some(ref duration) = delay_between_purges {
break; // Cooperate with other blockstore users
} else { std::thread::sleep(*duration);
// update the next batch bounds
from_slot = batch_end;
batch_end = to_slot.unwrap_or(batch_end + PURGE_BATCH_SIZE);
} }
} }
Err(e) => { Err(e) => {
error!( error!(
"Error: {:?}; Purge failed in range {:?} to {:?}", "Error: {:?}; Purge failed in range {:?} to {:?}",
e, from_slot, batch_end e, batch_start, batch_end
); );
break; break;
} }
} }
} }
if !self.no_compaction {
if let Err(e) = self.compact_storage(from_slot, to_slot) {
// This error is not fatal and indicates an internal error
error!(
"Error: {:?}; Couldn't compact storage from {:?} to {:?}",
e, from_slot, to_slot
);
}
}
} }
// Returns whether or not all columns have been purged until their end pub fn purge_slots(&self, from_slot: Slot, to_slot: Slot) {
self.purge_slots_with_delay(from_slot, to_slot, None)
}
// Returns whether or not all columns successfully purged the slot range
fn run_purge(&self, from_slot: Slot, to_slot: Slot) -> Result<bool> { fn run_purge(&self, from_slot: Slot, to_slot: Slot) -> Result<bool> {
let mut write_batch = self let mut write_batch = self
.db .db
@@ -346,6 +355,8 @@ impl Blockstore {
.expect("Database Error: Failed to get write batch"); .expect("Database Error: Failed to get write batch");
// delete range cf is not inclusive // delete range cf is not inclusive
let to_slot = to_slot.checked_add(1).unwrap_or_else(|| std::u64::MAX); let to_slot = to_slot.checked_add(1).unwrap_or_else(|| std::u64::MAX);
let mut delete_range_timer = Measure::start("delete_range");
let mut columns_empty = self let mut columns_empty = self
.db .db
.delete_range_cf::<cf::SlotMeta>(&mut write_batch, from_slot, to_slot) .delete_range_cf::<cf::SlotMeta>(&mut write_batch, from_slot, to_slot)
@@ -402,6 +413,7 @@ impl Blockstore {
.delete_range_cf::<cf::AddressSignatures>(&mut write_batch, index, index + 1) .delete_range_cf::<cf::AddressSignatures>(&mut write_batch, index, index + 1)
.unwrap_or(false); .unwrap_or(false);
} }
delete_range_timer.stop();
let mut write_timer = Measure::start("write_batch"); let mut write_timer = Measure::start("write_batch");
if let Err(e) = self.db.write(write_batch) { if let Err(e) = self.db.write(write_batch) {
error!( error!(
@@ -413,12 +425,17 @@ impl Blockstore {
write_timer.stop(); write_timer.stop();
datapoint_info!( datapoint_info!(
"blockstore-purge", "blockstore-purge",
("from_slot", from_slot as i64, i64),
("to_slot", to_slot as i64, i64),
("delete_range_us", delete_range_timer.as_us() as i64, i64),
("write_batch_us", write_timer.as_us() as i64, i64) ("write_batch_us", write_timer.as_us() as i64, i64)
); );
Ok(columns_empty) Ok(columns_empty)
} }
pub fn compact_storage(&self, from_slot: Slot, to_slot: Slot) -> Result<bool> { pub fn compact_storage(&self, from_slot: Slot, to_slot: Slot) -> Result<bool> {
info!("compact_storage: from {} to {}", from_slot, to_slot);
let mut compact_timer = Measure::start("compact_range");
let result = self let result = self
.meta_cf .meta_cf
.compact_range(from_slot, to_slot) .compact_range(from_slot, to_slot)
@@ -472,6 +489,14 @@ impl Blockstore {
.rewards_cf .rewards_cf
.compact_range(from_slot, to_slot) .compact_range(from_slot, to_slot)
.unwrap_or(false); .unwrap_or(false);
compact_timer.stop();
if !result {
info!("compact_storage incomplete");
}
datapoint_info!(
"blockstore-compact",
("compact_range_us", compact_timer.as_us() as i64, i64),
);
Ok(result) Ok(result)
} }
@@ -2108,39 +2133,6 @@ impl Blockstore {
Ok(orphans_iter.map(|(slot, _)| slot)) Ok(orphans_iter.map(|(slot, _)| slot))
} }
/// Prune blockstore such that slots higher than `target_slot` are deleted and all references to
/// higher slots are removed
pub fn prune(&self, target_slot: Slot) {
let mut meta = self
.meta(target_slot)
.expect("couldn't read slot meta")
.expect("no meta for target slot");
meta.next_slots.clear();
self.put_meta_bytes(
target_slot,
&bincode::serialize(&meta).expect("couldn't get meta bytes"),
)
.expect("unable to update meta for target slot");
self.purge_slots(target_slot + 1, None);
// fixup anything that refers to non-root slots and delete the rest
for (slot, mut meta) in self
.slot_meta_iterator(0)
.expect("unable to iterate over meta")
{
if slot > target_slot {
break;
}
meta.next_slots.retain(|slot| *slot <= target_slot);
self.put_meta_bytes(
slot,
&bincode::serialize(&meta).expect("couldn't update meta"),
)
.expect("couldn't update meta");
}
}
pub fn last_root(&self) -> Slot { pub fn last_root(&self) -> Slot {
*self.last_root.read().unwrap() *self.last_root.read().unwrap()
} }
@@ -4782,42 +4774,6 @@ pub mod tests {
Blockstore::destroy(&blockstore_path).expect("Expected successful database destruction"); Blockstore::destroy(&blockstore_path).expect("Expected successful database destruction");
} }
#[test]
fn test_prune() {
let blockstore_path = get_tmp_ledger_path!();
let blockstore = Blockstore::open(&blockstore_path).unwrap();
let (shreds, _) = make_many_slot_entries(0, 50, 6);
let shreds_per_slot = shreds.len() as u64 / 50;
blockstore.insert_shreds(shreds, None, false).unwrap();
blockstore
.slot_meta_iterator(0)
.unwrap()
.for_each(|(_, meta)| assert_eq!(meta.last_index, shreds_per_slot - 1));
blockstore.prune(5);
blockstore
.slot_meta_iterator(0)
.unwrap()
.for_each(|(slot, meta)| {
assert!(slot <= 5);
assert_eq!(meta.last_index, shreds_per_slot - 1)
});
let data_iter = blockstore
.data_shred_cf
.iter(IteratorMode::From((0, 0), IteratorDirection::Forward))
.unwrap();
for ((slot, _), _) in data_iter {
if slot > 5 {
assert!(false);
}
}
drop(blockstore);
Blockstore::destroy(&blockstore_path).expect("Expected successful database destruction");
}
#[test] #[test]
fn test_purge_slots() { fn test_purge_slots() {
let blockstore_path = get_tmp_ledger_path!(); let blockstore_path = get_tmp_ledger_path!();
@@ -4825,11 +4781,11 @@ pub mod tests {
let (shreds, _) = make_many_slot_entries(0, 50, 5); let (shreds, _) = make_many_slot_entries(0, 50, 5);
blockstore.insert_shreds(shreds, None, false).unwrap(); blockstore.insert_shreds(shreds, None, false).unwrap();
blockstore.purge_slots(0, Some(5)); blockstore.purge_slots(0, 5);
test_all_empty_or_min(&blockstore, 6); test_all_empty_or_min(&blockstore, 6);
blockstore.purge_slots(0, None); blockstore.purge_slots(0, 50);
// min slot shouldn't matter, blockstore should be empty // min slot shouldn't matter, blockstore should be empty
test_all_empty_or_min(&blockstore, 100); test_all_empty_or_min(&blockstore, 100);
@@ -4853,7 +4809,7 @@ pub mod tests {
let (shreds, _) = make_many_slot_entries(0, 5000, 10); let (shreds, _) = make_many_slot_entries(0, 5000, 10);
blockstore.insert_shreds(shreds, None, false).unwrap(); blockstore.insert_shreds(shreds, None, false).unwrap();
blockstore.purge_slots(0, Some(4999)); blockstore.purge_slots(0, 4999);
test_all_empty_or_min(&blockstore, 5000); test_all_empty_or_min(&blockstore, 5000);
@@ -4861,19 +4817,6 @@ pub mod tests {
Blockstore::destroy(&blockstore_path).expect("Expected successful database destruction"); Blockstore::destroy(&blockstore_path).expect("Expected successful database destruction");
} }
#[should_panic]
#[test]
fn test_prune_out_of_bounds() {
let blockstore_path = get_tmp_ledger_path!();
let blockstore = Blockstore::open(&blockstore_path).unwrap();
// slot 5 does not exist, prune should panic
blockstore.prune(5);
drop(blockstore);
Blockstore::destroy(&blockstore_path).expect("Expected successful database destruction");
}
#[test] #[test]
fn test_iter_bounds() { fn test_iter_bounds() {
let blockstore_path = get_tmp_ledger_path!(); let blockstore_path = get_tmp_ledger_path!();
@@ -6374,14 +6317,14 @@ pub mod tests {
.insert_shreds(all_shreds, Some(&leader_schedule_cache), false) .insert_shreds(all_shreds, Some(&leader_schedule_cache), false)
.unwrap(); .unwrap();
verify_index_integrity(&blockstore, slot); verify_index_integrity(&blockstore, slot);
blockstore.purge_slots(0, Some(slot)); blockstore.purge_slots(0, slot);
// Test inserting just the codes, enough for recovery // Test inserting just the codes, enough for recovery
blockstore blockstore
.insert_shreds(coding_shreds.clone(), Some(&leader_schedule_cache), false) .insert_shreds(coding_shreds.clone(), Some(&leader_schedule_cache), false)
.unwrap(); .unwrap();
verify_index_integrity(&blockstore, slot); verify_index_integrity(&blockstore, slot);
blockstore.purge_slots(0, Some(slot)); blockstore.purge_slots(0, slot);
// Test inserting some codes, but not enough for recovery // Test inserting some codes, but not enough for recovery
blockstore blockstore
@@ -6392,7 +6335,7 @@ pub mod tests {
) )
.unwrap(); .unwrap();
verify_index_integrity(&blockstore, slot); verify_index_integrity(&blockstore, slot);
blockstore.purge_slots(0, Some(slot)); blockstore.purge_slots(0, slot);
// Test inserting just the codes, and some data, enough for recovery // Test inserting just the codes, and some data, enough for recovery
let shreds: Vec<_> = data_shreds[..data_shreds.len() - 1] let shreds: Vec<_> = data_shreds[..data_shreds.len() - 1]
@@ -6404,7 +6347,7 @@ pub mod tests {
.insert_shreds(shreds, Some(&leader_schedule_cache), false) .insert_shreds(shreds, Some(&leader_schedule_cache), false)
.unwrap(); .unwrap();
verify_index_integrity(&blockstore, slot); verify_index_integrity(&blockstore, slot);
blockstore.purge_slots(0, Some(slot)); blockstore.purge_slots(0, slot);
// Test inserting some codes, and some data, but enough for recovery // Test inserting some codes, and some data, but enough for recovery
let shreds: Vec<_> = data_shreds[..data_shreds.len() / 2 - 1] let shreds: Vec<_> = data_shreds[..data_shreds.len() / 2 - 1]
@@ -6416,7 +6359,7 @@ pub mod tests {
.insert_shreds(shreds, Some(&leader_schedule_cache), false) .insert_shreds(shreds, Some(&leader_schedule_cache), false)
.unwrap(); .unwrap();
verify_index_integrity(&blockstore, slot); verify_index_integrity(&blockstore, slot);
blockstore.purge_slots(0, Some(slot)); blockstore.purge_slots(0, slot);
// Test inserting all shreds in 2 rounds, make sure nothing is lost // Test inserting all shreds in 2 rounds, make sure nothing is lost
let shreds1: Vec<_> = data_shreds[..data_shreds.len() / 2 - 1] let shreds1: Vec<_> = data_shreds[..data_shreds.len() / 2 - 1]
@@ -6436,7 +6379,7 @@ pub mod tests {
.insert_shreds(shreds2, Some(&leader_schedule_cache), false) .insert_shreds(shreds2, Some(&leader_schedule_cache), false)
.unwrap(); .unwrap();
verify_index_integrity(&blockstore, slot); verify_index_integrity(&blockstore, slot);
blockstore.purge_slots(0, Some(slot)); blockstore.purge_slots(0, slot);
// Test not all, but enough data and coding shreds in 2 rounds to trigger recovery, // Test not all, but enough data and coding shreds in 2 rounds to trigger recovery,
// make sure nothing is lost // make sure nothing is lost
@@ -6461,7 +6404,7 @@ pub mod tests {
.insert_shreds(shreds2, Some(&leader_schedule_cache), false) .insert_shreds(shreds2, Some(&leader_schedule_cache), false)
.unwrap(); .unwrap();
verify_index_integrity(&blockstore, slot); verify_index_integrity(&blockstore, slot);
blockstore.purge_slots(0, Some(slot)); blockstore.purge_slots(0, slot);
// Test insert shreds in 2 rounds, but not enough to trigger // Test insert shreds in 2 rounds, but not enough to trigger
// recovery, make sure nothing is lost // recovery, make sure nothing is lost
@@ -6486,7 +6429,7 @@ pub mod tests {
.insert_shreds(shreds2, Some(&leader_schedule_cache), false) .insert_shreds(shreds2, Some(&leader_schedule_cache), false)
.unwrap(); .unwrap();
verify_index_integrity(&blockstore, slot); verify_index_integrity(&blockstore, slot);
blockstore.purge_slots(0, Some(slot)); blockstore.purge_slots(0, slot);
} }
Blockstore::destroy(&blockstore_path).expect("Expected successful database destruction"); Blockstore::destroy(&blockstore_path).expect("Expected successful database destruction");
} }

View File

@@ -15,7 +15,7 @@ fn test_multiple_threads_insert_shred() {
for _ in 0..100 { for _ in 0..100 {
let num_threads = 10; let num_threads = 10;
// Create `num_threads` different ticks in slots 1..num_therads + 1, all // Create `num_threads` different ticks in slots 1..num_threads + 1, all
// with parent = slot 0 // with parent = slot 0
let threads: Vec<_> = (0..num_threads) let threads: Vec<_> = (0..num_threads)
.map(|i| { .map(|i| {
@@ -42,7 +42,7 @@ fn test_multiple_threads_insert_shred() {
assert_eq!(meta0.next_slots, expected_next_slots); assert_eq!(meta0.next_slots, expected_next_slots);
// Delete slots for next iteration // Delete slots for next iteration
blockstore.purge_slots(0, None); blockstore.purge_slots(0, num_threads + 1);
} }
// Cleanup // Cleanup

View File

@@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.com>"]
edition = "2018" edition = "2018"
name = "solana-local-cluster" name = "solana-local-cluster"
description = "Blockchain, Rebuilt for Scale" description = "Blockchain, Rebuilt for Scale"
version = "1.0.23" version = "1.0.24"
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0" license = "Apache-2.0"
homepage = "https://solana.com/" homepage = "https://solana.com/"
@@ -12,23 +12,23 @@ homepage = "https://solana.com/"
itertools = "0.8.1" itertools = "0.8.1"
log = "0.4.8" log = "0.4.8"
rand = "0.7.0" rand = "0.7.0"
solana-archiver-lib = { path = "../archiver-lib", version = "1.0.23" } solana-archiver-lib = { path = "../archiver-lib", version = "1.0.24" }
solana-config-program = { path = "../programs/config", version = "1.0.23" } solana-config-program = { path = "../programs/config", version = "1.0.24" }
solana-core = { path = "../core", version = "1.0.23" } solana-core = { path = "../core", version = "1.0.24" }
solana-client = { path = "../client", version = "1.0.23" } solana-client = { path = "../client", version = "1.0.24" }
solana-faucet = { path = "../faucet", version = "1.0.23" } solana-faucet = { path = "../faucet", version = "1.0.24" }
solana-exchange-program = { path = "../programs/exchange", version = "1.0.23" } solana-exchange-program = { path = "../programs/exchange", version = "1.0.24" }
solana-genesis-programs = { path = "../genesis-programs", version = "1.0.23" } solana-genesis-programs = { path = "../genesis-programs", version = "1.0.24" }
solana-ledger = { path = "../ledger", version = "1.0.23" } solana-ledger = { path = "../ledger", version = "1.0.24" }
solana-logger = { path = "../logger", version = "1.0.23" } solana-logger = { path = "../logger", version = "1.0.24" }
solana-runtime = { path = "../runtime", version = "1.0.23" } solana-runtime = { path = "../runtime", version = "1.0.24" }
solana-sdk = { path = "../sdk", version = "1.0.23" } solana-sdk = { path = "../sdk", version = "1.0.24" }
solana-stake-program = { path = "../programs/stake", version = "1.0.23" } solana-stake-program = { path = "../programs/stake", version = "1.0.24" }
solana-storage-program = { path = "../programs/storage", version = "1.0.23" } solana-storage-program = { path = "../programs/storage", version = "1.0.24" }
solana-vest-program = { path = "../programs/vest", version = "1.0.23" } solana-vest-program = { path = "../programs/vest", version = "1.0.24" }
solana-vote-program = { path = "../programs/vote", version = "1.0.23" } solana-vote-program = { path = "../programs/vote", version = "1.0.24" }
tempfile = "3.1.0" tempfile = "3.1.0"
solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "1.0.23" } solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "1.0.24" }
[dev-dependencies] [dev-dependencies]
assert_matches = "1.3.0" assert_matches = "1.3.0"

View File

@@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.com>"]
edition = "2018" edition = "2018"
name = "solana-log-analyzer" name = "solana-log-analyzer"
description = "The solana cluster network analysis tool" description = "The solana cluster network analysis tool"
version = "1.0.23" version = "1.0.24"
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0" license = "Apache-2.0"
homepage = "https://solana.com/" homepage = "https://solana.com/"
@@ -14,8 +14,8 @@ byte-unit = "3.0.3"
clap = "2.33.0" clap = "2.33.0"
serde = "1.0.104" serde = "1.0.104"
serde_json = "1.0.46" serde_json = "1.0.46"
solana-clap-utils = { path = "../clap-utils", version = "1.0.23" } solana-clap-utils = { path = "../clap-utils", version = "1.0.24" }
solana-logger = { path = "../logger", version = "1.0.23" } solana-logger = { path = "../logger", version = "1.0.24" }
[[bin]] [[bin]]
name = "solana-log-analyzer" name = "solana-log-analyzer"

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "solana-logger" name = "solana-logger"
version = "1.0.23" version = "1.0.24"
description = "Solana Logger" description = "Solana Logger"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"

View File

@@ -1,7 +1,7 @@
[package] [package]
name = "solana-measure" name = "solana-measure"
description = "Blockchain, Rebuilt for Scale" description = "Blockchain, Rebuilt for Scale"
version = "1.0.23" version = "1.0.24"
documentation = "https://docs.rs/solana" documentation = "https://docs.rs/solana"
homepage = "https://solana.com/" homepage = "https://solana.com/"
readme = "../README.md" readme = "../README.md"
@@ -12,8 +12,8 @@ edition = "2018"
[dependencies] [dependencies]
log = "0.4.8" log = "0.4.8"
solana-sdk = { path = "../sdk", version = "1.0.23" } solana-sdk = { path = "../sdk", version = "1.0.24" }
solana-metrics = { path = "../metrics", version = "1.0.23" } solana-metrics = { path = "../metrics", version = "1.0.24" }
[target."cfg(unix)".dependencies] [target."cfg(unix)".dependencies]
jemallocator = "0.3.2" jemallocator = "0.3.2"

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "solana-merkle-tree" name = "solana-merkle-tree"
version = "1.0.23" version = "1.0.24"
description = "Solana Merkle Tree" description = "Solana Merkle Tree"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -9,7 +9,7 @@ homepage = "https://solana.com/"
edition = "2018" edition = "2018"
[dependencies] [dependencies]
solana-sdk = { path = "../sdk", version = "1.0.23" } solana-sdk = { path = "../sdk", version = "1.0.24" }
[dev-dependencies] [dev-dependencies]
hex = "0.4.0" hex = "0.4.0"

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "solana-metrics" name = "solana-metrics"
version = "1.0.23" version = "1.0.24"
description = "Solana Metrics" description = "Solana Metrics"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -14,7 +14,7 @@ gethostname = "0.2.1"
lazy_static = "1.4.0" lazy_static = "1.4.0"
log = "0.4.8" log = "0.4.8"
reqwest = { version = "0.10.1", default-features = false, features = ["blocking", "rustls-tls"] } reqwest = { version = "0.10.1", default-features = false, features = ["blocking", "rustls-tls"] }
solana-sdk = { path = "../sdk", version = "1.0.23" } solana-sdk = { path = "../sdk", version = "1.0.24" }
[dev-dependencies] [dev-dependencies]
rand = "0.7.0" rand = "0.7.0"

View File

@@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.com>"]
edition = "2018" edition = "2018"
name = "solana-net-shaper" name = "solana-net-shaper"
description = "The solana cluster network shaping tool" description = "The solana cluster network shaping tool"
version = "1.0.23" version = "1.0.24"
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0" license = "Apache-2.0"
homepage = "https://solana.com/" homepage = "https://solana.com/"
@@ -13,8 +13,8 @@ publish = false
clap = "2.33.0" clap = "2.33.0"
serde = "1.0.104" serde = "1.0.104"
serde_json = "1.0.46" serde_json = "1.0.46"
solana-clap-utils = { path = "../clap-utils", version = "1.0.23" } solana-clap-utils = { path = "../clap-utils", version = "1.0.24" }
solana-logger = { path = "../logger", version = "1.0.23" } solana-logger = { path = "../logger", version = "1.0.24" }
rand = "0.7.0" rand = "0.7.0"
[[bin]] [[bin]]

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "solana-net-utils" name = "solana-net-utils"
version = "1.0.23" version = "1.0.24"
description = "Solana Network Utilities" description = "Solana Network Utilities"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -18,8 +18,8 @@ rand = "0.7.0"
serde = "1.0.104" serde = "1.0.104"
serde_derive = "1.0.103" serde_derive = "1.0.103"
socket2 = "0.3.11" socket2 = "0.3.11"
solana-clap-utils = { path = "../clap-utils", version = "1.0.23" } solana-clap-utils = { path = "../clap-utils", version = "1.0.24" }
solana-logger = { path = "../logger", version = "1.0.23" } solana-logger = { path = "../logger", version = "1.0.24" }
tokio = "0.1" tokio = "0.1"
tokio-codec = "0.1" tokio-codec = "0.1"

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "solana-perf" name = "solana-perf"
version = "1.0.23" version = "1.0.24"
description = "Solana Performance APIs" description = "Solana Performance APIs"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -17,11 +17,11 @@ serde = "1.0.104"
dlopen_derive = "0.1.4" dlopen_derive = "0.1.4"
lazy_static = "1.4.0" lazy_static = "1.4.0"
log = "0.4.8" log = "0.4.8"
solana-sdk = { path = "../sdk", version = "1.0.23" } solana-sdk = { path = "../sdk", version = "1.0.24" }
solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "1.0.23" } solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "1.0.24" }
solana-budget-program = { path = "../programs/budget", version = "1.0.23" } solana-budget-program = { path = "../programs/budget", version = "1.0.24" }
solana-logger = { path = "../logger", version = "1.0.23" } solana-logger = { path = "../logger", version = "1.0.24" }
solana-metrics = { path = "../metrics", version = "1.0.23" } solana-metrics = { path = "../metrics", version = "1.0.24" }
[lib] [lib]
name = "solana_perf" name = "solana_perf"

View File

@@ -1,7 +1,7 @@
[package] [package]
name = "solana-bpf-programs" name = "solana-bpf-programs"
description = "Blockchain, Rebuilt for Scale" description = "Blockchain, Rebuilt for Scale"
version = "1.0.23" version = "1.0.24"
documentation = "https://docs.rs/solana" documentation = "https://docs.rs/solana"
homepage = "https://solana.com/" homepage = "https://solana.com/"
readme = "README.md" readme = "README.md"
@@ -22,10 +22,10 @@ walkdir = "2"
bincode = "1.1.4" bincode = "1.1.4"
byteorder = "1.3.2" byteorder = "1.3.2"
elf = "0.0.10" elf = "0.0.10"
solana-bpf-loader-program = { path = "../bpf_loader", version = "1.0.23" } solana-bpf-loader-program = { path = "../bpf_loader", version = "1.0.24" }
solana-logger = { path = "../../logger", version = "1.0.23" } solana-logger = { path = "../../logger", version = "1.0.24" }
solana-runtime = { path = "../../runtime", version = "1.0.23" } solana-runtime = { path = "../../runtime", version = "1.0.24" }
solana-sdk = { path = "../../sdk", version = "1.0.23" } solana-sdk = { path = "../../sdk", version = "1.0.24" }
solana_rbpf = "=0.1.21" solana_rbpf = "=0.1.21"
[[bench]] [[bench]]

View File

@@ -3,7 +3,7 @@
[package] [package]
name = "solana-bpf-rust-128bit" name = "solana-bpf-rust-128bit"
version = "1.0.23" version = "1.0.24"
description = "Solana BPF test program written in Rust" description = "Solana BPF test program written in Rust"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -12,11 +12,11 @@ homepage = "https://solana.com/"
edition = "2018" edition = "2018"
[dependencies] [dependencies]
solana-sdk = { path = "../../../../sdk/", version = "1.0.23", default-features = false } solana-sdk = { path = "../../../../sdk/", version = "1.0.24", default-features = false }
solana-bpf-rust-128bit-dep = { path = "../128bit_dep", version = "1.0.23" } solana-bpf-rust-128bit-dep = { path = "../128bit_dep", version = "1.0.24" }
[dev_dependencies] [dev_dependencies]
solana-sdk-bpf-test = { path = "../../../../sdk/bpf/rust/test", version = "1.0.23" } solana-sdk-bpf-test = { path = "../../../../sdk/bpf/rust/test", version = "1.0.24" }
[features] [features]
program = ["solana-sdk/program"] program = ["solana-sdk/program"]

View File

@@ -3,7 +3,7 @@
[package] [package]
name = "solana-bpf-rust-128bit-dep" name = "solana-bpf-rust-128bit-dep"
version = "1.0.23" version = "1.0.24"
description = "Solana BPF test program written in Rust" description = "Solana BPF test program written in Rust"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -12,10 +12,10 @@ homepage = "https://solana.com/"
edition = "2018" edition = "2018"
[dependencies] [dependencies]
solana-sdk = { path = "../../../../sdk/", version = "1.0.23", default-features = false } solana-sdk = { path = "../../../../sdk/", version = "1.0.24", default-features = false }
[dev_dependencies] [dev_dependencies]
solana-sdk-bpf-test = { path = "../../../../sdk/bpf/rust/test", version = "1.0.23" } solana-sdk-bpf-test = { path = "../../../../sdk/bpf/rust/test", version = "1.0.24" }
[features] [features]
program = ["solana-sdk/program"] program = ["solana-sdk/program"]

View File

@@ -3,7 +3,7 @@
[package] [package]
name = "solana-bpf-rust-alloc" name = "solana-bpf-rust-alloc"
version = "1.0.23" version = "1.0.24"
description = "Solana BPF test program written in Rust" description = "Solana BPF test program written in Rust"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -12,10 +12,10 @@ homepage = "https://solana.com/"
edition = "2018" edition = "2018"
[dependencies] [dependencies]
solana-sdk = { path = "../../../../sdk/", version = "1.0.23", default-features = false } solana-sdk = { path = "../../../../sdk/", version = "1.0.24", default-features = false }
[dev_dependencies] [dev_dependencies]
solana-sdk-bpf-test = { path = "../../../../sdk/bpf/rust/test", version = "1.0.23" } solana-sdk-bpf-test = { path = "../../../../sdk/bpf/rust/test", version = "1.0.24" }
[features] [features]
program = ["solana-sdk/program"] program = ["solana-sdk/program"]

View File

@@ -3,7 +3,7 @@
[package] [package]
name = "solana-bpf-rust-dep-crate" name = "solana-bpf-rust-dep-crate"
version = "1.0.23" version = "1.0.24"
description = "Solana BPF test program written in Rust" description = "Solana BPF test program written in Rust"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -13,10 +13,10 @@ edition = "2018"
[dependencies] [dependencies]
byteorder = { version = "1", default-features = false } byteorder = { version = "1", default-features = false }
solana-sdk = { path = "../../../../sdk/", version = "1.0.23", default-features = false } solana-sdk = { path = "../../../../sdk/", version = "1.0.24", default-features = false }
[dev_dependencies] [dev_dependencies]
solana-sdk-bpf-test = { path = "../../../../sdk/bpf/rust/test", version = "1.0.23" } solana-sdk-bpf-test = { path = "../../../../sdk/bpf/rust/test", version = "1.0.24" }
[features] [features]
program = ["solana-sdk/program"] program = ["solana-sdk/program"]

View File

@@ -3,7 +3,7 @@
[package] [package]
name = "solana-bpf-rust-dup-accounts" name = "solana-bpf-rust-dup-accounts"
version = "1.0.23" version = "1.0.24"
description = "Solana BPF test program written in Rust" description = "Solana BPF test program written in Rust"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -12,10 +12,10 @@ homepage = "https://solana.com/"
edition = "2018" edition = "2018"
[dependencies] [dependencies]
solana-sdk = { path = "../../../../sdk/", version = "1.0.23", default-features = false } solana-sdk = { path = "../../../../sdk/", version = "1.0.24", default-features = false }
[dev_dependencies] [dev_dependencies]
solana-sdk-bpf-test = { path = "../../../../sdk/bpf/rust/test", version = "1.0.23" } solana-sdk-bpf-test = { path = "../../../../sdk/bpf/rust/test", version = "1.0.24" }
[features] [features]
program = ["solana-sdk/program"] program = ["solana-sdk/program"]

View File

@@ -3,7 +3,7 @@
[package] [package]
name = "solana-bpf-rust-error-handling" name = "solana-bpf-rust-error-handling"
version = "1.0.23" version = "1.0.24"
description = "Solana BPF test program written in Rust" description = "Solana BPF test program written in Rust"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -14,11 +14,11 @@ edition = "2018"
[dependencies] [dependencies]
num-derive = "0.2" num-derive = "0.2"
num-traits = "0.2" num-traits = "0.2"
solana-sdk = { path = "../../../../sdk/", version = "1.0.23", default-features = false } solana-sdk = { path = "../../../../sdk/", version = "1.0.24", default-features = false }
thiserror = "1.0" thiserror = "1.0"
[dev_dependencies] [dev_dependencies]
solana-sdk-bpf-test = { path = "../../../../sdk/bpf/rust/test", version = "1.0.23" } solana-sdk-bpf-test = { path = "../../../../sdk/bpf/rust/test", version = "1.0.24" }
[features] [features]
program = ["solana-sdk/program"] program = ["solana-sdk/program"]

View File

@@ -3,7 +3,7 @@
[package] [package]
name = "solana-bpf-rust-external-spend" name = "solana-bpf-rust-external-spend"
version = "1.0.23" version = "1.0.24"
description = "Solana BPF test program written in Rust" description = "Solana BPF test program written in Rust"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -12,10 +12,10 @@ homepage = "https://solana.com/"
edition = "2018" edition = "2018"
[dependencies] [dependencies]
solana-sdk = { path = "../../../../sdk/", version = "1.0.23", default-features = false } solana-sdk = { path = "../../../../sdk/", version = "1.0.24", default-features = false }
[dev_dependencies] [dev_dependencies]
solana-sdk-bpf-test = { path = "../../../../sdk/bpf/rust/test", version = "1.0.23" } solana-sdk-bpf-test = { path = "../../../../sdk/bpf/rust/test", version = "1.0.24" }
[features] [features]
program = ["solana-sdk/program"] program = ["solana-sdk/program"]

View File

@@ -3,7 +3,7 @@
[package] [package]
name = "solana-bpf-rust-iter" name = "solana-bpf-rust-iter"
version = "1.0.23" version = "1.0.24"
description = "Solana BPF test program written in Rust" description = "Solana BPF test program written in Rust"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -12,10 +12,10 @@ homepage = "https://solana.com/"
edition = "2018" edition = "2018"
[dependencies] [dependencies]
solana-sdk = { path = "../../../../sdk/", version = "1.0.23", default-features = false } solana-sdk = { path = "../../../../sdk/", version = "1.0.24", default-features = false }
[dev_dependencies] [dev_dependencies]
solana-sdk-bpf-test = { path = "../../../../sdk/bpf/rust/test", version = "1.0.23" } solana-sdk-bpf-test = { path = "../../../../sdk/bpf/rust/test", version = "1.0.24" }
[features] [features]
program = ["solana-sdk/program"] program = ["solana-sdk/program"]

View File

@@ -3,7 +3,7 @@
[package] [package]
name = "solana-bpf-rust-many-args" name = "solana-bpf-rust-many-args"
version = "1.0.23" version = "1.0.24"
description = "Solana BPF test program written in Rust" description = "Solana BPF test program written in Rust"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -12,11 +12,11 @@ homepage = "https://solana.com/"
edition = "2018" edition = "2018"
[dependencies] [dependencies]
solana-sdk = { path = "../../../../sdk/", version = "1.0.23", default-features = false } solana-sdk = { path = "../../../../sdk/", version = "1.0.24", default-features = false }
solana-bpf-rust-many-args-dep = { path = "../many_args_dep", version = "1.0.23" } solana-bpf-rust-many-args-dep = { path = "../many_args_dep", version = "1.0.24" }
[dev_dependencies] [dev_dependencies]
solana-sdk-bpf-test = { path = "../../../../sdk/bpf/rust/test", version = "1.0.23" } solana-sdk-bpf-test = { path = "../../../../sdk/bpf/rust/test", version = "1.0.24" }
[features] [features]
program = ["solana-sdk/program"] program = ["solana-sdk/program"]

View File

@@ -3,7 +3,7 @@
[package] [package]
name = "solana-bpf-rust-many-args-dep" name = "solana-bpf-rust-many-args-dep"
version = "1.0.23" version = "1.0.24"
description = "Solana BPF test program written in Rust" description = "Solana BPF test program written in Rust"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -12,10 +12,10 @@ homepage = "https://solana.com/"
edition = "2018" edition = "2018"
[dependencies] [dependencies]
solana-sdk = { path = "../../../../sdk/", version = "1.0.23", default-features = false } solana-sdk = { path = "../../../../sdk/", version = "1.0.24", default-features = false }
[dev_dependencies] [dev_dependencies]
solana-sdk-bpf-test = { path = "../../../../sdk/bpf/rust/test", version = "1.0.23" } solana-sdk-bpf-test = { path = "../../../../sdk/bpf/rust/test", version = "1.0.24" }
[features] [features]
program = ["solana-sdk/program"] program = ["solana-sdk/program"]

View File

@@ -3,7 +3,7 @@
[package] [package]
name = "solana-bpf-rust-noop" name = "solana-bpf-rust-noop"
version = "1.0.23" version = "1.0.24"
description = "Solana BPF test program written in Rust" description = "Solana BPF test program written in Rust"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -12,10 +12,10 @@ homepage = "https://solana.com/"
edition = "2018" edition = "2018"
[dependencies] [dependencies]
solana-sdk = { path = "../../../../sdk/", version = "1.0.23", default-features = false } solana-sdk = { path = "../../../../sdk/", version = "1.0.24", default-features = false }
[dev_dependencies] [dev_dependencies]
solana-sdk-bpf-test = { path = "../../../../sdk/bpf/rust/test", version = "1.0.23" } solana-sdk-bpf-test = { path = "../../../../sdk/bpf/rust/test", version = "1.0.24" }
[features] [features]
program = ["solana-sdk/program"] program = ["solana-sdk/program"]

View File

@@ -3,7 +3,7 @@
[package] [package]
name = "solana-bpf-rust-panic" name = "solana-bpf-rust-panic"
version = "1.0.23" version = "1.0.24"
description = "Solana BPF test program written in Rust" description = "Solana BPF test program written in Rust"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -12,10 +12,10 @@ homepage = "https://solana.com/"
edition = "2018" edition = "2018"
[dependencies] [dependencies]
solana-sdk = { path = "../../../../sdk/", version = "1.0.23", default-features = false } solana-sdk = { path = "../../../../sdk/", version = "1.0.24", default-features = false }
[dev_dependencies] [dev_dependencies]
solana-sdk-bpf-test = { path = "../../../../sdk/bpf/rust/test", version = "1.0.23" } solana-sdk-bpf-test = { path = "../../../../sdk/bpf/rust/test", version = "1.0.24" }
[features] [features]
program = ["solana-sdk/program"] program = ["solana-sdk/program"]

View File

@@ -3,7 +3,7 @@
[package] [package]
name = "solana-bpf-rust-param-passing" name = "solana-bpf-rust-param-passing"
version = "1.0.23" version = "1.0.24"
description = "Solana BPF test program written in Rust" description = "Solana BPF test program written in Rust"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -12,11 +12,11 @@ homepage = "https://solana.com/"
edition = "2018" edition = "2018"
[dependencies] [dependencies]
solana-sdk = { path = "../../../../sdk/", version = "1.0.23", default-features = false } solana-sdk = { path = "../../../../sdk/", version = "1.0.24", default-features = false }
solana-bpf-rust-param-passing-dep = { path = "../param_passing_dep", version = "1.0.23" } solana-bpf-rust-param-passing-dep = { path = "../param_passing_dep", version = "1.0.24" }
[dev_dependencies] [dev_dependencies]
solana-sdk-bpf-test = { path = "../../../../sdk/bpf/rust/test", version = "1.0.23" } solana-sdk-bpf-test = { path = "../../../../sdk/bpf/rust/test", version = "1.0.24" }
[features] [features]
program = ["solana-sdk/program"] program = ["solana-sdk/program"]

View File

@@ -3,7 +3,7 @@
[package] [package]
name = "solana-bpf-rust-param-passing-dep" name = "solana-bpf-rust-param-passing-dep"
version = "1.0.23" version = "1.0.24"
description = "Solana BPF program written in Rust" description = "Solana BPF program written in Rust"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -12,10 +12,10 @@ homepage = "https://solana.com/"
edition = "2018" edition = "2018"
[dependencies] [dependencies]
solana-sdk = { path = "../../../../sdk/", version = "1.0.23", default-features = false } solana-sdk = { path = "../../../../sdk/", version = "1.0.24", default-features = false }
[dev_dependencies] [dev_dependencies]
solana-sdk-bpf-test = { path = "../../../../sdk/bpf/rust/test", version = "1.0.23" } solana-sdk-bpf-test = { path = "../../../../sdk/bpf/rust/test", version = "1.0.24" }
[features] [features]
program = ["solana-sdk/program"] program = ["solana-sdk/program"]

View File

@@ -3,7 +3,7 @@
[package] [package]
name = "solana-bpf-rust-sysval" name = "solana-bpf-rust-sysval"
version = "1.0.23" version = "1.0.24"
description = "Solana BPF test program written in Rust" description = "Solana BPF test program written in Rust"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -12,10 +12,10 @@ homepage = "https://solana.com/"
edition = "2018" edition = "2018"
[dependencies] [dependencies]
solana-sdk = { path = "../../../../sdk/", version = "1.0.23", default-features = false } solana-sdk = { path = "../../../../sdk/", version = "1.0.24", default-features = false }
[dev_dependencies] [dev_dependencies]
solana-sdk-bpf-test = { path = "../../../../sdk/bpf/rust/test", version = "1.0.23" } solana-sdk-bpf-test = { path = "../../../../sdk/bpf/rust/test", version = "1.0.24" }
[features] [features]
program = ["solana-sdk/program"] program = ["solana-sdk/program"]

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "solana-bpf-loader-program" name = "solana-bpf-loader-program"
version = "1.0.23" version = "1.0.24"
description = "Solana BPF loader" description = "Solana BPF loader"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -15,8 +15,8 @@ libc = "0.2.66"
log = "0.4.8" log = "0.4.8"
num-derive = { version = "0.3" } num-derive = { version = "0.3" }
num-traits = { version = "0.2" } num-traits = { version = "0.2" }
solana-logger = { path = "../../logger", version = "1.0.23" } solana-logger = { path = "../../logger", version = "1.0.24" }
solana-sdk = { path = "../../sdk", version = "1.0.23" } solana-sdk = { path = "../../sdk", version = "1.0.24" }
solana_rbpf = "=0.1.21" solana_rbpf = "=0.1.21"
thiserror = "1.0" thiserror = "1.0"

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "solana-btc-spv-program" name = "solana-btc-spv-program"
version = "1.0.23" version = "1.0.24"
description = "Solana Bitcoin spv parsing program" description = "Solana Bitcoin spv parsing program"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -15,7 +15,7 @@ num-derive = "0.3"
num-traits = "0.2" num-traits = "0.2"
serde = "1.0.104" serde = "1.0.104"
serde_derive = "1.0.103" serde_derive = "1.0.103"
solana-sdk = { path = "../../sdk", version = "1.0.23"} solana-sdk = { path = "../../sdk", version = "1.0.24"}
hex = "0.3.2" hex = "0.3.2"
[lib] [lib]

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "btc_spv_bin" name = "btc_spv_bin"
version = "1.0.23" version = "1.0.24"
description = "Solana Bitcoin spv parsing program" description = "Solana Bitcoin spv parsing program"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "solana-budget-program" name = "solana-budget-program"
version = "1.0.23" version = "1.0.24"
description = "Solana Budget program" description = "Solana Budget program"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -16,11 +16,11 @@ num-derive = "0.3"
num-traits = "0.2" num-traits = "0.2"
serde = "1.0.104" serde = "1.0.104"
serde_derive = "1.0.103" serde_derive = "1.0.103"
solana-sdk = { path = "../../sdk", version = "1.0.23" } solana-sdk = { path = "../../sdk", version = "1.0.24" }
thiserror = "1.0" thiserror = "1.0"
[dev-dependencies] [dev-dependencies]
solana-runtime = { path = "../../runtime", version = "1.0.23" } solana-runtime = { path = "../../runtime", version = "1.0.24" }
[lib] [lib]
crate-type = ["lib", "cdylib"] crate-type = ["lib", "cdylib"]

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "solana-config-program" name = "solana-config-program"
version = "1.0.23" version = "1.0.24"
description = "Solana Config program" description = "Solana Config program"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -14,8 +14,8 @@ chrono = { version = "0.4.10", features = ["serde"] }
log = "0.4.8" log = "0.4.8"
serde = "1.0.104" serde = "1.0.104"
serde_derive = "1.0.103" serde_derive = "1.0.103"
solana-logger = { path = "../../logger", version = "1.0.23" } solana-logger = { path = "../../logger", version = "1.0.24" }
solana-sdk = { path = "../../sdk", version = "1.0.23" } solana-sdk = { path = "../../sdk", version = "1.0.24" }
[lib] [lib]
crate-type = ["lib", "cdylib"] crate-type = ["lib", "cdylib"]

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "solana-exchange-program" name = "solana-exchange-program"
version = "1.0.23" version = "1.0.24"
description = "Solana Exchange program" description = "Solana Exchange program"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -15,13 +15,13 @@ num-derive = { version = "0.3" }
num-traits = { version = "0.2" } num-traits = { version = "0.2" }
serde = "1.0.104" serde = "1.0.104"
serde_derive = "1.0.103" serde_derive = "1.0.103"
solana-logger = { path = "../../logger", version = "1.0.23" } solana-logger = { path = "../../logger", version = "1.0.24" }
solana-metrics = { path = "../../metrics", version = "1.0.23" } solana-metrics = { path = "../../metrics", version = "1.0.24" }
solana-sdk = { path = "../../sdk", version = "1.0.23" } solana-sdk = { path = "../../sdk", version = "1.0.24" }
thiserror = "1.0" thiserror = "1.0"
[dev-dependencies] [dev-dependencies]
solana-runtime = { path = "../../runtime", version = "1.0.23" } solana-runtime = { path = "../../runtime", version = "1.0.24" }
[lib] [lib]
crate-type = ["lib", "cdylib"] crate-type = ["lib", "cdylib"]

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "solana-failure-program" name = "solana-failure-program"
version = "1.0.23" version = "1.0.24"
description = "Solana failure program" description = "Solana failure program"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -9,10 +9,10 @@ homepage = "https://solana.com/"
edition = "2018" edition = "2018"
[dependencies] [dependencies]
solana-sdk = { path = "../../sdk", version = "1.0.23" } solana-sdk = { path = "../../sdk", version = "1.0.24" }
[dev-dependencies] [dev-dependencies]
solana-runtime = { path = "../../runtime", version = "1.0.23" } solana-runtime = { path = "../../runtime", version = "1.0.24" }
[lib] [lib]
crate-type = ["lib", "cdylib"] crate-type = ["lib", "cdylib"]

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "solana-librapay" name = "solana-librapay"
version = "1.0.23" version = "1.0.24"
description = "Solana Libra Payment" description = "Solana Libra Payment"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -11,10 +11,10 @@ edition = "2018"
[dependencies] [dependencies]
bincode = "1.2.0" bincode = "1.2.0"
log = "0.4.8" log = "0.4.8"
solana-logger = { path = "../../logger", version = "1.0.23" } solana-logger = { path = "../../logger", version = "1.0.24" }
solana-move-loader-program = { path = "../move_loader", version = "1.0.23" } solana-move-loader-program = { path = "../move_loader", version = "1.0.24" }
solana-runtime = { path = "../../runtime", version = "1.0.23" } solana-runtime = { path = "../../runtime", version = "1.0.24" }
solana-sdk = { path = "../../sdk", version = "1.0.23" } solana-sdk = { path = "../../sdk", version = "1.0.24" }
types = { version = "0.0.1-sol4", package = "solana_libra_types" } types = { version = "0.0.1-sol4", package = "solana_libra_types" }
[lib] [lib]

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "solana-move-loader-program" name = "solana-move-loader-program"
version = "1.0.23" version = "1.0.24"
description = "Solana Move loader" description = "Solana Move loader"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -16,8 +16,8 @@ serde = "1.0.104"
serde_bytes = "0.11" serde_bytes = "0.11"
serde_derive = "1.0.103" serde_derive = "1.0.103"
serde_json = "1.0.46" serde_json = "1.0.46"
solana-logger = { path = "../../logger", version = "1.0.23" } solana-logger = { path = "../../logger", version = "1.0.24" }
solana-sdk = { path = "../../sdk", version = "1.0.23" } solana-sdk = { path = "../../sdk", version = "1.0.24" }
bytecode_verifier = { version = "0.0.1-sol4", package = "solana_libra_bytecode_verifier" } bytecode_verifier = { version = "0.0.1-sol4", package = "solana_libra_bytecode_verifier" }
canonical_serialization = { version = "0.0.1-sol4", package = "solana_libra_canonical_serialization" } canonical_serialization = { version = "0.0.1-sol4", package = "solana_libra_canonical_serialization" }

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "solana-noop-program" name = "solana-noop-program"
version = "1.0.23" version = "1.0.24"
description = "Solana Noop program" description = "Solana Noop program"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -10,8 +10,8 @@ edition = "2018"
[dependencies] [dependencies]
log = "0.4.8" log = "0.4.8"
solana-logger = { path = "../../logger", version = "1.0.23" } solana-logger = { path = "../../logger", version = "1.0.24" }
solana-sdk = { path = "../../sdk", version = "1.0.23" } solana-sdk = { path = "../../sdk", version = "1.0.24" }
[lib] [lib]
crate-type = ["lib", "cdylib"] crate-type = ["lib", "cdylib"]

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "solana-ownable" name = "solana-ownable"
version = "1.0.23" version = "1.0.24"
description = "ownable program" description = "ownable program"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -10,13 +10,13 @@ edition = "2018"
[dependencies] [dependencies]
bincode = "1.2.1" bincode = "1.2.1"
solana-sdk = { path = "../../sdk", version = "1.0.23" } solana-sdk = { path = "../../sdk", version = "1.0.24" }
num-derive = "0.3" num-derive = "0.3"
num-traits = "0.2" num-traits = "0.2"
thiserror = "1.0" thiserror = "1.0"
[dev-dependencies] [dev-dependencies]
solana-runtime = { path = "../../runtime", version = "1.0.23" } solana-runtime = { path = "../../runtime", version = "1.0.24" }
[lib] [lib]
crate-type = ["lib", "cdylib"] crate-type = ["lib", "cdylib"]

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "solana-stake-program" name = "solana-stake-program"
version = "1.0.23" version = "1.0.24"
description = "Solana Stake program" description = "Solana Stake program"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -15,11 +15,11 @@ num-derive = "0.3"
num-traits = "0.2" num-traits = "0.2"
serde = "1.0.104" serde = "1.0.104"
serde_derive = "1.0.103" serde_derive = "1.0.103"
solana-logger = { path = "../../logger", version = "1.0.23" } solana-logger = { path = "../../logger", version = "1.0.24" }
solana-metrics = { path = "../../metrics", version = "1.0.23" } solana-metrics = { path = "../../metrics", version = "1.0.24" }
solana-sdk = { path = "../../sdk", version = "1.0.23" } solana-sdk = { path = "../../sdk", version = "1.0.24" }
solana-vote-program = { path = "../vote", version = "1.0.23" } solana-vote-program = { path = "../vote", version = "1.0.24" }
solana-config-program = { path = "../config", version = "1.0.23" } solana-config-program = { path = "../config", version = "1.0.24" }
thiserror = "1.0" thiserror = "1.0"
[lib] [lib]

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "solana-storage-program" name = "solana-storage-program"
version = "1.0.23" version = "1.0.24"
description = "Solana Storage program" description = "Solana Storage program"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -16,8 +16,8 @@ num-derive = "0.3"
num-traits = "0.2" num-traits = "0.2"
serde = "1.0.104" serde = "1.0.104"
serde_derive = "1.0.103" serde_derive = "1.0.103"
solana-logger = { path = "../../logger", version = "1.0.23" } solana-logger = { path = "../../logger", version = "1.0.24" }
solana-sdk = { path = "../../sdk", version = "1.0.23" } solana-sdk = { path = "../../sdk", version = "1.0.24" }
[dev-dependencies] [dev-dependencies]
assert_matches = "1.3.0" assert_matches = "1.3.0"

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "solana-vest-program" name = "solana-vest-program"
version = "1.0.23" version = "1.0.24"
description = "Solana Vest program" description = "Solana Vest program"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -15,12 +15,12 @@ num-derive = "0.2"
num-traits = "0.2" num-traits = "0.2"
serde = "1.0.104" serde = "1.0.104"
serde_derive = "1.0.103" serde_derive = "1.0.103"
solana-sdk = { path = "../../sdk", version = "1.0.23" } solana-sdk = { path = "../../sdk", version = "1.0.24" }
solana-config-program = { path = "../config", version = "1.0.23" } solana-config-program = { path = "../config", version = "1.0.24" }
thiserror = "1.0" thiserror = "1.0"
[dev-dependencies] [dev-dependencies]
solana-runtime = { path = "../../runtime", version = "1.0.23" } solana-runtime = { path = "../../runtime", version = "1.0.24" }
[lib] [lib]
crate-type = ["lib"] crate-type = ["lib"]

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "solana-vote-program" name = "solana-vote-program"
version = "1.0.23" version = "1.0.24"
description = "Solana Vote program" description = "Solana Vote program"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -15,9 +15,9 @@ num-derive = "0.3"
num-traits = "0.2" num-traits = "0.2"
serde = "1.0.104" serde = "1.0.104"
serde_derive = "1.0.103" serde_derive = "1.0.103"
solana-logger = { path = "../../logger", version = "1.0.23" } solana-logger = { path = "../../logger", version = "1.0.24" }
solana-metrics = { path = "../../metrics", version = "1.0.23" } solana-metrics = { path = "../../metrics", version = "1.0.24" }
solana-sdk = { path = "../../sdk", version = "1.0.23" } solana-sdk = { path = "../../sdk", version = "1.0.24" }
thiserror = "1.0" thiserror = "1.0"
[lib] [lib]

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "solana-rayon-threadlimit" name = "solana-rayon-threadlimit"
version = "1.0.23" version = "1.0.24"
description = "solana-rayon-threadlimit" description = "solana-rayon-threadlimit"
homepage = "https://solana.com/" homepage = "https://solana.com/"
readme = "../README.md" readme = "../README.md"

View File

@@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.com>"]
edition = "2018" edition = "2018"
name = "solana-remote-wallet" name = "solana-remote-wallet"
description = "Blockchain, Rebuilt for Scale" description = "Blockchain, Rebuilt for Scale"
version = "1.0.23" version = "1.0.24"
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0" license = "Apache-2.0"
homepage = "https://solana.com/" homepage = "https://solana.com/"
@@ -16,7 +16,7 @@ hidapi = { version = "1.1.1", default-features = false }
log = "0.4.8" log = "0.4.8"
parking_lot = "0.10" parking_lot = "0.10"
semver = "0.9" semver = "0.9"
solana-sdk = { path = "../sdk", version = "1.0.23" } solana-sdk = { path = "../sdk", version = "1.0.24" }
thiserror = "1.0" thiserror = "1.0"
url = "2.1.1" url = "2.1.1"

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "solana-runtime" name = "solana-runtime"
version = "1.0.23" version = "1.0.24"
description = "Solana runtime" description = "Solana runtime"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -26,15 +26,15 @@ rand = "0.7.0"
rayon = "1.2.0" rayon = "1.2.0"
serde = { version = "1.0.104", features = ["rc"] } serde = { version = "1.0.104", features = ["rc"] }
serde_derive = "1.0.103" serde_derive = "1.0.103"
solana-bpf-loader-program = { path = "../programs/bpf_loader", version = "1.0.23" } solana-bpf-loader-program = { path = "../programs/bpf_loader", version = "1.0.24" }
solana-logger = { path = "../logger", version = "1.0.23" } solana-logger = { path = "../logger", version = "1.0.24" }
solana-measure = { path = "../measure", version = "1.0.23" } solana-measure = { path = "../measure", version = "1.0.24" }
solana-metrics = { path = "../metrics", version = "1.0.23" } solana-metrics = { path = "../metrics", version = "1.0.24" }
solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "1.0.23" } solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "1.0.24" }
solana-sdk = { path = "../sdk", version = "1.0.23" } solana-sdk = { path = "../sdk", version = "1.0.24" }
solana-stake-program = { path = "../programs/stake", version = "1.0.23" } solana-stake-program = { path = "../programs/stake", version = "1.0.24" }
solana-storage-program = { path = "../programs/storage", version = "1.0.23" } solana-storage-program = { path = "../programs/storage", version = "1.0.24" }
solana-vote-program = { path = "../programs/vote", version = "1.0.23" } solana-vote-program = { path = "../programs/vote", version = "1.0.24" }
tempfile = "3.1.0" tempfile = "3.1.0"
thiserror = "1.0" thiserror = "1.0"
@@ -45,7 +45,7 @@ name = "solana_runtime"
[dev-dependencies] [dev-dependencies]
assert_matches = "1.3.0" assert_matches = "1.3.0"
solana-noop-program = { path = "../programs/noop", version = "1.0.23" } solana-noop-program = { path = "../programs/noop", version = "1.0.24" }
[package.metadata.docs.rs] [package.metadata.docs.rs]
targets = ["x86_64-unknown-linux-gnu"] targets = ["x86_64-unknown-linux-gnu"]

View File

@@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.com>"]
edition = "2018" edition = "2018"
name = "solana-scripts" name = "solana-scripts"
description = "Blockchain, Rebuilt for Scale" description = "Blockchain, Rebuilt for Scale"
version = "1.0.23" version = "1.0.24"
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0" license = "Apache-2.0"
homepage = "https://solana.com/" homepage = "https://solana.com/"

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "solana-sdk-c" name = "solana-sdk-c"
version = "1.0.23" version = "1.0.24"
description = "Solana SDK C" description = "Solana SDK C"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -18,7 +18,7 @@ bs58 = "0.3.0"
libc = "0.2.66" libc = "0.2.66"
rand_chacha = "0.2.2" rand_chacha = "0.2.2"
rand_core = { version = "0.5", default-features = false } rand_core = { version = "0.5", default-features = false }
solana-sdk = { path = "../sdk", version = "1.0.23" } solana-sdk = { path = "../sdk", version = "1.0.24" }
ed25519-dalek = "1.0.0-pre.3" ed25519-dalek = "1.0.0-pre.3"
[build-dependencies] [build-dependencies]

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "solana-sdk" name = "solana-sdk"
version = "1.0.23" version = "1.0.24"
description = "Solana SDK" description = "Solana SDK"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -50,9 +50,9 @@ serde_json = { version = "1.0.46", optional = true }
sha2 = "0.8.1" sha2 = "0.8.1"
thiserror = "1.0" thiserror = "1.0"
ed25519-dalek = { version = "=1.0.0-pre.3", optional = true } ed25519-dalek = { version = "=1.0.0-pre.3", optional = true }
solana-crate-features = { path = "../crate-features", version = "1.0.23", optional = true } solana-crate-features = { path = "../crate-features", version = "1.0.24", optional = true }
solana-logger = { path = "../logger", version = "1.0.23", optional = true } solana-logger = { path = "../logger", version = "1.0.24", optional = true }
solana-sdk-macro = { path = "macro", version = "1.0.23" } solana-sdk-macro = { path = "macro", version = "1.0.24" }
[dev-dependencies] [dev-dependencies]
tiny-bip39 = "0.7.0" tiny-bip39 = "0.7.0"

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "solana-sdk-bpf-test" name = "solana-sdk-bpf-test"
version = "1.0.23" version = "1.0.24"
description = "Solana BPF SDK test utilities" description = "Solana BPF SDK test utilities"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "solana-sdk-macro" name = "solana-sdk-macro"
version = "1.0.23" version = "1.0.24"
description = "Solana SDK Macro" description = "Solana SDK Macro"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"

View File

@@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.com>"]
edition = "2018" edition = "2018"
name = "solana-stake-monitor" name = "solana-stake-monitor"
description = "Blockchain, Rebuilt for Scale" description = "Blockchain, Rebuilt for Scale"
version = "1.0.23" version = "1.0.24"
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0" license = "Apache-2.0"
homepage = "https://solana.com/" homepage = "https://solana.com/"
@@ -14,20 +14,20 @@ console = "0.10.0"
log = "0.4.8" log = "0.4.8"
serde = "1.0.105" serde = "1.0.105"
serde_yaml = "0.8.11" serde_yaml = "0.8.11"
solana-clap-utils = { path = "../clap-utils", version = "1.0.23" } solana-clap-utils = { path = "../clap-utils", version = "1.0.24" }
solana-cli-config = { path = "../cli-config", version = "1.0.23" } solana-cli-config = { path = "../cli-config", version = "1.0.24" }
solana-client = { path = "../client", version = "1.0.23" } solana-client = { path = "../client", version = "1.0.24" }
solana-logger = { path = "../logger", version = "1.0.23" } solana-logger = { path = "../logger", version = "1.0.24" }
solana-metrics = { path = "../metrics", version = "1.0.23" } solana-metrics = { path = "../metrics", version = "1.0.24" }
solana-sdk = { path = "../sdk", version = "1.0.23" } solana-sdk = { path = "../sdk", version = "1.0.24" }
solana-stake-program = { path = "../programs/stake", version = "1.0.23" } solana-stake-program = { path = "../programs/stake", version = "1.0.24" }
solana-transaction-status = { path = "../transaction-status", version = "1.0.23" } solana-transaction-status = { path = "../transaction-status", version = "1.0.24" }
[dev-dependencies] [dev-dependencies]
serial_test = "0.4.0" serial_test = "0.4.0"
serial_test_derive = "0.4.0" serial_test_derive = "0.4.0"
solana-local-cluster = { path = "../local-cluster", version = "1.0.23" } solana-local-cluster = { path = "../local-cluster", version = "1.0.24" }
solana-core = { path = "../core", version = "1.0.23" } solana-core = { path = "../core", version = "1.0.24" }
tempfile = "3.1.0" tempfile = "3.1.0"
[[bin]] [[bin]]

View File

@@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.com>"]
edition = "2018" edition = "2018"
name = "solana-sys-tuner" name = "solana-sys-tuner"
description = "The solana cluster system tuner daemon" description = "The solana cluster system tuner daemon"
version = "1.0.23" version = "1.0.24"
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0" license = "Apache-2.0"
homepage = "https://solana.com/" homepage = "https://solana.com/"
@@ -13,8 +13,8 @@ publish = true
clap = "2.33.0" clap = "2.33.0"
log = "0.4.8" log = "0.4.8"
libc = "0.2.66" libc = "0.2.66"
solana-clap-utils = { path = "../clap-utils", version = "1.0.23" } solana-clap-utils = { path = "../clap-utils", version = "1.0.24" }
solana-logger = { path = "../logger", version = "1.0.23" } solana-logger = { path = "../logger", version = "1.0.24" }
[target."cfg(unix)".dependencies] [target."cfg(unix)".dependencies]
unix_socket2 = "0.5.4" unix_socket2 = "0.5.4"

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "solana-transaction-status" name = "solana-transaction-status"
version = "1.0.23" version = "1.0.24"
description = "Solana transaction status types" description = "Solana transaction status types"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -11,7 +11,7 @@ edition = "2018"
[dependencies] [dependencies]
bincode = "1.2.1" bincode = "1.2.1"
bs58 = "0.3.0" bs58 = "0.3.0"
solana-sdk = { path = "../sdk", version = "1.0.23" } solana-sdk = { path = "../sdk", version = "1.0.24" }
serde = "1.0.105" serde = "1.0.105"
serde_derive = "1.0.103" serde_derive = "1.0.103"

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "solana-upload-perf" name = "solana-upload-perf"
version = "1.0.23" version = "1.0.24"
description = "Metrics Upload Utility" description = "Metrics Upload Utility"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -11,7 +11,7 @@ publish = false
[dependencies] [dependencies]
serde_json = "1.0.46" serde_json = "1.0.46"
solana-metrics = { path = "../metrics", version = "1.0.23" } solana-metrics = { path = "../metrics", version = "1.0.24" }
[[bin]] [[bin]]
name = "solana-upload-perf" name = "solana-upload-perf"

View File

@@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.com>"]
edition = "2018" edition = "2018"
name = "solana-validator" name = "solana-validator"
description = "Blockchain, Rebuilt for Scale" description = "Blockchain, Rebuilt for Scale"
version = "1.0.23" version = "1.0.24"
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0" license = "Apache-2.0"
homepage = "https://solana.com/" homepage = "https://solana.com/"
@@ -18,19 +18,19 @@ indicatif = "0.14.0"
rand = "0.7.0" rand = "0.7.0"
reqwest = { version = "0.10.1", default-features = false, features = ["blocking"] } reqwest = { version = "0.10.1", default-features = false, features = ["blocking"] }
serde_json = "1.0.46" serde_json = "1.0.46"
solana-clap-utils = { path = "../clap-utils", version = "1.0.23" } solana-clap-utils = { path = "../clap-utils", version = "1.0.24" }
solana-client = { path = "../client", version = "1.0.23" } solana-client = { path = "../client", version = "1.0.24" }
solana-core = { path = "../core", version = "1.0.23" } solana-core = { path = "../core", version = "1.0.24" }
solana-faucet = { path = "../faucet", version = "1.0.23" } solana-faucet = { path = "../faucet", version = "1.0.24" }
solana-ledger = { path = "../ledger", version = "1.0.23" } solana-ledger = { path = "../ledger", version = "1.0.24" }
solana-logger = { path = "../logger", version = "1.0.23" } solana-logger = { path = "../logger", version = "1.0.24" }
solana-perf = { path = "../perf", version = "1.0.23" } solana-perf = { path = "../perf", version = "1.0.24" }
solana-metrics = { path = "../metrics", version = "1.0.23" } solana-metrics = { path = "../metrics", version = "1.0.24" }
solana-net-utils = { path = "../net-utils", version = "1.0.23" } solana-net-utils = { path = "../net-utils", version = "1.0.24" }
solana-runtime = { path = "../runtime", version = "1.0.23" } solana-runtime = { path = "../runtime", version = "1.0.24" }
solana-sdk = { path = "../sdk", version = "1.0.23" } solana-sdk = { path = "../sdk", version = "1.0.24" }
solana-vote-program = { path = "../programs/vote", version = "1.0.23" } solana-vote-program = { path = "../programs/vote", version = "1.0.24" }
solana-vote-signer = { path = "../vote-signer", version = "1.0.23" } solana-vote-signer = { path = "../vote-signer", version = "1.0.24" }
tar = "0.4.26" tar = "0.4.26"
[target."cfg(unix)".dependencies] [target."cfg(unix)".dependencies]

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "solana-version" name = "solana-version"
version = "1.1.11" version = "1.0.24"
description = "Solana Version" description = "Solana Version"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -11,7 +11,7 @@ edition = "2018"
[dependencies] [dependencies]
serde = "1.0.105" serde = "1.0.105"
serde_derive = "1.0.103" serde_derive = "1.0.103"
solana-sdk = { path = "../sdk", version = "1.0.23" } solana-sdk = { path = "../sdk", version = "1.0.24" }
[lib] [lib]
name = "solana_version" name = "solana_version"

View File

@@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.com>"]
edition = "2018" edition = "2018"
name = "solana-vote-signer" name = "solana-vote-signer"
description = "Solana Vote Signing Service" description = "Solana Vote Signing Service"
version = "1.0.23" version = "1.0.24"
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0" license = "Apache-2.0"
homepage = "https://solana.com/" homepage = "https://solana.com/"
@@ -15,9 +15,9 @@ jsonrpc-derive = "14.0.5"
jsonrpc-http-server = "14.0.6" jsonrpc-http-server = "14.0.6"
log = "0.4.8" log = "0.4.8"
serde_json = "1.0.46" serde_json = "1.0.46"
solana-clap-utils = { path = "../clap-utils", version = "1.0.23" } solana-clap-utils = { path = "../clap-utils", version = "1.0.24" }
solana-metrics = { path = "../metrics", version = "1.0.23" } solana-metrics = { path = "../metrics", version = "1.0.24" }
solana-sdk = { path = "../sdk", version = "1.0.23" } solana-sdk = { path = "../sdk", version = "1.0.24" }
[lib] [lib]
crate-type = ["lib"] crate-type = ["lib"]

View File

@@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.com>"]
edition = "2018" edition = "2018"
name = "solana-watchtower" name = "solana-watchtower"
description = "Blockchain, Rebuilt for Scale" description = "Blockchain, Rebuilt for Scale"
version = "1.0.23" version = "1.0.24"
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0" license = "Apache-2.0"
homepage = "https://solana.com/" homepage = "https://solana.com/"
@@ -14,15 +14,15 @@ log = "0.4.8"
humantime = "2.0.0" humantime = "2.0.0"
reqwest = { version = "0.10.1", default-features = false, features = ["blocking", "json", "rustls-tls"] } reqwest = { version = "0.10.1", default-features = false, features = ["blocking", "json", "rustls-tls"] }
serde_json = "1.0" serde_json = "1.0"
solana-clap-utils = { path = "../clap-utils", version = "1.0.23" } solana-clap-utils = { path = "../clap-utils", version = "1.0.24" }
solana-cli-config = { path = "../cli-config", version = "1.0.23" } solana-cli-config = { path = "../cli-config", version = "1.0.24" }
solana-cli = { path = "../cli", version = "1.0.23" } solana-cli = { path = "../cli", version = "1.0.24" }
solana-client = { path = "../client", version = "1.0.23" } solana-client = { path = "../client", version = "1.0.24" }
solana-logger = { path = "../logger", version = "1.0.23" } solana-logger = { path = "../logger", version = "1.0.24" }
solana-metrics = { path = "../metrics", version = "1.0.23" } solana-metrics = { path = "../metrics", version = "1.0.24" }
solana-sdk = { path = "../sdk", version = "1.0.23" } solana-sdk = { path = "../sdk", version = "1.0.24" }
solana-transaction-status = { path = "../transaction-status", version = "1.0.23" } solana-transaction-status = { path = "../transaction-status", version = "1.0.24" }
solana-vote-program = { path = "../programs/vote", version = "1.0.23" } solana-vote-program = { path = "../programs/vote", version = "1.0.24" }
[[bin]] [[bin]]
name = "solana-watchtower" name = "solana-watchtower"