Compare commits
9 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
535ee281e8 | ||
|
da843a7ace | ||
|
772cf8288c | ||
|
e81a40ba55 | ||
|
a52359a6be | ||
|
2fe0853fba | ||
|
de3630f76c | ||
|
ff9e388843 | ||
|
67a7995f04 |
584
Cargo.lock
generated
584
Cargo.lock
generated
File diff suppressed because it is too large
Load Diff
@@ -2,7 +2,7 @@
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
edition = "2018"
|
||||
name = "solana-archiver"
|
||||
version = "0.22.6"
|
||||
version = "0.22.8"
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
license = "Apache-2.0"
|
||||
homepage = "https://solana.com/"
|
||||
@@ -10,10 +10,10 @@ homepage = "https://solana.com/"
|
||||
[dependencies]
|
||||
clap = "2.33.0"
|
||||
console = "0.9.1"
|
||||
solana-clap-utils = { path = "../clap-utils", version = "0.22.6" }
|
||||
solana-core = { path = "../core", version = "0.22.6" }
|
||||
solana-logger = { path = "../logger", version = "0.22.6" }
|
||||
solana-metrics = { path = "../metrics", version = "0.22.6" }
|
||||
solana-net-utils = { path = "../net-utils", version = "0.22.6" }
|
||||
solana-sdk = { path = "../sdk", version = "0.22.6" }
|
||||
solana-clap-utils = { path = "../clap-utils", version = "0.22.8" }
|
||||
solana-core = { path = "../core", version = "0.22.8" }
|
||||
solana-logger = { path = "../logger", version = "0.22.8" }
|
||||
solana-metrics = { path = "../metrics", version = "0.22.8" }
|
||||
solana-net-utils = { path = "../net-utils", version = "0.22.8" }
|
||||
solana-sdk = { path = "../sdk", version = "0.22.8" }
|
||||
|
||||
|
@@ -2,7 +2,7 @@
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
edition = "2018"
|
||||
name = "solana-banking-bench"
|
||||
version = "0.22.6"
|
||||
version = "0.22.8"
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
license = "Apache-2.0"
|
||||
homepage = "https://solana.com/"
|
||||
@@ -10,11 +10,11 @@ homepage = "https://solana.com/"
|
||||
[dependencies]
|
||||
log = "0.4.6"
|
||||
rayon = "1.2.0"
|
||||
solana-core = { path = "../core", version = "0.22.6" }
|
||||
solana-ledger = { path = "../ledger", version = "0.22.6" }
|
||||
solana-logger = { path = "../logger", version = "0.22.6" }
|
||||
solana-runtime = { path = "../runtime", version = "0.22.6" }
|
||||
solana-measure = { path = "../measure", version = "0.22.6" }
|
||||
solana-sdk = { path = "../sdk", version = "0.22.6" }
|
||||
solana-core = { path = "../core", version = "0.22.8" }
|
||||
solana-ledger = { path = "../ledger", version = "0.22.8" }
|
||||
solana-logger = { path = "../logger", version = "0.22.8" }
|
||||
solana-runtime = { path = "../runtime", version = "0.22.8" }
|
||||
solana-measure = { path = "../measure", version = "0.22.8" }
|
||||
solana-sdk = { path = "../sdk", version = "0.22.8" }
|
||||
rand = "0.6.5"
|
||||
crossbeam-channel = "0.3"
|
||||
|
@@ -2,7 +2,7 @@
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
edition = "2018"
|
||||
name = "solana-bench-exchange"
|
||||
version = "0.22.6"
|
||||
version = "0.22.8"
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
license = "Apache-2.0"
|
||||
homepage = "https://solana.com/"
|
||||
@@ -23,19 +23,19 @@ serde = "1.0.104"
|
||||
serde_derive = "1.0.103"
|
||||
serde_json = "1.0.44"
|
||||
serde_yaml = "0.8.11"
|
||||
solana-clap-utils = { path = "../clap-utils", version = "0.22.6" }
|
||||
solana-core = { path = "../core", version = "0.22.6" }
|
||||
solana-genesis = { path = "../genesis", version = "0.22.6" }
|
||||
solana-client = { path = "../client", version = "0.22.6" }
|
||||
solana-faucet = { path = "../faucet", version = "0.22.6" }
|
||||
solana-exchange-program = { path = "../programs/exchange", version = "0.22.6" }
|
||||
solana-logger = { path = "../logger", version = "0.22.6" }
|
||||
solana-metrics = { path = "../metrics", version = "0.22.6" }
|
||||
solana-net-utils = { path = "../net-utils", version = "0.22.6" }
|
||||
solana-runtime = { path = "../runtime", version = "0.22.6" }
|
||||
solana-sdk = { path = "../sdk", version = "0.22.6" }
|
||||
solana-clap-utils = { path = "../clap-utils", version = "0.22.8" }
|
||||
solana-core = { path = "../core", version = "0.22.8" }
|
||||
solana-genesis = { path = "../genesis", version = "0.22.8" }
|
||||
solana-client = { path = "../client", version = "0.22.8" }
|
||||
solana-faucet = { path = "../faucet", version = "0.22.8" }
|
||||
solana-exchange-program = { path = "../programs/exchange", version = "0.22.8" }
|
||||
solana-logger = { path = "../logger", version = "0.22.8" }
|
||||
solana-metrics = { path = "../metrics", version = "0.22.8" }
|
||||
solana-net-utils = { path = "../net-utils", version = "0.22.8" }
|
||||
solana-runtime = { path = "../runtime", version = "0.22.8" }
|
||||
solana-sdk = { path = "../sdk", version = "0.22.8" }
|
||||
untrusted = "0.7.0"
|
||||
ws = "0.9.1"
|
||||
|
||||
[dev-dependencies]
|
||||
solana-local-cluster = { path = "../local-cluster", version = "0.22.6" }
|
||||
solana-local-cluster = { path = "../local-cluster", version = "0.22.8" }
|
||||
|
@@ -2,14 +2,14 @@
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
edition = "2018"
|
||||
name = "solana-bench-streamer"
|
||||
version = "0.22.6"
|
||||
version = "0.22.8"
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
license = "Apache-2.0"
|
||||
homepage = "https://solana.com/"
|
||||
|
||||
[dependencies]
|
||||
clap = "2.33.0"
|
||||
solana-clap-utils = { path = "../clap-utils", version = "0.22.6" }
|
||||
solana-core = { path = "../core", version = "0.22.6" }
|
||||
solana-logger = { path = "../logger", version = "0.22.6" }
|
||||
solana-net-utils = { path = "../net-utils", version = "0.22.6" }
|
||||
solana-clap-utils = { path = "../clap-utils", version = "0.22.8" }
|
||||
solana-core = { path = "../core", version = "0.22.8" }
|
||||
solana-logger = { path = "../logger", version = "0.22.8" }
|
||||
solana-net-utils = { path = "../net-utils", version = "0.22.8" }
|
||||
|
@@ -2,7 +2,7 @@
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
edition = "2018"
|
||||
name = "solana-bench-tps"
|
||||
version = "0.22.6"
|
||||
version = "0.22.8"
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
license = "Apache-2.0"
|
||||
homepage = "https://solana.com/"
|
||||
@@ -16,24 +16,24 @@ serde = "1.0.104"
|
||||
serde_derive = "1.0.103"
|
||||
serde_json = "1.0.44"
|
||||
serde_yaml = "0.8.11"
|
||||
solana-clap-utils = { path = "../clap-utils", version = "0.22.6" }
|
||||
solana-core = { path = "../core", version = "0.22.6" }
|
||||
solana-genesis = { path = "../genesis", version = "0.22.6" }
|
||||
solana-client = { path = "../client", version = "0.22.6" }
|
||||
solana-faucet = { path = "../faucet", version = "0.22.6" }
|
||||
solana-librapay = { path = "../programs/librapay", version = "0.22.6", optional = true }
|
||||
solana-logger = { path = "../logger", version = "0.22.6" }
|
||||
solana-metrics = { path = "../metrics", version = "0.22.6" }
|
||||
solana-measure = { path = "../measure", version = "0.22.6" }
|
||||
solana-net-utils = { path = "../net-utils", version = "0.22.6" }
|
||||
solana-runtime = { path = "../runtime", version = "0.22.6" }
|
||||
solana-sdk = { path = "../sdk", version = "0.22.6" }
|
||||
solana-move-loader-program = { path = "../programs/move_loader", version = "0.22.6", optional = true }
|
||||
solana-clap-utils = { path = "../clap-utils", version = "0.22.8" }
|
||||
solana-core = { path = "../core", version = "0.22.8" }
|
||||
solana-genesis = { path = "../genesis", version = "0.22.8" }
|
||||
solana-client = { path = "../client", version = "0.22.8" }
|
||||
solana-faucet = { path = "../faucet", version = "0.22.8" }
|
||||
solana-librapay = { path = "../programs/librapay", version = "0.22.8", optional = true }
|
||||
solana-logger = { path = "../logger", version = "0.22.8" }
|
||||
solana-metrics = { path = "../metrics", version = "0.22.8" }
|
||||
solana-measure = { path = "../measure", version = "0.22.8" }
|
||||
solana-net-utils = { path = "../net-utils", version = "0.22.8" }
|
||||
solana-runtime = { path = "../runtime", version = "0.22.8" }
|
||||
solana-sdk = { path = "../sdk", version = "0.22.8" }
|
||||
solana-move-loader-program = { path = "../programs/move_loader", version = "0.22.8", optional = true }
|
||||
|
||||
[dev-dependencies]
|
||||
serial_test = "0.3.2"
|
||||
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]
|
||||
move = ["solana-librapay", "solana-move-loader-program"]
|
||||
|
@@ -177,7 +177,7 @@ $ solana send-timestamp <PUBKEY> <PROCESS_ID> --date 2018-12-24T23:59:00
|
||||
## Usage
|
||||
### solana-cli
|
||||
```text
|
||||
solana-cli 0.22.6 [channel=unknown commit=unknown]
|
||||
solana-cli 0.22.8 [channel=unknown commit=unknown]
|
||||
Blockchain, Rebuilt for Scale
|
||||
|
||||
USAGE:
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-chacha-sys"
|
||||
version = "0.22.6"
|
||||
version = "0.22.8"
|
||||
description = "Solana chacha-sys"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-clap-utils"
|
||||
version = "0.22.6"
|
||||
version = "0.22.8"
|
||||
description = "Solana utilities for the clap"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -12,7 +12,7 @@ edition = "2018"
|
||||
clap = "2.33.0"
|
||||
rpassword = "4.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"
|
||||
url = "2.1.0"
|
||||
chrono = "0.4"
|
||||
|
@@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
edition = "2018"
|
||||
name = "solana-cli"
|
||||
description = "Blockchain, Rebuilt for Scale"
|
||||
version = "0.22.6"
|
||||
version = "0.22.8"
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
license = "Apache-2.0"
|
||||
homepage = "https://solana.com/"
|
||||
@@ -28,24 +28,24 @@ serde = "1.0.104"
|
||||
serde_derive = "1.0.103"
|
||||
serde_json = "1.0.44"
|
||||
serde_yaml = "0.8.11"
|
||||
solana-budget-program = { path = "../programs/budget", version = "0.22.6" }
|
||||
solana-clap-utils = { path = "../clap-utils", version = "0.22.6" }
|
||||
solana-client = { path = "../client", version = "0.22.6" }
|
||||
solana-config-program = { path = "../programs/config", version = "0.22.6" }
|
||||
solana-faucet = { path = "../faucet", version = "0.22.6" }
|
||||
solana-logger = { path = "../logger", version = "0.22.6" }
|
||||
solana-net-utils = { path = "../net-utils", version = "0.22.6" }
|
||||
solana-runtime = { path = "../runtime", version = "0.22.6" }
|
||||
solana-sdk = { path = "../sdk", version = "0.22.6" }
|
||||
solana-stake-program = { path = "../programs/stake", version = "0.22.6" }
|
||||
solana-storage-program = { path = "../programs/storage", version = "0.22.6" }
|
||||
solana-vote-program = { path = "../programs/vote", version = "0.22.6" }
|
||||
solana-vote-signer = { path = "../vote-signer", version = "0.22.6" }
|
||||
solana-budget-program = { path = "../programs/budget", version = "0.22.8" }
|
||||
solana-clap-utils = { path = "../clap-utils", version = "0.22.8" }
|
||||
solana-client = { path = "../client", version = "0.22.8" }
|
||||
solana-config-program = { path = "../programs/config", version = "0.22.8" }
|
||||
solana-faucet = { path = "../faucet", version = "0.22.8" }
|
||||
solana-logger = { path = "../logger", version = "0.22.8" }
|
||||
solana-net-utils = { path = "../net-utils", version = "0.22.8" }
|
||||
solana-runtime = { path = "../runtime", version = "0.22.8" }
|
||||
solana-sdk = { path = "../sdk", version = "0.22.8" }
|
||||
solana-stake-program = { path = "../programs/stake", version = "0.22.8" }
|
||||
solana-storage-program = { path = "../programs/storage", version = "0.22.8" }
|
||||
solana-vote-program = { path = "../programs/vote", version = "0.22.8" }
|
||||
solana-vote-signer = { path = "../vote-signer", version = "0.22.8" }
|
||||
url = "2.1.0"
|
||||
|
||||
[dev-dependencies]
|
||||
solana-core = { path = "../core", version = "0.22.6" }
|
||||
solana-budget-program = { path = "../programs/budget", version = "0.22.6" }
|
||||
solana-core = { path = "../core", version = "0.22.8" }
|
||||
solana-budget-program = { path = "../programs/budget", version = "0.22.8" }
|
||||
tempfile = "3.1.0"
|
||||
|
||||
[[bin]]
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-client"
|
||||
version = "0.22.6"
|
||||
version = "0.22.8"
|
||||
description = "Solana Client"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
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_derive = "1.0.103"
|
||||
serde_json = "1.0.44"
|
||||
solana-net-utils = { path = "../net-utils", version = "0.22.6" }
|
||||
solana-sdk = { path = "../sdk", version = "0.22.6" }
|
||||
solana-net-utils = { path = "../net-utils", version = "0.22.8" }
|
||||
solana-sdk = { path = "../sdk", version = "0.22.8" }
|
||||
|
||||
[dev-dependencies]
|
||||
assert_matches = "1.3.0"
|
||||
jsonrpc-core = "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" }
|
||||
|
@@ -1,7 +1,7 @@
|
||||
[package]
|
||||
name = "solana-core"
|
||||
description = "Blockchain, Rebuilt for Scale"
|
||||
version = "0.22.6"
|
||||
version = "0.22.8"
|
||||
documentation = "https://docs.rs/solana"
|
||||
homepage = "https://solana.com/"
|
||||
readme = "../README.md"
|
||||
@@ -41,26 +41,26 @@ rayon = "1.2.0"
|
||||
serde = "1.0.104"
|
||||
serde_derive = "1.0.103"
|
||||
serde_json = "1.0.44"
|
||||
solana-budget-program = { path = "../programs/budget", version = "0.22.6" }
|
||||
solana-clap-utils = { path = "../clap-utils", version = "0.22.6" }
|
||||
solana-chacha-sys = { path = "../chacha-sys", version = "0.22.6" }
|
||||
solana-client = { path = "../client", version = "0.22.6" }
|
||||
solana-faucet = { path = "../faucet", version = "0.22.6" }
|
||||
solana-budget-program = { path = "../programs/budget", version = "0.22.8" }
|
||||
solana-clap-utils = { path = "../clap-utils", version = "0.22.8" }
|
||||
solana-chacha-sys = { path = "../chacha-sys", version = "0.22.8" }
|
||||
solana-client = { path = "../client", version = "0.22.8" }
|
||||
solana-faucet = { path = "../faucet", version = "0.22.8" }
|
||||
ed25519-dalek = "=1.0.0-pre.1"
|
||||
solana-ledger = { path = "../ledger", version = "0.22.6" }
|
||||
solana-logger = { path = "../logger", version = "0.22.6" }
|
||||
solana-merkle-tree = { path = "../merkle-tree", version = "0.22.6" }
|
||||
solana-metrics = { path = "../metrics", version = "0.22.6" }
|
||||
solana-measure = { path = "../measure", version = "0.22.6" }
|
||||
solana-net-utils = { path = "../net-utils", version = "0.22.6" }
|
||||
solana-perf = { path = "../perf", version = "0.22.6" }
|
||||
solana-runtime = { path = "../runtime", version = "0.22.6" }
|
||||
solana-sdk = { path = "../sdk", version = "0.22.6" }
|
||||
solana-stake-program = { path = "../programs/stake", version = "0.22.6" }
|
||||
solana-storage-program = { path = "../programs/storage", version = "0.22.6" }
|
||||
solana-vote-program = { path = "../programs/vote", version = "0.22.6" }
|
||||
solana-vote-signer = { path = "../vote-signer", version = "0.22.6" }
|
||||
solana-sys-tuner = { path = "../sys-tuner", version = "0.22.6" }
|
||||
solana-ledger = { path = "../ledger", version = "0.22.8" }
|
||||
solana-logger = { path = "../logger", version = "0.22.8" }
|
||||
solana-merkle-tree = { path = "../merkle-tree", version = "0.22.8" }
|
||||
solana-metrics = { path = "../metrics", version = "0.22.8" }
|
||||
solana-measure = { path = "../measure", version = "0.22.8" }
|
||||
solana-net-utils = { path = "../net-utils", version = "0.22.8" }
|
||||
solana-perf = { path = "../perf", version = "0.22.8" }
|
||||
solana-runtime = { path = "../runtime", version = "0.22.8" }
|
||||
solana-sdk = { path = "../sdk", version = "0.22.8" }
|
||||
solana-stake-program = { path = "../programs/stake", version = "0.22.8" }
|
||||
solana-storage-program = { path = "../programs/storage", version = "0.22.8" }
|
||||
solana-vote-program = { path = "../programs/vote", version = "0.22.8" }
|
||||
solana-vote-signer = { path = "../vote-signer", version = "0.22.8" }
|
||||
solana-sys-tuner = { path = "../sys-tuner", version = "0.22.8" }
|
||||
symlink = "0.1.0"
|
||||
sys-info = "0.5.8"
|
||||
tempfile = "3.1.0"
|
||||
@@ -69,7 +69,7 @@ tokio-codec = "0.1"
|
||||
tokio-fs = "0.1"
|
||||
tokio-io = "0.1"
|
||||
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"] }
|
||||
|
||||
[dev-dependencies]
|
||||
|
@@ -1287,10 +1287,12 @@ impl ClusterInfo {
|
||||
stakes: &HashMap<Pubkey, u64>,
|
||||
packets: Packets,
|
||||
response_sender: &PacketSender,
|
||||
epoch_ms: u64,
|
||||
) {
|
||||
// iter over the packets, collect pulls separately and process everything else
|
||||
let allocated = thread_mem_usage::Allocatedp::default();
|
||||
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| {
|
||||
let from_addr = packet.meta.addr();
|
||||
limited_deserialize(&packet.data[..packet.meta.size])
|
||||
@@ -1332,7 +1334,7 @@ impl ClusterInfo {
|
||||
}
|
||||
ret
|
||||
});
|
||||
Self::handle_pull_response(me, &from, data);
|
||||
Self::handle_pull_response(me, &from, data, &timeouts);
|
||||
datapoint_debug!(
|
||||
"solana-gossip-listen-memory",
|
||||
("pull_response", (allocated.get() - start) as i64, i64),
|
||||
@@ -1451,7 +1453,12 @@ impl ClusterInfo {
|
||||
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 now = Instant::now();
|
||||
let self_id = me.read().unwrap().gossip.id;
|
||||
@@ -1459,7 +1466,7 @@ impl ClusterInfo {
|
||||
me.write()
|
||||
.unwrap()
|
||||
.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-size", len);
|
||||
|
||||
@@ -1629,14 +1636,31 @@ impl ClusterInfo {
|
||||
//TODO cache connections
|
||||
let timeout = Duration::new(1, 0);
|
||||
let reqs = requests_receiver.recv_timeout(timeout)?;
|
||||
let epoch_ms;
|
||||
let stakes: HashMap<_, _> = match 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(())
|
||||
}
|
||||
pub fn listen(
|
||||
@@ -2597,10 +2621,12 @@ mod tests {
|
||||
let entrypoint_crdsvalue =
|
||||
CrdsValue::new_unsigned(CrdsData::ContactInfo(entrypoint.clone()));
|
||||
let cluster_info = Arc::new(RwLock::new(cluster_info));
|
||||
let timeouts = cluster_info.read().unwrap().gossip.make_timeouts_test();
|
||||
ClusterInfo::handle_pull_response(
|
||||
&cluster_info,
|
||||
&entrypoint_pubkey,
|
||||
vec![entrypoint_crdsvalue],
|
||||
&timeouts,
|
||||
);
|
||||
let pulls = cluster_info
|
||||
.write()
|
||||
|
@@ -135,7 +135,7 @@ impl ClusterInfoRepairListener {
|
||||
}
|
||||
|
||||
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();
|
||||
|
||||
// Iterate through all the known nodes in the network, looking for ones that
|
||||
|
@@ -327,21 +327,16 @@ impl Tower {
|
||||
fork_stake.stake,
|
||||
total_staked
|
||||
);
|
||||
for (new_lockout, original_lockout) in
|
||||
lockouts.votes.iter().zip(self.lockouts.votes.iter())
|
||||
{
|
||||
if new_lockout.slot == original_lockout.slot {
|
||||
if new_lockout.confirmation_count <= self.threshold_depth as u32 {
|
||||
break;
|
||||
if vote.confirmation_count as usize > self.threshold_depth {
|
||||
for old_vote in &self.lockouts.votes {
|
||||
if old_vote.slot == vote.slot
|
||||
&& old_vote.confirmation_count == vote.confirmation_count
|
||||
{
|
||||
return true;
|
||||
}
|
||||
if new_lockout.confirmation_count != original_lockout.confirmation_count {
|
||||
return lockout > self.threshold_size;
|
||||
}
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
true
|
||||
lockout > self.threshold_size
|
||||
} else {
|
||||
false
|
||||
}
|
||||
@@ -556,6 +551,24 @@ mod test {
|
||||
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]
|
||||
fn test_is_slot_confirmed_not_enough_stake_failure() {
|
||||
let tower = Tower::new_for_tests(1, 0.67);
|
||||
|
@@ -156,11 +156,12 @@ impl CrdsGossip {
|
||||
pub fn process_pull_response(
|
||||
&mut self,
|
||||
from: &Pubkey,
|
||||
timeouts: &HashMap<Pubkey, u64>,
|
||||
response: Vec<CrdsValue>,
|
||||
now: u64,
|
||||
) -> usize {
|
||||
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> {
|
||||
|
@@ -25,6 +25,8 @@ use std::collections::HashMap;
|
||||
use std::collections::VecDeque;
|
||||
|
||||
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 KEYS: f64 = 8f64;
|
||||
|
||||
@@ -117,6 +119,7 @@ pub struct CrdsGossipPull {
|
||||
/// hash and insert time
|
||||
purged_values: VecDeque<(Hash, u64)>,
|
||||
pub crds_timeout: u64,
|
||||
pub msg_timeout: u64,
|
||||
}
|
||||
|
||||
impl Default for CrdsGossipPull {
|
||||
@@ -125,6 +128,7 @@ impl Default for CrdsGossipPull {
|
||||
purged_values: VecDeque::new(),
|
||||
pull_request_time: HashMap::new(),
|
||||
crds_timeout: CRDS_GOSSIP_PULL_CRDS_TIMEOUT_MS,
|
||||
msg_timeout: CRDS_GOSSIP_PULL_MSG_TIMEOUT_MS,
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -210,12 +214,56 @@ impl CrdsGossipPull {
|
||||
&mut self,
|
||||
crds: &mut Crds,
|
||||
from: &Pubkey,
|
||||
timeouts: &HashMap<Pubkey, u64>,
|
||||
response: Vec<CrdsValue>,
|
||||
now: u64,
|
||||
) -> usize {
|
||||
let mut failed = 0;
|
||||
for r in response {
|
||||
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);
|
||||
failed += old.is_err() as usize;
|
||||
old.ok().map(|opt| {
|
||||
@@ -322,8 +370,9 @@ impl CrdsGossipPull {
|
||||
mod test {
|
||||
use super::*;
|
||||
use crate::contact_info::ContactInfo;
|
||||
use crate::crds_value::CrdsData;
|
||||
use crate::crds_value::{CrdsData, Vote};
|
||||
use itertools::Itertools;
|
||||
use solana_perf::test_tx::test_tx;
|
||||
use solana_sdk::hash::hash;
|
||||
use solana_sdk::packet::PACKET_DATA_SIZE;
|
||||
|
||||
@@ -534,8 +583,13 @@ mod test {
|
||||
continue;
|
||||
}
|
||||
assert_eq!(rsp.len(), 1);
|
||||
let failed =
|
||||
node.process_pull_response(&mut node_crds, &node_pubkey, rsp.pop().unwrap(), 1);
|
||||
let failed = node.process_pull_response(
|
||||
&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!(
|
||||
node_crds
|
||||
@@ -675,4 +729,87 @@ mod test {
|
||||
.collect();
|
||||
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
|
||||
);
|
||||
}
|
||||
}
|
||||
|
@@ -30,7 +30,10 @@ use std::collections::{HashMap, HashSet};
|
||||
|
||||
pub const CRDS_GOSSIP_NUM_ACTIVE: usize = 30;
|
||||
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_STAKE_THRESHOLD_PCT: f64 = 0.15;
|
||||
|
||||
@@ -135,7 +138,12 @@ impl CrdsGossipPush {
|
||||
value: CrdsValue,
|
||||
now: u64,
|
||||
) -> 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);
|
||||
}
|
||||
if now + self.msg_timeout < value.wallclock() {
|
||||
|
@@ -12,7 +12,7 @@ use solana_metrics::inc_new_counter_debug;
|
||||
pub use solana_sdk::packet::{Meta, Packet, PACKET_DATA_SIZE};
|
||||
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;
|
||||
//DOCUMENTED SIDE-EFFECT
|
||||
//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)?;
|
||||
trace!("receiving on {}", socket.local_addr().unwrap());
|
||||
let start = Instant::now();
|
||||
let mut total_size = 0;
|
||||
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..]) {
|
||||
Err(_) if i > 0 => {
|
||||
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);
|
||||
return Err(Error::IO(e));
|
||||
}
|
||||
Ok((size, npkts)) => {
|
||||
Ok((_, npkts)) => {
|
||||
if i == 0 {
|
||||
socket.set_nonblocking(true)?;
|
||||
}
|
||||
trace!("got {} packets", npkts);
|
||||
i += npkts;
|
||||
total_size += size;
|
||||
// Try to batch into big enough buffers
|
||||
// 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;
|
||||
}
|
||||
}
|
||||
@@ -98,7 +99,7 @@ mod tests {
|
||||
}
|
||||
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());
|
||||
|
||||
@@ -130,4 +131,32 @@ mod tests {
|
||||
p2.data[0] = 4;
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
@@ -332,7 +332,7 @@ mod tests {
|
||||
// it should send this over the sockets.
|
||||
retransmit_sender.send(packets).unwrap();
|
||||
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[0].meta.repair, false);
|
||||
|
||||
@@ -348,7 +348,7 @@ mod tests {
|
||||
let packets = Packets::new(vec![repair, Packet::default()]);
|
||||
retransmit_sender.send(packets).unwrap();
|
||||
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[0].meta.repair, false);
|
||||
}
|
||||
|
@@ -35,7 +35,7 @@ fn recv_loop(
|
||||
if exit.load(Ordering::Relaxed) {
|
||||
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 {
|
||||
num_max_received += 1;
|
||||
}
|
||||
|
@@ -5,6 +5,7 @@ use solana_core::cluster_info;
|
||||
use solana_core::contact_info::ContactInfo;
|
||||
use solana_core::crds_gossip::*;
|
||||
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_value::CrdsValueLabel;
|
||||
use solana_core::crds_value::{CrdsData, CrdsValue};
|
||||
@@ -396,6 +397,9 @@ fn network_run_pull(
|
||||
let mut convergance = 0f64;
|
||||
let num = network.len();
|
||||
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 {
|
||||
let now = t as u64 * 100;
|
||||
let requests: Vec<_> = {
|
||||
@@ -448,7 +452,10 @@ fn network_run_pull(
|
||||
node.lock()
|
||||
.unwrap()
|
||||
.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)
|
||||
})
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-crate-features"
|
||||
version = "0.22.6"
|
||||
version = "0.22.8"
|
||||
description = "Solana Crate Features"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-faucet"
|
||||
version = "0.22.6"
|
||||
version = "0.22.8"
|
||||
description = "Solana Faucet"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -19,10 +19,10 @@ clap = "2.33"
|
||||
log = "0.4.8"
|
||||
serde = "1.0.104"
|
||||
serde_derive = "1.0.103"
|
||||
solana-clap-utils = { path = "../clap-utils", version = "0.22.6" }
|
||||
solana-logger = { path = "../logger", version = "0.22.6" }
|
||||
solana-metrics = { path = "../metrics", version = "0.22.6" }
|
||||
solana-sdk = { path = "../sdk", version = "0.22.6" }
|
||||
solana-clap-utils = { path = "../clap-utils", version = "0.22.8" }
|
||||
solana-logger = { path = "../logger", version = "0.22.8" }
|
||||
solana-metrics = { path = "../metrics", version = "0.22.8" }
|
||||
solana-sdk = { path = "../sdk", version = "0.22.8" }
|
||||
tokio = "0.1"
|
||||
tokio-codec = "0.1"
|
||||
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-fixed-buf"
|
||||
version = "0.22.6"
|
||||
version = "0.22.8"
|
||||
description = "A fixed-size byte array that supports bincode serde"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-genesis-programs"
|
||||
version = "0.22.6"
|
||||
version = "0.22.8"
|
||||
description = "Solana genesis programs"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -10,16 +10,16 @@ edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
log = { version = "0.4.8" }
|
||||
solana-bpf-loader-program = { path = "../programs/bpf_loader", version = "0.22.6" }
|
||||
solana-budget-program = { path = "../programs/budget", version = "0.22.6" }
|
||||
solana-config-program = { path = "../programs/config", version = "0.22.6" }
|
||||
solana-exchange-program = { path = "../programs/exchange", version = "0.22.6" }
|
||||
solana-runtime = { path = "../runtime", version = "0.22.6" }
|
||||
solana-sdk = { path = "../sdk", version = "0.22.6" }
|
||||
solana-stake-program = { path = "../programs/stake", version = "0.22.6" }
|
||||
solana-storage-program = { path = "../programs/storage", version = "0.22.6" }
|
||||
solana-vest-program = { path = "../programs/vest", version = "0.22.6" }
|
||||
solana-vote-program = { path = "../programs/vote", 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.8" }
|
||||
solana-config-program = { path = "../programs/config", version = "0.22.8" }
|
||||
solana-exchange-program = { path = "../programs/exchange", version = "0.22.8" }
|
||||
solana-runtime = { path = "../runtime", version = "0.22.8" }
|
||||
solana-sdk = { path = "../sdk", version = "0.22.8" }
|
||||
solana-stake-program = { path = "../programs/stake", version = "0.22.8" }
|
||||
solana-storage-program = { path = "../programs/storage", version = "0.22.8" }
|
||||
solana-vest-program = { path = "../programs/vest", version = "0.22.8" }
|
||||
solana-vote-program = { path = "../programs/vote", version = "0.22.8" }
|
||||
|
||||
[lib]
|
||||
crate-type = ["lib"]
|
||||
|
@@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
edition = "2018"
|
||||
name = "solana-genesis"
|
||||
description = "Blockchain, Rebuilt for Scale"
|
||||
version = "0.22.6"
|
||||
version = "0.22.8"
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
license = "Apache-2.0"
|
||||
homepage = "https://solana.com/"
|
||||
@@ -17,13 +17,13 @@ serde = "1.0.104"
|
||||
serde_derive = "1.0.103"
|
||||
serde_json = "1.0.44"
|
||||
serde_yaml = "0.8.11"
|
||||
solana-clap-utils = { path = "../clap-utils", version = "0.22.6" }
|
||||
solana-genesis-programs = { path = "../genesis-programs", version = "0.22.6" }
|
||||
solana-ledger = { path = "../ledger", version = "0.22.6" }
|
||||
solana-sdk = { path = "../sdk", version = "0.22.6" }
|
||||
solana-stake-program = { path = "../programs/stake", version = "0.22.6" }
|
||||
solana-storage-program = { path = "../programs/storage", version = "0.22.6" }
|
||||
solana-vote-program = { path = "../programs/vote", version = "0.22.6" }
|
||||
solana-clap-utils = { path = "../clap-utils", version = "0.22.8" }
|
||||
solana-genesis-programs = { path = "../genesis-programs", version = "0.22.8" }
|
||||
solana-ledger = { path = "../ledger", version = "0.22.8" }
|
||||
solana-sdk = { path = "../sdk", version = "0.22.8" }
|
||||
solana-stake-program = { path = "../programs/stake", version = "0.22.8" }
|
||||
solana-storage-program = { path = "../programs/storage", version = "0.22.8" }
|
||||
solana-vote-program = { path = "../programs/vote", version = "0.22.8" }
|
||||
tempfile = "3.1.0"
|
||||
|
||||
[[bin]]
|
||||
|
@@ -3,19 +3,19 @@ authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
edition = "2018"
|
||||
name = "solana-gossip"
|
||||
description = "Blockchain, Rebuilt for Scale"
|
||||
version = "0.22.6"
|
||||
version = "0.22.8"
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
license = "Apache-2.0"
|
||||
homepage = "https://solana.com/"
|
||||
|
||||
[dependencies]
|
||||
clap = "2.33.0"
|
||||
solana-clap-utils = { path = "../clap-utils", version = "0.22.6" }
|
||||
solana-core = { path = "../core", version = "0.22.6" }
|
||||
solana-client = { path = "../client", version = "0.22.6" }
|
||||
solana-logger = { path = "../logger", version = "0.22.6" }
|
||||
solana-net-utils = { path = "../net-utils", version = "0.22.6" }
|
||||
solana-sdk = { path = "../sdk", version = "0.22.6" }
|
||||
solana-clap-utils = { path = "../clap-utils", version = "0.22.8" }
|
||||
solana-core = { path = "../core", version = "0.22.8" }
|
||||
solana-client = { path = "../client", version = "0.22.8" }
|
||||
solana-logger = { path = "../logger", version = "0.22.8" }
|
||||
solana-net-utils = { path = "../net-utils", version = "0.22.8" }
|
||||
solana-sdk = { path = "../sdk", version = "0.22.8" }
|
||||
|
||||
|
||||
|
||||
|
@@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
edition = "2018"
|
||||
name = "solana-install"
|
||||
description = "The solana cluster software installer"
|
||||
version = "0.22.6"
|
||||
version = "0.22.8"
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
license = "Apache-2.0"
|
||||
homepage = "https://solana.com/"
|
||||
@@ -26,11 +26,11 @@ reqwest = { version = "0.9.24", default-features = false, features = ["rustls-tl
|
||||
serde = "1.0.104"
|
||||
serde_derive = "1.0.103"
|
||||
serde_yaml = "0.8.11"
|
||||
solana-clap-utils = { path = "../clap-utils", version = "0.22.6" }
|
||||
solana-client = { path = "../client", version = "0.22.6" }
|
||||
solana-config-program = { path = "../programs/config", version = "0.22.6" }
|
||||
solana-logger = { path = "../logger", version = "0.22.6" }
|
||||
solana-sdk = { path = "../sdk", version = "0.22.6" }
|
||||
solana-clap-utils = { path = "../clap-utils", version = "0.22.8" }
|
||||
solana-client = { path = "../client", version = "0.22.8" }
|
||||
solana-config-program = { path = "../programs/config", version = "0.22.8" }
|
||||
solana-logger = { path = "../logger", version = "0.22.8" }
|
||||
solana-sdk = { path = "../sdk", version = "0.22.8" }
|
||||
tar = "0.4.26"
|
||||
tempdir = "0.3.7"
|
||||
url = "2.1.0"
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-keygen"
|
||||
version = "0.22.6"
|
||||
version = "0.22.8"
|
||||
description = "Solana key generation utility"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -14,8 +14,8 @@ clap = "2.33"
|
||||
dirs = "2.0.2"
|
||||
num_cpus = "1.11.1"
|
||||
rpassword = "4.0"
|
||||
solana-clap-utils = { path = "../clap-utils", version = "0.22.6" }
|
||||
solana-sdk = { path = "../sdk", version = "0.22.6" }
|
||||
solana-clap-utils = { path = "../clap-utils", version = "0.22.8" }
|
||||
solana-sdk = { path = "../sdk", version = "0.22.8" }
|
||||
tiny-bip39 = "0.6.2"
|
||||
|
||||
[[bin]]
|
||||
|
@@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
edition = "2018"
|
||||
name = "solana-ledger-tool"
|
||||
description = "Blockchain, Rebuilt for Scale"
|
||||
version = "0.22.6"
|
||||
version = "0.22.8"
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
license = "Apache-2.0"
|
||||
homepage = "https://solana.com/"
|
||||
@@ -16,12 +16,12 @@ serde = "1.0.104"
|
||||
serde_derive = "1.0.103"
|
||||
serde_json = "1.0.44"
|
||||
serde_yaml = "0.8.11"
|
||||
solana-clap-utils = { path = "../clap-utils", version = "0.22.6" }
|
||||
solana-ledger = { path = "../ledger", version = "0.22.6" }
|
||||
solana-logger = { path = "../logger", version = "0.22.6" }
|
||||
solana-runtime = { path = "../runtime", version = "0.22.6" }
|
||||
solana-sdk = { path = "../sdk", version = "0.22.6" }
|
||||
solana-vote-program = { path = "../programs/vote", version = "0.22.6" }
|
||||
solana-clap-utils = { path = "../clap-utils", version = "0.22.8" }
|
||||
solana-ledger = { path = "../ledger", version = "0.22.8" }
|
||||
solana-logger = { path = "../logger", version = "0.22.8" }
|
||||
solana-runtime = { path = "../runtime", version = "0.22.8" }
|
||||
solana-sdk = { path = "../sdk", version = "0.22.8" }
|
||||
solana-vote-program = { path = "../programs/vote", version = "0.22.8" }
|
||||
tempfile = "3.1.0"
|
||||
|
||||
[dev-dependencies]
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-ledger"
|
||||
version = "0.22.6"
|
||||
version = "0.22.8"
|
||||
description = "Solana ledger"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
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"] }
|
||||
serde = "1.0.104"
|
||||
serde_derive = "1.0.103"
|
||||
solana-client = { path = "../client", version = "0.22.6" }
|
||||
solana-genesis-programs = { path = "../genesis-programs", version = "0.22.6" }
|
||||
solana-logger = { path = "../logger", version = "0.22.6" }
|
||||
solana-measure = { path = "../measure", version = "0.22.6" }
|
||||
solana-merkle-tree = { path = "../merkle-tree", version = "0.22.6" }
|
||||
solana-metrics = { path = "../metrics", version = "0.22.6" }
|
||||
solana-perf = { path = "../perf", version = "0.22.6" }
|
||||
solana-client = { path = "../client", version = "0.22.8" }
|
||||
solana-genesis-programs = { path = "../genesis-programs", version = "0.22.8" }
|
||||
solana-logger = { path = "../logger", version = "0.22.8" }
|
||||
solana-measure = { path = "../measure", version = "0.22.8" }
|
||||
solana-merkle-tree = { path = "../merkle-tree", version = "0.22.8" }
|
||||
solana-metrics = { path = "../metrics", version = "0.22.8" }
|
||||
solana-perf = { path = "../perf", version = "0.22.8" }
|
||||
ed25519-dalek = "1.0.0-pre.1"
|
||||
solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "0.22.6" }
|
||||
solana-runtime = { path = "../runtime", version = "0.22.6" }
|
||||
solana-sdk = { path = "../sdk", version = "0.22.6" }
|
||||
solana-stake-program = { path = "../programs/stake", version = "0.22.6" }
|
||||
solana-vote-program = { path = "../programs/vote", version = "0.22.6" }
|
||||
solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "0.22.8" }
|
||||
solana-runtime = { path = "../runtime", version = "0.22.8" }
|
||||
solana-sdk = { path = "../sdk", version = "0.22.8" }
|
||||
solana-stake-program = { path = "../programs/stake", version = "0.22.8" }
|
||||
solana-vote-program = { path = "../programs/vote", version = "0.22.8" }
|
||||
sys-info = "0.5.8"
|
||||
symlink = "0.1.0"
|
||||
tar = "0.4.26"
|
||||
@@ -58,7 +58,7 @@ features = ["lz4"]
|
||||
[dev-dependencies]
|
||||
assert_matches = "1.3.0"
|
||||
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]
|
||||
crate-type = ["lib"]
|
||||
|
@@ -25,6 +25,8 @@ pub const TAR_SNAPSHOTS_DIR: &str = "snapshots";
|
||||
pub const TAR_ACCOUNTS_DIR: &str = "accounts";
|
||||
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)]
|
||||
pub struct SlotSnapshotPaths {
|
||||
pub slot: Slot,
|
||||
@@ -192,10 +194,8 @@ pub fn archive_snapshot_package(snapshot_package: &SnapshotPackage) -> Result<()
|
||||
|
||||
// Write version file
|
||||
{
|
||||
let snapshot_version = format!("{}\n", env!("CARGO_PKG_VERSION"));
|
||||
let mut f = std::fs::File::create(staging_version_file)?;
|
||||
//f.write_all(&snapshot_version.to_string().into_bytes())?;
|
||||
f.write_all(&snapshot_version.into_bytes())?;
|
||||
f.write_all(&SNAPSHOT_VERSION.to_string().into_bytes())?;
|
||||
}
|
||||
|
||||
// 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 mut stream = BufReader::new(file);
|
||||
let mut bank: Bank = match snapshot_version {
|
||||
env!("CARGO_PKG_VERSION") => deserialize_from(&mut stream)?,
|
||||
SNAPSHOT_VERSION => deserialize_from(&mut stream)?,
|
||||
"0.22.3" => {
|
||||
let bank0223: solana_runtime::bank::LegacyBank0223 = deserialize_from(&mut stream)?;
|
||||
bank0223.into()
|
||||
|
@@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
edition = "2018"
|
||||
name = "solana-local-cluster"
|
||||
description = "Blockchain, Rebuilt for Scale"
|
||||
version = "0.22.6"
|
||||
version = "0.22.8"
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
license = "Apache-2.0"
|
||||
homepage = "https://solana.com/"
|
||||
@@ -12,23 +12,23 @@ homepage = "https://solana.com/"
|
||||
itertools = "0.8.1"
|
||||
log = "0.4.8"
|
||||
rand = "0.6.5"
|
||||
solana-config-program = { path = "../programs/config", version = "0.22.6" }
|
||||
solana-core = { path = "../core", version = "0.22.6" }
|
||||
solana-client = { path = "../client", version = "0.22.6" }
|
||||
solana-faucet = { path = "../faucet", version = "0.22.6" }
|
||||
solana-exchange-program = { path = "../programs/exchange", version = "0.22.6" }
|
||||
solana-genesis-programs = { path = "../genesis-programs", version = "0.22.6" }
|
||||
solana-ledger = { path = "../ledger", version = "0.22.6" }
|
||||
solana-logger = { path = "../logger", version = "0.22.6" }
|
||||
solana-runtime = { path = "../runtime", version = "0.22.6" }
|
||||
solana-sdk = { path = "../sdk", version = "0.22.6" }
|
||||
solana-stake-program = { path = "../programs/stake", version = "0.22.6" }
|
||||
solana-storage-program = { path = "../programs/storage", version = "0.22.6" }
|
||||
solana-vest-program = { path = "../programs/vest", version = "0.22.6" }
|
||||
solana-vote-program = { path = "../programs/vote", version = "0.22.6" }
|
||||
solana-config-program = { path = "../programs/config", version = "0.22.8" }
|
||||
solana-core = { path = "../core", version = "0.22.8" }
|
||||
solana-client = { path = "../client", version = "0.22.8" }
|
||||
solana-faucet = { path = "../faucet", version = "0.22.8" }
|
||||
solana-exchange-program = { path = "../programs/exchange", version = "0.22.8" }
|
||||
solana-genesis-programs = { path = "../genesis-programs", version = "0.22.8" }
|
||||
solana-ledger = { path = "../ledger", version = "0.22.8" }
|
||||
solana-logger = { path = "../logger", version = "0.22.8" }
|
||||
solana-runtime = { path = "../runtime", version = "0.22.8" }
|
||||
solana-sdk = { path = "../sdk", version = "0.22.8" }
|
||||
solana-stake-program = { path = "../programs/stake", version = "0.22.8" }
|
||||
solana-storage-program = { path = "../programs/storage", version = "0.22.8" }
|
||||
solana-vest-program = { path = "../programs/vest", version = "0.22.8" }
|
||||
solana-vote-program = { path = "../programs/vote", version = "0.22.8" }
|
||||
symlink = "0.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]
|
||||
assert_matches = "1.3.0"
|
||||
|
@@ -38,6 +38,7 @@ impl ClusterValidatorInfo {
|
||||
pub trait Cluster {
|
||||
fn get_node_pubkeys(&self) -> Vec<Pubkey>;
|
||||
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 restart_node(&mut self, pubkey: &Pubkey, cluster_validator_info: ClusterValidatorInfo);
|
||||
fn exit_restart_node(&mut self, pubkey: &Pubkey, config: ValidatorConfig);
|
||||
|
@@ -695,6 +695,10 @@ impl Cluster for LocalCluster {
|
||||
cluster_validator_info.config = validator_config;
|
||||
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 {
|
||||
|
@@ -665,8 +665,11 @@ fn test_snapshot_restart_tower() {
|
||||
cluster.restart_node(&validator_id, validator_info);
|
||||
|
||||
// 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.entry_point_info,
|
||||
&restarted_node_info,
|
||||
&cluster.funding_keypair,
|
||||
1,
|
||||
HashSet::new(),
|
||||
|
@@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
edition = "2018"
|
||||
name = "solana-log-analyzer"
|
||||
description = "The solana cluster network analysis tool"
|
||||
version = "0.22.6"
|
||||
version = "0.22.8"
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
license = "Apache-2.0"
|
||||
homepage = "https://solana.com/"
|
||||
@@ -17,8 +17,8 @@ semver = "0.9.0"
|
||||
serde = "1.0.104"
|
||||
serde_derive = "1.0.103"
|
||||
serde_json = "1.0.44"
|
||||
solana-clap-utils = { path = "../clap-utils", version = "0.22.6" }
|
||||
solana-logger = { path = "../logger", version = "0.22.6" }
|
||||
solana-clap-utils = { path = "../clap-utils", version = "0.22.8" }
|
||||
solana-logger = { path = "../logger", version = "0.22.8" }
|
||||
|
||||
[[bin]]
|
||||
name = "solana-log-analyzer"
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-logger"
|
||||
version = "0.22.6"
|
||||
version = "0.22.8"
|
||||
description = "Solana Logger"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
|
@@ -1,7 +1,7 @@
|
||||
[package]
|
||||
name = "solana-measure"
|
||||
description = "Blockchain, Rebuilt for Scale"
|
||||
version = "0.22.6"
|
||||
version = "0.22.8"
|
||||
documentation = "https://docs.rs/solana"
|
||||
homepage = "https://solana.com/"
|
||||
readme = "../README.md"
|
||||
@@ -12,8 +12,8 @@ edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
log = "0.4.8"
|
||||
solana-sdk = { path = "../sdk", version = "0.22.6" }
|
||||
solana-metrics = { path = "../metrics", version = "0.22.6" }
|
||||
solana-sdk = { path = "../sdk", version = "0.22.8" }
|
||||
solana-metrics = { path = "../metrics", version = "0.22.8" }
|
||||
|
||||
[target."cfg(unix)".dependencies]
|
||||
jemallocator = "0.3.2"
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-merkle-tree"
|
||||
version = "0.22.6"
|
||||
version = "0.22.8"
|
||||
description = "Solana Merkle Tree"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -9,7 +9,7 @@ homepage = "https://solana.com/"
|
||||
edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
solana-sdk = { path = "../sdk", version = "0.22.6" }
|
||||
solana-sdk = { path = "../sdk", version = "0.22.8" }
|
||||
|
||||
[dev-dependencies]
|
||||
hex = "0.4.0"
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-metrics"
|
||||
version = "0.22.6"
|
||||
version = "0.22.8"
|
||||
description = "Solana Metrics"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -13,7 +13,7 @@ env_logger = "0.7.1"
|
||||
lazy_static = "1.4.0"
|
||||
log = "0.4.8"
|
||||
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"
|
||||
|
||||
[dev-dependencies]
|
||||
|
@@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
edition = "2018"
|
||||
name = "solana-net-shaper"
|
||||
description = "The solana cluster network shaping tool"
|
||||
version = "0.22.6"
|
||||
version = "0.22.8"
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
license = "Apache-2.0"
|
||||
homepage = "https://solana.com/"
|
||||
@@ -16,8 +16,8 @@ semver = "0.9.0"
|
||||
serde = "1.0.104"
|
||||
serde_derive = "1.0.103"
|
||||
serde_json = "1.0.44"
|
||||
solana-clap-utils = { path = "../clap-utils", version = "0.22.6" }
|
||||
solana-logger = { path = "../logger", version = "0.22.6" }
|
||||
solana-clap-utils = { path = "../clap-utils", version = "0.22.8" }
|
||||
solana-logger = { path = "../logger", version = "0.22.8" }
|
||||
rand = "0.6.5"
|
||||
|
||||
[[bin]]
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-net-utils"
|
||||
version = "0.22.6"
|
||||
version = "0.22.8"
|
||||
description = "Solana Network Utilities"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -18,8 +18,8 @@ rand = "0.6.1"
|
||||
serde = "1.0.104"
|
||||
serde_derive = "1.0.103"
|
||||
socket2 = "0.3.11"
|
||||
solana-clap-utils = { path = "../clap-utils", version = "0.22.6" }
|
||||
solana-logger = { path = "../logger", version = "0.22.6" }
|
||||
solana-clap-utils = { path = "../clap-utils", version = "0.22.8" }
|
||||
solana-logger = { path = "../logger", version = "0.22.8" }
|
||||
tokio = "0.1"
|
||||
tokio-codec = "0.1"
|
||||
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-perf"
|
||||
version = "0.22.6"
|
||||
version = "0.22.8"
|
||||
description = "Solana Performance APIs"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -18,11 +18,11 @@ serde_derive = "1.0.103"
|
||||
dlopen_derive = "0.1.4"
|
||||
lazy_static = "1.4.0"
|
||||
log = "0.4.8"
|
||||
solana-sdk = { path = "../sdk", version = "0.22.6" }
|
||||
solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "0.22.6" }
|
||||
solana-budget-program = { path = "../programs/budget", version = "0.22.6" }
|
||||
solana-logger = { path = "../logger", version = "0.22.6" }
|
||||
solana-metrics = { path = "../metrics", version = "0.22.6" }
|
||||
solana-sdk = { path = "../sdk", version = "0.22.8" }
|
||||
solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "0.22.8" }
|
||||
solana-budget-program = { path = "../programs/budget", version = "0.22.8" }
|
||||
solana-logger = { path = "../logger", version = "0.22.8" }
|
||||
solana-metrics = { path = "../metrics", version = "0.22.8" }
|
||||
|
||||
[lib]
|
||||
name = "solana_perf"
|
||||
|
@@ -151,6 +151,10 @@ impl<T: Clone + Default + Sized> PinnedVec<T> {
|
||||
pub fn iter_mut(&mut self) -> PinnedIterMut<T> {
|
||||
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> {
|
||||
|
@@ -1,7 +1,7 @@
|
||||
[package]
|
||||
name = "solana-bpf-programs"
|
||||
description = "Blockchain, Rebuilt for Scale"
|
||||
version = "0.22.6"
|
||||
version = "0.22.8"
|
||||
documentation = "https://docs.rs/solana"
|
||||
homepage = "https://solana.com/"
|
||||
readme = "README.md"
|
||||
@@ -22,10 +22,10 @@ walkdir = "2"
|
||||
bincode = "1.1.4"
|
||||
byteorder = "1.3.2"
|
||||
elf = "0.0.10"
|
||||
solana-bpf-loader-program = { path = "../bpf_loader", version = "0.22.6" }
|
||||
solana-logger = { path = "../../logger", version = "0.22.6" }
|
||||
solana-runtime = { path = "../../runtime", version = "0.22.6" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.22.6" }
|
||||
solana-bpf-loader-program = { path = "../bpf_loader", version = "0.22.8" }
|
||||
solana-logger = { path = "../../logger", version = "0.22.8" }
|
||||
solana-runtime = { path = "../../runtime", version = "0.22.8" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.22.8" }
|
||||
solana_rbpf = "=0.1.19"
|
||||
|
||||
[[bench]]
|
||||
|
@@ -3,7 +3,7 @@
|
||||
|
||||
[package]
|
||||
name = "solana-bpf-rust-128bit"
|
||||
version = "0.22.6"
|
||||
version = "0.22.8"
|
||||
description = "Solana BPF test program written in Rust"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -12,11 +12,11 @@ homepage = "https://solana.com/"
|
||||
edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
solana-sdk = { path = "../../../../sdk/", version = "0.22.6", default-features = false }
|
||||
solana-bpf-rust-128bit-dep = { path = "../128bit_dep", version = "0.22.6" }
|
||||
solana-sdk = { path = "../../../../sdk/", version = "0.22.8", default-features = false }
|
||||
solana-bpf-rust-128bit-dep = { path = "../128bit_dep", version = "0.22.8" }
|
||||
|
||||
[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]
|
||||
program = ["solana-sdk/program"]
|
||||
|
@@ -3,7 +3,7 @@
|
||||
|
||||
[package]
|
||||
name = "solana-bpf-rust-128bit-dep"
|
||||
version = "0.22.6"
|
||||
version = "0.22.8"
|
||||
description = "Solana BPF test program written in Rust"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -12,10 +12,10 @@ homepage = "https://solana.com/"
|
||||
edition = "2018"
|
||||
|
||||
[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]
|
||||
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]
|
||||
program = ["solana-sdk/program"]
|
||||
|
@@ -3,7 +3,7 @@
|
||||
|
||||
[package]
|
||||
name = "solana-bpf-rust-alloc"
|
||||
version = "0.22.6"
|
||||
version = "0.22.8"
|
||||
description = "Solana BPF test program written in Rust"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -12,10 +12,10 @@ homepage = "https://solana.com/"
|
||||
edition = "2018"
|
||||
|
||||
[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]
|
||||
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]
|
||||
program = ["solana-sdk/program"]
|
||||
|
@@ -3,7 +3,7 @@
|
||||
|
||||
[package]
|
||||
name = "solana-bpf-rust-dep-crate"
|
||||
version = "0.22.6"
|
||||
version = "0.22.8"
|
||||
description = "Solana BPF test program written in Rust"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -13,10 +13,10 @@ edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
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]
|
||||
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]
|
||||
program = ["solana-sdk/program"]
|
||||
|
@@ -3,7 +3,7 @@
|
||||
|
||||
[package]
|
||||
name = "solana-bpf-rust-external-spend"
|
||||
version = "0.22.6"
|
||||
version = "0.22.8"
|
||||
description = "Solana BPF test program written in Rust"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -12,10 +12,10 @@ homepage = "https://solana.com/"
|
||||
edition = "2018"
|
||||
|
||||
[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]
|
||||
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]
|
||||
program = ["solana-sdk/program"]
|
||||
|
@@ -3,7 +3,7 @@
|
||||
|
||||
[package]
|
||||
name = "solana-bpf-rust-iter"
|
||||
version = "0.22.6"
|
||||
version = "0.22.8"
|
||||
description = "Solana BPF test program written in Rust"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -12,10 +12,10 @@ homepage = "https://solana.com/"
|
||||
edition = "2018"
|
||||
|
||||
[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]
|
||||
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]
|
||||
program = ["solana-sdk/program"]
|
||||
|
@@ -3,7 +3,7 @@
|
||||
|
||||
[package]
|
||||
name = "solana-bpf-rust-many-args"
|
||||
version = "0.22.6"
|
||||
version = "0.22.8"
|
||||
description = "Solana BPF test program written in Rust"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -12,11 +12,11 @@ homepage = "https://solana.com/"
|
||||
edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
solana-sdk = { path = "../../../../sdk/", version = "0.22.6", default-features = false }
|
||||
solana-bpf-rust-many-args-dep = { path = "../many_args_dep", version = "0.22.6" }
|
||||
solana-sdk = { path = "../../../../sdk/", version = "0.22.8", default-features = false }
|
||||
solana-bpf-rust-many-args-dep = { path = "../many_args_dep", version = "0.22.8" }
|
||||
|
||||
[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]
|
||||
program = ["solana-sdk/program"]
|
||||
|
@@ -3,7 +3,7 @@
|
||||
|
||||
[package]
|
||||
name = "solana-bpf-rust-many-args-dep"
|
||||
version = "0.22.6"
|
||||
version = "0.22.8"
|
||||
description = "Solana BPF test program written in Rust"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -12,10 +12,10 @@ homepage = "https://solana.com/"
|
||||
edition = "2018"
|
||||
|
||||
[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]
|
||||
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]
|
||||
program = ["solana-sdk/program"]
|
||||
|
@@ -3,7 +3,7 @@
|
||||
|
||||
[package]
|
||||
name = "solana-bpf-rust-noop"
|
||||
version = "0.22.6"
|
||||
version = "0.22.8"
|
||||
description = "Solana BPF test program written in Rust"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -12,10 +12,10 @@ homepage = "https://solana.com/"
|
||||
edition = "2018"
|
||||
|
||||
[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]
|
||||
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]
|
||||
program = ["solana-sdk/program"]
|
||||
|
@@ -3,7 +3,7 @@
|
||||
|
||||
[package]
|
||||
name = "solana-bpf-rust-panic"
|
||||
version = "0.22.6"
|
||||
version = "0.22.8"
|
||||
description = "Solana BPF test program written in Rust"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -12,10 +12,10 @@ homepage = "https://solana.com/"
|
||||
edition = "2018"
|
||||
|
||||
[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]
|
||||
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]
|
||||
program = ["solana-sdk/program"]
|
||||
|
@@ -3,7 +3,7 @@
|
||||
|
||||
[package]
|
||||
name = "solana-bpf-rust-param-passing"
|
||||
version = "0.22.6"
|
||||
version = "0.22.8"
|
||||
description = "Solana BPF test program written in Rust"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -12,11 +12,11 @@ homepage = "https://solana.com/"
|
||||
edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
solana-sdk = { path = "../../../../sdk/", version = "0.22.6", default-features = false }
|
||||
solana-bpf-rust-param-passing-dep = { path = "../param_passing_dep", version = "0.22.6" }
|
||||
solana-sdk = { path = "../../../../sdk/", version = "0.22.8", default-features = false }
|
||||
solana-bpf-rust-param-passing-dep = { path = "../param_passing_dep", version = "0.22.8" }
|
||||
|
||||
[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]
|
||||
program = ["solana-sdk/program"]
|
||||
|
@@ -3,7 +3,7 @@
|
||||
|
||||
[package]
|
||||
name = "solana-bpf-rust-param-passing-dep"
|
||||
version = "0.22.6"
|
||||
version = "0.22.8"
|
||||
description = "Solana BPF program written in Rust"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -12,10 +12,10 @@ homepage = "https://solana.com/"
|
||||
edition = "2018"
|
||||
|
||||
[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]
|
||||
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]
|
||||
program = ["solana-sdk/program"]
|
||||
|
@@ -3,7 +3,7 @@
|
||||
|
||||
[package]
|
||||
name = "solana-bpf-rust-sysval"
|
||||
version = "0.22.6"
|
||||
version = "0.22.8"
|
||||
description = "Solana BPF test program written in Rust"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -12,10 +12,10 @@ homepage = "https://solana.com/"
|
||||
edition = "2018"
|
||||
|
||||
[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]
|
||||
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]
|
||||
program = ["solana-sdk/program"]
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-bpf-loader-program"
|
||||
version = "0.22.6"
|
||||
version = "0.22.8"
|
||||
description = "Solana BPF loader"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -14,8 +14,8 @@ byteorder = "1.3.2"
|
||||
libc = "0.2.66"
|
||||
log = "0.4.8"
|
||||
serde = "1.0.104"
|
||||
solana-logger = { path = "../../logger", version = "0.22.6" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.22.6" }
|
||||
solana-logger = { path = "../../logger", version = "0.22.8" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.22.8" }
|
||||
solana_rbpf = "=0.1.19"
|
||||
|
||||
[lib]
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-btc-spv-program"
|
||||
version = "0.22.6"
|
||||
version = "0.22.8"
|
||||
description = "Solana Bitcoin spv parsing program"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -16,7 +16,7 @@ num-derive = "0.3"
|
||||
num-traits = "0.2"
|
||||
serde = "1.0.104"
|
||||
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"
|
||||
|
||||
[lib]
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "btc_spv_bin"
|
||||
version = "0.22.6"
|
||||
version = "0.22.8"
|
||||
description = "Solana Bitcoin spv parsing program"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-budget-program"
|
||||
version = "0.22.6"
|
||||
version = "0.22.8"
|
||||
description = "Solana Budget program"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -16,11 +16,11 @@ num-derive = "0.3"
|
||||
num-traits = "0.2"
|
||||
serde = "1.0.104"
|
||||
serde_derive = "1.0.103"
|
||||
solana-sdk = { path = "../../sdk", version = "0.22.6" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.22.8" }
|
||||
thiserror = "1.0"
|
||||
|
||||
[dev-dependencies]
|
||||
solana-runtime = { path = "../../runtime", version = "0.22.6" }
|
||||
solana-runtime = { path = "../../runtime", version = "0.22.8" }
|
||||
|
||||
[lib]
|
||||
crate-type = ["lib", "cdylib"]
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-config-program"
|
||||
version = "0.22.6"
|
||||
version = "0.22.8"
|
||||
description = "Solana Config program"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -14,8 +14,8 @@ chrono = { version = "0.4.10", features = ["serde"] }
|
||||
log = "0.4.8"
|
||||
serde = "1.0.104"
|
||||
serde_derive = "1.0.103"
|
||||
solana-logger = { path = "../../logger", version = "0.22.6" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.22.6" }
|
||||
solana-logger = { path = "../../logger", version = "0.22.8" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.22.8" }
|
||||
|
||||
[lib]
|
||||
crate-type = ["lib", "cdylib"]
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-exchange-program"
|
||||
version = "0.22.6"
|
||||
version = "0.22.8"
|
||||
description = "Solana Exchange program"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -13,12 +13,12 @@ bincode = "1.2.1"
|
||||
log = "0.4.8"
|
||||
serde = "1.0.104"
|
||||
serde_derive = "1.0.103"
|
||||
solana-logger = { path = "../../logger", version = "0.22.6" }
|
||||
solana-metrics = { path = "../../metrics", version = "0.22.6" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.22.6" }
|
||||
solana-logger = { path = "../../logger", version = "0.22.8" }
|
||||
solana-metrics = { path = "../../metrics", version = "0.22.8" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.22.8" }
|
||||
|
||||
[dev-dependencies]
|
||||
solana-runtime = { path = "../../runtime", version = "0.22.6" }
|
||||
solana-runtime = { path = "../../runtime", version = "0.22.8" }
|
||||
|
||||
[lib]
|
||||
crate-type = ["lib", "cdylib"]
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-failure-program"
|
||||
version = "0.22.6"
|
||||
version = "0.22.8"
|
||||
description = "Solana failure program"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -10,10 +10,10 @@ edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
log = "0.4.8"
|
||||
solana-sdk = { path = "../../sdk", version = "0.22.6" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.22.8" }
|
||||
|
||||
[dev-dependencies]
|
||||
solana-runtime = { path = "../../runtime", version = "0.22.6" }
|
||||
solana-runtime = { path = "../../runtime", version = "0.22.8" }
|
||||
|
||||
[lib]
|
||||
crate-type = ["lib", "cdylib"]
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-librapay"
|
||||
version = "0.22.6"
|
||||
version = "0.22.8"
|
||||
description = "Solana Libra Payment"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -11,10 +11,10 @@ edition = "2018"
|
||||
[dependencies]
|
||||
bincode = "1.2.0"
|
||||
log = "0.4.8"
|
||||
solana-logger = { path = "../../logger", version = "0.22.6" }
|
||||
solana-move-loader-program = { path = "../move_loader", version = "0.22.6" }
|
||||
solana-runtime = { path = "../../runtime", version = "0.22.6" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.22.6" }
|
||||
solana-logger = { path = "../../logger", version = "0.22.8" }
|
||||
solana-move-loader-program = { path = "../move_loader", version = "0.22.8" }
|
||||
solana-runtime = { path = "../../runtime", version = "0.22.8" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.22.8" }
|
||||
language_e2e_tests = { version = "0.0.1-sol4", package = "solana_libra_language_e2e_tests" }
|
||||
types = { version = "0.0.1-sol4", package = "solana_libra_types" }
|
||||
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-move-loader-program"
|
||||
version = "0.22.6"
|
||||
version = "0.22.8"
|
||||
description = "Solana Move loader"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -18,8 +18,8 @@ serde = "1.0.102"
|
||||
serde_bytes = "0.11"
|
||||
serde_derive = "1.0.102"
|
||||
serde_json = "1.0.41"
|
||||
solana-logger = { path = "../../logger", version = "0.22.6" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.22.6" }
|
||||
solana-logger = { path = "../../logger", version = "0.22.8" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.22.8" }
|
||||
|
||||
bytecode_verifier = { version = "0.0.1-sol4", package = "solana_libra_bytecode_verifier" }
|
||||
canonical_serialization = { version = "0.0.1-sol4", package = "solana_libra_canonical_serialization" }
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-noop-program"
|
||||
version = "0.22.6"
|
||||
version = "0.22.8"
|
||||
description = "Solana Noop program"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -10,8 +10,8 @@ edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
log = "0.4.8"
|
||||
solana-logger = { path = "../../logger", version = "0.22.6" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.22.6" }
|
||||
solana-logger = { path = "../../logger", version = "0.22.8" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.22.8" }
|
||||
|
||||
[lib]
|
||||
crate-type = ["lib", "cdylib"]
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-ownable"
|
||||
version = "0.22.6"
|
||||
version = "0.22.8"
|
||||
description = "ownable program"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -12,13 +12,13 @@ edition = "2018"
|
||||
bincode = "1.2.1"
|
||||
serde = "1.0.104"
|
||||
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-traits = "0.2"
|
||||
thiserror = "1.0"
|
||||
|
||||
[dev-dependencies]
|
||||
solana-runtime = { path = "../../runtime", version = "0.22.6" }
|
||||
solana-runtime = { path = "../../runtime", version = "0.22.8" }
|
||||
|
||||
[lib]
|
||||
crate-type = ["lib", "cdylib"]
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-stake-program"
|
||||
version = "0.22.6"
|
||||
version = "0.22.8"
|
||||
description = "Solana Stake program"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -16,11 +16,11 @@ num-traits = "0.2"
|
||||
rand = "0.6.5"
|
||||
serde = "1.0.104"
|
||||
serde_derive = "1.0.103"
|
||||
solana-logger = { path = "../../logger", version = "0.22.6" }
|
||||
solana-metrics = { path = "../../metrics", version = "0.22.6" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.22.6" }
|
||||
solana-vote-program = { path = "../vote", version = "0.22.6" }
|
||||
solana-config-program = { path = "../config", version = "0.22.6" }
|
||||
solana-logger = { path = "../../logger", version = "0.22.8" }
|
||||
solana-metrics = { path = "../../metrics", version = "0.22.8" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.22.8" }
|
||||
solana-vote-program = { path = "../vote", version = "0.22.8" }
|
||||
solana-config-program = { path = "../config", version = "0.22.8" }
|
||||
thiserror = "1.0"
|
||||
|
||||
[lib]
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-storage-program"
|
||||
version = "0.22.6"
|
||||
version = "0.22.8"
|
||||
description = "Solana Storage program"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -16,8 +16,8 @@ num-derive = "0.3"
|
||||
num-traits = "0.2"
|
||||
serde = "1.0.104"
|
||||
serde_derive = "1.0.103"
|
||||
solana-logger = { path = "../../logger", version = "0.22.6" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.22.6" }
|
||||
solana-logger = { path = "../../logger", version = "0.22.8" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.22.8" }
|
||||
|
||||
[dev-dependencies]
|
||||
assert_matches = "1.3.0"
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-vest-program"
|
||||
version = "0.22.6"
|
||||
version = "0.22.8"
|
||||
description = "Solana Vest program"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -16,12 +16,12 @@ num-derive = "0.2"
|
||||
num-traits = "0.2"
|
||||
serde = "1.0.104"
|
||||
serde_derive = "1.0.103"
|
||||
solana-sdk = { path = "../../sdk", version = "0.22.6" }
|
||||
solana-config-program = { path = "../config", version = "0.22.6" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.22.8" }
|
||||
solana-config-program = { path = "../config", version = "0.22.8" }
|
||||
thiserror = "1.0"
|
||||
|
||||
[dev-dependencies]
|
||||
solana-runtime = { path = "../../runtime", version = "0.22.6" }
|
||||
solana-runtime = { path = "../../runtime", version = "0.22.8" }
|
||||
|
||||
[lib]
|
||||
crate-type = ["lib"]
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-vote-program"
|
||||
version = "0.22.6"
|
||||
version = "0.22.8"
|
||||
description = "Solana Vote program"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -15,9 +15,9 @@ num-derive = "0.3"
|
||||
num-traits = "0.2"
|
||||
serde = "1.0.104"
|
||||
serde_derive = "1.0.103"
|
||||
solana-logger = { path = "../../logger", version = "0.22.6" }
|
||||
solana-metrics = { path = "../../metrics", version = "0.22.6" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.22.6" }
|
||||
solana-logger = { path = "../../logger", version = "0.22.8" }
|
||||
solana-metrics = { path = "../../metrics", version = "0.22.8" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.22.8" }
|
||||
thiserror = "1.0"
|
||||
|
||||
[lib]
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-rayon-threadlimit"
|
||||
version = "0.22.6"
|
||||
version = "0.22.8"
|
||||
description = "solana-rayon-threadlimit"
|
||||
homepage = "https://solana.com/"
|
||||
readme = "../README.md"
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-runtime"
|
||||
version = "0.22.6"
|
||||
version = "0.22.8"
|
||||
description = "Solana runtime"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -24,17 +24,17 @@ rayon = "1.2.0"
|
||||
serde = { version = "1.0.104", features = ["rc"] }
|
||||
serde_derive = "1.0.103"
|
||||
serde_json = "1.0.44"
|
||||
solana-logger = { path = "../logger", version = "0.22.6" }
|
||||
solana-measure = { path = "../measure", version = "0.22.6" }
|
||||
solana-metrics = { path = "../metrics", version = "0.22.6" }
|
||||
solana-bpf-loader-program = { path = "../programs/bpf_loader", version = "0.22.6" }
|
||||
solana-sdk = { path = "../sdk", version = "0.22.6" }
|
||||
solana-stake-program = { path = "../programs/stake", version = "0.22.6" }
|
||||
solana-storage-program = { path = "../programs/storage", version = "0.22.6" }
|
||||
solana-vote-program = { path = "../programs/vote", version = "0.22.6" }
|
||||
solana-logger = { path = "../logger", version = "0.22.8" }
|
||||
solana-measure = { path = "../measure", version = "0.22.8" }
|
||||
solana-metrics = { path = "../metrics", version = "0.22.8" }
|
||||
solana-bpf-loader-program = { path = "../programs/bpf_loader", version = "0.22.8" }
|
||||
solana-sdk = { path = "../sdk", version = "0.22.8" }
|
||||
solana-stake-program = { path = "../programs/stake", version = "0.22.8" }
|
||||
solana-storage-program = { path = "../programs/storage", version = "0.22.8" }
|
||||
solana-vote-program = { path = "../programs/vote", version = "0.22.8" }
|
||||
sys-info = "0.5.8"
|
||||
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"
|
||||
|
||||
[lib]
|
||||
@@ -43,4 +43,4 @@ name = "solana_runtime"
|
||||
|
||||
[dev-dependencies]
|
||||
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" }
|
||||
|
@@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
edition = "2018"
|
||||
name = "solana-scripts"
|
||||
description = "Blockchain, Rebuilt for Scale"
|
||||
version = "0.22.6"
|
||||
version = "0.22.8"
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
license = "Apache-2.0"
|
||||
homepage = "https://solana.com/"
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-sdk-c"
|
||||
version = "0.22.6"
|
||||
version = "0.22.8"
|
||||
description = "Solana SDK C"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -18,7 +18,7 @@ bs58 = "0.3.0"
|
||||
libc = "0.2.66"
|
||||
rand_chacha = "0.1.1"
|
||||
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"
|
||||
sha2 = "0.8.0"
|
||||
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-sdk"
|
||||
version = "0.22.6"
|
||||
version = "0.22.8"
|
||||
description = "Solana SDK"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -47,9 +47,9 @@ serde_json = { version = "1.0.44", optional = true }
|
||||
sha2 = "0.8.0"
|
||||
thiserror = "1.0"
|
||||
ed25519-dalek = { version = "=1.0.0-pre.1", optional = true }
|
||||
solana-crate-features = { path = "../crate-features", version = "0.22.6", optional = true }
|
||||
solana-logger = { path = "../logger", version = "0.22.6", optional = true }
|
||||
solana-sdk-macro = { path = "macro", version = "0.22.6" }
|
||||
solana-crate-features = { path = "../crate-features", version = "0.22.8", optional = true }
|
||||
solana-logger = { path = "../logger", version = "0.22.8", optional = true }
|
||||
solana-sdk-macro = { path = "macro", version = "0.22.8" }
|
||||
|
||||
[dev-dependencies]
|
||||
tiny-bip39 = "0.6.2"
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-sdk-bpf-test"
|
||||
version = "0.22.6"
|
||||
version = "0.22.8"
|
||||
description = "Solana BPF SDK test utilities"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-sdk-macro"
|
||||
version = "0.22.6"
|
||||
version = "0.22.8"
|
||||
description = "Solana SDK Macro"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
|
@@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
edition = "2018"
|
||||
name = "solana-sys-tuner"
|
||||
description = "The solana cluster system tuner daemon"
|
||||
version = "0.22.6"
|
||||
version = "0.22.8"
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
license = "Apache-2.0"
|
||||
homepage = "https://solana.com/"
|
||||
@@ -14,8 +14,8 @@ clap = "2.33.0"
|
||||
log = "0.4.8"
|
||||
libc = "0.2.66"
|
||||
semver = "0.9.0"
|
||||
solana-clap-utils = { path = "../clap-utils", version = "0.22.6" }
|
||||
solana-logger = { path = "../logger", version = "0.22.6" }
|
||||
solana-clap-utils = { path = "../clap-utils", version = "0.22.8" }
|
||||
solana-logger = { path = "../logger", version = "0.22.8" }
|
||||
|
||||
[target."cfg(unix)".dependencies]
|
||||
unix_socket2 = "0.5.4"
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-upload-perf"
|
||||
version = "0.22.6"
|
||||
version = "0.22.8"
|
||||
description = "Metrics Upload Utility"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -12,7 +12,7 @@ publish = false
|
||||
[dependencies]
|
||||
log = "0.4.8"
|
||||
serde_json = "1.0.44"
|
||||
solana-metrics = { path = "../metrics", version = "0.22.6" }
|
||||
solana-metrics = { path = "../metrics", version = "0.22.8" }
|
||||
|
||||
[[bin]]
|
||||
name = "solana-upload-perf"
|
||||
|
@@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
edition = "2018"
|
||||
name = "solana-validator"
|
||||
description = "Blockchain, Rebuilt for Scale"
|
||||
version = "0.22.6"
|
||||
version = "0.22.8"
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
license = "Apache-2.0"
|
||||
homepage = "https://solana.com/"
|
||||
@@ -18,19 +18,19 @@ indicatif = "0.13.0"
|
||||
rand = "0.6.5"
|
||||
reqwest = { version = "0.9.24", default-features = false }
|
||||
serde_json = "1.0.44"
|
||||
solana-clap-utils = { path = "../clap-utils", version = "0.22.6" }
|
||||
solana-client = { path = "../client", version = "0.22.6" }
|
||||
solana-core = { path = "../core", version = "0.22.6" }
|
||||
solana-faucet = { path = "../faucet", version = "0.22.6" }
|
||||
solana-ledger = { path = "../ledger", version = "0.22.6" }
|
||||
solana-logger = { path = "../logger", version = "0.22.6" }
|
||||
solana-perf = { path = "../perf", version = "0.22.6" }
|
||||
solana-metrics = { path = "../metrics", version = "0.22.6" }
|
||||
solana-net-utils = { path = "../net-utils", version = "0.22.6" }
|
||||
solana-runtime = { path = "../runtime", version = "0.22.6" }
|
||||
solana-sdk = { path = "../sdk", version = "0.22.6" }
|
||||
solana-vote-program = { path = "../programs/vote", version = "0.22.6" }
|
||||
solana-vote-signer = { path = "../vote-signer", version = "0.22.6" }
|
||||
solana-clap-utils = { path = "../clap-utils", version = "0.22.8" }
|
||||
solana-client = { path = "../client", version = "0.22.8" }
|
||||
solana-core = { path = "../core", version = "0.22.8" }
|
||||
solana-faucet = { path = "../faucet", version = "0.22.8" }
|
||||
solana-ledger = { path = "../ledger", version = "0.22.8" }
|
||||
solana-logger = { path = "../logger", version = "0.22.8" }
|
||||
solana-perf = { path = "../perf", version = "0.22.8" }
|
||||
solana-metrics = { path = "../metrics", version = "0.22.8" }
|
||||
solana-net-utils = { path = "../net-utils", version = "0.22.8" }
|
||||
solana-runtime = { path = "../runtime", version = "0.22.8" }
|
||||
solana-sdk = { path = "../sdk", version = "0.22.8" }
|
||||
solana-vote-program = { path = "../programs/vote", version = "0.22.8" }
|
||||
solana-vote-signer = { path = "../vote-signer", version = "0.22.8" }
|
||||
tar = "0.4.26"
|
||||
tempfile = "3.1.0"
|
||||
|
||||
|
@@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
edition = "2018"
|
||||
name = "solana-vote-signer"
|
||||
description = "Solana Vote Signing Service"
|
||||
version = "0.22.6"
|
||||
version = "0.22.8"
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
license = "Apache-2.0"
|
||||
homepage = "https://solana.com/"
|
||||
@@ -17,9 +17,9 @@ jsonrpc-http-server = "14.0.5"
|
||||
log = "0.4.8"
|
||||
serde = "1.0.104"
|
||||
serde_json = "1.0.44"
|
||||
solana-clap-utils = { path = "../clap-utils", version = "0.22.6" }
|
||||
solana-metrics = { path = "../metrics", version = "0.22.6" }
|
||||
solana-sdk = { path = "../sdk", version = "0.22.6" }
|
||||
solana-clap-utils = { path = "../clap-utils", version = "0.22.8" }
|
||||
solana-metrics = { path = "../metrics", version = "0.22.8" }
|
||||
solana-sdk = { path = "../sdk", version = "0.22.8" }
|
||||
|
||||
[lib]
|
||||
crate-type = ["lib"]
|
||||
|
@@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
edition = "2018"
|
||||
name = "solana-watchtower"
|
||||
description = "Blockchain, Rebuilt for Scale"
|
||||
version = "0.22.6"
|
||||
version = "0.22.8"
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
license = "Apache-2.0"
|
||||
homepage = "https://solana.com/"
|
||||
@@ -13,11 +13,11 @@ clap = "2.33.0"
|
||||
log = "0.4.8"
|
||||
reqwest = { version = "0.9.24", default-features = false, features = ["rustls-tls"] }
|
||||
serde_json = "1.0"
|
||||
solana-clap-utils = { path = "../clap-utils", version = "0.22.6" }
|
||||
solana-client = { path = "../client", version = "0.22.6" }
|
||||
solana-logger = { path = "../logger", version = "0.22.6" }
|
||||
solana-metrics = { path = "../metrics", version = "0.22.6" }
|
||||
solana-sdk = { path = "../sdk", version = "0.22.6" }
|
||||
solana-clap-utils = { path = "../clap-utils", version = "0.22.8" }
|
||||
solana-client = { path = "../client", version = "0.22.8" }
|
||||
solana-logger = { path = "../logger", version = "0.22.8" }
|
||||
solana-metrics = { path = "../metrics", version = "0.22.8" }
|
||||
solana-sdk = { path = "../sdk", version = "0.22.8" }
|
||||
|
||||
[[bin]]
|
||||
name = "solana-watchtower"
|
||||
|
Reference in New Issue
Block a user