Compare commits
30 Commits
Author | SHA1 | Date | |
---|---|---|---|
81f8368bba | |||
297166e550 | |||
7fff610cae | |||
5f3bf853c6 | |||
fc34c1370b | |||
09410fd5c5 | |||
bfff18ac70 | |||
7239efe1e7 | |||
334a7d9502 | |||
bc2d37015d | |||
d3fcedb179 | |||
f1a77abffb | |||
7acd771271 | |||
9c2d58660b | |||
a907ed2e33 | |||
9d3c426510 | |||
b0bcc8355f | |||
cf99e626c8 | |||
6db61759e0 | |||
aae08bdae3 | |||
5ff22921eb | |||
10012be03e | |||
17def9fbf5 | |||
b5a03d011f | |||
2d39c4257a | |||
8fb86c9fa7 | |||
fc623756df | |||
d92bd0de27 | |||
c818c20399 | |||
ed41547f64 |
180
Cargo.lock
generated
180
Cargo.lock
generated
@ -1715,7 +1715,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "solana"
|
name = "solana"
|
||||||
version = "0.11.0"
|
version = "0.11.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bincode 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"bincode 1.0.1 (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)",
|
||||||
@ -1739,19 +1739,19 @@ dependencies = [
|
|||||||
"serde 1.0.82 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde 1.0.82 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"serde_derive 1.0.82 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde_derive 1.0.82 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"serde_json 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde_json 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"solana-bpfloader 0.11.0",
|
"solana-bpfloader 0.11.1",
|
||||||
"solana-drone 0.11.0",
|
"solana-drone 0.11.1",
|
||||||
"solana-jsonrpc-core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"solana-jsonrpc-core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"solana-jsonrpc-http-server 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"solana-jsonrpc-http-server 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"solana-jsonrpc-macros 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"solana-jsonrpc-macros 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"solana-jsonrpc-pubsub 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"solana-jsonrpc-pubsub 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"solana-jsonrpc-ws-server 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"solana-jsonrpc-ws-server 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"solana-logger 0.11.0",
|
"solana-logger 0.11.1",
|
||||||
"solana-metrics 0.11.0",
|
"solana-metrics 0.11.1",
|
||||||
"solana-native-loader 0.11.0",
|
"solana-native-loader 0.11.1",
|
||||||
"solana-netutil 0.11.0",
|
"solana-netutil 0.11.1",
|
||||||
"solana-sdk 0.11.0",
|
"solana-sdk 0.11.1",
|
||||||
"solana-system-program 0.11.0",
|
"solana-system-program 0.11.1",
|
||||||
"tokio 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
|
"tokio 0.1.13 (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)",
|
||||||
"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)",
|
||||||
@ -1759,39 +1759,39 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "solana-bench-streamer"
|
name = "solana-bench-streamer"
|
||||||
version = "0.11.0"
|
version = "0.11.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"solana 0.11.0",
|
"solana 0.11.1",
|
||||||
"solana-logger 0.11.0",
|
"solana-logger 0.11.1",
|
||||||
"solana-netutil 0.11.0",
|
"solana-netutil 0.11.1",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "solana-bench-tps"
|
name = "solana-bench-tps"
|
||||||
version = "0.11.0"
|
version = "0.11.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"rayon 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rayon 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"serde_json 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde_json 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"solana 0.11.0",
|
"solana 0.11.1",
|
||||||
"solana-drone 0.11.0",
|
"solana-drone 0.11.1",
|
||||||
"solana-logger 0.11.0",
|
"solana-logger 0.11.1",
|
||||||
"solana-metrics 0.11.0",
|
"solana-metrics 0.11.1",
|
||||||
"solana-sdk 0.11.0",
|
"solana-sdk 0.11.1",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "solana-bpf-noop"
|
name = "solana-bpf-noop"
|
||||||
version = "0.11.0"
|
version = "0.11.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"rbpf 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rbpf 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"solana-sdk 0.11.0",
|
"solana-sdk 0.11.1",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "solana-bpfloader"
|
name = "solana-bpfloader"
|
||||||
version = "0.11.0"
|
version = "0.11.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bincode 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"bincode 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
"byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@ -1799,27 +1799,27 @@ dependencies = [
|
|||||||
"libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)",
|
"libc 0.2.45 (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.82 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde 1.0.82 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"solana-logger 0.11.0",
|
"solana-logger 0.11.1",
|
||||||
"solana-sdk 0.11.0",
|
"solana-sdk 0.11.1",
|
||||||
"solana_rbpf 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
"solana_rbpf 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "solana-budget-program"
|
name = "solana-budget-program"
|
||||||
version = "0.11.0"
|
version = "0.11.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bincode 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"bincode 1.0.1 (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)",
|
||||||
"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.82 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde 1.0.82 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"serde_derive 1.0.82 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde_derive 1.0.82 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"solana-logger 0.11.0",
|
"solana-logger 0.11.1",
|
||||||
"solana-sdk 0.11.0",
|
"solana-sdk 0.11.1",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "solana-drone"
|
name = "solana-drone"
|
||||||
version = "0.11.0"
|
version = "0.11.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bincode 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"bincode 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
"byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@ -1828,43 +1828,43 @@ 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.82 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde 1.0.82 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"serde_derive 1.0.82 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde_derive 1.0.82 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"solana-metrics 0.11.0",
|
"solana-metrics 0.11.1",
|
||||||
"solana-sdk 0.11.0",
|
"solana-sdk 0.11.1",
|
||||||
"tokio 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
|
"tokio 0.1.13 (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)",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "solana-erc20"
|
name = "solana-erc20"
|
||||||
version = "0.11.0"
|
version = "0.11.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bincode 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"bincode 1.0.1 (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.82 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde 1.0.82 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"serde_derive 1.0.82 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde_derive 1.0.82 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"solana-logger 0.11.0",
|
"solana-logger 0.11.1",
|
||||||
"solana-sdk 0.11.0",
|
"solana-sdk 0.11.1",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "solana-fullnode"
|
name = "solana-fullnode"
|
||||||
version = "0.11.0"
|
version = "0.11.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"clap 2.32.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.33 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde_json 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"solana 0.11.0",
|
"solana 0.11.1",
|
||||||
"solana-drone 0.11.0",
|
"solana-drone 0.11.1",
|
||||||
"solana-fullnode-config 0.11.0",
|
"solana-fullnode-config 0.11.1",
|
||||||
"solana-logger 0.11.0",
|
"solana-logger 0.11.1",
|
||||||
"solana-metrics 0.11.0",
|
"solana-metrics 0.11.1",
|
||||||
"solana-netutil 0.11.0",
|
"solana-netutil 0.11.1",
|
||||||
"solana-sdk 0.11.0",
|
"solana-sdk 0.11.1",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "solana-fullnode-config"
|
name = "solana-fullnode-config"
|
||||||
version = "0.11.0"
|
version = "0.11.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"dirs 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
"dirs 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@ -1872,19 +1872,19 @@ dependencies = [
|
|||||||
"serde 1.0.82 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde 1.0.82 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"serde_derive 1.0.82 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde_derive 1.0.82 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"serde_json 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde_json 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"solana-netutil 0.11.0",
|
"solana-netutil 0.11.1",
|
||||||
"solana-sdk 0.11.0",
|
"solana-sdk 0.11.1",
|
||||||
"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-genesis"
|
name = "solana-genesis"
|
||||||
version = "0.11.0"
|
version = "0.11.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"serde_json 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde_json 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"solana 0.11.0",
|
"solana 0.11.1",
|
||||||
"solana-sdk 0.11.0",
|
"solana-sdk 0.11.1",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -2025,70 +2025,70 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "solana-keygen"
|
name = "solana-keygen"
|
||||||
version = "0.11.0"
|
version = "0.11.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"dirs 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
"dirs 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"solana-sdk 0.11.0",
|
"solana-sdk 0.11.1",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "solana-ledger-tool"
|
name = "solana-ledger-tool"
|
||||||
version = "0.11.0"
|
version = "0.11.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"serde_json 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde_json 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"solana 0.11.0",
|
"solana 0.11.1",
|
||||||
"solana-logger 0.11.0",
|
"solana-logger 0.11.1",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "solana-logger"
|
name = "solana-logger"
|
||||||
version = "0.11.0"
|
version = "0.11.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"env_logger 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"env_logger 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "solana-lualoader"
|
name = "solana-lualoader"
|
||||||
version = "0.11.0"
|
version = "0.11.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bincode 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"bincode 1.0.1 (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)",
|
||||||
"rlua 0.15.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rlua 0.15.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"serde 1.0.82 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde 1.0.82 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"serde_derive 1.0.82 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde_derive 1.0.82 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"solana-logger 0.11.0",
|
"solana-logger 0.11.1",
|
||||||
"solana-sdk 0.11.0",
|
"solana-sdk 0.11.1",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "solana-metrics"
|
name = "solana-metrics"
|
||||||
version = "0.11.0"
|
version = "0.11.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"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)",
|
||||||
"lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"lazy_static 1.2.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)",
|
||||||
"rand 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rand 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"reqwest 0.9.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
"reqwest 0.9.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"solana-sdk 0.11.0",
|
"solana-sdk 0.11.1",
|
||||||
"sys-info 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"sys-info 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "solana-native-loader"
|
name = "solana-native-loader"
|
||||||
version = "0.11.0"
|
version = "0.11.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bincode 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"bincode 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)",
|
"libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"libloading 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"libloading 0.5.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)",
|
||||||
"solana-sdk 0.11.0",
|
"solana-sdk 0.11.1",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "solana-netutil"
|
name = "solana-netutil"
|
||||||
version = "0.11.0"
|
version = "0.11.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"ipnetwork 0.12.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
"ipnetwork 0.12.8 (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)",
|
||||||
@ -2097,33 +2097,33 @@ dependencies = [
|
|||||||
"rand 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rand 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"reqwest 0.9.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
"reqwest 0.9.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"socket2 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
"socket2 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"solana-logger 0.11.0",
|
"solana-logger 0.11.1",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "solana-noop"
|
name = "solana-noop"
|
||||||
version = "0.11.0"
|
version = "0.11.1"
|
||||||
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.11.0",
|
"solana-logger 0.11.1",
|
||||||
"solana-sdk 0.11.0",
|
"solana-sdk 0.11.1",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "solana-replicator"
|
name = "solana-replicator"
|
||||||
version = "0.11.0"
|
version = "0.11.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"serde_json 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde_json 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"solana 0.11.0",
|
"solana 0.11.1",
|
||||||
"solana-fullnode-config 0.11.0",
|
"solana-fullnode-config 0.11.1",
|
||||||
"solana-logger 0.11.0",
|
"solana-logger 0.11.1",
|
||||||
"solana-sdk 0.11.0",
|
"solana-sdk 0.11.1",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "solana-sdk"
|
name = "solana-sdk"
|
||||||
version = "0.11.0"
|
version = "0.11.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bincode 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"bincode 1.0.1 (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)",
|
||||||
@ -2141,50 +2141,50 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "solana-storage-program"
|
name = "solana-storage-program"
|
||||||
version = "0.11.0"
|
version = "0.11.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bincode 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"bincode 1.0.1 (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.82 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde 1.0.82 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"serde_derive 1.0.82 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde_derive 1.0.82 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"solana-logger 0.11.0",
|
"solana-logger 0.11.1",
|
||||||
"solana-sdk 0.11.0",
|
"solana-sdk 0.11.1",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "solana-system-program"
|
name = "solana-system-program"
|
||||||
version = "0.11.0"
|
version = "0.11.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bincode 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"bincode 1.0.1 (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.82 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde 1.0.82 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"solana-sdk 0.11.0",
|
"solana-sdk 0.11.1",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "solana-upload-perf"
|
name = "solana-upload-perf"
|
||||||
version = "0.11.0"
|
version = "0.11.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"serde_json 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde_json 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"solana-metrics 0.11.0",
|
"solana-metrics 0.11.1",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "solana-vote-program"
|
name = "solana-vote-program"
|
||||||
version = "0.11.0"
|
version = "0.11.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bincode 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"bincode 1.0.1 (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.82 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde 1.0.82 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"serde_derive 1.0.82 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde_derive 1.0.82 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"solana-logger 0.11.0",
|
"solana-logger 0.11.1",
|
||||||
"solana-metrics 0.11.0",
|
"solana-metrics 0.11.1",
|
||||||
"solana-sdk 0.11.0",
|
"solana-sdk 0.11.1",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "solana-vote-signer"
|
name = "solana-vote-signer"
|
||||||
version = "0.0.1"
|
version = "0.11.1"
|
||||||
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.32.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@ -2193,13 +2193,13 @@ dependencies = [
|
|||||||
"solana-jsonrpc-core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"solana-jsonrpc-core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"solana-jsonrpc-http-server 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"solana-jsonrpc-http-server 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"solana-jsonrpc-macros 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"solana-jsonrpc-macros 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"solana-metrics 0.11.0",
|
"solana-metrics 0.11.1",
|
||||||
"solana-sdk 0.11.0",
|
"solana-sdk 0.11.1",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "solana-wallet"
|
name = "solana-wallet"
|
||||||
version = "0.11.0"
|
version = "0.11.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bincode 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"bincode 1.0.1 (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)",
|
||||||
@ -2207,10 +2207,10 @@ dependencies = [
|
|||||||
"clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"dirs 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
"dirs 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"serde_json 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde_json 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"solana 0.11.0",
|
"solana 0.11.1",
|
||||||
"solana-drone 0.11.0",
|
"solana-drone 0.11.1",
|
||||||
"solana-logger 0.11.0",
|
"solana-logger 0.11.1",
|
||||||
"solana-sdk 0.11.0",
|
"solana-sdk 0.11.1",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
18
Cargo.toml
18
Cargo.toml
@ -1,7 +1,7 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "solana"
|
name = "solana"
|
||||||
description = "Blockchain, Rebuilt for Scale"
|
description = "Blockchain, Rebuilt for Scale"
|
||||||
version = "0.11.0"
|
version = "0.11.1"
|
||||||
documentation = "https://docs.rs/solana"
|
documentation = "https://docs.rs/solana"
|
||||||
homepage = "https://solana.com/"
|
homepage = "https://solana.com/"
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
@ -43,19 +43,19 @@ rocksdb = "0.10.1"
|
|||||||
serde = "1.0.82"
|
serde = "1.0.82"
|
||||||
serde_derive = "1.0.82"
|
serde_derive = "1.0.82"
|
||||||
serde_json = "1.0.10"
|
serde_json = "1.0.10"
|
||||||
solana-bpfloader = { path = "programs/native/bpf_loader", version = "0.11.0" }
|
solana-bpfloader = { path = "programs/native/bpf_loader", version = "0.11.1" }
|
||||||
solana-drone = { path = "drone", version = "0.11.0" }
|
solana-drone = { path = "drone", version = "0.11.1" }
|
||||||
solana-jsonrpc-core = "0.4.0"
|
solana-jsonrpc-core = "0.4.0"
|
||||||
solana-jsonrpc-http-server = "0.4.0"
|
solana-jsonrpc-http-server = "0.4.0"
|
||||||
solana-jsonrpc-macros = "0.4.0"
|
solana-jsonrpc-macros = "0.4.0"
|
||||||
solana-jsonrpc-pubsub = "0.4.0"
|
solana-jsonrpc-pubsub = "0.4.0"
|
||||||
solana-jsonrpc-ws-server = "0.4.0"
|
solana-jsonrpc-ws-server = "0.4.0"
|
||||||
solana-logger = { path = "logger", version = "0.11.0" }
|
solana-logger = { path = "logger", version = "0.11.1" }
|
||||||
solana-metrics = { path = "metrics", version = "0.11.0" }
|
solana-metrics = { path = "metrics", version = "0.11.1" }
|
||||||
solana-native-loader = { path = "programs/native/native_loader", version = "0.11.0" }
|
solana-native-loader = { path = "programs/native/native_loader", version = "0.11.1" }
|
||||||
solana-netutil = { path = "netutil", version = "0.11.0" }
|
solana-netutil = { path = "netutil", version = "0.11.1" }
|
||||||
solana-sdk = { path = "sdk", version = "0.11.0" }
|
solana-sdk = { path = "sdk", version = "0.11.1" }
|
||||||
solana-system-program = { path = "programs/native/system", version = "0.11.0" }
|
solana-system-program = { path = "programs/native/system", version = "0.11.1" }
|
||||||
tokio = "0.1"
|
tokio = "0.1"
|
||||||
tokio-codec = "0.1"
|
tokio-codec = "0.1"
|
||||||
untrusted = "0.6.2"
|
untrusted = "0.6.2"
|
||||||
|
@ -26,7 +26,9 @@ Furthermore, and much to our surprise, it can be implemented using a mechanism t
|
|||||||
Architecture
|
Architecture
|
||||||
===
|
===
|
||||||
|
|
||||||
Before you jump into the code, review the online book [Solana: Blockchain Rebuilt for Scale](https://solana-labs.github.io/solana/).
|
Before you jump into the code, review the online book [Solana: Blockchain Rebuilt for Scale](https://solana-labs.github.io/book/).
|
||||||
|
|
||||||
|
(The _latest_ development version of the online book is also [available here](https://solana-labs.github.io/book-edge/).)
|
||||||
|
|
||||||
Developing
|
Developing
|
||||||
===
|
===
|
||||||
|
@ -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.11.0"
|
version = "0.11.1"
|
||||||
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.32.0"
|
clap = "2.32.0"
|
||||||
solana = { path = "..", version = "0.11.0" }
|
solana = { path = "..", version = "0.11.1" }
|
||||||
solana-logger = { path = "../logger", version = "0.11.0" }
|
solana-logger = { path = "../logger", version = "0.11.1" }
|
||||||
solana-netutil = { path = "../netutil", version = "0.11.0" }
|
solana-netutil = { path = "../netutil", version = "0.11.1" }
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
cuda = []
|
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.11.0"
|
version = "0.11.1"
|
||||||
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,11 +11,11 @@ homepage = "https://solana.com/"
|
|||||||
clap = "2.32.0"
|
clap = "2.32.0"
|
||||||
rayon = "1.0.3"
|
rayon = "1.0.3"
|
||||||
serde_json = "1.0.10"
|
serde_json = "1.0.10"
|
||||||
solana = { path = "..", version = "0.11.0" }
|
solana = { path = "..", version = "0.11.1" }
|
||||||
solana-drone = { path = "../drone", version = "0.11.0" }
|
solana-drone = { path = "../drone", version = "0.11.1" }
|
||||||
solana-logger = { path = "../logger", version = "0.11.0" }
|
solana-logger = { path = "../logger", version = "0.11.1" }
|
||||||
solana-metrics = { path = "../metrics", version = "0.11.0" }
|
solana-metrics = { path = "../metrics", version = "0.11.1" }
|
||||||
solana-sdk = { path = "../sdk", version = "0.11.0" }
|
solana-sdk = { path = "../sdk", version = "0.11.1" }
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
cuda = []
|
cuda = []
|
||||||
|
@ -6,7 +6,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: 20
|
timeout_in_minutes: 40
|
||||||
name: "publish crate"
|
name: "publish crate"
|
||||||
branches: "!master"
|
branches: "!master"
|
||||||
- command: "ci/publish-bpf-sdk.sh"
|
- command: "ci/publish-bpf-sdk.sh"
|
||||||
|
@ -82,10 +82,26 @@ for tag in "${tags[@]}"; do
|
|||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
echo EDGE_CHANNEL=master
|
EDGE_CHANNEL=master
|
||||||
echo BETA_CHANNEL="${beta:+v$beta}"
|
BETA_CHANNEL=${beta:+v$beta}
|
||||||
echo STABLE_CHANNEL="${stable:+v$stable}"
|
STABLE_CHANNEL=${stable:+v$stable}
|
||||||
echo BETA_CHANNEL_LATEST_TAG="${beta_tag:+v$beta_tag}"
|
BETA_CHANNEL_LATEST_TAG=${beta_tag:+v$beta_tag}
|
||||||
echo STABLE_CHANNEL_LATEST_TAG="${stable_tag:+v$stable_tag}"
|
STABLE_CHANNEL_LATEST_TAG=${stable_tag:+v$stable_tag}
|
||||||
|
|
||||||
|
|
||||||
|
if [[ $BUILDKITE_BRANCH = "$STABLE_CHANNEL" ]]; then
|
||||||
|
CHANNEL=stable
|
||||||
|
elif [[ $BUILDKITE_BRANCH = "$EDGE_CHANNEL" ]]; then
|
||||||
|
CHANNEL=edge
|
||||||
|
elif [[ $BUILDKITE_BRANCH = "$BETA_CHANNEL" ]]; then
|
||||||
|
CHANNEL=beta
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo EDGE_CHANNEL="$EDGE_CHANNEL"
|
||||||
|
echo BETA_CHANNEL="$BETA_CHANNEL"
|
||||||
|
echo BETA_CHANNEL_LATEST_TAG="$BETA_CHANNEL_LATEST_TAG"
|
||||||
|
echo STABLE_CHANNEL="$STABLE_CHANNEL"
|
||||||
|
echo STABLE_CHANNEL_LATEST_TAG="$STABLE_CHANNEL_LATEST_TAG"
|
||||||
|
echo CHANNEL="$CHANNEL"
|
||||||
|
|
||||||
exit 0
|
exit 0
|
||||||
|
@ -16,18 +16,29 @@ echo --- create book repo
|
|||||||
git commit -m "${BUILDKITE_COMMIT:-local}"
|
git commit -m "${BUILDKITE_COMMIT:-local}"
|
||||||
)
|
)
|
||||||
|
|
||||||
echo --- publish
|
eval "$(ci/channel-info.sh)"
|
||||||
if [[ $BUILDKITE_BRANCH = master ]]; then
|
# Only publish the book from the edge and beta channels for now.
|
||||||
cd book/html/
|
case $CHANNEL in
|
||||||
git remote add origin git@github.com:solana-labs/solana.git
|
edge)
|
||||||
git fetch origin gh-pages
|
repo=git@github.com:solana-labs/book-edge.git
|
||||||
if ! git diff HEAD origin/gh-pages --quiet; then
|
;;
|
||||||
git push -f origin HEAD:gh-pages
|
beta)
|
||||||
else
|
repo=git@github.com:solana-labs/book.git
|
||||||
echo "Content unchanged, publish skipped"
|
;;
|
||||||
fi
|
*)
|
||||||
|
echo "--- publish skipped"
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
echo "--- publish $CHANNEL"
|
||||||
|
cd book/html/
|
||||||
|
git remote add origin $repo
|
||||||
|
git fetch origin master
|
||||||
|
if ! git diff HEAD origin/master --quiet; then
|
||||||
|
git push -f origin HEAD:master
|
||||||
else
|
else
|
||||||
echo "Publish skipped"
|
echo "Content unchanged, publish skipped"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
exit 0
|
exit 0
|
||||||
|
@ -19,6 +19,7 @@ CRATES=(
|
|||||||
drone
|
drone
|
||||||
programs/native/{budget,bpf_loader,lua_loader,native_loader,noop,system,vote}
|
programs/native/{budget,bpf_loader,lua_loader,native_loader,noop,system,vote}
|
||||||
.
|
.
|
||||||
|
fullnode-config
|
||||||
fullnode
|
fullnode
|
||||||
genesis
|
genesis
|
||||||
ledger-tool
|
ledger-tool
|
||||||
@ -26,22 +27,18 @@ CRATES=(
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
maybePackage="echo Package skipped"
|
|
||||||
maybePublish="echo Publish skipped"
|
|
||||||
|
|
||||||
# Only package/publish if this is a tagged release
|
# Only package/publish if this is a tagged release
|
||||||
if [[ -n $TRIGGERED_BUILDKITE_TAG ]]; then
|
[[ -n $TRIGGERED_BUILDKITE_TAG ]] || {
|
||||||
maybePackage="cargo package"
|
echo TRIGGERED_BUILDKITE_TAG unset, skipped
|
||||||
|
exit 0
|
||||||
|
}
|
||||||
|
|
||||||
# Only publish if there's no human around
|
[[ -n "$CRATES_IO_TOKEN" ]] || {
|
||||||
if [[ -n $CI ]]; then
|
echo CRATES_IO_TOKEN undefined
|
||||||
maybePublish="cargo publish --token $CRATES_IO_TOKEN"
|
exit 1
|
||||||
if [[ -z "$CRATES_IO_TOKEN" ]]; then
|
}
|
||||||
echo CRATES_IO_TOKEN undefined
|
|
||||||
exit 1
|
cargoCommand="cargo publish --token $CRATES_IO_TOKEN"
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
for crate in "${CRATES[@]}"; do
|
for crate in "${CRATES[@]}"; do
|
||||||
if [[ ! -r $crate/Cargo.toml ]]; then
|
if [[ ! -r $crate/Cargo.toml ]]; then
|
||||||
@ -49,10 +46,14 @@ for crate in "${CRATES[@]}"; do
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
echo "-- $crate"
|
echo "-- $crate"
|
||||||
# TODO: Ensure the published version matches the contents of BUILDKITE_TAG
|
# TODO: Ensure the published version matches the contents of
|
||||||
|
# TRIGGERED_BUILDKITE_TAG
|
||||||
(
|
(
|
||||||
set -x
|
set -x
|
||||||
ci/docker-run.sh rust bash -exc "cd $crate; $maybePackage; $maybePublish"
|
# TODO: the rocksdb package does not build with the stock rust docker image,
|
||||||
|
# so use the solana rust docker image until this is resolved upstream
|
||||||
|
ci/docker-run.sh solanalabs/rust:1.31.0 bash -exc "cd $crate; $cargoCommand"
|
||||||
|
#ci/docker-run.sh rust bash -exc "cd $crate; $cargoCommand"
|
||||||
)
|
)
|
||||||
done
|
done
|
||||||
|
|
||||||
|
@ -8,11 +8,11 @@ if [[ -z $BUILDKITE ]]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ -z $CHANNEL ]]; then
|
if [[ -z $PUBLISH_CHANNEL ]]; then
|
||||||
CHANNEL=$(buildkite-agent meta-data get "channel" --default "")
|
PUBLISH_CHANNEL=$(buildkite-agent meta-data get "channel" --default "")
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ -z $CHANNEL ]]; then
|
if [[ -z $PUBLISH_CHANNEL ]]; then
|
||||||
(
|
(
|
||||||
cat <<EOF
|
cat <<EOF
|
||||||
steps:
|
steps:
|
||||||
@ -37,7 +37,7 @@ fi
|
|||||||
ci/channel-info.sh
|
ci/channel-info.sh
|
||||||
eval "$(ci/channel-info.sh)"
|
eval "$(ci/channel-info.sh)"
|
||||||
|
|
||||||
case $CHANNEL in
|
case $PUBLISH_CHANNEL in
|
||||||
edge)
|
edge)
|
||||||
CHANNEL_BRANCH=$EDGE_CHANNEL
|
CHANNEL_BRANCH=$EDGE_CHANNEL
|
||||||
;;
|
;;
|
||||||
@ -48,7 +48,7 @@ stable)
|
|||||||
CHANNEL_BRANCH=$STABLE_CHANNEL
|
CHANNEL_BRANCH=$STABLE_CHANNEL
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
echo "Error: Invalid CHANNEL=$CHANNEL"
|
echo "Error: Invalid PUBLISH_CHANNEL=$PUBLISH_CHANNEL"
|
||||||
exit 1
|
exit 1
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
@ -63,11 +63,11 @@ steps:
|
|||||||
message: "$BUILDKITE_MESSAGE"
|
message: "$BUILDKITE_MESSAGE"
|
||||||
branch: "$CHANNEL_BRANCH"
|
branch: "$CHANNEL_BRANCH"
|
||||||
env:
|
env:
|
||||||
CHANNEL: "$CHANNEL"
|
PUBLISH_CHANNEL: "$PUBLISH_CHANNEL"
|
||||||
EOF
|
EOF
|
||||||
) | buildkite-agent pipeline upload
|
) | buildkite-agent pipeline upload
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
set -x
|
set -x
|
||||||
exec metrics/publish-metrics-dashboard.sh "$CHANNEL"
|
exec metrics/publish-metrics-dashboard.sh "$PUBLISH_CHANNEL"
|
||||||
|
@ -11,14 +11,6 @@ fi
|
|||||||
|
|
||||||
eval "$(ci/channel-info.sh)"
|
eval "$(ci/channel-info.sh)"
|
||||||
|
|
||||||
if [[ $BUILDKITE_BRANCH = "$STABLE_CHANNEL" ]]; then
|
|
||||||
CHANNEL=stable
|
|
||||||
elif [[ $BUILDKITE_BRANCH = "$EDGE_CHANNEL" ]]; then
|
|
||||||
CHANNEL=edge
|
|
||||||
elif [[ $BUILDKITE_BRANCH = "$BETA_CHANNEL" ]]; then
|
|
||||||
CHANNEL=beta
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ -n "$BUILDKITE_TAG" ]]; then
|
if [[ -n "$BUILDKITE_TAG" ]]; then
|
||||||
CHANNEL_OR_TAG=$BUILDKITE_TAG
|
CHANNEL_OR_TAG=$BUILDKITE_TAG
|
||||||
elif [[ -n "$TRIGGERED_BUILDKITE_TAG" ]]; then
|
elif [[ -n "$TRIGGERED_BUILDKITE_TAG" ]]; then
|
||||||
|
14
ci/snap.sh
14
ci/snap.sh
@ -19,14 +19,6 @@ fi
|
|||||||
|
|
||||||
eval "$(ci/channel-info.sh)"
|
eval "$(ci/channel-info.sh)"
|
||||||
|
|
||||||
if [[ $BUILDKITE_BRANCH = "$STABLE_CHANNEL" ]]; then
|
|
||||||
CHANNEL=stable
|
|
||||||
elif [[ $BUILDKITE_BRANCH = "$EDGE_CHANNEL" ]]; then
|
|
||||||
CHANNEL=edge
|
|
||||||
elif [[ $BUILDKITE_BRANCH = "$BETA_CHANNEL" ]]; then
|
|
||||||
CHANNEL=beta
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ -z $CHANNEL ]]; then
|
if [[ -z $CHANNEL ]]; then
|
||||||
echo Unable to determine channel to publish into, exiting.
|
echo Unable to determine channel to publish into, exiting.
|
||||||
exit 1
|
exit 1
|
||||||
@ -61,13 +53,13 @@ if [[ ! -x /usr/bin/multilog ]]; then
|
|||||||
sudo apt-get install -y daemontools
|
sudo apt-get install -y daemontools
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo --- build: $CHANNEL channel
|
echo "--- build: $CHANNEL channel"
|
||||||
snapcraft
|
snapcraft
|
||||||
|
|
||||||
source ci/upload-ci-artifact.sh
|
source ci/upload-ci-artifact.sh
|
||||||
upload-ci-artifact solana_*.snap
|
upload-ci-artifact solana_*.snap
|
||||||
|
|
||||||
if [[ -z $DO_NOT_PUBLISH_SNAP ]]; then
|
if [[ -z $DO_NOT_PUBLISH_SNAP ]]; then
|
||||||
echo --- publish: $CHANNEL channel
|
echo "--- publish: $CHANNEL channel"
|
||||||
$DRYRUN snapcraft push solana_*.snap --release $CHANNEL
|
$DRYRUN snapcraft push solana_*.snap --release "$CHANNEL"
|
||||||
fi
|
fi
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
set -e
|
set -e
|
||||||
|
|
||||||
cd "$(dirname "$0")"/..
|
cd "$(dirname "$0")"/..
|
||||||
|
source ci/upload-ci-artifact.sh
|
||||||
|
|
||||||
zone=
|
zone=
|
||||||
bootstrapFullNodeAddress=
|
bootstrapFullNodeAddress=
|
||||||
@ -9,12 +10,16 @@ bootstrapFullNodeMachineType=
|
|||||||
clientNodeCount=0
|
clientNodeCount=0
|
||||||
additionalFullNodeCount=10
|
additionalFullNodeCount=10
|
||||||
publicNetwork=false
|
publicNetwork=false
|
||||||
snapChannel=edge
|
skipSetup=false
|
||||||
|
skipStart=false
|
||||||
|
stopNetwork=false
|
||||||
|
externalNode=false
|
||||||
tarChannelOrTag=edge
|
tarChannelOrTag=edge
|
||||||
delete=false
|
delete=false
|
||||||
enableGpu=false
|
enableGpu=false
|
||||||
|
bootDiskType=""
|
||||||
leaderRotation=true
|
leaderRotation=true
|
||||||
useTarReleaseChannel=false
|
blockstreamer=false
|
||||||
|
|
||||||
usage() {
|
usage() {
|
||||||
exitcode=0
|
exitcode=0
|
||||||
@ -23,29 +28,35 @@ usage() {
|
|||||||
echo "Error: $*"
|
echo "Error: $*"
|
||||||
fi
|
fi
|
||||||
cat <<EOF
|
cat <<EOF
|
||||||
usage: $0 [name] [cloud] [zone] [options...]
|
usage: $0 -p network-name -C cloud -z zone1 [-z zone2] ... [-z zoneN] [options...]
|
||||||
|
|
||||||
Deploys a CD testnet
|
Deploys a CD testnet
|
||||||
|
|
||||||
name - name of the network
|
mandatory arguments:
|
||||||
cloud - cloud provider to use (gce, ec2)
|
-p [network-name] - name of the network
|
||||||
zone - cloud provider zone to deploy the network into
|
-C [cloud] - cloud provider to use (gce, ec2)
|
||||||
|
-z [zone] - cloud provider zone to deploy the network into. Must specify at least one zone
|
||||||
|
|
||||||
options:
|
options:
|
||||||
-s edge|beta|stable - Deploy the specified Snap release channel
|
|
||||||
(default: $snapChannel)
|
|
||||||
-t edge|beta|stable|vX.Y.Z - Deploy the latest tarball release for the
|
-t edge|beta|stable|vX.Y.Z - Deploy the latest tarball release for the
|
||||||
specified release channel (edge|beta|stable) or release tag
|
specified release channel (edge|beta|stable) or release tag
|
||||||
(vX.Y.Z)
|
(vX.Y.Z)
|
||||||
(default: $tarChannelOrTag)
|
(default: $tarChannelOrTag)
|
||||||
-n [number] - Number of additional full nodes (default: $additionalFullNodeCount)
|
-n [number] - Number of additional full nodes (default: $additionalFullNodeCount)
|
||||||
-c [number] - Number of client bencher nodes (default: $clientNodeCount)
|
-c [number] - Number of client bencher nodes (default: $clientNodeCount)
|
||||||
|
-u - Include a Blockstreamer (default: $blockstreamer)
|
||||||
-P - Use public network IP addresses (default: $publicNetwork)
|
-P - Use public network IP addresses (default: $publicNetwork)
|
||||||
-G - Enable GPU, and set count/type of GPUs to use (e.g n1-standard-16 --accelerator count=4,type=nvidia-tesla-k80)
|
-G - Enable GPU, and set count/type of GPUs to use (e.g n1-standard-16 --accelerator count=4,type=nvidia-tesla-k80)
|
||||||
-g - Enable GPU (default: $enableGpu)
|
-g - Enable GPU (default: $enableGpu)
|
||||||
-b - Disable leader rotation
|
-b - Disable leader rotation
|
||||||
-a [address] - Set the bootstrap fullnode's external IP address to this GCE address
|
-a [address] - Set the bootstrap fullnode's external IP address to this GCE address
|
||||||
-d - Delete the network
|
-d [disk-type] - Specify a boot disk type (default None) Use pd-ssd to get ssd on GCE.
|
||||||
|
-D - Delete the network
|
||||||
|
-r - Reuse existing node/ledger configuration from a
|
||||||
|
previous |start| (ie, don't run ./multinode-demo/setup.sh).
|
||||||
|
-x - External node. Default: false
|
||||||
|
-s - Skip start. Nodes will still be created or configured, but network software will not be started.
|
||||||
|
-S - Stop network software without tearing down nodes.
|
||||||
|
|
||||||
Note: the SOLANA_METRICS_CONFIG environment variable is used to configure
|
Note: the SOLANA_METRICS_CONFIG environment variable is used to configure
|
||||||
metrics
|
metrics
|
||||||
@ -53,19 +64,22 @@ EOF
|
|||||||
exit $exitcode
|
exit $exitcode
|
||||||
}
|
}
|
||||||
|
|
||||||
netName=$1
|
zone=()
|
||||||
cloudProvider=$2
|
|
||||||
zone=$3
|
|
||||||
[[ -n $netName ]] || usage
|
|
||||||
[[ -n $cloudProvider ]] || usage "Cloud provider not specified"
|
|
||||||
[[ -n $zone ]] || usage "Zone not specified"
|
|
||||||
shift 3
|
|
||||||
|
|
||||||
while getopts "h?p:Pn:c:s:t:gG:a:db" opt; do
|
while getopts "h?p:Pn:c:t:gG:a:Dbd:rusxz:p:C:S" opt; do
|
||||||
case $opt in
|
case $opt in
|
||||||
h | \?)
|
h | \?)
|
||||||
usage
|
usage
|
||||||
;;
|
;;
|
||||||
|
p)
|
||||||
|
netName=$OPTARG
|
||||||
|
;;
|
||||||
|
C)
|
||||||
|
cloudProvider=$OPTARG
|
||||||
|
;;
|
||||||
|
z)
|
||||||
|
zone+=("$OPTARG")
|
||||||
|
;;
|
||||||
P)
|
P)
|
||||||
publicNetwork=true
|
publicNetwork=true
|
||||||
;;
|
;;
|
||||||
@ -75,21 +89,10 @@ while getopts "h?p:Pn:c:s:t:gG:a:db" opt; do
|
|||||||
c)
|
c)
|
||||||
clientNodeCount=$OPTARG
|
clientNodeCount=$OPTARG
|
||||||
;;
|
;;
|
||||||
s)
|
|
||||||
case $OPTARG in
|
|
||||||
edge|beta|stable)
|
|
||||||
snapChannel=$OPTARG
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
usage "Invalid snap channel: $OPTARG"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
;;
|
|
||||||
t)
|
t)
|
||||||
case $OPTARG in
|
case $OPTARG in
|
||||||
edge|beta|stable|v*)
|
edge|beta|stable|v*)
|
||||||
tarChannelOrTag=$OPTARG
|
tarChannelOrTag=$OPTARG
|
||||||
useTarReleaseChannel=true
|
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
usage "Invalid release channel: $OPTARG"
|
usage "Invalid release channel: $OPTARG"
|
||||||
@ -110,51 +113,139 @@ while getopts "h?p:Pn:c:s:t:gG:a:db" opt; do
|
|||||||
bootstrapFullNodeAddress=$OPTARG
|
bootstrapFullNodeAddress=$OPTARG
|
||||||
;;
|
;;
|
||||||
d)
|
d)
|
||||||
|
bootDiskType=$OPTARG
|
||||||
|
;;
|
||||||
|
D)
|
||||||
delete=true
|
delete=true
|
||||||
;;
|
;;
|
||||||
|
r)
|
||||||
|
skipSetup=true
|
||||||
|
;;
|
||||||
|
s)
|
||||||
|
skipStart=true
|
||||||
|
;;
|
||||||
|
x)
|
||||||
|
externalNode=true
|
||||||
|
;;
|
||||||
|
u)
|
||||||
|
blockstreamer=true
|
||||||
|
;;
|
||||||
|
S)
|
||||||
|
stopNetwork=true
|
||||||
|
;;
|
||||||
*)
|
*)
|
||||||
usage "Error: unhandled option: $opt"
|
usage "Error: unhandled option: $opt"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
|
[[ -n $netName ]] || usage
|
||||||
|
[[ -n $cloudProvider ]] || usage "Cloud provider not specified"
|
||||||
|
[[ -n ${zone[*]} ]] || usage "At least one zone must be specified"
|
||||||
|
|
||||||
create_args=(
|
shutdown() {
|
||||||
-a "$bootstrapFullNodeAddress"
|
exitcode=$?
|
||||||
-c "$clientNodeCount"
|
|
||||||
-n "$additionalFullNodeCount"
|
|
||||||
-p "$netName"
|
|
||||||
-z "$zone"
|
|
||||||
)
|
|
||||||
|
|
||||||
if $enableGpu; then
|
set +e
|
||||||
if [[ -z $bootstrapFullNodeMachineType ]]; then
|
if [[ -d net/log ]]; then
|
||||||
create_args+=(-g)
|
mv net/log net/log-deploy
|
||||||
else
|
for logfile in net/log-deploy/*; do
|
||||||
create_args+=(-G "$bootstrapFullNodeMachineType")
|
if [[ -f $logfile ]]; then
|
||||||
|
upload-ci-artifact "$logfile"
|
||||||
|
tail "$logfile"
|
||||||
|
fi
|
||||||
|
done
|
||||||
fi
|
fi
|
||||||
fi
|
exit $exitcode
|
||||||
|
}
|
||||||
if ! $leaderRotation; then
|
rm -rf net/{log,-deploy}
|
||||||
create_args+=(-b)
|
trap shutdown EXIT INT
|
||||||
fi
|
|
||||||
|
|
||||||
if $publicNetwork; then
|
|
||||||
create_args+=(-P)
|
|
||||||
fi
|
|
||||||
|
|
||||||
set -x
|
set -x
|
||||||
|
|
||||||
echo "--- $cloudProvider.sh delete"
|
# Build a string to pass zone opts to $cloudProvider.sh: "-z zone1 -z zone2 ..."
|
||||||
time net/"$cloudProvider".sh delete -z "$zone" -p "$netName"
|
zone_args=()
|
||||||
if $delete; then
|
for val in "${zone[@]}"; do
|
||||||
exit 0
|
zone_args+=("-z $val")
|
||||||
|
done
|
||||||
|
|
||||||
|
if $stopNetwork; then
|
||||||
|
skipSetup=true
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "--- $cloudProvider.sh create"
|
if $delete; then
|
||||||
time net/"$cloudProvider".sh create "${create_args[@]}"
|
skipSetup=false
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Create the network
|
||||||
|
if ! $skipSetup; then
|
||||||
|
echo "--- $cloudProvider.sh delete"
|
||||||
|
# shellcheck disable=SC2068
|
||||||
|
time net/"$cloudProvider".sh delete ${zone_args[@]} -p "$netName"
|
||||||
|
if $delete; then
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "--- $cloudProvider.sh create"
|
||||||
|
create_args=(
|
||||||
|
-p "$netName"
|
||||||
|
-a "$bootstrapFullNodeAddress"
|
||||||
|
-c "$clientNodeCount"
|
||||||
|
-n "$additionalFullNodeCount"
|
||||||
|
)
|
||||||
|
# shellcheck disable=SC2206
|
||||||
|
create_args+=(${zone_args[@]})
|
||||||
|
|
||||||
|
if $blockstreamer; then
|
||||||
|
create_args+=(-u)
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -n $bootDiskType ]]; then
|
||||||
|
create_args+=(-d "$bootDiskType")
|
||||||
|
fi
|
||||||
|
|
||||||
|
if $enableGpu; then
|
||||||
|
if [[ -z $bootstrapFullNodeMachineType ]]; then
|
||||||
|
create_args+=(-g)
|
||||||
|
else
|
||||||
|
create_args+=(-G "$bootstrapFullNodeMachineType")
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! $leaderRotation; then
|
||||||
|
create_args+=(-b)
|
||||||
|
fi
|
||||||
|
|
||||||
|
if $publicNetwork; then
|
||||||
|
create_args+=(-P)
|
||||||
|
fi
|
||||||
|
|
||||||
|
if $externalNode; then
|
||||||
|
create_args+=(-x)
|
||||||
|
fi
|
||||||
|
|
||||||
|
time net/"$cloudProvider".sh create "${create_args[@]}"
|
||||||
|
else
|
||||||
|
echo "--- $cloudProvider.sh config"
|
||||||
|
config_args=(
|
||||||
|
-p "$netName"
|
||||||
|
)
|
||||||
|
# shellcheck disable=SC2206
|
||||||
|
config_args+=(${zone_args[@]})
|
||||||
|
if $publicNetwork; then
|
||||||
|
config_args+=(-P)
|
||||||
|
fi
|
||||||
|
|
||||||
|
time net/"$cloudProvider".sh config "${config_args[@]}"
|
||||||
|
fi
|
||||||
net/init-metrics.sh -e
|
net/init-metrics.sh -e
|
||||||
|
|
||||||
|
if $stopNetwork; then
|
||||||
|
echo --- net.sh stop
|
||||||
|
time net/net.sh stop
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
echo --- net.sh start
|
echo --- net.sh start
|
||||||
maybeRejectExtraNodes=
|
maybeRejectExtraNodes=
|
||||||
if ! $publicNetwork; then
|
if ! $publicNetwork; then
|
||||||
@ -168,10 +259,38 @@ maybeNoLedgerVerify=
|
|||||||
if [[ -n $NO_LEDGER_VERIFY ]]; then
|
if [[ -n $NO_LEDGER_VERIFY ]]; then
|
||||||
maybeNoLedgerVerify="-o noLedgerVerify"
|
maybeNoLedgerVerify="-o noLedgerVerify"
|
||||||
fi
|
fi
|
||||||
# shellcheck disable=SC2086 # Don't want to double quote maybeRejectExtraNodes
|
|
||||||
if $useTarReleaseChannel; then
|
maybeSkipSetup=
|
||||||
time net/net.sh start -t "$tarChannelOrTag" $maybeRejectExtraNodes $maybeNoValidatorSanity $maybeNoLedgerVerify
|
if $skipSetup; then
|
||||||
else
|
maybeSkipSetup="-r"
|
||||||
time net/net.sh start -s "$snapChannel" $maybeRejectExtraNodes $maybeNoValidatorSanity $maybeNoLedgerVerify
|
|
||||||
fi
|
fi
|
||||||
exit 0
|
|
||||||
|
ok=true
|
||||||
|
if ! $skipStart; then
|
||||||
|
(
|
||||||
|
if $skipSetup; then
|
||||||
|
# TODO: Enable rolling updates
|
||||||
|
#op=update
|
||||||
|
op=restart
|
||||||
|
else
|
||||||
|
op=start
|
||||||
|
fi
|
||||||
|
|
||||||
|
maybeUpdateManifestKeypairFile=
|
||||||
|
# shellcheck disable=SC2154 # SOLANA_INSTALL_UPDATE_MANIFEST_KEYPAIR_x86_64_unknown_linux_gnu comes from .buildkite/env/
|
||||||
|
if [[ -n $SOLANA_INSTALL_UPDATE_MANIFEST_KEYPAIR_x86_64_unknown_linux_gnu ]]; then
|
||||||
|
echo "$SOLANA_INSTALL_UPDATE_MANIFEST_KEYPAIR_x86_64_unknown_linux_gnu" > update_manifest_keypair.json
|
||||||
|
maybeUpdateManifestKeypairFile="-i update_manifest_keypair.json"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# shellcheck disable=SC2086 # Don't want to double quote the $maybeXYZ variables
|
||||||
|
time net/net.sh $op -t "$tarChannelOrTag" \
|
||||||
|
$maybeUpdateManifestKeypairFile \
|
||||||
|
$maybeSkipSetup \
|
||||||
|
$maybeRejectExtraNodes \
|
||||||
|
$maybeNoValidatorSanity \
|
||||||
|
$maybeNoLedgerVerify
|
||||||
|
) || ok=false
|
||||||
|
fi
|
||||||
|
|
||||||
|
$ok
|
||||||
|
@ -42,18 +42,28 @@ steps:
|
|||||||
value: "testnet-beta"
|
value: "testnet-beta"
|
||||||
- label: "testnet-beta-perf"
|
- label: "testnet-beta-perf"
|
||||||
value: "testnet-beta-perf"
|
value: "testnet-beta-perf"
|
||||||
|
- label: "testnet-demo"
|
||||||
|
value: "testnet-demo"
|
||||||
- select: "Operation"
|
- select: "Operation"
|
||||||
key: "testnet-operation"
|
key: "testnet-operation"
|
||||||
default: "sanity-or-restart"
|
default: "sanity-or-restart"
|
||||||
options:
|
options:
|
||||||
- label: "Sanity check. Restart network on failure"
|
- label: "Create new testnet nodes and then start network software. If nodes are already created, they will be deleted and then re-created."
|
||||||
value: "sanity-or-restart"
|
value: "create-and-start"
|
||||||
- label: "Start (or restart) the network"
|
- label: "Create new testnet nodes, but do not start network software. If nodes are already created, they will be deleted and then re-created."
|
||||||
|
value: "create"
|
||||||
|
- label: "Start network software on already-created testnet nodes. If software is already running, it will be restarted."
|
||||||
value: "start"
|
value: "start"
|
||||||
- label: "Stop the network"
|
- label: "Stop network software without deleting testnet nodes"
|
||||||
value: "stop"
|
value: "stop"
|
||||||
|
- label: "Update the network software. Restart network software on failure"
|
||||||
|
value: "update-or-restart"
|
||||||
|
- label: "Sanity check. Restart network software on failure"
|
||||||
|
value: "sanity-or-restart"
|
||||||
- label: "Sanity check only"
|
- label: "Sanity check only"
|
||||||
value: "sanity"
|
value: "sanity"
|
||||||
|
- label: "Delete all nodes on a testnet. Network software will be stopped first if it is running"
|
||||||
|
value: "delete"
|
||||||
- command: "ci/$(basename "$0")"
|
- command: "ci/$(basename "$0")"
|
||||||
agents:
|
agents:
|
||||||
- "queue=$BUILDKITE_AGENT_META_DATA_QUEUE"
|
- "queue=$BUILDKITE_AGENT_META_DATA_QUEUE"
|
||||||
@ -62,29 +72,37 @@ EOF
|
|||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
export SOLANA_METRICS_CONFIG="db=$TESTNET,$SOLANA_METRICS_PARTIAL_CONFIG"
|
|
||||||
echo "SOLANA_METRICS_CONFIG: $SOLANA_METRICS_CONFIG"
|
|
||||||
|
|
||||||
ci/channel-info.sh
|
ci/channel-info.sh
|
||||||
eval "$(ci/channel-info.sh)"
|
eval "$(ci/channel-info.sh)"
|
||||||
|
|
||||||
|
|
||||||
|
EC2_ZONES=(us-west-1a sa-east-1a ap-northeast-2a eu-central-1a ca-central-1a)
|
||||||
|
GCE_ZONES=(us-west1-b asia-east2-a europe-west4-a southamerica-east1-b us-east4-c)
|
||||||
case $TESTNET in
|
case $TESTNET in
|
||||||
testnet-edge|testnet-edge-perf)
|
testnet-edge|testnet-edge-perf)
|
||||||
CHANNEL_OR_TAG=edge
|
CHANNEL_OR_TAG=edge
|
||||||
CHANNEL_BRANCH=$EDGE_CHANNEL
|
CHANNEL_BRANCH=$EDGE_CHANNEL
|
||||||
|
: "${TESTNET_DB_HOST:=https://clocktower-f1d56615.influxcloud.net:8086}"
|
||||||
;;
|
;;
|
||||||
testnet-beta|testnet-beta-perf)
|
testnet-beta|testnet-beta-perf)
|
||||||
CHANNEL_OR_TAG=beta
|
CHANNEL_OR_TAG=beta
|
||||||
CHANNEL_BRANCH=$BETA_CHANNEL
|
CHANNEL_BRANCH=$BETA_CHANNEL
|
||||||
|
: "${TESTNET_DB_HOST:=https://clocktower-f1d56615.influxcloud.net:8086}"
|
||||||
|
: "${EC2_NODE_COUNT:=10}"
|
||||||
|
: "${GCE_NODE_COUNT:=}"
|
||||||
;;
|
;;
|
||||||
testnet|testnet-perf)
|
testnet)
|
||||||
if [[ -n $BETA_CHANNEL_LATEST_TAG ]]; then
|
CHANNEL_OR_TAG=$STABLE_CHANNEL_LATEST_TAG
|
||||||
CHANNEL_OR_TAG=$BETA_CHANNEL_LATEST_TAG
|
CHANNEL_BRANCH=$STABLE_CHANNEL
|
||||||
CHANNEL_BRANCH=$BETA_CHANNEL
|
: "${TESTNET_DB_HOST:=https://clocktower-f1d56615.influxcloud.net:8086}"
|
||||||
else
|
;;
|
||||||
CHANNEL_OR_TAG=$STABLE_CHANNEL_LATEST_TAG
|
testnet-perf)
|
||||||
CHANNEL_BRANCH=$STABLE_CHANNEL
|
CHANNEL_OR_TAG=$STABLE_CHANNEL_LATEST_TAG
|
||||||
fi
|
CHANNEL_BRANCH=$STABLE_CHANNEL
|
||||||
|
;;
|
||||||
|
testnet-demo)
|
||||||
|
CHANNEL_OR_TAG=beta
|
||||||
|
CHANNEL_BRANCH=$BETA_CHANNEL
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
echo "Error: Invalid TESTNET=$TESTNET"
|
echo "Error: Invalid TESTNET=$TESTNET"
|
||||||
@ -92,9 +110,21 @@ testnet|testnet-perf)
|
|||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
if [[ $BUILDKITE_BRANCH != "$CHANNEL_BRANCH" ]]; then
|
if [[ -n $TESTNET_DB_HOST ]]; then
|
||||||
(
|
SOLANA_METRICS_PARTIAL_CONFIG="host=$TESTNET_DB_HOST,$SOLANA_METRICS_PARTIAL_CONFIG"
|
||||||
cat <<EOF
|
fi
|
||||||
|
|
||||||
|
export SOLANA_METRICS_CONFIG="db=$TESTNET,$SOLANA_METRICS_PARTIAL_CONFIG"
|
||||||
|
echo "SOLANA_METRICS_CONFIG: $SOLANA_METRICS_CONFIG"
|
||||||
|
source scripts/configure-metrics.sh
|
||||||
|
|
||||||
|
if [[ -n $TESTNET_TAG ]]; then
|
||||||
|
CHANNEL_OR_TAG=$TESTNET_TAG
|
||||||
|
else
|
||||||
|
|
||||||
|
if [[ $BUILDKITE_BRANCH != "$CHANNEL_BRANCH" ]]; then
|
||||||
|
(
|
||||||
|
cat <<EOF
|
||||||
steps:
|
steps:
|
||||||
- trigger: "$BUILDKITE_PIPELINE_SLUG"
|
- trigger: "$BUILDKITE_PIPELINE_SLUG"
|
||||||
async: true
|
async: true
|
||||||
@ -104,78 +134,78 @@ steps:
|
|||||||
env:
|
env:
|
||||||
TESTNET: "$TESTNET"
|
TESTNET: "$TESTNET"
|
||||||
TESTNET_OP: "$TESTNET_OP"
|
TESTNET_OP: "$TESTNET_OP"
|
||||||
|
TESTNET_DB_HOST: "$TESTNET_DB_HOST"
|
||||||
|
EC2_NODE_COUNT: "$EC2_NODE_COUNT"
|
||||||
|
GCE_NODE_COUNT: "$GCE_NODE_COUNT"
|
||||||
EOF
|
EOF
|
||||||
) | buildkite-agent pipeline upload
|
) | buildkite-agent pipeline upload
|
||||||
exit 0
|
exit 0
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
sanity() {
|
sanity() {
|
||||||
echo "--- sanity $TESTNET"
|
echo "--- sanity $TESTNET"
|
||||||
case $TESTNET in
|
case $TESTNET in
|
||||||
testnet-edge)
|
testnet-edge)
|
||||||
# shellcheck disable=2030
|
|
||||||
# shellcheck disable=2031
|
|
||||||
(
|
(
|
||||||
set -ex
|
set -x
|
||||||
export NO_LEDGER_VERIFY=1
|
NO_LEDGER_VERIFY=1 \
|
||||||
export NO_VALIDATOR_SANITY=1
|
ci/testnet-sanity.sh edge-testnet-solana-com ec2 us-west-1a
|
||||||
ci/testnet-sanity.sh edge-testnet-solana-com ec2 us-west-1a
|
|
||||||
)
|
)
|
||||||
;;
|
;;
|
||||||
testnet-edge-perf)
|
testnet-edge-perf)
|
||||||
# shellcheck disable=2030
|
|
||||||
# shellcheck disable=2031
|
|
||||||
(
|
(
|
||||||
set -ex
|
set -x
|
||||||
export REJECT_EXTRA_NODES=1
|
REJECT_EXTRA_NODES=1 \
|
||||||
export NO_LEDGER_VERIFY=1
|
NO_LEDGER_VERIFY=1 \
|
||||||
export NO_VALIDATOR_SANITY=1
|
NO_VALIDATOR_SANITY=1 \
|
||||||
ci/testnet-sanity.sh edge-perf-testnet-solana-com ec2 us-west-2b
|
ci/testnet-sanity.sh edge-perf-testnet-solana-com ec2 us-west-2b
|
||||||
)
|
)
|
||||||
;;
|
;;
|
||||||
testnet-beta)
|
testnet-beta)
|
||||||
# shellcheck disable=2030
|
|
||||||
# shellcheck disable=2031
|
|
||||||
(
|
(
|
||||||
set -ex
|
set -x
|
||||||
export NO_LEDGER_VERIFY=1
|
|
||||||
export NO_VALIDATOR_SANITY=1
|
ok=true
|
||||||
ci/testnet-sanity.sh beta-testnet-solana-com ec2 us-west-1a
|
if [[ -n $EC2_NODE_COUNT ]]; then
|
||||||
|
NO_LEDGER_VERIFY=1 \
|
||||||
|
ci/testnet-sanity.sh beta-testnet-solana-com ec2 "${EC2_ZONES[0]}" || ok=false
|
||||||
|
elif [[ -n $GCE_NODE_COUNT ]]; then
|
||||||
|
NO_LEDGER_VERIFY=1 \
|
||||||
|
ci/testnet-sanity.sh beta-testnet-solana-com gce "${GCE_ZONES[0]}" || ok=false
|
||||||
|
else
|
||||||
|
echo "Error: no EC2 or GCE nodes"
|
||||||
|
ok=false
|
||||||
|
fi
|
||||||
|
$ok
|
||||||
)
|
)
|
||||||
;;
|
;;
|
||||||
testnet-beta-perf)
|
testnet-beta-perf)
|
||||||
# shellcheck disable=2030
|
|
||||||
# shellcheck disable=2031
|
|
||||||
(
|
(
|
||||||
set -ex
|
set -x
|
||||||
export REJECT_EXTRA_NODES=1
|
REJECT_EXTRA_NODES=1 \
|
||||||
export NO_LEDGER_VERIFY=1
|
NO_LEDGER_VERIFY=1 \
|
||||||
export NO_VALIDATOR_SANITY=1
|
NO_VALIDATOR_SANITY=1 \
|
||||||
ci/testnet-sanity.sh beta-perf-testnet-solana-com ec2 us-west-2b
|
ci/testnet-sanity.sh beta-perf-testnet-solana-com ec2 us-west-2b
|
||||||
)
|
)
|
||||||
;;
|
;;
|
||||||
testnet)
|
testnet)
|
||||||
# shellcheck disable=2030
|
|
||||||
# shellcheck disable=2031
|
|
||||||
(
|
(
|
||||||
set -ex
|
set -x
|
||||||
export NO_LEDGER_VERIFY=1
|
NO_LEDGER_VERIFY=1 \
|
||||||
export NO_VALIDATOR_SANITY=1
|
NO_VALIDATOR_SANITY=1 \
|
||||||
|
ci/testnet-sanity.sh testnet-solana-com ec2 us-west-1a
|
||||||
#ci/testnet-sanity.sh testnet-solana-com gce us-east1-c
|
#ci/testnet-sanity.sh testnet-solana-com gce us-east1-c
|
||||||
ci/testnet-sanity.sh testnet-solana-com ec2 us-west-1a
|
|
||||||
)
|
)
|
||||||
;;
|
;;
|
||||||
testnet-perf)
|
testnet-perf)
|
||||||
# shellcheck disable=2030
|
|
||||||
# shellcheck disable=2031
|
|
||||||
(
|
(
|
||||||
set -ex
|
set -x
|
||||||
export REJECT_EXTRA_NODES=1
|
REJECT_EXTRA_NODES=1 \
|
||||||
export NO_LEDGER_VERIFY=1
|
NO_LEDGER_VERIFY=1 \
|
||||||
export NO_VALIDATOR_SANITY=1
|
NO_VALIDATOR_SANITY=1 \
|
||||||
|
ci/testnet-sanity.sh perf-testnet-solana-com gce us-west1-b
|
||||||
#ci/testnet-sanity.sh perf-testnet-solana-com ec2 us-east-1a
|
#ci/testnet-sanity.sh perf-testnet-solana-com ec2 us-east-1a
|
||||||
ci/testnet-sanity.sh perf-testnet-solana-com gce us-west1-b
|
|
||||||
)
|
)
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
@ -185,100 +215,146 @@ sanity() {
|
|||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
|
deploy() {
|
||||||
|
declare maybeCreate=$1
|
||||||
|
declare maybeStart=$2
|
||||||
|
declare maybeStop=$3
|
||||||
|
declare maybeDelete=$4
|
||||||
|
|
||||||
start() {
|
echo "--- deploy \"$maybeCreate\" \"$maybeStart\" \"$maybeStop\" \"$maybeDelete\""
|
||||||
declare maybeDelete=$1
|
|
||||||
if [[ -z $maybeDelete ]]; then
|
# Create or recreate the nodes
|
||||||
echo "--- start $TESTNET"
|
if [[ -z $maybeCreate ]]; then
|
||||||
|
skipCreate=skip
|
||||||
else
|
else
|
||||||
echo "--- stop $TESTNET"
|
skipCreate=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Start or restart the network software on the nodes
|
||||||
|
if [[ -z $maybeStart ]]; then
|
||||||
|
skipStart=skip
|
||||||
|
else
|
||||||
|
skipStart=""
|
||||||
fi
|
fi
|
||||||
|
|
||||||
case $TESTNET in
|
case $TESTNET in
|
||||||
testnet-edge)
|
testnet-edge)
|
||||||
# shellcheck disable=2030
|
|
||||||
# shellcheck disable=2031
|
|
||||||
(
|
(
|
||||||
set -ex
|
set -x
|
||||||
export NO_LEDGER_VERIFY=1
|
ci/testnet-deploy.sh -p edge-testnet-solana-com -C ec2 -z us-west-1a \
|
||||||
export NO_VALIDATOR_SANITY=1
|
-t "$CHANNEL_OR_TAG" -n 3 -c 0 -u -P -a eipalloc-0ccd4f2239886fa94 \
|
||||||
ci/testnet-deploy.sh edge-testnet-solana-com ec2 us-west-1a \
|
${skipCreate:+-r} \
|
||||||
-t "$CHANNEL_OR_TAG" -n 3 -c 0 -P -a eipalloc-0ccd4f2239886fa94 \
|
${skipStart:+-s} \
|
||||||
${maybeDelete:+-d}
|
${maybeStop:+-S} \
|
||||||
|
${maybeDelete:+-D}
|
||||||
)
|
)
|
||||||
;;
|
;;
|
||||||
testnet-edge-perf)
|
testnet-edge-perf)
|
||||||
# shellcheck disable=2030
|
|
||||||
# shellcheck disable=2031
|
|
||||||
(
|
(
|
||||||
set -ex
|
set -x
|
||||||
export NO_LEDGER_VERIFY=1
|
NO_LEDGER_VERIFY=1 \
|
||||||
export NO_VALIDATOR_SANITY=1
|
NO_VALIDATOR_SANITY=1 \
|
||||||
ci/testnet-deploy.sh edge-perf-testnet-solana-com ec2 us-west-2b \
|
RUST_LOG=solana=warn \
|
||||||
-g -t "$CHANNEL_OR_TAG" -c 2 \
|
ci/testnet-deploy.sh -p edge-perf-testnet-solana-com -C ec2 -z us-west-2b \
|
||||||
-b \
|
-g -t "$CHANNEL_OR_TAG" -c 2 \
|
||||||
${maybeDelete:+-d}
|
-b \
|
||||||
|
${skipCreate:+-r} \
|
||||||
|
${skipStart:+-s} \
|
||||||
|
${maybeStop:+-S} \
|
||||||
|
${maybeDelete:+-D}
|
||||||
)
|
)
|
||||||
;;
|
;;
|
||||||
testnet-beta)
|
testnet-beta)
|
||||||
# shellcheck disable=2030
|
|
||||||
# shellcheck disable=2031
|
|
||||||
(
|
(
|
||||||
set -ex
|
set -x
|
||||||
export NO_LEDGER_VERIFY=1
|
|
||||||
export NO_VALIDATOR_SANITY=1
|
# Build an array to pass as opts to testnet-deploy.sh: "-z zone1 -z zone2 ..."
|
||||||
ci/testnet-deploy.sh beta-testnet-solana-com ec2 us-west-1a \
|
GCE_ZONE_ARGS=()
|
||||||
-t "$CHANNEL_OR_TAG" -n 3 -c 0 -P -a eipalloc-0f286cf8a0771ce35 \
|
for val in "${GCE_ZONES[@]}"; do
|
||||||
-b \
|
GCE_ZONE_ARGS+=("-z $val")
|
||||||
${maybeDelete:+-d}
|
done
|
||||||
|
|
||||||
|
EC2_ZONE_ARGS=()
|
||||||
|
for val in "${EC2_ZONES[@]}"; do
|
||||||
|
EC2_ZONE_ARGS+=("-z $val")
|
||||||
|
done
|
||||||
|
|
||||||
|
if [[ -n $EC2_NODE_COUNT ]]; then
|
||||||
|
if [[ -n $GCE_NODE_COUNT ]] || [[ -n $skipStart ]]; then
|
||||||
|
maybeSkipStart="skip"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# shellcheck disable=SC2068
|
||||||
|
ci/testnet-deploy.sh -p beta-testnet-solana-com -C ec2 ${EC2_ZONE_ARGS[@]} \
|
||||||
|
-t "$CHANNEL_OR_TAG" -n "$EC2_NODE_COUNT" -c 0 -u -P -a eipalloc-0f286cf8a0771ce35 \
|
||||||
|
${skipCreate:+-r} \
|
||||||
|
${maybeSkipStart:+-s} \
|
||||||
|
${maybeStop:+-S} \
|
||||||
|
${maybeDelete:+-D}
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -n $GCE_NODE_COUNT ]]; then
|
||||||
|
# shellcheck disable=SC2068
|
||||||
|
ci/testnet-deploy.sh -p beta-testnet-solana-com -C gce ${GCE_ZONE_ARGS[@]} \
|
||||||
|
-t "$CHANNEL_OR_TAG" -n "$GCE_NODE_COUNT" -c 0 -P \
|
||||||
|
${skipCreate:+-r} \
|
||||||
|
${skipStart:+-s} \
|
||||||
|
${maybeStop:+-S} \
|
||||||
|
${maybeDelete:+-D} \
|
||||||
|
${EC2_NODE_COUNT:+-x}
|
||||||
|
fi
|
||||||
)
|
)
|
||||||
;;
|
;;
|
||||||
testnet-beta-perf)
|
testnet-beta-perf)
|
||||||
# shellcheck disable=2030
|
|
||||||
# shellcheck disable=2031
|
|
||||||
(
|
(
|
||||||
set -ex
|
set -x
|
||||||
export NO_LEDGER_VERIFY=1
|
NO_LEDGER_VERIFY=1 \
|
||||||
export NO_VALIDATOR_SANITY=1
|
NO_VALIDATOR_SANITY=1 \
|
||||||
ci/testnet-deploy.sh beta-perf-testnet-solana-com ec2 us-west-2b \
|
RUST_LOG=solana=warn \
|
||||||
-g -t "$CHANNEL_OR_TAG" -c 2 \
|
ci/testnet-deploy.sh -p beta-perf-testnet-solana-com -C ec2 -z us-west-2b \
|
||||||
-b \
|
-g -t "$CHANNEL_OR_TAG" -c 2 \
|
||||||
${maybeDelete:+-d}
|
-b \
|
||||||
|
${skipCreate:+-r} \
|
||||||
|
${skipStart:+-s} \
|
||||||
|
${maybeStop:+-S} \
|
||||||
|
${maybeDelete:+-D}
|
||||||
)
|
)
|
||||||
;;
|
;;
|
||||||
testnet)
|
testnet)
|
||||||
# shellcheck disable=2030
|
|
||||||
# shellcheck disable=2031
|
|
||||||
(
|
(
|
||||||
set -ex
|
set -x
|
||||||
export NO_LEDGER_VERIFY=1
|
NO_VALIDATOR_SANITY=1 \
|
||||||
export NO_VALIDATOR_SANITY=1
|
ci/testnet-deploy.sh -p testnet-solana-com -C ec2 -z us-west-1a \
|
||||||
#ci/testnet-deploy.sh testnet-solana-com gce us-east1-c \
|
-t "$CHANNEL_OR_TAG" -n 3 -c 0 -u -P -a eipalloc-0fa502bf95f6f18b2 \
|
||||||
# -s "$CHANNEL_OR_TAG" -n 3 -c 0 -P -a testnet-solana-com \
|
-b \
|
||||||
# ${maybeDelete:+-d}
|
${skipCreate:+-r} \
|
||||||
ci/testnet-deploy.sh testnet-solana-com ec2 us-west-1a \
|
${skipStart:+-s} \
|
||||||
-t "$CHANNEL_OR_TAG" -n 3 -c 0 -P -a eipalloc-0fa502bf95f6f18b2 \
|
${maybeStop:+-S} \
|
||||||
-b \
|
${maybeDelete:+-D}
|
||||||
${maybeDelete:+-d}
|
|
||||||
)
|
)
|
||||||
;;
|
;;
|
||||||
testnet-perf)
|
testnet-perf)
|
||||||
# shellcheck disable=2030
|
|
||||||
# shellcheck disable=2031
|
|
||||||
(
|
(
|
||||||
set -ex
|
set -x
|
||||||
export NO_LEDGER_VERIFY=1
|
NO_LEDGER_VERIFY=1 \
|
||||||
export NO_VALIDATOR_SANITY=1
|
NO_VALIDATOR_SANITY=1 \
|
||||||
ci/testnet-deploy.sh perf-testnet-solana-com gce us-west1-b \
|
RUST_LOG=solana=warn \
|
||||||
-G "n1-standard-16 --accelerator count=2,type=nvidia-tesla-v100" \
|
ci/testnet-deploy.sh -p perf-testnet-solana-com -C gce -z us-west1-b \
|
||||||
-t "$CHANNEL_OR_TAG" -c 2 \
|
-G "n1-standard-16 --accelerator count=2,type=nvidia-tesla-v100" \
|
||||||
-b \
|
-t "$CHANNEL_OR_TAG" -c 2 \
|
||||||
-d pd-ssd \
|
-b \
|
||||||
${maybeDelete:+-d}
|
-d pd-ssd \
|
||||||
#ci/testnet-deploy.sh perf-testnet-solana-com ec2 us-east-1a \
|
${skipCreate:+-r} \
|
||||||
# -g \
|
${skipStart:+-s} \
|
||||||
# -t "$CHANNEL_OR_TAG" -c 2 \
|
${maybeStop:+-S} \
|
||||||
# ${maybeDelete:+-d}
|
${maybeDelete:+-D}
|
||||||
|
)
|
||||||
|
;;
|
||||||
|
testnet-demo)
|
||||||
|
(
|
||||||
|
set -x
|
||||||
|
echo "Demo net not yet implemented!"
|
||||||
|
exit 1
|
||||||
)
|
)
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
@ -288,29 +364,119 @@ start() {
|
|||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ENABLED_LOCKFILE="${HOME}/${TESTNET}.is_enabled"
|
||||||
|
CREATED_LOCKFILE="${HOME}/${TESTNET}.is_created"
|
||||||
|
|
||||||
|
create-and-start() {
|
||||||
|
rm -f "${CREATED_LOCKFILE}"
|
||||||
|
deploy create start
|
||||||
|
touch "${CREATED_LOCKFILE}"
|
||||||
|
}
|
||||||
|
create() {
|
||||||
|
rm -f "${CREATED_LOCKFILE}"
|
||||||
|
deploy create
|
||||||
|
touch "${CREATED_LOCKFILE}"
|
||||||
|
}
|
||||||
|
start() {
|
||||||
|
if [[ -f ${CREATED_LOCKFILE} ]]; then
|
||||||
|
deploy "" start
|
||||||
|
else
|
||||||
|
echo "Unable to start ${TESTNET}. Are the nodes created?
|
||||||
|
Re-run ci/testnet-manager.sh with \$TESTNET_OP=create or \$TESTNET_OP=create-and-start"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
stop() {
|
stop() {
|
||||||
start delete
|
deploy "" ""
|
||||||
|
}
|
||||||
|
delete() {
|
||||||
|
deploy "" "" "" delete
|
||||||
|
rm -f "${CREATED_LOCKFILE}"
|
||||||
|
}
|
||||||
|
enable_testnet() {
|
||||||
|
touch "${ENABLED_LOCKFILE}"
|
||||||
|
echo "+++ $TESTNET now enabled"
|
||||||
|
}
|
||||||
|
disable_testnet() {
|
||||||
|
rm -f "${ENABLED_LOCKFILE}"
|
||||||
|
echo "+++ $TESTNET now disabled"
|
||||||
|
}
|
||||||
|
is_testnet_enabled() {
|
||||||
|
if [[ ! -f ${ENABLED_LOCKFILE} ]]; then
|
||||||
|
echo "--- ${TESTNET} is currently disabled. Enable ${TESTNET} by running ci/testnet-manager.sh with \$TESTNET_OP=enable, then re-run with current settings."
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
case $TESTNET_OP in
|
case $TESTNET_OP in
|
||||||
sanity)
|
enable)
|
||||||
sanity
|
enable_testnet
|
||||||
|
;;
|
||||||
|
disable)
|
||||||
|
disable_testnet
|
||||||
|
delete
|
||||||
|
;;
|
||||||
|
create-and-start)
|
||||||
|
is_testnet_enabled
|
||||||
|
create-and-start
|
||||||
|
;;
|
||||||
|
create)
|
||||||
|
is_testnet_enabled
|
||||||
|
create
|
||||||
;;
|
;;
|
||||||
start)
|
start)
|
||||||
|
is_testnet_enabled
|
||||||
start
|
start
|
||||||
;;
|
;;
|
||||||
stop)
|
stop)
|
||||||
|
is_testnet_enabled
|
||||||
stop
|
stop
|
||||||
;;
|
;;
|
||||||
|
sanity)
|
||||||
|
is_testnet_enabled
|
||||||
|
sanity
|
||||||
|
;;
|
||||||
|
delete)
|
||||||
|
is_testnet_enabled
|
||||||
|
delete
|
||||||
|
;;
|
||||||
|
update-or-restart)
|
||||||
|
is_testnet_enabled
|
||||||
|
if start; then
|
||||||
|
echo Update successful
|
||||||
|
else
|
||||||
|
echo "+++ Update failed, restarting the network"
|
||||||
|
$metricsWriteDatapoint "testnet-manager update-failure=1"
|
||||||
|
create-and-start
|
||||||
|
fi
|
||||||
|
;;
|
||||||
sanity-or-restart)
|
sanity-or-restart)
|
||||||
|
is_testnet_enabled
|
||||||
if sanity; then
|
if sanity; then
|
||||||
echo Pass
|
echo Pass
|
||||||
else
|
else
|
||||||
echo "Sanity failed, restarting the network"
|
echo "+++ Sanity failed, updating the network"
|
||||||
echo "^^^ +++"
|
$metricsWriteDatapoint "testnet-manager sanity-failure=1"
|
||||||
start
|
|
||||||
|
# TODO: Restore attempt to restart the cluster before recreating it
|
||||||
|
# See https://github.com/solana-labs/solana/issues/3774
|
||||||
|
if false; then
|
||||||
|
if start; then
|
||||||
|
echo Update successful
|
||||||
|
else
|
||||||
|
echo "+++ Update failed, restarting the network"
|
||||||
|
$metricsWriteDatapoint "testnet-manager update-failure=1"
|
||||||
|
create-and-start
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
create-and-start
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
*)
|
||||||
|
echo "Error: Invalid TESTNET_OP=$TESTNET_OP"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
echo --- fin
|
echo --- fin
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "solana-drone"
|
name = "solana-drone"
|
||||||
version = "0.11.0"
|
version = "0.11.1"
|
||||||
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"
|
||||||
@ -19,8 +19,8 @@ clap = "2.31"
|
|||||||
log = "0.4.2"
|
log = "0.4.2"
|
||||||
serde = "1.0.82"
|
serde = "1.0.82"
|
||||||
serde_derive = "1.0.82"
|
serde_derive = "1.0.82"
|
||||||
solana-sdk = { path = "../sdk", version = "0.11.0" }
|
solana-sdk = { path = "../sdk", version = "0.11.1" }
|
||||||
solana-metrics = { path = "../metrics", version = "0.11.0" }
|
solana-metrics = { path = "../metrics", version = "0.11.1" }
|
||||||
tokio = "0.1"
|
tokio = "0.1"
|
||||||
tokio-codec = "0.1"
|
tokio-codec = "0.1"
|
||||||
|
|
||||||
|
@ -2,7 +2,8 @@
|
|||||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||||
edition = "2018"
|
edition = "2018"
|
||||||
name = "solana-fullnode-config"
|
name = "solana-fullnode-config"
|
||||||
version = "0.11.0"
|
description = "Blockchain, Rebuilt for Scale"
|
||||||
|
version = "0.11.1"
|
||||||
repository = "https://github.com/solana-labs/solana"
|
repository = "https://github.com/solana-labs/solana"
|
||||||
license = "Apache-2.0"
|
license = "Apache-2.0"
|
||||||
homepage = "https://solana.com/"
|
homepage = "https://solana.com/"
|
||||||
@ -14,8 +15,8 @@ log = "0.4.2"
|
|||||||
serde = "1.0.82"
|
serde = "1.0.82"
|
||||||
serde_derive = "1.0.82"
|
serde_derive = "1.0.82"
|
||||||
serde_json = "1.0.10"
|
serde_json = "1.0.10"
|
||||||
solana-netutil = { path = "../netutil", version = "0.11.0" }
|
solana-netutil = { path = "../netutil", version = "0.11.1" }
|
||||||
solana-sdk = { path = "../sdk", version = "0.11.0" }
|
solana-sdk = { path = "../sdk", version = "0.11.1" }
|
||||||
untrusted = "0.6.2"
|
untrusted = "0.6.2"
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
|
@ -2,7 +2,8 @@
|
|||||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||||
edition = "2018"
|
edition = "2018"
|
||||||
name = "solana-fullnode"
|
name = "solana-fullnode"
|
||||||
version = "0.11.0"
|
description = "Blockchain, Rebuilt for Scale"
|
||||||
|
version = "0.11.1"
|
||||||
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,13 +12,13 @@ homepage = "https://solana.com/"
|
|||||||
clap = "2.32.0"
|
clap = "2.32.0"
|
||||||
log = "0.4.2"
|
log = "0.4.2"
|
||||||
serde_json = "1.0.10"
|
serde_json = "1.0.10"
|
||||||
solana = { path = "..", version = "0.11.0" }
|
solana = { path = "..", version = "0.11.1" }
|
||||||
solana-drone = { path = "../drone", version = "0.11.0" }
|
solana-drone = { path = "../drone", version = "0.11.1" }
|
||||||
solana-fullnode-config = { path = "../fullnode-config", version = "0.11.0" }
|
solana-fullnode-config = { path = "../fullnode-config", version = "0.11.1" }
|
||||||
solana-logger = { path = "../logger", version = "0.11.0" }
|
solana-logger = { path = "../logger", version = "0.11.1" }
|
||||||
solana-netutil = { path = "../netutil", version = "0.11.0" }
|
solana-netutil = { path = "../netutil", version = "0.11.1" }
|
||||||
solana-metrics = { path = "../metrics", version = "0.11.0" }
|
solana-metrics = { path = "../metrics", version = "0.11.1" }
|
||||||
solana-sdk = { path = "../sdk", version = "0.11.0" }
|
solana-sdk = { path = "../sdk", version = "0.11.1" }
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
chacha = []
|
chacha = []
|
||||||
|
@ -2,7 +2,8 @@
|
|||||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||||
edition = "2018"
|
edition = "2018"
|
||||||
name = "solana-genesis"
|
name = "solana-genesis"
|
||||||
version = "0.11.0"
|
description = "Blockchain, Rebuilt for Scale"
|
||||||
|
version = "0.11.1"
|
||||||
repository = "https://github.com/solana-labs/solana"
|
repository = "https://github.com/solana-labs/solana"
|
||||||
license = "Apache-2.0"
|
license = "Apache-2.0"
|
||||||
homepage = "https://solana.com/"
|
homepage = "https://solana.com/"
|
||||||
@ -10,8 +11,8 @@ homepage = "https://solana.com/"
|
|||||||
[dependencies]
|
[dependencies]
|
||||||
clap = "2.32.0"
|
clap = "2.32.0"
|
||||||
serde_json = "1.0.10"
|
serde_json = "1.0.10"
|
||||||
solana = { path = "..", version = "0.11.0" }
|
solana = { path = "..", version = "0.11.1" }
|
||||||
solana-sdk = { path = "../sdk", version = "0.11.0" }
|
solana-sdk = { path = "../sdk", version = "0.11.1" }
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
cuda = []
|
cuda = []
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "solana-keygen"
|
name = "solana-keygen"
|
||||||
version = "0.11.0"
|
version = "0.11.1"
|
||||||
description = "Solana key generation utility"
|
description = "Solana key generation utility"
|
||||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||||
repository = "https://github.com/solana-labs/solana"
|
repository = "https://github.com/solana-labs/solana"
|
||||||
@ -14,7 +14,7 @@ cuda = []
|
|||||||
[dependencies]
|
[dependencies]
|
||||||
dirs = "1.0.2"
|
dirs = "1.0.2"
|
||||||
clap = "2.31"
|
clap = "2.31"
|
||||||
solana-sdk = { path = "../sdk", version = "0.11.0" }
|
solana-sdk = { path = "../sdk", version = "0.11.1" }
|
||||||
|
|
||||||
[[bin]]
|
[[bin]]
|
||||||
name = "solana-keygen"
|
name = "solana-keygen"
|
||||||
|
@ -2,7 +2,8 @@
|
|||||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||||
edition = "2018"
|
edition = "2018"
|
||||||
name = "solana-ledger-tool"
|
name = "solana-ledger-tool"
|
||||||
version = "0.11.0"
|
description = "Blockchain, Rebuilt for Scale"
|
||||||
|
version = "0.11.1"
|
||||||
repository = "https://github.com/solana-labs/solana"
|
repository = "https://github.com/solana-labs/solana"
|
||||||
license = "Apache-2.0"
|
license = "Apache-2.0"
|
||||||
homepage = "https://solana.com/"
|
homepage = "https://solana.com/"
|
||||||
@ -10,8 +11,8 @@ homepage = "https://solana.com/"
|
|||||||
[dependencies]
|
[dependencies]
|
||||||
clap = "2.32.0"
|
clap = "2.32.0"
|
||||||
serde_json = "1.0.10"
|
serde_json = "1.0.10"
|
||||||
solana = { path = "..", version = "0.11.0" }
|
solana = { path = "..", version = "0.11.1" }
|
||||||
solana-logger = { path = "../logger", version = "0.11.0" }
|
solana-logger = { path = "../logger", version = "0.11.1" }
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
cuda = []
|
cuda = []
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "solana-logger"
|
name = "solana-logger"
|
||||||
version = "0.11.0"
|
version = "0.11.1"
|
||||||
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-metrics"
|
name = "solana-metrics"
|
||||||
version = "0.11.0"
|
version = "0.11.1"
|
||||||
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 @@ log = "0.4.2"
|
|||||||
reqwest = "0.9.0"
|
reqwest = "0.9.0"
|
||||||
lazy_static = "1.2.0"
|
lazy_static = "1.2.0"
|
||||||
sys-info = "0.5.6"
|
sys-info = "0.5.6"
|
||||||
solana-sdk = { path = "../sdk", version = "0.11.0" }
|
solana-sdk = { path = "../sdk", version = "0.11.1" }
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
rand = "0.6.1"
|
rand = "0.6.1"
|
||||||
|
63
net/gce.sh
63
net/gce.sh
@ -154,6 +154,11 @@ case $cloudProvider in
|
|||||||
gce)
|
gce)
|
||||||
if $enableGpu; then
|
if $enableGpu; then
|
||||||
# Custom Ubuntu 18.04 LTS image with CUDA 9.2 and CUDA 10.0 installed
|
# Custom Ubuntu 18.04 LTS image with CUDA 9.2 and CUDA 10.0 installed
|
||||||
|
#
|
||||||
|
# TODO: Unfortunately this image is not public. When this becomes an issue,
|
||||||
|
# use the stock Ubuntu 18.04 image and programmatically install CUDA after the
|
||||||
|
# instance boots
|
||||||
|
#
|
||||||
imageName="ubuntu-1804-bionic-v20181029-with-cuda-10-and-cuda-9-2"
|
imageName="ubuntu-1804-bionic-v20181029-with-cuda-10-and-cuda-9-2"
|
||||||
else
|
else
|
||||||
# Upstream Ubuntu 18.04 LTS image
|
# Upstream Ubuntu 18.04 LTS image
|
||||||
@ -161,23 +166,45 @@ gce)
|
|||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
ec2)
|
ec2)
|
||||||
#
|
if $enableGpu; then
|
||||||
# Custom Ubuntu 18.04 LTS image with CUDA 9.2 and CUDA 10.0 installed
|
#
|
||||||
#
|
# Custom Ubuntu 18.04 LTS image with CUDA 9.2 and CUDA 10.0 installed
|
||||||
case $region in # (region global variable is set by cloud_SetZone)
|
#
|
||||||
us-east-1)
|
# TODO: Unfortunately these AMIs are not public. When this becomes an issue,
|
||||||
imageName="ami-0a8bd6fb204473f78"
|
# use the stock Ubuntu 18.04 image and programmatically install CUDA after the
|
||||||
;;
|
# instance boots
|
||||||
us-west-1)
|
#
|
||||||
imageName="ami-07011f0795513c59d"
|
case $region in
|
||||||
;;
|
us-east-1)
|
||||||
us-west-2)
|
imageName="ami-0a8bd6fb204473f78"
|
||||||
imageName="ami-0a11ef42b62b82b68"
|
;;
|
||||||
;;
|
us-west-1)
|
||||||
*)
|
imageName="ami-07011f0795513c59d"
|
||||||
usage "Unsupported region: $region"
|
;;
|
||||||
;;
|
us-west-2)
|
||||||
esac
|
imageName="ami-0a11ef42b62b82b68"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
usage "Unsupported region: $region"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
else
|
||||||
|
# Select an upstream Ubuntu 18.04 AMI from https://cloud-images.ubuntu.com/locator/ec2/
|
||||||
|
case $region in
|
||||||
|
us-east-1)
|
||||||
|
imageName="ami-0a313d6098716f372"
|
||||||
|
;;
|
||||||
|
us-west-1)
|
||||||
|
imageName="ami-06397100adf427136"
|
||||||
|
;;
|
||||||
|
us-west-2)
|
||||||
|
imageName="ami-0dc34f4b016c9ce49"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
usage "Unsupported region: $region"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
echo "Error: Unknown cloud provider: $cloudProvider"
|
echo "Error: Unknown cloud provider: $cloudProvider"
|
||||||
@ -444,6 +471,8 @@ touch /.instance-startup-complete
|
|||||||
|
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
|
cloud_Initialize "$prefix"
|
||||||
|
|
||||||
cloud_CreateInstances "$prefix" "$prefix-bootstrap-leader" 1 \
|
cloud_CreateInstances "$prefix" "$prefix-bootstrap-leader" 1 \
|
||||||
"$imageName" "$bootstrapLeaderMachineType" "$fullNodeBootDiskSizeInGb" \
|
"$imageName" "$bootstrapLeaderMachineType" "$fullNodeBootDiskSizeInGb" \
|
||||||
"$startupScript" "$bootstrapLeaderAddress" "$bootDiskType"
|
"$startupScript" "$bootstrapLeaderAddress" "$bootDiskType"
|
||||||
|
10
net/net.sh
10
net/net.sh
@ -35,6 +35,7 @@ Operate a configured testnet
|
|||||||
(ignored if -s or -S is specified)
|
(ignored if -s or -S is specified)
|
||||||
-r - Reuse existing node/ledger configuration from a
|
-r - Reuse existing node/ledger configuration from a
|
||||||
previous |start| (ie, don't run ./mulitnode-demo/setup.sh).
|
previous |start| (ie, don't run ./mulitnode-demo/setup.sh).
|
||||||
|
-D /path/to/programs - Deploy custom programs from this location
|
||||||
|
|
||||||
Note: if RUST_LOG is set in the environment it will be propogated into the
|
Note: if RUST_LOG is set in the environment it will be propogated into the
|
||||||
network nodes.
|
network nodes.
|
||||||
@ -59,12 +60,13 @@ sanityExtraArgs=
|
|||||||
cargoFeatures=
|
cargoFeatures=
|
||||||
skipSetup=false
|
skipSetup=false
|
||||||
updateNodes=false
|
updateNodes=false
|
||||||
|
customPrograms=
|
||||||
|
|
||||||
command=$1
|
command=$1
|
||||||
[[ -n $command ]] || usage
|
[[ -n $command ]] || usage
|
||||||
shift
|
shift
|
||||||
|
|
||||||
while getopts "h?S:s:T:t:o:f:r" opt; do
|
while getopts "h?S:s:T:t:o:f:r:D:" opt; do
|
||||||
case $opt in
|
case $opt in
|
||||||
h | \?)
|
h | \?)
|
||||||
usage
|
usage
|
||||||
@ -107,6 +109,9 @@ while getopts "h?S:s:T:t:o:f:r" opt; do
|
|||||||
r)
|
r)
|
||||||
skipSetup=true
|
skipSetup=true
|
||||||
;;
|
;;
|
||||||
|
D)
|
||||||
|
customPrograms=$OPTARG
|
||||||
|
;;
|
||||||
o)
|
o)
|
||||||
case $OPTARG in
|
case $OPTARG in
|
||||||
noLedgerVerify|noValidatorSanity|rejectExtraNodes)
|
noLedgerVerify|noValidatorSanity|rejectExtraNodes)
|
||||||
@ -146,6 +151,9 @@ build() {
|
|||||||
$MAYBE_DOCKER bash -c "
|
$MAYBE_DOCKER bash -c "
|
||||||
set -ex
|
set -ex
|
||||||
scripts/cargo-install-all.sh farf \"$cargoFeatures\"
|
scripts/cargo-install-all.sh farf \"$cargoFeatures\"
|
||||||
|
if [[ -n \"$customPrograms\" ]]; then
|
||||||
|
scripts/cargo-install-custom-programs.sh farf $customPrograms
|
||||||
|
fi
|
||||||
"
|
"
|
||||||
)
|
)
|
||||||
echo "Build took $SECONDS seconds"
|
echo "Build took $SECONDS seconds"
|
||||||
|
@ -101,6 +101,33 @@ cloud_FindInstance() {
|
|||||||
__cloud_FindInstances "$name"
|
__cloud_FindInstances "$name"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# cloud_Initialize [networkName]
|
||||||
|
#
|
||||||
|
# Perform one-time initialization that may be required for the given testnet.
|
||||||
|
#
|
||||||
|
# networkName - unique name of this testnet
|
||||||
|
#
|
||||||
|
# This function will be called before |cloud_CreateInstances|
|
||||||
|
cloud_Initialize() {
|
||||||
|
declare networkName="$1"
|
||||||
|
|
||||||
|
__cloud_SshPrivateKeyCheck
|
||||||
|
(
|
||||||
|
set -x
|
||||||
|
aws ec2 delete-key-pair --region "$region" --key-name "$networkName"
|
||||||
|
aws ec2 import-key-pair --region "$region" --key-name "$networkName" \
|
||||||
|
--public-key-material file://"${sshPrivateKey}".pub
|
||||||
|
)
|
||||||
|
|
||||||
|
(
|
||||||
|
set -x
|
||||||
|
aws ec2 delete-security-group --region "$region" --group-name "$networkName" || true
|
||||||
|
aws ec2 create-security-group --region "$region" --group-name "$networkName" --description "Created automatically by $0"
|
||||||
|
rules=$(cat "$(dirname "${BASH_SOURCE[0]}")"/ec2-security-group-config.json)
|
||||||
|
aws ec2 authorize-security-group-ingress --region "$region" --group-name "$networkName" --cli-input-json "$rules"
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
#
|
#
|
||||||
# cloud_CreateInstances [networkName] [namePrefix] [numNodes] [imageName]
|
# cloud_CreateInstances [networkName] [namePrefix] [numNodes] [imageName]
|
||||||
@ -131,21 +158,13 @@ cloud_CreateInstances() {
|
|||||||
declare optionalStartupScript="$7"
|
declare optionalStartupScript="$7"
|
||||||
declare optionalAddress="$8"
|
declare optionalAddress="$8"
|
||||||
|
|
||||||
__cloud_SshPrivateKeyCheck
|
|
||||||
(
|
|
||||||
set -x
|
|
||||||
aws ec2 delete-key-pair --region "$region" --key-name "$networkName"
|
|
||||||
aws ec2 import-key-pair --region "$region" --key-name "$networkName" \
|
|
||||||
--public-key-material file://"${sshPrivateKey}".pub
|
|
||||||
)
|
|
||||||
|
|
||||||
declare -a args
|
declare -a args
|
||||||
args=(
|
args=(
|
||||||
--key-name "$networkName"
|
--key-name "$networkName"
|
||||||
--count "$numNodes"
|
--count "$numNodes"
|
||||||
--region "$region"
|
--region "$region"
|
||||||
--placement "AvailabilityZone=$zone"
|
--placement "AvailabilityZone=$zone"
|
||||||
--security-groups testnet
|
--security-groups "$networkName"
|
||||||
--image-id "$imageName"
|
--image-id "$imageName"
|
||||||
--instance-type "$machineType"
|
--instance-type "$machineType"
|
||||||
--tag-specifications "ResourceType=instance,Tags=[{Key=name,Value=$namePrefix}]"
|
--tag-specifications "ResourceType=instance,Tags=[{Key=name,Value=$namePrefix}]"
|
||||||
|
137
net/scripts/ec2-security-group-config.json
Normal file
137
net/scripts/ec2-security-group-config.json
Normal file
@ -0,0 +1,137 @@
|
|||||||
|
{
|
||||||
|
"IpPermissions": [
|
||||||
|
{
|
||||||
|
"PrefixListIds": [],
|
||||||
|
"FromPort": 80,
|
||||||
|
"IpRanges": [
|
||||||
|
{
|
||||||
|
"CidrIp": "0.0.0.0/0",
|
||||||
|
"Description": "http for block explorer"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ToPort": 80,
|
||||||
|
"IpProtocol": "tcp",
|
||||||
|
"UserIdGroupPairs": [],
|
||||||
|
"Ipv6Ranges": [
|
||||||
|
{
|
||||||
|
"CidrIpv6": "::/0",
|
||||||
|
"Description": "http for block explorer"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"PrefixListIds": [],
|
||||||
|
"FromPort": 8000,
|
||||||
|
"IpRanges": [
|
||||||
|
{
|
||||||
|
"Description": "fullnode UDP range",
|
||||||
|
"CidrIp": "0.0.0.0/0"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ToPort": 10000,
|
||||||
|
"IpProtocol": "udp",
|
||||||
|
"UserIdGroupPairs": [],
|
||||||
|
"Ipv6Ranges": [
|
||||||
|
{
|
||||||
|
"CidrIpv6": "::/0",
|
||||||
|
"Description": "fullnode UDP range"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"PrefixListIds": [],
|
||||||
|
"FromPort": 22,
|
||||||
|
"IpRanges": [
|
||||||
|
{
|
||||||
|
"CidrIp": "0.0.0.0/0",
|
||||||
|
"Description": "ssh"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ToPort": 22,
|
||||||
|
"IpProtocol": "tcp",
|
||||||
|
"UserIdGroupPairs": [],
|
||||||
|
"Ipv6Ranges": [
|
||||||
|
{
|
||||||
|
"CidrIpv6": "::/0",
|
||||||
|
"Description": "ssh"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"PrefixListIds": [],
|
||||||
|
"FromPort": 873,
|
||||||
|
"IpRanges": [
|
||||||
|
{
|
||||||
|
"Description": "rsync",
|
||||||
|
"CidrIp": "0.0.0.0/0"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ToPort": 873,
|
||||||
|
"IpProtocol": "tcp",
|
||||||
|
"UserIdGroupPairs": [],
|
||||||
|
"Ipv6Ranges": [
|
||||||
|
{
|
||||||
|
"CidrIpv6": "::/0",
|
||||||
|
"Description": "rsync"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"PrefixListIds": [],
|
||||||
|
"FromPort": 3001,
|
||||||
|
"IpRanges": [
|
||||||
|
{
|
||||||
|
"Description": "blockexplorer API port",
|
||||||
|
"CidrIp": "0.0.0.0/0"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ToPort": 3001,
|
||||||
|
"IpProtocol": "tcp",
|
||||||
|
"UserIdGroupPairs": [],
|
||||||
|
"Ipv6Ranges": [
|
||||||
|
{
|
||||||
|
"CidrIpv6": "::/0",
|
||||||
|
"Description": "blockexplorer API port"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"PrefixListIds": [],
|
||||||
|
"FromPort": 8000,
|
||||||
|
"IpRanges": [
|
||||||
|
{
|
||||||
|
"Description": "fullnode TCP range",
|
||||||
|
"CidrIp": "0.0.0.0/0"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ToPort": 10000,
|
||||||
|
"IpProtocol": "tcp",
|
||||||
|
"UserIdGroupPairs": [],
|
||||||
|
"Ipv6Ranges": [
|
||||||
|
{
|
||||||
|
"CidrIpv6": "::/0",
|
||||||
|
"Description": "fullnode TCP range"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"PrefixListIds": [],
|
||||||
|
"FromPort": 8,
|
||||||
|
"IpRanges": [
|
||||||
|
{
|
||||||
|
"CidrIp": "0.0.0.0/0",
|
||||||
|
"Description": "allow ping"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ToPort": -1,
|
||||||
|
"IpProtocol": "icmp",
|
||||||
|
"UserIdGroupPairs": [],
|
||||||
|
"Ipv6Ranges": [
|
||||||
|
{
|
||||||
|
"CidrIpv6": "::/0",
|
||||||
|
"Description": "allow ping"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -76,6 +76,21 @@ cloud_FindInstance() {
|
|||||||
__cloud_FindInstances "name=$name"
|
__cloud_FindInstances "name=$name"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# cloud_Initialize [networkName]
|
||||||
|
#
|
||||||
|
# Perform one-time initialization that may be required for the given testnet.
|
||||||
|
#
|
||||||
|
# networkName - unique name of this testnet
|
||||||
|
#
|
||||||
|
# This function will be called before |cloud_CreateInstances|
|
||||||
|
cloud_Initialize() {
|
||||||
|
declare networkName="$1"
|
||||||
|
# ec2-provider.sh creates firewall rules programmatically, should do the same
|
||||||
|
# here.
|
||||||
|
echo "TODO: create $networkName firewall rules programmatically instead of assuming the 'testnet' tag exists"
|
||||||
|
}
|
||||||
|
|
||||||
#
|
#
|
||||||
# cloud_CreateInstances [networkName] [namePrefix] [numNodes] [imageName]
|
# cloud_CreateInstances [networkName] [namePrefix] [numNodes] [imageName]
|
||||||
# [machineType] [bootDiskSize] [enableGpu]
|
# [machineType] [bootDiskSize] [enableGpu]
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "solana-netutil"
|
name = "solana-netutil"
|
||||||
version = "0.11.0"
|
version = "0.11.1"
|
||||||
description = "Solana Network Utilities"
|
description = "Solana Network Utilities"
|
||||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||||
repository = "https://github.com/solana-labs/solana"
|
repository = "https://github.com/solana-labs/solana"
|
||||||
@ -18,7 +18,7 @@ reqwest = "0.9.0"
|
|||||||
socket2 = "0.3.8"
|
socket2 = "0.3.8"
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
solana-logger = { path = "../logger", version = "0.11.0" }
|
solana-logger = { path = "../logger", version = "0.11.1" }
|
||||||
|
|
||||||
[lib]
|
[lib]
|
||||||
name = "solana_netutil"
|
name = "solana_netutil"
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "solana-bpf-noop"
|
name = "solana-bpf-noop"
|
||||||
version = "0.11.0"
|
version = "0.11.1"
|
||||||
description = "Solana BPF noop program"
|
description = "Solana BPF 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"
|
||||||
@ -9,4 +9,4 @@ homepage = "https://solana.com/"
|
|||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
rbpf = "0.1.0"
|
rbpf = "0.1.0"
|
||||||
solana-sdk = { path = "../../../../sdk", version = "0.11.0" }
|
solana-sdk = { path = "../../../../sdk", version = "0.11.1" }
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "solana-bpfloader"
|
name = "solana-bpfloader"
|
||||||
version = "0.11.0"
|
version = "0.11.1"
|
||||||
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"
|
||||||
@ -19,8 +19,8 @@ libc = "0.2.45"
|
|||||||
log = "0.4.2"
|
log = "0.4.2"
|
||||||
solana_rbpf = "=0.1.5"
|
solana_rbpf = "=0.1.5"
|
||||||
serde = "1.0.82"
|
serde = "1.0.82"
|
||||||
solana-logger = { path = "../../../logger", version = "0.11.0" }
|
solana-logger = { path = "../../../logger", version = "0.11.1" }
|
||||||
solana-sdk = { path = "../../../sdk", version = "0.11.0" }
|
solana-sdk = { path = "../../../sdk", version = "0.11.1" }
|
||||||
|
|
||||||
[lib]
|
[lib]
|
||||||
name = "solana_bpf_loader"
|
name = "solana_bpf_loader"
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "solana-budget-program"
|
name = "solana-budget-program"
|
||||||
version = "0.11.0"
|
version = "0.11.1"
|
||||||
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"
|
||||||
@ -14,8 +14,8 @@ chrono = { version = "0.4.0", features = ["serde"] }
|
|||||||
log = "0.4.2"
|
log = "0.4.2"
|
||||||
serde = "1.0.82"
|
serde = "1.0.82"
|
||||||
serde_derive = "1.0.82"
|
serde_derive = "1.0.82"
|
||||||
solana-logger = { path = "../../../logger", version = "0.11.0" }
|
solana-logger = { path = "../../../logger", version = "0.11.1" }
|
||||||
solana-sdk = { path = "../../../sdk", version = "0.11.0" }
|
solana-sdk = { path = "../../../sdk", version = "0.11.1" }
|
||||||
|
|
||||||
[lib]
|
[lib]
|
||||||
name = "solana_budget_program"
|
name = "solana_budget_program"
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "solana-erc20"
|
name = "solana-erc20"
|
||||||
version = "0.11.0"
|
version = "0.11.1"
|
||||||
description = "Solana reference erc20 program"
|
description = "Solana reference erc20 program"
|
||||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||||
repository = "https://github.com/solana-labs/solana"
|
repository = "https://github.com/solana-labs/solana"
|
||||||
@ -13,8 +13,8 @@ bincode = "1.0.0"
|
|||||||
log = "0.4.2"
|
log = "0.4.2"
|
||||||
serde = "1.0.82"
|
serde = "1.0.82"
|
||||||
serde_derive = "1.0.82"
|
serde_derive = "1.0.82"
|
||||||
solana-logger = { path = "../../../logger", version = "0.11.0" }
|
solana-logger = { path = "../../../logger", version = "0.11.1" }
|
||||||
solana-sdk = { path = "../../../sdk", version = "0.11.0" }
|
solana-sdk = { path = "../../../sdk", version = "0.11.1" }
|
||||||
|
|
||||||
[lib]
|
[lib]
|
||||||
name = "solana_erc20"
|
name = "solana_erc20"
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "solana-lualoader"
|
name = "solana-lualoader"
|
||||||
version = "0.11.0"
|
version = "0.11.1"
|
||||||
description = "Solana Lua Loader"
|
description = "Solana Lua 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 @@ log = "0.4.2"
|
|||||||
rlua = "0.15.2"
|
rlua = "0.15.2"
|
||||||
serde = "1.0.82"
|
serde = "1.0.82"
|
||||||
serde_derive = "1.0.82"
|
serde_derive = "1.0.82"
|
||||||
solana-logger = { path = "../../../logger", version = "0.11.0" }
|
solana-logger = { path = "../../../logger", version = "0.11.1" }
|
||||||
solana-sdk = { path = "../../../sdk", version = "0.11.0" }
|
solana-sdk = { path = "../../../sdk", version = "0.11.1" }
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
bincode = "1.0.0"
|
bincode = "1.0.0"
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "solana-native-loader"
|
name = "solana-native-loader"
|
||||||
version = "0.11.0"
|
version = "0.11.1"
|
||||||
description = "Solana Native Loader"
|
description = "Solana Native 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"
|
||||||
@ -13,7 +13,7 @@ bincode = "1.0.0"
|
|||||||
libc = "0.2.45"
|
libc = "0.2.45"
|
||||||
libloading = "0.5.0"
|
libloading = "0.5.0"
|
||||||
log = "0.4.2"
|
log = "0.4.2"
|
||||||
solana-sdk = { path = "../../../sdk", version = "0.11.0" }
|
solana-sdk = { path = "../../../sdk", version = "0.11.1" }
|
||||||
|
|
||||||
[lib]
|
[lib]
|
||||||
name = "solana_native_loader"
|
name = "solana_native_loader"
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "solana-noop"
|
name = "solana-noop"
|
||||||
version = "0.11.0"
|
version = "0.11.1"
|
||||||
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"
|
||||||
@ -9,8 +9,8 @@ homepage = "https://solana.com/"
|
|||||||
edition = "2018"
|
edition = "2018"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
solana-sdk = { path = "../../../sdk", version = "0.11.0" }
|
solana-sdk = { path = "../../../sdk", version = "0.11.1" }
|
||||||
solana-logger = { path = "../../../logger", version = "0.11.0" }
|
solana-logger = { path = "../../../logger", version = "0.11.1" }
|
||||||
log = "0.4.2"
|
log = "0.4.2"
|
||||||
|
|
||||||
[lib]
|
[lib]
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "solana-storage-program"
|
name = "solana-storage-program"
|
||||||
version = "0.11.0"
|
version = "0.11.1"
|
||||||
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"
|
||||||
@ -13,8 +13,8 @@ bincode = "1.0.0"
|
|||||||
log = "0.4.2"
|
log = "0.4.2"
|
||||||
serde = "1.0.27"
|
serde = "1.0.27"
|
||||||
serde_derive = "1.0.27"
|
serde_derive = "1.0.27"
|
||||||
solana-logger = { path = "../../../logger", version = "0.11.0" }
|
solana-logger = { path = "../../../logger", version = "0.11.1" }
|
||||||
solana-sdk = { path = "../../../sdk", version = "0.11.0" }
|
solana-sdk = { path = "../../../sdk", version = "0.11.1" }
|
||||||
|
|
||||||
[lib]
|
[lib]
|
||||||
name = "solana_storage_program"
|
name = "solana_storage_program"
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "solana-system-program"
|
name = "solana-system-program"
|
||||||
version = "0.11.0"
|
version = "0.11.1"
|
||||||
description = "Solana system program"
|
description = "Solana system program"
|
||||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||||
repository = "https://github.com/solana-labs/solana"
|
repository = "https://github.com/solana-labs/solana"
|
||||||
@ -12,7 +12,7 @@ edition = "2018"
|
|||||||
bincode = "1.0.0"
|
bincode = "1.0.0"
|
||||||
log = "0.4.2"
|
log = "0.4.2"
|
||||||
serde = "1.0.27"
|
serde = "1.0.27"
|
||||||
solana-sdk = { path = "../../../sdk", version = "0.11.0" }
|
solana-sdk = { path = "../../../sdk", version = "0.11.1" }
|
||||||
|
|
||||||
[lib]
|
[lib]
|
||||||
name = "solana_system_program"
|
name = "solana_system_program"
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "solana-vote-program"
|
name = "solana-vote-program"
|
||||||
version = "0.11.0"
|
version = "0.11.1"
|
||||||
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"
|
||||||
@ -13,9 +13,9 @@ bincode = "1.0.0"
|
|||||||
log = "0.4.2"
|
log = "0.4.2"
|
||||||
serde = "1.0.82"
|
serde = "1.0.82"
|
||||||
serde_derive = "1.0.82"
|
serde_derive = "1.0.82"
|
||||||
solana-logger = { path = "../../../logger", version = "0.11.0" }
|
solana-logger = { path = "../../../logger", version = "0.11.1" }
|
||||||
solana-metrics = { path = "../../../metrics", version = "0.11.0" }
|
solana-metrics = { path = "../../../metrics", version = "0.11.1" }
|
||||||
solana-sdk = { path = "../../../sdk", version = "0.11.0" }
|
solana-sdk = { path = "../../../sdk", version = "0.11.1" }
|
||||||
|
|
||||||
[lib]
|
[lib]
|
||||||
name = "solana_vote_program"
|
name = "solana_vote_program"
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||||
edition = "2018"
|
edition = "2018"
|
||||||
name = "solana-replicator"
|
name = "solana-replicator"
|
||||||
version = "0.11.0"
|
version = "0.11.1"
|
||||||
repository = "https://github.com/solana-labs/solana"
|
repository = "https://github.com/solana-labs/solana"
|
||||||
license = "Apache-2.0"
|
license = "Apache-2.0"
|
||||||
homepage = "https://solana.com/"
|
homepage = "https://solana.com/"
|
||||||
@ -10,10 +10,10 @@ homepage = "https://solana.com/"
|
|||||||
[dependencies]
|
[dependencies]
|
||||||
clap = "2.32.0"
|
clap = "2.32.0"
|
||||||
serde_json = "1.0.10"
|
serde_json = "1.0.10"
|
||||||
solana = { path = "..", version = "0.11.0" }
|
solana = { path = "..", version = "0.11.1" }
|
||||||
solana-logger = { path = "../logger", version = "0.11.0" }
|
solana-logger = { path = "../logger", version = "0.11.1" }
|
||||||
solana-fullnode-config = { path = "../fullnode-config", version = "0.11.0" }
|
solana-fullnode-config = { path = "../fullnode-config", version = "0.11.1" }
|
||||||
solana-sdk = { path = "../sdk", version = "0.11.0" }
|
solana-sdk = { path = "../sdk", version = "0.11.1" }
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
chacha = ["solana/chacha"]
|
chacha = ["solana/chacha"]
|
||||||
|
30
scripts/cargo-install-custom-programs.sh
Executable file
30
scripts/cargo-install-custom-programs.sh
Executable file
@ -0,0 +1,30 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
#
|
||||||
|
# This script will install all cargo workspace libraries found in
|
||||||
|
# `programDir` as native programs.
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Directory to install libraries into
|
||||||
|
installDir="$(mkdir -p "$1"; cd "$1"; pwd)"
|
||||||
|
|
||||||
|
# Where to find custom programs
|
||||||
|
programDir="$2"
|
||||||
|
|
||||||
|
(
|
||||||
|
set -x
|
||||||
|
cd "$programDir"
|
||||||
|
cargo build --all --release
|
||||||
|
)
|
||||||
|
|
||||||
|
for dir in "$programDir"/*; do
|
||||||
|
for program in $programDir/target/release/deps/lib"$(basename "$dir")".{so,dylib,dll}; do
|
||||||
|
if [[ -f $program ]]; then
|
||||||
|
(
|
||||||
|
set -x
|
||||||
|
mkdir -p "$installDir/bin/deps"
|
||||||
|
rm -f "$installDir/bin/deps/$(basename "$program")"
|
||||||
|
cp -v "$program" "$installDir"/bin/deps
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
done
|
@ -2,7 +2,6 @@
|
|||||||
#
|
#
|
||||||
# Send a metrics datapoint
|
# Send a metrics datapoint
|
||||||
#
|
#
|
||||||
set -e
|
|
||||||
|
|
||||||
point=$1
|
point=$1
|
||||||
if [[ -z $point ]]; then
|
if [[ -z $point ]]; then
|
||||||
@ -18,3 +17,4 @@ fi
|
|||||||
|
|
||||||
echo "https://metrics.solana.com:8086/write?db=${INFLUX_DATABASE}&u=${INFLUX_USERNAME}&p=${INFLUX_PASSWORD}" \
|
echo "https://metrics.solana.com:8086/write?db=${INFLUX_DATABASE}&u=${INFLUX_USERNAME}&p=${INFLUX_PASSWORD}" \
|
||||||
| xargs curl --max-time 5 -XPOST --data-binary "$point"
|
| xargs curl --max-time 5 -XPOST --data-binary "$point"
|
||||||
|
exit 0
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "solana-sdk"
|
name = "solana-sdk"
|
||||||
version = "0.11.0"
|
version = "0.11.1"
|
||||||
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"
|
||||||
|
@ -4,14 +4,6 @@ set -ex
|
|||||||
cd "$(dirname "$0")"
|
cd "$(dirname "$0")"
|
||||||
eval "$(../../ci/channel-info.sh)"
|
eval "$(../../ci/channel-info.sh)"
|
||||||
|
|
||||||
if [[ $BUILDKITE_BRANCH = "$STABLE_CHANNEL" ]]; then
|
|
||||||
CHANNEL=stable
|
|
||||||
elif [[ $BUILDKITE_BRANCH = "$EDGE_CHANNEL" ]]; then
|
|
||||||
CHANNEL=edge
|
|
||||||
elif [[ $BUILDKITE_BRANCH = "$BETA_CHANNEL" ]]; then
|
|
||||||
CHANNEL=beta
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ -z $CHANNEL ]]; then
|
if [[ -z $CHANNEL ]]; then
|
||||||
echo Unable to determine channel to publish into, exiting.
|
echo Unable to determine channel to publish into, exiting.
|
||||||
echo "^^^ +++"
|
echo "^^^ +++"
|
||||||
@ -24,7 +16,7 @@ rm -rf usr/
|
|||||||
|
|
||||||
cp -f entrypoint.sh usr/bin/solana-entrypoint.sh
|
cp -f entrypoint.sh usr/bin/solana-entrypoint.sh
|
||||||
|
|
||||||
docker build -t solanalabs/solana:$CHANNEL .
|
docker build -t solanalabs/solana:"$CHANNEL" .
|
||||||
|
|
||||||
maybeEcho=
|
maybeEcho=
|
||||||
if [[ -z $CI ]]; then
|
if [[ -z $CI ]]; then
|
||||||
@ -38,4 +30,4 @@ else
|
|||||||
fi
|
fi
|
||||||
)
|
)
|
||||||
fi
|
fi
|
||||||
$maybeEcho docker push solanalabs/solana:$CHANNEL
|
$maybeEcho docker push solanalabs/solana:"$CHANNEL"
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "solana-upload-perf"
|
name = "solana-upload-perf"
|
||||||
version = "0.11.0"
|
version = "0.11.1"
|
||||||
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"
|
||||||
@ -10,7 +10,7 @@ homepage = "https://solana.com/"
|
|||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
serde_json = "1.0.10"
|
serde_json = "1.0.10"
|
||||||
solana-metrics = { path = "../metrics", version = "0.11.0" }
|
solana-metrics = { path = "../metrics", version = "0.11.1" }
|
||||||
|
|
||||||
[[bin]]
|
[[bin]]
|
||||||
name = "solana-upload-perf"
|
name = "solana-upload-perf"
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "solana-vote-signer"
|
name = "solana-vote-signer"
|
||||||
version = "0.0.1"
|
version = "0.11.1"
|
||||||
description = "Solana Vote Signing Service"
|
description = "Solana Vote Signing Service"
|
||||||
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 @@ bs58 = "0.2.0"
|
|||||||
clap = "2.31"
|
clap = "2.31"
|
||||||
log = "0.4.2"
|
log = "0.4.2"
|
||||||
serde_json = "1.0.10"
|
serde_json = "1.0.10"
|
||||||
solana-sdk = { path = "../sdk", version = "0.11.0" }
|
solana-sdk = { path = "../sdk", version = "0.11.1" }
|
||||||
solana-metrics = { path = "../metrics", version = "0.11.0" }
|
solana-metrics = { path = "../metrics", version = "0.11.1" }
|
||||||
solana-jsonrpc-core = "0.3.0"
|
solana-jsonrpc-core = "0.3.0"
|
||||||
solana-jsonrpc-http-server = "0.3.0"
|
solana-jsonrpc-http-server = "0.3.0"
|
||||||
solana-jsonrpc-macros = "0.3.0"
|
solana-jsonrpc-macros = "0.3.0"
|
||||||
|
@ -2,7 +2,8 @@
|
|||||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||||
edition = "2018"
|
edition = "2018"
|
||||||
name = "solana-wallet"
|
name = "solana-wallet"
|
||||||
version = "0.11.0"
|
description = "Blockchain, Rebuilt for Scale"
|
||||||
|
version = "0.11.1"
|
||||||
repository = "https://github.com/solana-labs/solana"
|
repository = "https://github.com/solana-labs/solana"
|
||||||
license = "Apache-2.0"
|
license = "Apache-2.0"
|
||||||
homepage = "https://solana.com/"
|
homepage = "https://solana.com/"
|
||||||
@ -14,10 +15,10 @@ clap = "2.32.0"
|
|||||||
chrono = { version = "0.4.0", features = ["serde"] }
|
chrono = { version = "0.4.0", features = ["serde"] }
|
||||||
dirs = "1.0.2"
|
dirs = "1.0.2"
|
||||||
serde_json = "1.0.10"
|
serde_json = "1.0.10"
|
||||||
solana = { path = "..", version = "0.11.0" }
|
solana = { path = "..", version = "0.11.1" }
|
||||||
solana-drone = { path = "../drone", version = "0.11.0" }
|
solana-drone = { path = "../drone", version = "0.11.1" }
|
||||||
solana-logger = { path = "../logger", version = "0.11.0" }
|
solana-logger = { path = "../logger", version = "0.11.1" }
|
||||||
solana-sdk = { path = "../sdk", version = "0.11.0" }
|
solana-sdk = { path = "../sdk", version = "0.11.1" }
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
cuda = []
|
cuda = []
|
||||||
|
@ -602,7 +602,7 @@ pub fn process_command(config: &WalletConfig) -> Result<String, Box<dyn error::E
|
|||||||
}
|
}
|
||||||
// Apply time elapsed to contract
|
// Apply time elapsed to contract
|
||||||
WalletCommand::TimeElapsed(to, pubkey, dt) => {
|
WalletCommand::TimeElapsed(to, pubkey, dt) => {
|
||||||
let params = json!(format!("{}", config.id.pubkey()));
|
let params = json!([format!("{}", config.id.pubkey())]);
|
||||||
let balance = RpcRequest::GetBalance
|
let balance = RpcRequest::GetBalance
|
||||||
.make_rpc_request(&rpc_client, 1, Some(params))?
|
.make_rpc_request(&rpc_client, 1, Some(params))?
|
||||||
.as_u64();
|
.as_u64();
|
||||||
|
Reference in New Issue
Block a user