Compare commits

..

9 Commits

Author SHA1 Message Date
mergify[bot]
535ee281e8 Filter old CrdsValues received via Pull Responses in Gossip (#8150) (#8277)
automerge
2020-02-14 10:21:26 -08:00
mergify[bot]
da843a7ace Fix larger than necessary allocations in streamer (#8187) (#8191)
automerge
2020-02-10 12:52:16 -08:00
Michael Vines
772cf8288c Bump version to 0.22.8 2020-02-03 21:08:54 -07:00
Michael Vines
e81a40ba55 Lock snapshot version to 0.22.6 2020-02-03 17:06:29 -07:00
Michael Vines
a52359a6be Cargo.lock 2020-02-03 17:05:35 -07:00
sakridge
2fe0853fba Fix consensus threshold when new root is created (#8093)
When a new root is created, the oldest slot is popped off
but when the logic checks for identical slots, it assumes
that any difference means a slot was popped off the front.
2020-02-03 16:47:02 -07:00
Sagar Dhawan
de3630f76c Filter repairman peers based on shred_version (#8069)
(cherry picked from commit b9988b62e4)
2020-02-01 08:58:26 -07:00
carllin
ff9e388843 Fix stale gossip entrypoint (#8053)
(cherry picked from commit fd207b6907)
2020-01-31 00:34:29 -07:00
Michael Vines
67a7995f04 Bump version to 0.22.7 2020-01-30 15:47:22 -07:00
87 changed files with 908 additions and 675 deletions

584
Cargo.lock generated

File diff suppressed because it is too large Load Diff

View File

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

View File

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

View File

@@ -2,7 +2,7 @@
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
edition = "2018" edition = "2018"
name = "solana-bench-exchange" name = "solana-bench-exchange"
version = "0.22.6" version = "0.22.8"
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0" license = "Apache-2.0"
homepage = "https://solana.com/" homepage = "https://solana.com/"
@@ -23,19 +23,19 @@ serde = "1.0.104"
serde_derive = "1.0.103" serde_derive = "1.0.103"
serde_json = "1.0.44" serde_json = "1.0.44"
serde_yaml = "0.8.11" serde_yaml = "0.8.11"
solana-clap-utils = { path = "../clap-utils", version = "0.22.6" } solana-clap-utils = { path = "../clap-utils", version = "0.22.8" }
solana-core = { path = "../core", version = "0.22.6" } solana-core = { path = "../core", version = "0.22.8" }
solana-genesis = { path = "../genesis", version = "0.22.6" } solana-genesis = { path = "../genesis", version = "0.22.8" }
solana-client = { path = "../client", version = "0.22.6" } solana-client = { path = "../client", version = "0.22.8" }
solana-faucet = { path = "../faucet", version = "0.22.6" } solana-faucet = { path = "../faucet", version = "0.22.8" }
solana-exchange-program = { path = "../programs/exchange", version = "0.22.6" } solana-exchange-program = { path = "../programs/exchange", version = "0.22.8" }
solana-logger = { path = "../logger", version = "0.22.6" } solana-logger = { path = "../logger", version = "0.22.8" }
solana-metrics = { path = "../metrics", version = "0.22.6" } solana-metrics = { path = "../metrics", version = "0.22.8" }
solana-net-utils = { path = "../net-utils", version = "0.22.6" } solana-net-utils = { path = "../net-utils", version = "0.22.8" }
solana-runtime = { path = "../runtime", version = "0.22.6" } solana-runtime = { path = "../runtime", version = "0.22.8" }
solana-sdk = { path = "../sdk", version = "0.22.6" } solana-sdk = { path = "../sdk", version = "0.22.8" }
untrusted = "0.7.0" untrusted = "0.7.0"
ws = "0.9.1" ws = "0.9.1"
[dev-dependencies] [dev-dependencies]
solana-local-cluster = { path = "../local-cluster", version = "0.22.6" } solana-local-cluster = { path = "../local-cluster", version = "0.22.8" }

View File

@@ -2,14 +2,14 @@
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
edition = "2018" edition = "2018"
name = "solana-bench-streamer" name = "solana-bench-streamer"
version = "0.22.6" version = "0.22.8"
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0" license = "Apache-2.0"
homepage = "https://solana.com/" homepage = "https://solana.com/"
[dependencies] [dependencies]
clap = "2.33.0" clap = "2.33.0"
solana-clap-utils = { path = "../clap-utils", version = "0.22.6" } solana-clap-utils = { path = "../clap-utils", version = "0.22.8" }
solana-core = { path = "../core", version = "0.22.6" } solana-core = { path = "../core", version = "0.22.8" }
solana-logger = { path = "../logger", version = "0.22.6" } solana-logger = { path = "../logger", version = "0.22.8" }
solana-net-utils = { path = "../net-utils", version = "0.22.6" } solana-net-utils = { path = "../net-utils", version = "0.22.8" }

View File

@@ -2,7 +2,7 @@
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
edition = "2018" edition = "2018"
name = "solana-bench-tps" name = "solana-bench-tps"
version = "0.22.6" version = "0.22.8"
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0" license = "Apache-2.0"
homepage = "https://solana.com/" homepage = "https://solana.com/"
@@ -16,24 +16,24 @@ serde = "1.0.104"
serde_derive = "1.0.103" serde_derive = "1.0.103"
serde_json = "1.0.44" serde_json = "1.0.44"
serde_yaml = "0.8.11" serde_yaml = "0.8.11"
solana-clap-utils = { path = "../clap-utils", version = "0.22.6" } solana-clap-utils = { path = "../clap-utils", version = "0.22.8" }
solana-core = { path = "../core", version = "0.22.6" } solana-core = { path = "../core", version = "0.22.8" }
solana-genesis = { path = "../genesis", version = "0.22.6" } solana-genesis = { path = "../genesis", version = "0.22.8" }
solana-client = { path = "../client", version = "0.22.6" } solana-client = { path = "../client", version = "0.22.8" }
solana-faucet = { path = "../faucet", version = "0.22.6" } solana-faucet = { path = "../faucet", version = "0.22.8" }
solana-librapay = { path = "../programs/librapay", version = "0.22.6", optional = true } solana-librapay = { path = "../programs/librapay", version = "0.22.8", optional = true }
solana-logger = { path = "../logger", version = "0.22.6" } solana-logger = { path = "../logger", version = "0.22.8" }
solana-metrics = { path = "../metrics", version = "0.22.6" } solana-metrics = { path = "../metrics", version = "0.22.8" }
solana-measure = { path = "../measure", version = "0.22.6" } solana-measure = { path = "../measure", version = "0.22.8" }
solana-net-utils = { path = "../net-utils", version = "0.22.6" } solana-net-utils = { path = "../net-utils", version = "0.22.8" }
solana-runtime = { path = "../runtime", version = "0.22.6" } solana-runtime = { path = "../runtime", version = "0.22.8" }
solana-sdk = { path = "../sdk", version = "0.22.6" } solana-sdk = { path = "../sdk", version = "0.22.8" }
solana-move-loader-program = { path = "../programs/move_loader", version = "0.22.6", optional = true } solana-move-loader-program = { path = "../programs/move_loader", version = "0.22.8", optional = true }
[dev-dependencies] [dev-dependencies]
serial_test = "0.3.2" serial_test = "0.3.2"
serial_test_derive = "0.3.1" serial_test_derive = "0.3.1"
solana-local-cluster = { path = "../local-cluster", version = "0.22.6" } solana-local-cluster = { path = "../local-cluster", version = "0.22.8" }
[features] [features]
move = ["solana-librapay", "solana-move-loader-program"] move = ["solana-librapay", "solana-move-loader-program"]

View File

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

View File

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

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "solana-clap-utils" name = "solana-clap-utils"
version = "0.22.6" version = "0.22.8"
description = "Solana utilities for the clap" description = "Solana utilities for the clap"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -12,7 +12,7 @@ edition = "2018"
clap = "2.33.0" clap = "2.33.0"
rpassword = "4.0" rpassword = "4.0"
semver = "0.9.0" semver = "0.9.0"
solana-sdk = { path = "../sdk", version = "0.22.6" } solana-sdk = { path = "../sdk", version = "0.22.8" }
tiny-bip39 = "0.6.2" tiny-bip39 = "0.6.2"
url = "2.1.0" url = "2.1.0"
chrono = "0.4" chrono = "0.4"

View File

@@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.com>"]
edition = "2018" edition = "2018"
name = "solana-cli" name = "solana-cli"
description = "Blockchain, Rebuilt for Scale" description = "Blockchain, Rebuilt for Scale"
version = "0.22.6" version = "0.22.8"
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0" license = "Apache-2.0"
homepage = "https://solana.com/" homepage = "https://solana.com/"
@@ -28,24 +28,24 @@ serde = "1.0.104"
serde_derive = "1.0.103" serde_derive = "1.0.103"
serde_json = "1.0.44" serde_json = "1.0.44"
serde_yaml = "0.8.11" serde_yaml = "0.8.11"
solana-budget-program = { path = "../programs/budget", version = "0.22.6" } solana-budget-program = { path = "../programs/budget", version = "0.22.8" }
solana-clap-utils = { path = "../clap-utils", version = "0.22.6" } solana-clap-utils = { path = "../clap-utils", version = "0.22.8" }
solana-client = { path = "../client", version = "0.22.6" } solana-client = { path = "../client", version = "0.22.8" }
solana-config-program = { path = "../programs/config", version = "0.22.6" } solana-config-program = { path = "../programs/config", version = "0.22.8" }
solana-faucet = { path = "../faucet", version = "0.22.6" } solana-faucet = { path = "../faucet", version = "0.22.8" }
solana-logger = { path = "../logger", version = "0.22.6" } solana-logger = { path = "../logger", version = "0.22.8" }
solana-net-utils = { path = "../net-utils", version = "0.22.6" } solana-net-utils = { path = "../net-utils", version = "0.22.8" }
solana-runtime = { path = "../runtime", version = "0.22.6" } solana-runtime = { path = "../runtime", version = "0.22.8" }
solana-sdk = { path = "../sdk", version = "0.22.6" } solana-sdk = { path = "../sdk", version = "0.22.8" }
solana-stake-program = { path = "../programs/stake", version = "0.22.6" } solana-stake-program = { path = "../programs/stake", version = "0.22.8" }
solana-storage-program = { path = "../programs/storage", version = "0.22.6" } solana-storage-program = { path = "../programs/storage", version = "0.22.8" }
solana-vote-program = { path = "../programs/vote", version = "0.22.6" } solana-vote-program = { path = "../programs/vote", version = "0.22.8" }
solana-vote-signer = { path = "../vote-signer", version = "0.22.6" } solana-vote-signer = { path = "../vote-signer", version = "0.22.8" }
url = "2.1.0" url = "2.1.0"
[dev-dependencies] [dev-dependencies]
solana-core = { path = "../core", version = "0.22.6" } solana-core = { path = "../core", version = "0.22.8" }
solana-budget-program = { path = "../programs/budget", version = "0.22.6" } solana-budget-program = { path = "../programs/budget", version = "0.22.8" }
tempfile = "3.1.0" tempfile = "3.1.0"
[[bin]] [[bin]]

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "solana-client" name = "solana-client"
version = "0.22.6" version = "0.22.8"
description = "Solana Client" description = "Solana Client"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -19,11 +19,11 @@ reqwest = { version = "0.9.24", default-features = false, features = ["rustls-tl
serde = "1.0.104" serde = "1.0.104"
serde_derive = "1.0.103" serde_derive = "1.0.103"
serde_json = "1.0.44" serde_json = "1.0.44"
solana-net-utils = { path = "../net-utils", version = "0.22.6" } solana-net-utils = { path = "../net-utils", version = "0.22.8" }
solana-sdk = { path = "../sdk", version = "0.22.6" } solana-sdk = { path = "../sdk", version = "0.22.8" }
[dev-dependencies] [dev-dependencies]
assert_matches = "1.3.0" assert_matches = "1.3.0"
jsonrpc-core = "14.0.5" jsonrpc-core = "14.0.5"
jsonrpc-http-server = "14.0.5" jsonrpc-http-server = "14.0.5"
solana-logger = { path = "../logger", version = "0.22.6" } solana-logger = { path = "../logger", version = "0.22.8" }

View File

@@ -1,7 +1,7 @@
[package] [package]
name = "solana-core" name = "solana-core"
description = "Blockchain, Rebuilt for Scale" description = "Blockchain, Rebuilt for Scale"
version = "0.22.6" version = "0.22.8"
documentation = "https://docs.rs/solana" documentation = "https://docs.rs/solana"
homepage = "https://solana.com/" homepage = "https://solana.com/"
readme = "../README.md" readme = "../README.md"
@@ -41,26 +41,26 @@ rayon = "1.2.0"
serde = "1.0.104" serde = "1.0.104"
serde_derive = "1.0.103" serde_derive = "1.0.103"
serde_json = "1.0.44" serde_json = "1.0.44"
solana-budget-program = { path = "../programs/budget", version = "0.22.6" } solana-budget-program = { path = "../programs/budget", version = "0.22.8" }
solana-clap-utils = { path = "../clap-utils", version = "0.22.6" } solana-clap-utils = { path = "../clap-utils", version = "0.22.8" }
solana-chacha-sys = { path = "../chacha-sys", version = "0.22.6" } solana-chacha-sys = { path = "../chacha-sys", version = "0.22.8" }
solana-client = { path = "../client", version = "0.22.6" } solana-client = { path = "../client", version = "0.22.8" }
solana-faucet = { path = "../faucet", version = "0.22.6" } solana-faucet = { path = "../faucet", version = "0.22.8" }
ed25519-dalek = "=1.0.0-pre.1" ed25519-dalek = "=1.0.0-pre.1"
solana-ledger = { path = "../ledger", version = "0.22.6" } solana-ledger = { path = "../ledger", version = "0.22.8" }
solana-logger = { path = "../logger", version = "0.22.6" } solana-logger = { path = "../logger", version = "0.22.8" }
solana-merkle-tree = { path = "../merkle-tree", version = "0.22.6" } solana-merkle-tree = { path = "../merkle-tree", version = "0.22.8" }
solana-metrics = { path = "../metrics", version = "0.22.6" } solana-metrics = { path = "../metrics", version = "0.22.8" }
solana-measure = { path = "../measure", version = "0.22.6" } solana-measure = { path = "../measure", version = "0.22.8" }
solana-net-utils = { path = "../net-utils", version = "0.22.6" } solana-net-utils = { path = "../net-utils", version = "0.22.8" }
solana-perf = { path = "../perf", version = "0.22.6" } solana-perf = { path = "../perf", version = "0.22.8" }
solana-runtime = { path = "../runtime", version = "0.22.6" } solana-runtime = { path = "../runtime", version = "0.22.8" }
solana-sdk = { path = "../sdk", version = "0.22.6" } solana-sdk = { path = "../sdk", version = "0.22.8" }
solana-stake-program = { path = "../programs/stake", version = "0.22.6" } solana-stake-program = { path = "../programs/stake", version = "0.22.8" }
solana-storage-program = { path = "../programs/storage", version = "0.22.6" } solana-storage-program = { path = "../programs/storage", version = "0.22.8" }
solana-vote-program = { path = "../programs/vote", version = "0.22.6" } solana-vote-program = { path = "../programs/vote", version = "0.22.8" }
solana-vote-signer = { path = "../vote-signer", version = "0.22.6" } solana-vote-signer = { path = "../vote-signer", version = "0.22.8" }
solana-sys-tuner = { path = "../sys-tuner", version = "0.22.6" } solana-sys-tuner = { path = "../sys-tuner", version = "0.22.8" }
symlink = "0.1.0" symlink = "0.1.0"
sys-info = "0.5.8" sys-info = "0.5.8"
tempfile = "3.1.0" tempfile = "3.1.0"
@@ -69,7 +69,7 @@ tokio-codec = "0.1"
tokio-fs = "0.1" tokio-fs = "0.1"
tokio-io = "0.1" tokio-io = "0.1"
untrusted = "0.7.0" untrusted = "0.7.0"
solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "0.22.6" } solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "0.22.8" }
reed-solomon-erasure = { package = "solana-reed-solomon-erasure", version = "4.0.1-3", features = ["simd-accel"] } reed-solomon-erasure = { package = "solana-reed-solomon-erasure", version = "4.0.1-3", features = ["simd-accel"] }
[dev-dependencies] [dev-dependencies]

View File

@@ -1287,10 +1287,12 @@ impl ClusterInfo {
stakes: &HashMap<Pubkey, u64>, stakes: &HashMap<Pubkey, u64>,
packets: Packets, packets: Packets,
response_sender: &PacketSender, response_sender: &PacketSender,
epoch_ms: u64,
) { ) {
// iter over the packets, collect pulls separately and process everything else // iter over the packets, collect pulls separately and process everything else
let allocated = thread_mem_usage::Allocatedp::default(); let allocated = thread_mem_usage::Allocatedp::default();
let mut gossip_pull_data: Vec<PullData> = vec![]; let mut gossip_pull_data: Vec<PullData> = vec![];
let timeouts = me.read().unwrap().gossip.make_timeouts(&stakes, epoch_ms);
packets.packets.iter().for_each(|packet| { packets.packets.iter().for_each(|packet| {
let from_addr = packet.meta.addr(); let from_addr = packet.meta.addr();
limited_deserialize(&packet.data[..packet.meta.size]) limited_deserialize(&packet.data[..packet.meta.size])
@@ -1332,7 +1334,7 @@ impl ClusterInfo {
} }
ret ret
}); });
Self::handle_pull_response(me, &from, data); Self::handle_pull_response(me, &from, data, &timeouts);
datapoint_debug!( datapoint_debug!(
"solana-gossip-listen-memory", "solana-gossip-listen-memory",
("pull_response", (allocated.get() - start) as i64, i64), ("pull_response", (allocated.get() - start) as i64, i64),
@@ -1451,7 +1453,12 @@ impl ClusterInfo {
Some(packets) Some(packets)
} }
fn handle_pull_response(me: &Arc<RwLock<Self>>, from: &Pubkey, data: Vec<CrdsValue>) { fn handle_pull_response(
me: &Arc<RwLock<Self>>,
from: &Pubkey,
data: Vec<CrdsValue>,
timeouts: &HashMap<Pubkey, u64>,
) {
let len = data.len(); let len = data.len();
let now = Instant::now(); let now = Instant::now();
let self_id = me.read().unwrap().gossip.id; let self_id = me.read().unwrap().gossip.id;
@@ -1459,7 +1466,7 @@ impl ClusterInfo {
me.write() me.write()
.unwrap() .unwrap()
.gossip .gossip
.process_pull_response(from, data, timestamp()); .process_pull_response(from, timeouts, data, timestamp());
inc_new_counter_debug!("cluster_info-pull_request_response", 1); inc_new_counter_debug!("cluster_info-pull_request_response", 1);
inc_new_counter_debug!("cluster_info-pull_request_response-size", len); inc_new_counter_debug!("cluster_info-pull_request_response-size", len);
@@ -1629,14 +1636,31 @@ impl ClusterInfo {
//TODO cache connections //TODO cache connections
let timeout = Duration::new(1, 0); let timeout = Duration::new(1, 0);
let reqs = requests_receiver.recv_timeout(timeout)?; let reqs = requests_receiver.recv_timeout(timeout)?;
let epoch_ms;
let stakes: HashMap<_, _> = match bank_forks { let stakes: HashMap<_, _> = match bank_forks {
Some(ref bank_forks) => { Some(ref bank_forks) => {
staking_utils::staked_nodes(&bank_forks.read().unwrap().working_bank()) let bank = bank_forks.read().unwrap().working_bank();
let epoch = bank.epoch();
let epoch_schedule = bank.epoch_schedule();
epoch_ms = epoch_schedule.get_slots_in_epoch(epoch) * DEFAULT_MS_PER_SLOT;
staking_utils::staked_nodes(&bank)
}
None => {
inc_new_counter_info!("cluster_info-purge-no_working_bank", 1);
epoch_ms = CRDS_GOSSIP_PULL_CRDS_TIMEOUT_MS;
HashMap::new()
} }
None => HashMap::new(),
}; };
Self::handle_packets(obj, &recycler, blockstore, &stakes, reqs, response_sender); Self::handle_packets(
obj,
&recycler,
blockstore,
&stakes,
reqs,
response_sender,
epoch_ms,
);
Ok(()) Ok(())
} }
pub fn listen( pub fn listen(
@@ -2597,10 +2621,12 @@ mod tests {
let entrypoint_crdsvalue = let entrypoint_crdsvalue =
CrdsValue::new_unsigned(CrdsData::ContactInfo(entrypoint.clone())); CrdsValue::new_unsigned(CrdsData::ContactInfo(entrypoint.clone()));
let cluster_info = Arc::new(RwLock::new(cluster_info)); let cluster_info = Arc::new(RwLock::new(cluster_info));
let timeouts = cluster_info.read().unwrap().gossip.make_timeouts_test();
ClusterInfo::handle_pull_response( ClusterInfo::handle_pull_response(
&cluster_info, &cluster_info,
&entrypoint_pubkey, &entrypoint_pubkey,
vec![entrypoint_crdsvalue], vec![entrypoint_crdsvalue],
&timeouts,
); );
let pulls = cluster_info let pulls = cluster_info
.write() .write()

View File

@@ -135,7 +135,7 @@ impl ClusterInfoRepairListener {
} }
let lowest_slot = blockstore.lowest_slot(); let lowest_slot = blockstore.lowest_slot();
let peers = cluster_info.read().unwrap().gossip_peers(); let peers = cluster_info.read().unwrap().tvu_peers();
let mut peers_needing_repairs: HashMap<Pubkey, EpochSlots> = HashMap::new(); let mut peers_needing_repairs: HashMap<Pubkey, EpochSlots> = HashMap::new();
// Iterate through all the known nodes in the network, looking for ones that // Iterate through all the known nodes in the network, looking for ones that

View File

@@ -327,21 +327,16 @@ impl Tower {
fork_stake.stake, fork_stake.stake,
total_staked total_staked
); );
for (new_lockout, original_lockout) in if vote.confirmation_count as usize > self.threshold_depth {
lockouts.votes.iter().zip(self.lockouts.votes.iter()) for old_vote in &self.lockouts.votes {
{ if old_vote.slot == vote.slot
if new_lockout.slot == original_lockout.slot { && old_vote.confirmation_count == vote.confirmation_count
if new_lockout.confirmation_count <= self.threshold_depth as u32 { {
break; return true;
} }
if new_lockout.confirmation_count != original_lockout.confirmation_count {
return lockout > self.threshold_size;
}
} else {
break;
} }
} }
true lockout > self.threshold_size
} else { } else {
false false
} }
@@ -556,6 +551,24 @@ mod test {
assert!(tower.check_vote_stake_threshold(0, &stakes, 2)); assert!(tower.check_vote_stake_threshold(0, &stakes, 2));
} }
#[test]
fn test_check_vote_threshold_no_skip_lockout_with_new_root() {
solana_logger::setup();
let mut tower = Tower::new_for_tests(4, 0.67);
let mut stakes = HashMap::new();
for i in 0..(MAX_LOCKOUT_HISTORY as u64 + 1) {
stakes.insert(
i,
StakeLockout {
stake: 1,
lockout: 8,
},
);
tower.record_vote(i, Hash::default());
}
assert!(!tower.check_vote_stake_threshold(MAX_LOCKOUT_HISTORY as u64 + 1, &stakes, 2));
}
#[test] #[test]
fn test_is_slot_confirmed_not_enough_stake_failure() { fn test_is_slot_confirmed_not_enough_stake_failure() {
let tower = Tower::new_for_tests(1, 0.67); let tower = Tower::new_for_tests(1, 0.67);

View File

@@ -156,11 +156,12 @@ impl CrdsGossip {
pub fn process_pull_response( pub fn process_pull_response(
&mut self, &mut self,
from: &Pubkey, from: &Pubkey,
timeouts: &HashMap<Pubkey, u64>,
response: Vec<CrdsValue>, response: Vec<CrdsValue>,
now: u64, now: u64,
) -> usize { ) -> usize {
self.pull self.pull
.process_pull_response(&mut self.crds, from, response, now) .process_pull_response(&mut self.crds, from, timeouts, response, now)
} }
pub fn make_timeouts_test(&self) -> HashMap<Pubkey, u64> { pub fn make_timeouts_test(&self) -> HashMap<Pubkey, u64> {

View File

@@ -25,6 +25,8 @@ use std::collections::HashMap;
use std::collections::VecDeque; use std::collections::VecDeque;
pub const CRDS_GOSSIP_PULL_CRDS_TIMEOUT_MS: u64 = 15000; pub const CRDS_GOSSIP_PULL_CRDS_TIMEOUT_MS: u64 = 15000;
// The maximum age of a value received over pull responses
pub const CRDS_GOSSIP_PULL_MSG_TIMEOUT_MS: u64 = 60000;
pub const FALSE_RATE: f64 = 0.1f64; pub const FALSE_RATE: f64 = 0.1f64;
pub const KEYS: f64 = 8f64; pub const KEYS: f64 = 8f64;
@@ -117,6 +119,7 @@ pub struct CrdsGossipPull {
/// hash and insert time /// hash and insert time
purged_values: VecDeque<(Hash, u64)>, purged_values: VecDeque<(Hash, u64)>,
pub crds_timeout: u64, pub crds_timeout: u64,
pub msg_timeout: u64,
} }
impl Default for CrdsGossipPull { impl Default for CrdsGossipPull {
@@ -125,6 +128,7 @@ impl Default for CrdsGossipPull {
purged_values: VecDeque::new(), purged_values: VecDeque::new(),
pull_request_time: HashMap::new(), pull_request_time: HashMap::new(),
crds_timeout: CRDS_GOSSIP_PULL_CRDS_TIMEOUT_MS, crds_timeout: CRDS_GOSSIP_PULL_CRDS_TIMEOUT_MS,
msg_timeout: CRDS_GOSSIP_PULL_MSG_TIMEOUT_MS,
} }
} }
} }
@@ -210,12 +214,56 @@ impl CrdsGossipPull {
&mut self, &mut self,
crds: &mut Crds, crds: &mut Crds,
from: &Pubkey, from: &Pubkey,
timeouts: &HashMap<Pubkey, u64>,
response: Vec<CrdsValue>, response: Vec<CrdsValue>,
now: u64, now: u64,
) -> usize { ) -> usize {
let mut failed = 0; let mut failed = 0;
for r in response { for r in response {
let owner = r.label().pubkey(); let owner = r.label().pubkey();
// Check if the crds value is older than the msg_timeout
if now
> r.wallclock()
.checked_add(self.msg_timeout)
.unwrap_or_else(|| 0)
|| now + self.msg_timeout < r.wallclock()
{
match &r.label() {
CrdsValueLabel::ContactInfo(_) => {
// Check if this ContactInfo is actually too old, it's possible that it has
// stake and so might have a longer effective timeout
let timeout = *timeouts
.get(&owner)
.unwrap_or_else(|| timeouts.get(&Pubkey::default()).unwrap());
if now > r.wallclock().checked_add(timeout).unwrap_or_else(|| 0)
|| now + timeout < r.wallclock()
{
inc_new_counter_warn!(
"cluster_info-gossip_pull_response_value_timeout",
1
);
failed += 1;
continue;
}
}
_ => {
// Before discarding this value, check if a ContactInfo for the owner
// exists in the table. If it doesn't, that implies that this value can be discarded
if crds.lookup(&CrdsValueLabel::ContactInfo(owner)).is_none() {
inc_new_counter_warn!(
"cluster_info-gossip_pull_response_value_timeout",
1
);
failed += 1;
continue;
} else {
// Silently insert this old value without bumping record timestamps
failed += crds.insert(r, now).is_err() as usize;
continue;
}
}
}
}
let old = crds.insert(r, now); let old = crds.insert(r, now);
failed += old.is_err() as usize; failed += old.is_err() as usize;
old.ok().map(|opt| { old.ok().map(|opt| {
@@ -322,8 +370,9 @@ impl CrdsGossipPull {
mod test { mod test {
use super::*; use super::*;
use crate::contact_info::ContactInfo; use crate::contact_info::ContactInfo;
use crate::crds_value::CrdsData; use crate::crds_value::{CrdsData, Vote};
use itertools::Itertools; use itertools::Itertools;
use solana_perf::test_tx::test_tx;
use solana_sdk::hash::hash; use solana_sdk::hash::hash;
use solana_sdk::packet::PACKET_DATA_SIZE; use solana_sdk::packet::PACKET_DATA_SIZE;
@@ -534,8 +583,13 @@ mod test {
continue; continue;
} }
assert_eq!(rsp.len(), 1); assert_eq!(rsp.len(), 1);
let failed = let failed = node.process_pull_response(
node.process_pull_response(&mut node_crds, &node_pubkey, rsp.pop().unwrap(), 1); &mut node_crds,
&node_pubkey,
&node.make_timeouts_def(&node_pubkey, &HashMap::new(), 0, 1),
rsp.pop().unwrap(),
1,
);
assert_eq!(failed, 0); assert_eq!(failed, 0);
assert_eq!( assert_eq!(
node_crds node_crds
@@ -675,4 +729,87 @@ mod test {
.collect(); .collect();
assert_eq!(masks.len(), 2u64.pow(mask_bits) as usize) assert_eq!(masks.len(), 2u64.pow(mask_bits) as usize)
} }
#[test]
fn test_process_pull_response() {
let mut node_crds = Crds::default();
let mut node = CrdsGossipPull::default();
let peer_pubkey = Pubkey::new_rand();
let peer_entry = CrdsValue::new_unsigned(CrdsData::ContactInfo(
ContactInfo::new_localhost(&peer_pubkey, 0),
));
let mut timeouts = HashMap::new();
timeouts.insert(Pubkey::default(), node.crds_timeout);
timeouts.insert(peer_pubkey, node.msg_timeout + 1);
// inserting a fresh value should be fine.
assert_eq!(
node.process_pull_response(
&mut node_crds,
&peer_pubkey,
&timeouts,
vec![peer_entry.clone()],
1,
),
0
);
let mut node_crds = Crds::default();
let unstaked_peer_entry = CrdsValue::new_unsigned(CrdsData::ContactInfo(
ContactInfo::new_localhost(&peer_pubkey, 0),
));
// check that old contact infos fail if they are too old, regardless of "timeouts"
assert_eq!(
node.process_pull_response(
&mut node_crds,
&peer_pubkey,
&timeouts,
vec![peer_entry.clone(), unstaked_peer_entry],
node.msg_timeout + 100,
),
2
);
let mut node_crds = Crds::default();
// check that old contact infos can still land as long as they have a "timeouts" entry
assert_eq!(
node.process_pull_response(
&mut node_crds,
&peer_pubkey,
&timeouts,
vec![peer_entry.clone()],
node.msg_timeout + 1,
),
0
);
// construct something that's not a contact info
let peer_vote =
CrdsValue::new_unsigned(CrdsData::Vote(0, Vote::new(&peer_pubkey, test_tx(), 0)));
// check that older CrdsValues (non-ContactInfos) infos pass even if are too old,
// but a recent contact info (inserted above) exists
assert_eq!(
node.process_pull_response(
&mut node_crds,
&peer_pubkey,
&timeouts,
vec![peer_vote.clone()],
node.msg_timeout + 1,
),
0
);
let mut node_crds = Crds::default();
// without a contact info, inserting an old value should fail
assert_eq!(
node.process_pull_response(
&mut node_crds,
&peer_pubkey,
&timeouts,
vec![peer_vote.clone()],
node.msg_timeout + 1,
),
1
);
}
} }

View File

@@ -30,7 +30,10 @@ use std::collections::{HashMap, HashSet};
pub const CRDS_GOSSIP_NUM_ACTIVE: usize = 30; pub const CRDS_GOSSIP_NUM_ACTIVE: usize = 30;
pub const CRDS_GOSSIP_PUSH_FANOUT: usize = 6; pub const CRDS_GOSSIP_PUSH_FANOUT: usize = 6;
pub const CRDS_GOSSIP_PUSH_MSG_TIMEOUT_MS: u64 = 5000; // With a fanout of 6, a 1000 node cluster should only take ~4 hops to converge.
// However since pushes are stake weighed, some trailing nodes
// might need more time to receive values. 30 seconds should be plenty.
pub const CRDS_GOSSIP_PUSH_MSG_TIMEOUT_MS: u64 = 30000;
pub const CRDS_GOSSIP_PRUNE_MSG_TIMEOUT_MS: u64 = 500; pub const CRDS_GOSSIP_PRUNE_MSG_TIMEOUT_MS: u64 = 500;
pub const CRDS_GOSSIP_PRUNE_STAKE_THRESHOLD_PCT: f64 = 0.15; pub const CRDS_GOSSIP_PRUNE_STAKE_THRESHOLD_PCT: f64 = 0.15;
@@ -135,7 +138,12 @@ impl CrdsGossipPush {
value: CrdsValue, value: CrdsValue,
now: u64, now: u64,
) -> Result<Option<VersionedCrdsValue>, CrdsGossipError> { ) -> Result<Option<VersionedCrdsValue>, CrdsGossipError> {
if now > value.wallclock() + self.msg_timeout { if now
> value
.wallclock()
.checked_add(self.msg_timeout)
.unwrap_or_else(|| 0)
{
return Err(CrdsGossipError::PushMessageTimeout); return Err(CrdsGossipError::PushMessageTimeout);
} }
if now + self.msg_timeout < value.wallclock() { if now + self.msg_timeout < value.wallclock() {

View File

@@ -12,7 +12,7 @@ use solana_metrics::inc_new_counter_debug;
pub use solana_sdk::packet::{Meta, Packet, PACKET_DATA_SIZE}; pub use solana_sdk::packet::{Meta, Packet, PACKET_DATA_SIZE};
use std::{net::UdpSocket, time::Instant}; use std::{net::UdpSocket, time::Instant};
pub fn recv_from(obj: &mut Packets, socket: &UdpSocket) -> Result<usize> { pub fn recv_from(obj: &mut Packets, socket: &UdpSocket, max_wait_ms: usize) -> Result<usize> {
let mut i = 0; let mut i = 0;
//DOCUMENTED SIDE-EFFECT //DOCUMENTED SIDE-EFFECT
//Performance out of the IO without poll //Performance out of the IO without poll
@@ -23,9 +23,11 @@ pub fn recv_from(obj: &mut Packets, socket: &UdpSocket) -> Result<usize> {
socket.set_nonblocking(false)?; socket.set_nonblocking(false)?;
trace!("receiving on {}", socket.local_addr().unwrap()); trace!("receiving on {}", socket.local_addr().unwrap());
let start = Instant::now(); let start = Instant::now();
let mut total_size = 0;
loop { loop {
obj.packets.resize(i + NUM_RCVMMSGS, Packet::default()); obj.packets.resize(
std::cmp::min(i + NUM_RCVMMSGS, PACKETS_PER_BATCH),
Packet::default(),
);
match recv_mmsg(socket, &mut obj.packets[i..]) { match recv_mmsg(socket, &mut obj.packets[i..]) {
Err(_) if i > 0 => { Err(_) if i > 0 => {
if start.elapsed().as_millis() > 1 { if start.elapsed().as_millis() > 1 {
@@ -36,16 +38,15 @@ pub fn recv_from(obj: &mut Packets, socket: &UdpSocket) -> Result<usize> {
trace!("recv_from err {:?}", e); trace!("recv_from err {:?}", e);
return Err(Error::IO(e)); return Err(Error::IO(e));
} }
Ok((size, npkts)) => { Ok((_, npkts)) => {
if i == 0 { if i == 0 {
socket.set_nonblocking(true)?; socket.set_nonblocking(true)?;
} }
trace!("got {} packets", npkts); trace!("got {} packets", npkts);
i += npkts; i += npkts;
total_size += size;
// Try to batch into big enough buffers // Try to batch into big enough buffers
// will cause less re-shuffling later on. // will cause less re-shuffling later on.
if start.elapsed().as_millis() > 1 || total_size >= PACKETS_BATCH_SIZE { if start.elapsed().as_millis() > max_wait_ms as u128 || i >= PACKETS_PER_BATCH {
break; break;
} }
} }
@@ -98,7 +99,7 @@ mod tests {
} }
send_to(&p, &send_socket).unwrap(); send_to(&p, &send_socket).unwrap();
let recvd = recv_from(&mut p, &recv_socket).unwrap(); let recvd = recv_from(&mut p, &recv_socket, 1).unwrap();
assert_eq!(recvd, p.packets.len()); assert_eq!(recvd, p.packets.len());
@@ -130,4 +131,32 @@ mod tests {
p2.data[0] = 4; p2.data[0] = 4;
assert!(p1 != p2); assert!(p1 != p2);
} }
#[test]
fn test_packet_resize() {
solana_logger::setup();
let recv_socket = UdpSocket::bind("127.0.0.1:0").expect("bind");
let addr = recv_socket.local_addr().unwrap();
let send_socket = UdpSocket::bind("127.0.0.1:0").expect("bind");
let mut p = Packets::default();
p.packets.resize(PACKETS_PER_BATCH, Packet::default());
// Should only get PACKETS_PER_BATCH packets per iteration even
// if a lot more were sent, and regardless of packet size
for _ in 0..2 * PACKETS_PER_BATCH {
let mut p = Packets::default();
p.packets.resize(1, Packet::default());
for m in p.packets.iter_mut() {
m.meta.set_addr(&addr);
m.meta.size = 1;
}
send_to(&p, &send_socket).unwrap();
}
let recvd = recv_from(&mut p, &recv_socket, 100).unwrap();
// Check we only got PACKETS_PER_BATCH packets
assert_eq!(recvd, PACKETS_PER_BATCH);
assert_eq!(p.packets.capacity(), PACKETS_PER_BATCH);
}
} }

View File

@@ -332,7 +332,7 @@ mod tests {
// it should send this over the sockets. // it should send this over the sockets.
retransmit_sender.send(packets).unwrap(); retransmit_sender.send(packets).unwrap();
let mut packets = Packets::new(vec![]); let mut packets = Packets::new(vec![]);
packet::recv_from(&mut packets, &me_retransmit).unwrap(); packet::recv_from(&mut packets, &me_retransmit, 1).unwrap();
assert_eq!(packets.packets.len(), 1); assert_eq!(packets.packets.len(), 1);
assert_eq!(packets.packets[0].meta.repair, false); assert_eq!(packets.packets[0].meta.repair, false);
@@ -348,7 +348,7 @@ mod tests {
let packets = Packets::new(vec![repair, Packet::default()]); let packets = Packets::new(vec![repair, Packet::default()]);
retransmit_sender.send(packets).unwrap(); retransmit_sender.send(packets).unwrap();
let mut packets = Packets::new(vec![]); let mut packets = Packets::new(vec![]);
packet::recv_from(&mut packets, &me_retransmit).unwrap(); packet::recv_from(&mut packets, &me_retransmit, 1).unwrap();
assert_eq!(packets.packets.len(), 1); assert_eq!(packets.packets.len(), 1);
assert_eq!(packets.packets[0].meta.repair, false); assert_eq!(packets.packets[0].meta.repair, false);
} }

View File

@@ -35,7 +35,7 @@ fn recv_loop(
if exit.load(Ordering::Relaxed) { if exit.load(Ordering::Relaxed) {
return Ok(()); return Ok(());
} }
if let Ok(len) = packet::recv_from(&mut msgs, sock) { if let Ok(len) = packet::recv_from(&mut msgs, sock, 1) {
if len == NUM_RCVMMSGS { if len == NUM_RCVMMSGS {
num_max_received += 1; num_max_received += 1;
} }

View File

@@ -5,6 +5,7 @@ use solana_core::cluster_info;
use solana_core::contact_info::ContactInfo; use solana_core::contact_info::ContactInfo;
use solana_core::crds_gossip::*; use solana_core::crds_gossip::*;
use solana_core::crds_gossip_error::CrdsGossipError; use solana_core::crds_gossip_error::CrdsGossipError;
use solana_core::crds_gossip_pull::CRDS_GOSSIP_PULL_CRDS_TIMEOUT_MS;
use solana_core::crds_gossip_push::CRDS_GOSSIP_PUSH_MSG_TIMEOUT_MS; use solana_core::crds_gossip_push::CRDS_GOSSIP_PUSH_MSG_TIMEOUT_MS;
use solana_core::crds_value::CrdsValueLabel; use solana_core::crds_value::CrdsValueLabel;
use solana_core::crds_value::{CrdsData, CrdsValue}; use solana_core::crds_value::{CrdsData, CrdsValue};
@@ -396,6 +397,9 @@ fn network_run_pull(
let mut convergance = 0f64; let mut convergance = 0f64;
let num = network.len(); let num = network.len();
let network_values: Vec<Node> = network.values().cloned().collect(); let network_values: Vec<Node> = network.values().cloned().collect();
let mut timeouts = HashMap::new();
timeouts.insert(Pubkey::default(), CRDS_GOSSIP_PULL_CRDS_TIMEOUT_MS);
for t in start..end { for t in start..end {
let now = t as u64 * 100; let now = t as u64 * 100;
let requests: Vec<_> = { let requests: Vec<_> = {
@@ -448,7 +452,10 @@ fn network_run_pull(
node.lock() node.lock()
.unwrap() .unwrap()
.mark_pull_request_creation_time(&from, now); .mark_pull_request_creation_time(&from, now);
overhead += node.lock().unwrap().process_pull_response(&from, rsp, now); overhead += node
.lock()
.unwrap()
.process_pull_response(&from, &timeouts, rsp, now);
}); });
(bytes, msgs, overhead) (bytes, msgs, overhead)
}) })

View File

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

View File

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

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "solana-fixed-buf" name = "solana-fixed-buf"
version = "0.22.6" version = "0.22.8"
description = "A fixed-size byte array that supports bincode serde" description = "A fixed-size byte array that supports bincode serde"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "solana-keygen" name = "solana-keygen"
version = "0.22.6" version = "0.22.8"
description = "Solana key generation utility" description = "Solana key generation utility"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -14,8 +14,8 @@ clap = "2.33"
dirs = "2.0.2" dirs = "2.0.2"
num_cpus = "1.11.1" num_cpus = "1.11.1"
rpassword = "4.0" rpassword = "4.0"
solana-clap-utils = { path = "../clap-utils", version = "0.22.6" } solana-clap-utils = { path = "../clap-utils", version = "0.22.8" }
solana-sdk = { path = "../sdk", version = "0.22.6" } solana-sdk = { path = "../sdk", version = "0.22.8" }
tiny-bip39 = "0.6.2" tiny-bip39 = "0.6.2"
[[bin]] [[bin]]

View File

@@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.com>"]
edition = "2018" edition = "2018"
name = "solana-ledger-tool" name = "solana-ledger-tool"
description = "Blockchain, Rebuilt for Scale" description = "Blockchain, Rebuilt for Scale"
version = "0.22.6" version = "0.22.8"
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0" license = "Apache-2.0"
homepage = "https://solana.com/" homepage = "https://solana.com/"
@@ -16,12 +16,12 @@ serde = "1.0.104"
serde_derive = "1.0.103" serde_derive = "1.0.103"
serde_json = "1.0.44" serde_json = "1.0.44"
serde_yaml = "0.8.11" serde_yaml = "0.8.11"
solana-clap-utils = { path = "../clap-utils", version = "0.22.6" } solana-clap-utils = { path = "../clap-utils", version = "0.22.8" }
solana-ledger = { path = "../ledger", version = "0.22.6" } solana-ledger = { path = "../ledger", version = "0.22.8" }
solana-logger = { path = "../logger", version = "0.22.6" } solana-logger = { path = "../logger", version = "0.22.8" }
solana-runtime = { path = "../runtime", version = "0.22.6" } solana-runtime = { path = "../runtime", version = "0.22.8" }
solana-sdk = { path = "../sdk", version = "0.22.6" } solana-sdk = { path = "../sdk", version = "0.22.8" }
solana-vote-program = { path = "../programs/vote", version = "0.22.6" } solana-vote-program = { path = "../programs/vote", version = "0.22.8" }
tempfile = "3.1.0" tempfile = "3.1.0"
[dev-dependencies] [dev-dependencies]

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "solana-ledger" name = "solana-ledger"
version = "0.22.6" version = "0.22.8"
description = "Solana ledger" description = "Solana ledger"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -29,19 +29,19 @@ rayon = "1.2.0"
reed-solomon-erasure = { package = "solana-reed-solomon-erasure", version = "4.0.1-3", features = ["simd-accel"] } reed-solomon-erasure = { package = "solana-reed-solomon-erasure", version = "4.0.1-3", features = ["simd-accel"] }
serde = "1.0.104" serde = "1.0.104"
serde_derive = "1.0.103" serde_derive = "1.0.103"
solana-client = { path = "../client", version = "0.22.6" } solana-client = { path = "../client", version = "0.22.8" }
solana-genesis-programs = { path = "../genesis-programs", version = "0.22.6" } solana-genesis-programs = { path = "../genesis-programs", version = "0.22.8" }
solana-logger = { path = "../logger", version = "0.22.6" } solana-logger = { path = "../logger", version = "0.22.8" }
solana-measure = { path = "../measure", version = "0.22.6" } solana-measure = { path = "../measure", version = "0.22.8" }
solana-merkle-tree = { path = "../merkle-tree", version = "0.22.6" } solana-merkle-tree = { path = "../merkle-tree", version = "0.22.8" }
solana-metrics = { path = "../metrics", version = "0.22.6" } solana-metrics = { path = "../metrics", version = "0.22.8" }
solana-perf = { path = "../perf", version = "0.22.6" } solana-perf = { path = "../perf", version = "0.22.8" }
ed25519-dalek = "1.0.0-pre.1" ed25519-dalek = "1.0.0-pre.1"
solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "0.22.6" } solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "0.22.8" }
solana-runtime = { path = "../runtime", version = "0.22.6" } solana-runtime = { path = "../runtime", version = "0.22.8" }
solana-sdk = { path = "../sdk", version = "0.22.6" } solana-sdk = { path = "../sdk", version = "0.22.8" }
solana-stake-program = { path = "../programs/stake", version = "0.22.6" } solana-stake-program = { path = "../programs/stake", version = "0.22.8" }
solana-vote-program = { path = "../programs/vote", version = "0.22.6" } solana-vote-program = { path = "../programs/vote", version = "0.22.8" }
sys-info = "0.5.8" sys-info = "0.5.8"
symlink = "0.1.0" symlink = "0.1.0"
tar = "0.4.26" tar = "0.4.26"
@@ -58,7 +58,7 @@ features = ["lz4"]
[dev-dependencies] [dev-dependencies]
assert_matches = "1.3.0" assert_matches = "1.3.0"
matches = "0.1.6" matches = "0.1.6"
solana-budget-program = { path = "../programs/budget", version = "0.22.6" } solana-budget-program = { path = "../programs/budget", version = "0.22.8" }
[lib] [lib]
crate-type = ["lib"] crate-type = ["lib"]

View File

@@ -25,6 +25,8 @@ pub const TAR_SNAPSHOTS_DIR: &str = "snapshots";
pub const TAR_ACCOUNTS_DIR: &str = "accounts"; pub const TAR_ACCOUNTS_DIR: &str = "accounts";
pub const TAR_VERSION_FILE: &str = "version"; pub const TAR_VERSION_FILE: &str = "version";
pub const SNAPSHOT_VERSION: &str = "0.22.6"; // format!("{}\n", env!("CARGO_PKG_VERSION"));
#[derive(PartialEq, Ord, Eq, Debug)] #[derive(PartialEq, Ord, Eq, Debug)]
pub struct SlotSnapshotPaths { pub struct SlotSnapshotPaths {
pub slot: Slot, pub slot: Slot,
@@ -192,10 +194,8 @@ pub fn archive_snapshot_package(snapshot_package: &SnapshotPackage) -> Result<()
// Write version file // Write version file
{ {
let snapshot_version = format!("{}\n", env!("CARGO_PKG_VERSION"));
let mut f = std::fs::File::create(staging_version_file)?; let mut f = std::fs::File::create(staging_version_file)?;
//f.write_all(&snapshot_version.to_string().into_bytes())?; f.write_all(&SNAPSHOT_VERSION.to_string().into_bytes())?;
f.write_all(&snapshot_version.into_bytes())?;
} }
// Tar the staging directory into the archive at `archive_path` // Tar the staging directory into the archive at `archive_path`
@@ -430,7 +430,7 @@ where
let file = File::open(&root_paths.snapshot_file_path)?; let file = File::open(&root_paths.snapshot_file_path)?;
let mut stream = BufReader::new(file); let mut stream = BufReader::new(file);
let mut bank: Bank = match snapshot_version { let mut bank: Bank = match snapshot_version {
env!("CARGO_PKG_VERSION") => deserialize_from(&mut stream)?, SNAPSHOT_VERSION => deserialize_from(&mut stream)?,
"0.22.3" => { "0.22.3" => {
let bank0223: solana_runtime::bank::LegacyBank0223 = deserialize_from(&mut stream)?; let bank0223: solana_runtime::bank::LegacyBank0223 = deserialize_from(&mut stream)?;
bank0223.into() bank0223.into()

View File

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

View File

@@ -38,6 +38,7 @@ impl ClusterValidatorInfo {
pub trait Cluster { pub trait Cluster {
fn get_node_pubkeys(&self) -> Vec<Pubkey>; fn get_node_pubkeys(&self) -> Vec<Pubkey>;
fn get_validator_client(&self, pubkey: &Pubkey) -> Option<ThinClient>; fn get_validator_client(&self, pubkey: &Pubkey) -> Option<ThinClient>;
fn get_contact_info(&self, pubkey: &Pubkey) -> Option<&ContactInfo>;
fn exit_node(&mut self, pubkey: &Pubkey) -> ClusterValidatorInfo; fn exit_node(&mut self, pubkey: &Pubkey) -> ClusterValidatorInfo;
fn restart_node(&mut self, pubkey: &Pubkey, cluster_validator_info: ClusterValidatorInfo); fn restart_node(&mut self, pubkey: &Pubkey, cluster_validator_info: ClusterValidatorInfo);
fn exit_restart_node(&mut self, pubkey: &Pubkey, config: ValidatorConfig); fn exit_restart_node(&mut self, pubkey: &Pubkey, config: ValidatorConfig);

View File

@@ -695,6 +695,10 @@ impl Cluster for LocalCluster {
cluster_validator_info.config = validator_config; cluster_validator_info.config = validator_config;
self.restart_node(pubkey, cluster_validator_info); self.restart_node(pubkey, cluster_validator_info);
} }
fn get_contact_info(&self, pubkey: &Pubkey) -> Option<&ContactInfo> {
self.validators.get(pubkey).map(|v| &v.info.contact_info)
}
} }
impl Drop for LocalCluster { impl Drop for LocalCluster {

View File

@@ -665,8 +665,11 @@ fn test_snapshot_restart_tower() {
cluster.restart_node(&validator_id, validator_info); cluster.restart_node(&validator_id, validator_info);
// Test cluster can still make progress and get confirmations in tower // Test cluster can still make progress and get confirmations in tower
// Use the restarted node as the discovery point so that we get updated
// validator's ContactInfo
let restarted_node_info = cluster.get_contact_info(&validator_id).unwrap();
cluster_tests::spend_and_verify_all_nodes( cluster_tests::spend_and_verify_all_nodes(
&cluster.entry_point_info, &restarted_node_info,
&cluster.funding_keypair, &cluster.funding_keypair,
1, 1,
HashSet::new(), HashSet::new(),

View File

@@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.com>"]
edition = "2018" edition = "2018"
name = "solana-log-analyzer" name = "solana-log-analyzer"
description = "The solana cluster network analysis tool" description = "The solana cluster network analysis tool"
version = "0.22.6" version = "0.22.8"
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0" license = "Apache-2.0"
homepage = "https://solana.com/" homepage = "https://solana.com/"
@@ -17,8 +17,8 @@ semver = "0.9.0"
serde = "1.0.104" serde = "1.0.104"
serde_derive = "1.0.103" serde_derive = "1.0.103"
serde_json = "1.0.44" serde_json = "1.0.44"
solana-clap-utils = { path = "../clap-utils", version = "0.22.6" } solana-clap-utils = { path = "../clap-utils", version = "0.22.8" }
solana-logger = { path = "../logger", version = "0.22.6" } solana-logger = { path = "../logger", version = "0.22.8" }
[[bin]] [[bin]]
name = "solana-log-analyzer" name = "solana-log-analyzer"

View File

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

View File

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

View File

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

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "solana-metrics" name = "solana-metrics"
version = "0.22.6" version = "0.22.8"
description = "Solana Metrics" description = "Solana Metrics"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -13,7 +13,7 @@ env_logger = "0.7.1"
lazy_static = "1.4.0" lazy_static = "1.4.0"
log = "0.4.8" log = "0.4.8"
reqwest = { version = "0.9.24", default-features = false, features = ["rustls-tls"] } reqwest = { version = "0.9.24", default-features = false, features = ["rustls-tls"] }
solana-sdk = { path = "../sdk", version = "0.22.6" } solana-sdk = { path = "../sdk", version = "0.22.8" }
sys-info = "0.5.8" sys-info = "0.5.8"
[dev-dependencies] [dev-dependencies]

View File

@@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.com>"]
edition = "2018" edition = "2018"
name = "solana-net-shaper" name = "solana-net-shaper"
description = "The solana cluster network shaping tool" description = "The solana cluster network shaping tool"
version = "0.22.6" version = "0.22.8"
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0" license = "Apache-2.0"
homepage = "https://solana.com/" homepage = "https://solana.com/"
@@ -16,8 +16,8 @@ semver = "0.9.0"
serde = "1.0.104" serde = "1.0.104"
serde_derive = "1.0.103" serde_derive = "1.0.103"
serde_json = "1.0.44" serde_json = "1.0.44"
solana-clap-utils = { path = "../clap-utils", version = "0.22.6" } solana-clap-utils = { path = "../clap-utils", version = "0.22.8" }
solana-logger = { path = "../logger", version = "0.22.6" } solana-logger = { path = "../logger", version = "0.22.8" }
rand = "0.6.5" rand = "0.6.5"
[[bin]] [[bin]]

View File

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

View File

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

View File

@@ -151,6 +151,10 @@ impl<T: Clone + Default + Sized> PinnedVec<T> {
pub fn iter_mut(&mut self) -> PinnedIterMut<T> { pub fn iter_mut(&mut self) -> PinnedIterMut<T> {
PinnedIterMut(self.x.iter_mut()) PinnedIterMut(self.x.iter_mut())
} }
pub fn capacity(&self) -> usize {
self.x.capacity()
}
} }
impl<'a, T: Clone + Send + Sync + Default + Sized> IntoParallelIterator for &'a PinnedVec<T> { impl<'a, T: Clone + Send + Sync + Default + Sized> IntoParallelIterator for &'a PinnedVec<T> {

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "solana-bpf-loader-program" name = "solana-bpf-loader-program"
version = "0.22.6" version = "0.22.8"
description = "Solana BPF loader" description = "Solana BPF loader"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -14,8 +14,8 @@ byteorder = "1.3.2"
libc = "0.2.66" libc = "0.2.66"
log = "0.4.8" log = "0.4.8"
serde = "1.0.104" serde = "1.0.104"
solana-logger = { path = "../../logger", version = "0.22.6" } solana-logger = { path = "../../logger", version = "0.22.8" }
solana-sdk = { path = "../../sdk", version = "0.22.6" } solana-sdk = { path = "../../sdk", version = "0.22.8" }
solana_rbpf = "=0.1.19" solana_rbpf = "=0.1.19"
[lib] [lib]

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "solana-exchange-program" name = "solana-exchange-program"
version = "0.22.6" version = "0.22.8"
description = "Solana Exchange program" description = "Solana Exchange program"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -13,12 +13,12 @@ bincode = "1.2.1"
log = "0.4.8" log = "0.4.8"
serde = "1.0.104" serde = "1.0.104"
serde_derive = "1.0.103" serde_derive = "1.0.103"
solana-logger = { path = "../../logger", version = "0.22.6" } solana-logger = { path = "../../logger", version = "0.22.8" }
solana-metrics = { path = "../../metrics", version = "0.22.6" } solana-metrics = { path = "../../metrics", version = "0.22.8" }
solana-sdk = { path = "../../sdk", version = "0.22.6" } solana-sdk = { path = "../../sdk", version = "0.22.8" }
[dev-dependencies] [dev-dependencies]
solana-runtime = { path = "../../runtime", version = "0.22.6" } solana-runtime = { path = "../../runtime", version = "0.22.8" }
[lib] [lib]
crate-type = ["lib", "cdylib"] crate-type = ["lib", "cdylib"]

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "solana-runtime" name = "solana-runtime"
version = "0.22.6" version = "0.22.8"
description = "Solana runtime" description = "Solana runtime"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -24,17 +24,17 @@ rayon = "1.2.0"
serde = { version = "1.0.104", features = ["rc"] } serde = { version = "1.0.104", features = ["rc"] }
serde_derive = "1.0.103" serde_derive = "1.0.103"
serde_json = "1.0.44" serde_json = "1.0.44"
solana-logger = { path = "../logger", version = "0.22.6" } solana-logger = { path = "../logger", version = "0.22.8" }
solana-measure = { path = "../measure", version = "0.22.6" } solana-measure = { path = "../measure", version = "0.22.8" }
solana-metrics = { path = "../metrics", version = "0.22.6" } solana-metrics = { path = "../metrics", version = "0.22.8" }
solana-bpf-loader-program = { path = "../programs/bpf_loader", version = "0.22.6" } solana-bpf-loader-program = { path = "../programs/bpf_loader", version = "0.22.8" }
solana-sdk = { path = "../sdk", version = "0.22.6" } solana-sdk = { path = "../sdk", version = "0.22.8" }
solana-stake-program = { path = "../programs/stake", version = "0.22.6" } solana-stake-program = { path = "../programs/stake", version = "0.22.8" }
solana-storage-program = { path = "../programs/storage", version = "0.22.6" } solana-storage-program = { path = "../programs/storage", version = "0.22.8" }
solana-vote-program = { path = "../programs/vote", version = "0.22.6" } solana-vote-program = { path = "../programs/vote", version = "0.22.8" }
sys-info = "0.5.8" sys-info = "0.5.8"
tempfile = "3.1.0" tempfile = "3.1.0"
solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "0.22.6" } solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "0.22.8" }
itertools = "0.8.2" itertools = "0.8.2"
[lib] [lib]
@@ -43,4 +43,4 @@ name = "solana_runtime"
[dev-dependencies] [dev-dependencies]
assert_matches = "1.3.0" assert_matches = "1.3.0"
solana-noop-program = { path = "../programs/noop", version = "0.22.6" } solana-noop-program = { path = "../programs/noop", version = "0.22.8" }

View File

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

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "solana-sdk-c" name = "solana-sdk-c"
version = "0.22.6" version = "0.22.8"
description = "Solana SDK C" description = "Solana SDK C"
authors = ["Solana Maintainers <maintainers@solana.com>"] authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
@@ -18,7 +18,7 @@ bs58 = "0.3.0"
libc = "0.2.66" libc = "0.2.66"
rand_chacha = "0.1.1" rand_chacha = "0.1.1"
rand_core = { version = ">=0.2, <0.4", default-features = false } rand_core = { version = ">=0.2, <0.4", default-features = false }
solana-sdk = { path = "../sdk", version = "0.22.6" } solana-sdk = { path = "../sdk", version = "0.22.8" }
ed25519-dalek = "1.0.0-pre.1" ed25519-dalek = "1.0.0-pre.1"
sha2 = "0.8.0" sha2 = "0.8.0"

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.com>"]
edition = "2018" edition = "2018"
name = "solana-validator" name = "solana-validator"
description = "Blockchain, Rebuilt for Scale" description = "Blockchain, Rebuilt for Scale"
version = "0.22.6" version = "0.22.8"
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0" license = "Apache-2.0"
homepage = "https://solana.com/" homepage = "https://solana.com/"
@@ -18,19 +18,19 @@ indicatif = "0.13.0"
rand = "0.6.5" rand = "0.6.5"
reqwest = { version = "0.9.24", default-features = false } reqwest = { version = "0.9.24", default-features = false }
serde_json = "1.0.44" serde_json = "1.0.44"
solana-clap-utils = { path = "../clap-utils", version = "0.22.6" } solana-clap-utils = { path = "../clap-utils", version = "0.22.8" }
solana-client = { path = "../client", version = "0.22.6" } solana-client = { path = "../client", version = "0.22.8" }
solana-core = { path = "../core", version = "0.22.6" } solana-core = { path = "../core", version = "0.22.8" }
solana-faucet = { path = "../faucet", version = "0.22.6" } solana-faucet = { path = "../faucet", version = "0.22.8" }
solana-ledger = { path = "../ledger", version = "0.22.6" } solana-ledger = { path = "../ledger", version = "0.22.8" }
solana-logger = { path = "../logger", version = "0.22.6" } solana-logger = { path = "../logger", version = "0.22.8" }
solana-perf = { path = "../perf", version = "0.22.6" } solana-perf = { path = "../perf", version = "0.22.8" }
solana-metrics = { path = "../metrics", version = "0.22.6" } solana-metrics = { path = "../metrics", version = "0.22.8" }
solana-net-utils = { path = "../net-utils", version = "0.22.6" } solana-net-utils = { path = "../net-utils", version = "0.22.8" }
solana-runtime = { path = "../runtime", version = "0.22.6" } solana-runtime = { path = "../runtime", version = "0.22.8" }
solana-sdk = { path = "../sdk", version = "0.22.6" } solana-sdk = { path = "../sdk", version = "0.22.8" }
solana-vote-program = { path = "../programs/vote", version = "0.22.6" } solana-vote-program = { path = "../programs/vote", version = "0.22.8" }
solana-vote-signer = { path = "../vote-signer", version = "0.22.6" } solana-vote-signer = { path = "../vote-signer", version = "0.22.8" }
tar = "0.4.26" tar = "0.4.26"
tempfile = "3.1.0" tempfile = "3.1.0"

View File

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

View File

@@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.com>"]
edition = "2018" edition = "2018"
name = "solana-watchtower" name = "solana-watchtower"
description = "Blockchain, Rebuilt for Scale" description = "Blockchain, Rebuilt for Scale"
version = "0.22.6" version = "0.22.8"
repository = "https://github.com/solana-labs/solana" repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0" license = "Apache-2.0"
homepage = "https://solana.com/" homepage = "https://solana.com/"
@@ -13,11 +13,11 @@ clap = "2.33.0"
log = "0.4.8" log = "0.4.8"
reqwest = { version = "0.9.24", default-features = false, features = ["rustls-tls"] } reqwest = { version = "0.9.24", default-features = false, features = ["rustls-tls"] }
serde_json = "1.0" serde_json = "1.0"
solana-clap-utils = { path = "../clap-utils", version = "0.22.6" } solana-clap-utils = { path = "../clap-utils", version = "0.22.8" }
solana-client = { path = "../client", version = "0.22.6" } solana-client = { path = "../client", version = "0.22.8" }
solana-logger = { path = "../logger", version = "0.22.6" } solana-logger = { path = "../logger", version = "0.22.8" }
solana-metrics = { path = "../metrics", version = "0.22.6" } solana-metrics = { path = "../metrics", version = "0.22.8" }
solana-sdk = { path = "../sdk", version = "0.22.6" } solana-sdk = { path = "../sdk", version = "0.22.8" }
[[bin]] [[bin]]
name = "solana-watchtower" name = "solana-watchtower"