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]]
|
[[package]]
|
||||||
name = "solana"
|
name = "solana"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bincode 1.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
"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)",
|
"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 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_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_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"solana-budget-api 0.16.3",
|
"solana-budget-api 0.16.4",
|
||||||
"solana-budget-program 0.16.3",
|
"solana-budget-program 0.16.4",
|
||||||
"solana-chacha-sys 0.16.3",
|
"solana-chacha-sys 0.16.4",
|
||||||
"solana-client 0.16.3",
|
"solana-client 0.16.4",
|
||||||
"solana-config-program 0.16.3",
|
"solana-config-program 0.16.4",
|
||||||
"solana-drone 0.16.3",
|
"solana-drone 0.16.4",
|
||||||
"solana-ed25519-dalek 0.2.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-exchange-program 0.16.3",
|
"solana-exchange-program 0.16.4",
|
||||||
"solana-kvstore 0.16.3",
|
"solana-kvstore 0.16.4",
|
||||||
"solana-logger 0.16.3",
|
"solana-logger 0.16.4",
|
||||||
"solana-metrics 0.16.3",
|
"solana-metrics 0.16.4",
|
||||||
"solana-netutil 0.16.3",
|
"solana-netutil 0.16.4",
|
||||||
"solana-runtime 0.16.3",
|
"solana-runtime 0.16.4",
|
||||||
"solana-sdk 0.16.3",
|
"solana-sdk 0.16.4",
|
||||||
"solana-stake-api 0.16.3",
|
"solana-stake-api 0.16.4",
|
||||||
"solana-stake-program 0.16.3",
|
"solana-stake-program 0.16.4",
|
||||||
"solana-storage-api 0.16.3",
|
"solana-storage-api 0.16.4",
|
||||||
"solana-storage-program 0.16.3",
|
"solana-storage-program 0.16.4",
|
||||||
"solana-vote-api 0.16.3",
|
"solana-vote-api 0.16.4",
|
||||||
"solana-vote-program 0.16.3",
|
"solana-vote-program 0.16.4",
|
||||||
"solana-vote-signer 0.16.3",
|
"solana-vote-signer 0.16.4",
|
||||||
"sys-info 0.5.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
"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 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)",
|
"tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@@ -2229,7 +2229,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "solana-bench-exchange"
|
name = "solana-bench-exchange"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bincode 1.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
"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)",
|
"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_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_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)",
|
"serde_yaml 0.8.9 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"solana 0.16.3",
|
"solana 0.16.4",
|
||||||
"solana-client 0.16.3",
|
"solana-client 0.16.4",
|
||||||
"solana-drone 0.16.3",
|
"solana-drone 0.16.4",
|
||||||
"solana-exchange-api 0.16.3",
|
"solana-exchange-api 0.16.4",
|
||||||
"solana-exchange-program 0.16.3",
|
"solana-exchange-program 0.16.4",
|
||||||
"solana-logger 0.16.3",
|
"solana-logger 0.16.4",
|
||||||
"solana-metrics 0.16.3",
|
"solana-metrics 0.16.4",
|
||||||
"solana-netutil 0.16.3",
|
"solana-netutil 0.16.4",
|
||||||
"solana-runtime 0.16.3",
|
"solana-runtime 0.16.4",
|
||||||
"solana-sdk 0.16.3",
|
"solana-sdk 0.16.4",
|
||||||
"untrusted 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
"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)",
|
"ws 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "solana-bench-streamer"
|
name = "solana-bench-streamer"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"solana 0.16.3",
|
"solana 0.16.4",
|
||||||
"solana-logger 0.16.3",
|
"solana-logger 0.16.4",
|
||||||
"solana-netutil 0.16.3",
|
"solana-netutil 0.16.4",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "solana-bench-tps"
|
name = "solana-bench-tps"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"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)",
|
"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_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_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)",
|
"serde_yaml 0.8.9 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"solana 0.16.3",
|
"solana 0.16.4",
|
||||||
"solana-client 0.16.3",
|
"solana-client 0.16.4",
|
||||||
"solana-drone 0.16.3",
|
"solana-drone 0.16.4",
|
||||||
"solana-logger 0.16.3",
|
"solana-logger 0.16.4",
|
||||||
"solana-metrics 0.16.3",
|
"solana-metrics 0.16.4",
|
||||||
"solana-netutil 0.16.3",
|
"solana-netutil 0.16.4",
|
||||||
"solana-runtime 0.16.3",
|
"solana-runtime 0.16.4",
|
||||||
"solana-sdk 0.16.3",
|
"solana-sdk 0.16.4",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "solana-bpf-loader-api"
|
name = "solana-bpf-loader-api"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bincode 1.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
"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)",
|
"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)",
|
"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)",
|
"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 1.0.94 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"solana-logger 0.16.3",
|
"solana-logger 0.16.4",
|
||||||
"solana-sdk 0.16.3",
|
"solana-sdk 0.16.4",
|
||||||
"solana_rbpf 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
|
"solana_rbpf 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "solana-bpf-loader-program"
|
name = "solana-bpf-loader-program"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"solana-bpf-loader-api 0.16.3",
|
"solana-bpf-loader-api 0.16.4",
|
||||||
"solana-logger 0.16.3",
|
"solana-logger 0.16.4",
|
||||||
"solana-sdk 0.16.3",
|
"solana-sdk 0.16.4",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "solana-bpf-programs"
|
name = "solana-bpf-programs"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bincode 1.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
"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)",
|
"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)",
|
"elf 0.0.10 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"solana-bpf-loader-api 0.16.3",
|
"solana-bpf-loader-api 0.16.4",
|
||||||
"solana-logger 0.16.3",
|
"solana-logger 0.16.4",
|
||||||
"solana-runtime 0.16.3",
|
"solana-runtime 0.16.4",
|
||||||
"solana-sdk 0.16.3",
|
"solana-sdk 0.16.4",
|
||||||
"solana_rbpf 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
|
"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)",
|
"walkdir 2.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "solana-budget-api"
|
name = "solana-budget-api"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bincode 1.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
"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)",
|
"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)",
|
"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 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_derive 1.0.94 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"solana-runtime 0.16.3",
|
"solana-runtime 0.16.4",
|
||||||
"solana-sdk 0.16.3",
|
"solana-sdk 0.16.4",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "solana-budget-program"
|
name = "solana-budget-program"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"solana-budget-api 0.16.3",
|
"solana-budget-api 0.16.4",
|
||||||
"solana-logger 0.16.3",
|
"solana-logger 0.16.4",
|
||||||
"solana-sdk 0.16.3",
|
"solana-sdk 0.16.4",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "solana-chacha-sys"
|
name = "solana-chacha-sys"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cc 1.0.37 (registry+https://github.com/rust-lang/crates.io-index)",
|
"cc 1.0.37 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "solana-client"
|
name = "solana-client"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bincode 1.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
"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)",
|
"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 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_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_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"solana-logger 0.16.3",
|
"solana-logger 0.16.4",
|
||||||
"solana-netutil 0.16.3",
|
"solana-netutil 0.16.4",
|
||||||
"solana-sdk 0.16.3",
|
"solana-sdk 0.16.4",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "solana-config-api"
|
name = "solana-config-api"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bincode 1.1.4 (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)",
|
"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 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_derive 1.0.94 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"solana-logger 0.16.3",
|
"solana-logger 0.16.4",
|
||||||
"solana-runtime 0.16.3",
|
"solana-runtime 0.16.4",
|
||||||
"solana-sdk 0.16.3",
|
"solana-sdk 0.16.4",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "solana-config-program"
|
name = "solana-config-program"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"solana-config-api 0.16.3",
|
"solana-config-api 0.16.4",
|
||||||
"solana-logger 0.16.3",
|
"solana-logger 0.16.4",
|
||||||
"solana-sdk 0.16.3",
|
"solana-sdk 0.16.4",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "solana-drone"
|
name = "solana-drone"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bincode 1.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
"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)",
|
"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)",
|
"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 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_derive 1.0.94 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"solana-logger 0.16.3",
|
"solana-logger 0.16.4",
|
||||||
"solana-metrics 0.16.3",
|
"solana-metrics 0.16.4",
|
||||||
"solana-sdk 0.16.3",
|
"solana-sdk 0.16.4",
|
||||||
"tokio 0.1.21 (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)",
|
"tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
@@ -2436,40 +2436,40 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "solana-exchange-api"
|
name = "solana-exchange-api"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bincode 1.1.4 (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)",
|
"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 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_derive 1.0.94 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"solana-logger 0.16.3",
|
"solana-logger 0.16.4",
|
||||||
"solana-metrics 0.16.3",
|
"solana-metrics 0.16.4",
|
||||||
"solana-runtime 0.16.3",
|
"solana-runtime 0.16.4",
|
||||||
"solana-sdk 0.16.3",
|
"solana-sdk 0.16.4",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "solana-exchange-program"
|
name = "solana-exchange-program"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"solana-exchange-api 0.16.3",
|
"solana-exchange-api 0.16.4",
|
||||||
"solana-logger 0.16.3",
|
"solana-logger 0.16.4",
|
||||||
"solana-sdk 0.16.3",
|
"solana-sdk 0.16.4",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "solana-failure-program"
|
name = "solana-failure-program"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"solana-runtime 0.16.3",
|
"solana-runtime 0.16.4",
|
||||||
"solana-sdk 0.16.3",
|
"solana-sdk 0.16.4",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "solana-genesis"
|
name = "solana-genesis"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bincode 1.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
"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)",
|
"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_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_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)",
|
"serde_yaml 0.8.9 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"solana 0.16.3",
|
"solana 0.16.4",
|
||||||
"solana-bpf-loader-api 0.16.3",
|
"solana-bpf-loader-api 0.16.4",
|
||||||
"solana-bpf-loader-program 0.16.3",
|
"solana-bpf-loader-program 0.16.4",
|
||||||
"solana-budget-api 0.16.3",
|
"solana-budget-api 0.16.4",
|
||||||
"solana-budget-program 0.16.3",
|
"solana-budget-program 0.16.4",
|
||||||
"solana-config-api 0.16.3",
|
"solana-config-api 0.16.4",
|
||||||
"solana-config-program 0.16.3",
|
"solana-config-program 0.16.4",
|
||||||
"solana-exchange-api 0.16.3",
|
"solana-exchange-api 0.16.4",
|
||||||
"solana-exchange-program 0.16.3",
|
"solana-exchange-program 0.16.4",
|
||||||
"solana-sdk 0.16.3",
|
"solana-sdk 0.16.4",
|
||||||
"solana-stake-api 0.16.3",
|
"solana-stake-api 0.16.4",
|
||||||
"solana-stake-program 0.16.3",
|
"solana-stake-program 0.16.4",
|
||||||
"solana-storage-api 0.16.3",
|
"solana-storage-api 0.16.4",
|
||||||
"solana-storage-program 0.16.3",
|
"solana-storage-program 0.16.4",
|
||||||
"solana-token-api 0.16.3",
|
"solana-token-api 0.16.4",
|
||||||
"solana-token-program 0.16.3",
|
"solana-token-program 0.16.4",
|
||||||
"solana-vote-api 0.16.3",
|
"solana-vote-api 0.16.4",
|
||||||
"solana-vote-program 0.16.3",
|
"solana-vote-program 0.16.4",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "solana-gossip"
|
name = "solana-gossip"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"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)",
|
"env_logger 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"solana 0.16.3",
|
"solana 0.16.4",
|
||||||
"solana-client 0.16.3",
|
"solana-client 0.16.4",
|
||||||
"solana-netutil 0.16.3",
|
"solana-netutil 0.16.4",
|
||||||
"solana-sdk 0.16.3",
|
"solana-sdk 0.16.4",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "solana-install"
|
name = "solana-install"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
"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)",
|
"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 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_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)",
|
"serde_yaml 0.8.9 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"solana-client 0.16.3",
|
"solana-client 0.16.4",
|
||||||
"solana-config-api 0.16.3",
|
"solana-config-api 0.16.4",
|
||||||
"solana-logger 0.16.3",
|
"solana-logger 0.16.4",
|
||||||
"solana-sdk 0.16.3",
|
"solana-sdk 0.16.4",
|
||||||
"tar 0.4.26 (registry+https://github.com/rust-lang/crates.io-index)",
|
"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)",
|
"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)",
|
"url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@@ -2545,16 +2545,16 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "solana-keygen"
|
name = "solana-keygen"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"clap 2.33.0 (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)",
|
"dirs 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"solana-sdk 0.16.3",
|
"solana-sdk 0.16.4",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "solana-kvstore"
|
name = "solana-kvstore"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bincode 1.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
"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)",
|
"byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@@ -2569,35 +2569,38 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "solana-ledger-tool"
|
name = "solana-ledger-tool"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"assert_cmd 0.11.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"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)",
|
"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)",
|
"serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"solana 0.16.3",
|
"serde_yaml 0.8.9 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"solana-logger 0.16.3",
|
"solana 0.16.4",
|
||||||
"solana-runtime 0.16.3",
|
"solana-logger 0.16.4",
|
||||||
"solana-sdk 0.16.3",
|
"solana-runtime 0.16.4",
|
||||||
|
"solana-sdk 0.16.4",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "solana-logger"
|
name = "solana-logger"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"env_logger 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"env_logger 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "solana-merkle-tree"
|
name = "solana-merkle-tree"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"hex 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
"hex 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"solana-sdk 0.16.3",
|
"solana-sdk 0.16.4",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "solana-metrics"
|
name = "solana-metrics"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"env_logger 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"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)",
|
"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)",
|
"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)",
|
"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)",
|
"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)",
|
"sys-info 0.5.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "solana-netutil"
|
name = "solana-netutil"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bincode 1.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
"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)",
|
"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)",
|
"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)",
|
"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)",
|
"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)",
|
"tokio 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "solana-noop-program"
|
name = "solana-noop-program"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"log 0.4.6 (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-logger 0.16.4",
|
||||||
"solana-sdk 0.16.3",
|
"solana-sdk 0.16.4",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "solana-replicator"
|
name = "solana-replicator"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"solana 0.16.3",
|
"solana 0.16.4",
|
||||||
"solana-logger 0.16.3",
|
"solana-logger 0.16.4",
|
||||||
"solana-netutil 0.16.3",
|
"solana-netutil 0.16.4",
|
||||||
"solana-sdk 0.16.3",
|
"solana-sdk 0.16.4",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "solana-runtime"
|
name = "solana-runtime"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bincode 1.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
"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)",
|
"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 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_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_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"solana-bpf-loader-api 0.16.3",
|
"solana-bpf-loader-api 0.16.4",
|
||||||
"solana-bpf-loader-program 0.16.3",
|
"solana-bpf-loader-program 0.16.4",
|
||||||
"solana-logger 0.16.3",
|
"solana-logger 0.16.4",
|
||||||
"solana-metrics 0.16.3",
|
"solana-metrics 0.16.4",
|
||||||
"solana-noop-program 0.16.3",
|
"solana-noop-program 0.16.4",
|
||||||
"solana-sdk 0.16.3",
|
"solana-sdk 0.16.4",
|
||||||
"solana-stake-api 0.16.3",
|
"solana-stake-api 0.16.4",
|
||||||
"solana-stake-program 0.16.3",
|
"solana-stake-program 0.16.4",
|
||||||
"solana-storage-api 0.16.3",
|
"solana-storage-api 0.16.4",
|
||||||
"solana-vote-api 0.16.3",
|
"solana-vote-api 0.16.4",
|
||||||
"solana-vote-program 0.16.3",
|
"solana-vote-program 0.16.4",
|
||||||
"sys-info 0.5.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
"sys-info 0.5.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "solana-sdk"
|
name = "solana-sdk"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"assert_matches 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"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)",
|
"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)",
|
"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)",
|
"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-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)",
|
"untrusted 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "solana-stake-api"
|
name = "solana-stake-api"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bincode 1.1.4 (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)",
|
"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)",
|
"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 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_derive 1.0.94 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"solana-logger 0.16.3",
|
"solana-logger 0.16.4",
|
||||||
"solana-metrics 0.16.3",
|
"solana-metrics 0.16.4",
|
||||||
"solana-sdk 0.16.3",
|
"solana-sdk 0.16.4",
|
||||||
"solana-vote-api 0.16.3",
|
"solana-vote-api 0.16.4",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "solana-stake-program"
|
name = "solana-stake-program"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"log 0.4.6 (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-logger 0.16.4",
|
||||||
"solana-sdk 0.16.3",
|
"solana-sdk 0.16.4",
|
||||||
"solana-stake-api 0.16.3",
|
"solana-stake-api 0.16.4",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "solana-storage-api"
|
name = "solana-storage-api"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"assert_matches 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"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)",
|
"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)",
|
"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 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_derive 1.0.94 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"solana-logger 0.16.3",
|
"solana-logger 0.16.4",
|
||||||
"solana-sdk 0.16.3",
|
"solana-sdk 0.16.4",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "solana-storage-program"
|
name = "solana-storage-program"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"assert_matches 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"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)",
|
"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)",
|
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"solana-logger 0.16.3",
|
"solana-logger 0.16.4",
|
||||||
"solana-runtime 0.16.3",
|
"solana-runtime 0.16.4",
|
||||||
"solana-sdk 0.16.3",
|
"solana-sdk 0.16.4",
|
||||||
"solana-storage-api 0.16.3",
|
"solana-storage-api 0.16.4",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "solana-token-api"
|
name = "solana-token-api"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bincode 1.1.4 (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)",
|
"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)",
|
"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 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_derive 1.0.94 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"solana-logger 0.16.3",
|
"solana-logger 0.16.4",
|
||||||
"solana-sdk 0.16.3",
|
"solana-sdk 0.16.4",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "solana-token-program"
|
name = "solana-token-program"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"log 0.4.6 (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-logger 0.16.4",
|
||||||
"solana-sdk 0.16.3",
|
"solana-sdk 0.16.4",
|
||||||
"solana-token-api 0.16.3",
|
"solana-token-api 0.16.4",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "solana-upload-perf"
|
name = "solana-upload-perf"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"log 0.4.6 (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)",
|
"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]]
|
[[package]]
|
||||||
name = "solana-validator"
|
name = "solana-validator"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"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)",
|
"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)",
|
"serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"solana 0.16.3",
|
"solana 0.16.4",
|
||||||
"solana-drone 0.16.3",
|
"solana-drone 0.16.4",
|
||||||
"solana-logger 0.16.3",
|
"solana-logger 0.16.4",
|
||||||
"solana-metrics 0.16.3",
|
"solana-metrics 0.16.4",
|
||||||
"solana-netutil 0.16.3",
|
"solana-netutil 0.16.4",
|
||||||
"solana-runtime 0.16.3",
|
"solana-runtime 0.16.4",
|
||||||
"solana-sdk 0.16.3",
|
"solana-sdk 0.16.4",
|
||||||
"solana-vote-api 0.16.3",
|
"solana-vote-api 0.16.4",
|
||||||
"solana-vote-signer 0.16.3",
|
"solana-vote-signer 0.16.4",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "solana-validator-info"
|
name = "solana-validator-info"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bincode 1.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
"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)",
|
"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)",
|
"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 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_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_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"solana-client 0.16.3",
|
"solana-client 0.16.4",
|
||||||
"solana-config-api 0.16.3",
|
"solana-config-api 0.16.4",
|
||||||
"solana-sdk 0.16.3",
|
"solana-sdk 0.16.4",
|
||||||
"url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
"url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "solana-vote-api"
|
name = "solana-vote-api"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bincode 1.1.4 (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)",
|
"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 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_derive 1.0.94 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"solana-logger 0.16.3",
|
"solana-logger 0.16.4",
|
||||||
"solana-metrics 0.16.3",
|
"solana-metrics 0.16.4",
|
||||||
"solana-sdk 0.16.3",
|
"solana-sdk 0.16.4",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "solana-vote-program"
|
name = "solana-vote-program"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"log 0.4.6 (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-logger 0.16.4",
|
||||||
"solana-sdk 0.16.3",
|
"solana-sdk 0.16.4",
|
||||||
"solana-vote-api 0.16.3",
|
"solana-vote-api 0.16.4",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "solana-vote-signer"
|
name = "solana-vote-signer"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bs58 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
"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)",
|
"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)",
|
"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 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_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"solana-metrics 0.16.3",
|
"solana-metrics 0.16.4",
|
||||||
"solana-sdk 0.16.3",
|
"solana-sdk 0.16.4",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "solana-wallet"
|
name = "solana-wallet"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bincode 1.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
"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)",
|
"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)",
|
"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)",
|
"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)",
|
"serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"solana 0.16.3",
|
"solana 0.16.4",
|
||||||
"solana-budget-api 0.16.3",
|
"solana-budget-api 0.16.4",
|
||||||
"solana-budget-program 0.16.3",
|
"solana-budget-program 0.16.4",
|
||||||
"solana-client 0.16.3",
|
"solana-client 0.16.4",
|
||||||
"solana-drone 0.16.3",
|
"solana-drone 0.16.4",
|
||||||
"solana-logger 0.16.3",
|
"solana-logger 0.16.4",
|
||||||
"solana-netutil 0.16.3",
|
"solana-netutil 0.16.4",
|
||||||
"solana-sdk 0.16.3",
|
"solana-runtime 0.16.4",
|
||||||
"solana-stake-api 0.16.3",
|
"solana-sdk 0.16.4",
|
||||||
"solana-storage-api 0.16.3",
|
"solana-stake-api 0.16.4",
|
||||||
"solana-vote-api 0.16.3",
|
"solana-storage-api 0.16.4",
|
||||||
"solana-vote-signer 0.16.3",
|
"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)",
|
"url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@@ -2,7 +2,7 @@
|
|||||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||||
edition = "2018"
|
edition = "2018"
|
||||||
name = "solana-bench-exchange"
|
name = "solana-bench-exchange"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
repository = "https://github.com/solana-labs/solana"
|
repository = "https://github.com/solana-labs/solana"
|
||||||
license = "Apache-2.0"
|
license = "Apache-2.0"
|
||||||
homepage = "https://solana.com/"
|
homepage = "https://solana.com/"
|
||||||
@@ -24,16 +24,16 @@ serde_derive = "1.0.92"
|
|||||||
serde_json = "1.0.39"
|
serde_json = "1.0.39"
|
||||||
serde_yaml = "0.8.9"
|
serde_yaml = "0.8.9"
|
||||||
# solana-runtime = { path = "../solana/runtime"}
|
# solana-runtime = { path = "../solana/runtime"}
|
||||||
solana = { path = "../core", version = "0.16.3" }
|
solana = { path = "../core", version = "0.16.4" }
|
||||||
solana-client = { path = "../client", version = "0.16.3" }
|
solana-client = { path = "../client", version = "0.16.4" }
|
||||||
solana-drone = { path = "../drone", version = "0.16.3" }
|
solana-drone = { path = "../drone", version = "0.16.4" }
|
||||||
solana-exchange-api = { path = "../programs/exchange_api", version = "0.16.3" }
|
solana-exchange-api = { path = "../programs/exchange_api", version = "0.16.4" }
|
||||||
solana-exchange-program = { path = "../programs/exchange_program", version = "0.16.3" }
|
solana-exchange-program = { path = "../programs/exchange_program", version = "0.16.4" }
|
||||||
solana-logger = { path = "../logger", version = "0.16.3" }
|
solana-logger = { path = "../logger", version = "0.16.4" }
|
||||||
solana-metrics = { path = "../metrics", version = "0.16.3" }
|
solana-metrics = { path = "../metrics", version = "0.16.4" }
|
||||||
solana-netutil = { path = "../netutil", version = "0.16.3" }
|
solana-netutil = { path = "../netutil", version = "0.16.4" }
|
||||||
solana-runtime = { path = "../runtime", version = "0.16.3" }
|
solana-runtime = { path = "../runtime", version = "0.16.4" }
|
||||||
solana-sdk = { path = "../sdk", version = "0.16.3" }
|
solana-sdk = { path = "../sdk", version = "0.16.4" }
|
||||||
untrusted = "0.6.2"
|
untrusted = "0.6.2"
|
||||||
ws = "0.8.1"
|
ws = "0.8.1"
|
||||||
|
|
||||||
|
@@ -2,16 +2,16 @@
|
|||||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||||
edition = "2018"
|
edition = "2018"
|
||||||
name = "solana-bench-streamer"
|
name = "solana-bench-streamer"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
repository = "https://github.com/solana-labs/solana"
|
repository = "https://github.com/solana-labs/solana"
|
||||||
license = "Apache-2.0"
|
license = "Apache-2.0"
|
||||||
homepage = "https://solana.com/"
|
homepage = "https://solana.com/"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
clap = "2.33.0"
|
clap = "2.33.0"
|
||||||
solana = { path = "../core", version = "0.16.3" }
|
solana = { path = "../core", version = "0.16.4" }
|
||||||
solana-logger = { path = "../logger", version = "0.16.3" }
|
solana-logger = { path = "../logger", version = "0.16.4" }
|
||||||
solana-netutil = { path = "../netutil", version = "0.16.3" }
|
solana-netutil = { path = "../netutil", version = "0.16.4" }
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
cuda = ["solana/cuda"]
|
cuda = ["solana/cuda"]
|
||||||
|
@@ -2,7 +2,7 @@
|
|||||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||||
edition = "2018"
|
edition = "2018"
|
||||||
name = "solana-bench-tps"
|
name = "solana-bench-tps"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
repository = "https://github.com/solana-labs/solana"
|
repository = "https://github.com/solana-labs/solana"
|
||||||
license = "Apache-2.0"
|
license = "Apache-2.0"
|
||||||
homepage = "https://solana.com/"
|
homepage = "https://solana.com/"
|
||||||
@@ -15,14 +15,14 @@ serde = "1.0.92"
|
|||||||
serde_derive = "1.0.92"
|
serde_derive = "1.0.92"
|
||||||
serde_json = "1.0.39"
|
serde_json = "1.0.39"
|
||||||
serde_yaml = "0.8.9"
|
serde_yaml = "0.8.9"
|
||||||
solana = { path = "../core", version = "0.16.3" }
|
solana = { path = "../core", version = "0.16.4" }
|
||||||
solana-client = { path = "../client", version = "0.16.3" }
|
solana-client = { path = "../client", version = "0.16.4" }
|
||||||
solana-drone = { path = "../drone", version = "0.16.3" }
|
solana-drone = { path = "../drone", version = "0.16.4" }
|
||||||
solana-logger = { path = "../logger", version = "0.16.3" }
|
solana-logger = { path = "../logger", version = "0.16.4" }
|
||||||
solana-metrics = { path = "../metrics", version = "0.16.3" }
|
solana-metrics = { path = "../metrics", version = "0.16.4" }
|
||||||
solana-netutil = { path = "../netutil", version = "0.16.3" }
|
solana-netutil = { path = "../netutil", version = "0.16.4" }
|
||||||
solana-runtime = { path = "../runtime", version = "0.16.3" }
|
solana-runtime = { path = "../runtime", version = "0.16.4" }
|
||||||
solana-sdk = { path = "../sdk", version = "0.16.3" }
|
solana-sdk = { path = "../sdk", version = "0.16.4" }
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
cuda = ["solana/cuda"]
|
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.
|
software on Linux x86_64 and mac OS systems.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ export SOLANA_RELEASE=v0.16.0 # skip this line to install the latest release
|
$ 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.0/install/solana-install-init.sh | sh -s
|
$ 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
|
Alternatively build the `solana-install` program from source and run the
|
||||||
@@ -255,3 +255,20 @@ Available fields for VALIDATOR_INFO_ARGS:
|
|||||||
* Website
|
* Website
|
||||||
* Keybase ID
|
* Keybase ID
|
||||||
* Details
|
* 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]
|
[package]
|
||||||
name = "solana-chacha-sys"
|
name = "solana-chacha-sys"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
description = "Solana chacha-sys"
|
description = "Solana chacha-sys"
|
||||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||||
repository = "https://github.com/solana-labs/solana"
|
repository = "https://github.com/solana-labs/solana"
|
||||||
|
@@ -3,7 +3,7 @@ steps:
|
|||||||
timeout_in_minutes: 20
|
timeout_in_minutes: 20
|
||||||
name: "publish docker"
|
name: "publish docker"
|
||||||
- command: "ci/publish-crate.sh"
|
- command: "ci/publish-crate.sh"
|
||||||
timeout_in_minutes: 40
|
timeout_in_minutes: 60
|
||||||
name: "publish crate"
|
name: "publish crate"
|
||||||
branches: "!master"
|
branches: "!master"
|
||||||
- command: "ci/publish-bpf-sdk.sh"
|
- command: "ci/publish-bpf-sdk.sh"
|
||||||
|
@@ -36,6 +36,18 @@ for Cargo_toml in $Cargo_tomls; do
|
|||||||
exit 1
|
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
|
set -x
|
||||||
crate=$(dirname "$Cargo_toml")
|
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"
|
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
|
) || 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
|
numRetries=30
|
||||||
for ((i = 1 ; i <= numRetries ; i++)); do
|
for ((i = 1 ; i <= numRetries ; i++)); do
|
||||||
echo "Attempt ${i} of ${numRetries}"
|
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"
|
echo "Found ${crate_name} version ${expectedCrateVersion} on crates.io"
|
||||||
break
|
break
|
||||||
fi
|
fi
|
||||||
|
@@ -29,6 +29,7 @@ maybeExternalPrimordialAccountsFile=
|
|||||||
maybeLamports=
|
maybeLamports=
|
||||||
maybeLetsEncrypt=
|
maybeLetsEncrypt=
|
||||||
maybeFullnodeAdditionalDiskSize=
|
maybeFullnodeAdditionalDiskSize=
|
||||||
|
maybeNoSnapshot=
|
||||||
|
|
||||||
usage() {
|
usage() {
|
||||||
exitcode=0
|
exitcode=0
|
||||||
@@ -83,6 +84,8 @@ Deploys a CD testnet
|
|||||||
- Attempt to generate a TLS certificate using this DNS name
|
- Attempt to generate a TLS certificate using this DNS name
|
||||||
--fullnode-additional-disk-size-gb [number]
|
--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
|
Note: the SOLANA_METRICS_CONFIG environment variable is used to configure
|
||||||
metrics
|
metrics
|
||||||
@@ -122,6 +125,9 @@ while [[ -n $1 ]]; do
|
|||||||
elif [[ $1 == --machine-type* ]]; then # Bypass quoted long args for GPUs
|
elif [[ $1 == --machine-type* ]]; then # Bypass quoted long args for GPUs
|
||||||
shortArgs+=("$1")
|
shortArgs+=("$1")
|
||||||
shift
|
shift
|
||||||
|
elif [[ $1 = --no-snapshot ]]; then
|
||||||
|
maybeNoSnapshot="$1"
|
||||||
|
shift 1
|
||||||
else
|
else
|
||||||
usage "Unknown long option: $1"
|
usage "Unknown long option: $1"
|
||||||
fi
|
fi
|
||||||
@@ -396,6 +402,11 @@ if ! $skipStart; then
|
|||||||
args+=($maybeLamports)
|
args+=($maybeLamports)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [[ -n $maybeNoSnapshot ]]; then
|
||||||
|
# shellcheck disable=SC2206
|
||||||
|
args+=($maybeNoSnapshot)
|
||||||
|
fi
|
||||||
|
|
||||||
time net/net.sh "${args[@]}"
|
time net/net.sh "${args[@]}"
|
||||||
) || ok=false
|
) || ok=false
|
||||||
|
|
||||||
|
@@ -158,7 +158,6 @@ testnet-demo)
|
|||||||
tds)
|
tds)
|
||||||
CHANNEL_OR_TAG=beta
|
CHANNEL_OR_TAG=beta
|
||||||
CHANNEL_BRANCH=$BETA_CHANNEL
|
CHANNEL_BRANCH=$BETA_CHANNEL
|
||||||
: "${GCE_NODE_COUNT:=3}"
|
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
echo "Error: Invalid TESTNET=$TESTNET"
|
echo "Error: Invalid TESTNET=$TESTNET"
|
||||||
@@ -470,10 +469,74 @@ deploy() {
|
|||||||
(
|
(
|
||||||
set -x
|
set -x
|
||||||
|
|
||||||
EXTERNAL_ACCOUNTS_FILE_URL=https://raw.githubusercontent.com/solana-labs/tour-de-sol/master/stage1/validator.yml
|
# Allow cluster configuration to be overridden from env vars
|
||||||
EXTERNAL_ACCOUNTS_FILE=/tmp/validator.yml
|
|
||||||
|
|
||||||
|
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}
|
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
|
||||||
|
|
||||||
|
|
||||||
# Multiple V100 GPUs are available in us-west1, us-central1 and europe-west4
|
# Multiple V100 GPUs are available in us-west1, us-central1 and europe-west4
|
||||||
# shellcheck disable=SC2068
|
# shellcheck disable=SC2068
|
||||||
@@ -481,24 +544,25 @@ deploy() {
|
|||||||
NO_LEDGER_VERIFY=1 \
|
NO_LEDGER_VERIFY=1 \
|
||||||
NO_VALIDATOR_SANITY=1 \
|
NO_VALIDATOR_SANITY=1 \
|
||||||
ci/testnet-deploy.sh -p tds-solana-com -C gce \
|
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 \
|
-d pd-ssd \
|
||||||
-z us-west1-a \
|
${GCE_CLOUD_ZONES[@]/#/-z } \
|
||||||
-z us-central1-a \
|
-t "$CHANNEL_OR_TAG" \
|
||||||
-z europe-west4-a \
|
-n ${TDS_NODE_COUNT} \
|
||||||
-t "$CHANNEL_OR_TAG" -n "$GCE_NODE_COUNT" -c 1 -P -u \
|
-c ${TDS_CLIENT_COUNT} \
|
||||||
|
-P -u \
|
||||||
-a tds-solana-com --letsencrypt tds.solana.com \
|
-a tds-solana-com --letsencrypt tds.solana.com \
|
||||||
--hashes-per-tick auto \
|
${maybeHashesPerTick} \
|
||||||
${skipCreate:+-e} \
|
${skipCreate:+-e} \
|
||||||
${skipStart:+-s} \
|
${skipStart:+-s} \
|
||||||
${maybeStop:+-S} \
|
${maybeStop:+-S} \
|
||||||
${maybeDelete:+-D} \
|
${maybeDelete:+-D} \
|
||||||
--stake-internal-nodes 1000000000000 \
|
${maybeStakeInternalNodes} \
|
||||||
--external-accounts-file "$EXTERNAL_ACCOUNTS_FILE" \
|
${maybeExternalAccountsFile} \
|
||||||
--lamports 8589934592000000000 \
|
${maybeLamports} \
|
||||||
|
${maybeAdditionalDisk} \
|
||||||
--skip-deploy-update \
|
--skip-deploy-update \
|
||||||
--fullnode-additional-disk-size-gb 32000
|
--no-snapshot
|
||||||
|
|
||||||
)
|
)
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "solana-client"
|
name = "solana-client"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
description = "Solana Client"
|
description = "Solana Client"
|
||||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||||
repository = "https://github.com/solana-labs/solana"
|
repository = "https://github.com/solana-labs/solana"
|
||||||
@@ -19,10 +19,10 @@ reqwest = "0.9.18"
|
|||||||
serde = "1.0.92"
|
serde = "1.0.92"
|
||||||
serde_derive = "1.0.92"
|
serde_derive = "1.0.92"
|
||||||
serde_json = "1.0.39"
|
serde_json = "1.0.39"
|
||||||
solana-netutil = { path = "../netutil", version = "0.16.3" }
|
solana-netutil = { path = "../netutil", version = "0.16.4" }
|
||||||
solana-sdk = { path = "../sdk", version = "0.16.3" }
|
solana-sdk = { path = "../sdk", version = "0.16.4" }
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
jsonrpc-core = "12.0.0"
|
jsonrpc-core = "12.0.0"
|
||||||
jsonrpc-http-server = "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]
|
[package]
|
||||||
name = "solana"
|
name = "solana"
|
||||||
description = "Blockchain, Rebuilt for Scale"
|
description = "Blockchain, Rebuilt for Scale"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
documentation = "https://docs.rs/solana"
|
documentation = "https://docs.rs/solana"
|
||||||
homepage = "https://solana.com/"
|
homepage = "https://solana.com/"
|
||||||
readme = "../README.md"
|
readme = "../README.md"
|
||||||
@@ -45,27 +45,27 @@ rocksdb = "0.11.0"
|
|||||||
serde = "1.0.92"
|
serde = "1.0.92"
|
||||||
serde_derive = "1.0.92"
|
serde_derive = "1.0.92"
|
||||||
serde_json = "1.0.39"
|
serde_json = "1.0.39"
|
||||||
solana-budget-api = { path = "../programs/budget_api", 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.3" }
|
solana-budget-program = { path = "../programs/budget_program", version = "0.16.4" }
|
||||||
solana-chacha-sys = { path = "../chacha-sys", version = "0.16.3" }
|
solana-chacha-sys = { path = "../chacha-sys", version = "0.16.4" }
|
||||||
solana-client = { path = "../client", version = "0.16.3" }
|
solana-client = { path = "../client", version = "0.16.4" }
|
||||||
solana-config-program = { path = "../programs/config_program", version = "0.16.3" }
|
solana-config-program = { path = "../programs/config_program", version = "0.16.4" }
|
||||||
solana-drone = { path = "../drone", version = "0.16.3" }
|
solana-drone = { path = "../drone", version = "0.16.4" }
|
||||||
solana-ed25519-dalek = "0.2.0"
|
solana-ed25519-dalek = "0.2.0"
|
||||||
solana-exchange-program = { path = "../programs/exchange_program", version = "0.16.3" }
|
solana-exchange-program = { path = "../programs/exchange_program", version = "0.16.4" }
|
||||||
solana-kvstore = { path = "../kvstore", version = "0.16.3", optional = true }
|
solana-kvstore = { path = "../kvstore", version = "0.16.4", optional = true }
|
||||||
solana-logger = { path = "../logger", version = "0.16.3" }
|
solana-logger = { path = "../logger", version = "0.16.4" }
|
||||||
solana-metrics = { path = "../metrics", version = "0.16.3" }
|
solana-metrics = { path = "../metrics", version = "0.16.4" }
|
||||||
solana-netutil = { path = "../netutil", version = "0.16.3" }
|
solana-netutil = { path = "../netutil", version = "0.16.4" }
|
||||||
solana-runtime = { path = "../runtime", version = "0.16.3" }
|
solana-runtime = { path = "../runtime", version = "0.16.4" }
|
||||||
solana-sdk = { path = "../sdk", version = "0.16.3" }
|
solana-sdk = { path = "../sdk", version = "0.16.4" }
|
||||||
solana-stake-api = { path = "../programs/stake_api", version = "0.16.3" }
|
solana-stake-api = { path = "../programs/stake_api", version = "0.16.4" }
|
||||||
solana-stake-program = { path = "../programs/stake_program", version = "0.16.3" }
|
solana-stake-program = { path = "../programs/stake_program", version = "0.16.4" }
|
||||||
solana-storage-api = { path = "../programs/storage_api", version = "0.16.3" }
|
solana-storage-api = { path = "../programs/storage_api", version = "0.16.4" }
|
||||||
solana-storage-program = { path = "../programs/storage_program", version = "0.16.3" }
|
solana-storage-program = { path = "../programs/storage_program", version = "0.16.4" }
|
||||||
solana-vote-api = { path = "../programs/vote_api", version = "0.16.3" }
|
solana-vote-api = { path = "../programs/vote_api", version = "0.16.4" }
|
||||||
solana-vote-program = { path = "../programs/vote_program", version = "0.16.3" }
|
solana-vote-program = { path = "../programs/vote_program", version = "0.16.4" }
|
||||||
solana-vote-signer = { path = "../vote-signer", version = "0.16.3" }
|
solana-vote-signer = { path = "../vote-signer", version = "0.16.4" }
|
||||||
sys-info = "0.5.7"
|
sys-info = "0.5.7"
|
||||||
tokio = "0.1"
|
tokio = "0.1"
|
||||||
tokio-codec = "0.1"
|
tokio-codec = "0.1"
|
||||||
|
@@ -418,7 +418,7 @@ impl BankingStage {
|
|||||||
// the likelihood of any single thread getting starved and processing old ids.
|
// 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
|
// TODO: Banking stage threads should be prioritized to complete faster then this queue
|
||||||
// expires.
|
// 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);
|
bank.load_and_execute_transactions(txs, lock_results, MAX_RECENT_BLOCKHASHES / 2);
|
||||||
let load_execute_time = now.elapsed();
|
let load_execute_time = now.elapsed();
|
||||||
|
|
||||||
@@ -432,7 +432,7 @@ impl BankingStage {
|
|||||||
|
|
||||||
let commit_time = {
|
let commit_time = {
|
||||||
let now = Instant::now();
|
let now = Instant::now();
|
||||||
bank.commit_transactions(txs, &loaded_accounts, &results);
|
bank.commit_transactions(txs, &loaded_accounts, &results, tx_count, signature_count);
|
||||||
now.elapsed()
|
now.elapsed()
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -142,6 +142,7 @@ pub fn process_blocktree(
|
|||||||
genesis_block: &GenesisBlock,
|
genesis_block: &GenesisBlock,
|
||||||
blocktree: &Blocktree,
|
blocktree: &Blocktree,
|
||||||
account_paths: Option<String>,
|
account_paths: Option<String>,
|
||||||
|
verify_ledger: bool,
|
||||||
) -> result::Result<(BankForks, Vec<BankForksInfo>, LeaderScheduleCache), BlocktreeProcessorError> {
|
) -> result::Result<(BankForks, Vec<BankForksInfo>, LeaderScheduleCache), BlocktreeProcessorError> {
|
||||||
let now = Instant::now();
|
let now = Instant::now();
|
||||||
info!("processing ledger...");
|
info!("processing ledger...");
|
||||||
@@ -204,7 +205,7 @@ pub fn process_blocktree(
|
|||||||
}
|
}
|
||||||
|
|
||||||
if !entries.is_empty() {
|
if !entries.is_empty() {
|
||||||
if !entries.verify(&last_entry_hash) {
|
if verify_ledger && !entries.verify(&last_entry_hash) {
|
||||||
warn!(
|
warn!(
|
||||||
"Ledger proof of history failed at slot: {}, entry: {}",
|
"Ledger proof of history failed at slot: {}, entry: {}",
|
||||||
slot, entry_height
|
slot, entry_height
|
||||||
@@ -373,7 +374,7 @@ pub mod tests {
|
|||||||
fill_blocktree_slot_with_ticks(&blocktree, ticks_per_slot, 2, 1, blockhash);
|
fill_blocktree_slot_with_ticks(&blocktree, ticks_per_slot, 2, 1, blockhash);
|
||||||
|
|
||||||
let (mut _bank_forks, bank_forks_info, _) =
|
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!(bank_forks_info.len(), 1);
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
@@ -432,7 +433,7 @@ pub mod tests {
|
|||||||
blocktree.set_roots(&[4, 1, 0]).unwrap();
|
blocktree.set_roots(&[4, 1, 0]).unwrap();
|
||||||
|
|
||||||
let (bank_forks, bank_forks_info, _) =
|
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
|
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();
|
blocktree.set_roots(&[0, 1]).unwrap();
|
||||||
|
|
||||||
let (bank_forks, bank_forks_info, _) =
|
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!(bank_forks_info.len(), 2); // There are two forks
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
@@ -587,7 +588,7 @@ pub mod tests {
|
|||||||
|
|
||||||
// Check that we can properly restart the ledger / leader scheduler doesn't fail
|
// Check that we can properly restart the ledger / leader scheduler doesn't fail
|
||||||
let (bank_forks, bank_forks_info, _) =
|
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!(bank_forks_info.len(), 1); // There is one fork
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
@@ -723,7 +724,7 @@ pub mod tests {
|
|||||||
.unwrap();
|
.unwrap();
|
||||||
let entry_height = genesis_block.ticks_per_slot + entries.len() as u64;
|
let entry_height = genesis_block.ticks_per_slot + entries.len() as u64;
|
||||||
let (bank_forks, bank_forks_info, _) =
|
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_info.len(), 1);
|
||||||
assert_eq!(bank_forks.root(), 0);
|
assert_eq!(bank_forks.root(), 0);
|
||||||
@@ -754,7 +755,7 @@ pub mod tests {
|
|||||||
|
|
||||||
let blocktree = Blocktree::open(&ledger_path).unwrap();
|
let blocktree = Blocktree::open(&ledger_path).unwrap();
|
||||||
let (bank_forks, bank_forks_info, _) =
|
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_info.len(), 1);
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
|
@@ -176,6 +176,7 @@ impl LocalCluster {
|
|||||||
&leader_voting_keypair,
|
&leader_voting_keypair,
|
||||||
&leader_storage_keypair,
|
&leader_storage_keypair,
|
||||||
None,
|
None,
|
||||||
|
true,
|
||||||
&config.validator_configs[0],
|
&config.validator_configs[0],
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -308,6 +309,7 @@ impl LocalCluster {
|
|||||||
&voting_keypair,
|
&voting_keypair,
|
||||||
&storage_keypair,
|
&storage_keypair,
|
||||||
Some(&self.entry_point_info),
|
Some(&self.entry_point_info),
|
||||||
|
true,
|
||||||
&validator_config,
|
&validator_config,
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -561,6 +563,7 @@ impl Cluster for LocalCluster {
|
|||||||
&fullnode_info.voting_keypair,
|
&fullnode_info.voting_keypair,
|
||||||
&fullnode_info.storage_keypair,
|
&fullnode_info.storage_keypair,
|
||||||
None,
|
None,
|
||||||
|
true,
|
||||||
config,
|
config,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@@ -84,6 +84,7 @@ impl Validator {
|
|||||||
voting_keypair: &Arc<Keypair>,
|
voting_keypair: &Arc<Keypair>,
|
||||||
storage_keypair: &Arc<Keypair>,
|
storage_keypair: &Arc<Keypair>,
|
||||||
entrypoint_info_option: Option<&ContactInfo>,
|
entrypoint_info_option: Option<&ContactInfo>,
|
||||||
|
verify_ledger: bool,
|
||||||
config: &ValidatorConfig,
|
config: &ValidatorConfig,
|
||||||
) -> Self {
|
) -> Self {
|
||||||
warn!("CUDA is {}abled", if cfg!(cuda) { "en" } else { "dis" });
|
warn!("CUDA is {}abled", if cfg!(cuda) { "en" } else { "dis" });
|
||||||
@@ -104,6 +105,7 @@ impl Validator {
|
|||||||
ledger_path,
|
ledger_path,
|
||||||
config.account_paths.clone(),
|
config.account_paths.clone(),
|
||||||
config.snapshot_path.clone(),
|
config.snapshot_path.clone(),
|
||||||
|
verify_ledger,
|
||||||
);
|
);
|
||||||
|
|
||||||
let leader_schedule_cache = Arc::new(leader_schedule_cache);
|
let leader_schedule_cache = Arc::new(leader_schedule_cache);
|
||||||
@@ -301,6 +303,7 @@ fn get_bank_forks(
|
|||||||
blocktree: &Blocktree,
|
blocktree: &Blocktree,
|
||||||
account_paths: Option<String>,
|
account_paths: Option<String>,
|
||||||
snapshot_path: Option<String>,
|
snapshot_path: Option<String>,
|
||||||
|
verify_ledger: bool,
|
||||||
) -> (BankForks, Vec<BankForksInfo>, LeaderScheduleCache) {
|
) -> (BankForks, Vec<BankForksInfo>, LeaderScheduleCache) {
|
||||||
if snapshot_path.is_some() {
|
if snapshot_path.is_some() {
|
||||||
let bank_forks =
|
let bank_forks =
|
||||||
@@ -318,7 +321,12 @@ fn get_bank_forks(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
let (mut bank_forks, bank_forks_info, leader_schedule_cache) =
|
let (mut bank_forks, bank_forks_info, leader_schedule_cache) =
|
||||||
blocktree_processor::process_blocktree(&genesis_block, &blocktree, account_paths)
|
blocktree_processor::process_blocktree(
|
||||||
|
&genesis_block,
|
||||||
|
&blocktree,
|
||||||
|
account_paths,
|
||||||
|
verify_ledger,
|
||||||
|
)
|
||||||
.expect("process_blocktree failed");
|
.expect("process_blocktree failed");
|
||||||
if snapshot_path.is_some() {
|
if snapshot_path.is_some() {
|
||||||
bank_forks.set_snapshot_config(snapshot_path);
|
bank_forks.set_snapshot_config(snapshot_path);
|
||||||
@@ -331,6 +339,7 @@ pub fn new_banks_from_blocktree(
|
|||||||
blocktree_path: &str,
|
blocktree_path: &str,
|
||||||
account_paths: Option<String>,
|
account_paths: Option<String>,
|
||||||
snapshot_path: Option<String>,
|
snapshot_path: Option<String>,
|
||||||
|
verify_ledger: bool,
|
||||||
) -> (
|
) -> (
|
||||||
BankForks,
|
BankForks,
|
||||||
Vec<BankForksInfo>,
|
Vec<BankForksInfo>,
|
||||||
@@ -347,8 +356,13 @@ pub fn new_banks_from_blocktree(
|
|||||||
Blocktree::open_with_signal(blocktree_path)
|
Blocktree::open_with_signal(blocktree_path)
|
||||||
.expect("Expected to successfully open database ledger");
|
.expect("Expected to successfully open database ledger");
|
||||||
|
|
||||||
let (bank_forks, bank_forks_info, leader_schedule_cache) =
|
let (bank_forks, bank_forks_info, leader_schedule_cache) = get_bank_forks(
|
||||||
get_bank_forks(&genesis_block, &blocktree, account_paths, snapshot_path);
|
&genesis_block,
|
||||||
|
&blocktree,
|
||||||
|
account_paths,
|
||||||
|
snapshot_path,
|
||||||
|
verify_ledger,
|
||||||
|
);
|
||||||
|
|
||||||
(
|
(
|
||||||
bank_forks,
|
bank_forks,
|
||||||
@@ -412,6 +426,7 @@ pub fn new_validator_for_tests() -> (Validator, ContactInfo, Keypair, String) {
|
|||||||
&voting_keypair,
|
&voting_keypair,
|
||||||
&storage_keypair,
|
&storage_keypair,
|
||||||
None,
|
None,
|
||||||
|
true,
|
||||||
&ValidatorConfig::default(),
|
&ValidatorConfig::default(),
|
||||||
);
|
);
|
||||||
discover_cluster(&contact_info.gossip, 1).expect("Node startup failed");
|
discover_cluster(&contact_info.gossip, 1).expect("Node startup failed");
|
||||||
@@ -447,6 +462,7 @@ mod tests {
|
|||||||
&voting_keypair,
|
&voting_keypair,
|
||||||
&storage_keypair,
|
&storage_keypair,
|
||||||
Some(&leader_node.info),
|
Some(&leader_node.info),
|
||||||
|
true,
|
||||||
&ValidatorConfig::default(),
|
&ValidatorConfig::default(),
|
||||||
);
|
);
|
||||||
validator.close().unwrap();
|
validator.close().unwrap();
|
||||||
@@ -478,6 +494,7 @@ mod tests {
|
|||||||
&voting_keypair,
|
&voting_keypair,
|
||||||
&storage_keypair,
|
&storage_keypair,
|
||||||
Some(&leader_node.info),
|
Some(&leader_node.info),
|
||||||
|
true,
|
||||||
&ValidatorConfig::default(),
|
&ValidatorConfig::default(),
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
|
@@ -98,7 +98,7 @@ fn test_replay() {
|
|||||||
completed_slots_receiver,
|
completed_slots_receiver,
|
||||||
leader_schedule_cache,
|
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();
|
let working_bank = bank_forks.working_bank();
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
working_bank.get_balance(&mint_keypair.pubkey()),
|
working_bank.get_balance(&mint_keypair.pubkey()),
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "solana-drone"
|
name = "solana-drone"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
description = "Solana Drone"
|
description = "Solana Drone"
|
||||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||||
repository = "https://github.com/solana-labs/solana"
|
repository = "https://github.com/solana-labs/solana"
|
||||||
@@ -20,9 +20,9 @@ clap = "2.33"
|
|||||||
log = "0.4.2"
|
log = "0.4.2"
|
||||||
serde = "1.0.92"
|
serde = "1.0.92"
|
||||||
serde_derive = "1.0.92"
|
serde_derive = "1.0.92"
|
||||||
solana-logger = { path = "../logger", version = "0.16.3" }
|
solana-logger = { path = "../logger", version = "0.16.4" }
|
||||||
solana-metrics = { path = "../metrics", version = "0.16.3" }
|
solana-metrics = { path = "../metrics", version = "0.16.4" }
|
||||||
solana-sdk = { path = "../sdk", version = "0.16.3" }
|
solana-sdk = { path = "../sdk", version = "0.16.4" }
|
||||||
tokio = "0.1"
|
tokio = "0.1"
|
||||||
tokio-codec = "0.1"
|
tokio-codec = "0.1"
|
||||||
|
|
||||||
|
@@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.com>"]
|
|||||||
edition = "2018"
|
edition = "2018"
|
||||||
name = "solana-genesis"
|
name = "solana-genesis"
|
||||||
description = "Blockchain, Rebuilt for Scale"
|
description = "Blockchain, Rebuilt for Scale"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
repository = "https://github.com/solana-labs/solana"
|
repository = "https://github.com/solana-labs/solana"
|
||||||
license = "Apache-2.0"
|
license = "Apache-2.0"
|
||||||
homepage = "https://solana.com/"
|
homepage = "https://solana.com/"
|
||||||
@@ -15,24 +15,24 @@ serde = "1.0.92"
|
|||||||
serde_derive = "1.0.92"
|
serde_derive = "1.0.92"
|
||||||
serde_json = "1.0.39"
|
serde_json = "1.0.39"
|
||||||
serde_yaml = "0.8.9"
|
serde_yaml = "0.8.9"
|
||||||
solana = { path = "../core", version = "0.16.3" }
|
solana = { path = "../core", version = "0.16.4" }
|
||||||
solana-bpf-loader-api = { path = "../programs/bpf_loader_api", version = "0.16.3" }
|
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.3" }
|
solana-bpf-loader-program = { path = "../programs/bpf_loader_program", version = "0.16.4" }
|
||||||
solana-budget-api = { path = "../programs/budget_api", 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.3" }
|
solana-budget-program = { path = "../programs/budget_program", version = "0.16.4" }
|
||||||
solana-config-api = { path = "../programs/config_api", version = "0.16.3" }
|
solana-config-api = { path = "../programs/config_api", version = "0.16.4" }
|
||||||
solana-config-program = { path = "../programs/config_program", version = "0.16.3" }
|
solana-config-program = { path = "../programs/config_program", version = "0.16.4" }
|
||||||
solana-exchange-api = { path = "../programs/exchange_api", version = "0.16.3" }
|
solana-exchange-api = { path = "../programs/exchange_api", version = "0.16.4" }
|
||||||
solana-exchange-program = { path = "../programs/exchange_program", version = "0.16.3" }
|
solana-exchange-program = { path = "../programs/exchange_program", version = "0.16.4" }
|
||||||
solana-sdk = { path = "../sdk", version = "0.16.3" }
|
solana-sdk = { path = "../sdk", version = "0.16.4" }
|
||||||
solana-stake-api = { path = "../programs/stake_api", version = "0.16.3" }
|
solana-stake-api = { path = "../programs/stake_api", version = "0.16.4" }
|
||||||
solana-stake-program = { path = "../programs/stake_program", version = "0.16.3" }
|
solana-stake-program = { path = "../programs/stake_program", version = "0.16.4" }
|
||||||
solana-storage-api = { path = "../programs/storage_api", version = "0.16.3" }
|
solana-storage-api = { path = "../programs/storage_api", version = "0.16.4" }
|
||||||
solana-storage-program = { path = "../programs/storage_program", version = "0.16.3" }
|
solana-storage-program = { path = "../programs/storage_program", version = "0.16.4" }
|
||||||
solana-token-api = { path = "../programs/token_api", version = "0.16.3" }
|
solana-token-api = { path = "../programs/token_api", version = "0.16.4" }
|
||||||
solana-token-program = { path = "../programs/token_program", version = "0.16.3" }
|
solana-token-program = { path = "../programs/token_program", version = "0.16.4" }
|
||||||
solana-vote-api = { path = "../programs/vote_api", version = "0.16.3" }
|
solana-vote-api = { path = "../programs/vote_api", version = "0.16.4" }
|
||||||
solana-vote-program = { path = "../programs/vote_program", version = "0.16.3" }
|
solana-vote-program = { path = "../programs/vote_program", version = "0.16.4" }
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
hashbrown = "0.3.0"
|
hashbrown = "0.3.0"
|
||||||
|
@@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.com>"]
|
|||||||
edition = "2018"
|
edition = "2018"
|
||||||
name = "solana-gossip"
|
name = "solana-gossip"
|
||||||
description = "Blockchain, Rebuilt for Scale"
|
description = "Blockchain, Rebuilt for Scale"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
repository = "https://github.com/solana-labs/solana"
|
repository = "https://github.com/solana-labs/solana"
|
||||||
license = "Apache-2.0"
|
license = "Apache-2.0"
|
||||||
homepage = "https://solana.com/"
|
homepage = "https://solana.com/"
|
||||||
@@ -11,10 +11,10 @@ homepage = "https://solana.com/"
|
|||||||
[dependencies]
|
[dependencies]
|
||||||
clap = "2.33.0"
|
clap = "2.33.0"
|
||||||
env_logger = "0.6.1"
|
env_logger = "0.6.1"
|
||||||
solana = { path = "../core", version = "0.16.3" }
|
solana = { path = "../core", version = "0.16.4" }
|
||||||
solana-client = { path = "../client", version = "0.16.3" }
|
solana-client = { path = "../client", version = "0.16.4" }
|
||||||
solana-netutil = { path = "../netutil", version = "0.16.3" }
|
solana-netutil = { path = "../netutil", version = "0.16.4" }
|
||||||
solana-sdk = { path = "../sdk", version = "0.16.3" }
|
solana-sdk = { path = "../sdk", version = "0.16.4" }
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
cuda = []
|
cuda = []
|
||||||
|
@@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.com>"]
|
|||||||
edition = "2018"
|
edition = "2018"
|
||||||
name = "solana-install"
|
name = "solana-install"
|
||||||
description = "The solana cluster software installer"
|
description = "The solana cluster software installer"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
repository = "https://github.com/solana-labs/solana"
|
repository = "https://github.com/solana-labs/solana"
|
||||||
license = "Apache-2.0"
|
license = "Apache-2.0"
|
||||||
homepage = "https://solana.com/"
|
homepage = "https://solana.com/"
|
||||||
@@ -31,10 +31,10 @@ ring = "0.13.2"
|
|||||||
serde = "1.0.92"
|
serde = "1.0.92"
|
||||||
serde_derive = "1.0.92"
|
serde_derive = "1.0.92"
|
||||||
serde_yaml = "0.8.9"
|
serde_yaml = "0.8.9"
|
||||||
solana-client = { path = "../client", version = "0.16.3" }
|
solana-client = { path = "../client", version = "0.16.4" }
|
||||||
solana-config-api = { path = "../programs/config_api", version = "0.16.3" }
|
solana-config-api = { path = "../programs/config_api", version = "0.16.4" }
|
||||||
solana-logger = { path = "../logger", version = "0.16.3" }
|
solana-logger = { path = "../logger", version = "0.16.4" }
|
||||||
solana-sdk = { path = "../sdk", version = "0.16.3" }
|
solana-sdk = { path = "../sdk", version = "0.16.4" }
|
||||||
tar = "0.4.26"
|
tar = "0.4.26"
|
||||||
tempdir = "0.3.7"
|
tempdir = "0.3.7"
|
||||||
url = "1.7.2"
|
url = "1.7.2"
|
||||||
|
@@ -245,7 +245,7 @@ fn get_update_manifest(
|
|||||||
let mut data = rpc_client
|
let mut data = rpc_client
|
||||||
.get_account_data(update_manifest_pubkey)
|
.get_account_data(update_manifest_pubkey)
|
||||||
.map_err(|err| format!("Unable to fetch update manifest: {}", err))?;
|
.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 =
|
let signed_update_manifest =
|
||||||
SignedUpdateManifest::deserialize(update_manifest_pubkey, &data)
|
SignedUpdateManifest::deserialize(update_manifest_pubkey, &data)
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "solana-keygen"
|
name = "solana-keygen"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
description = "Solana key generation utility"
|
description = "Solana key generation utility"
|
||||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||||
repository = "https://github.com/solana-labs/solana"
|
repository = "https://github.com/solana-labs/solana"
|
||||||
@@ -15,7 +15,7 @@ cuda = []
|
|||||||
[dependencies]
|
[dependencies]
|
||||||
clap = "2.33"
|
clap = "2.33"
|
||||||
dirs = "2.0.1"
|
dirs = "2.0.1"
|
||||||
solana-sdk = { path = "../sdk", version = "0.16.3" }
|
solana-sdk = { path = "../sdk", version = "0.16.4" }
|
||||||
|
|
||||||
[[bin]]
|
[[bin]]
|
||||||
name = "solana-keygen"
|
name = "solana-keygen"
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "solana-kvstore"
|
name = "solana-kvstore"
|
||||||
description = "Embedded Key-Value store for solana"
|
description = "Embedded Key-Value store for solana"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
homepage = "https://solana.com/"
|
homepage = "https://solana.com/"
|
||||||
repository = "https://github.com/solana-labs/solana"
|
repository = "https://github.com/solana-labs/solana"
|
||||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||||
|
@@ -3,18 +3,21 @@ authors = ["Solana Maintainers <maintainers@solana.com>"]
|
|||||||
edition = "2018"
|
edition = "2018"
|
||||||
name = "solana-ledger-tool"
|
name = "solana-ledger-tool"
|
||||||
description = "Blockchain, Rebuilt for Scale"
|
description = "Blockchain, Rebuilt for Scale"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
repository = "https://github.com/solana-labs/solana"
|
repository = "https://github.com/solana-labs/solana"
|
||||||
license = "Apache-2.0"
|
license = "Apache-2.0"
|
||||||
homepage = "https://solana.com/"
|
homepage = "https://solana.com/"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
clap = "2.33.0"
|
clap = "2.33.0"
|
||||||
serde_json = "1.0.39"
|
serde = "1.0.94"
|
||||||
solana = { path = "../core", version = "0.16.3" }
|
serde_derive = "1.0.94"
|
||||||
solana-logger = { path = "../logger", version = "0.16.3" }
|
serde_json = "1.0.40"
|
||||||
solana-runtime = { path = "../runtime", version = "0.16.3" }
|
serde_yaml = "0.8.9"
|
||||||
solana-sdk = { path = "../sdk", version = "0.16.3" }
|
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]
|
[dev-dependencies]
|
||||||
assert_cmd = "0.11"
|
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::Blocktree;
|
||||||
use solana::blocktree_processor::process_blocktree;
|
use solana::blocktree_processor::process_blocktree;
|
||||||
use solana_sdk::genesis_block::GenesisBlock;
|
use solana_sdk::genesis_block::GenesisBlock;
|
||||||
|
use std::collections::BTreeMap;
|
||||||
|
use std::fs::File;
|
||||||
use std::io::{stdout, Write};
|
use std::io::{stdout, Write};
|
||||||
use std::process::exit;
|
use std::process::exit;
|
||||||
|
use std::str::FromStr;
|
||||||
|
|
||||||
#[derive(PartialEq)]
|
#[derive(PartialEq)]
|
||||||
enum LedgerOutputMethod {
|
enum LedgerOutputMethod {
|
||||||
@@ -58,6 +61,7 @@ fn output_ledger(blocktree: Blocktree, starting_slot: u64, method: LedgerOutputM
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
|
const DEFAULT_ROOT_COUNT: &str = "1";
|
||||||
solana_logger::setup();
|
solana_logger::setup();
|
||||||
let matches = App::new(crate_name!())
|
let matches = App::new(crate_name!())
|
||||||
.about(crate_description!())
|
.about(crate_description!())
|
||||||
@@ -82,6 +86,36 @@ fn main() {
|
|||||||
.subcommand(SubCommand::with_name("print").about("Print the ledger"))
|
.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("json").about("Print the ledger in JSON format"))
|
||||||
.subcommand(SubCommand::with_name("verify").about("Verify the ledger's PoH"))
|
.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();
|
.get_matches();
|
||||||
|
|
||||||
let ledger_path = matches.value_of("ledger").unwrap();
|
let ledger_path = matches.value_of("ledger").unwrap();
|
||||||
@@ -113,7 +147,7 @@ fn main() {
|
|||||||
}
|
}
|
||||||
("verify", _) => {
|
("verify", _) => {
|
||||||
println!("Verifying ledger...");
|
println!("Verifying ledger...");
|
||||||
match process_blocktree(&genesis_block, &blocktree, None) {
|
match process_blocktree(&genesis_block, &blocktree, None, true) {
|
||||||
Ok((_bank_forks, bank_forks_info, _)) => {
|
Ok((_bank_forks, bank_forks_info, _)) => {
|
||||||
println!("{:?}", 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());
|
eprintln!("{}", matches.usage());
|
||||||
exit(1);
|
exit(1);
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "solana-logger"
|
name = "solana-logger"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
description = "Solana Logger"
|
description = "Solana Logger"
|
||||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||||
repository = "https://github.com/solana-labs/solana"
|
repository = "https://github.com/solana-labs/solana"
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "solana-merkle-tree"
|
name = "solana-merkle-tree"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
description = "Solana Merkle Tree"
|
description = "Solana Merkle Tree"
|
||||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||||
repository = "https://github.com/solana-labs/solana"
|
repository = "https://github.com/solana-labs/solana"
|
||||||
@@ -9,7 +9,7 @@ homepage = "https://solana.com/"
|
|||||||
edition = "2018"
|
edition = "2018"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
solana-sdk = { path = "../sdk", version = "0.16.3" }
|
solana-sdk = { path = "../sdk", version = "0.16.4" }
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
hex = "0.3.2"
|
hex = "0.3.2"
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "solana-metrics"
|
name = "solana-metrics"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
description = "Solana Metrics"
|
description = "Solana Metrics"
|
||||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||||
repository = "https://github.com/solana-labs/solana"
|
repository = "https://github.com/solana-labs/solana"
|
||||||
@@ -14,7 +14,7 @@ influx_db_client = "0.3.6"
|
|||||||
lazy_static = "1.3.0"
|
lazy_static = "1.3.0"
|
||||||
log = "0.4.2"
|
log = "0.4.2"
|
||||||
reqwest = "0.9.18"
|
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"
|
sys-info = "0.5.7"
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
|
@@ -60,6 +60,8 @@ Operate a configured testnet
|
|||||||
- Amount to stake internal nodes in genesis block. If set, airdrops are disabled.
|
- Amount to stake internal nodes in genesis block. If set, airdrops are disabled.
|
||||||
--external-accounts-file FILE_PATH
|
--external-accounts-file FILE_PATH
|
||||||
- A YML file with a list of account pubkeys and corresponding stakes for external nodes
|
- 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:
|
sanity/start/update-specific options:
|
||||||
-F - Discard validator nodes that didn't bootup successfully
|
-F - Discard validator nodes that didn't bootup successfully
|
||||||
-o noLedgerVerify - Skip ledger verification
|
-o noLedgerVerify - Skip ledger verification
|
||||||
@@ -97,6 +99,7 @@ numFullnodesRequested=
|
|||||||
externalPrimordialAccountsFile=
|
externalPrimordialAccountsFile=
|
||||||
remoteExternalPrimordialAccountsFile=
|
remoteExternalPrimordialAccountsFile=
|
||||||
stakeNodesInGenesisBlock=
|
stakeNodesInGenesisBlock=
|
||||||
|
maybeNoSnapshot=""
|
||||||
|
|
||||||
command=$1
|
command=$1
|
||||||
[[ -n $command ]] || usage
|
[[ -n $command ]] || usage
|
||||||
@@ -114,6 +117,9 @@ while [[ -n $1 ]]; do
|
|||||||
elif [[ $1 = --lamports ]]; then
|
elif [[ $1 = --lamports ]]; then
|
||||||
genesisOptions="$genesisOptions $1 $2"
|
genesisOptions="$genesisOptions $1 $2"
|
||||||
shift 2
|
shift 2
|
||||||
|
elif [[ $1 = --no-snapshot ]]; then
|
||||||
|
maybeNoSnapshot="$1"
|
||||||
|
shift 1
|
||||||
elif [[ $1 = --deploy-update ]]; then
|
elif [[ $1 = --deploy-update ]]; then
|
||||||
updatePlatforms="$updatePlatforms $2"
|
updatePlatforms="$updatePlatforms $2"
|
||||||
shift 2
|
shift 2
|
||||||
@@ -353,6 +359,7 @@ startBootstrapLeader() {
|
|||||||
$numBenchTpsClients \"$benchTpsExtraArgs\" \
|
$numBenchTpsClients \"$benchTpsExtraArgs\" \
|
||||||
$numBenchExchangeClients \"$benchExchangeExtraArgs\" \
|
$numBenchExchangeClients \"$benchExchangeExtraArgs\" \
|
||||||
\"$genesisOptions\" \
|
\"$genesisOptions\" \
|
||||||
|
$maybeNoSnapshot \
|
||||||
"
|
"
|
||||||
) >> "$logFile" 2>&1 || {
|
) >> "$logFile" 2>&1 || {
|
||||||
cat "$logFile"
|
cat "$logFile"
|
||||||
@@ -402,6 +409,7 @@ startNode() {
|
|||||||
\"$stakeNodesInGenesisBlock\" \
|
\"$stakeNodesInGenesisBlock\" \
|
||||||
$nodeIndex \
|
$nodeIndex \
|
||||||
\"$genesisOptions\" \
|
\"$genesisOptions\" \
|
||||||
|
$maybeNoSnapshot \
|
||||||
"
|
"
|
||||||
) >> "$logFile" 2>&1 &
|
) >> "$logFile" 2>&1 &
|
||||||
declare pid=$!
|
declare pid=$!
|
||||||
|
@@ -19,6 +19,7 @@ benchTpsExtraArgs="${12}"
|
|||||||
numBenchExchangeClients="${13}"
|
numBenchExchangeClients="${13}"
|
||||||
benchExchangeExtraArgs="${14}"
|
benchExchangeExtraArgs="${14}"
|
||||||
genesisOptions="${15}"
|
genesisOptions="${15}"
|
||||||
|
noSnapshot="${16}"
|
||||||
set +x
|
set +x
|
||||||
export RUST_LOG
|
export RUST_LOG
|
||||||
|
|
||||||
@@ -170,6 +171,7 @@ local|tar)
|
|||||||
args+=(--no-airdrop)
|
args+=(--no-airdrop)
|
||||||
fi
|
fi
|
||||||
args+=(--init-complete-file "$initCompleteFile")
|
args+=(--init-complete-file "$initCompleteFile")
|
||||||
|
args+=("$noSnapshot")
|
||||||
nohup ./multinode-demo/validator.sh --bootstrap-leader "${args[@]}" > fullnode.log 2>&1 &
|
nohup ./multinode-demo/validator.sh --bootstrap-leader "${args[@]}" > fullnode.log 2>&1 &
|
||||||
waitForNodeToInit
|
waitForNodeToInit
|
||||||
;;
|
;;
|
||||||
@@ -247,6 +249,7 @@ local|tar)
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
args+=(--init-complete-file "$initCompleteFile")
|
args+=(--init-complete-file "$initCompleteFile")
|
||||||
|
args+=("$noSnapshot")
|
||||||
nohup ./multinode-demo/validator.sh "${args[@]}" > fullnode.log 2>&1 &
|
nohup ./multinode-demo/validator.sh "${args[@]}" > fullnode.log 2>&1 &
|
||||||
waitForNodeToInit
|
waitForNodeToInit
|
||||||
;;
|
;;
|
||||||
@@ -264,6 +267,7 @@ local|tar)
|
|||||||
if [[ $skipSetup != true ]]; then
|
if [[ $skipSetup != true ]]; then
|
||||||
./multinode-demo/clear-config.sh
|
./multinode-demo/clear-config.sh
|
||||||
fi
|
fi
|
||||||
|
args+=("$noSnapshot")
|
||||||
nohup ./multinode-demo/replicator.sh "${args[@]}" > fullnode.log 2>&1 &
|
nohup ./multinode-demo/replicator.sh "${args[@]}" > fullnode.log 2>&1 &
|
||||||
sleep 1
|
sleep 1
|
||||||
;;
|
;;
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "solana-netutil"
|
name = "solana-netutil"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
description = "Solana Network Utilities"
|
description = "Solana Network Utilities"
|
||||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||||
repository = "https://github.com/solana-labs/solana"
|
repository = "https://github.com/solana-labs/solana"
|
||||||
@@ -15,7 +15,7 @@ log = "0.4.2"
|
|||||||
nix = "0.14.1"
|
nix = "0.14.1"
|
||||||
rand = "0.6.1"
|
rand = "0.6.1"
|
||||||
socket2 = "0.3.9"
|
socket2 = "0.3.9"
|
||||||
solana-logger = { path = "../logger", version = "0.16.3" }
|
solana-logger = { path = "../logger", version = "0.16.4" }
|
||||||
tokio = "0.1"
|
tokio = "0.1"
|
||||||
|
|
||||||
[lib]
|
[lib]
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "solana-bpf-programs"
|
name = "solana-bpf-programs"
|
||||||
description = "Blockchain, Rebuilt for Scale"
|
description = "Blockchain, Rebuilt for Scale"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
documentation = "https://docs.rs/solana"
|
documentation = "https://docs.rs/solana"
|
||||||
homepage = "https://solana.com/"
|
homepage = "https://solana.com/"
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
@@ -9,6 +9,7 @@ repository = "https://github.com/solana-labs/solana"
|
|||||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||||
license = "Apache-2.0"
|
license = "Apache-2.0"
|
||||||
edition = "2018"
|
edition = "2018"
|
||||||
|
publish = false
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
bpf_c = []
|
bpf_c = []
|
||||||
@@ -21,10 +22,10 @@ walkdir = "2"
|
|||||||
bincode = "1.1.4"
|
bincode = "1.1.4"
|
||||||
byteorder = "1.3.2"
|
byteorder = "1.3.2"
|
||||||
elf = "0.0.10"
|
elf = "0.0.10"
|
||||||
solana-bpf-loader-api = { path = "../bpf_loader_api", version = "0.16.3" }
|
solana-bpf-loader-api = { path = "../bpf_loader_api", version = "0.16.4" }
|
||||||
solana-logger = { path = "../../logger", version = "0.16.3" }
|
solana-logger = { path = "../../logger", version = "0.16.4" }
|
||||||
solana-runtime = { path = "../../runtime", version = "0.16.3" }
|
solana-runtime = { path = "../../runtime", version = "0.16.4" }
|
||||||
solana-sdk = { path = "../../sdk", version = "0.16.3" }
|
solana-sdk = { path = "../../sdk", version = "0.16.4" }
|
||||||
solana_rbpf = "=0.1.13"
|
solana_rbpf = "=0.1.13"
|
||||||
|
|
||||||
[[bench]]
|
[[bench]]
|
||||||
|
@@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
[package]
|
[package]
|
||||||
name = "solana-bpf-rust-128bit"
|
name = "solana-bpf-rust-128bit"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
description = "Solana BPF iter program written in Rust"
|
description = "Solana BPF iter program written in Rust"
|
||||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||||
repository = "https://github.com/solana-labs/solana"
|
repository = "https://github.com/solana-labs/solana"
|
||||||
@@ -12,8 +12,8 @@ homepage = "https://solana.com/"
|
|||||||
edition = "2018"
|
edition = "2018"
|
||||||
|
|
||||||
[dependencies]
|
[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" }
|
||||||
solana-bpf-rust-128bit-dep = { path = "../128bit_dep", version = "0.16.3" }
|
solana-bpf-rust-128bit-dep = { path = "../128bit_dep", version = "0.16.4" }
|
||||||
|
|
||||||
[workspace]
|
[workspace]
|
||||||
members = []
|
members = []
|
||||||
|
@@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
[package]
|
[package]
|
||||||
name = "solana-bpf-rust-128bit-dep"
|
name = "solana-bpf-rust-128bit-dep"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
description = "Solana BPF many-args-dep program written in Rust"
|
description = "Solana BPF many-args-dep program written in Rust"
|
||||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||||
repository = "https://github.com/solana-labs/solana"
|
repository = "https://github.com/solana-labs/solana"
|
||||||
@@ -12,7 +12,7 @@ homepage = "https://solana.com/"
|
|||||||
edition = "2018"
|
edition = "2018"
|
||||||
|
|
||||||
[dependencies]
|
[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]
|
[workspace]
|
||||||
members = []
|
members = []
|
||||||
|
@@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
[package]
|
[package]
|
||||||
name = "solana-bpf-rust-alloc"
|
name = "solana-bpf-rust-alloc"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
description = "Solana BPF alloc program written in Rust"
|
description = "Solana BPF alloc program written in Rust"
|
||||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||||
repository = "https://github.com/solana-labs/solana"
|
repository = "https://github.com/solana-labs/solana"
|
||||||
@@ -12,7 +12,7 @@ homepage = "https://solana.com/"
|
|||||||
edition = "2018"
|
edition = "2018"
|
||||||
|
|
||||||
[dependencies]
|
[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]
|
[workspace]
|
||||||
members = []
|
members = []
|
||||||
|
@@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
[package]
|
[package]
|
||||||
name = "solana-bpf-rust-dep-crate"
|
name = "solana-bpf-rust-dep-crate"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
description = "Solana BPF dep-crate program written in Rust"
|
description = "Solana BPF dep-crate program written in Rust"
|
||||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||||
repository = "https://github.com/solana-labs/solana"
|
repository = "https://github.com/solana-labs/solana"
|
||||||
@@ -13,7 +13,7 @@ edition = "2018"
|
|||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
byteorder = { version = "1", default-features = false }
|
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]
|
[workspace]
|
||||||
members = []
|
members = []
|
||||||
|
@@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
[package]
|
[package]
|
||||||
name = "solana-bpf-rust-iter"
|
name = "solana-bpf-rust-iter"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
description = "Solana BPF iter program written in Rust"
|
description = "Solana BPF iter program written in Rust"
|
||||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||||
repository = "https://github.com/solana-labs/solana"
|
repository = "https://github.com/solana-labs/solana"
|
||||||
@@ -12,7 +12,7 @@ homepage = "https://solana.com/"
|
|||||||
edition = "2018"
|
edition = "2018"
|
||||||
|
|
||||||
[dependencies]
|
[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]
|
[workspace]
|
||||||
members = []
|
members = []
|
||||||
|
@@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
[package]
|
[package]
|
||||||
name = "solana-bpf-rust-many-args"
|
name = "solana-bpf-rust-many-args"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
description = "Solana BPF many-args program written in Rust"
|
description = "Solana BPF many-args program written in Rust"
|
||||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||||
repository = "https://github.com/solana-labs/solana"
|
repository = "https://github.com/solana-labs/solana"
|
||||||
@@ -12,8 +12,8 @@ homepage = "https://solana.com/"
|
|||||||
edition = "2018"
|
edition = "2018"
|
||||||
|
|
||||||
[dependencies]
|
[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" }
|
||||||
solana-bpf-rust-many-args-dep = { path = "../many_args_dep", version = "0.16.3" }
|
solana-bpf-rust-many-args-dep = { path = "../many_args_dep", version = "0.16.4" }
|
||||||
|
|
||||||
[workspace]
|
[workspace]
|
||||||
members = []
|
members = []
|
||||||
|
@@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
[package]
|
[package]
|
||||||
name = "solana-bpf-rust-many-args-dep"
|
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"
|
description = "Solana BPF many-args-dep program written in Rust"
|
||||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||||
repository = "https://github.com/solana-labs/solana"
|
repository = "https://github.com/solana-labs/solana"
|
||||||
@@ -12,7 +12,7 @@ homepage = "https://solana.com/"
|
|||||||
edition = "2018"
|
edition = "2018"
|
||||||
|
|
||||||
[dependencies]
|
[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]
|
[workspace]
|
||||||
members = []
|
members = []
|
||||||
|
@@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
[package]
|
[package]
|
||||||
name = "solana-bpf-rust-noop"
|
name = "solana-bpf-rust-noop"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
description = "Solana BPF noop program written in Rust"
|
description = "Solana BPF noop program written in Rust"
|
||||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||||
repository = "https://github.com/solana-labs/solana"
|
repository = "https://github.com/solana-labs/solana"
|
||||||
@@ -12,7 +12,7 @@ homepage = "https://solana.com/"
|
|||||||
edition = "2018"
|
edition = "2018"
|
||||||
|
|
||||||
[dependencies]
|
[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]
|
[workspace]
|
||||||
members = []
|
members = []
|
||||||
|
@@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
[package]
|
[package]
|
||||||
name = "solana-bpf-rust-panic"
|
name = "solana-bpf-rust-panic"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
description = "Solana BPF iter program written in Rust"
|
description = "Solana BPF iter program written in Rust"
|
||||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||||
repository = "https://github.com/solana-labs/solana"
|
repository = "https://github.com/solana-labs/solana"
|
||||||
@@ -12,7 +12,7 @@ homepage = "https://solana.com/"
|
|||||||
edition = "2018"
|
edition = "2018"
|
||||||
|
|
||||||
[dependencies]
|
[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]
|
[workspace]
|
||||||
members = []
|
members = []
|
||||||
|
@@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
[package]
|
[package]
|
||||||
name = "solana-bpf-rust-tick-height"
|
name = "solana-bpf-rust-tick-height"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
description = "Solana BPF noop program written in Rust"
|
description = "Solana BPF noop program written in Rust"
|
||||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||||
repository = "https://github.com/solana-labs/solana"
|
repository = "https://github.com/solana-labs/solana"
|
||||||
@@ -14,7 +14,7 @@ edition = "2018"
|
|||||||
[dependencies]
|
[dependencies]
|
||||||
byteorder = { version = "1", default-features = false }
|
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]
|
[workspace]
|
||||||
members = []
|
members = []
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "solana-bpf-loader-api"
|
name = "solana-bpf-loader-api"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
description = "Solana BPF Loader"
|
description = "Solana BPF Loader"
|
||||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||||
repository = "https://github.com/solana-labs/solana"
|
repository = "https://github.com/solana-labs/solana"
|
||||||
@@ -14,8 +14,8 @@ byteorder = "1.3.2"
|
|||||||
libc = "0.2.58"
|
libc = "0.2.58"
|
||||||
log = "0.4.2"
|
log = "0.4.2"
|
||||||
serde = "1.0.92"
|
serde = "1.0.92"
|
||||||
solana-logger = { path = "../../logger", version = "0.16.3" }
|
solana-logger = { path = "../../logger", version = "0.16.4" }
|
||||||
solana-sdk = { path = "../../sdk", version = "0.16.3" }
|
solana-sdk = { path = "../../sdk", version = "0.16.4" }
|
||||||
solana_rbpf = "=0.1.13"
|
solana_rbpf = "=0.1.13"
|
||||||
|
|
||||||
[lib]
|
[lib]
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "solana-bpf-loader-program"
|
name = "solana-bpf-loader-program"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
description = "Solana BPF Loader"
|
description = "Solana BPF Loader"
|
||||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||||
repository = "https://github.com/solana-labs/solana"
|
repository = "https://github.com/solana-labs/solana"
|
||||||
@@ -10,9 +10,9 @@ edition = "2018"
|
|||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
log = "0.4.2"
|
log = "0.4.2"
|
||||||
solana-logger = { path = "../../logger", version = "0.16.3" }
|
solana-logger = { path = "../../logger", version = "0.16.4" }
|
||||||
solana-sdk = { path = "../../sdk", version = "0.16.3" }
|
solana-sdk = { path = "../../sdk", version = "0.16.4" }
|
||||||
solana-bpf-loader-api = { path = "../bpf_loader_api", version = "0.16.3" }
|
solana-bpf-loader-api = { path = "../bpf_loader_api", version = "0.16.4" }
|
||||||
|
|
||||||
[lib]
|
[lib]
|
||||||
crate-type = ["lib", "cdylib"]
|
crate-type = ["lib", "cdylib"]
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "solana-budget-api"
|
name = "solana-budget-api"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
description = "Solana Budget program API"
|
description = "Solana Budget program API"
|
||||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||||
repository = "https://github.com/solana-labs/solana"
|
repository = "https://github.com/solana-labs/solana"
|
||||||
@@ -16,10 +16,10 @@ num-derive = "0.2"
|
|||||||
num-traits = "0.2"
|
num-traits = "0.2"
|
||||||
serde = "1.0.92"
|
serde = "1.0.92"
|
||||||
serde_derive = "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]
|
[dev-dependencies]
|
||||||
solana-runtime = { path = "../../runtime", version = "0.16.3" }
|
solana-runtime = { path = "../../runtime", version = "0.16.4" }
|
||||||
|
|
||||||
[lib]
|
[lib]
|
||||||
crate-type = ["lib"]
|
crate-type = ["lib"]
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "solana-budget-program"
|
name = "solana-budget-program"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
description = "Solana budget program"
|
description = "Solana budget program"
|
||||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||||
repository = "https://github.com/solana-labs/solana"
|
repository = "https://github.com/solana-labs/solana"
|
||||||
@@ -10,9 +10,9 @@ edition = "2018"
|
|||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
log = "0.4.2"
|
log = "0.4.2"
|
||||||
solana-budget-api = { path = "../budget_api", version = "0.16.3" }
|
solana-budget-api = { path = "../budget_api", version = "0.16.4" }
|
||||||
solana-logger = { path = "../../logger", version = "0.16.3" }
|
solana-logger = { path = "../../logger", version = "0.16.4" }
|
||||||
solana-sdk = { path = "../../sdk", version = "0.16.3" }
|
solana-sdk = { path = "../../sdk", version = "0.16.4" }
|
||||||
|
|
||||||
[lib]
|
[lib]
|
||||||
crate-type = ["lib", "cdylib"]
|
crate-type = ["lib", "cdylib"]
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "solana-config-api"
|
name = "solana-config-api"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
description = "config program API"
|
description = "config program API"
|
||||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||||
repository = "https://github.com/solana-labs/solana"
|
repository = "https://github.com/solana-labs/solana"
|
||||||
@@ -13,11 +13,11 @@ bincode = "1.1.4"
|
|||||||
log = "0.4.2"
|
log = "0.4.2"
|
||||||
serde = "1.0.92"
|
serde = "1.0.92"
|
||||||
serde_derive = "1.0.92"
|
serde_derive = "1.0.92"
|
||||||
solana-logger = { path = "../../logger", version = "0.16.3" }
|
solana-logger = { path = "../../logger", version = "0.16.4" }
|
||||||
solana-sdk = { path = "../../sdk", version = "0.16.3" }
|
solana-sdk = { path = "../../sdk", version = "0.16.4" }
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
solana-runtime = { path = "../../runtime", version = "0.16.3" }
|
solana-runtime = { path = "../../runtime", version = "0.16.4" }
|
||||||
|
|
||||||
[lib]
|
[lib]
|
||||||
crate-type = ["lib"]
|
crate-type = ["lib"]
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "solana-config-program"
|
name = "solana-config-program"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
description = "config program"
|
description = "config program"
|
||||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||||
repository = "https://github.com/solana-labs/solana"
|
repository = "https://github.com/solana-labs/solana"
|
||||||
@@ -10,9 +10,9 @@ edition = "2018"
|
|||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
log = "0.4.2"
|
log = "0.4.2"
|
||||||
solana-config-api = { path = "../config_api", version = "0.16.3" }
|
solana-config-api = { path = "../config_api", version = "0.16.4" }
|
||||||
solana-logger = { path = "../../logger", version = "0.16.3" }
|
solana-logger = { path = "../../logger", version = "0.16.4" }
|
||||||
solana-sdk = { path = "../../sdk", version = "0.16.3" }
|
solana-sdk = { path = "../../sdk", version = "0.16.4" }
|
||||||
|
|
||||||
[lib]
|
[lib]
|
||||||
crate-type = ["lib", "cdylib"]
|
crate-type = ["lib", "cdylib"]
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "solana-exchange-api"
|
name = "solana-exchange-api"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
description = "Solana Exchange program API"
|
description = "Solana Exchange program API"
|
||||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||||
repository = "https://github.com/solana-labs/solana"
|
repository = "https://github.com/solana-labs/solana"
|
||||||
@@ -13,12 +13,12 @@ bincode = "1.1.4"
|
|||||||
log = "0.4.2"
|
log = "0.4.2"
|
||||||
serde = "1.0.92"
|
serde = "1.0.92"
|
||||||
serde_derive = "1.0.92"
|
serde_derive = "1.0.92"
|
||||||
solana-logger = { path = "../../logger", version = "0.16.3" }
|
solana-logger = { path = "../../logger", version = "0.16.4" }
|
||||||
solana-metrics = { path = "../../metrics", version = "0.16.3" }
|
solana-metrics = { path = "../../metrics", version = "0.16.4" }
|
||||||
solana-sdk = { path = "../../sdk", version = "0.16.3" }
|
solana-sdk = { path = "../../sdk", version = "0.16.4" }
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
solana-runtime = { path = "../../runtime", version = "0.16.3" }
|
solana-runtime = { path = "../../runtime", version = "0.16.4" }
|
||||||
|
|
||||||
[lib]
|
[lib]
|
||||||
crate-type = ["lib"]
|
crate-type = ["lib"]
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "solana-exchange-program"
|
name = "solana-exchange-program"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
description = "Solana exchange program"
|
description = "Solana exchange program"
|
||||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||||
repository = "https://github.com/solana-labs/solana"
|
repository = "https://github.com/solana-labs/solana"
|
||||||
@@ -10,9 +10,9 @@ edition = "2018"
|
|||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
log = "0.4.2"
|
log = "0.4.2"
|
||||||
solana-exchange-api = { path = "../exchange_api", version = "0.16.3" }
|
solana-exchange-api = { path = "../exchange_api", version = "0.16.4" }
|
||||||
solana-logger = { path = "../../logger", version = "0.16.3" }
|
solana-logger = { path = "../../logger", version = "0.16.4" }
|
||||||
solana-sdk = { path = "../../sdk", version = "0.16.3" }
|
solana-sdk = { path = "../../sdk", version = "0.16.4" }
|
||||||
|
|
||||||
[lib]
|
[lib]
|
||||||
crate-type = ["lib", "cdylib"]
|
crate-type = ["lib", "cdylib"]
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "solana-failure-program"
|
name = "solana-failure-program"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
description = "Solana failure program"
|
description = "Solana failure program"
|
||||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||||
repository = "https://github.com/solana-labs/solana"
|
repository = "https://github.com/solana-labs/solana"
|
||||||
@@ -10,10 +10,10 @@ edition = "2018"
|
|||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
log = "0.4.2"
|
log = "0.4.2"
|
||||||
solana-sdk = { path = "../../sdk", version = "0.16.3" }
|
solana-sdk = { path = "../../sdk", version = "0.16.4" }
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
solana-runtime = { path = "../../runtime", version = "0.16.3" }
|
solana-runtime = { path = "../../runtime", version = "0.16.4" }
|
||||||
|
|
||||||
[lib]
|
[lib]
|
||||||
crate-type = ["cdylib"]
|
crate-type = ["cdylib"]
|
||||||
|
@@ -1,24 +1,23 @@
|
|||||||
use solana_runtime::bank::Bank;
|
use solana_runtime::bank::Bank;
|
||||||
use solana_runtime::bank_client::BankClient;
|
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::client::SyncClient;
|
||||||
use solana_sdk::genesis_block::create_genesis_block;
|
use solana_sdk::genesis_block::create_genesis_block;
|
||||||
use solana_sdk::instruction::InstructionError;
|
use solana_sdk::instruction::InstructionError;
|
||||||
use solana_sdk::native_loader;
|
use solana_sdk::pubkey::Pubkey;
|
||||||
use solana_sdk::signature::KeypairUtil;
|
use solana_sdk::signature::KeypairUtil;
|
||||||
use solana_sdk::transaction::TransactionError;
|
use solana_sdk::transaction::TransactionError;
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_program_native_failure() {
|
fn test_program_native_failure() {
|
||||||
let (genesis_block, alice_keypair) = create_genesis_block(50);
|
let (genesis_block, alice_keypair) = create_genesis_block(50);
|
||||||
|
let program_id = Pubkey::new_rand();
|
||||||
let bank = Bank::new(&genesis_block);
|
let bank = Bank::new(&genesis_block);
|
||||||
let bank_client = BankClient::new(bank);
|
bank.register_native_instruction_processor("solana_failure_program", &program_id);
|
||||||
|
|
||||||
let program = "solana_failure_program".as_bytes().to_vec();
|
|
||||||
let program_id = load_program(&bank_client, &alice_keypair, &native_loader::id(), program);
|
|
||||||
|
|
||||||
// Call user program
|
// Call user program
|
||||||
let instruction = create_invoke_instruction(alice_keypair.pubkey(), program_id, &1u8);
|
let instruction = create_invoke_instruction(alice_keypair.pubkey(), program_id, &1u8);
|
||||||
|
let bank_client = BankClient::new(bank);
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
bank_client
|
bank_client
|
||||||
.send_instruction(&alice_keypair, instruction)
|
.send_instruction(&alice_keypair, instruction)
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "solana-noop-program"
|
name = "solana-noop-program"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
description = "Solana noop program"
|
description = "Solana noop program"
|
||||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||||
repository = "https://github.com/solana-labs/solana"
|
repository = "https://github.com/solana-labs/solana"
|
||||||
@@ -10,8 +10,8 @@ edition = "2018"
|
|||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
log = "0.4.2"
|
log = "0.4.2"
|
||||||
solana-logger = { path = "../../logger", version = "0.16.3" }
|
solana-logger = { path = "../../logger", version = "0.16.4" }
|
||||||
solana-sdk = { path = "../../sdk", version = "0.16.3" }
|
solana-sdk = { path = "../../sdk", version = "0.16.4" }
|
||||||
|
|
||||||
[lib]
|
[lib]
|
||||||
crate-type = ["cdylib"]
|
crate-type = ["cdylib"]
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "solana-stake-api"
|
name = "solana-stake-api"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
description = "Solana Stake program API"
|
description = "Solana Stake program API"
|
||||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||||
repository = "https://github.com/solana-labs/solana"
|
repository = "https://github.com/solana-labs/solana"
|
||||||
@@ -14,10 +14,10 @@ log = "0.4.2"
|
|||||||
rand = "0.6.5"
|
rand = "0.6.5"
|
||||||
serde = "1.0.92"
|
serde = "1.0.92"
|
||||||
serde_derive = "1.0.92"
|
serde_derive = "1.0.92"
|
||||||
solana-logger = { path = "../../logger", version = "0.16.3" }
|
solana-logger = { path = "../../logger", version = "0.16.4" }
|
||||||
solana-metrics = { path = "../../metrics", version = "0.16.3" }
|
solana-metrics = { path = "../../metrics", version = "0.16.4" }
|
||||||
solana-sdk = { path = "../../sdk", version = "0.16.3" }
|
solana-sdk = { path = "../../sdk", version = "0.16.4" }
|
||||||
solana-vote-api = { path = "../vote_api", version = "0.16.3" }
|
solana-vote-api = { path = "../vote_api", version = "0.16.4" }
|
||||||
|
|
||||||
[lib]
|
[lib]
|
||||||
crate-type = ["lib"]
|
crate-type = ["lib"]
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "solana-stake-program"
|
name = "solana-stake-program"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
description = "Solana stake program"
|
description = "Solana stake program"
|
||||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||||
repository = "https://github.com/solana-labs/solana"
|
repository = "https://github.com/solana-labs/solana"
|
||||||
@@ -10,9 +10,9 @@ edition = "2018"
|
|||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
log = "0.4.2"
|
log = "0.4.2"
|
||||||
solana-logger = { path = "../../logger", version = "0.16.3" }
|
solana-logger = { path = "../../logger", version = "0.16.4" }
|
||||||
solana-sdk = { path = "../../sdk", version = "0.16.3" }
|
solana-sdk = { path = "../../sdk", version = "0.16.4" }
|
||||||
solana-stake-api = { path = "../stake_api", version = "0.16.3" }
|
solana-stake-api = { path = "../stake_api", version = "0.16.4" }
|
||||||
|
|
||||||
[lib]
|
[lib]
|
||||||
crate-type = ["lib", "cdylib"]
|
crate-type = ["lib", "cdylib"]
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "solana-storage-api"
|
name = "solana-storage-api"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
description = "Solana Storage program API"
|
description = "Solana Storage program API"
|
||||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||||
repository = "https://github.com/solana-labs/solana"
|
repository = "https://github.com/solana-labs/solana"
|
||||||
@@ -17,8 +17,8 @@ num-derive = "0.2"
|
|||||||
num-traits = "0.2"
|
num-traits = "0.2"
|
||||||
serde = "1.0.92"
|
serde = "1.0.92"
|
||||||
serde_derive = "1.0.92"
|
serde_derive = "1.0.92"
|
||||||
solana-logger = { path = "../../logger", version = "0.16.3" }
|
solana-logger = { path = "../../logger", version = "0.16.4" }
|
||||||
solana-sdk = { path = "../../sdk", version = "0.16.3" }
|
solana-sdk = { path = "../../sdk", version = "0.16.4" }
|
||||||
|
|
||||||
[lib]
|
[lib]
|
||||||
crate-type = ["lib"]
|
crate-type = ["lib"]
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "solana-storage-program"
|
name = "solana-storage-program"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
description = "Solana storage program"
|
description = "Solana storage program"
|
||||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||||
repository = "https://github.com/solana-labs/solana"
|
repository = "https://github.com/solana-labs/solana"
|
||||||
@@ -10,12 +10,12 @@ edition = "2018"
|
|||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
log = "0.4.2"
|
log = "0.4.2"
|
||||||
solana-logger = { path = "../../logger", version = "0.16.3" }
|
solana-logger = { path = "../../logger", version = "0.16.4" }
|
||||||
solana-sdk = { path = "../../sdk", version = "0.16.3" }
|
solana-sdk = { path = "../../sdk", version = "0.16.4" }
|
||||||
solana-storage-api = { path = "../storage_api", version = "0.16.3" }
|
solana-storage-api = { path = "../storage_api", version = "0.16.4" }
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
solana-runtime = { path = "../../runtime", version = "0.16.3" }
|
solana-runtime = { path = "../../runtime", version = "0.16.4" }
|
||||||
assert_matches = "1.3.0"
|
assert_matches = "1.3.0"
|
||||||
bincode = "1.1.4"
|
bincode = "1.1.4"
|
||||||
|
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "solana-token-api"
|
name = "solana-token-api"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
description = "Solana Token API"
|
description = "Solana Token API"
|
||||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||||
repository = "https://github.com/solana-labs/solana"
|
repository = "https://github.com/solana-labs/solana"
|
||||||
@@ -15,8 +15,8 @@ num-derive = "0.2"
|
|||||||
num-traits = "0.2"
|
num-traits = "0.2"
|
||||||
serde = "1.0.92"
|
serde = "1.0.92"
|
||||||
serde_derive = "1.0.92"
|
serde_derive = "1.0.92"
|
||||||
solana-logger = { path = "../../logger", version = "0.16.3" }
|
solana-logger = { path = "../../logger", version = "0.16.4" }
|
||||||
solana-sdk = { path = "../../sdk", version = "0.16.3" }
|
solana-sdk = { path = "../../sdk", version = "0.16.4" }
|
||||||
|
|
||||||
[lib]
|
[lib]
|
||||||
crate-type = ["lib"]
|
crate-type = ["lib"]
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "solana-token-program"
|
name = "solana-token-program"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
description = "Solana token program"
|
description = "Solana token program"
|
||||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||||
repository = "https://github.com/solana-labs/solana"
|
repository = "https://github.com/solana-labs/solana"
|
||||||
@@ -10,9 +10,9 @@ edition = "2018"
|
|||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
log = "0.4.2"
|
log = "0.4.2"
|
||||||
solana-logger = { path = "../../logger", version = "0.16.3" }
|
solana-logger = { path = "../../logger", version = "0.16.4" }
|
||||||
solana-sdk = { path = "../../sdk", version = "0.16.3" }
|
solana-sdk = { path = "../../sdk", version = "0.16.4" }
|
||||||
solana-token-api = { path = "../token_api", version = "0.16.3" }
|
solana-token-api = { path = "../token_api", version = "0.16.4" }
|
||||||
|
|
||||||
[lib]
|
[lib]
|
||||||
crate-type = ["lib", "cdylib"]
|
crate-type = ["lib", "cdylib"]
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "solana-vote-api"
|
name = "solana-vote-api"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
description = "Solana Vote program API"
|
description = "Solana Vote program API"
|
||||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||||
repository = "https://github.com/solana-labs/solana"
|
repository = "https://github.com/solana-labs/solana"
|
||||||
@@ -13,9 +13,9 @@ bincode = "1.1.4"
|
|||||||
log = "0.4.2"
|
log = "0.4.2"
|
||||||
serde = "1.0.92"
|
serde = "1.0.92"
|
||||||
serde_derive = "1.0.92"
|
serde_derive = "1.0.92"
|
||||||
solana-logger = { path = "../../logger", version = "0.16.3" }
|
solana-logger = { path = "../../logger", version = "0.16.4" }
|
||||||
solana-metrics = { path = "../../metrics", version = "0.16.3" }
|
solana-metrics = { path = "../../metrics", version = "0.16.4" }
|
||||||
solana-sdk = { path = "../../sdk", version = "0.16.3" }
|
solana-sdk = { path = "../../sdk", version = "0.16.4" }
|
||||||
|
|
||||||
[lib]
|
[lib]
|
||||||
crate-type = ["lib"]
|
crate-type = ["lib"]
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "solana-vote-program"
|
name = "solana-vote-program"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
description = "Solana Vote program"
|
description = "Solana Vote program"
|
||||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||||
repository = "https://github.com/solana-labs/solana"
|
repository = "https://github.com/solana-labs/solana"
|
||||||
@@ -10,9 +10,9 @@ edition = "2018"
|
|||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
log = "0.4.2"
|
log = "0.4.2"
|
||||||
solana-logger = { path = "../../logger", version = "0.16.3" }
|
solana-logger = { path = "../../logger", version = "0.16.4" }
|
||||||
solana-sdk = { path = "../../sdk", version = "0.16.3" }
|
solana-sdk = { path = "../../sdk", version = "0.16.4" }
|
||||||
solana-vote-api = { path = "../vote_api", version = "0.16.3" }
|
solana-vote-api = { path = "../vote_api", version = "0.16.4" }
|
||||||
|
|
||||||
[lib]
|
[lib]
|
||||||
crate-type = ["lib", "cdylib"]
|
crate-type = ["lib", "cdylib"]
|
||||||
|
@@ -2,17 +2,17 @@
|
|||||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||||
edition = "2018"
|
edition = "2018"
|
||||||
name = "solana-replicator"
|
name = "solana-replicator"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
repository = "https://github.com/solana-labs/solana"
|
repository = "https://github.com/solana-labs/solana"
|
||||||
license = "Apache-2.0"
|
license = "Apache-2.0"
|
||||||
homepage = "https://solana.com/"
|
homepage = "https://solana.com/"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
clap = "2.33.0"
|
clap = "2.33.0"
|
||||||
solana = { path = "../core", version = "0.16.3" }
|
solana = { path = "../core", version = "0.16.4" }
|
||||||
solana-logger = { path = "../logger", version = "0.16.3" }
|
solana-logger = { path = "../logger", version = "0.16.4" }
|
||||||
solana-netutil = { path = "../netutil", version = "0.16.3" }
|
solana-netutil = { path = "../netutil", version = "0.16.4" }
|
||||||
solana-sdk = { path = "../sdk", version = "0.16.3" }
|
solana-sdk = { path = "../sdk", version = "0.16.4" }
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
cuda = ["solana/cuda"]
|
cuda = ["solana/cuda"]
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "solana-runtime"
|
name = "solana-runtime"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
description = "Solana runtime"
|
description = "Solana runtime"
|
||||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||||
repository = "https://github.com/solana-labs/solana"
|
repository = "https://github.com/solana-labs/solana"
|
||||||
@@ -25,17 +25,17 @@ rayon = "1.1.0"
|
|||||||
serde = "1.0.92"
|
serde = "1.0.92"
|
||||||
serde_derive = "1.0.92"
|
serde_derive = "1.0.92"
|
||||||
serde_json = "1.0.38"
|
serde_json = "1.0.38"
|
||||||
solana-logger = { path = "../logger", version = "0.16.3" }
|
solana-logger = { path = "../logger", version = "0.16.4" }
|
||||||
solana-metrics = { path = "../metrics", version = "0.16.3" }
|
solana-metrics = { path = "../metrics", version = "0.16.4" }
|
||||||
solana-bpf-loader-api = { path = "../programs/bpf_loader_api", version = "0.16.3" }
|
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.3" }
|
solana-bpf-loader-program = { path = "../programs/bpf_loader_program", version = "0.16.4" }
|
||||||
solana-noop-program = { path = "../programs/noop_program", version = "0.16.3" }
|
solana-noop-program = { path = "../programs/noop_program", version = "0.16.4" }
|
||||||
solana-sdk = { path = "../sdk", version = "0.16.3" }
|
solana-sdk = { path = "../sdk", version = "0.16.4" }
|
||||||
solana-stake-api = { path = "../programs/stake_api", version = "0.16.3" }
|
solana-stake-api = { path = "../programs/stake_api", version = "0.16.4" }
|
||||||
solana-stake-program = { path = "../programs/stake_program", version = "0.16.3" }
|
solana-stake-program = { path = "../programs/stake_program", version = "0.16.4" }
|
||||||
solana-storage-api = { path = "../programs/storage_api", version = "0.16.3" }
|
solana-storage-api = { path = "../programs/storage_api", version = "0.16.4" }
|
||||||
solana-vote-api = { path = "../programs/vote_api", version = "0.16.3" }
|
solana-vote-api = { path = "../programs/vote_api", version = "0.16.4" }
|
||||||
solana-vote-program = { path = "../programs/vote_program", version = "0.16.3" }
|
solana-vote-program = { path = "../programs/vote_program", version = "0.16.4" }
|
||||||
sys-info = "0.5.7"
|
sys-info = "0.5.7"
|
||||||
|
|
||||||
[lib]
|
[lib]
|
||||||
|
@@ -5,13 +5,12 @@ extern crate test;
|
|||||||
use log::*;
|
use log::*;
|
||||||
use solana_runtime::bank::*;
|
use solana_runtime::bank::*;
|
||||||
use solana_runtime::bank_client::BankClient;
|
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::account::KeyedAccount;
|
||||||
use solana_sdk::client::AsyncClient;
|
use solana_sdk::client::AsyncClient;
|
||||||
use solana_sdk::client::SyncClient;
|
use solana_sdk::client::SyncClient;
|
||||||
use solana_sdk::genesis_block::create_genesis_block;
|
use solana_sdk::genesis_block::create_genesis_block;
|
||||||
use solana_sdk::instruction::InstructionError;
|
use solana_sdk::instruction::InstructionError;
|
||||||
use solana_sdk::native_loader;
|
|
||||||
use solana_sdk::pubkey::Pubkey;
|
use solana_sdk::pubkey::Pubkey;
|
||||||
use solana_sdk::signature::{Keypair, KeypairUtil};
|
use solana_sdk::signature::{Keypair, KeypairUtil};
|
||||||
use solana_sdk::transaction::Transaction;
|
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,
|
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(
|
fn process_instruction(
|
||||||
_program_id: &Pubkey,
|
_program_id: &Pubkey,
|
||||||
_keyed_accounts: &mut [KeyedAccount],
|
_keyed_accounts: &mut [KeyedAccount],
|
||||||
@@ -59,8 +63,7 @@ pub fn create_native_loader_transactions(
|
|||||||
bank_client: &BankClient,
|
bank_client: &BankClient,
|
||||||
mint_keypair: &Keypair,
|
mint_keypair: &Keypair,
|
||||||
) -> Vec<Transaction> {
|
) -> Vec<Transaction> {
|
||||||
let program = "solana_noop_program".as_bytes().to_vec();
|
let program_id = Pubkey::new(&NOOP_PROGRAM_ID);
|
||||||
let program_id = load_program(&bank_client, &mint_keypair, &native_loader::id(), program);
|
|
||||||
|
|
||||||
(0..4096)
|
(0..4096)
|
||||||
.into_iter()
|
.into_iter()
|
||||||
@@ -120,6 +123,10 @@ fn do_bench_transactions(
|
|||||||
let (genesis_block, mint_keypair) = create_genesis_block(100_000_000);
|
let (genesis_block, mint_keypair) = create_genesis_block(100_000_000);
|
||||||
let mut bank = Bank::new(&genesis_block);
|
let mut bank = Bank::new(&genesis_block);
|
||||||
bank.add_instruction_processor(Pubkey::new(&BUILTIN_PROGRAM_ID), process_instruction);
|
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 = Arc::new(bank);
|
||||||
let bank_client = BankClient::new_shared(&bank);
|
let bank_client = BankClient::new_shared(&bank);
|
||||||
let transactions = create_transactions(&bank_client, &mint_keypair);
|
let transactions = create_transactions(&bank_client, &mint_keypair);
|
||||||
|
@@ -18,7 +18,8 @@ use crate::stakes::Stakes;
|
|||||||
use crate::status_cache::StatusCache;
|
use crate::status_cache::StatusCache;
|
||||||
use crate::storage_utils;
|
use crate::storage_utils;
|
||||||
use crate::storage_utils::StorageAccounts;
|
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 log::*;
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
use solana_metrics::{
|
use solana_metrics::{
|
||||||
@@ -27,7 +28,7 @@ use solana_metrics::{
|
|||||||
use solana_sdk::account::Account;
|
use solana_sdk::account::Account;
|
||||||
use solana_sdk::fee_calculator::FeeCalculator;
|
use solana_sdk::fee_calculator::FeeCalculator;
|
||||||
use solana_sdk::genesis_block::GenesisBlock;
|
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::inflation::Inflation;
|
||||||
use solana_sdk::native_loader;
|
use solana_sdk::native_loader;
|
||||||
use solana_sdk::pubkey::Pubkey;
|
use solana_sdk::pubkey::Pubkey;
|
||||||
@@ -918,6 +919,8 @@ impl Bank {
|
|||||||
) -> (
|
) -> (
|
||||||
Vec<Result<(InstructionAccounts, InstructionLoaders, InstructionCredits)>>,
|
Vec<Result<(InstructionAccounts, InstructionLoaders, InstructionCredits)>>,
|
||||||
Vec<Result<()>>,
|
Vec<Result<()>>,
|
||||||
|
usize,
|
||||||
|
usize,
|
||||||
) {
|
) {
|
||||||
debug!("processing transactions: {}", txs.len());
|
debug!("processing transactions: {}", txs.len());
|
||||||
let mut error_counters = ErrorCounters::default();
|
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);
|
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);
|
Self::update_error_counters(&error_counters);
|
||||||
(loaded_accounts, executed)
|
(loaded_accounts, executed, tx_count, signature_count)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn filter_program_errors_and_collect_fee(
|
fn filter_program_errors_and_collect_fee(
|
||||||
@@ -1031,11 +1029,19 @@ impl Bank {
|
|||||||
txs: &[Transaction],
|
txs: &[Transaction],
|
||||||
loaded_accounts: &[Result<(InstructionAccounts, InstructionLoaders, InstructionCredits)>],
|
loaded_accounts: &[Result<(InstructionAccounts, InstructionLoaders, InstructionCredits)>],
|
||||||
executed: &[Result<()>],
|
executed: &[Result<()>],
|
||||||
|
tx_count: usize,
|
||||||
|
signature_count: usize,
|
||||||
) -> Vec<Result<()>> {
|
) -> Vec<Result<()>> {
|
||||||
if self.is_frozen() {
|
if self.is_frozen() {
|
||||||
warn!("=========== FIXME: commit_transactions() working on a frozen bank! ================");
|
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)) {
|
if executed.iter().any(|res| Self::can_commit(res)) {
|
||||||
self.is_delta.store(true, Ordering::Relaxed);
|
self.is_delta.store(true, Ordering::Relaxed);
|
||||||
}
|
}
|
||||||
@@ -1068,10 +1074,10 @@ impl Bank {
|
|||||||
lock_results: &LockedAccountsResults,
|
lock_results: &LockedAccountsResults,
|
||||||
max_age: usize,
|
max_age: usize,
|
||||||
) -> Vec<Result<()>> {
|
) -> 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.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]
|
#[must_use]
|
||||||
@@ -1227,7 +1233,14 @@ impl Bank {
|
|||||||
// If there are no accounts, return the same hash as we did before
|
// If there are no accounts, return the same hash as we did before
|
||||||
// checkpointing.
|
// checkpointing.
|
||||||
if let Some(accounts_delta_hash) = self.rc.accounts.hash_internal_state(self.slot()) {
|
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 {
|
} else {
|
||||||
self.parent_hash
|
self.parent_hash
|
||||||
}
|
}
|
||||||
@@ -1720,7 +1733,7 @@ mod tests {
|
|||||||
fn goto_end_of_slot(bank: &mut Bank) {
|
fn goto_end_of_slot(bank: &mut Bank) {
|
||||||
let mut tick_hash = bank.last_blockhash();
|
let mut tick_hash = bank.last_blockhash();
|
||||||
loop {
|
loop {
|
||||||
tick_hash = extend_and_hash(&tick_hash, &[42]);
|
tick_hash = hashv(&[&tick_hash.as_ref(), &[42]]);
|
||||||
bank.register_tick(&tick_hash);
|
bank.register_tick(&tick_hash);
|
||||||
if tick_hash == bank.last_blockhash() {
|
if tick_hash == bank.last_blockhash() {
|
||||||
bank.freeze();
|
bank.freeze();
|
||||||
|
@@ -1,6 +1,5 @@
|
|||||||
//! Native loader
|
//! Native loader
|
||||||
use crate::message_processor::SymbolCache;
|
use crate::message_processor::SymbolCache;
|
||||||
use bincode::deserialize;
|
|
||||||
#[cfg(unix)]
|
#[cfg(unix)]
|
||||||
use libloading::os::unix::*;
|
use libloading::os::unix::*;
|
||||||
#[cfg(windows)]
|
#[cfg(windows)]
|
||||||
@@ -9,7 +8,6 @@ use log::*;
|
|||||||
use solana_sdk::account::KeyedAccount;
|
use solana_sdk::account::KeyedAccount;
|
||||||
use solana_sdk::instruction::InstructionError;
|
use solana_sdk::instruction::InstructionError;
|
||||||
use solana_sdk::instruction_processor_utils;
|
use solana_sdk::instruction_processor_utils;
|
||||||
use solana_sdk::loader_instruction::LoaderInstruction;
|
|
||||||
use solana_sdk::pubkey::Pubkey;
|
use solana_sdk::pubkey::Pubkey;
|
||||||
use std::env;
|
use std::env;
|
||||||
use std::path::PathBuf;
|
use std::path::PathBuf;
|
||||||
@@ -109,45 +107,15 @@ pub fn entrypoint(
|
|||||||
.write()
|
.write()
|
||||||
.unwrap()
|
.unwrap()
|
||||||
.insert(name_vec.to_vec(), entrypoint);
|
.insert(name_vec.to_vec(), entrypoint);
|
||||||
return ret;
|
ret
|
||||||
},
|
},
|
||||||
Err(e) => {
|
Err(e) => {
|
||||||
warn!("Unable to load: {:?}", e);
|
warn!("Unable to load: {:?}", e);
|
||||||
return Err(InstructionError::GenericError);
|
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()
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
warn!("Invalid data in instruction: {:?}", ix_data);
|
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::Bank;
|
||||||
use solana_runtime::bank_client::BankClient;
|
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::client::SyncClient;
|
||||||
use solana_sdk::genesis_block::create_genesis_block;
|
use solana_sdk::genesis_block::create_genesis_block;
|
||||||
use solana_sdk::native_loader;
|
use solana_sdk::pubkey::Pubkey;
|
||||||
use solana_sdk::signature::KeypairUtil;
|
use solana_sdk::signature::KeypairUtil;
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
@@ -11,14 +11,13 @@ fn test_program_native_noop() {
|
|||||||
solana_logger::setup();
|
solana_logger::setup();
|
||||||
|
|
||||||
let (genesis_block, alice_keypair) = create_genesis_block(50);
|
let (genesis_block, alice_keypair) = create_genesis_block(50);
|
||||||
|
let program_id = Pubkey::new_rand();
|
||||||
let bank = Bank::new(&genesis_block);
|
let bank = Bank::new(&genesis_block);
|
||||||
let bank_client = BankClient::new(bank);
|
bank.register_native_instruction_processor("solana_noop_program", &program_id);
|
||||||
|
|
||||||
let program = "solana_noop_program".as_bytes().to_vec();
|
|
||||||
let program_id = load_program(&bank_client, &alice_keypair, &native_loader::id(), program);
|
|
||||||
|
|
||||||
// Call user program
|
// Call user program
|
||||||
let instruction = create_invoke_instruction(alice_keypair.pubkey(), program_id, &1u8);
|
let instruction = create_invoke_instruction(alice_keypair.pubkey(), program_id, &1u8);
|
||||||
|
let bank_client = BankClient::new(bank);
|
||||||
bank_client
|
bank_client
|
||||||
.send_instruction(&alice_keypair, instruction)
|
.send_instruction(&alice_keypair, instruction)
|
||||||
.unwrap();
|
.unwrap();
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "solana-sdk"
|
name = "solana-sdk"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
description = "Solana SDK"
|
description = "Solana SDK"
|
||||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||||
repository = "https://github.com/solana-labs/solana"
|
repository = "https://github.com/solana-labs/solana"
|
||||||
@@ -28,5 +28,5 @@ serde_derive = "1.0.92"
|
|||||||
serde_json = "1.0.39"
|
serde_json = "1.0.39"
|
||||||
sha2 = "0.8.0"
|
sha2 = "0.8.0"
|
||||||
solana-ed25519-dalek = "0.2.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"
|
untrusted = "0.6.2"
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
[package]
|
[package]
|
||||||
name = "solana-sdk-bpf-utils"
|
name = "solana-sdk-bpf-utils"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
description = "Solana BPF SDK Rust Utils"
|
description = "Solana BPF SDK Rust Utils"
|
||||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||||
repository = "https://github.com/solana-labs/solana"
|
repository = "https://github.com/solana-labs/solana"
|
||||||
|
@@ -11,6 +11,7 @@ pub mod tick_height;
|
|||||||
pub fn is_syscall_id(id: &Pubkey) -> bool {
|
pub fn is_syscall_id(id: &Pubkey) -> bool {
|
||||||
current::check_id(id)
|
current::check_id(id)
|
||||||
|| fees::check_id(id)
|
|| fees::check_id(id)
|
||||||
|
|| rewards::check_id(id)
|
||||||
|| slot_hashes::check_id(id)
|
|| slot_hashes::check_id(id)
|
||||||
|| tick_height::check_id(id)
|
|| tick_height::check_id(id)
|
||||||
}
|
}
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "solana-upload-perf"
|
name = "solana-upload-perf"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
description = "Metrics Upload Utility"
|
description = "Metrics Upload Utility"
|
||||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||||
repository = "https://github.com/solana-labs/solana"
|
repository = "https://github.com/solana-labs/solana"
|
||||||
@@ -12,7 +12,7 @@ publish = false
|
|||||||
[dependencies]
|
[dependencies]
|
||||||
log = "0.4.2"
|
log = "0.4.2"
|
||||||
serde_json = "1.0.39"
|
serde_json = "1.0.39"
|
||||||
solana-metrics = { path = "../metrics", version = "0.16.3" }
|
solana-metrics = { path = "../metrics", version = "0.16.4" }
|
||||||
|
|
||||||
[[bin]]
|
[[bin]]
|
||||||
name = "solana-upload-perf"
|
name = "solana-upload-perf"
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "solana-validator-info"
|
name = "solana-validator-info"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
description = "Solana validator registration tool"
|
description = "Solana validator registration tool"
|
||||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||||
repository = "https://github.com/solana-labs/solana"
|
repository = "https://github.com/solana-labs/solana"
|
||||||
@@ -16,12 +16,13 @@ cuda = []
|
|||||||
bincode = "1.1.4"
|
bincode = "1.1.4"
|
||||||
clap = "2.33"
|
clap = "2.33"
|
||||||
dirs = "2.0.1"
|
dirs = "2.0.1"
|
||||||
|
reqwest = "0.9.18"
|
||||||
serde = "1.0.94"
|
serde = "1.0.94"
|
||||||
serde_derive = "1.0.94"
|
serde_derive = "1.0.94"
|
||||||
serde_json = "1.0.40"
|
serde_json = "1.0.40"
|
||||||
solana-client = { path = "../client", version = "0.16.3" }
|
solana-client = { path = "../client", version = "0.16.4" }
|
||||||
solana-config-api = { path = "../programs/config_api", version = "0.16.3" }
|
solana-config-api = { path = "../programs/config_api", version = "0.16.4" }
|
||||||
solana-sdk = { path = "../sdk", version = "0.16.3" }
|
solana-sdk = { path = "../sdk", version = "0.16.4" }
|
||||||
url = "1.7.2"
|
url = "1.7.2"
|
||||||
|
|
||||||
[[bin]]
|
[[bin]]
|
||||||
|
@@ -2,6 +2,7 @@ use bincode::deserialize;
|
|||||||
use clap::{
|
use clap::{
|
||||||
crate_description, crate_name, crate_version, App, AppSettings, Arg, ArgMatches, SubCommand,
|
crate_description, crate_name, crate_version, App, AppSettings, Arg, ArgMatches, SubCommand,
|
||||||
};
|
};
|
||||||
|
use reqwest::Client;
|
||||||
use serde_derive::{Deserialize, Serialize};
|
use serde_derive::{Deserialize, Serialize};
|
||||||
use serde_json::{Map, Value};
|
use serde_json::{Map, Value};
|
||||||
use solana_client::rpc_client::RpcClient;
|
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();
|
let mut map = Map::new();
|
||||||
map.insert(
|
map.insert(
|
||||||
"name".to_string(),
|
"name".to_string(),
|
||||||
@@ -117,8 +141,7 @@ fn parse_args(matches: &ArgMatches<'_>) -> Result<String, Box<dyn error::Error>>
|
|||||||
Value::String(keybase_id.to_string()),
|
Value::String(keybase_id.to_string()),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
let string = serde_json::to_string(&Value::Object(map))?;
|
Value::Object(map)
|
||||||
Ok(string)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fn parse_validator_info(account_data: &[u8]) -> Result<(Pubkey, String), Box<dyn error::Error>> {
|
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
|
// Prepare validator info
|
||||||
let keys = vec![(id(), false), (validator_keypair.pubkey(), true)];
|
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 {
|
let validator_info = ValidatorInfo {
|
||||||
info: validator_info,
|
info: validator_string,
|
||||||
};
|
};
|
||||||
|
|
||||||
// Check existence of validator-info account
|
// 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("keybase_id").short("k").takes_value(true))
|
||||||
.arg(Arg::with_name("details").short("d").takes_value(true))
|
.arg(Arg::with_name("details").short("d").takes_value(true))
|
||||||
.get_matches_from(vec!["test", "-n", "Alice", "-k", "464bb0f2956f7e83"]);
|
.get_matches_from(vec!["test", "-n", "Alice", "-k", "464bb0f2956f7e83"]);
|
||||||
let expected_string = serde_json::to_string(&json!({
|
let expected = json!({
|
||||||
"name": "Alice",
|
"name": "Alice",
|
||||||
"keybaseId": "464bb0f2956f7e83",
|
"keybaseId": "464bb0f2956f7e83",
|
||||||
}))
|
});
|
||||||
.unwrap();
|
assert_eq!(parse_args(&matches), expected);
|
||||||
assert_eq!(parse_args(&matches).unwrap(), expected_string);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
|
@@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.com>"]
|
|||||||
edition = "2018"
|
edition = "2018"
|
||||||
name = "solana-validator"
|
name = "solana-validator"
|
||||||
description = "Blockchain, Rebuilt for Scale"
|
description = "Blockchain, Rebuilt for Scale"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
repository = "https://github.com/solana-labs/solana"
|
repository = "https://github.com/solana-labs/solana"
|
||||||
license = "Apache-2.0"
|
license = "Apache-2.0"
|
||||||
homepage = "https://solana.com/"
|
homepage = "https://solana.com/"
|
||||||
@@ -12,15 +12,15 @@ homepage = "https://solana.com/"
|
|||||||
clap = "2.33.0"
|
clap = "2.33.0"
|
||||||
log = "0.4.2"
|
log = "0.4.2"
|
||||||
serde_json = "1.0.39"
|
serde_json = "1.0.39"
|
||||||
solana = { path = "../core", version = "0.16.3" }
|
solana = { path = "../core", version = "0.16.4" }
|
||||||
solana-drone = { path = "../drone", version = "0.16.3" }
|
solana-drone = { path = "../drone", version = "0.16.4" }
|
||||||
solana-logger = { path = "../logger", version = "0.16.3" }
|
solana-logger = { path = "../logger", version = "0.16.4" }
|
||||||
solana-metrics = { path = "../metrics", version = "0.16.3" }
|
solana-metrics = { path = "../metrics", version = "0.16.4" }
|
||||||
solana-netutil = { path = "../netutil", version = "0.16.3" }
|
solana-netutil = { path = "../netutil", version = "0.16.4" }
|
||||||
solana-runtime = { path = "../runtime", version = "0.16.3" }
|
solana-runtime = { path = "../runtime", version = "0.16.4" }
|
||||||
solana-sdk = { path = "../sdk", version = "0.16.3" }
|
solana-sdk = { path = "../sdk", version = "0.16.4" }
|
||||||
solana-vote-api = { path = "../programs/vote_api", version = "0.16.3" }
|
solana-vote-api = { path = "../programs/vote_api", version = "0.16.4" }
|
||||||
solana-vote-signer = { path = "../vote-signer", version = "0.16.3" }
|
solana-vote-signer = { path = "../vote-signer", version = "0.16.4" }
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
cuda = ["solana/cuda"]
|
cuda = ["solana/cuda"]
|
||||||
|
@@ -162,6 +162,12 @@ fn main() {
|
|||||||
.value_name("PATHS")
|
.value_name("PATHS")
|
||||||
.takes_value(true)
|
.takes_value(true)
|
||||||
.help("Snapshot path"),
|
.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();
|
.get_matches();
|
||||||
|
|
||||||
@@ -267,6 +273,8 @@ fn main() {
|
|||||||
node.info.rpc_pubsub = SocketAddr::new(gossip_addr.ip(), port_number + 1);
|
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(
|
let validator = Validator::new(
|
||||||
node,
|
node,
|
||||||
&keypair,
|
&keypair,
|
||||||
@@ -275,6 +283,7 @@ fn main() {
|
|||||||
&Arc::new(voting_keypair),
|
&Arc::new(voting_keypair),
|
||||||
&Arc::new(storage_keypair),
|
&Arc::new(storage_keypair),
|
||||||
cluster_entrypoint.as_ref(),
|
cluster_entrypoint.as_ref(),
|
||||||
|
verify_ledger,
|
||||||
&validator_config,
|
&validator_config,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.com>"]
|
|||||||
edition = "2018"
|
edition = "2018"
|
||||||
name = "solana-vote-signer"
|
name = "solana-vote-signer"
|
||||||
description = "Solana Vote Signing Service"
|
description = "Solana Vote Signing Service"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
repository = "https://github.com/solana-labs/solana"
|
repository = "https://github.com/solana-labs/solana"
|
||||||
license = "Apache-2.0"
|
license = "Apache-2.0"
|
||||||
homepage = "https://solana.com/"
|
homepage = "https://solana.com/"
|
||||||
@@ -17,8 +17,8 @@ jsonrpc-http-server = "12.0.0"
|
|||||||
log = "0.4.2"
|
log = "0.4.2"
|
||||||
serde = "1.0.92"
|
serde = "1.0.92"
|
||||||
serde_json = "1.0.39"
|
serde_json = "1.0.39"
|
||||||
solana-metrics = { path = "../metrics", version = "0.16.3" }
|
solana-metrics = { path = "../metrics", version = "0.16.4" }
|
||||||
solana-sdk = { path = "../sdk", version = "0.16.3" }
|
solana-sdk = { path = "../sdk", version = "0.16.4" }
|
||||||
|
|
||||||
[lib]
|
[lib]
|
||||||
crate-type = ["lib"]
|
crate-type = ["lib"]
|
||||||
|
@@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.com>"]
|
|||||||
edition = "2018"
|
edition = "2018"
|
||||||
name = "solana-wallet"
|
name = "solana-wallet"
|
||||||
description = "Blockchain, Rebuilt for Scale"
|
description = "Blockchain, Rebuilt for Scale"
|
||||||
version = "0.16.3"
|
version = "0.16.4"
|
||||||
repository = "https://github.com/solana-labs/solana"
|
repository = "https://github.com/solana-labs/solana"
|
||||||
license = "Apache-2.0"
|
license = "Apache-2.0"
|
||||||
homepage = "https://solana.com/"
|
homepage = "https://solana.com/"
|
||||||
@@ -17,21 +17,22 @@ dirs = "2.0.1"
|
|||||||
log = "0.4.2"
|
log = "0.4.2"
|
||||||
num-traits = "0.2"
|
num-traits = "0.2"
|
||||||
serde_json = "1.0.39"
|
serde_json = "1.0.39"
|
||||||
solana-budget-api = { path = "../programs/budget_api", version = "0.16.3" }
|
solana-budget-api = { path = "../programs/budget_api", version = "0.16.4" }
|
||||||
solana-client = { path = "../client", version = "0.16.3" }
|
solana-client = { path = "../client", version = "0.16.4" }
|
||||||
solana-drone = { path = "../drone", version = "0.16.3" }
|
solana-drone = { path = "../drone", version = "0.16.4" }
|
||||||
solana-logger = { path = "../logger", version = "0.16.3" }
|
solana-logger = { path = "../logger", version = "0.16.4" }
|
||||||
solana-netutil = { path = "../netutil", version = "0.16.3" }
|
solana-netutil = { path = "../netutil", version = "0.16.4" }
|
||||||
solana-sdk = { path = "../sdk", version = "0.16.3" }
|
solana-runtime = { path = "../runtime", version = "0.16.4" }
|
||||||
solana-stake-api = { path = "../programs/stake_api", version = "0.16.3" }
|
solana-sdk = { path = "../sdk", version = "0.16.4" }
|
||||||
solana-storage-api = { path = "../programs/storage_api", version = "0.16.3" }
|
solana-stake-api = { path = "../programs/stake_api", version = "0.16.4" }
|
||||||
solana-vote-api = { path = "../programs/vote_api", version = "0.16.3" }
|
solana-storage-api = { path = "../programs/storage_api", version = "0.16.4" }
|
||||||
solana-vote-signer = { path = "../vote-signer", version = "0.16.3" }
|
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"
|
url = "1.7.2"
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
solana = { path = "../core", version = "0.16.3" }
|
solana = { path = "../core", version = "0.16.4" }
|
||||||
solana-budget-program = { path = "../programs/budget_program", version = "0.16.3" }
|
solana-budget-program = { path = "../programs/budget_program", version = "0.16.4" }
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
cuda = []
|
cuda = []
|
||||||
|
@@ -540,13 +540,31 @@ fn process_show_vote_account(
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
if !vote_state.votes.is_empty() {
|
if !vote_state.votes.is_empty() {
|
||||||
println!("votes:");
|
println!("recent votes:");
|
||||||
for vote in vote_state.votes {
|
for vote in &vote_state.votes {
|
||||||
println!(
|
println!(
|
||||||
"- slot={}, confirmation count={}",
|
"- slot: {}\n confirmation count: {}",
|
||||||
vote.slot, vote.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())
|
Ok("".to_string())
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user