Compare commits
20 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
7956f04fa5 | ||
|
2825f82bee | ||
|
45e3cd373b | ||
|
2b4b260c71 | ||
|
866fd22fde | ||
|
d23df85410 | ||
|
839cdecfd2 | ||
|
cc6296b1fa | ||
|
0c2a85a903 | ||
|
011fe72aa2 | ||
|
40fc14471d | ||
|
7fc85b8c9b | ||
|
4d77ac1688 | ||
|
77bdb45d4a | ||
|
3539849a7f | ||
|
8c28f9b63e | ||
|
3346843a87 | ||
|
007c49ff2b | ||
|
bbd386884d | ||
|
ba8426e0fd |
561
Cargo.lock
generated
561
Cargo.lock
generated
File diff suppressed because it is too large
Load Diff
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-account-decoder"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
description = "Solana account decoder"
|
||||
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -19,10 +19,10 @@ lazy_static = "1.4.0"
|
||||
serde = "1.0.122"
|
||||
serde_derive = "1.0.103"
|
||||
serde_json = "1.0.56"
|
||||
solana-config-program = { path = "../programs/config", version = "=1.6.19" }
|
||||
solana-sdk = { path = "../sdk", version = "=1.6.19" }
|
||||
solana-stake-program = { path = "../programs/stake", version = "=1.6.19" }
|
||||
solana-vote-program = { path = "../programs/vote", version = "=1.6.19" }
|
||||
solana-config-program = { path = "../programs/config", version = "=1.6.22" }
|
||||
solana-sdk = { path = "../sdk", version = "=1.6.22" }
|
||||
solana-stake-program = { path = "../programs/stake", version = "=1.6.22" }
|
||||
solana-vote-program = { path = "../programs/vote", version = "=1.6.22" }
|
||||
spl-token-v2-0 = { package = "spl-token", version = "=3.1.1", features = ["no-entrypoint"] }
|
||||
thiserror = "1.0"
|
||||
zstd = "0.5.1"
|
||||
|
@@ -2,7 +2,7 @@
|
||||
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
|
||||
edition = "2018"
|
||||
name = "solana-accounts-bench"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
license = "Apache-2.0"
|
||||
homepage = "https://solana.com/"
|
||||
@@ -11,11 +11,11 @@ publish = false
|
||||
[dependencies]
|
||||
log = "0.4.11"
|
||||
rayon = "1.5.0"
|
||||
solana-logger = { path = "../logger", version = "=1.6.19" }
|
||||
solana-runtime = { path = "../runtime", version = "=1.6.19" }
|
||||
solana-measure = { path = "../measure", version = "=1.6.19" }
|
||||
solana-sdk = { path = "../sdk", version = "=1.6.19" }
|
||||
solana-version = { path = "../version", version = "=1.6.19" }
|
||||
solana-logger = { path = "../logger", version = "=1.6.22" }
|
||||
solana-runtime = { path = "../runtime", version = "=1.6.22" }
|
||||
solana-measure = { path = "../measure", version = "=1.6.22" }
|
||||
solana-sdk = { path = "../sdk", version = "=1.6.22" }
|
||||
solana-version = { path = "../version", version = "=1.6.22" }
|
||||
rand = "0.7.0"
|
||||
clap = "2.33.1"
|
||||
crossbeam-channel = "0.4"
|
||||
|
@@ -2,7 +2,7 @@
|
||||
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
|
||||
edition = "2018"
|
||||
name = "solana-accounts-cluster-bench"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
license = "Apache-2.0"
|
||||
homepage = "https://solana.com/"
|
||||
@@ -13,22 +13,22 @@ clap = "2.33.1"
|
||||
log = "0.4.11"
|
||||
rand = "0.7.0"
|
||||
rayon = "1.4.1"
|
||||
solana-account-decoder = { path = "../account-decoder", version = "=1.6.19" }
|
||||
solana-clap-utils = { path = "../clap-utils", version = "=1.6.19" }
|
||||
solana-client = { path = "../client", version = "=1.6.19" }
|
||||
solana-core = { path = "../core", version = "=1.6.19" }
|
||||
solana-measure = { path = "../measure", version = "=1.6.19" }
|
||||
solana-logger = { path = "../logger", version = "=1.6.19" }
|
||||
solana-net-utils = { path = "../net-utils", version = "=1.6.19" }
|
||||
solana-faucet = { path = "../faucet", version = "=1.6.19" }
|
||||
solana-runtime = { path = "../runtime", version = "=1.6.19" }
|
||||
solana-sdk = { path = "../sdk", version = "=1.6.19" }
|
||||
solana-transaction-status = { path = "../transaction-status", version = "=1.6.19" }
|
||||
solana-version = { path = "../version", version = "=1.6.19" }
|
||||
solana-account-decoder = { path = "../account-decoder", version = "=1.6.22" }
|
||||
solana-clap-utils = { path = "../clap-utils", version = "=1.6.22" }
|
||||
solana-client = { path = "../client", version = "=1.6.22" }
|
||||
solana-core = { path = "../core", version = "=1.6.22" }
|
||||
solana-measure = { path = "../measure", version = "=1.6.22" }
|
||||
solana-logger = { path = "../logger", version = "=1.6.22" }
|
||||
solana-net-utils = { path = "../net-utils", version = "=1.6.22" }
|
||||
solana-faucet = { path = "../faucet", version = "=1.6.22" }
|
||||
solana-runtime = { path = "../runtime", version = "=1.6.22" }
|
||||
solana-sdk = { path = "../sdk", version = "=1.6.22" }
|
||||
solana-transaction-status = { path = "../transaction-status", version = "=1.6.22" }
|
||||
solana-version = { path = "../version", version = "=1.6.22" }
|
||||
spl-token-v2-0 = { package = "spl-token", version = "=3.1.1", features = ["no-entrypoint"] }
|
||||
|
||||
[dev-dependencies]
|
||||
solana-local-cluster = { path = "../local-cluster", version = "=1.6.19" }
|
||||
solana-local-cluster = { path = "../local-cluster", version = "=1.6.22" }
|
||||
|
||||
[package.metadata.docs.rs]
|
||||
targets = ["x86_64-unknown-linux-gnu"]
|
||||
|
@@ -2,7 +2,7 @@
|
||||
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
|
||||
edition = "2018"
|
||||
name = "solana-banking-bench"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
license = "Apache-2.0"
|
||||
homepage = "https://solana.com/"
|
||||
@@ -14,16 +14,16 @@ crossbeam-channel = "0.4"
|
||||
log = "0.4.11"
|
||||
rand = "0.7.0"
|
||||
rayon = "1.5.0"
|
||||
solana-core = { path = "../core", version = "=1.6.19" }
|
||||
solana-clap-utils = { path = "../clap-utils", version = "=1.6.19" }
|
||||
solana-streamer = { path = "../streamer", version = "=1.6.19" }
|
||||
solana-perf = { path = "../perf", version = "=1.6.19" }
|
||||
solana-ledger = { path = "../ledger", version = "=1.6.19" }
|
||||
solana-logger = { path = "../logger", version = "=1.6.19" }
|
||||
solana-runtime = { path = "../runtime", version = "=1.6.19" }
|
||||
solana-measure = { path = "../measure", version = "=1.6.19" }
|
||||
solana-sdk = { path = "../sdk", version = "=1.6.19" }
|
||||
solana-version = { path = "../version", version = "=1.6.19" }
|
||||
solana-core = { path = "../core", version = "=1.6.22" }
|
||||
solana-clap-utils = { path = "../clap-utils", version = "=1.6.22" }
|
||||
solana-streamer = { path = "../streamer", version = "=1.6.22" }
|
||||
solana-perf = { path = "../perf", version = "=1.6.22" }
|
||||
solana-ledger = { path = "../ledger", version = "=1.6.22" }
|
||||
solana-logger = { path = "../logger", version = "=1.6.22" }
|
||||
solana-runtime = { path = "../runtime", version = "=1.6.22" }
|
||||
solana-measure = { path = "../measure", version = "=1.6.22" }
|
||||
solana-sdk = { path = "../sdk", version = "=1.6.22" }
|
||||
solana-version = { path = "../version", version = "=1.6.22" }
|
||||
|
||||
[package.metadata.docs.rs]
|
||||
targets = ["x86_64-unknown-linux-gnu"]
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-banks-client"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
description = "Solana banks client"
|
||||
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -15,16 +15,16 @@ borsh = "0.9.0"
|
||||
borsh-derive = "0.9.0"
|
||||
futures = "0.3"
|
||||
mio = "0.7.6"
|
||||
solana-banks-interface = { path = "../banks-interface", version = "=1.6.19" }
|
||||
solana-program = { path = "../sdk/program", version = "=1.6.19" }
|
||||
solana-sdk = { path = "../sdk", version = "=1.6.19" }
|
||||
solana-banks-interface = { path = "../banks-interface", version = "=1.6.22" }
|
||||
solana-program = { path = "../sdk/program", version = "=1.6.22" }
|
||||
solana-sdk = { path = "../sdk", version = "=1.6.22" }
|
||||
tarpc = { version = "0.24.1", features = ["full"] }
|
||||
tokio = { version = "1", features = ["full"] }
|
||||
tokio-serde = { version = "0.8", features = ["bincode"] }
|
||||
|
||||
[dev-dependencies]
|
||||
solana-runtime = { path = "../runtime", version = "=1.6.19" }
|
||||
solana-banks-server = { path = "../banks-server", version = "=1.6.19" }
|
||||
solana-runtime = { path = "../runtime", version = "=1.6.22" }
|
||||
solana-banks-server = { path = "../banks-server", version = "=1.6.22" }
|
||||
|
||||
[lib]
|
||||
crate-type = ["lib"]
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-banks-interface"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
description = "Solana banks RPC interface"
|
||||
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -12,7 +12,7 @@ edition = "2018"
|
||||
[dependencies]
|
||||
mio = "0.7.6"
|
||||
serde = { version = "1.0.122", features = ["derive"] }
|
||||
solana-sdk = { path = "../sdk", version = "=1.6.19" }
|
||||
solana-sdk = { path = "../sdk", version = "=1.6.22" }
|
||||
tarpc = { version = "0.24.1", features = ["full"] }
|
||||
|
||||
[dev-dependencies]
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-banks-server"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
description = "Solana banks server"
|
||||
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -14,10 +14,10 @@ bincode = "1.3.1"
|
||||
futures = "0.3"
|
||||
log = "0.4.11"
|
||||
mio = "0.7.6"
|
||||
solana-banks-interface = { path = "../banks-interface", version = "=1.6.19" }
|
||||
solana-runtime = { path = "../runtime", version = "=1.6.19" }
|
||||
solana-sdk = { path = "../sdk", version = "=1.6.19" }
|
||||
solana-metrics = { path = "../metrics", version = "=1.6.19" }
|
||||
solana-banks-interface = { path = "../banks-interface", version = "=1.6.22" }
|
||||
solana-runtime = { path = "../runtime", version = "=1.6.22" }
|
||||
solana-sdk = { path = "../sdk", version = "=1.6.22" }
|
||||
solana-metrics = { path = "../metrics", version = "=1.6.22" }
|
||||
tarpc = { version = "0.24.1", features = ["full"] }
|
||||
tokio = { version = "1", features = ["full"] }
|
||||
tokio-serde = { version = "0.8", features = ["bincode"] }
|
||||
|
@@ -2,7 +2,7 @@
|
||||
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
|
||||
edition = "2018"
|
||||
name = "solana-bench-exchange"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
license = "Apache-2.0"
|
||||
homepage = "https://solana.com/"
|
||||
@@ -18,21 +18,21 @@ rand = "0.7.0"
|
||||
rayon = "1.5.0"
|
||||
serde_json = "1.0.56"
|
||||
serde_yaml = "0.8.13"
|
||||
solana-clap-utils = { path = "../clap-utils", version = "=1.6.19" }
|
||||
solana-core = { path = "../core", version = "=1.6.19" }
|
||||
solana-genesis = { path = "../genesis", version = "=1.6.19" }
|
||||
solana-client = { path = "../client", version = "=1.6.19" }
|
||||
solana-faucet = { path = "../faucet", version = "=1.6.19" }
|
||||
solana-exchange-program = { path = "../programs/exchange", version = "=1.6.19" }
|
||||
solana-logger = { path = "../logger", version = "=1.6.19" }
|
||||
solana-metrics = { path = "../metrics", version = "=1.6.19" }
|
||||
solana-net-utils = { path = "../net-utils", version = "=1.6.19" }
|
||||
solana-runtime = { path = "../runtime", version = "=1.6.19" }
|
||||
solana-sdk = { path = "../sdk", version = "=1.6.19" }
|
||||
solana-version = { path = "../version", version = "=1.6.19" }
|
||||
solana-clap-utils = { path = "../clap-utils", version = "=1.6.22" }
|
||||
solana-core = { path = "../core", version = "=1.6.22" }
|
||||
solana-genesis = { path = "../genesis", version = "=1.6.22" }
|
||||
solana-client = { path = "../client", version = "=1.6.22" }
|
||||
solana-faucet = { path = "../faucet", version = "=1.6.22" }
|
||||
solana-exchange-program = { path = "../programs/exchange", version = "=1.6.22" }
|
||||
solana-logger = { path = "../logger", version = "=1.6.22" }
|
||||
solana-metrics = { path = "../metrics", version = "=1.6.22" }
|
||||
solana-net-utils = { path = "../net-utils", version = "=1.6.22" }
|
||||
solana-runtime = { path = "../runtime", version = "=1.6.22" }
|
||||
solana-sdk = { path = "../sdk", version = "=1.6.22" }
|
||||
solana-version = { path = "../version", version = "=1.6.22" }
|
||||
|
||||
[dev-dependencies]
|
||||
solana-local-cluster = { path = "../local-cluster", version = "=1.6.19" }
|
||||
solana-local-cluster = { path = "../local-cluster", version = "=1.6.22" }
|
||||
|
||||
[package.metadata.docs.rs]
|
||||
targets = ["x86_64-unknown-linux-gnu"]
|
||||
|
@@ -2,7 +2,7 @@
|
||||
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
|
||||
edition = "2018"
|
||||
name = "solana-bench-streamer"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
license = "Apache-2.0"
|
||||
homepage = "https://solana.com/"
|
||||
@@ -10,11 +10,11 @@ publish = false
|
||||
|
||||
[dependencies]
|
||||
clap = "2.33.1"
|
||||
solana-clap-utils = { path = "../clap-utils", version = "=1.6.19" }
|
||||
solana-streamer = { path = "../streamer", version = "=1.6.19" }
|
||||
solana-logger = { path = "../logger", version = "=1.6.19" }
|
||||
solana-net-utils = { path = "../net-utils", version = "=1.6.19" }
|
||||
solana-version = { path = "../version", version = "=1.6.19" }
|
||||
solana-clap-utils = { path = "../clap-utils", version = "=1.6.22" }
|
||||
solana-streamer = { path = "../streamer", version = "=1.6.22" }
|
||||
solana-logger = { path = "../logger", version = "=1.6.22" }
|
||||
solana-net-utils = { path = "../net-utils", version = "=1.6.22" }
|
||||
solana-version = { path = "../version", version = "=1.6.22" }
|
||||
|
||||
[package.metadata.docs.rs]
|
||||
targets = ["x86_64-unknown-linux-gnu"]
|
||||
|
@@ -2,7 +2,7 @@
|
||||
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
|
||||
edition = "2018"
|
||||
name = "solana-bench-tps"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
license = "Apache-2.0"
|
||||
homepage = "https://solana.com/"
|
||||
@@ -15,22 +15,22 @@ log = "0.4.11"
|
||||
rayon = "1.5.0"
|
||||
serde_json = "1.0.56"
|
||||
serde_yaml = "0.8.13"
|
||||
solana-clap-utils = { path = "../clap-utils", version = "=1.6.19" }
|
||||
solana-core = { path = "../core", version = "=1.6.19" }
|
||||
solana-genesis = { path = "../genesis", version = "=1.6.19" }
|
||||
solana-client = { path = "../client", version = "=1.6.19" }
|
||||
solana-faucet = { path = "../faucet", version = "=1.6.19" }
|
||||
solana-logger = { path = "../logger", version = "=1.6.19" }
|
||||
solana-metrics = { path = "../metrics", version = "=1.6.19" }
|
||||
solana-measure = { path = "../measure", version = "=1.6.19" }
|
||||
solana-net-utils = { path = "../net-utils", version = "=1.6.19" }
|
||||
solana-runtime = { path = "../runtime", version = "=1.6.19" }
|
||||
solana-sdk = { path = "../sdk", version = "=1.6.19" }
|
||||
solana-version = { path = "../version", version = "=1.6.19" }
|
||||
solana-clap-utils = { path = "../clap-utils", version = "=1.6.22" }
|
||||
solana-core = { path = "../core", version = "=1.6.22" }
|
||||
solana-genesis = { path = "../genesis", version = "=1.6.22" }
|
||||
solana-client = { path = "../client", version = "=1.6.22" }
|
||||
solana-faucet = { path = "../faucet", version = "=1.6.22" }
|
||||
solana-logger = { path = "../logger", version = "=1.6.22" }
|
||||
solana-metrics = { path = "../metrics", version = "=1.6.22" }
|
||||
solana-measure = { path = "../measure", version = "=1.6.22" }
|
||||
solana-net-utils = { path = "../net-utils", version = "=1.6.22" }
|
||||
solana-runtime = { path = "../runtime", version = "=1.6.22" }
|
||||
solana-sdk = { path = "../sdk", version = "=1.6.22" }
|
||||
solana-version = { path = "../version", version = "=1.6.22" }
|
||||
|
||||
[dev-dependencies]
|
||||
serial_test = "0.4.0"
|
||||
solana-local-cluster = { path = "../local-cluster", version = "=1.6.19" }
|
||||
solana-local-cluster = { path = "../local-cluster", version = "=1.6.22" }
|
||||
|
||||
[package.metadata.docs.rs]
|
||||
targets = ["x86_64-unknown-linux-gnu"]
|
||||
|
@@ -28,16 +28,29 @@ cargo_audit_ignores=(
|
||||
# Blocked on multiple crates updating `time` to >= 0.2.23
|
||||
--ignore RUSTSEC-2020-0071
|
||||
|
||||
# difference is unmaintained
|
||||
#
|
||||
# Blocked on predicates v1.0.6 removing its dependency on `difference`
|
||||
--ignore RUSTSEC-2020-0095
|
||||
|
||||
# generic-array: arr! macro erases lifetimes
|
||||
#
|
||||
# Blocked on libsecp256k1 releasing with upgraded dependencies
|
||||
# https://github.com/paritytech/libsecp256k1/issues/66
|
||||
--ignore RUSTSEC-2020-0146
|
||||
|
||||
# hyper: Lenient `hyper` header parsing of `Content-Length` could allow request smuggling
|
||||
#
|
||||
# Blocked on jsonrpc removing dependency on unmaintained `websocket`
|
||||
# https://github.com/paritytech/jsonrpc/issues/605
|
||||
--ignore RUSTSEC-2021-0078
|
||||
|
||||
# hyper: Integer overflow in `hyper`'s parsing of the `Transfer-Encoding` header leads to data loss
|
||||
#
|
||||
# Blocked on jsonrpc removing dependency on unmaintained `websocket`
|
||||
# https://github.com/paritytech/jsonrpc/issues/605
|
||||
--ignore RUSTSEC-2021-0079
|
||||
|
||||
# tar: Links in archive can create arbitrary directories
|
||||
#
|
||||
# Blocked on `tar` releasing safe upgrade
|
||||
# https://github.com/alexcrichton/tar-rs/issues/238
|
||||
--ignore RUSTSEC-2021-0080
|
||||
|
||||
)
|
||||
scripts/cargo-for-all-lock-files.sh stable audit "${cargo_audit_ignores[@]}"
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-clap-utils"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
description = "Solana utilities for the clap"
|
||||
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -12,8 +12,8 @@ edition = "2018"
|
||||
[dependencies]
|
||||
clap = "2.33.0"
|
||||
rpassword = "4.0"
|
||||
solana-remote-wallet = { path = "../remote-wallet", version = "=1.6.19" }
|
||||
solana-sdk = { path = "../sdk", version = "=1.6.19" }
|
||||
solana-remote-wallet = { path = "../remote-wallet", version = "=1.6.22" }
|
||||
solana-sdk = { path = "../sdk", version = "=1.6.22" }
|
||||
thiserror = "1.0.21"
|
||||
tiny-bip39 = "0.8.0"
|
||||
uriparse = "0.6.3"
|
||||
|
@@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.foundation>"]
|
||||
edition = "2018"
|
||||
name = "solana-cli-config"
|
||||
description = "Blockchain, Rebuilt for Scale"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
license = "Apache-2.0"
|
||||
homepage = "https://solana.com/"
|
||||
|
@@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.foundation>"]
|
||||
edition = "2018"
|
||||
name = "solana-cli-output"
|
||||
description = "Blockchain, Rebuilt for Scale"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
license = "Apache-2.0"
|
||||
homepage = "https://solana.com/"
|
||||
@@ -19,13 +19,13 @@ indicatif = "0.15.0"
|
||||
serde = "1.0.122"
|
||||
serde_derive = "1.0.103"
|
||||
serde_json = "1.0.56"
|
||||
solana-account-decoder = { path = "../account-decoder", version = "=1.6.19" }
|
||||
solana-clap-utils = { path = "../clap-utils", version = "=1.6.19" }
|
||||
solana-client = { path = "../client", version = "=1.6.19" }
|
||||
solana-sdk = { path = "../sdk", version = "=1.6.19" }
|
||||
solana-stake-program = { path = "../programs/stake", version = "=1.6.19" }
|
||||
solana-transaction-status = { path = "../transaction-status", version = "=1.6.19" }
|
||||
solana-vote-program = { path = "../programs/vote", version = "=1.6.19" }
|
||||
solana-account-decoder = { path = "../account-decoder", version = "=1.6.22" }
|
||||
solana-clap-utils = { path = "../clap-utils", version = "=1.6.22" }
|
||||
solana-client = { path = "../client", version = "=1.6.22" }
|
||||
solana-sdk = { path = "../sdk", version = "=1.6.22" }
|
||||
solana-stake-program = { path = "../programs/stake", version = "=1.6.22" }
|
||||
solana-transaction-status = { path = "../transaction-status", version = "=1.6.22" }
|
||||
solana-vote-program = { path = "../programs/vote", version = "=1.6.22" }
|
||||
spl-memo = { version = "=3.0.1", features = ["no-entrypoint"] }
|
||||
|
||||
[package.metadata.docs.rs]
|
||||
|
@@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.foundation>"]
|
||||
edition = "2018"
|
||||
name = "solana-cli"
|
||||
description = "Blockchain, Rebuilt for Scale"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
license = "Apache-2.0"
|
||||
homepage = "https://solana.com/"
|
||||
@@ -29,30 +29,30 @@ reqwest = { version = "0.11.2", default-features = false, features = ["blocking"
|
||||
serde = "1.0.122"
|
||||
serde_derive = "1.0.103"
|
||||
serde_json = "1.0.56"
|
||||
solana-account-decoder = { path = "../account-decoder", version = "=1.6.19" }
|
||||
solana-bpf-loader-program = { path = "../programs/bpf_loader", version = "=1.6.19" }
|
||||
solana-clap-utils = { path = "../clap-utils", version = "=1.6.19" }
|
||||
solana-cli-config = { path = "../cli-config", version = "=1.6.19" }
|
||||
solana-cli-output = { path = "../cli-output", version = "=1.6.19" }
|
||||
solana-client = { path = "../client", version = "=1.6.19" }
|
||||
solana-config-program = { path = "../programs/config", version = "=1.6.19" }
|
||||
solana-faucet = { path = "../faucet", version = "=1.6.19" }
|
||||
solana-logger = { path = "../logger", version = "=1.6.19" }
|
||||
solana-net-utils = { path = "../net-utils", version = "=1.6.19" }
|
||||
solana-account-decoder = { path = "../account-decoder", version = "=1.6.22" }
|
||||
solana-bpf-loader-program = { path = "../programs/bpf_loader", version = "=1.6.22" }
|
||||
solana-clap-utils = { path = "../clap-utils", version = "=1.6.22" }
|
||||
solana-cli-config = { path = "../cli-config", version = "=1.6.22" }
|
||||
solana-cli-output = { path = "../cli-output", version = "=1.6.22" }
|
||||
solana-client = { path = "../client", version = "=1.6.22" }
|
||||
solana-config-program = { path = "../programs/config", version = "=1.6.22" }
|
||||
solana-faucet = { path = "../faucet", version = "=1.6.22" }
|
||||
solana-logger = { path = "../logger", version = "=1.6.22" }
|
||||
solana-net-utils = { path = "../net-utils", version = "=1.6.22" }
|
||||
solana_rbpf = "=0.2.9"
|
||||
solana-remote-wallet = { path = "../remote-wallet", version = "=1.6.19" }
|
||||
solana-sdk = { path = "../sdk", version = "=1.6.19" }
|
||||
solana-stake-program = { path = "../programs/stake", version = "=1.6.19" }
|
||||
solana-transaction-status = { path = "../transaction-status", version = "=1.6.19" }
|
||||
solana-version = { path = "../version", version = "=1.6.19" }
|
||||
solana-vote-program = { path = "../programs/vote", version = "=1.6.19" }
|
||||
solana-remote-wallet = { path = "../remote-wallet", version = "=1.6.22" }
|
||||
solana-sdk = { path = "../sdk", version = "=1.6.22" }
|
||||
solana-stake-program = { path = "../programs/stake", version = "=1.6.22" }
|
||||
solana-transaction-status = { path = "../transaction-status", version = "=1.6.22" }
|
||||
solana-version = { path = "../version", version = "=1.6.22" }
|
||||
solana-vote-program = { path = "../programs/vote", version = "=1.6.22" }
|
||||
spl-memo = { version = "=3.0.1", features = ["no-entrypoint"] }
|
||||
thiserror = "1.0.21"
|
||||
tiny-bip39 = "0.7.0"
|
||||
url = "2.1.1"
|
||||
|
||||
[dev-dependencies]
|
||||
solana-core = { path = "../core", version = "=1.6.19" }
|
||||
solana-core = { path = "../core", version = "=1.6.22" }
|
||||
tempfile = "3.1.0"
|
||||
|
||||
[[bin]]
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-client"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
description = "Solana Client"
|
||||
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -24,14 +24,14 @@ semver = "0.11.0"
|
||||
serde = "1.0.122"
|
||||
serde_derive = "1.0.103"
|
||||
serde_json = "1.0.56"
|
||||
solana-account-decoder = { path = "../account-decoder", version = "=1.6.19" }
|
||||
solana-clap-utils = { path = "../clap-utils", version = "=1.6.19" }
|
||||
solana-faucet = { path = "../faucet", version = "=1.6.19" }
|
||||
solana-net-utils = { path = "../net-utils", version = "=1.6.19" }
|
||||
solana-sdk = { path = "../sdk", version = "=1.6.19" }
|
||||
solana-transaction-status = { path = "../transaction-status", version = "=1.6.19" }
|
||||
solana-version = { path = "../version", version = "=1.6.19" }
|
||||
solana-vote-program = { path = "../programs/vote", version = "=1.6.19" }
|
||||
solana-account-decoder = { path = "../account-decoder", version = "=1.6.22" }
|
||||
solana-clap-utils = { path = "../clap-utils", version = "=1.6.22" }
|
||||
solana-faucet = { path = "../faucet", version = "=1.6.22" }
|
||||
solana-net-utils = { path = "../net-utils", version = "=1.6.22" }
|
||||
solana-sdk = { path = "../sdk", version = "=1.6.22" }
|
||||
solana-transaction-status = { path = "../transaction-status", version = "=1.6.22" }
|
||||
solana-version = { path = "../version", version = "=1.6.22" }
|
||||
solana-vote-program = { path = "../programs/vote", version = "=1.6.22" }
|
||||
thiserror = "1.0"
|
||||
tokio = { version = "1", features = ["full"] }
|
||||
tungstenite = "0.10.1"
|
||||
@@ -40,7 +40,7 @@ url = "2.1.1"
|
||||
[dev-dependencies]
|
||||
assert_matches = "1.3.0"
|
||||
jsonrpc-http-server = "17.0.0"
|
||||
solana-logger = { path = "../logger", version = "=1.6.19" }
|
||||
solana-logger = { path = "../logger", version = "=1.6.22" }
|
||||
|
||||
[package.metadata.docs.rs]
|
||||
targets = ["x86_64-unknown-linux-gnu"]
|
||||
|
@@ -21,6 +21,7 @@ pub struct RpcSendTransactionConfig {
|
||||
pub skip_preflight: bool,
|
||||
pub preflight_commitment: Option<CommitmentLevel>,
|
||||
pub encoding: Option<UiTransactionEncoding>,
|
||||
pub max_retries: Option<usize>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
|
||||
|
@@ -1,7 +1,7 @@
|
||||
[package]
|
||||
name = "solana-core"
|
||||
description = "Blockchain, Rebuilt for Scale"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
homepage = "https://solana.com/"
|
||||
documentation = "https://docs.rs/solana-core"
|
||||
readme = "../README.md"
|
||||
@@ -52,37 +52,37 @@ serde = "1.0.122"
|
||||
serde_bytes = "0.11"
|
||||
serde_derive = "1.0.103"
|
||||
serde_json = "1.0.56"
|
||||
solana-account-decoder = { path = "../account-decoder", version = "=1.6.19" }
|
||||
solana-banks-server = { path = "../banks-server", version = "=1.6.19" }
|
||||
solana-clap-utils = { path = "../clap-utils", version = "=1.6.19" }
|
||||
solana-client = { path = "../client", version = "=1.6.19" }
|
||||
solana-faucet = { path = "../faucet", version = "=1.6.19" }
|
||||
solana-ledger = { path = "../ledger", version = "=1.6.19" }
|
||||
solana-logger = { path = "../logger", version = "=1.6.19" }
|
||||
solana-merkle-tree = { path = "../merkle-tree", version = "=1.6.19" }
|
||||
solana-metrics = { path = "../metrics", version = "=1.6.19" }
|
||||
solana-measure = { path = "../measure", version = "=1.6.19" }
|
||||
solana-net-utils = { path = "../net-utils", version = "=1.6.19" }
|
||||
solana-perf = { path = "../perf", version = "=1.6.19" }
|
||||
solana-program-test = { path = "../program-test", version = "=1.6.19" }
|
||||
solana-runtime = { path = "../runtime", version = "=1.6.19" }
|
||||
solana-sdk = { path = "../sdk", version = "=1.6.19" }
|
||||
solana-frozen-abi = { path = "../frozen-abi", version = "=1.6.19" }
|
||||
solana-frozen-abi-macro = { path = "../frozen-abi/macro", version = "=1.6.19" }
|
||||
solana-stake-program = { path = "../programs/stake", version = "=1.6.19" }
|
||||
solana-storage-bigtable = { path = "../storage-bigtable", version = "=1.6.19" }
|
||||
solana-streamer = { path = "../streamer", version = "=1.6.19" }
|
||||
solana-sys-tuner = { path = "../sys-tuner", version = "=1.6.19" }
|
||||
solana-transaction-status = { path = "../transaction-status", version = "=1.6.19" }
|
||||
solana-version = { path = "../version", version = "=1.6.19" }
|
||||
solana-vote-program = { path = "../programs/vote", version = "=1.6.19" }
|
||||
solana-account-decoder = { path = "../account-decoder", version = "=1.6.22" }
|
||||
solana-banks-server = { path = "../banks-server", version = "=1.6.22" }
|
||||
solana-clap-utils = { path = "../clap-utils", version = "=1.6.22" }
|
||||
solana-client = { path = "../client", version = "=1.6.22" }
|
||||
solana-faucet = { path = "../faucet", version = "=1.6.22" }
|
||||
solana-ledger = { path = "../ledger", version = "=1.6.22" }
|
||||
solana-logger = { path = "../logger", version = "=1.6.22" }
|
||||
solana-merkle-tree = { path = "../merkle-tree", version = "=1.6.22" }
|
||||
solana-metrics = { path = "../metrics", version = "=1.6.22" }
|
||||
solana-measure = { path = "../measure", version = "=1.6.22" }
|
||||
solana-net-utils = { path = "../net-utils", version = "=1.6.22" }
|
||||
solana-perf = { path = "../perf", version = "=1.6.22" }
|
||||
solana-program-test = { path = "../program-test", version = "=1.6.22" }
|
||||
solana-runtime = { path = "../runtime", version = "=1.6.22" }
|
||||
solana-sdk = { path = "../sdk", version = "=1.6.22" }
|
||||
solana-frozen-abi = { path = "../frozen-abi", version = "=1.6.22" }
|
||||
solana-frozen-abi-macro = { path = "../frozen-abi/macro", version = "=1.6.22" }
|
||||
solana-stake-program = { path = "../programs/stake", version = "=1.6.22" }
|
||||
solana-storage-bigtable = { path = "../storage-bigtable", version = "=1.6.22" }
|
||||
solana-streamer = { path = "../streamer", version = "=1.6.22" }
|
||||
solana-sys-tuner = { path = "../sys-tuner", version = "=1.6.22" }
|
||||
solana-transaction-status = { path = "../transaction-status", version = "=1.6.22" }
|
||||
solana-version = { path = "../version", version = "=1.6.22" }
|
||||
solana-vote-program = { path = "../programs/vote", version = "=1.6.22" }
|
||||
spl-token-v2-0 = { package = "spl-token", version = "=3.1.1", features = ["no-entrypoint"] }
|
||||
tempfile = "3.1.0"
|
||||
thiserror = "1.0"
|
||||
tokio = { version = "1", features = ["full"] }
|
||||
tokio_02 = { version = "0.2", package = "tokio", features = ["full"] }
|
||||
tokio-util = { version = "0.3", features = ["codec"] } # This crate needs to stay in sync with tokio_02, until that dependency can be removed
|
||||
solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "=1.6.19" }
|
||||
solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "=1.6.22" }
|
||||
trees = "0.2.1"
|
||||
|
||||
[dev-dependencies]
|
||||
|
@@ -351,7 +351,7 @@ impl StandardBroadcastRun {
|
||||
if now - last > BROADCAST_PEER_UPDATE_INTERVAL_MS
|
||||
&& self
|
||||
.last_peer_update
|
||||
.compare_and_swap(now, last, Ordering::Relaxed)
|
||||
.compare_and_swap(last, now, Ordering::Relaxed)
|
||||
== last
|
||||
{
|
||||
let mut w_broadcast_peer_cache = self.broadcast_peer_cache.write().unwrap();
|
||||
|
@@ -83,6 +83,7 @@ pub mod unfrozen_gossip_verified_vote_hashes;
|
||||
pub mod validator;
|
||||
pub mod verified_vote_packets;
|
||||
pub mod vote_stake_tracker;
|
||||
pub mod voting_service;
|
||||
pub mod weighted_shuffle;
|
||||
pub mod window_service;
|
||||
|
||||
|
@@ -24,6 +24,7 @@ use crate::{
|
||||
rewards_recorder_service::RewardsRecorderSender,
|
||||
rpc_subscriptions::RpcSubscriptions,
|
||||
unfrozen_gossip_verified_vote_hashes::UnfrozenGossipVerifiedVoteHashes,
|
||||
voting_service::VoteOp,
|
||||
window_service::DuplicateSlotReceiver,
|
||||
};
|
||||
use solana_client::rpc_response::SlotUpdate;
|
||||
@@ -305,6 +306,7 @@ impl ReplayStage {
|
||||
replay_vote_sender: ReplayVoteSender,
|
||||
gossip_duplicate_confirmed_slots_receiver: GossipDuplicateConfirmedSlotsReceiver,
|
||||
gossip_verified_vote_hash_receiver: GossipVerifiedVoteHashReceiver,
|
||||
voting_sender: Sender<VoteOp>,
|
||||
) -> Self {
|
||||
let ReplayStageConfig {
|
||||
my_pubkey,
|
||||
@@ -525,7 +527,7 @@ impl ReplayStage {
|
||||
|
||||
if let Some(heaviest_bank_on_same_voted_fork) = heaviest_bank_on_same_voted_fork.as_ref() {
|
||||
if let Some(my_latest_landed_vote) = progress.my_latest_landed_vote(heaviest_bank_on_same_voted_fork.slot()) {
|
||||
Self::refresh_last_vote(&mut tower, &cluster_info, heaviest_bank_on_same_voted_fork, &poh_recorder, my_latest_landed_vote, &vote_account, &authorized_voter_keypairs.read().unwrap(), &mut voted_signatures, has_new_vote_been_rooted, &mut last_vote_refresh_time);
|
||||
Self::refresh_last_vote(&mut tower, &cluster_info, heaviest_bank_on_same_voted_fork, my_latest_landed_vote, &vote_account, &authorized_voter_keypairs.read().unwrap(), &mut voted_signatures, has_new_vote_been_rooted, &mut last_vote_refresh_time, &voting_sender);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -583,7 +585,6 @@ impl ReplayStage {
|
||||
|
||||
Self::handle_votable_bank(
|
||||
&vote_bank,
|
||||
&poh_recorder,
|
||||
switch_fork_decision,
|
||||
&bank_forks,
|
||||
&mut tower,
|
||||
@@ -606,6 +607,7 @@ impl ReplayStage {
|
||||
&mut voted_signatures,
|
||||
&mut has_new_vote_been_rooted,
|
||||
&mut replay_timing,
|
||||
&voting_sender,
|
||||
);
|
||||
};
|
||||
voting_time.stop();
|
||||
@@ -1337,7 +1339,6 @@ impl ReplayStage {
|
||||
#[allow(clippy::too_many_arguments)]
|
||||
fn handle_votable_bank(
|
||||
bank: &Arc<Bank>,
|
||||
poh_recorder: &Arc<Mutex<PohRecorder>>,
|
||||
switch_fork_decision: &SwitchForkDecision,
|
||||
bank_forks: &Arc<RwLock<BankForks>>,
|
||||
tower: &mut Tower,
|
||||
@@ -1360,6 +1361,7 @@ impl ReplayStage {
|
||||
vote_signatures: &mut Vec<Signature>,
|
||||
has_new_vote_been_rooted: &mut bool,
|
||||
replay_timing: &mut ReplayTiming,
|
||||
voting_sender: &Sender<VoteOp>,
|
||||
) {
|
||||
if bank.is_empty() {
|
||||
inc_new_counter_info!("replay_stage-voted_empty_bank", 1);
|
||||
@@ -1437,7 +1439,6 @@ impl ReplayStage {
|
||||
Self::push_vote(
|
||||
cluster_info,
|
||||
bank,
|
||||
poh_recorder,
|
||||
vote_account_pubkey,
|
||||
authorized_voter_keypairs,
|
||||
tower,
|
||||
@@ -1445,6 +1446,7 @@ impl ReplayStage {
|
||||
vote_signatures,
|
||||
*has_new_vote_been_rooted,
|
||||
replay_timing,
|
||||
voting_sender,
|
||||
);
|
||||
}
|
||||
|
||||
@@ -1538,13 +1540,13 @@ impl ReplayStage {
|
||||
tower: &mut Tower,
|
||||
cluster_info: &ClusterInfo,
|
||||
heaviest_bank_on_same_fork: &Bank,
|
||||
poh_recorder: &Mutex<PohRecorder>,
|
||||
my_latest_landed_vote: Slot,
|
||||
vote_account_pubkey: &Pubkey,
|
||||
authorized_voter_keypairs: &[Arc<Keypair>],
|
||||
vote_signatures: &mut Vec<Signature>,
|
||||
has_new_vote_been_rooted: bool,
|
||||
last_vote_refresh_time: &mut LastVoteRefreshTime,
|
||||
voting_sender: &Sender<VoteOp>,
|
||||
) {
|
||||
let last_voted_slot = tower.last_voted_slot();
|
||||
if last_voted_slot.is_none() {
|
||||
@@ -1596,11 +1598,12 @@ impl ReplayStage {
|
||||
("target_bank_slot", heaviest_bank_on_same_fork.slot(), i64),
|
||||
("target_bank_hash", hash_string, String),
|
||||
);
|
||||
let _ = cluster_info.send_vote(
|
||||
&vote_tx,
|
||||
crate::banking_stage::next_leader_tpu(cluster_info, poh_recorder),
|
||||
);
|
||||
cluster_info.refresh_vote(vote_tx, last_voted_slot);
|
||||
voting_sender
|
||||
.send(VoteOp::RefreshVote {
|
||||
tx: vote_tx,
|
||||
last_voted_slot,
|
||||
})
|
||||
.unwrap_or_else(|err| warn!("Error: {:?}", err));
|
||||
last_vote_refresh_time.last_refresh_time = Instant::now();
|
||||
}
|
||||
}
|
||||
@@ -1609,7 +1612,6 @@ impl ReplayStage {
|
||||
fn push_vote(
|
||||
cluster_info: &ClusterInfo,
|
||||
bank: &Bank,
|
||||
poh_recorder: &Mutex<PohRecorder>,
|
||||
vote_account_pubkey: &Pubkey,
|
||||
authorized_voter_keypairs: &[Arc<Keypair>],
|
||||
tower: &mut Tower,
|
||||
@@ -1617,6 +1619,7 @@ impl ReplayStage {
|
||||
vote_signatures: &mut Vec<Signature>,
|
||||
has_new_vote_been_rooted: bool,
|
||||
replay_timing: &mut ReplayTiming,
|
||||
voting_sender: &Sender<VoteOp>,
|
||||
) {
|
||||
let mut generate_time = Measure::start("generate_vote");
|
||||
let vote_tx = Self::generate_vote_tx(
|
||||
@@ -1633,16 +1636,14 @@ impl ReplayStage {
|
||||
replay_timing.generate_vote_us += generate_time.as_us();
|
||||
if let Some(vote_tx) = vote_tx {
|
||||
tower.refresh_last_vote_tx_blockhash(vote_tx.message.recent_blockhash);
|
||||
let mut send_time = Measure::start("send_vote");
|
||||
let _ = cluster_info.send_vote(
|
||||
&vote_tx,
|
||||
crate::banking_stage::next_leader_tpu(cluster_info, poh_recorder),
|
||||
);
|
||||
send_time.stop();
|
||||
let mut push_time = Measure::start("push_vote");
|
||||
cluster_info.push_vote(&tower.tower_slots(), vote_tx);
|
||||
push_time.stop();
|
||||
replay_timing.vote_push_us += push_time.as_us();
|
||||
|
||||
let tower_slots = tower.tower_slots();
|
||||
voting_sender
|
||||
.send(VoteOp::PushVote {
|
||||
tx: vote_tx,
|
||||
tower_slots,
|
||||
})
|
||||
.unwrap_or_else(|err| warn!("Error: {:?}", err));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2594,6 +2595,7 @@ pub(crate) mod tests {
|
||||
vote_state::{VoteState, VoteStateVersions},
|
||||
vote_transaction,
|
||||
};
|
||||
use std::sync::mpsc::channel;
|
||||
use std::{
|
||||
fs::remove_dir_all,
|
||||
iter,
|
||||
@@ -4845,6 +4847,7 @@ pub(crate) mod tests {
|
||||
}
|
||||
}
|
||||
}
|
||||
let (voting_sender, voting_receiver) = channel();
|
||||
|
||||
// Simulate landing a vote for slot 0 landing in slot 1
|
||||
let bank1 = Arc::new(Bank::new_from_parent(&bank0, &Pubkey::default(), 1));
|
||||
@@ -4853,7 +4856,6 @@ pub(crate) mod tests {
|
||||
ReplayStage::push_vote(
|
||||
&cluster_info,
|
||||
&bank0,
|
||||
&poh_recorder,
|
||||
&my_vote_pubkey,
|
||||
&my_vote_keypair,
|
||||
&mut tower,
|
||||
@@ -4861,7 +4863,13 @@ pub(crate) mod tests {
|
||||
&mut voted_signatures,
|
||||
has_new_vote_been_rooted,
|
||||
&mut ReplayTiming::default(),
|
||||
&voting_sender,
|
||||
);
|
||||
let vote_info = voting_receiver
|
||||
.recv_timeout(Duration::from_secs(1))
|
||||
.unwrap();
|
||||
crate::voting_service::VotingService::handle_vote(&cluster_info, &poh_recorder, vote_info);
|
||||
|
||||
let mut cursor = Cursor::default();
|
||||
let (_, votes) = cluster_info.get_votes(&mut cursor);
|
||||
assert_eq!(votes.len(), 1);
|
||||
@@ -4882,13 +4890,13 @@ pub(crate) mod tests {
|
||||
&mut tower,
|
||||
&cluster_info,
|
||||
refresh_bank,
|
||||
&poh_recorder,
|
||||
Tower::last_voted_slot_in_bank(&refresh_bank, &my_vote_pubkey).unwrap(),
|
||||
&my_vote_pubkey,
|
||||
&my_vote_keypair,
|
||||
&mut voted_signatures,
|
||||
has_new_vote_been_rooted,
|
||||
&mut last_vote_refresh_time,
|
||||
&voting_sender,
|
||||
);
|
||||
|
||||
// No new votes have been submitted to gossip
|
||||
@@ -4905,7 +4913,6 @@ pub(crate) mod tests {
|
||||
ReplayStage::push_vote(
|
||||
&cluster_info,
|
||||
&bank1,
|
||||
&poh_recorder,
|
||||
&my_vote_pubkey,
|
||||
&my_vote_keypair,
|
||||
&mut tower,
|
||||
@@ -4913,7 +4920,12 @@ pub(crate) mod tests {
|
||||
&mut voted_signatures,
|
||||
has_new_vote_been_rooted,
|
||||
&mut ReplayTiming::default(),
|
||||
&voting_sender,
|
||||
);
|
||||
let vote_info = voting_receiver
|
||||
.recv_timeout(Duration::from_secs(1))
|
||||
.unwrap();
|
||||
crate::voting_service::VotingService::handle_vote(&cluster_info, &poh_recorder, vote_info);
|
||||
let (_, votes) = cluster_info.get_votes(&mut cursor);
|
||||
assert_eq!(votes.len(), 1);
|
||||
let vote_tx = &votes[0];
|
||||
@@ -4927,14 +4939,15 @@ pub(crate) mod tests {
|
||||
&mut tower,
|
||||
&cluster_info,
|
||||
&bank2,
|
||||
&poh_recorder,
|
||||
Tower::last_voted_slot_in_bank(&bank2, &my_vote_pubkey).unwrap(),
|
||||
&my_vote_pubkey,
|
||||
&my_vote_keypair,
|
||||
&mut voted_signatures,
|
||||
has_new_vote_been_rooted,
|
||||
&mut last_vote_refresh_time,
|
||||
&voting_sender,
|
||||
);
|
||||
|
||||
// No new votes have been submitted to gossip
|
||||
let (_, votes) = cluster_info.get_votes(&mut cursor);
|
||||
assert!(votes.is_empty());
|
||||
@@ -4963,14 +4976,19 @@ pub(crate) mod tests {
|
||||
&mut tower,
|
||||
&cluster_info,
|
||||
&expired_bank,
|
||||
&poh_recorder,
|
||||
Tower::last_voted_slot_in_bank(&expired_bank, &my_vote_pubkey).unwrap(),
|
||||
&my_vote_pubkey,
|
||||
&my_vote_keypair,
|
||||
&mut voted_signatures,
|
||||
has_new_vote_been_rooted,
|
||||
&mut last_vote_refresh_time,
|
||||
&voting_sender,
|
||||
);
|
||||
let vote_info = voting_receiver
|
||||
.recv_timeout(Duration::from_secs(1))
|
||||
.unwrap();
|
||||
crate::voting_service::VotingService::handle_vote(&cluster_info, &poh_recorder, vote_info);
|
||||
|
||||
assert!(last_vote_refresh_time.last_refresh_time > clone_refresh_time);
|
||||
let (_, votes) = cluster_info.get_votes(&mut cursor);
|
||||
assert_eq!(votes.len(), 1);
|
||||
@@ -5019,14 +5037,15 @@ pub(crate) mod tests {
|
||||
&mut tower,
|
||||
&cluster_info,
|
||||
&expired_bank_sibling,
|
||||
&poh_recorder,
|
||||
Tower::last_voted_slot_in_bank(&expired_bank_sibling, &my_vote_pubkey).unwrap(),
|
||||
&my_vote_pubkey,
|
||||
&my_vote_keypair,
|
||||
&mut voted_signatures,
|
||||
has_new_vote_been_rooted,
|
||||
&mut last_vote_refresh_time,
|
||||
&voting_sender,
|
||||
);
|
||||
|
||||
let (_, votes) = cluster_info.get_votes(&mut cursor);
|
||||
assert!(votes.is_empty());
|
||||
assert_eq!(
|
||||
|
@@ -1054,7 +1054,10 @@ impl JsonRpcRequestProcessor {
|
||||
.map_err(|_| Error::internal_error())?
|
||||
.filter(|&slot| slot <= end_slot && slot <= highest_confirmed_root)
|
||||
.collect();
|
||||
let last_element = blocks.last().cloned().unwrap_or_default();
|
||||
let last_element = blocks
|
||||
.last()
|
||||
.cloned()
|
||||
.unwrap_or_else(|| start_slot.saturating_sub(1));
|
||||
|
||||
// Maybe add confirmed blocks
|
||||
if commitment.is_confirmed() && last_element < end_slot {
|
||||
@@ -2160,6 +2163,7 @@ fn _send_transaction(
|
||||
wire_transaction: Vec<u8>,
|
||||
last_valid_slot: Slot,
|
||||
durable_nonce_info: Option<(Pubkey, Hash)>,
|
||||
max_retries: Option<usize>,
|
||||
) -> Result<String> {
|
||||
if transaction.signatures.is_empty() {
|
||||
return Err(RpcCustomError::TransactionSignatureVerificationFailure.into());
|
||||
@@ -2170,6 +2174,7 @@ fn _send_transaction(
|
||||
wire_transaction,
|
||||
last_valid_slot,
|
||||
durable_nonce_info,
|
||||
max_retries,
|
||||
);
|
||||
meta.transaction_sender
|
||||
.lock()
|
||||
@@ -3109,7 +3114,14 @@ pub mod rpc_full {
|
||||
Error::internal_error()
|
||||
})?;
|
||||
|
||||
_send_transaction(meta, transaction, wire_transaction, last_valid_slot, None)
|
||||
_send_transaction(
|
||||
meta,
|
||||
transaction,
|
||||
wire_transaction,
|
||||
last_valid_slot,
|
||||
None,
|
||||
None,
|
||||
)
|
||||
}
|
||||
|
||||
fn send_transaction(
|
||||
@@ -3201,6 +3213,7 @@ pub mod rpc_full {
|
||||
wire_transaction,
|
||||
last_valid_slot,
|
||||
durable_nonce_info,
|
||||
config.max_retries,
|
||||
)
|
||||
}
|
||||
|
||||
|
@@ -35,6 +35,8 @@ pub struct TransactionInfo {
|
||||
pub wire_transaction: Vec<u8>,
|
||||
pub last_valid_slot: Slot,
|
||||
pub durable_nonce_info: Option<(Pubkey, Hash)>,
|
||||
pub max_retries: Option<usize>,
|
||||
retries: usize,
|
||||
}
|
||||
|
||||
impl TransactionInfo {
|
||||
@@ -43,12 +45,15 @@ impl TransactionInfo {
|
||||
wire_transaction: Vec<u8>,
|
||||
last_valid_slot: Slot,
|
||||
durable_nonce_info: Option<(Pubkey, Hash)>,
|
||||
max_retries: Option<usize>,
|
||||
) -> Self {
|
||||
Self {
|
||||
signature,
|
||||
wire_transaction,
|
||||
last_valid_slot,
|
||||
durable_nonce_info,
|
||||
max_retries,
|
||||
retries: 0,
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -100,6 +105,7 @@ struct ProcessTransactionsResult {
|
||||
rooted: u64,
|
||||
expired: u64,
|
||||
retried: u64,
|
||||
max_retries_elapsed: u64,
|
||||
failed: u64,
|
||||
retained: u64,
|
||||
}
|
||||
@@ -222,7 +228,7 @@ impl SendTransactionService {
|
||||
) -> ProcessTransactionsResult {
|
||||
let mut result = ProcessTransactionsResult::default();
|
||||
|
||||
transactions.retain(|signature, transaction_info| {
|
||||
transactions.retain(|signature, mut transaction_info| {
|
||||
if transaction_info.durable_nonce_info.is_some() {
|
||||
inc_new_counter_info!("send_transaction_service-nonced", 1);
|
||||
}
|
||||
@@ -249,6 +255,14 @@ impl SendTransactionService {
|
||||
inc_new_counter_info!("send_transaction_service-expired", 1);
|
||||
return false;
|
||||
}
|
||||
if let Some(max_retries) = transaction_info.max_retries {
|
||||
if transaction_info.retries >= max_retries {
|
||||
info!("Dropping transaction due to max retries: {}", signature);
|
||||
result.max_retries_elapsed += 1;
|
||||
inc_new_counter_info!("send_transaction_service-max_retries", 1);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
match working_bank.get_signature_status_slot(signature) {
|
||||
None => {
|
||||
@@ -256,6 +270,7 @@ impl SendTransactionService {
|
||||
// dropped or landed in another fork. Re-send it
|
||||
info!("Retrying transaction: {}", signature);
|
||||
result.retried += 1;
|
||||
transaction_info.retries += 1;
|
||||
inc_new_counter_info!("send_transaction_service-retry", 1);
|
||||
let addresses = leader_info
|
||||
.as_ref()
|
||||
@@ -387,7 +402,13 @@ mod test {
|
||||
info!("Expired transactions are dropped...");
|
||||
transactions.insert(
|
||||
Signature::default(),
|
||||
TransactionInfo::new(Signature::default(), vec![], root_bank.slot() - 1, None),
|
||||
TransactionInfo::new(
|
||||
Signature::default(),
|
||||
vec![],
|
||||
root_bank.slot() - 1,
|
||||
None,
|
||||
None,
|
||||
),
|
||||
);
|
||||
let result = SendTransactionService::process_transactions(
|
||||
&working_bank,
|
||||
@@ -410,7 +431,7 @@ mod test {
|
||||
info!("Rooted transactions are dropped...");
|
||||
transactions.insert(
|
||||
rooted_signature,
|
||||
TransactionInfo::new(rooted_signature, vec![], working_bank.slot(), None),
|
||||
TransactionInfo::new(rooted_signature, vec![], working_bank.slot(), None, None),
|
||||
);
|
||||
let result = SendTransactionService::process_transactions(
|
||||
&working_bank,
|
||||
@@ -433,7 +454,7 @@ mod test {
|
||||
info!("Failed transactions are dropped...");
|
||||
transactions.insert(
|
||||
failed_signature,
|
||||
TransactionInfo::new(failed_signature, vec![], working_bank.slot(), None),
|
||||
TransactionInfo::new(failed_signature, vec![], working_bank.slot(), None, None),
|
||||
);
|
||||
let result = SendTransactionService::process_transactions(
|
||||
&working_bank,
|
||||
@@ -456,7 +477,13 @@ mod test {
|
||||
info!("Non-rooted transactions are kept...");
|
||||
transactions.insert(
|
||||
non_rooted_signature,
|
||||
TransactionInfo::new(non_rooted_signature, vec![], working_bank.slot(), None),
|
||||
TransactionInfo::new(
|
||||
non_rooted_signature,
|
||||
vec![],
|
||||
working_bank.slot(),
|
||||
None,
|
||||
None,
|
||||
),
|
||||
);
|
||||
let result = SendTransactionService::process_transactions(
|
||||
&working_bank,
|
||||
@@ -480,7 +507,13 @@ mod test {
|
||||
info!("Unknown transactions are retried...");
|
||||
transactions.insert(
|
||||
Signature::default(),
|
||||
TransactionInfo::new(Signature::default(), vec![], working_bank.slot(), None),
|
||||
TransactionInfo::new(
|
||||
Signature::default(),
|
||||
vec![],
|
||||
working_bank.slot(),
|
||||
None,
|
||||
None,
|
||||
),
|
||||
);
|
||||
let result = SendTransactionService::process_transactions(
|
||||
&working_bank,
|
||||
@@ -499,6 +532,64 @@ mod test {
|
||||
..ProcessTransactionsResult::default()
|
||||
}
|
||||
);
|
||||
transactions.clear();
|
||||
|
||||
info!("Transactions are only retried until max_retries");
|
||||
transactions.insert(
|
||||
Signature::new(&[1; 64]),
|
||||
TransactionInfo::new(
|
||||
Signature::default(),
|
||||
vec![],
|
||||
working_bank.slot(),
|
||||
None,
|
||||
Some(0),
|
||||
),
|
||||
);
|
||||
transactions.insert(
|
||||
Signature::new(&[2; 64]),
|
||||
TransactionInfo::new(
|
||||
Signature::default(),
|
||||
vec![],
|
||||
working_bank.slot(),
|
||||
None,
|
||||
Some(1),
|
||||
),
|
||||
);
|
||||
let result = SendTransactionService::process_transactions(
|
||||
&working_bank,
|
||||
&root_bank,
|
||||
&send_socket,
|
||||
&tpu_address,
|
||||
&mut transactions,
|
||||
&None,
|
||||
leader_forward_count,
|
||||
);
|
||||
assert_eq!(transactions.len(), 1);
|
||||
assert_eq!(
|
||||
result,
|
||||
ProcessTransactionsResult {
|
||||
retried: 1,
|
||||
max_retries_elapsed: 1,
|
||||
..ProcessTransactionsResult::default()
|
||||
}
|
||||
);
|
||||
let result = SendTransactionService::process_transactions(
|
||||
&working_bank,
|
||||
&root_bank,
|
||||
&send_socket,
|
||||
&tpu_address,
|
||||
&mut transactions,
|
||||
&None,
|
||||
leader_forward_count,
|
||||
);
|
||||
assert!(transactions.is_empty());
|
||||
assert_eq!(
|
||||
result,
|
||||
ProcessTransactionsResult {
|
||||
max_retries_elapsed: 1,
|
||||
..ProcessTransactionsResult::default()
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
@@ -559,6 +650,7 @@ mod test {
|
||||
vec![],
|
||||
last_valid_slot,
|
||||
Some((nonce_address, durable_nonce)),
|
||||
None,
|
||||
),
|
||||
);
|
||||
let result = SendTransactionService::process_transactions(
|
||||
@@ -586,6 +678,7 @@ mod test {
|
||||
vec![],
|
||||
last_valid_slot,
|
||||
Some((nonce_address, Hash::new_unique())),
|
||||
None,
|
||||
),
|
||||
);
|
||||
let result = SendTransactionService::process_transactions(
|
||||
@@ -615,6 +708,7 @@ mod test {
|
||||
vec![],
|
||||
last_valid_slot,
|
||||
Some((nonce_address, Hash::new_unique())),
|
||||
None,
|
||||
),
|
||||
);
|
||||
let result = SendTransactionService::process_transactions(
|
||||
@@ -642,6 +736,7 @@ mod test {
|
||||
vec![],
|
||||
root_bank.slot() - 1,
|
||||
Some((nonce_address, durable_nonce)),
|
||||
None,
|
||||
),
|
||||
);
|
||||
let result = SendTransactionService::process_transactions(
|
||||
@@ -670,6 +765,7 @@ mod test {
|
||||
vec![],
|
||||
last_valid_slot,
|
||||
Some((nonce_address, Hash::new_unique())), // runtime should advance nonce on failed transactions
|
||||
None,
|
||||
),
|
||||
);
|
||||
let result = SendTransactionService::process_transactions(
|
||||
@@ -698,6 +794,7 @@ mod test {
|
||||
vec![],
|
||||
last_valid_slot,
|
||||
Some((nonce_address, Hash::new_unique())), // runtime advances nonce when transaction lands
|
||||
None,
|
||||
),
|
||||
);
|
||||
let result = SendTransactionService::process_transactions(
|
||||
@@ -727,6 +824,7 @@ mod test {
|
||||
vec![],
|
||||
last_valid_slot,
|
||||
Some((nonce_address, durable_nonce)),
|
||||
None,
|
||||
),
|
||||
);
|
||||
let result = SendTransactionService::process_transactions(
|
||||
|
@@ -25,6 +25,7 @@ use crate::{
|
||||
sigverify_shreds::ShredSigVerifier,
|
||||
sigverify_stage::SigVerifyStage,
|
||||
snapshot_packager_service::PendingSnapshotPackage,
|
||||
voting_service::VotingService,
|
||||
};
|
||||
use crossbeam_channel::unbounded;
|
||||
use solana_ledger::{
|
||||
@@ -65,6 +66,7 @@ pub struct Tvu {
|
||||
ledger_cleanup_service: Option<LedgerCleanupService>,
|
||||
accounts_background_service: AccountsBackgroundService,
|
||||
accounts_hash_verifier: AccountsHashVerifier,
|
||||
voting_service: VotingService,
|
||||
}
|
||||
|
||||
pub struct Sockets {
|
||||
@@ -265,6 +267,10 @@ impl Tvu {
|
||||
wait_for_vote_to_start_leader: tvu_config.wait_for_vote_to_start_leader,
|
||||
};
|
||||
|
||||
let (voting_sender, voting_receiver) = channel();
|
||||
let voting_service =
|
||||
VotingService::new(voting_receiver, cluster_info.clone(), poh_recorder.clone());
|
||||
|
||||
let replay_stage = ReplayStage::new(
|
||||
replay_stage_config,
|
||||
blockstore.clone(),
|
||||
@@ -281,6 +287,7 @@ impl Tvu {
|
||||
replay_vote_sender,
|
||||
gossip_confirmed_slots_receiver,
|
||||
gossip_verified_vote_hash_receiver,
|
||||
voting_sender,
|
||||
);
|
||||
|
||||
let ledger_cleanup_service = tvu_config.max_ledger_shreds.map(|max_ledger_shreds| {
|
||||
@@ -311,6 +318,7 @@ impl Tvu {
|
||||
ledger_cleanup_service,
|
||||
accounts_background_service,
|
||||
accounts_hash_verifier,
|
||||
voting_service,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -324,6 +332,7 @@ impl Tvu {
|
||||
self.accounts_background_service.join()?;
|
||||
self.replay_stage.join()?;
|
||||
self.accounts_hash_verifier.join()?;
|
||||
self.voting_service.join()?;
|
||||
Ok(())
|
||||
}
|
||||
}
|
||||
|
79
core/src/voting_service.rs
Normal file
79
core/src/voting_service.rs
Normal file
@@ -0,0 +1,79 @@
|
||||
use crate::cluster_info::ClusterInfo;
|
||||
use crate::poh_recorder::PohRecorder;
|
||||
use solana_sdk::{clock::Slot, transaction::Transaction};
|
||||
use std::{
|
||||
sync::{mpsc::Receiver, Arc, Mutex},
|
||||
thread::{self, Builder, JoinHandle},
|
||||
};
|
||||
|
||||
pub enum VoteOp {
|
||||
PushVote {
|
||||
tx: Transaction,
|
||||
tower_slots: Vec<Slot>,
|
||||
},
|
||||
RefreshVote {
|
||||
tx: Transaction,
|
||||
last_voted_slot: Slot,
|
||||
},
|
||||
}
|
||||
|
||||
impl VoteOp {
|
||||
fn tx(&self) -> &Transaction {
|
||||
match self {
|
||||
VoteOp::PushVote { tx, tower_slots: _ } => tx,
|
||||
VoteOp::RefreshVote {
|
||||
tx,
|
||||
last_voted_slot: _,
|
||||
} => tx,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub struct VotingService {
|
||||
thread_hdl: JoinHandle<()>,
|
||||
}
|
||||
|
||||
impl VotingService {
|
||||
pub fn new(
|
||||
vote_receiver: Receiver<VoteOp>,
|
||||
cluster_info: Arc<ClusterInfo>,
|
||||
poh_recorder: Arc<Mutex<PohRecorder>>,
|
||||
) -> Self {
|
||||
let thread_hdl = Builder::new()
|
||||
.name("sol-vote-service".to_string())
|
||||
.spawn(move || {
|
||||
for vote_op in vote_receiver.iter() {
|
||||
Self::handle_vote(&cluster_info, &poh_recorder, vote_op);
|
||||
}
|
||||
})
|
||||
.unwrap();
|
||||
Self { thread_hdl }
|
||||
}
|
||||
|
||||
pub fn handle_vote(
|
||||
cluster_info: &ClusterInfo,
|
||||
poh_recorder: &Mutex<PohRecorder>,
|
||||
vote_op: VoteOp,
|
||||
) {
|
||||
let _ = cluster_info.send_vote(
|
||||
vote_op.tx(),
|
||||
crate::banking_stage::next_leader_tpu(cluster_info, poh_recorder),
|
||||
);
|
||||
|
||||
match vote_op {
|
||||
VoteOp::PushVote { tx, tower_slots } => {
|
||||
cluster_info.push_vote(&tower_slots, tx);
|
||||
}
|
||||
VoteOp::RefreshVote {
|
||||
tx,
|
||||
last_voted_slot,
|
||||
} => {
|
||||
cluster_info.refresh_vote(tx, last_voted_slot);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub fn join(self) -> thread::Result<()> {
|
||||
self.thread_hdl.join()
|
||||
}
|
||||
}
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-crate-features"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
description = "Solana Crate Features"
|
||||
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
|
@@ -3034,7 +3034,7 @@ curl http://localhost:8899 -X POST -H "Content-Type: application/json" -d '
|
||||
|
||||
Result:
|
||||
```json
|
||||
{"jsonrpc":"2.0","result":{"solana-core": "1.6.19"},"id":1}
|
||||
{"jsonrpc":"2.0","result":{"solana-core": "1.6.22"},"id":1}
|
||||
```
|
||||
|
||||
### getVoteAccounts
|
||||
@@ -3241,6 +3241,8 @@ submission.
|
||||
- `skipPreflight: <bool>` - if true, skip the preflight transaction checks (default: false)
|
||||
- `preflightCommitment: <string>` - (optional) [Commitment](jsonrpc-api.md#configuring-state-commitment) level to use for preflight (default: `"finalized"`).
|
||||
- `encoding: <string>` - (optional) Encoding used for the transaction data. Either `"base58"` (*slow*, **DEPRECATED**), or `"base64"`. (default: `"base58"`).
|
||||
- `maxRetries: <usize>` - (optional) Maximum number of times for the RPC node to retry sending the transaction to the leader.
|
||||
If this parameter not provided, the RPC node will retry the transaction until it is finalized or until the blockhash expires.
|
||||
|
||||
#### Results:
|
||||
|
||||
|
@@ -2,7 +2,7 @@
|
||||
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
|
||||
edition = "2018"
|
||||
name = "solana-dos"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
license = "Apache-2.0"
|
||||
homepage = "https://solana.com/"
|
||||
@@ -14,15 +14,15 @@ clap = "2.33.1"
|
||||
log = "0.4.11"
|
||||
rand = "0.7.0"
|
||||
rayon = "1.5.0"
|
||||
solana-clap-utils = { path = "../clap-utils", version = "=1.6.19" }
|
||||
solana-core = { path = "../core", version = "=1.6.19" }
|
||||
solana-ledger = { path = "../ledger", version = "=1.6.19" }
|
||||
solana-logger = { path = "../logger", version = "=1.6.19" }
|
||||
solana-net-utils = { path = "../net-utils", version = "=1.6.19" }
|
||||
solana-runtime = { path = "../runtime", version = "=1.6.19" }
|
||||
solana-sdk = { path = "../sdk", version = "=1.6.19" }
|
||||
solana-version = { path = "../version", version = "=1.6.19" }
|
||||
solana-client = { path = "../client", version = "=1.6.19" }
|
||||
solana-clap-utils = { path = "../clap-utils", version = "=1.6.22" }
|
||||
solana-core = { path = "../core", version = "=1.6.22" }
|
||||
solana-ledger = { path = "../ledger", version = "=1.6.22" }
|
||||
solana-logger = { path = "../logger", version = "=1.6.22" }
|
||||
solana-net-utils = { path = "../net-utils", version = "=1.6.22" }
|
||||
solana-runtime = { path = "../runtime", version = "=1.6.22" }
|
||||
solana-sdk = { path = "../sdk", version = "=1.6.22" }
|
||||
solana-version = { path = "../version", version = "=1.6.22" }
|
||||
solana-client = { path = "../client", version = "=1.6.22" }
|
||||
|
||||
[package.metadata.docs.rs]
|
||||
targets = ["x86_64-unknown-linux-gnu"]
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-download-utils"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
description = "Solana Download Utils"
|
||||
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -15,8 +15,8 @@ console = "0.11.3"
|
||||
indicatif = "0.15.0"
|
||||
log = "0.4.11"
|
||||
reqwest = { version = "0.11.2", default-features = false, features = ["blocking", "rustls-tls", "json"] }
|
||||
solana-sdk = { path = "../sdk", version = "=1.6.19" }
|
||||
solana-runtime = { path = "../runtime", version = "=1.6.19" }
|
||||
solana-sdk = { path = "../sdk", version = "=1.6.22" }
|
||||
solana-runtime = { path = "../runtime", version = "=1.6.22" }
|
||||
tar = "0.4.28"
|
||||
|
||||
[lib]
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-faucet"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
description = "Solana Faucet"
|
||||
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -16,12 +16,12 @@ clap = "2.33"
|
||||
log = "0.4.11"
|
||||
serde = "1.0.122"
|
||||
serde_derive = "1.0.103"
|
||||
solana-clap-utils = { path = "../clap-utils", version = "=1.6.19" }
|
||||
solana-cli-config = { path = "../cli-config", version = "=1.6.19" }
|
||||
solana-logger = { path = "../logger", version = "=1.6.19" }
|
||||
solana-metrics = { path = "../metrics", version = "=1.6.19" }
|
||||
solana-sdk = { path = "../sdk", version = "=1.6.19" }
|
||||
solana-version = { path = "../version", version = "=1.6.19" }
|
||||
solana-clap-utils = { path = "../clap-utils", version = "=1.6.22" }
|
||||
solana-cli-config = { path = "../cli-config", version = "=1.6.22" }
|
||||
solana-logger = { path = "../logger", version = "=1.6.22" }
|
||||
solana-metrics = { path = "../metrics", version = "=1.6.22" }
|
||||
solana-sdk = { path = "../sdk", version = "=1.6.22" }
|
||||
solana-version = { path = "../version", version = "=1.6.22" }
|
||||
spl-memo = { version = "=3.0.1", features = ["no-entrypoint"] }
|
||||
thiserror = "1.0"
|
||||
tokio = { version = "1", features = ["full"] }
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-frozen-abi"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
description = "Solana Frozen ABI"
|
||||
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -16,11 +16,11 @@ log = "0.4.11"
|
||||
serde = "1.0.122"
|
||||
serde_derive = "1.0.103"
|
||||
sha2 = "0.9.2"
|
||||
solana-frozen-abi-macro = { path = "macro", version = "=1.6.19" }
|
||||
solana-frozen-abi-macro = { path = "macro", version = "=1.6.22" }
|
||||
thiserror = "1.0"
|
||||
|
||||
[target.'cfg(not(target_arch = "bpf"))'.dependencies]
|
||||
solana-logger = { path = "../logger", version = "=1.6.19" }
|
||||
solana-logger = { path = "../logger", version = "=1.6.22" }
|
||||
generic-array = { version = "0.14.3", default-features = false, features = ["serde", "more_lengths"]}
|
||||
memmap2 = "0.1.0"
|
||||
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-frozen-abi-macro"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
description = "Solana Frozen ABI Macro"
|
||||
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
|
@@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.foundation>"]
|
||||
edition = "2018"
|
||||
name = "solana-genesis"
|
||||
description = "Blockchain, Rebuilt for Scale"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
license = "Apache-2.0"
|
||||
homepage = "https://solana.com/"
|
||||
@@ -16,18 +16,18 @@ chrono = "0.4"
|
||||
serde = "1.0.122"
|
||||
serde_json = "1.0.56"
|
||||
serde_yaml = "0.8.13"
|
||||
solana-budget-program = { path = "../programs/budget", version = "=1.6.19" }
|
||||
solana-clap-utils = { path = "../clap-utils", version = "=1.6.19" }
|
||||
solana-cli-config = { path = "../cli-config", version = "=1.6.19" }
|
||||
solana-exchange-program = { path = "../programs/exchange", version = "=1.6.19" }
|
||||
solana-ledger = { path = "../ledger", version = "=1.6.19" }
|
||||
solana-logger = { path = "../logger", version = "=1.6.19" }
|
||||
solana-runtime = { path = "../runtime", version = "=1.6.19" }
|
||||
solana-sdk = { path = "../sdk", version = "=1.6.19" }
|
||||
solana-stake-program = { path = "../programs/stake", version = "=1.6.19" }
|
||||
solana-version = { path = "../version", version = "=1.6.19" }
|
||||
solana-vest-program = { path = "../programs/vest", version = "=1.6.19" }
|
||||
solana-vote-program = { path = "../programs/vote", version = "=1.6.19" }
|
||||
solana-budget-program = { path = "../programs/budget", version = "=1.6.22" }
|
||||
solana-clap-utils = { path = "../clap-utils", version = "=1.6.22" }
|
||||
solana-cli-config = { path = "../cli-config", version = "=1.6.22" }
|
||||
solana-exchange-program = { path = "../programs/exchange", version = "=1.6.22" }
|
||||
solana-ledger = { path = "../ledger", version = "=1.6.22" }
|
||||
solana-logger = { path = "../logger", version = "=1.6.22" }
|
||||
solana-runtime = { path = "../runtime", version = "=1.6.22" }
|
||||
solana-sdk = { path = "../sdk", version = "=1.6.22" }
|
||||
solana-stake-program = { path = "../programs/stake", version = "=1.6.22" }
|
||||
solana-version = { path = "../version", version = "=1.6.22" }
|
||||
solana-vest-program = { path = "../programs/vest", version = "=1.6.22" }
|
||||
solana-vote-program = { path = "../programs/vote", version = "=1.6.22" }
|
||||
tempfile = "3.1.0"
|
||||
|
||||
[[bin]]
|
||||
|
@@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.foundation>"]
|
||||
edition = "2018"
|
||||
name = "solana-gossip"
|
||||
description = "Blockchain, Rebuilt for Scale"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
license = "Apache-2.0"
|
||||
homepage = "https://solana.com/"
|
||||
@@ -11,12 +11,12 @@ documentation = "https://docs.rs/solana-gossip"
|
||||
|
||||
[dependencies]
|
||||
clap = "2.33.1"
|
||||
solana-clap-utils = { path = "../clap-utils", version = "=1.6.19" }
|
||||
solana-core = { path = "../core", version = "=1.6.19" }
|
||||
solana-logger = { path = "../logger", version = "=1.6.19" }
|
||||
solana-net-utils = { path = "../net-utils", version = "=1.6.19" }
|
||||
solana-sdk = { path = "../sdk", version = "=1.6.19" }
|
||||
solana-version = { path = "../version", version = "=1.6.19" }
|
||||
solana-clap-utils = { path = "../clap-utils", version = "=1.6.22" }
|
||||
solana-core = { path = "../core", version = "=1.6.22" }
|
||||
solana-logger = { path = "../logger", version = "=1.6.22" }
|
||||
solana-net-utils = { path = "../net-utils", version = "=1.6.22" }
|
||||
solana-sdk = { path = "../sdk", version = "=1.6.22" }
|
||||
solana-version = { path = "../version", version = "=1.6.22" }
|
||||
|
||||
[package.metadata.docs.rs]
|
||||
targets = ["x86_64-unknown-linux-gnu"]
|
||||
|
@@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.foundation>"]
|
||||
edition = "2018"
|
||||
name = "solana-install"
|
||||
description = "The solana cluster software installer"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
license = "Apache-2.0"
|
||||
homepage = "https://solana.com/"
|
||||
@@ -25,12 +25,12 @@ reqwest = { version = "0.11.2", default-features = false, features = ["blocking"
|
||||
serde = { version = "1.0.122", features = ["derive"] }
|
||||
serde_json = "1.0.62"
|
||||
serde_yaml = "0.8.13"
|
||||
solana-clap-utils = { path = "../clap-utils", version = "=1.6.19" }
|
||||
solana-client = { path = "../client", version = "=1.6.19" }
|
||||
solana-config-program = { path = "../programs/config", version = "=1.6.19" }
|
||||
solana-logger = { path = "../logger", version = "=1.6.19" }
|
||||
solana-sdk = { path = "../sdk", version = "=1.6.19" }
|
||||
solana-version = { path = "../version", version = "=1.6.19" }
|
||||
solana-clap-utils = { path = "../clap-utils", version = "=1.6.22" }
|
||||
solana-client = { path = "../client", version = "=1.6.22" }
|
||||
solana-config-program = { path = "../programs/config", version = "=1.6.22" }
|
||||
solana-logger = { path = "../logger", version = "=1.6.22" }
|
||||
solana-sdk = { path = "../sdk", version = "=1.6.22" }
|
||||
solana-version = { path = "../version", version = "=1.6.22" }
|
||||
semver = "0.9.0"
|
||||
tar = "0.4.28"
|
||||
tempfile = "3.1.0"
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-keygen"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
description = "Solana key generation utility"
|
||||
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -14,11 +14,11 @@ bs58 = "0.3.1"
|
||||
clap = "2.33"
|
||||
dirs-next = "2.0.0"
|
||||
num_cpus = "1.13.0"
|
||||
solana-clap-utils = { path = "../clap-utils", version = "=1.6.19" }
|
||||
solana-cli-config = { path = "../cli-config", version = "=1.6.19" }
|
||||
solana-remote-wallet = { path = "../remote-wallet", version = "=1.6.19" }
|
||||
solana-sdk = { path = "../sdk", version = "=1.6.19" }
|
||||
solana-version = { path = "../version", version = "=1.6.19" }
|
||||
solana-clap-utils = { path = "../clap-utils", version = "=1.6.22" }
|
||||
solana-cli-config = { path = "../cli-config", version = "=1.6.22" }
|
||||
solana-remote-wallet = { path = "../remote-wallet", version = "=1.6.22" }
|
||||
solana-sdk = { path = "../sdk", version = "=1.6.22" }
|
||||
solana-version = { path = "../version", version = "=1.6.22" }
|
||||
tiny-bip39 = "0.7.0"
|
||||
|
||||
[[bin]]
|
||||
|
@@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.foundation>"]
|
||||
edition = "2018"
|
||||
name = "solana-ledger-tool"
|
||||
description = "Blockchain, Rebuilt for Scale"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
license = "Apache-2.0"
|
||||
homepage = "https://solana.com/"
|
||||
@@ -23,23 +23,23 @@ regex = "1"
|
||||
serde = { version = "1.0", features = ["derive"] }
|
||||
serde_json = "1.0.56"
|
||||
serde_yaml = "0.8.13"
|
||||
solana-clap-utils = { path = "../clap-utils", version = "=1.6.19" }
|
||||
solana-cli-output = { path = "../cli-output", version = "=1.6.19" }
|
||||
solana-ledger = { path = "../ledger", version = "=1.6.19" }
|
||||
solana-logger = { path = "../logger", version = "=1.6.19" }
|
||||
solana-measure = { path = "../measure", version = "=1.6.19" }
|
||||
solana-runtime = { path = "../runtime", version = "=1.6.19" }
|
||||
solana-sdk = { path = "../sdk", version = "=1.6.19" }
|
||||
solana-stake-program = { path = "../programs/stake", version = "=1.6.19" }
|
||||
solana-storage-bigtable = { path = "../storage-bigtable", version = "=1.6.19" }
|
||||
solana-transaction-status = { path = "../transaction-status", version = "=1.6.19" }
|
||||
solana-version = { path = "../version", version = "=1.6.19" }
|
||||
solana-vote-program = { path = "../programs/vote", version = "=1.6.19" }
|
||||
solana-clap-utils = { path = "../clap-utils", version = "=1.6.22" }
|
||||
solana-cli-output = { path = "../cli-output", version = "=1.6.22" }
|
||||
solana-ledger = { path = "../ledger", version = "=1.6.22" }
|
||||
solana-logger = { path = "../logger", version = "=1.6.22" }
|
||||
solana-measure = { path = "../measure", version = "=1.6.22" }
|
||||
solana-runtime = { path = "../runtime", version = "=1.6.22" }
|
||||
solana-sdk = { path = "../sdk", version = "=1.6.22" }
|
||||
solana-stake-program = { path = "../programs/stake", version = "=1.6.22" }
|
||||
solana-storage-bigtable = { path = "../storage-bigtable", version = "=1.6.22" }
|
||||
solana-transaction-status = { path = "../transaction-status", version = "=1.6.22" }
|
||||
solana-version = { path = "../version", version = "=1.6.22" }
|
||||
solana-vote-program = { path = "../programs/vote", version = "=1.6.22" }
|
||||
tempfile = "3.1.0"
|
||||
tokio = { version = "1", features = ["full"] }
|
||||
|
||||
[dev-dependencies]
|
||||
assert_cmd = "1.0"
|
||||
assert_cmd = "2.0"
|
||||
|
||||
[target."cfg(unix)".dependencies]
|
||||
signal-hook = "0.1.15"
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-ledger"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
description = "Solana ledger"
|
||||
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -34,22 +34,22 @@ reed-solomon-erasure = { version = "4.0.2", features = ["simd-accel"] }
|
||||
serde = "1.0.122"
|
||||
serde_bytes = "0.11.4"
|
||||
sha2 = "0.9.2"
|
||||
solana-bpf-loader-program = { path = "../programs/bpf_loader", version = "=1.6.19" }
|
||||
solana-frozen-abi = { path = "../frozen-abi", version = "=1.6.19" }
|
||||
solana-frozen-abi-macro = { path = "../frozen-abi/macro", version = "=1.6.19" }
|
||||
solana-transaction-status = { path = "../transaction-status", version = "=1.6.19" }
|
||||
solana-logger = { path = "../logger", version = "=1.6.19" }
|
||||
solana-measure = { path = "../measure", version = "=1.6.19" }
|
||||
solana-merkle-tree = { path = "../merkle-tree", version = "=1.6.19" }
|
||||
solana-metrics = { path = "../metrics", version = "=1.6.19" }
|
||||
solana-perf = { path = "../perf", version = "=1.6.19" }
|
||||
solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "=1.6.19" }
|
||||
solana-runtime = { path = "../runtime", version = "=1.6.19" }
|
||||
solana-sdk = { path = "../sdk", version = "=1.6.19" }
|
||||
solana-stake-program = { path = "../programs/stake", version = "=1.6.19" }
|
||||
solana-storage-bigtable = { path = "../storage-bigtable", version = "=1.6.19" }
|
||||
solana-storage-proto = { path = "../storage-proto", version = "=1.6.19" }
|
||||
solana-vote-program = { path = "../programs/vote", version = "=1.6.19" }
|
||||
solana-bpf-loader-program = { path = "../programs/bpf_loader", version = "=1.6.22" }
|
||||
solana-frozen-abi = { path = "../frozen-abi", version = "=1.6.22" }
|
||||
solana-frozen-abi-macro = { path = "../frozen-abi/macro", version = "=1.6.22" }
|
||||
solana-transaction-status = { path = "../transaction-status", version = "=1.6.22" }
|
||||
solana-logger = { path = "../logger", version = "=1.6.22" }
|
||||
solana-measure = { path = "../measure", version = "=1.6.22" }
|
||||
solana-merkle-tree = { path = "../merkle-tree", version = "=1.6.22" }
|
||||
solana-metrics = { path = "../metrics", version = "=1.6.22" }
|
||||
solana-perf = { path = "../perf", version = "=1.6.22" }
|
||||
solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "=1.6.22" }
|
||||
solana-runtime = { path = "../runtime", version = "=1.6.22" }
|
||||
solana-sdk = { path = "../sdk", version = "=1.6.22" }
|
||||
solana-stake-program = { path = "../programs/stake", version = "=1.6.22" }
|
||||
solana-storage-bigtable = { path = "../storage-bigtable", version = "=1.6.22" }
|
||||
solana-storage-proto = { path = "../storage-proto", version = "=1.6.22" }
|
||||
solana-vote-program = { path = "../programs/vote", version = "=1.6.22" }
|
||||
tempfile = "3.1.0"
|
||||
thiserror = "1.0"
|
||||
tokio = { version = "1", features = ["full"] }
|
||||
@@ -66,8 +66,8 @@ features = ["lz4"]
|
||||
[dev-dependencies]
|
||||
assert_matches = "1.3.0"
|
||||
matches = "0.1.6"
|
||||
solana-account-decoder = { path = "../account-decoder", version = "=1.6.19" }
|
||||
solana-budget-program = { path = "../programs/budget", version = "=1.6.19" }
|
||||
solana-account-decoder = { path = "../account-decoder", version = "=1.6.22" }
|
||||
solana-budget-program = { path = "../programs/budget", version = "=1.6.22" }
|
||||
|
||||
[build-dependencies]
|
||||
rustc_version = "0.2"
|
||||
|
@@ -22,7 +22,7 @@ use solana_sdk::{
|
||||
};
|
||||
use solana_storage_proto::convert::generated;
|
||||
use std::{
|
||||
collections::HashMap,
|
||||
collections::{HashMap, HashSet},
|
||||
ffi::{CStr, CString},
|
||||
fs,
|
||||
marker::PhantomData,
|
||||
@@ -421,9 +421,9 @@ impl Rocks {
|
||||
// this is only needed for LedgerCleanupService. so guard with PrimaryOnly (i.e. running solana-validator)
|
||||
if matches!(access_type, AccessType::PrimaryOnly) {
|
||||
for cf_name in cf_names {
|
||||
// this special column family must be excluded from LedgerCleanupService's rocksdb
|
||||
// these special column families must be excluded from LedgerCleanupService's rocksdb
|
||||
// compactions
|
||||
if cf_name == TransactionStatusIndex::NAME {
|
||||
if excludes_from_compaction(cf_name) {
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -1319,9 +1319,7 @@ fn get_cf_options<C: 'static + Column + ColumnName>(
|
||||
|
||||
// TransactionStatusIndex must be excluded from LedgerCleanupService's rocksdb
|
||||
// compactions....
|
||||
if matches!(access_type, AccessType::PrimaryOnly)
|
||||
&& C::NAME != columns::TransactionStatusIndex::NAME
|
||||
{
|
||||
if matches!(access_type, AccessType::PrimaryOnly) && !excludes_from_compaction(C::NAME) {
|
||||
options.set_compaction_filter_factory(PurgedSlotFilterFactory::<C> {
|
||||
oldest_slot: oldest_slot.clone(),
|
||||
name: CString::new(format!("purged_slot_filter_factory({})", C::NAME)).unwrap(),
|
||||
@@ -1361,6 +1359,18 @@ fn get_db_options(access_type: &AccessType) -> Options {
|
||||
options
|
||||
}
|
||||
|
||||
fn excludes_from_compaction(cf_name: &str) -> bool {
|
||||
// list of Column Families must be excluded from compaction:
|
||||
let no_compaction_cfs: HashSet<&'static str> = vec![
|
||||
columns::TransactionStatusIndex::NAME,
|
||||
columns::ProgramCosts::NAME,
|
||||
]
|
||||
.into_iter()
|
||||
.collect();
|
||||
|
||||
no_compaction_cfs.get(cf_name).is_some()
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
pub mod tests {
|
||||
use super::*;
|
||||
@@ -1413,4 +1423,14 @@ pub mod tests {
|
||||
CompactionDecision::Keep
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_excludes_from_compaction() {
|
||||
// currently there are two CFs are excluded from compaction:
|
||||
assert!(excludes_from_compaction(
|
||||
columns::TransactionStatusIndex::NAME
|
||||
));
|
||||
assert!(excludes_from_compaction(columns::ProgramCosts::NAME));
|
||||
assert!(!excludes_from_compaction("something else"));
|
||||
}
|
||||
}
|
||||
|
@@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.foundation>"]
|
||||
edition = "2018"
|
||||
name = "solana-local-cluster"
|
||||
description = "Blockchain, Rebuilt for Scale"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
license = "Apache-2.0"
|
||||
homepage = "https://solana.com/"
|
||||
@@ -17,21 +17,21 @@ fs_extra = "1.2.0"
|
||||
log = "0.4.11"
|
||||
rand = "0.7.0"
|
||||
rayon = "1.5.0"
|
||||
solana-config-program = { path = "../programs/config", version = "=1.6.19" }
|
||||
solana-core = { path = "../core", version = "=1.6.19" }
|
||||
solana-client = { path = "../client", version = "=1.6.19" }
|
||||
solana-download-utils = { path = "../download-utils", version = "=1.6.19" }
|
||||
solana-faucet = { path = "../faucet", version = "=1.6.19" }
|
||||
solana-exchange-program = { path = "../programs/exchange", version = "=1.6.19" }
|
||||
solana-ledger = { path = "../ledger", version = "=1.6.19" }
|
||||
solana-logger = { path = "../logger", version = "=1.6.19" }
|
||||
solana-runtime = { path = "../runtime", version = "=1.6.19" }
|
||||
solana-sdk = { path = "../sdk", version = "=1.6.19" }
|
||||
solana-stake-program = { path = "../programs/stake", version = "=1.6.19" }
|
||||
solana-vest-program = { path = "../programs/vest", version = "=1.6.19" }
|
||||
solana-vote-program = { path = "../programs/vote", version = "=1.6.19" }
|
||||
solana-config-program = { path = "../programs/config", version = "=1.6.22" }
|
||||
solana-core = { path = "../core", version = "=1.6.22" }
|
||||
solana-client = { path = "../client", version = "=1.6.22" }
|
||||
solana-download-utils = { path = "../download-utils", version = "=1.6.22" }
|
||||
solana-faucet = { path = "../faucet", version = "=1.6.22" }
|
||||
solana-exchange-program = { path = "../programs/exchange", version = "=1.6.22" }
|
||||
solana-ledger = { path = "../ledger", version = "=1.6.22" }
|
||||
solana-logger = { path = "../logger", version = "=1.6.22" }
|
||||
solana-runtime = { path = "../runtime", version = "=1.6.22" }
|
||||
solana-sdk = { path = "../sdk", version = "=1.6.22" }
|
||||
solana-stake-program = { path = "../programs/stake", version = "=1.6.22" }
|
||||
solana-vest-program = { path = "../programs/vest", version = "=1.6.22" }
|
||||
solana-vote-program = { path = "../programs/vote", version = "=1.6.22" }
|
||||
tempfile = "3.1.0"
|
||||
solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "=1.6.19" }
|
||||
solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "=1.6.22" }
|
||||
|
||||
[dev-dependencies]
|
||||
assert_matches = "1.3.0"
|
||||
|
@@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
edition = "2018"
|
||||
name = "solana-log-analyzer"
|
||||
description = "The solana cluster network analysis tool"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
license = "Apache-2.0"
|
||||
homepage = "https://solana.com/"
|
||||
@@ -14,9 +14,9 @@ byte-unit = "4.0.9"
|
||||
clap = "2.33.1"
|
||||
serde = "1.0.122"
|
||||
serde_json = "1.0.56"
|
||||
solana-clap-utils = { path = "../clap-utils", version = "=1.6.19" }
|
||||
solana-logger = { path = "../logger", version = "=1.6.19" }
|
||||
solana-version = { path = "../version", version = "=1.6.19" }
|
||||
solana-clap-utils = { path = "../clap-utils", version = "=1.6.22" }
|
||||
solana-logger = { path = "../logger", version = "=1.6.22" }
|
||||
solana-version = { path = "../version", version = "=1.6.22" }
|
||||
|
||||
[[bin]]
|
||||
name = "solana-log-analyzer"
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-logger"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
description = "Solana Logger"
|
||||
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
|
@@ -1,7 +1,7 @@
|
||||
[package]
|
||||
name = "solana-measure"
|
||||
description = "Blockchain, Rebuilt for Scale"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
homepage = "https://solana.com/"
|
||||
documentation = "https://docs.rs/solana-measure"
|
||||
readme = "../README.md"
|
||||
@@ -12,8 +12,8 @@ edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
log = "0.4.11"
|
||||
solana-sdk = { path = "../sdk", version = "=1.6.19" }
|
||||
solana-metrics = { path = "../metrics", version = "=1.6.19" }
|
||||
solana-sdk = { path = "../sdk", version = "=1.6.22" }
|
||||
solana-metrics = { path = "../metrics", version = "=1.6.22" }
|
||||
|
||||
[target."cfg(unix)".dependencies]
|
||||
jemallocator = "0.3.2"
|
||||
|
@@ -2,7 +2,7 @@
|
||||
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
|
||||
edition = "2018"
|
||||
name = "solana-merkle-root-bench"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
license = "Apache-2.0"
|
||||
homepage = "https://solana.com/"
|
||||
@@ -10,11 +10,11 @@ publish = false
|
||||
|
||||
[dependencies]
|
||||
log = "0.4.11"
|
||||
solana-logger = { path = "../logger", version = "=1.6.19" }
|
||||
solana-runtime = { path = "../runtime", version = "=1.6.19" }
|
||||
solana-measure = { path = "../measure", version = "=1.6.19" }
|
||||
solana-sdk = { path = "../sdk", version = "=1.6.19" }
|
||||
solana-version = { path = "../version", version = "=1.6.19" }
|
||||
solana-logger = { path = "../logger", version = "=1.6.22" }
|
||||
solana-runtime = { path = "../runtime", version = "=1.6.22" }
|
||||
solana-measure = { path = "../measure", version = "=1.6.22" }
|
||||
solana-sdk = { path = "../sdk", version = "=1.6.22" }
|
||||
solana-version = { path = "../version", version = "=1.6.22" }
|
||||
clap = "2.33.1"
|
||||
|
||||
[package.metadata.docs.rs]
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-merkle-tree"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
description = "Solana Merkle Tree"
|
||||
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-merkle-tree"
|
||||
edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
solana-program = { path = "../sdk/program", version = "=1.6.19" }
|
||||
solana-program = { path = "../sdk/program", version = "=1.6.22" }
|
||||
fast-math = "0.1"
|
||||
|
||||
# This can go once the BPF toolchain target Rust 1.42.0+
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-metrics"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
description = "Solana Metrics"
|
||||
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -15,7 +15,7 @@ gethostname = "0.2.1"
|
||||
lazy_static = "1.4.0"
|
||||
log = "0.4.11"
|
||||
reqwest = { version = "0.11.2", default-features = false, features = ["blocking", "rustls-tls", "json"] }
|
||||
solana-sdk = { path = "../sdk", version = "=1.6.19" }
|
||||
solana-sdk = { path = "../sdk", version = "=1.6.22" }
|
||||
|
||||
[dev-dependencies]
|
||||
rand = "0.7.0"
|
||||
|
@@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.foundation>"]
|
||||
edition = "2018"
|
||||
name = "solana-net-shaper"
|
||||
description = "The solana cluster network shaping tool"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
license = "Apache-2.0"
|
||||
homepage = "https://solana.com/"
|
||||
@@ -13,8 +13,8 @@ publish = false
|
||||
clap = "2.33.1"
|
||||
serde = "1.0.122"
|
||||
serde_json = "1.0.56"
|
||||
solana-clap-utils = { path = "../clap-utils", version = "=1.6.19" }
|
||||
solana-logger = { path = "../logger", version = "=1.6.19" }
|
||||
solana-clap-utils = { path = "../clap-utils", version = "=1.6.22" }
|
||||
solana-logger = { path = "../logger", version = "=1.6.22" }
|
||||
rand = "0.7.0"
|
||||
|
||||
[[bin]]
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-net-utils"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
description = "Solana Network Utilities"
|
||||
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -18,9 +18,9 @@ rand = "0.7.0"
|
||||
serde = "1.0.122"
|
||||
serde_derive = "1.0.103"
|
||||
socket2 = "0.3.17"
|
||||
solana-clap-utils = { path = "../clap-utils", version = "=1.6.19" }
|
||||
solana-logger = { path = "../logger", version = "=1.6.19" }
|
||||
solana-version = { path = "../version", version = "=1.6.19" }
|
||||
solana-clap-utils = { path = "../clap-utils", version = "=1.6.22" }
|
||||
solana-logger = { path = "../logger", version = "=1.6.22" }
|
||||
solana-version = { path = "../version", version = "=1.6.22" }
|
||||
tokio = { version = "1", features = ["full"] }
|
||||
url = "2.1.1"
|
||||
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-notifier"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
description = "Solana Notifier"
|
||||
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-perf"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
description = "Solana Performance APIs"
|
||||
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -18,12 +18,12 @@ serde = "1.0.122"
|
||||
dlopen_derive = "0.1.4"
|
||||
lazy_static = "1.4.0"
|
||||
log = "0.4.11"
|
||||
solana-sdk = { path = "../sdk", version = "=1.6.19" }
|
||||
solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "=1.6.19" }
|
||||
solana-budget-program = { path = "../programs/budget", version = "=1.6.19" }
|
||||
solana-logger = { path = "../logger", version = "=1.6.19" }
|
||||
solana-measure = { path = "../measure", version = "=1.6.19" }
|
||||
solana-metrics = { path = "../metrics", version = "=1.6.19" }
|
||||
solana-sdk = { path = "../sdk", version = "=1.6.22" }
|
||||
solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "=1.6.22" }
|
||||
solana-budget-program = { path = "../programs/budget", version = "=1.6.22" }
|
||||
solana-logger = { path = "../logger", version = "=1.6.22" }
|
||||
solana-measure = { path = "../measure", version = "=1.6.22" }
|
||||
solana-metrics = { path = "../metrics", version = "=1.6.22" }
|
||||
curve25519-dalek = { version = "2" }
|
||||
|
||||
[lib]
|
||||
|
@@ -118,10 +118,8 @@ fn verify_packet(packet: &mut Packet) {
|
||||
let pubkey_end = pubkey_start.saturating_add(size_of::<Pubkey>());
|
||||
let sig_end = sig_start.saturating_add(size_of::<Signature>());
|
||||
|
||||
if pubkey_end >= packet.meta.size || sig_end >= packet.meta.size {
|
||||
packet.meta.discard = true;
|
||||
return;
|
||||
}
|
||||
// get_packet_offsets should ensure pubkey_end and sig_end do
|
||||
// not overflow packet.meta.size
|
||||
|
||||
let signature = Signature::new(&packet.data[sig_start..sig_end]);
|
||||
|
||||
@@ -217,6 +215,10 @@ fn do_get_packet_offsets(
|
||||
.filter(|v| *v <= packet.meta.size)
|
||||
.ok_or(PacketError::InvalidPubkeyLen)?;
|
||||
|
||||
if pubkey_len < sig_len_untrusted {
|
||||
return Err(PacketError::InvalidPubkeyLen);
|
||||
}
|
||||
|
||||
let sig_start = current_offset
|
||||
.checked_add(sig_size)
|
||||
.ok_or(PacketError::InvalidLen)?;
|
||||
@@ -597,6 +599,65 @@ mod tests {
|
||||
assert_eq!(res, Err(PacketError::InvalidLen));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_pubkey_too_small() {
|
||||
solana_logger::setup();
|
||||
let mut tx = test_tx();
|
||||
let sig = tx.signatures[0];
|
||||
const NUM_SIG: usize = 18;
|
||||
tx.signatures = vec![sig; NUM_SIG];
|
||||
tx.message.account_keys = vec![];
|
||||
tx.message.header.num_required_signatures = NUM_SIG as u8;
|
||||
let mut packet = sigverify::make_packet_from_transaction(tx);
|
||||
|
||||
let res = sigverify::do_get_packet_offsets(&packet, 0);
|
||||
assert_eq!(res, Err(PacketError::InvalidPubkeyLen));
|
||||
|
||||
verify_packet(&mut packet);
|
||||
assert!(packet.meta.discard);
|
||||
|
||||
packet.meta.discard = false;
|
||||
let mut batches = generate_packet_vec(&packet, 1, 1);
|
||||
ed25519_verify(&mut batches);
|
||||
assert!(batches[0].packets[0].meta.discard);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_pubkey_len() {
|
||||
// See that the verify cannot walk off the end of the packet
|
||||
// trying to index into the account_keys to access pubkey.
|
||||
use solana_sdk::signer::{keypair::Keypair, Signer};
|
||||
solana_logger::setup();
|
||||
|
||||
const NUM_SIG: usize = 17;
|
||||
let keypair1 = Keypair::new();
|
||||
let pubkey1 = keypair1.pubkey();
|
||||
let mut message = Message::new(&[], Some(&pubkey1));
|
||||
message.account_keys.push(pubkey1);
|
||||
message.account_keys.push(pubkey1);
|
||||
message.header.num_required_signatures = NUM_SIG as u8;
|
||||
message.recent_blockhash = Hash(pubkey1.to_bytes());
|
||||
let mut tx = Transaction::new_unsigned(message);
|
||||
|
||||
info!("message: {:?}", tx.message_data());
|
||||
info!("tx: {:?}", tx);
|
||||
let sig = keypair1.try_sign_message(&tx.message_data()).unwrap();
|
||||
tx.signatures = vec![sig; NUM_SIG];
|
||||
|
||||
let mut packet = sigverify::make_packet_from_transaction(tx);
|
||||
|
||||
let res = sigverify::do_get_packet_offsets(&packet, 0);
|
||||
assert_eq!(res, Err(PacketError::InvalidPubkeyLen));
|
||||
|
||||
verify_packet(&mut packet);
|
||||
assert!(packet.meta.discard);
|
||||
|
||||
packet.meta.discard = false;
|
||||
let mut batches = generate_packet_vec(&packet, 1, 1);
|
||||
ed25519_verify(&mut batches);
|
||||
assert!(batches[0].packets[0].meta.discard);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_large_sig_len() {
|
||||
let tx = test_tx();
|
||||
@@ -748,10 +809,8 @@ mod tests {
|
||||
|
||||
let mut batches = generate_packet_vec(&packet, n, 2);
|
||||
|
||||
let recycler = Recycler::new_without_limit("");
|
||||
let recycler_out = Recycler::new_without_limit("");
|
||||
// verify packets
|
||||
sigverify::ed25519_verify(&mut batches, &recycler, &recycler_out);
|
||||
ed25519_verify(&mut batches);
|
||||
|
||||
// check result
|
||||
let should_discard = modify_data;
|
||||
@@ -761,6 +820,12 @@ mod tests {
|
||||
.all(|p| p.meta.discard == should_discard));
|
||||
}
|
||||
|
||||
fn ed25519_verify(batches: &mut [Packets]) {
|
||||
let recycler = Recycler::new_without_limit("");
|
||||
let recycler_out = Recycler::new_without_limit("");
|
||||
sigverify::ed25519_verify(batches, &recycler, &recycler_out);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_verify_tampered_sig_len() {
|
||||
let mut tx = test_tx();
|
||||
@@ -770,10 +835,8 @@ mod tests {
|
||||
|
||||
let mut batches = generate_packet_vec(&packet, 1, 1);
|
||||
|
||||
let recycler = Recycler::new_without_limit("");
|
||||
let recycler_out = Recycler::new_without_limit("");
|
||||
// verify packets
|
||||
sigverify::ed25519_verify(&mut batches, &recycler, &recycler_out);
|
||||
ed25519_verify(&mut batches);
|
||||
assert!(batches
|
||||
.iter()
|
||||
.flat_map(|p| &p.packets)
|
||||
@@ -810,10 +873,8 @@ mod tests {
|
||||
|
||||
batches[0].packets.push(packet);
|
||||
|
||||
let recycler = Recycler::new_without_limit("");
|
||||
let recycler_out = Recycler::new_without_limit("");
|
||||
// verify packets
|
||||
sigverify::ed25519_verify(&mut batches, &recycler, &recycler_out);
|
||||
ed25519_verify(&mut batches);
|
||||
|
||||
// check result
|
||||
let ref_ans = 1u8;
|
||||
|
@@ -2,7 +2,7 @@
|
||||
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
|
||||
edition = "2018"
|
||||
name = "solana-poh-bench"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
license = "Apache-2.0"
|
||||
homepage = "https://solana.com/"
|
||||
@@ -13,13 +13,13 @@ clap = "2.33.1"
|
||||
log = "0.4.11"
|
||||
rand = "0.7.0"
|
||||
rayon = "1.5.0"
|
||||
solana-logger = { path = "../logger", version = "=1.6.19" }
|
||||
solana-ledger = { path = "../ledger", version = "=1.6.19" }
|
||||
solana-sdk = { path = "../sdk", version = "=1.6.19" }
|
||||
solana-clap-utils = { path = "../clap-utils", version = "=1.6.19" }
|
||||
solana-measure = { path = "../measure", version = "=1.6.19" }
|
||||
solana-version = { path = "../version", version = "=1.6.19" }
|
||||
solana-perf = { path = "../perf", version = "=1.6.19" }
|
||||
solana-logger = { path = "../logger", version = "=1.6.22" }
|
||||
solana-ledger = { path = "../ledger", version = "=1.6.22" }
|
||||
solana-sdk = { path = "../sdk", version = "=1.6.22" }
|
||||
solana-clap-utils = { path = "../clap-utils", version = "=1.6.22" }
|
||||
solana-measure = { path = "../measure", version = "=1.6.22" }
|
||||
solana-version = { path = "../version", version = "=1.6.22" }
|
||||
solana-perf = { path = "../perf", version = "=1.6.22" }
|
||||
|
||||
[package.metadata.docs.rs]
|
||||
targets = ["x86_64-unknown-linux-gnu"]
|
||||
|
@@ -5,7 +5,7 @@ edition = "2018"
|
||||
license = "Apache-2.0"
|
||||
name = "solana-program-test"
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
|
||||
[dependencies]
|
||||
async-trait = "0.1.42"
|
||||
@@ -17,16 +17,16 @@ log = "0.4.11"
|
||||
mio = "0.7.6"
|
||||
serde = "1.0.112"
|
||||
serde_derive = "1.0.103"
|
||||
solana-banks-client = { path = "../banks-client", version = "=1.6.19" }
|
||||
solana-banks-server = { path = "../banks-server", version = "=1.6.19" }
|
||||
solana-bpf-loader-program = { path = "../programs/bpf_loader", version = "=1.6.19" }
|
||||
solana-logger = { path = "../logger", version = "=1.6.19" }
|
||||
solana-runtime = { path = "../runtime", version = "=1.6.19" }
|
||||
solana-sdk = { path = "../sdk", version = "=1.6.19" }
|
||||
solana-vote-program = { path = "../programs/vote", version = "=1.6.19" }
|
||||
solana-banks-client = { path = "../banks-client", version = "=1.6.22" }
|
||||
solana-banks-server = { path = "../banks-server", version = "=1.6.22" }
|
||||
solana-bpf-loader-program = { path = "../programs/bpf_loader", version = "=1.6.22" }
|
||||
solana-logger = { path = "../logger", version = "=1.6.22" }
|
||||
solana-runtime = { path = "../runtime", version = "=1.6.22" }
|
||||
solana-sdk = { path = "../sdk", version = "=1.6.22" }
|
||||
solana-vote-program = { path = "../programs/vote", version = "=1.6.22" }
|
||||
thiserror = "1.0"
|
||||
tokio = { version = "1", features = ["full"] }
|
||||
|
||||
[dev-dependencies]
|
||||
assert_matches = "1.3.0"
|
||||
solana-stake-program = { path = "../programs/stake", version = "=1.6.19" }
|
||||
solana-stake-program = { path = "../programs/stake", version = "=1.6.22" }
|
||||
|
414
programs/bpf/Cargo.lock
generated
414
programs/bpf/Cargo.lock
generated
File diff suppressed because it is too large
Load Diff
@@ -1,7 +1,7 @@
|
||||
[package]
|
||||
name = "solana-bpf-programs"
|
||||
description = "Blockchain, Rebuilt for Scale"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
documentation = "https://docs.rs/solana"
|
||||
homepage = "https://solana.com/"
|
||||
readme = "README.md"
|
||||
@@ -25,15 +25,15 @@ elf = "0.0.10"
|
||||
itertools = "0.10.0"
|
||||
miow = "0.2.2"
|
||||
net2 = "0.2.37"
|
||||
solana-bpf-loader-program = { path = "../bpf_loader", version = "=1.6.19" }
|
||||
solana-cli-output = { path = "../../cli-output", version = "=1.6.19" }
|
||||
solana-logger = { path = "../../logger", version = "=1.6.19" }
|
||||
solana-measure = { path = "../../measure", version = "=1.6.19" }
|
||||
solana-bpf-loader-program = { path = "../bpf_loader", version = "=1.6.22" }
|
||||
solana-cli-output = { path = "../../cli-output", version = "=1.6.22" }
|
||||
solana-logger = { path = "../../logger", version = "=1.6.22" }
|
||||
solana-measure = { path = "../../measure", version = "=1.6.22" }
|
||||
solana_rbpf = "=0.2.9"
|
||||
solana-runtime = { path = "../../runtime", version = "=1.6.19" }
|
||||
solana-sdk = { path = "../../sdk", version = "=1.6.19" }
|
||||
solana-transaction-status = { path = "../../transaction-status", version = "=1.6.19" }
|
||||
solana-account-decoder = { path = "../../account-decoder", version = "=1.6.19" }
|
||||
solana-runtime = { path = "../../runtime", version = "=1.6.22" }
|
||||
solana-sdk = { path = "../../sdk", version = "=1.6.22" }
|
||||
solana-transaction-status = { path = "../../transaction-status", version = "=1.6.22" }
|
||||
solana-account-decoder = { path = "../../account-decoder", version = "=1.6.22" }
|
||||
|
||||
|
||||
[[bench]]
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-bpf-rust-128bit"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
description = "Solana BPF test program written in Rust"
|
||||
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -10,8 +10,8 @@ documentation = "https://docs.rs/solana-bpf-rust-128bit"
|
||||
edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
solana-program = { path = "../../../../sdk/program", version = "=1.6.19" }
|
||||
solana-bpf-rust-128bit-dep = { path = "../128bit_dep", version = "=1.6.19" }
|
||||
solana-program = { path = "../../../../sdk/program", version = "=1.6.22" }
|
||||
solana-bpf-rust-128bit-dep = { path = "../128bit_dep", version = "=1.6.22" }
|
||||
|
||||
[lib]
|
||||
crate-type = ["cdylib"]
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-bpf-rust-128bit-dep"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
description = "Solana BPF test program written in Rust"
|
||||
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-bpf-rust-128bit-dep"
|
||||
edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
solana-program = { path = "../../../../sdk/program", version = "=1.6.19" }
|
||||
solana-program = { path = "../../../../sdk/program", version = "=1.6.22" }
|
||||
|
||||
[package.metadata.docs.rs]
|
||||
targets = ["x86_64-unknown-linux-gnu"]
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-bpf-rust-alloc"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
description = "Solana BPF test program written in Rust"
|
||||
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-bpf-rust-alloc"
|
||||
edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
solana-program = { path = "../../../../sdk/program", version = "=1.6.19" }
|
||||
solana-program = { path = "../../../../sdk/program", version = "=1.6.22" }
|
||||
|
||||
[lib]
|
||||
crate-type = ["cdylib"]
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-bpf-rust-call-depth"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
description = "Solana BPF test program written in Rust"
|
||||
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-bpf-rust-call-depth"
|
||||
edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
solana-program = { path = "../../../../sdk/program", version = "=1.6.19" }
|
||||
solana-program = { path = "../../../../sdk/program", version = "=1.6.22" }
|
||||
|
||||
[lib]
|
||||
crate-type = ["cdylib"]
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-bpf-rust-caller-access"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
description = "Solana BPF test program written in Rust"
|
||||
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-bpf-rust-caller-access"
|
||||
edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
solana-program = { path = "../../../../sdk/program", version = "=1.6.19" }
|
||||
solana-program = { path = "../../../../sdk/program", version = "=1.6.22" }
|
||||
|
||||
[lib]
|
||||
crate-type = ["cdylib"]
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-bpf-rust-custom-heap"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
description = "Solana BPF test program written in Rust"
|
||||
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-bpf-rust-custom-heap"
|
||||
edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
solana-program = { path = "../../../../sdk/program", version = "=1.6.19" }
|
||||
solana-program = { path = "../../../../sdk/program", version = "=1.6.22" }
|
||||
|
||||
[features]
|
||||
default = ["custom-heap"]
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-bpf-rust-dep-crate"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
description = "Solana BPF test program written in Rust"
|
||||
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -11,7 +11,7 @@ edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
byteorder = { version = "1", default-features = false }
|
||||
solana-program = { path = "../../../../sdk/program", version = "=1.6.19" }
|
||||
solana-program = { path = "../../../../sdk/program", version = "=1.6.22" }
|
||||
|
||||
[lib]
|
||||
crate-type = ["cdylib"]
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-bpf-rust-deprecated-loader"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
description = "Solana BPF test program written in Rust"
|
||||
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-bpf-rust-deprecated-loader"
|
||||
edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
solana-program = { path = "../../../../sdk/program", version = "=1.6.19" }
|
||||
solana-program = { path = "../../../../sdk/program", version = "=1.6.22" }
|
||||
|
||||
[lib]
|
||||
crate-type = ["cdylib"]
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-bpf-rust-dup-accounts"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
description = "Solana BPF test program written in Rust"
|
||||
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-bpf-rust-dup-accounts"
|
||||
edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
solana-program = { path = "../../../../sdk/program", version = "=1.6.19" }
|
||||
solana-program = { path = "../../../../sdk/program", version = "=1.6.22" }
|
||||
|
||||
[lib]
|
||||
crate-type = ["cdylib"]
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-bpf-rust-error-handling"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
description = "Solana BPF test program written in Rust"
|
||||
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -12,7 +12,7 @@ edition = "2018"
|
||||
[dependencies]
|
||||
num-derive = "0.2"
|
||||
num-traits = "0.2"
|
||||
solana-program = { path = "../../../../sdk/program", version = "=1.6.19" }
|
||||
solana-program = { path = "../../../../sdk/program", version = "=1.6.22" }
|
||||
thiserror = "1.0"
|
||||
|
||||
[lib]
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-bpf-rust-external-spend"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
description = "Solana BPF test program written in Rust"
|
||||
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-bpf-rust-external-spend"
|
||||
edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
solana-program = { path = "../../../../sdk/program", version = "=1.6.19" }
|
||||
solana-program = { path = "../../../../sdk/program", version = "=1.6.22" }
|
||||
|
||||
[lib]
|
||||
crate-type = ["cdylib"]
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-bpf-rust-finalize"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
description = "Solana BPF test program written in Rust"
|
||||
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-bpf-rust-finalize"
|
||||
edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
solana-program = { path = "../../../../sdk/program", version = "=1.6.19" }
|
||||
solana-program = { path = "../../../../sdk/program", version = "=1.6.22" }
|
||||
|
||||
[lib]
|
||||
crate-type = ["cdylib"]
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-bpf-rust-instruction-introspection"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
description = "Solana BPF test program written in Rust"
|
||||
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-bpf-rust-instruction-introspection"
|
||||
edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
solana-program = { path = "../../../../sdk/program", version = "=1.6.19" }
|
||||
solana-program = { path = "../../../../sdk/program", version = "=1.6.22" }
|
||||
|
||||
[lib]
|
||||
crate-type = ["cdylib"]
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-bpf-rust-invoke"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
description = "Solana BPF test program written in Rust"
|
||||
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -11,7 +11,7 @@ edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
solana-bpf-rust-invoked = { path = "../invoked", default-features = false }
|
||||
solana-program = { path = "../../../../sdk/program", version = "=1.6.19" }
|
||||
solana-program = { path = "../../../../sdk/program", version = "=1.6.22" }
|
||||
|
||||
[lib]
|
||||
crate-type = ["cdylib"]
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-bpf-rust-invoke-and-error"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
description = "Solana BPF test program written in Rust"
|
||||
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-bpf-rust-invoke-and-error"
|
||||
edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
solana-program = { path = "../../../../sdk/program", version = "=1.6.19" }
|
||||
solana-program = { path = "../../../../sdk/program", version = "=1.6.22" }
|
||||
|
||||
[lib]
|
||||
crate-type = ["cdylib"]
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-bpf-rust-invoke-and-ok"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
description = "Solana BPF test program written in Rust"
|
||||
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-bpf-rust-invoke-and-ok"
|
||||
edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
solana-program = { path = "../../../../sdk/program", version = "=1.6.19" }
|
||||
solana-program = { path = "../../../../sdk/program", version = "=1.6.22" }
|
||||
|
||||
[lib]
|
||||
crate-type = ["cdylib"]
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-bpf-rust-invoke-and-return"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
description = "Solana BPF test program written in Rust"
|
||||
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-bpf-rust-invoke-and-return"
|
||||
edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
solana-program = { path = "../../../../sdk/program", version = "=1.6.19" }
|
||||
solana-program = { path = "../../../../sdk/program", version = "=1.6.22" }
|
||||
|
||||
[lib]
|
||||
crate-type = ["cdylib"]
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-bpf-rust-invoked"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
description = "Solana BPF test program written in Rust"
|
||||
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-bpf-rust-invoked"
|
||||
edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
solana-program = { path = "../../../../sdk/program", version = "=1.6.19" }
|
||||
solana-program = { path = "../../../../sdk/program", version = "=1.6.22" }
|
||||
|
||||
[features]
|
||||
default = ["program"]
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-bpf-rust-iter"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
description = "Solana BPF test program written in Rust"
|
||||
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-bpf-rust-iter"
|
||||
edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
solana-program = { path = "../../../../sdk/program", version = "=1.6.19" }
|
||||
solana-program = { path = "../../../../sdk/program", version = "=1.6.22" }
|
||||
|
||||
[lib]
|
||||
crate-type = ["cdylib"]
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-bpf-rust-many-args"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
description = "Solana BPF test program written in Rust"
|
||||
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -10,8 +10,8 @@ documentation = "https://docs.rs/solana-bpf-rust-many-args"
|
||||
edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
solana-program = { path = "../../../../sdk/program", version = "=1.6.19" }
|
||||
solana-bpf-rust-many-args-dep = { path = "../many_args_dep", version = "=1.6.19" }
|
||||
solana-program = { path = "../../../../sdk/program", version = "=1.6.22" }
|
||||
solana-bpf-rust-many-args-dep = { path = "../many_args_dep", version = "=1.6.22" }
|
||||
|
||||
[lib]
|
||||
crate-type = ["cdylib"]
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-bpf-rust-many-args-dep"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
description = "Solana BPF test program written in Rust"
|
||||
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-bpf-rust-many-args-dep"
|
||||
edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
solana-program = { path = "../../../../sdk/program", version = "=1.6.19" }
|
||||
solana-program = { path = "../../../../sdk/program", version = "=1.6.22" }
|
||||
|
||||
[package.metadata.docs.rs]
|
||||
targets = ["x86_64-unknown-linux-gnu"]
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-bpf-rust-mem"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
description = "Solana BPF test program written in Rust"
|
||||
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -13,11 +13,11 @@ edition = "2018"
|
||||
no-entrypoint = []
|
||||
|
||||
[dependencies]
|
||||
solana-program = { path = "../../../../sdk/program", version = "=1.6.19" }
|
||||
solana-program = { path = "../../../../sdk/program", version = "=1.6.22" }
|
||||
|
||||
[dev-dependencies]
|
||||
solana-program-test = { path = "../../../../program-test", version = "=1.6.19" }
|
||||
solana-sdk = { path = "../../../../sdk", version = "=1.6.19" }
|
||||
solana-program-test = { path = "../../../../program-test", version = "=1.6.22" }
|
||||
solana-sdk = { path = "../../../../sdk", version = "=1.6.22" }
|
||||
|
||||
[lib]
|
||||
crate-type = ["cdylib", "lib"]
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-bpf-rust-membuiltins"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
description = "Solana BPF test program written in Rust"
|
||||
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -10,8 +10,8 @@ documentation = "https://docs.rs/solana-bpf-rust-mem"
|
||||
edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
solana-bpf-rust-mem = { path = "../mem", version = "=1.6.19", features = [ "no-entrypoint" ] }
|
||||
solana-program = { path = "../../../../sdk/program", version = "=1.6.19" }
|
||||
solana-bpf-rust-mem = { path = "../mem", version = "=1.6.22", features = [ "no-entrypoint" ] }
|
||||
solana-program = { path = "../../../../sdk/program", version = "=1.6.22" }
|
||||
|
||||
[lib]
|
||||
crate-type = ["cdylib"]
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-bpf-rust-noop"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
description = "Solana BPF test program written in Rust"
|
||||
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-bpf-rust-noop"
|
||||
edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
solana-program = { path = "../../../../sdk/program", version = "=1.6.19" }
|
||||
solana-program = { path = "../../../../sdk/program", version = "=1.6.22" }
|
||||
|
||||
[lib]
|
||||
crate-type = ["cdylib"]
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-bpf-rust-panic"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
description = "Solana BPF test program written in Rust"
|
||||
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-bpf-rust-panic"
|
||||
edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
solana-program = { path = "../../../../sdk/program", version = "=1.6.19" }
|
||||
solana-program = { path = "../../../../sdk/program", version = "=1.6.22" }
|
||||
|
||||
[features]
|
||||
default = ["custom-panic"]
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-bpf-rust-param-passing"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
description = "Solana BPF test program written in Rust"
|
||||
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -10,8 +10,8 @@ documentation = "https://docs.rs/solana-bpf-rust-param-passing"
|
||||
edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
solana-program = { path = "../../../../sdk/program", version = "=1.6.19" }
|
||||
solana-bpf-rust-param-passing-dep = { path = "../param_passing_dep", version = "=1.6.19" }
|
||||
solana-program = { path = "../../../../sdk/program", version = "=1.6.22" }
|
||||
solana-bpf-rust-param-passing-dep = { path = "../param_passing_dep", version = "=1.6.22" }
|
||||
|
||||
[lib]
|
||||
crate-type = ["cdylib"]
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-bpf-rust-param-passing-dep"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
description = "Solana BPF program written in Rust"
|
||||
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-bpf-rust-param-passing-dep"
|
||||
edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
solana-program = { path = "../../../../sdk/program", version = "=1.6.19" }
|
||||
solana-program = { path = "../../../../sdk/program", version = "=1.6.22" }
|
||||
|
||||
[package.metadata.docs.rs]
|
||||
targets = ["x86_64-unknown-linux-gnu"]
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-bpf-rust-rand"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
description = "Solana BPF test program written in Rust"
|
||||
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -12,7 +12,7 @@ edition = "2018"
|
||||
[dependencies]
|
||||
getrandom = { version = "0.1.14", features = ["dummy"] }
|
||||
rand = "0.7"
|
||||
solana-program = { path = "../../../../sdk/program", version = "=1.6.19" }
|
||||
solana-program = { path = "../../../../sdk/program", version = "=1.6.22" }
|
||||
|
||||
[lib]
|
||||
crate-type = ["cdylib"]
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-bpf-rust-ro-modify"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
description = "Solana BPF test program written in Rust"
|
||||
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-bpf-rust-ro-modify"
|
||||
edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
solana-program = { path = "../../../../sdk/program", version = "=1.6.19" }
|
||||
solana-program = { path = "../../../../sdk/program", version = "=1.6.22" }
|
||||
|
||||
[lib]
|
||||
crate-type = ["cdylib"]
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-bpf-rust-sanity"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
description = "Solana BPF test program written in Rust"
|
||||
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-bpf-rust-sanity"
|
||||
edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
solana-program = { path = "../../../../sdk/program", version = "=1.6.19" }
|
||||
solana-program = { path = "../../../../sdk/program", version = "=1.6.22" }
|
||||
|
||||
[lib]
|
||||
crate-type = ["cdylib"]
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-bpf-rust-sha"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
description = "Solana BPF test program written in Rust"
|
||||
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-bpf-rust-sha"
|
||||
edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
solana-program = { path = "../../../../sdk/program", version = "=1.6.19" }
|
||||
solana-program = { path = "../../../../sdk/program", version = "=1.6.22" }
|
||||
|
||||
[lib]
|
||||
crate-type = ["cdylib"]
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-bpf-rust-spoof1"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
description = "Solana BPF test program written in Rust"
|
||||
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-bpf-rust-spoof1"
|
||||
edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
solana-program = { path = "../../../../sdk/program", version = "=1.6.19" }
|
||||
solana-program = { path = "../../../../sdk/program", version = "=1.6.22" }
|
||||
|
||||
[lib]
|
||||
crate-type = ["cdylib"]
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-bpf-rust-spoof1-system"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
description = "Solana BPF test program written in Rust"
|
||||
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-bpf-rust-spoof1-system"
|
||||
edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
solana-program = { path = "../../../../sdk/program", version = "=1.6.19" }
|
||||
solana-program = { path = "../../../../sdk/program", version = "=1.6.22" }
|
||||
|
||||
[lib]
|
||||
crate-type = ["cdylib"]
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-bpf-rust-sysvar"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
description = "Solana BPF test program written in Rust"
|
||||
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-bpf-rust-sysvar"
|
||||
edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
solana-program = { path = "../../../../sdk/program", version = "=1.6.19" }
|
||||
solana-program = { path = "../../../../sdk/program", version = "=1.6.22" }
|
||||
|
||||
[lib]
|
||||
crate-type = ["cdylib"]
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-bpf-rust-upgradeable"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
description = "Solana BPF test program written in Rust"
|
||||
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-bpf-rust-upgradeable"
|
||||
edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
solana-program = { path = "../../../../sdk/program", version = "=1.6.19" }
|
||||
solana-program = { path = "../../../../sdk/program", version = "=1.6.22" }
|
||||
|
||||
[lib]
|
||||
name = "solana_bpf_rust_upgradeable"
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-bpf-rust-upgraded"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
description = "Solana BPF test program written in Rust"
|
||||
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -10,7 +10,7 @@ documentation = "https://docs.rs/solana-bpf-rust-upgraded"
|
||||
edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
solana-program = { path = "../../../../sdk/program", version = "=1.6.19" }
|
||||
solana-program = { path = "../../../../sdk/program", version = "=1.6.22" }
|
||||
|
||||
[lib]
|
||||
name = "solana_bpf_rust_upgraded"
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-bpf-loader-program"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
description = "Solana BPF loader"
|
||||
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -17,9 +17,9 @@ num-derive = "0.3"
|
||||
num-traits = "0.2"
|
||||
rand_core = "0.6.2"
|
||||
sha3 = "0.9.1"
|
||||
solana-measure = { path = "../../measure", version = "=1.6.19" }
|
||||
solana-runtime = { path = "../../runtime", version = "=1.6.19" }
|
||||
solana-sdk = { path = "../../sdk", version = "=1.6.19" }
|
||||
solana-measure = { path = "../../measure", version = "=1.6.22" }
|
||||
solana-runtime = { path = "../../runtime", version = "=1.6.22" }
|
||||
solana-sdk = { path = "../../sdk", version = "=1.6.22" }
|
||||
solana_rbpf = "=0.2.9"
|
||||
thiserror = "1.0"
|
||||
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-budget-program"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
description = "Solana Budget program"
|
||||
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -17,11 +17,11 @@ num-derive = "0.3"
|
||||
num-traits = "0.2"
|
||||
serde = "1.0.122"
|
||||
serde_derive = "1.0.103"
|
||||
solana-sdk = { path = "../../sdk", version = "=1.6.19" }
|
||||
solana-sdk = { path = "../../sdk", version = "=1.6.22" }
|
||||
thiserror = "1.0"
|
||||
|
||||
[dev-dependencies]
|
||||
solana-runtime = { path = "../../runtime", version = "=1.6.19" }
|
||||
solana-runtime = { path = "../../runtime", version = "=1.6.22" }
|
||||
|
||||
[lib]
|
||||
crate-type = ["lib", "cdylib"]
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-config-program"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
description = "Solana Config program"
|
||||
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -16,10 +16,10 @@ log = "0.4.11"
|
||||
rand_core = "0.6.2"
|
||||
serde = "1.0.122"
|
||||
serde_derive = "1.0.103"
|
||||
solana-sdk = { path = "../../sdk", version = "=1.6.19" }
|
||||
solana-sdk = { path = "../../sdk", version = "=1.6.22" }
|
||||
|
||||
[dev-dependencies]
|
||||
solana-logger = { path = "../../logger", version = "=1.6.19" }
|
||||
solana-logger = { path = "../../logger", version = "=1.6.22" }
|
||||
|
||||
[lib]
|
||||
crate-type = ["lib"]
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-exchange-program"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
description = "Solana Exchange program"
|
||||
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -16,13 +16,13 @@ num-derive = { version = "0.3" }
|
||||
num-traits = { version = "0.2" }
|
||||
serde = "1.0.122"
|
||||
serde_derive = "1.0.103"
|
||||
solana-logger = { path = "../../logger", version = "=1.6.19" }
|
||||
solana-metrics = { path = "../../metrics", version = "=1.6.19" }
|
||||
solana-sdk = { path = "../../sdk", version = "=1.6.19" }
|
||||
solana-logger = { path = "../../logger", version = "=1.6.22" }
|
||||
solana-metrics = { path = "../../metrics", version = "=1.6.22" }
|
||||
solana-sdk = { path = "../../sdk", version = "=1.6.22" }
|
||||
thiserror = "1.0"
|
||||
|
||||
[dev-dependencies]
|
||||
solana-runtime = { path = "../../runtime", version = "=1.6.19" }
|
||||
solana-runtime = { path = "../../runtime", version = "=1.6.22" }
|
||||
|
||||
[lib]
|
||||
crate-type = ["lib", "cdylib"]
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-failure-program"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
description = "Solana failure program"
|
||||
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -10,10 +10,10 @@ documentation = "https://docs.rs/solana-failure-program"
|
||||
edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
solana-sdk = { path = "../../sdk", version = "=1.6.19" }
|
||||
solana-sdk = { path = "../../sdk", version = "=1.6.22" }
|
||||
|
||||
[dev-dependencies]
|
||||
solana-runtime = { path = "../../runtime", version = "=1.6.19" }
|
||||
solana-runtime = { path = "../../runtime", version = "=1.6.22" }
|
||||
|
||||
[lib]
|
||||
crate-type = ["lib", "cdylib"]
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-noop-program"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
description = "Solana Noop program"
|
||||
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -11,8 +11,8 @@ edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
log = "0.4.11"
|
||||
solana-logger = { path = "../../logger", version = "=1.6.19" }
|
||||
solana-sdk = { path = "../../sdk", version = "=1.6.19" }
|
||||
solana-logger = { path = "../../logger", version = "=1.6.22" }
|
||||
solana-sdk = { path = "../../sdk", version = "=1.6.22" }
|
||||
|
||||
[lib]
|
||||
crate-type = ["lib", "cdylib"]
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-ownable"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
description = "ownable program"
|
||||
authors = ["Solana Maintainers <maintainers@solana.foundation>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -11,13 +11,13 @@ edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
bincode = "1.3.1"
|
||||
solana-sdk = { path = "../../sdk", version = "=1.6.19" }
|
||||
solana-sdk = { path = "../../sdk", version = "=1.6.22" }
|
||||
num-derive = "0.3"
|
||||
num-traits = "0.2"
|
||||
thiserror = "1.0"
|
||||
|
||||
[dev-dependencies]
|
||||
solana-runtime = { path = "../../runtime", version = "=1.6.19" }
|
||||
solana-runtime = { path = "../../runtime", version = "=1.6.22" }
|
||||
|
||||
[lib]
|
||||
crate-type = ["lib", "cdylib"]
|
||||
|
@@ -1,7 +1,7 @@
|
||||
[package]
|
||||
name = "solana-secp256k1-program"
|
||||
description = "Solana Secp256k1 program"
|
||||
version = "1.6.19"
|
||||
version = "1.6.22"
|
||||
homepage = "https://solana.com/"
|
||||
documentation = "https://docs.rs/solana-secp256k1-program"
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -10,13 +10,13 @@ license = "Apache-2.0"
|
||||
edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
solana-sdk = { path = "../../sdk", version = "=1.6.19" }
|
||||
solana-sdk = { path = "../../sdk", version = "=1.6.22" }
|
||||
libsecp256k1 = "0.5.0"
|
||||
sha3 = "0.9.1"
|
||||
digest = "0.9.0"
|
||||
bincode = "1.3.1"
|
||||
rand = "0.7.0"
|
||||
solana-logger = { path = "../../logger", version = "=1.6.19" }
|
||||
solana-logger = { path = "../../logger", version = "=1.6.22" }
|
||||
|
||||
[lib]
|
||||
crate-type = ["lib"]
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user