Compare commits
15 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
281fd88ea7 | ||
|
ee6b625c13 | ||
|
4cc1b85376 | ||
|
f8312ce125 | ||
|
6a4cd02f64 | ||
|
50f238d900 | ||
|
23e3f4e8a2 | ||
|
27f70dfa49 | ||
|
72d366a84e | ||
|
2da9de8861 | ||
|
f4288961d5 | ||
|
143ad436cf | ||
|
0a9fbc3e4c | ||
|
7aa091bf8c | ||
|
91d8bfa828 |
451
Cargo.lock
generated
451
Cargo.lock
generated
@@ -2168,7 +2168,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "solana"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
dependencies = [
|
||||
"bincode 1.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"bs58 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
@@ -2200,27 +2200,27 @@ dependencies = [
|
||||
"serde 1.0.94 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"serde_derive 1.0.94 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"solana-budget-api 0.16.3",
|
||||
"solana-budget-program 0.16.3",
|
||||
"solana-chacha-sys 0.16.3",
|
||||
"solana-client 0.16.3",
|
||||
"solana-config-program 0.16.3",
|
||||
"solana-drone 0.16.3",
|
||||
"solana-budget-api 0.16.4",
|
||||
"solana-budget-program 0.16.4",
|
||||
"solana-chacha-sys 0.16.4",
|
||||
"solana-client 0.16.4",
|
||||
"solana-config-program 0.16.4",
|
||||
"solana-drone 0.16.4",
|
||||
"solana-ed25519-dalek 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"solana-exchange-program 0.16.3",
|
||||
"solana-kvstore 0.16.3",
|
||||
"solana-logger 0.16.3",
|
||||
"solana-metrics 0.16.3",
|
||||
"solana-netutil 0.16.3",
|
||||
"solana-runtime 0.16.3",
|
||||
"solana-sdk 0.16.3",
|
||||
"solana-stake-api 0.16.3",
|
||||
"solana-stake-program 0.16.3",
|
||||
"solana-storage-api 0.16.3",
|
||||
"solana-storage-program 0.16.3",
|
||||
"solana-vote-api 0.16.3",
|
||||
"solana-vote-program 0.16.3",
|
||||
"solana-vote-signer 0.16.3",
|
||||
"solana-exchange-program 0.16.4",
|
||||
"solana-kvstore 0.16.4",
|
||||
"solana-logger 0.16.4",
|
||||
"solana-metrics 0.16.4",
|
||||
"solana-netutil 0.16.4",
|
||||
"solana-runtime 0.16.4",
|
||||
"solana-sdk 0.16.4",
|
||||
"solana-stake-api 0.16.4",
|
||||
"solana-stake-program 0.16.4",
|
||||
"solana-storage-api 0.16.4",
|
||||
"solana-storage-program 0.16.4",
|
||||
"solana-vote-api 0.16.4",
|
||||
"solana-vote-program 0.16.4",
|
||||
"solana-vote-signer 0.16.4",
|
||||
"sys-info 0.5.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"tokio 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
@@ -2229,7 +2229,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "solana-bench-exchange"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
dependencies = [
|
||||
"bincode 1.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"bs58 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
@@ -2245,33 +2245,33 @@ dependencies = [
|
||||
"serde_derive 1.0.94 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"serde_yaml 0.8.9 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"solana 0.16.3",
|
||||
"solana-client 0.16.3",
|
||||
"solana-drone 0.16.3",
|
||||
"solana-exchange-api 0.16.3",
|
||||
"solana-exchange-program 0.16.3",
|
||||
"solana-logger 0.16.3",
|
||||
"solana-metrics 0.16.3",
|
||||
"solana-netutil 0.16.3",
|
||||
"solana-runtime 0.16.3",
|
||||
"solana-sdk 0.16.3",
|
||||
"solana 0.16.4",
|
||||
"solana-client 0.16.4",
|
||||
"solana-drone 0.16.4",
|
||||
"solana-exchange-api 0.16.4",
|
||||
"solana-exchange-program 0.16.4",
|
||||
"solana-logger 0.16.4",
|
||||
"solana-metrics 0.16.4",
|
||||
"solana-netutil 0.16.4",
|
||||
"solana-runtime 0.16.4",
|
||||
"solana-sdk 0.16.4",
|
||||
"untrusted 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"ws 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "solana-bench-streamer"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
dependencies = [
|
||||
"clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"solana 0.16.3",
|
||||
"solana-logger 0.16.3",
|
||||
"solana-netutil 0.16.3",
|
||||
"solana 0.16.4",
|
||||
"solana-logger 0.16.4",
|
||||
"solana-netutil 0.16.4",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "solana-bench-tps"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
dependencies = [
|
||||
"clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
@@ -2280,58 +2280,58 @@ dependencies = [
|
||||
"serde_derive 1.0.94 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"serde_yaml 0.8.9 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"solana 0.16.3",
|
||||
"solana-client 0.16.3",
|
||||
"solana-drone 0.16.3",
|
||||
"solana-logger 0.16.3",
|
||||
"solana-metrics 0.16.3",
|
||||
"solana-netutil 0.16.3",
|
||||
"solana-runtime 0.16.3",
|
||||
"solana-sdk 0.16.3",
|
||||
"solana 0.16.4",
|
||||
"solana-client 0.16.4",
|
||||
"solana-drone 0.16.4",
|
||||
"solana-logger 0.16.4",
|
||||
"solana-metrics 0.16.4",
|
||||
"solana-netutil 0.16.4",
|
||||
"solana-runtime 0.16.4",
|
||||
"solana-sdk 0.16.4",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "solana-bpf-loader-api"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
dependencies = [
|
||||
"bincode 1.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"serde 1.0.94 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"solana-logger 0.16.3",
|
||||
"solana-sdk 0.16.3",
|
||||
"solana-logger 0.16.4",
|
||||
"solana-sdk 0.16.4",
|
||||
"solana_rbpf 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "solana-bpf-loader-program"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
dependencies = [
|
||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"solana-bpf-loader-api 0.16.3",
|
||||
"solana-logger 0.16.3",
|
||||
"solana-sdk 0.16.3",
|
||||
"solana-bpf-loader-api 0.16.4",
|
||||
"solana-logger 0.16.4",
|
||||
"solana-sdk 0.16.4",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "solana-bpf-programs"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
dependencies = [
|
||||
"bincode 1.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"elf 0.0.10 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"solana-bpf-loader-api 0.16.3",
|
||||
"solana-logger 0.16.3",
|
||||
"solana-runtime 0.16.3",
|
||||
"solana-sdk 0.16.3",
|
||||
"solana-bpf-loader-api 0.16.4",
|
||||
"solana-logger 0.16.4",
|
||||
"solana-runtime 0.16.4",
|
||||
"solana-sdk 0.16.4",
|
||||
"solana_rbpf 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"walkdir 2.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "solana-budget-api"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
dependencies = [
|
||||
"bincode 1.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"chrono 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
@@ -2340,30 +2340,30 @@ dependencies = [
|
||||
"num-traits 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"serde 1.0.94 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"serde_derive 1.0.94 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"solana-runtime 0.16.3",
|
||||
"solana-sdk 0.16.3",
|
||||
"solana-runtime 0.16.4",
|
||||
"solana-sdk 0.16.4",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "solana-budget-program"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
dependencies = [
|
||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"solana-budget-api 0.16.3",
|
||||
"solana-logger 0.16.3",
|
||||
"solana-sdk 0.16.3",
|
||||
"solana-budget-api 0.16.4",
|
||||
"solana-logger 0.16.4",
|
||||
"solana-sdk 0.16.4",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "solana-chacha-sys"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
dependencies = [
|
||||
"cc 1.0.37 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "solana-client"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
dependencies = [
|
||||
"bincode 1.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"bs58 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
@@ -2376,37 +2376,37 @@ dependencies = [
|
||||
"serde 1.0.94 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"serde_derive 1.0.94 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"solana-logger 0.16.3",
|
||||
"solana-netutil 0.16.3",
|
||||
"solana-sdk 0.16.3",
|
||||
"solana-logger 0.16.4",
|
||||
"solana-netutil 0.16.4",
|
||||
"solana-sdk 0.16.4",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "solana-config-api"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
dependencies = [
|
||||
"bincode 1.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"serde 1.0.94 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"serde_derive 1.0.94 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"solana-logger 0.16.3",
|
||||
"solana-runtime 0.16.3",
|
||||
"solana-sdk 0.16.3",
|
||||
"solana-logger 0.16.4",
|
||||
"solana-runtime 0.16.4",
|
||||
"solana-sdk 0.16.4",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "solana-config-program"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
dependencies = [
|
||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"solana-config-api 0.16.3",
|
||||
"solana-logger 0.16.3",
|
||||
"solana-sdk 0.16.3",
|
||||
"solana-config-api 0.16.4",
|
||||
"solana-logger 0.16.4",
|
||||
"solana-sdk 0.16.4",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "solana-drone"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
dependencies = [
|
||||
"bincode 1.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
@@ -2415,9 +2415,9 @@ dependencies = [
|
||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"serde 1.0.94 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"serde_derive 1.0.94 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"solana-logger 0.16.3",
|
||||
"solana-metrics 0.16.3",
|
||||
"solana-sdk 0.16.3",
|
||||
"solana-logger 0.16.4",
|
||||
"solana-metrics 0.16.4",
|
||||
"solana-sdk 0.16.4",
|
||||
"tokio 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
@@ -2436,40 +2436,40 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "solana-exchange-api"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
dependencies = [
|
||||
"bincode 1.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"serde 1.0.94 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"serde_derive 1.0.94 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"solana-logger 0.16.3",
|
||||
"solana-metrics 0.16.3",
|
||||
"solana-runtime 0.16.3",
|
||||
"solana-sdk 0.16.3",
|
||||
"solana-logger 0.16.4",
|
||||
"solana-metrics 0.16.4",
|
||||
"solana-runtime 0.16.4",
|
||||
"solana-sdk 0.16.4",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "solana-exchange-program"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
dependencies = [
|
||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"solana-exchange-api 0.16.3",
|
||||
"solana-logger 0.16.3",
|
||||
"solana-sdk 0.16.3",
|
||||
"solana-exchange-api 0.16.4",
|
||||
"solana-logger 0.16.4",
|
||||
"solana-sdk 0.16.4",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "solana-failure-program"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
dependencies = [
|
||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"solana-runtime 0.16.3",
|
||||
"solana-sdk 0.16.3",
|
||||
"solana-runtime 0.16.4",
|
||||
"solana-sdk 0.16.4",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "solana-genesis"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
dependencies = [
|
||||
"bincode 1.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
@@ -2478,41 +2478,41 @@ dependencies = [
|
||||
"serde_derive 1.0.94 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"serde_yaml 0.8.9 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"solana 0.16.3",
|
||||
"solana-bpf-loader-api 0.16.3",
|
||||
"solana-bpf-loader-program 0.16.3",
|
||||
"solana-budget-api 0.16.3",
|
||||
"solana-budget-program 0.16.3",
|
||||
"solana-config-api 0.16.3",
|
||||
"solana-config-program 0.16.3",
|
||||
"solana-exchange-api 0.16.3",
|
||||
"solana-exchange-program 0.16.3",
|
||||
"solana-sdk 0.16.3",
|
||||
"solana-stake-api 0.16.3",
|
||||
"solana-stake-program 0.16.3",
|
||||
"solana-storage-api 0.16.3",
|
||||
"solana-storage-program 0.16.3",
|
||||
"solana-token-api 0.16.3",
|
||||
"solana-token-program 0.16.3",
|
||||
"solana-vote-api 0.16.3",
|
||||
"solana-vote-program 0.16.3",
|
||||
"solana 0.16.4",
|
||||
"solana-bpf-loader-api 0.16.4",
|
||||
"solana-bpf-loader-program 0.16.4",
|
||||
"solana-budget-api 0.16.4",
|
||||
"solana-budget-program 0.16.4",
|
||||
"solana-config-api 0.16.4",
|
||||
"solana-config-program 0.16.4",
|
||||
"solana-exchange-api 0.16.4",
|
||||
"solana-exchange-program 0.16.4",
|
||||
"solana-sdk 0.16.4",
|
||||
"solana-stake-api 0.16.4",
|
||||
"solana-stake-program 0.16.4",
|
||||
"solana-storage-api 0.16.4",
|
||||
"solana-storage-program 0.16.4",
|
||||
"solana-token-api 0.16.4",
|
||||
"solana-token-program 0.16.4",
|
||||
"solana-vote-api 0.16.4",
|
||||
"solana-vote-program 0.16.4",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "solana-gossip"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
dependencies = [
|
||||
"clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"env_logger 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"solana 0.16.3",
|
||||
"solana-client 0.16.3",
|
||||
"solana-netutil 0.16.3",
|
||||
"solana-sdk 0.16.3",
|
||||
"solana 0.16.4",
|
||||
"solana-client 0.16.4",
|
||||
"solana-netutil 0.16.4",
|
||||
"solana-sdk 0.16.4",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "solana-install"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
dependencies = [
|
||||
"atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"bincode 1.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
@@ -2532,10 +2532,10 @@ dependencies = [
|
||||
"serde 1.0.94 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"serde_derive 1.0.94 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"serde_yaml 0.8.9 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"solana-client 0.16.3",
|
||||
"solana-config-api 0.16.3",
|
||||
"solana-logger 0.16.3",
|
||||
"solana-sdk 0.16.3",
|
||||
"solana-client 0.16.4",
|
||||
"solana-config-api 0.16.4",
|
||||
"solana-logger 0.16.4",
|
||||
"solana-sdk 0.16.4",
|
||||
"tar 0.4.26 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
@@ -2545,16 +2545,16 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "solana-keygen"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
dependencies = [
|
||||
"clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"dirs 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"solana-sdk 0.16.3",
|
||||
"solana-sdk 0.16.4",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "solana-kvstore"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
dependencies = [
|
||||
"bincode 1.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
@@ -2569,35 +2569,38 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "solana-ledger-tool"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
dependencies = [
|
||||
"assert_cmd 0.11.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"serde 1.0.94 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"serde_derive 1.0.94 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"solana 0.16.3",
|
||||
"solana-logger 0.16.3",
|
||||
"solana-runtime 0.16.3",
|
||||
"solana-sdk 0.16.3",
|
||||
"serde_yaml 0.8.9 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"solana 0.16.4",
|
||||
"solana-logger 0.16.4",
|
||||
"solana-runtime 0.16.4",
|
||||
"solana-sdk 0.16.4",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "solana-logger"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
dependencies = [
|
||||
"env_logger 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "solana-merkle-tree"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
dependencies = [
|
||||
"hex 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"solana-sdk 0.16.3",
|
||||
"solana-sdk 0.16.4",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "solana-metrics"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
dependencies = [
|
||||
"env_logger 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"influx_db_client 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
@@ -2605,13 +2608,13 @@ dependencies = [
|
||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"reqwest 0.9.18 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"solana-sdk 0.16.3",
|
||||
"solana-sdk 0.16.4",
|
||||
"sys-info 0.5.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "solana-netutil"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
dependencies = [
|
||||
"bincode 1.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
@@ -2619,33 +2622,33 @@ dependencies = [
|
||||
"nix 0.14.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"socket2 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"solana-logger 0.16.3",
|
||||
"solana-logger 0.16.4",
|
||||
"tokio 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "solana-noop-program"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
dependencies = [
|
||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"solana-logger 0.16.3",
|
||||
"solana-sdk 0.16.3",
|
||||
"solana-logger 0.16.4",
|
||||
"solana-sdk 0.16.4",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "solana-replicator"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
dependencies = [
|
||||
"clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"solana 0.16.3",
|
||||
"solana-logger 0.16.3",
|
||||
"solana-netutil 0.16.3",
|
||||
"solana-sdk 0.16.3",
|
||||
"solana 0.16.4",
|
||||
"solana-logger 0.16.4",
|
||||
"solana-netutil 0.16.4",
|
||||
"solana-sdk 0.16.4",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "solana-runtime"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
dependencies = [
|
||||
"bincode 1.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"bv 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
@@ -2663,23 +2666,23 @@ dependencies = [
|
||||
"serde 1.0.94 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"serde_derive 1.0.94 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"solana-bpf-loader-api 0.16.3",
|
||||
"solana-bpf-loader-program 0.16.3",
|
||||
"solana-logger 0.16.3",
|
||||
"solana-metrics 0.16.3",
|
||||
"solana-noop-program 0.16.3",
|
||||
"solana-sdk 0.16.3",
|
||||
"solana-stake-api 0.16.3",
|
||||
"solana-stake-program 0.16.3",
|
||||
"solana-storage-api 0.16.3",
|
||||
"solana-vote-api 0.16.3",
|
||||
"solana-vote-program 0.16.3",
|
||||
"solana-bpf-loader-api 0.16.4",
|
||||
"solana-bpf-loader-program 0.16.4",
|
||||
"solana-logger 0.16.4",
|
||||
"solana-metrics 0.16.4",
|
||||
"solana-noop-program 0.16.4",
|
||||
"solana-sdk 0.16.4",
|
||||
"solana-stake-api 0.16.4",
|
||||
"solana-stake-program 0.16.4",
|
||||
"solana-storage-api 0.16.4",
|
||||
"solana-vote-api 0.16.4",
|
||||
"solana-vote-program 0.16.4",
|
||||
"sys-info 0.5.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "solana-sdk"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
dependencies = [
|
||||
"assert_matches 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"bincode 1.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
@@ -2700,38 +2703,38 @@ dependencies = [
|
||||
"serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"sha2 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"solana-ed25519-dalek 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"solana-logger 0.16.3",
|
||||
"solana-logger 0.16.4",
|
||||
"untrusted 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "solana-stake-api"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
dependencies = [
|
||||
"bincode 1.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"serde 1.0.94 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"serde_derive 1.0.94 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"solana-logger 0.16.3",
|
||||
"solana-metrics 0.16.3",
|
||||
"solana-sdk 0.16.3",
|
||||
"solana-vote-api 0.16.3",
|
||||
"solana-logger 0.16.4",
|
||||
"solana-metrics 0.16.4",
|
||||
"solana-sdk 0.16.4",
|
||||
"solana-vote-api 0.16.4",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "solana-stake-program"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
dependencies = [
|
||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"solana-logger 0.16.3",
|
||||
"solana-sdk 0.16.3",
|
||||
"solana-stake-api 0.16.3",
|
||||
"solana-logger 0.16.4",
|
||||
"solana-sdk 0.16.4",
|
||||
"solana-stake-api 0.16.4",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "solana-storage-api"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
dependencies = [
|
||||
"assert_matches 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"bincode 1.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
@@ -2741,26 +2744,26 @@ dependencies = [
|
||||
"rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"serde 1.0.94 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"serde_derive 1.0.94 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"solana-logger 0.16.3",
|
||||
"solana-sdk 0.16.3",
|
||||
"solana-logger 0.16.4",
|
||||
"solana-sdk 0.16.4",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "solana-storage-program"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
dependencies = [
|
||||
"assert_matches 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"bincode 1.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"solana-logger 0.16.3",
|
||||
"solana-runtime 0.16.3",
|
||||
"solana-sdk 0.16.3",
|
||||
"solana-storage-api 0.16.3",
|
||||
"solana-logger 0.16.4",
|
||||
"solana-runtime 0.16.4",
|
||||
"solana-sdk 0.16.4",
|
||||
"solana-storage-api 0.16.4",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "solana-token-api"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
dependencies = [
|
||||
"bincode 1.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
@@ -2768,89 +2771,90 @@ dependencies = [
|
||||
"num-traits 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"serde 1.0.94 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"serde_derive 1.0.94 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"solana-logger 0.16.3",
|
||||
"solana-sdk 0.16.3",
|
||||
"solana-logger 0.16.4",
|
||||
"solana-sdk 0.16.4",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "solana-token-program"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
dependencies = [
|
||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"solana-logger 0.16.3",
|
||||
"solana-sdk 0.16.3",
|
||||
"solana-token-api 0.16.3",
|
||||
"solana-logger 0.16.4",
|
||||
"solana-sdk 0.16.4",
|
||||
"solana-token-api 0.16.4",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "solana-upload-perf"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
dependencies = [
|
||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"solana-metrics 0.16.3",
|
||||
"solana-metrics 0.16.4",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "solana-validator"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
dependencies = [
|
||||
"clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"solana 0.16.3",
|
||||
"solana-drone 0.16.3",
|
||||
"solana-logger 0.16.3",
|
||||
"solana-metrics 0.16.3",
|
||||
"solana-netutil 0.16.3",
|
||||
"solana-runtime 0.16.3",
|
||||
"solana-sdk 0.16.3",
|
||||
"solana-vote-api 0.16.3",
|
||||
"solana-vote-signer 0.16.3",
|
||||
"solana 0.16.4",
|
||||
"solana-drone 0.16.4",
|
||||
"solana-logger 0.16.4",
|
||||
"solana-metrics 0.16.4",
|
||||
"solana-netutil 0.16.4",
|
||||
"solana-runtime 0.16.4",
|
||||
"solana-sdk 0.16.4",
|
||||
"solana-vote-api 0.16.4",
|
||||
"solana-vote-signer 0.16.4",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "solana-validator-info"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
dependencies = [
|
||||
"bincode 1.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"dirs 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"reqwest 0.9.18 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"serde 1.0.94 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"serde_derive 1.0.94 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"solana-client 0.16.3",
|
||||
"solana-config-api 0.16.3",
|
||||
"solana-sdk 0.16.3",
|
||||
"solana-client 0.16.4",
|
||||
"solana-config-api 0.16.4",
|
||||
"solana-sdk 0.16.4",
|
||||
"url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "solana-vote-api"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
dependencies = [
|
||||
"bincode 1.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"serde 1.0.94 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"serde_derive 1.0.94 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"solana-logger 0.16.3",
|
||||
"solana-metrics 0.16.3",
|
||||
"solana-sdk 0.16.3",
|
||||
"solana-logger 0.16.4",
|
||||
"solana-metrics 0.16.4",
|
||||
"solana-sdk 0.16.4",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "solana-vote-program"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
dependencies = [
|
||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"solana-logger 0.16.3",
|
||||
"solana-sdk 0.16.3",
|
||||
"solana-vote-api 0.16.3",
|
||||
"solana-logger 0.16.4",
|
||||
"solana-sdk 0.16.4",
|
||||
"solana-vote-api 0.16.4",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "solana-vote-signer"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
dependencies = [
|
||||
"bs58 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
@@ -2860,13 +2864,13 @@ dependencies = [
|
||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"serde 1.0.94 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"solana-metrics 0.16.3",
|
||||
"solana-sdk 0.16.3",
|
||||
"solana-metrics 0.16.4",
|
||||
"solana-sdk 0.16.4",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "solana-wallet"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
dependencies = [
|
||||
"bincode 1.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"bs58 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
@@ -2876,18 +2880,19 @@ dependencies = [
|
||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"num-traits 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"solana 0.16.3",
|
||||
"solana-budget-api 0.16.3",
|
||||
"solana-budget-program 0.16.3",
|
||||
"solana-client 0.16.3",
|
||||
"solana-drone 0.16.3",
|
||||
"solana-logger 0.16.3",
|
||||
"solana-netutil 0.16.3",
|
||||
"solana-sdk 0.16.3",
|
||||
"solana-stake-api 0.16.3",
|
||||
"solana-storage-api 0.16.3",
|
||||
"solana-vote-api 0.16.3",
|
||||
"solana-vote-signer 0.16.3",
|
||||
"solana 0.16.4",
|
||||
"solana-budget-api 0.16.4",
|
||||
"solana-budget-program 0.16.4",
|
||||
"solana-client 0.16.4",
|
||||
"solana-drone 0.16.4",
|
||||
"solana-logger 0.16.4",
|
||||
"solana-netutil 0.16.4",
|
||||
"solana-runtime 0.16.4",
|
||||
"solana-sdk 0.16.4",
|
||||
"solana-stake-api 0.16.4",
|
||||
"solana-storage-api 0.16.4",
|
||||
"solana-vote-api 0.16.4",
|
||||
"solana-vote-signer 0.16.4",
|
||||
"url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
|
@@ -2,7 +2,7 @@
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
edition = "2018"
|
||||
name = "solana-bench-exchange"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
license = "Apache-2.0"
|
||||
homepage = "https://solana.com/"
|
||||
@@ -24,16 +24,16 @@ serde_derive = "1.0.92"
|
||||
serde_json = "1.0.39"
|
||||
serde_yaml = "0.8.9"
|
||||
# solana-runtime = { path = "../solana/runtime"}
|
||||
solana = { path = "../core", version = "0.16.3" }
|
||||
solana-client = { path = "../client", version = "0.16.3" }
|
||||
solana-drone = { path = "../drone", version = "0.16.3" }
|
||||
solana-exchange-api = { path = "../programs/exchange_api", version = "0.16.3" }
|
||||
solana-exchange-program = { path = "../programs/exchange_program", version = "0.16.3" }
|
||||
solana-logger = { path = "../logger", version = "0.16.3" }
|
||||
solana-metrics = { path = "../metrics", version = "0.16.3" }
|
||||
solana-netutil = { path = "../netutil", version = "0.16.3" }
|
||||
solana-runtime = { path = "../runtime", version = "0.16.3" }
|
||||
solana-sdk = { path = "../sdk", version = "0.16.3" }
|
||||
solana = { path = "../core", version = "0.16.4" }
|
||||
solana-client = { path = "../client", version = "0.16.4" }
|
||||
solana-drone = { path = "../drone", version = "0.16.4" }
|
||||
solana-exchange-api = { path = "../programs/exchange_api", version = "0.16.4" }
|
||||
solana-exchange-program = { path = "../programs/exchange_program", version = "0.16.4" }
|
||||
solana-logger = { path = "../logger", version = "0.16.4" }
|
||||
solana-metrics = { path = "../metrics", version = "0.16.4" }
|
||||
solana-netutil = { path = "../netutil", version = "0.16.4" }
|
||||
solana-runtime = { path = "../runtime", version = "0.16.4" }
|
||||
solana-sdk = { path = "../sdk", version = "0.16.4" }
|
||||
untrusted = "0.6.2"
|
||||
ws = "0.8.1"
|
||||
|
||||
|
@@ -2,16 +2,16 @@
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
edition = "2018"
|
||||
name = "solana-bench-streamer"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
license = "Apache-2.0"
|
||||
homepage = "https://solana.com/"
|
||||
|
||||
[dependencies]
|
||||
clap = "2.33.0"
|
||||
solana = { path = "../core", version = "0.16.3" }
|
||||
solana-logger = { path = "../logger", version = "0.16.3" }
|
||||
solana-netutil = { path = "../netutil", version = "0.16.3" }
|
||||
solana = { path = "../core", version = "0.16.4" }
|
||||
solana-logger = { path = "../logger", version = "0.16.4" }
|
||||
solana-netutil = { path = "../netutil", version = "0.16.4" }
|
||||
|
||||
[features]
|
||||
cuda = ["solana/cuda"]
|
||||
|
@@ -2,7 +2,7 @@
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
edition = "2018"
|
||||
name = "solana-bench-tps"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
license = "Apache-2.0"
|
||||
homepage = "https://solana.com/"
|
||||
@@ -15,14 +15,14 @@ serde = "1.0.92"
|
||||
serde_derive = "1.0.92"
|
||||
serde_json = "1.0.39"
|
||||
serde_yaml = "0.8.9"
|
||||
solana = { path = "../core", version = "0.16.3" }
|
||||
solana-client = { path = "../client", version = "0.16.3" }
|
||||
solana-drone = { path = "../drone", version = "0.16.3" }
|
||||
solana-logger = { path = "../logger", version = "0.16.3" }
|
||||
solana-metrics = { path = "../metrics", version = "0.16.3" }
|
||||
solana-netutil = { path = "../netutil", version = "0.16.3" }
|
||||
solana-runtime = { path = "../runtime", version = "0.16.3" }
|
||||
solana-sdk = { path = "../sdk", version = "0.16.3" }
|
||||
solana = { path = "../core", version = "0.16.4" }
|
||||
solana-client = { path = "../client", version = "0.16.4" }
|
||||
solana-drone = { path = "../drone", version = "0.16.4" }
|
||||
solana-logger = { path = "../logger", version = "0.16.4" }
|
||||
solana-metrics = { path = "../metrics", version = "0.16.4" }
|
||||
solana-netutil = { path = "../netutil", version = "0.16.4" }
|
||||
solana-runtime = { path = "../runtime", version = "0.16.4" }
|
||||
solana-sdk = { path = "../sdk", version = "0.16.4" }
|
||||
|
||||
[features]
|
||||
cuda = ["solana/cuda"]
|
||||
|
@@ -74,8 +74,8 @@ The `solana-install` tool can be used to easily install and upgrade the cluster
|
||||
software on Linux x86_64 and mac OS systems.
|
||||
|
||||
```bash
|
||||
$ export SOLANA_RELEASE=v0.16.0 # skip this line to install the latest release
|
||||
$ curl -sSf https://raw.githubusercontent.com/solana-labs/solana/v0.16.0/install/solana-install-init.sh | sh -s
|
||||
$ export SOLANA_RELEASE=v0.16.4 # skip this line to install the latest release
|
||||
$ curl -sSf https://raw.githubusercontent.com/solana-labs/solana/v0.16.4/install/solana-install-init.sh | sh -s
|
||||
```
|
||||
|
||||
Alternatively build the `solana-install` program from source and run the
|
||||
@@ -255,3 +255,20 @@ Available fields for VALIDATOR_INFO_ARGS:
|
||||
* Website
|
||||
* Keybase ID
|
||||
* Details
|
||||
|
||||
##### Keybase
|
||||
|
||||
Including a Keybase ID allows client applications (like the Solana Network
|
||||
Explorer) to automatically pull in your validator public profile, including
|
||||
cryptographic proofs, brand identity, etc. To connect your validator pubkey with
|
||||
Keybase:
|
||||
|
||||
1. Join https://keybase.io/ and complete the profile for your validator
|
||||
2. Add your validator **identity pubkey** to Keybase:
|
||||
* Create an empty file on your local computer called `solana_pubkey_<PUBKEY>`
|
||||
* In Keybase, navigate to the Files section, and upload your pubkey file to
|
||||
your public folder: `/keybase/public/<KEYBASE_ID>`
|
||||
* To check your pubkey, ensure you can successfully browse to
|
||||
`https://keybase.pub/<KEYBASE_ID>/solana_pubkey_<PUBKEY>`
|
||||
3. Add or update your `solana-validator-info` with your Keybase ID. The CLI will
|
||||
verify the `solana_pubkey_<PUBKEY>` file
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-chacha-sys"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
description = "Solana chacha-sys"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
|
@@ -3,7 +3,7 @@ steps:
|
||||
timeout_in_minutes: 20
|
||||
name: "publish docker"
|
||||
- command: "ci/publish-crate.sh"
|
||||
timeout_in_minutes: 40
|
||||
timeout_in_minutes: 60
|
||||
name: "publish crate"
|
||||
branches: "!master"
|
||||
- command: "ci/publish-bpf-sdk.sh"
|
||||
|
@@ -36,6 +36,18 @@ for Cargo_toml in $Cargo_tomls; do
|
||||
exit 1
|
||||
}
|
||||
|
||||
crate_name=$(grep -m 1 '^name = ' "$Cargo_toml" | cut -f 3 -d ' ' | tr -d \")
|
||||
|
||||
if grep -q "^publish = false" "$Cargo_toml"; then
|
||||
echo "$crate_name is is marked as unpublishable"
|
||||
continue
|
||||
fi
|
||||
|
||||
if [[ $(is_crate_version_uploaded "$crate_name" "$expectedCrateVersion") = True ]] ; then
|
||||
echo "${crate_name} version ${expectedCrateVersion} is already on crates.io"
|
||||
continue
|
||||
fi
|
||||
|
||||
(
|
||||
set -x
|
||||
crate=$(dirname "$Cargo_toml")
|
||||
@@ -45,13 +57,10 @@ for Cargo_toml in $Cargo_tomls; do
|
||||
ci/docker-run.sh "$rust_stable_docker_image" bash -exc "cd $crate; $cargoCommand"
|
||||
) || true # <-- Don't fail. We want to be able to retry the job in cases when a publish fails halfway due to network/cloud issues
|
||||
|
||||
# shellcheck disable=SC2086
|
||||
crate_name=$(grep -m 1 '^name = ' $Cargo_toml | cut -f 3 -d ' ' | tr -d \")
|
||||
numRetries=30
|
||||
for ((i = 1 ; i <= numRetries ; i++)); do
|
||||
echo "Attempt ${i} of ${numRetries}"
|
||||
# shellcheck disable=SC2086
|
||||
if [[ $(is_crate_version_uploaded $crate_name $expectedCrateVersion) = True ]] ; then
|
||||
if [[ $(is_crate_version_uploaded "$crate_name" "$expectedCrateVersion") = True ]] ; then
|
||||
echo "Found ${crate_name} version ${expectedCrateVersion} on crates.io"
|
||||
break
|
||||
fi
|
||||
|
@@ -29,6 +29,7 @@ maybeExternalPrimordialAccountsFile=
|
||||
maybeLamports=
|
||||
maybeLetsEncrypt=
|
||||
maybeFullnodeAdditionalDiskSize=
|
||||
maybeNoSnapshot=
|
||||
|
||||
usage() {
|
||||
exitcode=0
|
||||
@@ -82,7 +83,9 @@ Deploys a CD testnet
|
||||
--letsencrypt [dns name]
|
||||
- Attempt to generate a TLS certificate using this DNS name
|
||||
--fullnode-additional-disk-size-gb [number]
|
||||
- Size of additional disk in GB for all fullnodes
|
||||
- Size of additional disk in GB for all fullnodes
|
||||
--no-snapshot
|
||||
- If set, disables booting validators from a snapshot
|
||||
|
||||
Note: the SOLANA_METRICS_CONFIG environment variable is used to configure
|
||||
metrics
|
||||
@@ -122,6 +125,9 @@ while [[ -n $1 ]]; do
|
||||
elif [[ $1 == --machine-type* ]]; then # Bypass quoted long args for GPUs
|
||||
shortArgs+=("$1")
|
||||
shift
|
||||
elif [[ $1 = --no-snapshot ]]; then
|
||||
maybeNoSnapshot="$1"
|
||||
shift 1
|
||||
else
|
||||
usage "Unknown long option: $1"
|
||||
fi
|
||||
@@ -396,6 +402,11 @@ if ! $skipStart; then
|
||||
args+=($maybeLamports)
|
||||
fi
|
||||
|
||||
if [[ -n $maybeNoSnapshot ]]; then
|
||||
# shellcheck disable=SC2206
|
||||
args+=($maybeNoSnapshot)
|
||||
fi
|
||||
|
||||
time net/net.sh "${args[@]}"
|
||||
) || ok=false
|
||||
|
||||
|
@@ -158,7 +158,6 @@ testnet-demo)
|
||||
tds)
|
||||
CHANNEL_OR_TAG=beta
|
||||
CHANNEL_BRANCH=$BETA_CHANNEL
|
||||
: "${GCE_NODE_COUNT:=3}"
|
||||
;;
|
||||
*)
|
||||
echo "Error: Invalid TESTNET=$TESTNET"
|
||||
@@ -470,10 +469,74 @@ deploy() {
|
||||
(
|
||||
set -x
|
||||
|
||||
EXTERNAL_ACCOUNTS_FILE_URL=https://raw.githubusercontent.com/solana-labs/tour-de-sol/master/stage1/validator.yml
|
||||
EXTERNAL_ACCOUNTS_FILE=/tmp/validator.yml
|
||||
# Allow cluster configuration to be overridden from env vars
|
||||
|
||||
if [[ -z $TDS_ZONES ]]; then
|
||||
TDS_ZONES="us-west1-a,us-central1-a,europe-west4-a"
|
||||
fi
|
||||
GCE_CLOUD_ZONES=(); while read -r -d, ; do GCE_CLOUD_ZONES+=( "$REPLY" ); done <<< "${TDS_ZONES},"
|
||||
|
||||
if [[ -z $TDS_NODE_COUNT ]]; then
|
||||
TDS_NODE_COUNT="3"
|
||||
fi
|
||||
|
||||
if [[ -z $TDS_CLIENT_COUNT ]]; then
|
||||
TDS_CLIENT_COUNT="1"
|
||||
fi
|
||||
|
||||
if [[ -z $ENABLE_GPU ]]; then
|
||||
maybeGpu=(-G "--machine-type n1-standard-16 --accelerator count=2,type=nvidia-tesla-v100")
|
||||
elif [[ $ENABLE_GPU == skip ]]; then
|
||||
maybeGpu=()
|
||||
else
|
||||
maybeGpu=(-G "${ENABLE_GPU}")
|
||||
fi
|
||||
|
||||
if [[ -z $HASHES_PER_TICK ]]; then
|
||||
maybeHashesPerTick="--hashes-per-tick auto"
|
||||
elif [[ $HASHES_PER_TICK == skip ]]; then
|
||||
maybeHashesPerTick=""
|
||||
else
|
||||
maybeHashesPerTick="--hashes-per-tick ${HASHES_PER_TICK}"
|
||||
fi
|
||||
|
||||
if [[ -z $STAKE_INTERNAL_NODES ]]; then
|
||||
maybeStakeInternalNodes="--stake-internal-nodes 1000000000000"
|
||||
elif [[ $STAKE_INTERNAL_NODES == skip ]]; then
|
||||
maybeStakeInternalNodes=""
|
||||
else
|
||||
maybeStakeInternalNodes="--stake-internal-nodes ${STAKE_INTERNAL_NODES}"
|
||||
fi
|
||||
|
||||
EXTERNAL_ACCOUNTS_FILE=/tmp/validator.yml
|
||||
if [[ -z $EXTERNAL_ACCOUNTS_FILE_URL ]]; then
|
||||
EXTERNAL_ACCOUNTS_FILE_URL=https://raw.githubusercontent.com/solana-labs/tour-de-sol/master/stage1/validator.yml
|
||||
wget ${EXTERNAL_ACCOUNTS_FILE_URL} -O ${EXTERNAL_ACCOUNTS_FILE}
|
||||
maybeExternalAccountsFile="--external-accounts-file ${EXTERNAL_ACCOUNTS_FILE}"
|
||||
elif [[ $EXTERNAL_ACCOUNTS_FILE_URL == skip ]]; then
|
||||
maybeExternalAccountsFile=""
|
||||
else
|
||||
EXTERNAL_ACCOUNTS_FILE_URL=https://raw.githubusercontent.com/solana-labs/tour-de-sol/master/stage1/validator.yml
|
||||
wget ${EXTERNAL_ACCOUNTS_FILE_URL} -O ${EXTERNAL_ACCOUNTS_FILE}
|
||||
maybeExternalAccountsFile="--external-accounts-file ${EXTERNAL_ACCOUNTS_FILE}"
|
||||
fi
|
||||
|
||||
if [[ -z $LAMPORTS ]]; then
|
||||
maybeLamports="--lamports 8589934592000000000"
|
||||
elif [[ $LAMPORTS == skip ]]; then
|
||||
maybeLamports=""
|
||||
else
|
||||
maybeLamports="--lamports ${LAMPORTS}"
|
||||
fi
|
||||
|
||||
if [[ -z $ADDITIONAL_DISK_SIZE_GB ]]; then
|
||||
maybeAdditionalDisk="--fullnode-additional-disk-size-gb 32000"
|
||||
elif [[ $ADDITIONAL_DISK_SIZE_GB == skip ]]; then
|
||||
maybeAdditionalDisk=""
|
||||
else
|
||||
maybeAdditionalDisk="--fullnode-additional-disk-size-gb ${ADDITIONAL_DISK_SIZE_GB}"
|
||||
fi
|
||||
|
||||
wget ${EXTERNAL_ACCOUNTS_FILE_URL} -O ${EXTERNAL_ACCOUNTS_FILE}
|
||||
|
||||
# Multiple V100 GPUs are available in us-west1, us-central1 and europe-west4
|
||||
# shellcheck disable=SC2068
|
||||
@@ -481,24 +544,25 @@ deploy() {
|
||||
NO_LEDGER_VERIFY=1 \
|
||||
NO_VALIDATOR_SANITY=1 \
|
||||
ci/testnet-deploy.sh -p tds-solana-com -C gce \
|
||||
-G "--machine-type n1-standard-16 --accelerator count=2,type=nvidia-tesla-v100" \
|
||||
"${maybeGpu[@]}" \
|
||||
-d pd-ssd \
|
||||
-z us-west1-a \
|
||||
-z us-central1-a \
|
||||
-z europe-west4-a \
|
||||
-t "$CHANNEL_OR_TAG" -n "$GCE_NODE_COUNT" -c 1 -P -u \
|
||||
${GCE_CLOUD_ZONES[@]/#/-z } \
|
||||
-t "$CHANNEL_OR_TAG" \
|
||||
-n ${TDS_NODE_COUNT} \
|
||||
-c ${TDS_CLIENT_COUNT} \
|
||||
-P -u \
|
||||
-a tds-solana-com --letsencrypt tds.solana.com \
|
||||
--hashes-per-tick auto \
|
||||
${maybeHashesPerTick} \
|
||||
${skipCreate:+-e} \
|
||||
${skipStart:+-s} \
|
||||
${maybeStop:+-S} \
|
||||
${maybeDelete:+-D} \
|
||||
--stake-internal-nodes 1000000000000 \
|
||||
--external-accounts-file "$EXTERNAL_ACCOUNTS_FILE" \
|
||||
--lamports 8589934592000000000 \
|
||||
${maybeStakeInternalNodes} \
|
||||
${maybeExternalAccountsFile} \
|
||||
${maybeLamports} \
|
||||
${maybeAdditionalDisk} \
|
||||
--skip-deploy-update \
|
||||
--fullnode-additional-disk-size-gb 32000
|
||||
|
||||
--no-snapshot
|
||||
)
|
||||
;;
|
||||
*)
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-client"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
description = "Solana Client"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -19,10 +19,10 @@ reqwest = "0.9.18"
|
||||
serde = "1.0.92"
|
||||
serde_derive = "1.0.92"
|
||||
serde_json = "1.0.39"
|
||||
solana-netutil = { path = "../netutil", version = "0.16.3" }
|
||||
solana-sdk = { path = "../sdk", version = "0.16.3" }
|
||||
solana-netutil = { path = "../netutil", version = "0.16.4" }
|
||||
solana-sdk = { path = "../sdk", version = "0.16.4" }
|
||||
|
||||
[dev-dependencies]
|
||||
jsonrpc-core = "12.0.0"
|
||||
jsonrpc-http-server = "12.0.0"
|
||||
solana-logger = { path = "../logger", version = "0.16.3" }
|
||||
solana-logger = { path = "../logger", version = "0.16.4" }
|
||||
|
@@ -1,7 +1,7 @@
|
||||
[package]
|
||||
name = "solana"
|
||||
description = "Blockchain, Rebuilt for Scale"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
documentation = "https://docs.rs/solana"
|
||||
homepage = "https://solana.com/"
|
||||
readme = "../README.md"
|
||||
@@ -45,27 +45,27 @@ rocksdb = "0.11.0"
|
||||
serde = "1.0.92"
|
||||
serde_derive = "1.0.92"
|
||||
serde_json = "1.0.39"
|
||||
solana-budget-api = { path = "../programs/budget_api", version = "0.16.3" }
|
||||
solana-budget-program = { path = "../programs/budget_program", version = "0.16.3" }
|
||||
solana-chacha-sys = { path = "../chacha-sys", version = "0.16.3" }
|
||||
solana-client = { path = "../client", version = "0.16.3" }
|
||||
solana-config-program = { path = "../programs/config_program", version = "0.16.3" }
|
||||
solana-drone = { path = "../drone", version = "0.16.3" }
|
||||
solana-budget-api = { path = "../programs/budget_api", version = "0.16.4" }
|
||||
solana-budget-program = { path = "../programs/budget_program", version = "0.16.4" }
|
||||
solana-chacha-sys = { path = "../chacha-sys", version = "0.16.4" }
|
||||
solana-client = { path = "../client", version = "0.16.4" }
|
||||
solana-config-program = { path = "../programs/config_program", version = "0.16.4" }
|
||||
solana-drone = { path = "../drone", version = "0.16.4" }
|
||||
solana-ed25519-dalek = "0.2.0"
|
||||
solana-exchange-program = { path = "../programs/exchange_program", version = "0.16.3" }
|
||||
solana-kvstore = { path = "../kvstore", version = "0.16.3", optional = true }
|
||||
solana-logger = { path = "../logger", version = "0.16.3" }
|
||||
solana-metrics = { path = "../metrics", version = "0.16.3" }
|
||||
solana-netutil = { path = "../netutil", version = "0.16.3" }
|
||||
solana-runtime = { path = "../runtime", version = "0.16.3" }
|
||||
solana-sdk = { path = "../sdk", version = "0.16.3" }
|
||||
solana-stake-api = { path = "../programs/stake_api", version = "0.16.3" }
|
||||
solana-stake-program = { path = "../programs/stake_program", version = "0.16.3" }
|
||||
solana-storage-api = { path = "../programs/storage_api", version = "0.16.3" }
|
||||
solana-storage-program = { path = "../programs/storage_program", version = "0.16.3" }
|
||||
solana-vote-api = { path = "../programs/vote_api", version = "0.16.3" }
|
||||
solana-vote-program = { path = "../programs/vote_program", version = "0.16.3" }
|
||||
solana-vote-signer = { path = "../vote-signer", version = "0.16.3" }
|
||||
solana-exchange-program = { path = "../programs/exchange_program", version = "0.16.4" }
|
||||
solana-kvstore = { path = "../kvstore", version = "0.16.4", optional = true }
|
||||
solana-logger = { path = "../logger", version = "0.16.4" }
|
||||
solana-metrics = { path = "../metrics", version = "0.16.4" }
|
||||
solana-netutil = { path = "../netutil", version = "0.16.4" }
|
||||
solana-runtime = { path = "../runtime", version = "0.16.4" }
|
||||
solana-sdk = { path = "../sdk", version = "0.16.4" }
|
||||
solana-stake-api = { path = "../programs/stake_api", version = "0.16.4" }
|
||||
solana-stake-program = { path = "../programs/stake_program", version = "0.16.4" }
|
||||
solana-storage-api = { path = "../programs/storage_api", version = "0.16.4" }
|
||||
solana-storage-program = { path = "../programs/storage_program", version = "0.16.4" }
|
||||
solana-vote-api = { path = "../programs/vote_api", version = "0.16.4" }
|
||||
solana-vote-program = { path = "../programs/vote_program", version = "0.16.4" }
|
||||
solana-vote-signer = { path = "../vote-signer", version = "0.16.4" }
|
||||
sys-info = "0.5.7"
|
||||
tokio = "0.1"
|
||||
tokio-codec = "0.1"
|
||||
|
@@ -418,7 +418,7 @@ impl BankingStage {
|
||||
// the likelihood of any single thread getting starved and processing old ids.
|
||||
// TODO: Banking stage threads should be prioritized to complete faster then this queue
|
||||
// expires.
|
||||
let (loaded_accounts, results) =
|
||||
let (loaded_accounts, results, tx_count, signature_count) =
|
||||
bank.load_and_execute_transactions(txs, lock_results, MAX_RECENT_BLOCKHASHES / 2);
|
||||
let load_execute_time = now.elapsed();
|
||||
|
||||
@@ -432,7 +432,7 @@ impl BankingStage {
|
||||
|
||||
let commit_time = {
|
||||
let now = Instant::now();
|
||||
bank.commit_transactions(txs, &loaded_accounts, &results);
|
||||
bank.commit_transactions(txs, &loaded_accounts, &results, tx_count, signature_count);
|
||||
now.elapsed()
|
||||
};
|
||||
|
||||
|
@@ -142,6 +142,7 @@ pub fn process_blocktree(
|
||||
genesis_block: &GenesisBlock,
|
||||
blocktree: &Blocktree,
|
||||
account_paths: Option<String>,
|
||||
verify_ledger: bool,
|
||||
) -> result::Result<(BankForks, Vec<BankForksInfo>, LeaderScheduleCache), BlocktreeProcessorError> {
|
||||
let now = Instant::now();
|
||||
info!("processing ledger...");
|
||||
@@ -204,7 +205,7 @@ pub fn process_blocktree(
|
||||
}
|
||||
|
||||
if !entries.is_empty() {
|
||||
if !entries.verify(&last_entry_hash) {
|
||||
if verify_ledger && !entries.verify(&last_entry_hash) {
|
||||
warn!(
|
||||
"Ledger proof of history failed at slot: {}, entry: {}",
|
||||
slot, entry_height
|
||||
@@ -373,7 +374,7 @@ pub mod tests {
|
||||
fill_blocktree_slot_with_ticks(&blocktree, ticks_per_slot, 2, 1, blockhash);
|
||||
|
||||
let (mut _bank_forks, bank_forks_info, _) =
|
||||
process_blocktree(&genesis_block, &blocktree, None).unwrap();
|
||||
process_blocktree(&genesis_block, &blocktree, None, true).unwrap();
|
||||
|
||||
assert_eq!(bank_forks_info.len(), 1);
|
||||
assert_eq!(
|
||||
@@ -432,7 +433,7 @@ pub mod tests {
|
||||
blocktree.set_roots(&[4, 1, 0]).unwrap();
|
||||
|
||||
let (bank_forks, bank_forks_info, _) =
|
||||
process_blocktree(&genesis_block, &blocktree, None).unwrap();
|
||||
process_blocktree(&genesis_block, &blocktree, None, true).unwrap();
|
||||
|
||||
assert_eq!(bank_forks_info.len(), 1); // One fork, other one is ignored b/c not a descendant of the root
|
||||
|
||||
@@ -506,7 +507,7 @@ pub mod tests {
|
||||
blocktree.set_roots(&[0, 1]).unwrap();
|
||||
|
||||
let (bank_forks, bank_forks_info, _) =
|
||||
process_blocktree(&genesis_block, &blocktree, None).unwrap();
|
||||
process_blocktree(&genesis_block, &blocktree, None, true).unwrap();
|
||||
|
||||
assert_eq!(bank_forks_info.len(), 2); // There are two forks
|
||||
assert_eq!(
|
||||
@@ -587,7 +588,7 @@ pub mod tests {
|
||||
|
||||
// Check that we can properly restart the ledger / leader scheduler doesn't fail
|
||||
let (bank_forks, bank_forks_info, _) =
|
||||
process_blocktree(&genesis_block, &blocktree, None).unwrap();
|
||||
process_blocktree(&genesis_block, &blocktree, None, true).unwrap();
|
||||
|
||||
assert_eq!(bank_forks_info.len(), 1); // There is one fork
|
||||
assert_eq!(
|
||||
@@ -723,7 +724,7 @@ pub mod tests {
|
||||
.unwrap();
|
||||
let entry_height = genesis_block.ticks_per_slot + entries.len() as u64;
|
||||
let (bank_forks, bank_forks_info, _) =
|
||||
process_blocktree(&genesis_block, &blocktree, None).unwrap();
|
||||
process_blocktree(&genesis_block, &blocktree, None, true).unwrap();
|
||||
|
||||
assert_eq!(bank_forks_info.len(), 1);
|
||||
assert_eq!(bank_forks.root(), 0);
|
||||
@@ -754,7 +755,7 @@ pub mod tests {
|
||||
|
||||
let blocktree = Blocktree::open(&ledger_path).unwrap();
|
||||
let (bank_forks, bank_forks_info, _) =
|
||||
process_blocktree(&genesis_block, &blocktree, None).unwrap();
|
||||
process_blocktree(&genesis_block, &blocktree, None, true).unwrap();
|
||||
|
||||
assert_eq!(bank_forks_info.len(), 1);
|
||||
assert_eq!(
|
||||
|
@@ -176,6 +176,7 @@ impl LocalCluster {
|
||||
&leader_voting_keypair,
|
||||
&leader_storage_keypair,
|
||||
None,
|
||||
true,
|
||||
&config.validator_configs[0],
|
||||
);
|
||||
|
||||
@@ -308,6 +309,7 @@ impl LocalCluster {
|
||||
&voting_keypair,
|
||||
&storage_keypair,
|
||||
Some(&self.entry_point_info),
|
||||
true,
|
||||
&validator_config,
|
||||
);
|
||||
|
||||
@@ -561,6 +563,7 @@ impl Cluster for LocalCluster {
|
||||
&fullnode_info.voting_keypair,
|
||||
&fullnode_info.storage_keypair,
|
||||
None,
|
||||
true,
|
||||
config,
|
||||
);
|
||||
|
||||
|
@@ -84,6 +84,7 @@ impl Validator {
|
||||
voting_keypair: &Arc<Keypair>,
|
||||
storage_keypair: &Arc<Keypair>,
|
||||
entrypoint_info_option: Option<&ContactInfo>,
|
||||
verify_ledger: bool,
|
||||
config: &ValidatorConfig,
|
||||
) -> Self {
|
||||
warn!("CUDA is {}abled", if cfg!(cuda) { "en" } else { "dis" });
|
||||
@@ -104,6 +105,7 @@ impl Validator {
|
||||
ledger_path,
|
||||
config.account_paths.clone(),
|
||||
config.snapshot_path.clone(),
|
||||
verify_ledger,
|
||||
);
|
||||
|
||||
let leader_schedule_cache = Arc::new(leader_schedule_cache);
|
||||
@@ -301,6 +303,7 @@ fn get_bank_forks(
|
||||
blocktree: &Blocktree,
|
||||
account_paths: Option<String>,
|
||||
snapshot_path: Option<String>,
|
||||
verify_ledger: bool,
|
||||
) -> (BankForks, Vec<BankForksInfo>, LeaderScheduleCache) {
|
||||
if snapshot_path.is_some() {
|
||||
let bank_forks =
|
||||
@@ -318,8 +321,13 @@ fn get_bank_forks(
|
||||
}
|
||||
}
|
||||
let (mut bank_forks, bank_forks_info, leader_schedule_cache) =
|
||||
blocktree_processor::process_blocktree(&genesis_block, &blocktree, account_paths)
|
||||
.expect("process_blocktree failed");
|
||||
blocktree_processor::process_blocktree(
|
||||
&genesis_block,
|
||||
&blocktree,
|
||||
account_paths,
|
||||
verify_ledger,
|
||||
)
|
||||
.expect("process_blocktree failed");
|
||||
if snapshot_path.is_some() {
|
||||
bank_forks.set_snapshot_config(snapshot_path);
|
||||
let _ = bank_forks.add_snapshot(0, 0);
|
||||
@@ -331,6 +339,7 @@ pub fn new_banks_from_blocktree(
|
||||
blocktree_path: &str,
|
||||
account_paths: Option<String>,
|
||||
snapshot_path: Option<String>,
|
||||
verify_ledger: bool,
|
||||
) -> (
|
||||
BankForks,
|
||||
Vec<BankForksInfo>,
|
||||
@@ -347,8 +356,13 @@ pub fn new_banks_from_blocktree(
|
||||
Blocktree::open_with_signal(blocktree_path)
|
||||
.expect("Expected to successfully open database ledger");
|
||||
|
||||
let (bank_forks, bank_forks_info, leader_schedule_cache) =
|
||||
get_bank_forks(&genesis_block, &blocktree, account_paths, snapshot_path);
|
||||
let (bank_forks, bank_forks_info, leader_schedule_cache) = get_bank_forks(
|
||||
&genesis_block,
|
||||
&blocktree,
|
||||
account_paths,
|
||||
snapshot_path,
|
||||
verify_ledger,
|
||||
);
|
||||
|
||||
(
|
||||
bank_forks,
|
||||
@@ -412,6 +426,7 @@ pub fn new_validator_for_tests() -> (Validator, ContactInfo, Keypair, String) {
|
||||
&voting_keypair,
|
||||
&storage_keypair,
|
||||
None,
|
||||
true,
|
||||
&ValidatorConfig::default(),
|
||||
);
|
||||
discover_cluster(&contact_info.gossip, 1).expect("Node startup failed");
|
||||
@@ -447,6 +462,7 @@ mod tests {
|
||||
&voting_keypair,
|
||||
&storage_keypair,
|
||||
Some(&leader_node.info),
|
||||
true,
|
||||
&ValidatorConfig::default(),
|
||||
);
|
||||
validator.close().unwrap();
|
||||
@@ -478,6 +494,7 @@ mod tests {
|
||||
&voting_keypair,
|
||||
&storage_keypair,
|
||||
Some(&leader_node.info),
|
||||
true,
|
||||
&ValidatorConfig::default(),
|
||||
)
|
||||
})
|
||||
|
@@ -98,7 +98,7 @@ fn test_replay() {
|
||||
completed_slots_receiver,
|
||||
leader_schedule_cache,
|
||||
_,
|
||||
) = validator::new_banks_from_blocktree(&blocktree_path, None, None);
|
||||
) = validator::new_banks_from_blocktree(&blocktree_path, None, None, true);
|
||||
let working_bank = bank_forks.working_bank();
|
||||
assert_eq!(
|
||||
working_bank.get_balance(&mint_keypair.pubkey()),
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-drone"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
description = "Solana Drone"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -20,9 +20,9 @@ clap = "2.33"
|
||||
log = "0.4.2"
|
||||
serde = "1.0.92"
|
||||
serde_derive = "1.0.92"
|
||||
solana-logger = { path = "../logger", version = "0.16.3" }
|
||||
solana-metrics = { path = "../metrics", version = "0.16.3" }
|
||||
solana-sdk = { path = "../sdk", version = "0.16.3" }
|
||||
solana-logger = { path = "../logger", version = "0.16.4" }
|
||||
solana-metrics = { path = "../metrics", version = "0.16.4" }
|
||||
solana-sdk = { path = "../sdk", version = "0.16.4" }
|
||||
tokio = "0.1"
|
||||
tokio-codec = "0.1"
|
||||
|
||||
|
@@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
edition = "2018"
|
||||
name = "solana-genesis"
|
||||
description = "Blockchain, Rebuilt for Scale"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
license = "Apache-2.0"
|
||||
homepage = "https://solana.com/"
|
||||
@@ -15,24 +15,24 @@ serde = "1.0.92"
|
||||
serde_derive = "1.0.92"
|
||||
serde_json = "1.0.39"
|
||||
serde_yaml = "0.8.9"
|
||||
solana = { path = "../core", version = "0.16.3" }
|
||||
solana-bpf-loader-api = { path = "../programs/bpf_loader_api", version = "0.16.3" }
|
||||
solana-bpf-loader-program = { path = "../programs/bpf_loader_program", version = "0.16.3" }
|
||||
solana-budget-api = { path = "../programs/budget_api", version = "0.16.3" }
|
||||
solana-budget-program = { path = "../programs/budget_program", version = "0.16.3" }
|
||||
solana-config-api = { path = "../programs/config_api", version = "0.16.3" }
|
||||
solana-config-program = { path = "../programs/config_program", version = "0.16.3" }
|
||||
solana-exchange-api = { path = "../programs/exchange_api", version = "0.16.3" }
|
||||
solana-exchange-program = { path = "../programs/exchange_program", version = "0.16.3" }
|
||||
solana-sdk = { path = "../sdk", version = "0.16.3" }
|
||||
solana-stake-api = { path = "../programs/stake_api", version = "0.16.3" }
|
||||
solana-stake-program = { path = "../programs/stake_program", version = "0.16.3" }
|
||||
solana-storage-api = { path = "../programs/storage_api", version = "0.16.3" }
|
||||
solana-storage-program = { path = "../programs/storage_program", version = "0.16.3" }
|
||||
solana-token-api = { path = "../programs/token_api", version = "0.16.3" }
|
||||
solana-token-program = { path = "../programs/token_program", version = "0.16.3" }
|
||||
solana-vote-api = { path = "../programs/vote_api", version = "0.16.3" }
|
||||
solana-vote-program = { path = "../programs/vote_program", version = "0.16.3" }
|
||||
solana = { path = "../core", version = "0.16.4" }
|
||||
solana-bpf-loader-api = { path = "../programs/bpf_loader_api", version = "0.16.4" }
|
||||
solana-bpf-loader-program = { path = "../programs/bpf_loader_program", version = "0.16.4" }
|
||||
solana-budget-api = { path = "../programs/budget_api", version = "0.16.4" }
|
||||
solana-budget-program = { path = "../programs/budget_program", version = "0.16.4" }
|
||||
solana-config-api = { path = "../programs/config_api", version = "0.16.4" }
|
||||
solana-config-program = { path = "../programs/config_program", version = "0.16.4" }
|
||||
solana-exchange-api = { path = "../programs/exchange_api", version = "0.16.4" }
|
||||
solana-exchange-program = { path = "../programs/exchange_program", version = "0.16.4" }
|
||||
solana-sdk = { path = "../sdk", version = "0.16.4" }
|
||||
solana-stake-api = { path = "../programs/stake_api", version = "0.16.4" }
|
||||
solana-stake-program = { path = "../programs/stake_program", version = "0.16.4" }
|
||||
solana-storage-api = { path = "../programs/storage_api", version = "0.16.4" }
|
||||
solana-storage-program = { path = "../programs/storage_program", version = "0.16.4" }
|
||||
solana-token-api = { path = "../programs/token_api", version = "0.16.4" }
|
||||
solana-token-program = { path = "../programs/token_program", version = "0.16.4" }
|
||||
solana-vote-api = { path = "../programs/vote_api", version = "0.16.4" }
|
||||
solana-vote-program = { path = "../programs/vote_program", version = "0.16.4" }
|
||||
|
||||
[dev-dependencies]
|
||||
hashbrown = "0.3.0"
|
||||
|
@@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
edition = "2018"
|
||||
name = "solana-gossip"
|
||||
description = "Blockchain, Rebuilt for Scale"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
license = "Apache-2.0"
|
||||
homepage = "https://solana.com/"
|
||||
@@ -11,10 +11,10 @@ homepage = "https://solana.com/"
|
||||
[dependencies]
|
||||
clap = "2.33.0"
|
||||
env_logger = "0.6.1"
|
||||
solana = { path = "../core", version = "0.16.3" }
|
||||
solana-client = { path = "../client", version = "0.16.3" }
|
||||
solana-netutil = { path = "../netutil", version = "0.16.3" }
|
||||
solana-sdk = { path = "../sdk", version = "0.16.3" }
|
||||
solana = { path = "../core", version = "0.16.4" }
|
||||
solana-client = { path = "../client", version = "0.16.4" }
|
||||
solana-netutil = { path = "../netutil", version = "0.16.4" }
|
||||
solana-sdk = { path = "../sdk", version = "0.16.4" }
|
||||
|
||||
[features]
|
||||
cuda = []
|
||||
|
@@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
edition = "2018"
|
||||
name = "solana-install"
|
||||
description = "The solana cluster software installer"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
license = "Apache-2.0"
|
||||
homepage = "https://solana.com/"
|
||||
@@ -31,10 +31,10 @@ ring = "0.13.2"
|
||||
serde = "1.0.92"
|
||||
serde_derive = "1.0.92"
|
||||
serde_yaml = "0.8.9"
|
||||
solana-client = { path = "../client", version = "0.16.3" }
|
||||
solana-config-api = { path = "../programs/config_api", version = "0.16.3" }
|
||||
solana-logger = { path = "../logger", version = "0.16.3" }
|
||||
solana-sdk = { path = "../sdk", version = "0.16.3" }
|
||||
solana-client = { path = "../client", version = "0.16.4" }
|
||||
solana-config-api = { path = "../programs/config_api", version = "0.16.4" }
|
||||
solana-logger = { path = "../logger", version = "0.16.4" }
|
||||
solana-sdk = { path = "../sdk", version = "0.16.4" }
|
||||
tar = "0.4.26"
|
||||
tempdir = "0.3.7"
|
||||
url = "1.7.2"
|
||||
|
@@ -245,7 +245,7 @@ fn get_update_manifest(
|
||||
let mut data = rpc_client
|
||||
.get_account_data(update_manifest_pubkey)
|
||||
.map_err(|err| format!("Unable to fetch update manifest: {}", err))?;
|
||||
data.split_off(ConfigKeys::serialized_size(vec![]));
|
||||
let data = data.split_off(ConfigKeys::serialized_size(vec![]));
|
||||
|
||||
let signed_update_manifest =
|
||||
SignedUpdateManifest::deserialize(update_manifest_pubkey, &data)
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-keygen"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
description = "Solana key generation utility"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -15,7 +15,7 @@ cuda = []
|
||||
[dependencies]
|
||||
clap = "2.33"
|
||||
dirs = "2.0.1"
|
||||
solana-sdk = { path = "../sdk", version = "0.16.3" }
|
||||
solana-sdk = { path = "../sdk", version = "0.16.4" }
|
||||
|
||||
[[bin]]
|
||||
name = "solana-keygen"
|
||||
|
@@ -1,7 +1,7 @@
|
||||
[package]
|
||||
name = "solana-kvstore"
|
||||
description = "Embedded Key-Value store for solana"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
homepage = "https://solana.com/"
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
|
@@ -3,18 +3,21 @@ authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
edition = "2018"
|
||||
name = "solana-ledger-tool"
|
||||
description = "Blockchain, Rebuilt for Scale"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
license = "Apache-2.0"
|
||||
homepage = "https://solana.com/"
|
||||
|
||||
[dependencies]
|
||||
clap = "2.33.0"
|
||||
serde_json = "1.0.39"
|
||||
solana = { path = "../core", version = "0.16.3" }
|
||||
solana-logger = { path = "../logger", version = "0.16.3" }
|
||||
solana-runtime = { path = "../runtime", version = "0.16.3" }
|
||||
solana-sdk = { path = "../sdk", version = "0.16.3" }
|
||||
serde = "1.0.94"
|
||||
serde_derive = "1.0.94"
|
||||
serde_json = "1.0.40"
|
||||
serde_yaml = "0.8.9"
|
||||
solana = { path = "../core", version = "0.16.4" }
|
||||
solana-logger = { path = "../logger", version = "0.16.4" }
|
||||
solana-runtime = { path = "../runtime", version = "0.16.4" }
|
||||
solana-sdk = { path = "../sdk", version = "0.16.4" }
|
||||
|
||||
[dev-dependencies]
|
||||
assert_cmd = "0.11"
|
||||
|
@@ -2,8 +2,11 @@ use clap::{crate_description, crate_name, crate_version, value_t, App, Arg, SubC
|
||||
use solana::blocktree::Blocktree;
|
||||
use solana::blocktree_processor::process_blocktree;
|
||||
use solana_sdk::genesis_block::GenesisBlock;
|
||||
use std::collections::BTreeMap;
|
||||
use std::fs::File;
|
||||
use std::io::{stdout, Write};
|
||||
use std::process::exit;
|
||||
use std::str::FromStr;
|
||||
|
||||
#[derive(PartialEq)]
|
||||
enum LedgerOutputMethod {
|
||||
@@ -58,6 +61,7 @@ fn output_ledger(blocktree: Blocktree, starting_slot: u64, method: LedgerOutputM
|
||||
}
|
||||
|
||||
fn main() {
|
||||
const DEFAULT_ROOT_COUNT: &str = "1";
|
||||
solana_logger::setup();
|
||||
let matches = App::new(crate_name!())
|
||||
.about(crate_description!())
|
||||
@@ -82,6 +86,36 @@ fn main() {
|
||||
.subcommand(SubCommand::with_name("print").about("Print the ledger"))
|
||||
.subcommand(SubCommand::with_name("json").about("Print the ledger in JSON format"))
|
||||
.subcommand(SubCommand::with_name("verify").about("Verify the ledger's PoH"))
|
||||
.subcommand(SubCommand::with_name("prune").about("Prune the ledger at the block height").arg(
|
||||
Arg::with_name("slot_list")
|
||||
.long("slot-list")
|
||||
.value_name("FILENAME")
|
||||
.takes_value(true)
|
||||
.help("The location of the YAML file with a list of rollback slot heights and hashes"),
|
||||
))
|
||||
.subcommand(SubCommand::with_name("list-roots").about("Output upto last <num-roots> root hashes and their heights starting at the given block height").arg(
|
||||
Arg::with_name("max_height")
|
||||
.long("max-height")
|
||||
.value_name("NUM")
|
||||
.takes_value(true)
|
||||
.required(true)
|
||||
.help("Maximum block height"),
|
||||
).arg(
|
||||
Arg::with_name("slot_list")
|
||||
.long("slot-list")
|
||||
.value_name("FILENAME")
|
||||
.required(false)
|
||||
.takes_value(true)
|
||||
.help("The location of the output YAML file. A list of rollback slot heights and hashes will be written to the file."),
|
||||
).arg(
|
||||
Arg::with_name("num_roots")
|
||||
.long("num-roots")
|
||||
.value_name("NUM")
|
||||
.takes_value(true)
|
||||
.default_value(DEFAULT_ROOT_COUNT)
|
||||
.required(false)
|
||||
.help("Number of roots in the output"),
|
||||
))
|
||||
.get_matches();
|
||||
|
||||
let ledger_path = matches.value_of("ledger").unwrap();
|
||||
@@ -113,7 +147,7 @@ fn main() {
|
||||
}
|
||||
("verify", _) => {
|
||||
println!("Verifying ledger...");
|
||||
match process_blocktree(&genesis_block, &blocktree, None) {
|
||||
match process_blocktree(&genesis_block, &blocktree, None, true) {
|
||||
Ok((_bank_forks, bank_forks_info, _)) => {
|
||||
println!("{:?}", bank_forks_info);
|
||||
}
|
||||
@@ -123,6 +157,97 @@ fn main() {
|
||||
}
|
||||
}
|
||||
}
|
||||
("prune", Some(args_matches)) => {
|
||||
if let Some(prune_file_path) = args_matches.value_of("slot_list") {
|
||||
let prune_file = File::open(prune_file_path.to_string()).unwrap();
|
||||
let slot_hashes: BTreeMap<u64, String> =
|
||||
serde_yaml::from_reader(prune_file).unwrap();
|
||||
|
||||
let iter = blocktree
|
||||
.rooted_slot_iterator(0)
|
||||
.expect("Failed to get rooted slot");
|
||||
|
||||
let potential_hashes: Vec<_> = iter
|
||||
.filter_map(|(slot, meta)| {
|
||||
let blockhash = blocktree
|
||||
.get_slot_entries(slot, meta.last_index, Some(1))
|
||||
.unwrap()
|
||||
.first()
|
||||
.unwrap()
|
||||
.hash
|
||||
.to_string();
|
||||
|
||||
slot_hashes.get(&slot).and_then(|hash| {
|
||||
if *hash == blockhash {
|
||||
Some((slot, blockhash))
|
||||
} else {
|
||||
None
|
||||
}
|
||||
})
|
||||
})
|
||||
.collect();
|
||||
|
||||
let (target_slot, target_hash) = potential_hashes
|
||||
.last()
|
||||
.expect("Failed to find a valid slot");
|
||||
println!("Prune at slot {:?} hash {:?}", target_slot, target_hash);
|
||||
// ToDo: Do the actual pruning of the database
|
||||
}
|
||||
}
|
||||
("list-roots", Some(args_matches)) => {
|
||||
let max_height = if let Some(height) = args_matches.value_of("max_height") {
|
||||
usize::from_str(height).expect("Maximum height must be a number")
|
||||
} else {
|
||||
panic!("Maximum height must be provided");
|
||||
};
|
||||
let num_roots = if let Some(roots) = args_matches.value_of("num_roots") {
|
||||
usize::from_str(roots).expect("Number of roots must be a number")
|
||||
} else {
|
||||
usize::from_str(DEFAULT_ROOT_COUNT).unwrap()
|
||||
};
|
||||
|
||||
let iter = blocktree
|
||||
.rooted_slot_iterator(0)
|
||||
.expect("Failed to get rooted slot");
|
||||
|
||||
let slot_hash: Vec<_> = iter
|
||||
.filter_map(|(slot, meta)| {
|
||||
if slot <= max_height as u64 {
|
||||
let blockhash = blocktree
|
||||
.get_slot_entries(slot, meta.last_index, Some(1))
|
||||
.unwrap()
|
||||
.first()
|
||||
.unwrap()
|
||||
.hash;
|
||||
Some((slot, blockhash))
|
||||
} else {
|
||||
None
|
||||
}
|
||||
})
|
||||
.collect();
|
||||
|
||||
let mut output_file: Box<Write> = if let Some(path) = args_matches.value_of("slot_list")
|
||||
{
|
||||
match File::create(path) {
|
||||
Ok(file) => Box::new(file),
|
||||
_ => Box::new(stdout()),
|
||||
}
|
||||
} else {
|
||||
Box::new(stdout())
|
||||
};
|
||||
|
||||
slot_hash
|
||||
.into_iter()
|
||||
.rev()
|
||||
.enumerate()
|
||||
.for_each(|(i, (slot, hash))| {
|
||||
if i < num_roots {
|
||||
output_file
|
||||
.write_all(format!("{:?}: {:?}\n", slot, hash).as_bytes())
|
||||
.expect("failed to write");
|
||||
}
|
||||
});
|
||||
}
|
||||
("", _) => {
|
||||
eprintln!("{}", matches.usage());
|
||||
exit(1);
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-logger"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
description = "Solana Logger"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-merkle-tree"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
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.16.3" }
|
||||
solana-sdk = { path = "../sdk", version = "0.16.4" }
|
||||
|
||||
[dev-dependencies]
|
||||
hex = "0.3.2"
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-metrics"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
description = "Solana Metrics"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -14,7 +14,7 @@ influx_db_client = "0.3.6"
|
||||
lazy_static = "1.3.0"
|
||||
log = "0.4.2"
|
||||
reqwest = "0.9.18"
|
||||
solana-sdk = { path = "../sdk", version = "0.16.3" }
|
||||
solana-sdk = { path = "../sdk", version = "0.16.4" }
|
||||
sys-info = "0.5.7"
|
||||
|
||||
[dev-dependencies]
|
||||
|
@@ -60,6 +60,8 @@ Operate a configured testnet
|
||||
- Amount to stake internal nodes in genesis block. If set, airdrops are disabled.
|
||||
--external-accounts-file FILE_PATH
|
||||
- A YML file with a list of account pubkeys and corresponding stakes for external nodes
|
||||
--no-snapshot
|
||||
- If set, disables booting validators from a snapshot
|
||||
sanity/start/update-specific options:
|
||||
-F - Discard validator nodes that didn't bootup successfully
|
||||
-o noLedgerVerify - Skip ledger verification
|
||||
@@ -97,6 +99,7 @@ numFullnodesRequested=
|
||||
externalPrimordialAccountsFile=
|
||||
remoteExternalPrimordialAccountsFile=
|
||||
stakeNodesInGenesisBlock=
|
||||
maybeNoSnapshot=""
|
||||
|
||||
command=$1
|
||||
[[ -n $command ]] || usage
|
||||
@@ -114,6 +117,9 @@ while [[ -n $1 ]]; do
|
||||
elif [[ $1 = --lamports ]]; then
|
||||
genesisOptions="$genesisOptions $1 $2"
|
||||
shift 2
|
||||
elif [[ $1 = --no-snapshot ]]; then
|
||||
maybeNoSnapshot="$1"
|
||||
shift 1
|
||||
elif [[ $1 = --deploy-update ]]; then
|
||||
updatePlatforms="$updatePlatforms $2"
|
||||
shift 2
|
||||
@@ -353,6 +359,7 @@ startBootstrapLeader() {
|
||||
$numBenchTpsClients \"$benchTpsExtraArgs\" \
|
||||
$numBenchExchangeClients \"$benchExchangeExtraArgs\" \
|
||||
\"$genesisOptions\" \
|
||||
$maybeNoSnapshot \
|
||||
"
|
||||
) >> "$logFile" 2>&1 || {
|
||||
cat "$logFile"
|
||||
@@ -402,6 +409,7 @@ startNode() {
|
||||
\"$stakeNodesInGenesisBlock\" \
|
||||
$nodeIndex \
|
||||
\"$genesisOptions\" \
|
||||
$maybeNoSnapshot \
|
||||
"
|
||||
) >> "$logFile" 2>&1 &
|
||||
declare pid=$!
|
||||
|
@@ -19,6 +19,7 @@ benchTpsExtraArgs="${12}"
|
||||
numBenchExchangeClients="${13}"
|
||||
benchExchangeExtraArgs="${14}"
|
||||
genesisOptions="${15}"
|
||||
noSnapshot="${16}"
|
||||
set +x
|
||||
export RUST_LOG
|
||||
|
||||
@@ -170,6 +171,7 @@ local|tar)
|
||||
args+=(--no-airdrop)
|
||||
fi
|
||||
args+=(--init-complete-file "$initCompleteFile")
|
||||
args+=("$noSnapshot")
|
||||
nohup ./multinode-demo/validator.sh --bootstrap-leader "${args[@]}" > fullnode.log 2>&1 &
|
||||
waitForNodeToInit
|
||||
;;
|
||||
@@ -247,6 +249,7 @@ local|tar)
|
||||
fi
|
||||
|
||||
args+=(--init-complete-file "$initCompleteFile")
|
||||
args+=("$noSnapshot")
|
||||
nohup ./multinode-demo/validator.sh "${args[@]}" > fullnode.log 2>&1 &
|
||||
waitForNodeToInit
|
||||
;;
|
||||
@@ -264,6 +267,7 @@ local|tar)
|
||||
if [[ $skipSetup != true ]]; then
|
||||
./multinode-demo/clear-config.sh
|
||||
fi
|
||||
args+=("$noSnapshot")
|
||||
nohup ./multinode-demo/replicator.sh "${args[@]}" > fullnode.log 2>&1 &
|
||||
sleep 1
|
||||
;;
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-netutil"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
description = "Solana Network Utilities"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -15,7 +15,7 @@ log = "0.4.2"
|
||||
nix = "0.14.1"
|
||||
rand = "0.6.1"
|
||||
socket2 = "0.3.9"
|
||||
solana-logger = { path = "../logger", version = "0.16.3" }
|
||||
solana-logger = { path = "../logger", version = "0.16.4" }
|
||||
tokio = "0.1"
|
||||
|
||||
[lib]
|
||||
|
@@ -1,7 +1,7 @@
|
||||
[package]
|
||||
name = "solana-bpf-programs"
|
||||
description = "Blockchain, Rebuilt for Scale"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
documentation = "https://docs.rs/solana"
|
||||
homepage = "https://solana.com/"
|
||||
readme = "README.md"
|
||||
@@ -9,6 +9,7 @@ repository = "https://github.com/solana-labs/solana"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
license = "Apache-2.0"
|
||||
edition = "2018"
|
||||
publish = false
|
||||
|
||||
[features]
|
||||
bpf_c = []
|
||||
@@ -21,10 +22,10 @@ walkdir = "2"
|
||||
bincode = "1.1.4"
|
||||
byteorder = "1.3.2"
|
||||
elf = "0.0.10"
|
||||
solana-bpf-loader-api = { path = "../bpf_loader_api", version = "0.16.3" }
|
||||
solana-logger = { path = "../../logger", version = "0.16.3" }
|
||||
solana-runtime = { path = "../../runtime", version = "0.16.3" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.16.3" }
|
||||
solana-bpf-loader-api = { path = "../bpf_loader_api", version = "0.16.4" }
|
||||
solana-logger = { path = "../../logger", version = "0.16.4" }
|
||||
solana-runtime = { path = "../../runtime", version = "0.16.4" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.16.4" }
|
||||
solana_rbpf = "=0.1.13"
|
||||
|
||||
[[bench]]
|
||||
|
@@ -3,7 +3,7 @@
|
||||
|
||||
[package]
|
||||
name = "solana-bpf-rust-128bit"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
description = "Solana BPF iter program written in Rust"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -12,8 +12,8 @@ homepage = "https://solana.com/"
|
||||
edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
solana-sdk-bpf-utils = { path = "../../../../sdk/bpf/rust/rust-utils", version = "0.16.3" }
|
||||
solana-bpf-rust-128bit-dep = { path = "../128bit_dep", version = "0.16.3" }
|
||||
solana-sdk-bpf-utils = { path = "../../../../sdk/bpf/rust/rust-utils", version = "0.16.4" }
|
||||
solana-bpf-rust-128bit-dep = { path = "../128bit_dep", version = "0.16.4" }
|
||||
|
||||
[workspace]
|
||||
members = []
|
||||
|
@@ -3,7 +3,7 @@
|
||||
|
||||
[package]
|
||||
name = "solana-bpf-rust-128bit-dep"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
description = "Solana BPF many-args-dep program written in Rust"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -12,7 +12,7 @@ homepage = "https://solana.com/"
|
||||
edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
solana-sdk-bpf-utils = { path = "../../../../sdk/bpf/rust/rust-utils", version = "0.16.3" }
|
||||
solana-sdk-bpf-utils = { path = "../../../../sdk/bpf/rust/rust-utils", version = "0.16.4" }
|
||||
|
||||
[workspace]
|
||||
members = []
|
||||
|
@@ -3,7 +3,7 @@
|
||||
|
||||
[package]
|
||||
name = "solana-bpf-rust-alloc"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
description = "Solana BPF alloc program written in Rust"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -12,7 +12,7 @@ homepage = "https://solana.com/"
|
||||
edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
solana-sdk-bpf-utils = { path = "../../../../sdk/bpf/rust/rust-utils", version = "0.16.3" }
|
||||
solana-sdk-bpf-utils = { path = "../../../../sdk/bpf/rust/rust-utils", version = "0.16.4" }
|
||||
|
||||
[workspace]
|
||||
members = []
|
||||
|
@@ -3,7 +3,7 @@
|
||||
|
||||
[package]
|
||||
name = "solana-bpf-rust-dep-crate"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
description = "Solana BPF dep-crate program written in Rust"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -13,7 +13,7 @@ edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
byteorder = { version = "1", default-features = false }
|
||||
solana-sdk-bpf-utils = { path = "../../../../sdk/bpf/rust/rust-utils", version = "0.16.3" }
|
||||
solana-sdk-bpf-utils = { path = "../../../../sdk/bpf/rust/rust-utils", version = "0.16.4" }
|
||||
|
||||
[workspace]
|
||||
members = []
|
||||
|
@@ -3,7 +3,7 @@
|
||||
|
||||
[package]
|
||||
name = "solana-bpf-rust-iter"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
description = "Solana BPF iter program written in Rust"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -12,7 +12,7 @@ homepage = "https://solana.com/"
|
||||
edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
solana-sdk-bpf-utils = { path = "../../../../sdk/bpf/rust/rust-utils", version = "0.16.3" }
|
||||
solana-sdk-bpf-utils = { path = "../../../../sdk/bpf/rust/rust-utils", version = "0.16.4" }
|
||||
|
||||
[workspace]
|
||||
members = []
|
||||
|
@@ -3,7 +3,7 @@
|
||||
|
||||
[package]
|
||||
name = "solana-bpf-rust-many-args"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
description = "Solana BPF many-args program written in Rust"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -12,8 +12,8 @@ homepage = "https://solana.com/"
|
||||
edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
solana-sdk-bpf-utils = { path = "../../../../sdk/bpf/rust/rust-utils", version = "0.16.3" }
|
||||
solana-bpf-rust-many-args-dep = { path = "../many_args_dep", version = "0.16.3" }
|
||||
solana-sdk-bpf-utils = { path = "../../../../sdk/bpf/rust/rust-utils", version = "0.16.4" }
|
||||
solana-bpf-rust-many-args-dep = { path = "../many_args_dep", version = "0.16.4" }
|
||||
|
||||
[workspace]
|
||||
members = []
|
||||
|
@@ -3,7 +3,7 @@
|
||||
|
||||
[package]
|
||||
name = "solana-bpf-rust-many-args-dep"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
description = "Solana BPF many-args-dep program written in Rust"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -12,7 +12,7 @@ homepage = "https://solana.com/"
|
||||
edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
solana-sdk-bpf-utils = { path = "../../../../sdk/bpf/rust/rust-utils", version = "0.16.3" }
|
||||
solana-sdk-bpf-utils = { path = "../../../../sdk/bpf/rust/rust-utils", version = "0.16.4" }
|
||||
|
||||
[workspace]
|
||||
members = []
|
||||
|
@@ -3,7 +3,7 @@
|
||||
|
||||
[package]
|
||||
name = "solana-bpf-rust-noop"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
description = "Solana BPF noop program written in Rust"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -12,7 +12,7 @@ homepage = "https://solana.com/"
|
||||
edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
solana-sdk-bpf-utils = { path = "../../../../sdk/bpf/rust/rust-utils", version = "0.16.3" }
|
||||
solana-sdk-bpf-utils = { path = "../../../../sdk/bpf/rust/rust-utils", version = "0.16.4" }
|
||||
|
||||
[workspace]
|
||||
members = []
|
||||
|
@@ -3,7 +3,7 @@
|
||||
|
||||
[package]
|
||||
name = "solana-bpf-rust-panic"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
description = "Solana BPF iter program written in Rust"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -12,7 +12,7 @@ homepage = "https://solana.com/"
|
||||
edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
solana-sdk-bpf-utils = { path = "../../../../sdk/bpf/rust/rust-utils", version = "0.16.3" }
|
||||
solana-sdk-bpf-utils = { path = "../../../../sdk/bpf/rust/rust-utils", version = "0.16.4" }
|
||||
|
||||
[workspace]
|
||||
members = []
|
||||
|
@@ -3,7 +3,7 @@
|
||||
|
||||
[package]
|
||||
name = "solana-bpf-rust-tick-height"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
description = "Solana BPF noop program written in Rust"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -14,7 +14,7 @@ edition = "2018"
|
||||
[dependencies]
|
||||
byteorder = { version = "1", default-features = false }
|
||||
|
||||
solana-sdk-bpf-utils = { path = "../../../../sdk/bpf/rust/rust-utils", version = "0.16.3" }
|
||||
solana-sdk-bpf-utils = { path = "../../../../sdk/bpf/rust/rust-utils", version = "0.16.4" }
|
||||
|
||||
[workspace]
|
||||
members = []
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-bpf-loader-api"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
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.58"
|
||||
log = "0.4.2"
|
||||
serde = "1.0.92"
|
||||
solana-logger = { path = "../../logger", version = "0.16.3" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.16.3" }
|
||||
solana-logger = { path = "../../logger", version = "0.16.4" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.16.4" }
|
||||
solana_rbpf = "=0.1.13"
|
||||
|
||||
[lib]
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-bpf-loader-program"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
description = "Solana BPF Loader"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -10,9 +10,9 @@ edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
log = "0.4.2"
|
||||
solana-logger = { path = "../../logger", version = "0.16.3" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.16.3" }
|
||||
solana-bpf-loader-api = { path = "../bpf_loader_api", version = "0.16.3" }
|
||||
solana-logger = { path = "../../logger", version = "0.16.4" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.16.4" }
|
||||
solana-bpf-loader-api = { path = "../bpf_loader_api", version = "0.16.4" }
|
||||
|
||||
[lib]
|
||||
crate-type = ["lib", "cdylib"]
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-budget-api"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
description = "Solana Budget program API"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -16,10 +16,10 @@ num-derive = "0.2"
|
||||
num-traits = "0.2"
|
||||
serde = "1.0.92"
|
||||
serde_derive = "1.0.92"
|
||||
solana-sdk = { path = "../../sdk", version = "0.16.3" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.16.4" }
|
||||
|
||||
[dev-dependencies]
|
||||
solana-runtime = { path = "../../runtime", version = "0.16.3" }
|
||||
solana-runtime = { path = "../../runtime", version = "0.16.4" }
|
||||
|
||||
[lib]
|
||||
crate-type = ["lib"]
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-budget-program"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
description = "Solana budget program"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -10,9 +10,9 @@ edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
log = "0.4.2"
|
||||
solana-budget-api = { path = "../budget_api", version = "0.16.3" }
|
||||
solana-logger = { path = "../../logger", version = "0.16.3" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.16.3" }
|
||||
solana-budget-api = { path = "../budget_api", version = "0.16.4" }
|
||||
solana-logger = { path = "../../logger", version = "0.16.4" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.16.4" }
|
||||
|
||||
[lib]
|
||||
crate-type = ["lib", "cdylib"]
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-config-api"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
description = "config program API"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -13,11 +13,11 @@ bincode = "1.1.4"
|
||||
log = "0.4.2"
|
||||
serde = "1.0.92"
|
||||
serde_derive = "1.0.92"
|
||||
solana-logger = { path = "../../logger", version = "0.16.3" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.16.3" }
|
||||
solana-logger = { path = "../../logger", version = "0.16.4" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.16.4" }
|
||||
|
||||
[dev-dependencies]
|
||||
solana-runtime = { path = "../../runtime", version = "0.16.3" }
|
||||
solana-runtime = { path = "../../runtime", version = "0.16.4" }
|
||||
|
||||
[lib]
|
||||
crate-type = ["lib"]
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-config-program"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
description = "config program"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -10,9 +10,9 @@ edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
log = "0.4.2"
|
||||
solana-config-api = { path = "../config_api", version = "0.16.3" }
|
||||
solana-logger = { path = "../../logger", version = "0.16.3" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.16.3" }
|
||||
solana-config-api = { path = "../config_api", version = "0.16.4" }
|
||||
solana-logger = { path = "../../logger", version = "0.16.4" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.16.4" }
|
||||
|
||||
[lib]
|
||||
crate-type = ["lib", "cdylib"]
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-exchange-api"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
description = "Solana Exchange program API"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -13,12 +13,12 @@ bincode = "1.1.4"
|
||||
log = "0.4.2"
|
||||
serde = "1.0.92"
|
||||
serde_derive = "1.0.92"
|
||||
solana-logger = { path = "../../logger", version = "0.16.3" }
|
||||
solana-metrics = { path = "../../metrics", version = "0.16.3" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.16.3" }
|
||||
solana-logger = { path = "../../logger", version = "0.16.4" }
|
||||
solana-metrics = { path = "../../metrics", version = "0.16.4" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.16.4" }
|
||||
|
||||
[dev-dependencies]
|
||||
solana-runtime = { path = "../../runtime", version = "0.16.3" }
|
||||
solana-runtime = { path = "../../runtime", version = "0.16.4" }
|
||||
|
||||
[lib]
|
||||
crate-type = ["lib"]
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-exchange-program"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
description = "Solana exchange program"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -10,9 +10,9 @@ edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
log = "0.4.2"
|
||||
solana-exchange-api = { path = "../exchange_api", version = "0.16.3" }
|
||||
solana-logger = { path = "../../logger", version = "0.16.3" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.16.3" }
|
||||
solana-exchange-api = { path = "../exchange_api", version = "0.16.4" }
|
||||
solana-logger = { path = "../../logger", version = "0.16.4" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.16.4" }
|
||||
|
||||
[lib]
|
||||
crate-type = ["lib", "cdylib"]
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-failure-program"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
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.2"
|
||||
solana-sdk = { path = "../../sdk", version = "0.16.3" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.16.4" }
|
||||
|
||||
[dev-dependencies]
|
||||
solana-runtime = { path = "../../runtime", version = "0.16.3" }
|
||||
solana-runtime = { path = "../../runtime", version = "0.16.4" }
|
||||
|
||||
[lib]
|
||||
crate-type = ["cdylib"]
|
||||
|
@@ -1,24 +1,23 @@
|
||||
use solana_runtime::bank::Bank;
|
||||
use solana_runtime::bank_client::BankClient;
|
||||
use solana_runtime::loader_utils::{create_invoke_instruction, load_program};
|
||||
use solana_runtime::loader_utils::create_invoke_instruction;
|
||||
use solana_sdk::client::SyncClient;
|
||||
use solana_sdk::genesis_block::create_genesis_block;
|
||||
use solana_sdk::instruction::InstructionError;
|
||||
use solana_sdk::native_loader;
|
||||
use solana_sdk::pubkey::Pubkey;
|
||||
use solana_sdk::signature::KeypairUtil;
|
||||
use solana_sdk::transaction::TransactionError;
|
||||
|
||||
#[test]
|
||||
fn test_program_native_failure() {
|
||||
let (genesis_block, alice_keypair) = create_genesis_block(50);
|
||||
let program_id = Pubkey::new_rand();
|
||||
let bank = Bank::new(&genesis_block);
|
||||
let bank_client = BankClient::new(bank);
|
||||
|
||||
let program = "solana_failure_program".as_bytes().to_vec();
|
||||
let program_id = load_program(&bank_client, &alice_keypair, &native_loader::id(), program);
|
||||
bank.register_native_instruction_processor("solana_failure_program", &program_id);
|
||||
|
||||
// Call user program
|
||||
let instruction = create_invoke_instruction(alice_keypair.pubkey(), program_id, &1u8);
|
||||
let bank_client = BankClient::new(bank);
|
||||
assert_eq!(
|
||||
bank_client
|
||||
.send_instruction(&alice_keypair, instruction)
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-noop-program"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
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.2"
|
||||
solana-logger = { path = "../../logger", version = "0.16.3" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.16.3" }
|
||||
solana-logger = { path = "../../logger", version = "0.16.4" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.16.4" }
|
||||
|
||||
[lib]
|
||||
crate-type = ["cdylib"]
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-stake-api"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
description = "Solana Stake program API"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -14,10 +14,10 @@ log = "0.4.2"
|
||||
rand = "0.6.5"
|
||||
serde = "1.0.92"
|
||||
serde_derive = "1.0.92"
|
||||
solana-logger = { path = "../../logger", version = "0.16.3" }
|
||||
solana-metrics = { path = "../../metrics", version = "0.16.3" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.16.3" }
|
||||
solana-vote-api = { path = "../vote_api", version = "0.16.3" }
|
||||
solana-logger = { path = "../../logger", version = "0.16.4" }
|
||||
solana-metrics = { path = "../../metrics", version = "0.16.4" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.16.4" }
|
||||
solana-vote-api = { path = "../vote_api", version = "0.16.4" }
|
||||
|
||||
[lib]
|
||||
crate-type = ["lib"]
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-stake-program"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
description = "Solana stake program"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -10,9 +10,9 @@ edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
log = "0.4.2"
|
||||
solana-logger = { path = "../../logger", version = "0.16.3" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.16.3" }
|
||||
solana-stake-api = { path = "../stake_api", version = "0.16.3" }
|
||||
solana-logger = { path = "../../logger", version = "0.16.4" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.16.4" }
|
||||
solana-stake-api = { path = "../stake_api", version = "0.16.4" }
|
||||
|
||||
[lib]
|
||||
crate-type = ["lib", "cdylib"]
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-storage-api"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
description = "Solana Storage program API"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -17,8 +17,8 @@ num-derive = "0.2"
|
||||
num-traits = "0.2"
|
||||
serde = "1.0.92"
|
||||
serde_derive = "1.0.92"
|
||||
solana-logger = { path = "../../logger", version = "0.16.3" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.16.3" }
|
||||
solana-logger = { path = "../../logger", version = "0.16.4" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.16.4" }
|
||||
|
||||
[lib]
|
||||
crate-type = ["lib"]
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-storage-program"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
description = "Solana storage program"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -10,12 +10,12 @@ edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
log = "0.4.2"
|
||||
solana-logger = { path = "../../logger", version = "0.16.3" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.16.3" }
|
||||
solana-storage-api = { path = "../storage_api", version = "0.16.3" }
|
||||
solana-logger = { path = "../../logger", version = "0.16.4" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.16.4" }
|
||||
solana-storage-api = { path = "../storage_api", version = "0.16.4" }
|
||||
|
||||
[dev-dependencies]
|
||||
solana-runtime = { path = "../../runtime", version = "0.16.3" }
|
||||
solana-runtime = { path = "../../runtime", version = "0.16.4" }
|
||||
assert_matches = "1.3.0"
|
||||
bincode = "1.1.4"
|
||||
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-token-api"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
description = "Solana Token API"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -15,8 +15,8 @@ num-derive = "0.2"
|
||||
num-traits = "0.2"
|
||||
serde = "1.0.92"
|
||||
serde_derive = "1.0.92"
|
||||
solana-logger = { path = "../../logger", version = "0.16.3" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.16.3" }
|
||||
solana-logger = { path = "../../logger", version = "0.16.4" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.16.4" }
|
||||
|
||||
[lib]
|
||||
crate-type = ["lib"]
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-token-program"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
description = "Solana token program"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -10,9 +10,9 @@ edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
log = "0.4.2"
|
||||
solana-logger = { path = "../../logger", version = "0.16.3" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.16.3" }
|
||||
solana-token-api = { path = "../token_api", version = "0.16.3" }
|
||||
solana-logger = { path = "../../logger", version = "0.16.4" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.16.4" }
|
||||
solana-token-api = { path = "../token_api", version = "0.16.4" }
|
||||
|
||||
[lib]
|
||||
crate-type = ["lib", "cdylib"]
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-vote-api"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
description = "Solana Vote program API"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -13,9 +13,9 @@ bincode = "1.1.4"
|
||||
log = "0.4.2"
|
||||
serde = "1.0.92"
|
||||
serde_derive = "1.0.92"
|
||||
solana-logger = { path = "../../logger", version = "0.16.3" }
|
||||
solana-metrics = { path = "../../metrics", version = "0.16.3" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.16.3" }
|
||||
solana-logger = { path = "../../logger", version = "0.16.4" }
|
||||
solana-metrics = { path = "../../metrics", version = "0.16.4" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.16.4" }
|
||||
|
||||
[lib]
|
||||
crate-type = ["lib"]
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-vote-program"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
description = "Solana Vote program"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -10,9 +10,9 @@ edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
log = "0.4.2"
|
||||
solana-logger = { path = "../../logger", version = "0.16.3" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.16.3" }
|
||||
solana-vote-api = { path = "../vote_api", version = "0.16.3" }
|
||||
solana-logger = { path = "../../logger", version = "0.16.4" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.16.4" }
|
||||
solana-vote-api = { path = "../vote_api", version = "0.16.4" }
|
||||
|
||||
[lib]
|
||||
crate-type = ["lib", "cdylib"]
|
||||
|
@@ -2,17 +2,17 @@
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
edition = "2018"
|
||||
name = "solana-replicator"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
license = "Apache-2.0"
|
||||
homepage = "https://solana.com/"
|
||||
|
||||
[dependencies]
|
||||
clap = "2.33.0"
|
||||
solana = { path = "../core", version = "0.16.3" }
|
||||
solana-logger = { path = "../logger", version = "0.16.3" }
|
||||
solana-netutil = { path = "../netutil", version = "0.16.3" }
|
||||
solana-sdk = { path = "../sdk", version = "0.16.3" }
|
||||
solana = { path = "../core", version = "0.16.4" }
|
||||
solana-logger = { path = "../logger", version = "0.16.4" }
|
||||
solana-netutil = { path = "../netutil", version = "0.16.4" }
|
||||
solana-sdk = { path = "../sdk", version = "0.16.4" }
|
||||
|
||||
[features]
|
||||
cuda = ["solana/cuda"]
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-runtime"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
description = "Solana runtime"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -25,17 +25,17 @@ rayon = "1.1.0"
|
||||
serde = "1.0.92"
|
||||
serde_derive = "1.0.92"
|
||||
serde_json = "1.0.38"
|
||||
solana-logger = { path = "../logger", version = "0.16.3" }
|
||||
solana-metrics = { path = "../metrics", version = "0.16.3" }
|
||||
solana-bpf-loader-api = { path = "../programs/bpf_loader_api", version = "0.16.3" }
|
||||
solana-bpf-loader-program = { path = "../programs/bpf_loader_program", version = "0.16.3" }
|
||||
solana-noop-program = { path = "../programs/noop_program", version = "0.16.3" }
|
||||
solana-sdk = { path = "../sdk", version = "0.16.3" }
|
||||
solana-stake-api = { path = "../programs/stake_api", version = "0.16.3" }
|
||||
solana-stake-program = { path = "../programs/stake_program", version = "0.16.3" }
|
||||
solana-storage-api = { path = "../programs/storage_api", version = "0.16.3" }
|
||||
solana-vote-api = { path = "../programs/vote_api", version = "0.16.3" }
|
||||
solana-vote-program = { path = "../programs/vote_program", version = "0.16.3" }
|
||||
solana-logger = { path = "../logger", version = "0.16.4" }
|
||||
solana-metrics = { path = "../metrics", version = "0.16.4" }
|
||||
solana-bpf-loader-api = { path = "../programs/bpf_loader_api", version = "0.16.4" }
|
||||
solana-bpf-loader-program = { path = "../programs/bpf_loader_program", version = "0.16.4" }
|
||||
solana-noop-program = { path = "../programs/noop_program", version = "0.16.4" }
|
||||
solana-sdk = { path = "../sdk", version = "0.16.4" }
|
||||
solana-stake-api = { path = "../programs/stake_api", version = "0.16.4" }
|
||||
solana-stake-program = { path = "../programs/stake_program", version = "0.16.4" }
|
||||
solana-storage-api = { path = "../programs/storage_api", version = "0.16.4" }
|
||||
solana-vote-api = { path = "../programs/vote_api", version = "0.16.4" }
|
||||
solana-vote-program = { path = "../programs/vote_program", version = "0.16.4" }
|
||||
sys-info = "0.5.7"
|
||||
|
||||
[lib]
|
||||
|
@@ -5,13 +5,12 @@ extern crate test;
|
||||
use log::*;
|
||||
use solana_runtime::bank::*;
|
||||
use solana_runtime::bank_client::BankClient;
|
||||
use solana_runtime::loader_utils::{create_invoke_instruction, load_program};
|
||||
use solana_runtime::loader_utils::create_invoke_instruction;
|
||||
use solana_sdk::account::KeyedAccount;
|
||||
use solana_sdk::client::AsyncClient;
|
||||
use solana_sdk::client::SyncClient;
|
||||
use solana_sdk::genesis_block::create_genesis_block;
|
||||
use solana_sdk::instruction::InstructionError;
|
||||
use solana_sdk::native_loader;
|
||||
use solana_sdk::pubkey::Pubkey;
|
||||
use solana_sdk::signature::{Keypair, KeypairUtil};
|
||||
use solana_sdk::transaction::Transaction;
|
||||
@@ -25,6 +24,11 @@ const BUILTIN_PROGRAM_ID: [u8; 32] = [
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
];
|
||||
|
||||
const NOOP_PROGRAM_ID: [u8; 32] = [
|
||||
098, 117, 105, 108, 116, 105, 110, 095, 112, 114, 111, 103, 114, 097, 109, 095, 105, 100, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
|
||||
];
|
||||
|
||||
fn process_instruction(
|
||||
_program_id: &Pubkey,
|
||||
_keyed_accounts: &mut [KeyedAccount],
|
||||
@@ -59,8 +63,7 @@ pub fn create_native_loader_transactions(
|
||||
bank_client: &BankClient,
|
||||
mint_keypair: &Keypair,
|
||||
) -> Vec<Transaction> {
|
||||
let program = "solana_noop_program".as_bytes().to_vec();
|
||||
let program_id = load_program(&bank_client, &mint_keypair, &native_loader::id(), program);
|
||||
let program_id = Pubkey::new(&NOOP_PROGRAM_ID);
|
||||
|
||||
(0..4096)
|
||||
.into_iter()
|
||||
@@ -120,6 +123,10 @@ fn do_bench_transactions(
|
||||
let (genesis_block, mint_keypair) = create_genesis_block(100_000_000);
|
||||
let mut bank = Bank::new(&genesis_block);
|
||||
bank.add_instruction_processor(Pubkey::new(&BUILTIN_PROGRAM_ID), process_instruction);
|
||||
bank.register_native_instruction_processor(
|
||||
"solana_noop_program",
|
||||
&Pubkey::new(&NOOP_PROGRAM_ID),
|
||||
);
|
||||
let bank = Arc::new(bank);
|
||||
let bank_client = BankClient::new_shared(&bank);
|
||||
let transactions = create_transactions(&bank_client, &mint_keypair);
|
||||
|
@@ -18,7 +18,8 @@ use crate::stakes::Stakes;
|
||||
use crate::status_cache::StatusCache;
|
||||
use crate::storage_utils;
|
||||
use crate::storage_utils::StorageAccounts;
|
||||
use bincode::{deserialize_from, serialize, serialize_into, serialized_size};
|
||||
use bincode::{deserialize_from, serialize_into, serialized_size};
|
||||
use byteorder::{ByteOrder, LittleEndian};
|
||||
use log::*;
|
||||
use serde::{Deserialize, Serialize};
|
||||
use solana_metrics::{
|
||||
@@ -27,7 +28,7 @@ use solana_metrics::{
|
||||
use solana_sdk::account::Account;
|
||||
use solana_sdk::fee_calculator::FeeCalculator;
|
||||
use solana_sdk::genesis_block::GenesisBlock;
|
||||
use solana_sdk::hash::{extend_and_hash, Hash};
|
||||
use solana_sdk::hash::{hashv, Hash};
|
||||
use solana_sdk::inflation::Inflation;
|
||||
use solana_sdk::native_loader;
|
||||
use solana_sdk::pubkey::Pubkey;
|
||||
@@ -918,6 +919,8 @@ impl Bank {
|
||||
) -> (
|
||||
Vec<Result<(InstructionAccounts, InstructionLoaders, InstructionCredits)>>,
|
||||
Vec<Result<()>>,
|
||||
usize,
|
||||
usize,
|
||||
) {
|
||||
debug!("processing transactions: {}", txs.len());
|
||||
let mut error_counters = ErrorCounters::default();
|
||||
@@ -977,13 +980,8 @@ impl Bank {
|
||||
inc_new_counter_error!("bank-process_transactions-error_count", err_count, 0, 1000);
|
||||
}
|
||||
|
||||
self.increment_transaction_count(tx_count);
|
||||
self.increment_signature_count(signature_count);
|
||||
|
||||
inc_new_counter_info!("bank-process_transactions-txs", tx_count, 0, 1000);
|
||||
inc_new_counter_info!("bank-process_transactions-sigs", signature_count, 0, 1000);
|
||||
Self::update_error_counters(&error_counters);
|
||||
(loaded_accounts, executed)
|
||||
(loaded_accounts, executed, tx_count, signature_count)
|
||||
}
|
||||
|
||||
fn filter_program_errors_and_collect_fee(
|
||||
@@ -1031,11 +1029,19 @@ impl Bank {
|
||||
txs: &[Transaction],
|
||||
loaded_accounts: &[Result<(InstructionAccounts, InstructionLoaders, InstructionCredits)>],
|
||||
executed: &[Result<()>],
|
||||
tx_count: usize,
|
||||
signature_count: usize,
|
||||
) -> Vec<Result<()>> {
|
||||
if self.is_frozen() {
|
||||
warn!("=========== FIXME: commit_transactions() working on a frozen bank! ================");
|
||||
}
|
||||
|
||||
self.increment_transaction_count(tx_count);
|
||||
self.increment_signature_count(signature_count);
|
||||
|
||||
inc_new_counter_info!("bank-process_transactions-txs", tx_count, 0, 1000);
|
||||
inc_new_counter_info!("bank-process_transactions-sigs", signature_count, 0, 1000);
|
||||
|
||||
if executed.iter().any(|res| Self::can_commit(res)) {
|
||||
self.is_delta.store(true, Ordering::Relaxed);
|
||||
}
|
||||
@@ -1068,10 +1074,10 @@ impl Bank {
|
||||
lock_results: &LockedAccountsResults,
|
||||
max_age: usize,
|
||||
) -> Vec<Result<()>> {
|
||||
let (loaded_accounts, executed) =
|
||||
let (loaded_accounts, executed, tx_count, signature_count) =
|
||||
self.load_and_execute_transactions(txs, lock_results, max_age);
|
||||
|
||||
self.commit_transactions(txs, &loaded_accounts, &executed)
|
||||
self.commit_transactions(txs, &loaded_accounts, &executed, tx_count, signature_count)
|
||||
}
|
||||
|
||||
#[must_use]
|
||||
@@ -1227,7 +1233,14 @@ impl Bank {
|
||||
// If there are no accounts, return the same hash as we did before
|
||||
// checkpointing.
|
||||
if let Some(accounts_delta_hash) = self.rc.accounts.hash_internal_state(self.slot()) {
|
||||
extend_and_hash(&self.parent_hash, &serialize(&accounts_delta_hash).unwrap())
|
||||
let mut signature_count_buf = [0u8; 8];
|
||||
LittleEndian::write_u64(&mut signature_count_buf[..], self.signature_count() as u64);
|
||||
|
||||
hashv(&[
|
||||
&self.parent_hash.as_ref(),
|
||||
&accounts_delta_hash.as_ref(),
|
||||
&signature_count_buf,
|
||||
])
|
||||
} else {
|
||||
self.parent_hash
|
||||
}
|
||||
@@ -1720,7 +1733,7 @@ mod tests {
|
||||
fn goto_end_of_slot(bank: &mut Bank) {
|
||||
let mut tick_hash = bank.last_blockhash();
|
||||
loop {
|
||||
tick_hash = extend_and_hash(&tick_hash, &[42]);
|
||||
tick_hash = hashv(&[&tick_hash.as_ref(), &[42]]);
|
||||
bank.register_tick(&tick_hash);
|
||||
if tick_hash == bank.last_blockhash() {
|
||||
bank.freeze();
|
||||
|
@@ -1,6 +1,5 @@
|
||||
//! Native loader
|
||||
use crate::message_processor::SymbolCache;
|
||||
use bincode::deserialize;
|
||||
#[cfg(unix)]
|
||||
use libloading::os::unix::*;
|
||||
#[cfg(windows)]
|
||||
@@ -9,7 +8,6 @@ use log::*;
|
||||
use solana_sdk::account::KeyedAccount;
|
||||
use solana_sdk::instruction::InstructionError;
|
||||
use solana_sdk::instruction_processor_utils;
|
||||
use solana_sdk::loader_instruction::LoaderInstruction;
|
||||
use solana_sdk::pubkey::Pubkey;
|
||||
use std::env;
|
||||
use std::path::PathBuf;
|
||||
@@ -109,45 +107,15 @@ pub fn entrypoint(
|
||||
.write()
|
||||
.unwrap()
|
||||
.insert(name_vec.to_vec(), entrypoint);
|
||||
return ret;
|
||||
ret
|
||||
},
|
||||
Err(e) => {
|
||||
warn!("Unable to load: {:?}", e);
|
||||
return Err(InstructionError::GenericError);
|
||||
}
|
||||
}
|
||||
} else if let Ok(instruction) = deserialize(ix_data) {
|
||||
if keyed_accounts[0].signer_key().is_none() {
|
||||
warn!("key[0] did not sign the transaction");
|
||||
return Err(InstructionError::GenericError);
|
||||
}
|
||||
match instruction {
|
||||
LoaderInstruction::Write { offset, bytes } => {
|
||||
trace!("NativeLoader::Write offset {} bytes {:?}", offset, bytes);
|
||||
let offset = offset as usize;
|
||||
if keyed_accounts[0].account.data.len() < offset + bytes.len() {
|
||||
warn!(
|
||||
"Error: Overflow, {} < {}",
|
||||
keyed_accounts[0].account.data.len(),
|
||||
offset + bytes.len()
|
||||
);
|
||||
return Err(InstructionError::GenericError);
|
||||
}
|
||||
// native loader takes a name and we assume it all comes in at once
|
||||
keyed_accounts[0].account.data = bytes;
|
||||
}
|
||||
|
||||
LoaderInstruction::Finalize => {
|
||||
keyed_accounts[0].account.executable = true;
|
||||
trace!(
|
||||
"NativeLoader::Finalize prog: {:?}",
|
||||
keyed_accounts[0].signer_key().unwrap()
|
||||
);
|
||||
Err(InstructionError::GenericError)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
warn!("Invalid data in instruction: {:?}", ix_data);
|
||||
return Err(InstructionError::GenericError);
|
||||
Err(InstructionError::GenericError)
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
|
@@ -1,9 +1,9 @@
|
||||
use solana_runtime::bank::Bank;
|
||||
use solana_runtime::bank_client::BankClient;
|
||||
use solana_runtime::loader_utils::{create_invoke_instruction, load_program};
|
||||
use solana_runtime::loader_utils::create_invoke_instruction;
|
||||
use solana_sdk::client::SyncClient;
|
||||
use solana_sdk::genesis_block::create_genesis_block;
|
||||
use solana_sdk::native_loader;
|
||||
use solana_sdk::pubkey::Pubkey;
|
||||
use solana_sdk::signature::KeypairUtil;
|
||||
|
||||
#[test]
|
||||
@@ -11,14 +11,13 @@ fn test_program_native_noop() {
|
||||
solana_logger::setup();
|
||||
|
||||
let (genesis_block, alice_keypair) = create_genesis_block(50);
|
||||
let program_id = Pubkey::new_rand();
|
||||
let bank = Bank::new(&genesis_block);
|
||||
let bank_client = BankClient::new(bank);
|
||||
|
||||
let program = "solana_noop_program".as_bytes().to_vec();
|
||||
let program_id = load_program(&bank_client, &alice_keypair, &native_loader::id(), program);
|
||||
bank.register_native_instruction_processor("solana_noop_program", &program_id);
|
||||
|
||||
// Call user program
|
||||
let instruction = create_invoke_instruction(alice_keypair.pubkey(), program_id, &1u8);
|
||||
let bank_client = BankClient::new(bank);
|
||||
bank_client
|
||||
.send_instruction(&alice_keypair, instruction)
|
||||
.unwrap();
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-sdk"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
description = "Solana SDK"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -28,5 +28,5 @@ serde_derive = "1.0.92"
|
||||
serde_json = "1.0.39"
|
||||
sha2 = "0.8.0"
|
||||
solana-ed25519-dalek = "0.2.0"
|
||||
solana-logger = { path = "../logger", version = "0.16.3" }
|
||||
solana-logger = { path = "../logger", version = "0.16.4" }
|
||||
untrusted = "0.6.2"
|
||||
|
@@ -1,7 +1,7 @@
|
||||
|
||||
[package]
|
||||
name = "solana-sdk-bpf-utils"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
description = "Solana BPF SDK Rust Utils"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
|
@@ -11,6 +11,7 @@ pub mod tick_height;
|
||||
pub fn is_syscall_id(id: &Pubkey) -> bool {
|
||||
current::check_id(id)
|
||||
|| fees::check_id(id)
|
||||
|| rewards::check_id(id)
|
||||
|| slot_hashes::check_id(id)
|
||||
|| tick_height::check_id(id)
|
||||
}
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-upload-perf"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
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.2"
|
||||
serde_json = "1.0.39"
|
||||
solana-metrics = { path = "../metrics", version = "0.16.3" }
|
||||
solana-metrics = { path = "../metrics", version = "0.16.4" }
|
||||
|
||||
[[bin]]
|
||||
name = "solana-upload-perf"
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-validator-info"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
description = "Solana validator registration tool"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@@ -16,12 +16,13 @@ cuda = []
|
||||
bincode = "1.1.4"
|
||||
clap = "2.33"
|
||||
dirs = "2.0.1"
|
||||
reqwest = "0.9.18"
|
||||
serde = "1.0.94"
|
||||
serde_derive = "1.0.94"
|
||||
serde_json = "1.0.40"
|
||||
solana-client = { path = "../client", version = "0.16.3" }
|
||||
solana-config-api = { path = "../programs/config_api", version = "0.16.3" }
|
||||
solana-sdk = { path = "../sdk", version = "0.16.3" }
|
||||
solana-client = { path = "../client", version = "0.16.4" }
|
||||
solana-config-api = { path = "../programs/config_api", version = "0.16.4" }
|
||||
solana-sdk = { path = "../sdk", version = "0.16.4" }
|
||||
url = "1.7.2"
|
||||
|
||||
[[bin]]
|
||||
|
@@ -2,6 +2,7 @@ use bincode::deserialize;
|
||||
use clap::{
|
||||
crate_description, crate_name, crate_version, App, AppSettings, Arg, ArgMatches, SubCommand,
|
||||
};
|
||||
use reqwest::Client;
|
||||
use serde_derive::{Deserialize, Serialize};
|
||||
use serde_json::{Map, Value};
|
||||
use solana_client::rpc_client::RpcClient;
|
||||
@@ -99,7 +100,30 @@ fn check_details_length(string: String) -> Result<(), String> {
|
||||
}
|
||||
}
|
||||
|
||||
fn parse_args(matches: &ArgMatches<'_>) -> Result<String, Box<dyn error::Error>> {
|
||||
fn verify_keybase(
|
||||
validator_pubkey: &Pubkey,
|
||||
keybase_id: &Value,
|
||||
) -> Result<(), Box<dyn error::Error>> {
|
||||
if let Some(keybase_id) = keybase_id.as_str() {
|
||||
let url = format!(
|
||||
"https://keybase.pub/{}/solana_pubkey_{:?}",
|
||||
keybase_id, validator_pubkey
|
||||
);
|
||||
let client = Client::new();
|
||||
if client.head(&url).send()?.status().is_success() {
|
||||
Ok(())
|
||||
} else {
|
||||
Err(format!("keybase_id could not be confirmed at: {}. Please add this pubkey file to your keybase profile to connect", url))?
|
||||
}
|
||||
} else {
|
||||
Err(format!(
|
||||
"keybase_id could not be parsed as String: {}",
|
||||
keybase_id
|
||||
))?
|
||||
}
|
||||
}
|
||||
|
||||
fn parse_args(matches: &ArgMatches<'_>) -> Value {
|
||||
let mut map = Map::new();
|
||||
map.insert(
|
||||
"name".to_string(),
|
||||
@@ -117,8 +141,7 @@ fn parse_args(matches: &ArgMatches<'_>) -> Result<String, Box<dyn error::Error>>
|
||||
Value::String(keybase_id.to_string()),
|
||||
);
|
||||
}
|
||||
let string = serde_json::to_string(&Value::Object(map))?;
|
||||
Ok(string)
|
||||
Value::Object(map)
|
||||
}
|
||||
|
||||
fn parse_validator_info(account_data: &[u8]) -> Result<(Pubkey, String), Box<dyn error::Error>> {
|
||||
@@ -271,9 +294,13 @@ fn main() -> Result<(), Box<dyn error::Error>> {
|
||||
|
||||
// Prepare validator info
|
||||
let keys = vec![(id(), false), (validator_keypair.pubkey(), true)];
|
||||
let validator_info = parse_args(&matches)?;
|
||||
let validator_info = parse_args(&matches);
|
||||
if let Some(string) = validator_info.get("keybaseId") {
|
||||
verify_keybase(&validator_keypair.pubkey(), &string)?;
|
||||
}
|
||||
let validator_string = serde_json::to_string(&validator_info)?;
|
||||
let validator_info = ValidatorInfo {
|
||||
info: validator_info,
|
||||
info: validator_string,
|
||||
};
|
||||
|
||||
// Check existence of validator-info account
|
||||
@@ -400,12 +427,11 @@ mod tests {
|
||||
.arg(Arg::with_name("keybase_id").short("k").takes_value(true))
|
||||
.arg(Arg::with_name("details").short("d").takes_value(true))
|
||||
.get_matches_from(vec!["test", "-n", "Alice", "-k", "464bb0f2956f7e83"]);
|
||||
let expected_string = serde_json::to_string(&json!({
|
||||
let expected = json!({
|
||||
"name": "Alice",
|
||||
"keybaseId": "464bb0f2956f7e83",
|
||||
}))
|
||||
.unwrap();
|
||||
assert_eq!(parse_args(&matches).unwrap(), expected_string);
|
||||
});
|
||||
assert_eq!(parse_args(&matches), expected);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
edition = "2018"
|
||||
name = "solana-validator"
|
||||
description = "Blockchain, Rebuilt for Scale"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
license = "Apache-2.0"
|
||||
homepage = "https://solana.com/"
|
||||
@@ -12,15 +12,15 @@ homepage = "https://solana.com/"
|
||||
clap = "2.33.0"
|
||||
log = "0.4.2"
|
||||
serde_json = "1.0.39"
|
||||
solana = { path = "../core", version = "0.16.3" }
|
||||
solana-drone = { path = "../drone", version = "0.16.3" }
|
||||
solana-logger = { path = "../logger", version = "0.16.3" }
|
||||
solana-metrics = { path = "../metrics", version = "0.16.3" }
|
||||
solana-netutil = { path = "../netutil", version = "0.16.3" }
|
||||
solana-runtime = { path = "../runtime", version = "0.16.3" }
|
||||
solana-sdk = { path = "../sdk", version = "0.16.3" }
|
||||
solana-vote-api = { path = "../programs/vote_api", version = "0.16.3" }
|
||||
solana-vote-signer = { path = "../vote-signer", version = "0.16.3" }
|
||||
solana = { path = "../core", version = "0.16.4" }
|
||||
solana-drone = { path = "../drone", version = "0.16.4" }
|
||||
solana-logger = { path = "../logger", version = "0.16.4" }
|
||||
solana-metrics = { path = "../metrics", version = "0.16.4" }
|
||||
solana-netutil = { path = "../netutil", version = "0.16.4" }
|
||||
solana-runtime = { path = "../runtime", version = "0.16.4" }
|
||||
solana-sdk = { path = "../sdk", version = "0.16.4" }
|
||||
solana-vote-api = { path = "../programs/vote_api", version = "0.16.4" }
|
||||
solana-vote-signer = { path = "../vote-signer", version = "0.16.4" }
|
||||
|
||||
[features]
|
||||
cuda = ["solana/cuda"]
|
||||
|
@@ -162,6 +162,12 @@ fn main() {
|
||||
.value_name("PATHS")
|
||||
.takes_value(true)
|
||||
.help("Snapshot path"),
|
||||
)
|
||||
.arg(
|
||||
clap::Arg::with_name("skip_ledger_verify")
|
||||
.long("skip-ledger-verify")
|
||||
.takes_value(false)
|
||||
.help("Skip ledger verification at node bootup"),
|
||||
)
|
||||
.get_matches();
|
||||
|
||||
@@ -267,6 +273,8 @@ fn main() {
|
||||
node.info.rpc_pubsub = SocketAddr::new(gossip_addr.ip(), port_number + 1);
|
||||
};
|
||||
|
||||
let verify_ledger = !matches.is_present("skip_ledger_verify");
|
||||
|
||||
let validator = Validator::new(
|
||||
node,
|
||||
&keypair,
|
||||
@@ -275,6 +283,7 @@ fn main() {
|
||||
&Arc::new(voting_keypair),
|
||||
&Arc::new(storage_keypair),
|
||||
cluster_entrypoint.as_ref(),
|
||||
verify_ledger,
|
||||
&validator_config,
|
||||
);
|
||||
|
||||
|
@@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
edition = "2018"
|
||||
name = "solana-vote-signer"
|
||||
description = "Solana Vote Signing Service"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
license = "Apache-2.0"
|
||||
homepage = "https://solana.com/"
|
||||
@@ -17,8 +17,8 @@ jsonrpc-http-server = "12.0.0"
|
||||
log = "0.4.2"
|
||||
serde = "1.0.92"
|
||||
serde_json = "1.0.39"
|
||||
solana-metrics = { path = "../metrics", version = "0.16.3" }
|
||||
solana-sdk = { path = "../sdk", version = "0.16.3" }
|
||||
solana-metrics = { path = "../metrics", version = "0.16.4" }
|
||||
solana-sdk = { path = "../sdk", version = "0.16.4" }
|
||||
|
||||
[lib]
|
||||
crate-type = ["lib"]
|
||||
|
@@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
edition = "2018"
|
||||
name = "solana-wallet"
|
||||
description = "Blockchain, Rebuilt for Scale"
|
||||
version = "0.16.3"
|
||||
version = "0.16.4"
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
license = "Apache-2.0"
|
||||
homepage = "https://solana.com/"
|
||||
@@ -17,21 +17,22 @@ dirs = "2.0.1"
|
||||
log = "0.4.2"
|
||||
num-traits = "0.2"
|
||||
serde_json = "1.0.39"
|
||||
solana-budget-api = { path = "../programs/budget_api", version = "0.16.3" }
|
||||
solana-client = { path = "../client", version = "0.16.3" }
|
||||
solana-drone = { path = "../drone", version = "0.16.3" }
|
||||
solana-logger = { path = "../logger", version = "0.16.3" }
|
||||
solana-netutil = { path = "../netutil", version = "0.16.3" }
|
||||
solana-sdk = { path = "../sdk", version = "0.16.3" }
|
||||
solana-stake-api = { path = "../programs/stake_api", version = "0.16.3" }
|
||||
solana-storage-api = { path = "../programs/storage_api", version = "0.16.3" }
|
||||
solana-vote-api = { path = "../programs/vote_api", version = "0.16.3" }
|
||||
solana-vote-signer = { path = "../vote-signer", version = "0.16.3" }
|
||||
solana-budget-api = { path = "../programs/budget_api", version = "0.16.4" }
|
||||
solana-client = { path = "../client", version = "0.16.4" }
|
||||
solana-drone = { path = "../drone", version = "0.16.4" }
|
||||
solana-logger = { path = "../logger", version = "0.16.4" }
|
||||
solana-netutil = { path = "../netutil", version = "0.16.4" }
|
||||
solana-runtime = { path = "../runtime", version = "0.16.4" }
|
||||
solana-sdk = { path = "../sdk", version = "0.16.4" }
|
||||
solana-stake-api = { path = "../programs/stake_api", version = "0.16.4" }
|
||||
solana-storage-api = { path = "../programs/storage_api", version = "0.16.4" }
|
||||
solana-vote-api = { path = "../programs/vote_api", version = "0.16.4" }
|
||||
solana-vote-signer = { path = "../vote-signer", version = "0.16.4" }
|
||||
url = "1.7.2"
|
||||
|
||||
[dev-dependencies]
|
||||
solana = { path = "../core", version = "0.16.3" }
|
||||
solana-budget-program = { path = "../programs/budget_program", version = "0.16.3" }
|
||||
solana = { path = "../core", version = "0.16.4" }
|
||||
solana-budget-program = { path = "../programs/budget_program", version = "0.16.4" }
|
||||
|
||||
[features]
|
||||
cuda = []
|
||||
|
@@ -540,13 +540,31 @@ fn process_show_vote_account(
|
||||
}
|
||||
);
|
||||
if !vote_state.votes.is_empty() {
|
||||
println!("votes:");
|
||||
for vote in vote_state.votes {
|
||||
println!("recent votes:");
|
||||
for vote in &vote_state.votes {
|
||||
println!(
|
||||
"- slot={}, confirmation count={}",
|
||||
"- slot: {}\n confirmation count: {}",
|
||||
vote.slot, vote.confirmation_count
|
||||
);
|
||||
}
|
||||
|
||||
// TODO: Use the real GenesisBlock from the cluster.
|
||||
let genesis_block = solana_sdk::genesis_block::GenesisBlock::default();
|
||||
let epoch_schedule = solana_runtime::epoch_schedule::EpochSchedule::new(
|
||||
genesis_block.slots_per_epoch,
|
||||
genesis_block.stakers_slot_offset,
|
||||
genesis_block.epoch_warmup,
|
||||
);
|
||||
|
||||
println!("epoch voting history:");
|
||||
for (epoch, credits, prev_credits) in vote_state.epoch_credits() {
|
||||
let credits_earned = credits - prev_credits;
|
||||
let slots_in_epoch = epoch_schedule.get_slots_in_epoch(*epoch);
|
||||
println!(
|
||||
"- epoch: {}\n slots in epoch: {}\n credits earned: {}",
|
||||
epoch, slots_in_epoch, credits_earned,
|
||||
);
|
||||
}
|
||||
}
|
||||
Ok("".to_string())
|
||||
}
|
||||
|
Reference in New Issue
Block a user