Compare commits

...

30 Commits

Author SHA1 Message Date
81f8368bba testnet-deploy.sh updates 2019-04-26 21:22:02 -07:00
297166e550 v0.11: testnet-deploy updates 2019-04-26 21:21:54 -07:00
7fff610cae Checkout testnet scripts from tip to upstream/0.11 (#4016)
* Checkout testnet scripts from tip to upstream/0.11

* Add back NO_VALIDATOR_SANITY to testnet sanity
2019-04-26 14:53:59 -06:00
5f3bf853c6 Only check CHANNEL_BRANCH if TESTNET_TAG is not set from buildkite (#3701) 2019-04-09 15:04:34 -07:00
fc34c1370b Change GCP region for testnet-perf to us-west1-b 2019-03-18 13:22:26 -07:00
09410fd5c5 Update Cargo.lock for v0.11.1 2019-03-14 17:47:10 -06:00
bfff18ac70 Fix typo in wallet 2019-03-14 17:47:10 -06:00
7239efe1e7 Keep stable dashboard on stable channel at all times 2019-03-11 16:19:51 -07:00
334a7d9502 Move testnet/testnet-perf to the stable channel 2019-03-11 16:16:11 -07:00
bc2d37015d Switch testnet-perf to us-west1-a 2019-02-27 19:29:04 -08:00
d3fcedb179 Switch testnet-perf to us-west1-a 2019-02-27 19:25:02 -08:00
f1a77abffb Fix the custom programs command in net.sh 2019-02-19 13:56:06 -07:00
7acd771271 Add missing cloud_Initilize (due to bad merge of a907ed2) 2019-02-19 09:53:16 -08:00
9c2d58660b Switch to upstream AMIs for non-CUDA EC2 testnets 2019-02-18 18:53:27 -08:00
a907ed2e33 Generate ec2 security group programmatically 2019-02-18 18:53:13 -08:00
9d3c426510 Add optional deploy of custom programs 2019-02-18 11:02:03 -08:00
b0bcc8355f User-initiated builds now select the correct channel 2019-01-22 14:24:55 -08:00
cf99e626c8 Use beta channel for stable dashboard once a beta tag exists 2019-01-22 12:23:03 -08:00
6db61759e0 Failure to write a datapoint should not be fatal 2019-01-16 10:16:20 -08:00
aae08bdae3 Update book URL 2019-01-12 11:36:27 -08:00
5ff22921eb Publish book from both the edge and beta channels 2019-01-12 11:36:27 -08:00
10012be03e Remove channel duplication 2019-01-12 11:36:27 -08:00
17def9fbf5 Avoid -d arg conflict
-D is now "delete"
-d is now "disk type"
2019-01-09 16:59:44 -07:00
b5a03d011f Remove |cargo package| sanity step
Unfortunately due to our multi-crate repo, as soon as
|./scripts/increment-cargo-version.sh| is run after a release, |cargo
package| will fail for crates that depend on other in-tree crates, as
the new crate version has not yet been published to crates.io.
For now this means that we need to continue flying blind and be prepared
to deal with minor publishing issues on each new release.
2019-01-09 09:57:05 -08:00
2d39c4257a v0.11.1 2019-01-08 08:31:39 -08:00
8fb86c9fa7 Add missing description field, required for crate publishing 2019-01-07 23:03:13 -08:00
fc623756df Add fullnode-config crate 2019-01-07 23:03:13 -08:00
d92bd0de27 Use docker rust docker image to avoid rocksdb build errors 2019-01-07 23:03:13 -08:00
c818c20399 package or publish. Also package on branch builds 2019-01-07 23:03:13 -08:00
ed41547f64 Double publish crate timeout 2019-01-07 20:46:42 -08:00
47 changed files with 1007 additions and 473 deletions

180
Cargo.lock generated
View File

@ -1715,7 +1715,7 @@ dependencies = [
[[package]]
name = "solana"
version = "0.11.0"
version = "0.11.1"
dependencies = [
"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)",
@ -1739,19 +1739,19 @@ dependencies = [
"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_json 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)",
"solana-bpfloader 0.11.0",
"solana-drone 0.11.0",
"solana-bpfloader 0.11.1",
"solana-drone 0.11.1",
"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-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-ws-server 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"solana-logger 0.11.0",
"solana-metrics 0.11.0",
"solana-native-loader 0.11.0",
"solana-netutil 0.11.0",
"solana-sdk 0.11.0",
"solana-system-program 0.11.0",
"solana-logger 0.11.1",
"solana-metrics 0.11.1",
"solana-native-loader 0.11.1",
"solana-netutil 0.11.1",
"solana-sdk 0.11.1",
"solana-system-program 0.11.1",
"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)",
"untrusted 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
@ -1759,39 +1759,39 @@ dependencies = [
[[package]]
name = "solana-bench-streamer"
version = "0.11.0"
version = "0.11.1"
dependencies = [
"clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)",
"solana 0.11.0",
"solana-logger 0.11.0",
"solana-netutil 0.11.0",
"solana 0.11.1",
"solana-logger 0.11.1",
"solana-netutil 0.11.1",
]
[[package]]
name = "solana-bench-tps"
version = "0.11.0"
version = "0.11.1"
dependencies = [
"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)",
"serde_json 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)",
"solana 0.11.0",
"solana-drone 0.11.0",
"solana-logger 0.11.0",
"solana-metrics 0.11.0",
"solana-sdk 0.11.0",
"solana 0.11.1",
"solana-drone 0.11.1",
"solana-logger 0.11.1",
"solana-metrics 0.11.1",
"solana-sdk 0.11.1",
]
[[package]]
name = "solana-bpf-noop"
version = "0.11.0"
version = "0.11.1"
dependencies = [
"rbpf 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"solana-sdk 0.11.0",
"solana-sdk 0.11.1",
]
[[package]]
name = "solana-bpfloader"
version = "0.11.0"
version = "0.11.1"
dependencies = [
"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)",
@ -1799,27 +1799,27 @@ dependencies = [
"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)",
"serde 1.0.82 (registry+https://github.com/rust-lang/crates.io-index)",
"solana-logger 0.11.0",
"solana-sdk 0.11.0",
"solana-logger 0.11.1",
"solana-sdk 0.11.1",
"solana_rbpf 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "solana-budget-program"
version = "0.11.0"
version = "0.11.1"
dependencies = [
"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)",
"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_derive 1.0.82 (registry+https://github.com/rust-lang/crates.io-index)",
"solana-logger 0.11.0",
"solana-sdk 0.11.0",
"solana-logger 0.11.1",
"solana-sdk 0.11.1",
]
[[package]]
name = "solana-drone"
version = "0.11.0"
version = "0.11.1"
dependencies = [
"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)",
@ -1828,43 +1828,43 @@ dependencies = [
"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_derive 1.0.82 (registry+https://github.com/rust-lang/crates.io-index)",
"solana-metrics 0.11.0",
"solana-sdk 0.11.0",
"solana-metrics 0.11.1",
"solana-sdk 0.11.1",
"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)",
]
[[package]]
name = "solana-erc20"
version = "0.11.0"
version = "0.11.1"
dependencies = [
"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)",
"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)",
"solana-logger 0.11.0",
"solana-sdk 0.11.0",
"solana-logger 0.11.1",
"solana-sdk 0.11.1",
]
[[package]]
name = "solana-fullnode"
version = "0.11.0"
version = "0.11.1"
dependencies = [
"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)",
"serde_json 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)",
"solana 0.11.0",
"solana-drone 0.11.0",
"solana-fullnode-config 0.11.0",
"solana-logger 0.11.0",
"solana-metrics 0.11.0",
"solana-netutil 0.11.0",
"solana-sdk 0.11.0",
"solana 0.11.1",
"solana-drone 0.11.1",
"solana-fullnode-config 0.11.1",
"solana-logger 0.11.1",
"solana-metrics 0.11.1",
"solana-netutil 0.11.1",
"solana-sdk 0.11.1",
]
[[package]]
name = "solana-fullnode-config"
version = "0.11.0"
version = "0.11.1"
dependencies = [
"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)",
@ -1872,19 +1872,19 @@ dependencies = [
"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_json 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)",
"solana-netutil 0.11.0",
"solana-sdk 0.11.0",
"solana-netutil 0.11.1",
"solana-sdk 0.11.1",
"untrusted 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "solana-genesis"
version = "0.11.0"
version = "0.11.1"
dependencies = [
"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)",
"solana 0.11.0",
"solana-sdk 0.11.0",
"solana 0.11.1",
"solana-sdk 0.11.1",
]
[[package]]
@ -2025,70 +2025,70 @@ dependencies = [
[[package]]
name = "solana-keygen"
version = "0.11.0"
version = "0.11.1"
dependencies = [
"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)",
"solana-sdk 0.11.0",
"solana-sdk 0.11.1",
]
[[package]]
name = "solana-ledger-tool"
version = "0.11.0"
version = "0.11.1"
dependencies = [
"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)",
"solana 0.11.0",
"solana-logger 0.11.0",
"solana 0.11.1",
"solana-logger 0.11.1",
]
[[package]]
name = "solana-logger"
version = "0.11.0"
version = "0.11.1"
dependencies = [
"env_logger 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "solana-lualoader"
version = "0.11.0"
version = "0.11.1"
dependencies = [
"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)",
"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_derive 1.0.82 (registry+https://github.com/rust-lang/crates.io-index)",
"solana-logger 0.11.0",
"solana-sdk 0.11.0",
"solana-logger 0.11.1",
"solana-sdk 0.11.1",
]
[[package]]
name = "solana-metrics"
version = "0.11.0"
version = "0.11.1"
dependencies = [
"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)",
"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)",
"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)",
]
[[package]]
name = "solana-native-loader"
version = "0.11.0"
version = "0.11.1"
dependencies = [
"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)",
"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)",
"solana-sdk 0.11.0",
"solana-sdk 0.11.1",
]
[[package]]
name = "solana-netutil"
version = "0.11.0"
version = "0.11.1"
dependencies = [
"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)",
@ -2097,33 +2097,33 @@ dependencies = [
"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)",
"socket2 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
"solana-logger 0.11.0",
"solana-logger 0.11.1",
]
[[package]]
name = "solana-noop"
version = "0.11.0"
version = "0.11.1"
dependencies = [
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
"solana-logger 0.11.0",
"solana-sdk 0.11.0",
"solana-logger 0.11.1",
"solana-sdk 0.11.1",
]
[[package]]
name = "solana-replicator"
version = "0.11.0"
version = "0.11.1"
dependencies = [
"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)",
"solana 0.11.0",
"solana-fullnode-config 0.11.0",
"solana-logger 0.11.0",
"solana-sdk 0.11.0",
"solana 0.11.1",
"solana-fullnode-config 0.11.1",
"solana-logger 0.11.1",
"solana-sdk 0.11.1",
]
[[package]]
name = "solana-sdk"
version = "0.11.0"
version = "0.11.1"
dependencies = [
"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)",
@ -2141,50 +2141,50 @@ dependencies = [
[[package]]
name = "solana-storage-program"
version = "0.11.0"
version = "0.11.1"
dependencies = [
"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)",
"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)",
"solana-logger 0.11.0",
"solana-sdk 0.11.0",
"solana-logger 0.11.1",
"solana-sdk 0.11.1",
]
[[package]]
name = "solana-system-program"
version = "0.11.0"
version = "0.11.1"
dependencies = [
"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)",
"serde 1.0.82 (registry+https://github.com/rust-lang/crates.io-index)",
"solana-sdk 0.11.0",
"solana-sdk 0.11.1",
]
[[package]]
name = "solana-upload-perf"
version = "0.11.0"
version = "0.11.1"
dependencies = [
"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]]
name = "solana-vote-program"
version = "0.11.0"
version = "0.11.1"
dependencies = [
"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)",
"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)",
"solana-logger 0.11.0",
"solana-metrics 0.11.0",
"solana-sdk 0.11.0",
"solana-logger 0.11.1",
"solana-metrics 0.11.1",
"solana-sdk 0.11.1",
]
[[package]]
name = "solana-vote-signer"
version = "0.0.1"
version = "0.11.1"
dependencies = [
"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)",
@ -2193,13 +2193,13 @@ dependencies = [
"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-macros 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
"solana-metrics 0.11.0",
"solana-sdk 0.11.0",
"solana-metrics 0.11.1",
"solana-sdk 0.11.1",
]
[[package]]
name = "solana-wallet"
version = "0.11.0"
version = "0.11.1"
dependencies = [
"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)",
@ -2207,10 +2207,10 @@ dependencies = [
"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)",
"serde_json 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)",
"solana 0.11.0",
"solana-drone 0.11.0",
"solana-logger 0.11.0",
"solana-sdk 0.11.0",
"solana 0.11.1",
"solana-drone 0.11.1",
"solana-logger 0.11.1",
"solana-sdk 0.11.1",
]
[[package]]

View File

@ -1,7 +1,7 @@
[package]
name = "solana"
description = "Blockchain, Rebuilt for Scale"
version = "0.11.0"
version = "0.11.1"
documentation = "https://docs.rs/solana"
homepage = "https://solana.com/"
readme = "README.md"
@ -43,19 +43,19 @@ rocksdb = "0.10.1"
serde = "1.0.82"
serde_derive = "1.0.82"
serde_json = "1.0.10"
solana-bpfloader = { path = "programs/native/bpf_loader", version = "0.11.0" }
solana-drone = { path = "drone", version = "0.11.0" }
solana-bpfloader = { path = "programs/native/bpf_loader", version = "0.11.1" }
solana-drone = { path = "drone", version = "0.11.1" }
solana-jsonrpc-core = "0.4.0"
solana-jsonrpc-http-server = "0.4.0"
solana-jsonrpc-macros = "0.4.0"
solana-jsonrpc-pubsub = "0.4.0"
solana-jsonrpc-ws-server = "0.4.0"
solana-logger = { path = "logger", version = "0.11.0" }
solana-metrics = { path = "metrics", version = "0.11.0" }
solana-native-loader = { path = "programs/native/native_loader", version = "0.11.0" }
solana-netutil = { path = "netutil", version = "0.11.0" }
solana-sdk = { path = "sdk", version = "0.11.0" }
solana-system-program = { path = "programs/native/system", version = "0.11.0" }
solana-logger = { path = "logger", version = "0.11.1" }
solana-metrics = { path = "metrics", version = "0.11.1" }
solana-native-loader = { path = "programs/native/native_loader", version = "0.11.1" }
solana-netutil = { path = "netutil", version = "0.11.1" }
solana-sdk = { path = "sdk", version = "0.11.1" }
solana-system-program = { path = "programs/native/system", version = "0.11.1" }
tokio = "0.1"
tokio-codec = "0.1"
untrusted = "0.6.2"

View File

@ -26,7 +26,9 @@ Furthermore, and much to our surprise, it can be implemented using a mechanism t
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
===

View File

@ -2,16 +2,16 @@
authors = ["Solana Maintainers <maintainers@solana.com>"]
edition = "2018"
name = "solana-bench-streamer"
version = "0.11.0"
version = "0.11.1"
repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0"
homepage = "https://solana.com/"
[dependencies]
clap = "2.32.0"
solana = { path = "..", version = "0.11.0" }
solana-logger = { path = "../logger", version = "0.11.0" }
solana-netutil = { path = "../netutil", version = "0.11.0" }
solana = { path = "..", version = "0.11.1" }
solana-logger = { path = "../logger", version = "0.11.1" }
solana-netutil = { path = "../netutil", version = "0.11.1" }
[features]
cuda = []

View File

@ -2,7 +2,7 @@
authors = ["Solana Maintainers <maintainers@solana.com>"]
edition = "2018"
name = "solana-bench-tps"
version = "0.11.0"
version = "0.11.1"
repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0"
homepage = "https://solana.com/"
@ -11,11 +11,11 @@ homepage = "https://solana.com/"
clap = "2.32.0"
rayon = "1.0.3"
serde_json = "1.0.10"
solana = { path = "..", version = "0.11.0" }
solana-drone = { path = "../drone", version = "0.11.0" }
solana-logger = { path = "../logger", version = "0.11.0" }
solana-metrics = { path = "../metrics", version = "0.11.0" }
solana-sdk = { path = "../sdk", version = "0.11.0" }
solana = { path = "..", version = "0.11.1" }
solana-drone = { path = "../drone", version = "0.11.1" }
solana-logger = { path = "../logger", version = "0.11.1" }
solana-metrics = { path = "../metrics", version = "0.11.1" }
solana-sdk = { path = "../sdk", version = "0.11.1" }
[features]
cuda = []

View File

@ -6,7 +6,7 @@ steps:
timeout_in_minutes: 20
name: "publish docker"
- command: "ci/publish-crate.sh"
timeout_in_minutes: 20
timeout_in_minutes: 40
name: "publish crate"
branches: "!master"
- command: "ci/publish-bpf-sdk.sh"

View File

@ -82,10 +82,26 @@ for tag in "${tags[@]}"; do
fi
done
echo EDGE_CHANNEL=master
echo BETA_CHANNEL="${beta:+v$beta}"
echo STABLE_CHANNEL="${stable:+v$stable}"
echo BETA_CHANNEL_LATEST_TAG="${beta_tag:+v$beta_tag}"
echo STABLE_CHANNEL_LATEST_TAG="${stable_tag:+v$stable_tag}"
EDGE_CHANNEL=master
BETA_CHANNEL=${beta:+v$beta}
STABLE_CHANNEL=${stable:+v$stable}
BETA_CHANNEL_LATEST_TAG=${beta_tag:+v$beta_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

View File

@ -16,18 +16,29 @@ echo --- create book repo
git commit -m "${BUILDKITE_COMMIT:-local}"
)
echo --- publish
if [[ $BUILDKITE_BRANCH = master ]]; then
cd book/html/
git remote add origin git@github.com:solana-labs/solana.git
git fetch origin gh-pages
if ! git diff HEAD origin/gh-pages --quiet; then
git push -f origin HEAD:gh-pages
else
echo "Content unchanged, publish skipped"
fi
eval "$(ci/channel-info.sh)"
# Only publish the book from the edge and beta channels for now.
case $CHANNEL in
edge)
repo=git@github.com:solana-labs/book-edge.git
;;
beta)
repo=git@github.com:solana-labs/book.git
;;
*)
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
echo "Publish skipped"
echo "Content unchanged, publish skipped"
fi
exit 0

View File

@ -19,6 +19,7 @@ CRATES=(
drone
programs/native/{budget,bpf_loader,lua_loader,native_loader,noop,system,vote}
.
fullnode-config
fullnode
genesis
ledger-tool
@ -26,22 +27,18 @@ CRATES=(
)
maybePackage="echo Package skipped"
maybePublish="echo Publish skipped"
# Only package/publish if this is a tagged release
if [[ -n $TRIGGERED_BUILDKITE_TAG ]]; then
maybePackage="cargo package"
[[ -n $TRIGGERED_BUILDKITE_TAG ]] || {
echo TRIGGERED_BUILDKITE_TAG unset, skipped
exit 0
}
# Only publish if there's no human around
if [[ -n $CI ]]; then
maybePublish="cargo publish --token $CRATES_IO_TOKEN"
if [[ -z "$CRATES_IO_TOKEN" ]]; then
echo CRATES_IO_TOKEN undefined
exit 1
fi
fi
fi
[[ -n "$CRATES_IO_TOKEN" ]] || {
echo CRATES_IO_TOKEN undefined
exit 1
}
cargoCommand="cargo publish --token $CRATES_IO_TOKEN"
for crate in "${CRATES[@]}"; do
if [[ ! -r $crate/Cargo.toml ]]; then
@ -49,10 +46,14 @@ for crate in "${CRATES[@]}"; do
exit 1
fi
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
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

View File

@ -8,11 +8,11 @@ if [[ -z $BUILDKITE ]]; then
exit 1
fi
if [[ -z $CHANNEL ]]; then
CHANNEL=$(buildkite-agent meta-data get "channel" --default "")
if [[ -z $PUBLISH_CHANNEL ]]; then
PUBLISH_CHANNEL=$(buildkite-agent meta-data get "channel" --default "")
fi
if [[ -z $CHANNEL ]]; then
if [[ -z $PUBLISH_CHANNEL ]]; then
(
cat <<EOF
steps:
@ -37,7 +37,7 @@ fi
ci/channel-info.sh
eval "$(ci/channel-info.sh)"
case $CHANNEL in
case $PUBLISH_CHANNEL in
edge)
CHANNEL_BRANCH=$EDGE_CHANNEL
;;
@ -48,7 +48,7 @@ stable)
CHANNEL_BRANCH=$STABLE_CHANNEL
;;
*)
echo "Error: Invalid CHANNEL=$CHANNEL"
echo "Error: Invalid PUBLISH_CHANNEL=$PUBLISH_CHANNEL"
exit 1
;;
esac
@ -63,11 +63,11 @@ steps:
message: "$BUILDKITE_MESSAGE"
branch: "$CHANNEL_BRANCH"
env:
CHANNEL: "$CHANNEL"
PUBLISH_CHANNEL: "$PUBLISH_CHANNEL"
EOF
) | buildkite-agent pipeline upload
exit 0
fi
set -x
exec metrics/publish-metrics-dashboard.sh "$CHANNEL"
exec metrics/publish-metrics-dashboard.sh "$PUBLISH_CHANNEL"

View File

@ -11,14 +11,6 @@ fi
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
CHANNEL_OR_TAG=$BUILDKITE_TAG
elif [[ -n "$TRIGGERED_BUILDKITE_TAG" ]]; then

View File

@ -19,14 +19,6 @@ fi
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
echo Unable to determine channel to publish into, exiting.
exit 1
@ -61,13 +53,13 @@ if [[ ! -x /usr/bin/multilog ]]; then
sudo apt-get install -y daemontools
fi
echo --- build: $CHANNEL channel
echo "--- build: $CHANNEL channel"
snapcraft
source ci/upload-ci-artifact.sh
upload-ci-artifact solana_*.snap
if [[ -z $DO_NOT_PUBLISH_SNAP ]]; then
echo --- publish: $CHANNEL channel
$DRYRUN snapcraft push solana_*.snap --release $CHANNEL
echo "--- publish: $CHANNEL channel"
$DRYRUN snapcraft push solana_*.snap --release "$CHANNEL"
fi

View File

@ -2,6 +2,7 @@
set -e
cd "$(dirname "$0")"/..
source ci/upload-ci-artifact.sh
zone=
bootstrapFullNodeAddress=
@ -9,12 +10,16 @@ bootstrapFullNodeMachineType=
clientNodeCount=0
additionalFullNodeCount=10
publicNetwork=false
snapChannel=edge
skipSetup=false
skipStart=false
stopNetwork=false
externalNode=false
tarChannelOrTag=edge
delete=false
enableGpu=false
bootDiskType=""
leaderRotation=true
useTarReleaseChannel=false
blockstreamer=false
usage() {
exitcode=0
@ -23,29 +28,35 @@ usage() {
echo "Error: $*"
fi
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
name - name of the network
cloud - cloud provider to use (gce, ec2)
zone - cloud provider zone to deploy the network into
mandatory arguments:
-p [network-name] - name of the network
-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:
-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
specified release channel (edge|beta|stable) or release tag
(vX.Y.Z)
(default: $tarChannelOrTag)
-n [number] - Number of additional full nodes (default: $additionalFullNodeCount)
-c [number] - Number of client bencher nodes (default: $clientNodeCount)
-u - Include a Blockstreamer (default: $blockstreamer)
-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 (default: $enableGpu)
-b - Disable leader rotation
-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
metrics
@ -53,19 +64,22 @@ EOF
exit $exitcode
}
netName=$1
cloudProvider=$2
zone=$3
[[ -n $netName ]] || usage
[[ -n $cloudProvider ]] || usage "Cloud provider not specified"
[[ -n $zone ]] || usage "Zone not specified"
shift 3
zone=()
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
h | \?)
usage
;;
p)
netName=$OPTARG
;;
C)
cloudProvider=$OPTARG
;;
z)
zone+=("$OPTARG")
;;
P)
publicNetwork=true
;;
@ -75,21 +89,10 @@ while getopts "h?p:Pn:c:s:t:gG:a:db" opt; do
c)
clientNodeCount=$OPTARG
;;
s)
case $OPTARG in
edge|beta|stable)
snapChannel=$OPTARG
;;
*)
usage "Invalid snap channel: $OPTARG"
;;
esac
;;
t)
case $OPTARG in
edge|beta|stable|v*)
tarChannelOrTag=$OPTARG
useTarReleaseChannel=true
;;
*)
usage "Invalid release channel: $OPTARG"
@ -110,51 +113,139 @@ while getopts "h?p:Pn:c:s:t:gG:a:db" opt; do
bootstrapFullNodeAddress=$OPTARG
;;
d)
bootDiskType=$OPTARG
;;
D)
delete=true
;;
r)
skipSetup=true
;;
s)
skipStart=true
;;
x)
externalNode=true
;;
u)
blockstreamer=true
;;
S)
stopNetwork=true
;;
*)
usage "Error: unhandled option: $opt"
;;
esac
done
[[ -n $netName ]] || usage
[[ -n $cloudProvider ]] || usage "Cloud provider not specified"
[[ -n ${zone[*]} ]] || usage "At least one zone must be specified"
create_args=(
-a "$bootstrapFullNodeAddress"
-c "$clientNodeCount"
-n "$additionalFullNodeCount"
-p "$netName"
-z "$zone"
)
shutdown() {
exitcode=$?
if $enableGpu; then
if [[ -z $bootstrapFullNodeMachineType ]]; then
create_args+=(-g)
else
create_args+=(-G "$bootstrapFullNodeMachineType")
set +e
if [[ -d net/log ]]; then
mv net/log net/log-deploy
for logfile in net/log-deploy/*; do
if [[ -f $logfile ]]; then
upload-ci-artifact "$logfile"
tail "$logfile"
fi
done
fi
fi
if ! $leaderRotation; then
create_args+=(-b)
fi
if $publicNetwork; then
create_args+=(-P)
fi
exit $exitcode
}
rm -rf net/{log,-deploy}
trap shutdown EXIT INT
set -x
echo "--- $cloudProvider.sh delete"
time net/"$cloudProvider".sh delete -z "$zone" -p "$netName"
if $delete; then
exit 0
# Build a string to pass zone opts to $cloudProvider.sh: "-z zone1 -z zone2 ..."
zone_args=()
for val in "${zone[@]}"; do
zone_args+=("-z $val")
done
if $stopNetwork; then
skipSetup=true
fi
echo "--- $cloudProvider.sh create"
time net/"$cloudProvider".sh create "${create_args[@]}"
if $delete; then
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
if $stopNetwork; then
echo --- net.sh stop
time net/net.sh stop
exit 0
fi
echo --- net.sh start
maybeRejectExtraNodes=
if ! $publicNetwork; then
@ -168,10 +259,38 @@ maybeNoLedgerVerify=
if [[ -n $NO_LEDGER_VERIFY ]]; then
maybeNoLedgerVerify="-o noLedgerVerify"
fi
# shellcheck disable=SC2086 # Don't want to double quote maybeRejectExtraNodes
if $useTarReleaseChannel; then
time net/net.sh start -t "$tarChannelOrTag" $maybeRejectExtraNodes $maybeNoValidatorSanity $maybeNoLedgerVerify
else
time net/net.sh start -s "$snapChannel" $maybeRejectExtraNodes $maybeNoValidatorSanity $maybeNoLedgerVerify
maybeSkipSetup=
if $skipSetup; then
maybeSkipSetup="-r"
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

View File

@ -42,18 +42,28 @@ steps:
value: "testnet-beta"
- label: "testnet-beta-perf"
value: "testnet-beta-perf"
- label: "testnet-demo"
value: "testnet-demo"
- select: "Operation"
key: "testnet-operation"
default: "sanity-or-restart"
options:
- label: "Sanity check. Restart network on failure"
value: "sanity-or-restart"
- label: "Start (or restart) the network"
- label: "Create new testnet nodes and then start network software. If nodes are already created, they will be deleted and then re-created."
value: "create-and-start"
- 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"
- label: "Stop the network"
- label: "Stop network software without deleting testnet nodes"
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"
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")"
agents:
- "queue=$BUILDKITE_AGENT_META_DATA_QUEUE"
@ -62,29 +72,37 @@ EOF
exit 0
fi
export SOLANA_METRICS_CONFIG="db=$TESTNET,$SOLANA_METRICS_PARTIAL_CONFIG"
echo "SOLANA_METRICS_CONFIG: $SOLANA_METRICS_CONFIG"
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
testnet-edge|testnet-edge-perf)
CHANNEL_OR_TAG=edge
CHANNEL_BRANCH=$EDGE_CHANNEL
: "${TESTNET_DB_HOST:=https://clocktower-f1d56615.influxcloud.net:8086}"
;;
testnet-beta|testnet-beta-perf)
CHANNEL_OR_TAG=beta
CHANNEL_BRANCH=$BETA_CHANNEL
: "${TESTNET_DB_HOST:=https://clocktower-f1d56615.influxcloud.net:8086}"
: "${EC2_NODE_COUNT:=10}"
: "${GCE_NODE_COUNT:=}"
;;
testnet|testnet-perf)
if [[ -n $BETA_CHANNEL_LATEST_TAG ]]; then
CHANNEL_OR_TAG=$BETA_CHANNEL_LATEST_TAG
CHANNEL_BRANCH=$BETA_CHANNEL
else
CHANNEL_OR_TAG=$STABLE_CHANNEL_LATEST_TAG
CHANNEL_BRANCH=$STABLE_CHANNEL
fi
testnet)
CHANNEL_OR_TAG=$STABLE_CHANNEL_LATEST_TAG
CHANNEL_BRANCH=$STABLE_CHANNEL
: "${TESTNET_DB_HOST:=https://clocktower-f1d56615.influxcloud.net:8086}"
;;
testnet-perf)
CHANNEL_OR_TAG=$STABLE_CHANNEL_LATEST_TAG
CHANNEL_BRANCH=$STABLE_CHANNEL
;;
testnet-demo)
CHANNEL_OR_TAG=beta
CHANNEL_BRANCH=$BETA_CHANNEL
;;
*)
echo "Error: Invalid TESTNET=$TESTNET"
@ -92,9 +110,21 @@ testnet|testnet-perf)
;;
esac
if [[ $BUILDKITE_BRANCH != "$CHANNEL_BRANCH" ]]; then
(
cat <<EOF
if [[ -n $TESTNET_DB_HOST ]]; then
SOLANA_METRICS_PARTIAL_CONFIG="host=$TESTNET_DB_HOST,$SOLANA_METRICS_PARTIAL_CONFIG"
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:
- trigger: "$BUILDKITE_PIPELINE_SLUG"
async: true
@ -104,78 +134,78 @@ steps:
env:
TESTNET: "$TESTNET"
TESTNET_OP: "$TESTNET_OP"
TESTNET_DB_HOST: "$TESTNET_DB_HOST"
EC2_NODE_COUNT: "$EC2_NODE_COUNT"
GCE_NODE_COUNT: "$GCE_NODE_COUNT"
EOF
) | buildkite-agent pipeline upload
exit 0
) | buildkite-agent pipeline upload
exit 0
fi
fi
sanity() {
echo "--- sanity $TESTNET"
case $TESTNET in
testnet-edge)
# shellcheck disable=2030
# shellcheck disable=2031
(
set -ex
export NO_LEDGER_VERIFY=1
export NO_VALIDATOR_SANITY=1
ci/testnet-sanity.sh edge-testnet-solana-com ec2 us-west-1a
set -x
NO_LEDGER_VERIFY=1 \
ci/testnet-sanity.sh edge-testnet-solana-com ec2 us-west-1a
)
;;
testnet-edge-perf)
# shellcheck disable=2030
# shellcheck disable=2031
(
set -ex
export REJECT_EXTRA_NODES=1
export NO_LEDGER_VERIFY=1
export NO_VALIDATOR_SANITY=1
ci/testnet-sanity.sh edge-perf-testnet-solana-com ec2 us-west-2b
set -x
REJECT_EXTRA_NODES=1 \
NO_LEDGER_VERIFY=1 \
NO_VALIDATOR_SANITY=1 \
ci/testnet-sanity.sh edge-perf-testnet-solana-com ec2 us-west-2b
)
;;
testnet-beta)
# shellcheck disable=2030
# shellcheck disable=2031
(
set -ex
export NO_LEDGER_VERIFY=1
export NO_VALIDATOR_SANITY=1
ci/testnet-sanity.sh beta-testnet-solana-com ec2 us-west-1a
set -x
ok=true
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)
# shellcheck disable=2030
# shellcheck disable=2031
(
set -ex
export REJECT_EXTRA_NODES=1
export NO_LEDGER_VERIFY=1
export NO_VALIDATOR_SANITY=1
ci/testnet-sanity.sh beta-perf-testnet-solana-com ec2 us-west-2b
set -x
REJECT_EXTRA_NODES=1 \
NO_LEDGER_VERIFY=1 \
NO_VALIDATOR_SANITY=1 \
ci/testnet-sanity.sh beta-perf-testnet-solana-com ec2 us-west-2b
)
;;
testnet)
# shellcheck disable=2030
# shellcheck disable=2031
(
set -ex
export NO_LEDGER_VERIFY=1
export NO_VALIDATOR_SANITY=1
set -x
NO_LEDGER_VERIFY=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 ec2 us-west-1a
)
;;
testnet-perf)
# shellcheck disable=2030
# shellcheck disable=2031
(
set -ex
export REJECT_EXTRA_NODES=1
export NO_LEDGER_VERIFY=1
export NO_VALIDATOR_SANITY=1
set -x
REJECT_EXTRA_NODES=1 \
NO_LEDGER_VERIFY=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 gce us-west1-b
)
;;
*)
@ -185,100 +215,146 @@ sanity() {
esac
}
deploy() {
declare maybeCreate=$1
declare maybeStart=$2
declare maybeStop=$3
declare maybeDelete=$4
start() {
declare maybeDelete=$1
if [[ -z $maybeDelete ]]; then
echo "--- start $TESTNET"
echo "--- deploy \"$maybeCreate\" \"$maybeStart\" \"$maybeStop\" \"$maybeDelete\""
# Create or recreate the nodes
if [[ -z $maybeCreate ]]; then
skipCreate=skip
else
echo "--- stop $TESTNET"
skipCreate=""
fi
# Start or restart the network software on the nodes
if [[ -z $maybeStart ]]; then
skipStart=skip
else
skipStart=""
fi
case $TESTNET in
testnet-edge)
# shellcheck disable=2030
# shellcheck disable=2031
(
set -ex
export NO_LEDGER_VERIFY=1
export NO_VALIDATOR_SANITY=1
ci/testnet-deploy.sh edge-testnet-solana-com ec2 us-west-1a \
-t "$CHANNEL_OR_TAG" -n 3 -c 0 -P -a eipalloc-0ccd4f2239886fa94 \
${maybeDelete:+-d}
set -x
ci/testnet-deploy.sh -p edge-testnet-solana-com -C ec2 -z us-west-1a \
-t "$CHANNEL_OR_TAG" -n 3 -c 0 -u -P -a eipalloc-0ccd4f2239886fa94 \
${skipCreate:+-r} \
${skipStart:+-s} \
${maybeStop:+-S} \
${maybeDelete:+-D}
)
;;
testnet-edge-perf)
# shellcheck disable=2030
# shellcheck disable=2031
(
set -ex
export NO_LEDGER_VERIFY=1
export NO_VALIDATOR_SANITY=1
ci/testnet-deploy.sh edge-perf-testnet-solana-com ec2 us-west-2b \
-g -t "$CHANNEL_OR_TAG" -c 2 \
-b \
${maybeDelete:+-d}
set -x
NO_LEDGER_VERIFY=1 \
NO_VALIDATOR_SANITY=1 \
RUST_LOG=solana=warn \
ci/testnet-deploy.sh -p edge-perf-testnet-solana-com -C ec2 -z us-west-2b \
-g -t "$CHANNEL_OR_TAG" -c 2 \
-b \
${skipCreate:+-r} \
${skipStart:+-s} \
${maybeStop:+-S} \
${maybeDelete:+-D}
)
;;
testnet-beta)
# shellcheck disable=2030
# shellcheck disable=2031
(
set -ex
export NO_LEDGER_VERIFY=1
export NO_VALIDATOR_SANITY=1
ci/testnet-deploy.sh beta-testnet-solana-com ec2 us-west-1a \
-t "$CHANNEL_OR_TAG" -n 3 -c 0 -P -a eipalloc-0f286cf8a0771ce35 \
-b \
${maybeDelete:+-d}
set -x
# Build an array to pass as opts to testnet-deploy.sh: "-z zone1 -z zone2 ..."
GCE_ZONE_ARGS=()
for val in "${GCE_ZONES[@]}"; do
GCE_ZONE_ARGS+=("-z $val")
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)
# shellcheck disable=2030
# shellcheck disable=2031
(
set -ex
export NO_LEDGER_VERIFY=1
export NO_VALIDATOR_SANITY=1
ci/testnet-deploy.sh beta-perf-testnet-solana-com ec2 us-west-2b \
-g -t "$CHANNEL_OR_TAG" -c 2 \
-b \
${maybeDelete:+-d}
set -x
NO_LEDGER_VERIFY=1 \
NO_VALIDATOR_SANITY=1 \
RUST_LOG=solana=warn \
ci/testnet-deploy.sh -p beta-perf-testnet-solana-com -C ec2 -z us-west-2b \
-g -t "$CHANNEL_OR_TAG" -c 2 \
-b \
${skipCreate:+-r} \
${skipStart:+-s} \
${maybeStop:+-S} \
${maybeDelete:+-D}
)
;;
testnet)
# shellcheck disable=2030
# shellcheck disable=2031
(
set -ex
export NO_LEDGER_VERIFY=1
export NO_VALIDATOR_SANITY=1
#ci/testnet-deploy.sh testnet-solana-com gce us-east1-c \
# -s "$CHANNEL_OR_TAG" -n 3 -c 0 -P -a testnet-solana-com \
# ${maybeDelete:+-d}
ci/testnet-deploy.sh testnet-solana-com ec2 us-west-1a \
-t "$CHANNEL_OR_TAG" -n 3 -c 0 -P -a eipalloc-0fa502bf95f6f18b2 \
-b \
${maybeDelete:+-d}
set -x
NO_VALIDATOR_SANITY=1 \
ci/testnet-deploy.sh -p testnet-solana-com -C ec2 -z us-west-1a \
-t "$CHANNEL_OR_TAG" -n 3 -c 0 -u -P -a eipalloc-0fa502bf95f6f18b2 \
-b \
${skipCreate:+-r} \
${skipStart:+-s} \
${maybeStop:+-S} \
${maybeDelete:+-D}
)
;;
testnet-perf)
# shellcheck disable=2030
# shellcheck disable=2031
(
set -ex
export NO_LEDGER_VERIFY=1
export NO_VALIDATOR_SANITY=1
ci/testnet-deploy.sh perf-testnet-solana-com gce us-west1-b \
-G "n1-standard-16 --accelerator count=2,type=nvidia-tesla-v100" \
-t "$CHANNEL_OR_TAG" -c 2 \
-b \
-d pd-ssd \
${maybeDelete:+-d}
#ci/testnet-deploy.sh perf-testnet-solana-com ec2 us-east-1a \
# -g \
# -t "$CHANNEL_OR_TAG" -c 2 \
# ${maybeDelete:+-d}
set -x
NO_LEDGER_VERIFY=1 \
NO_VALIDATOR_SANITY=1 \
RUST_LOG=solana=warn \
ci/testnet-deploy.sh -p perf-testnet-solana-com -C gce -z us-west1-b \
-G "n1-standard-16 --accelerator count=2,type=nvidia-tesla-v100" \
-t "$CHANNEL_OR_TAG" -c 2 \
-b \
-d pd-ssd \
${skipCreate:+-r} \
${skipStart:+-s} \
${maybeStop:+-S} \
${maybeDelete:+-D}
)
;;
testnet-demo)
(
set -x
echo "Demo net not yet implemented!"
exit 1
)
;;
*)
@ -288,29 +364,119 @@ start() {
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() {
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
sanity)
sanity
enable)
enable_testnet
;;
disable)
disable_testnet
delete
;;
create-and-start)
is_testnet_enabled
create-and-start
;;
create)
is_testnet_enabled
create
;;
start)
is_testnet_enabled
start
;;
stop)
is_testnet_enabled
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)
is_testnet_enabled
if sanity; then
echo Pass
else
echo "Sanity failed, restarting the network"
echo "^^^ +++"
start
echo "+++ Sanity failed, updating the network"
$metricsWriteDatapoint "testnet-manager sanity-failure=1"
# 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
;;
*)
echo "Error: Invalid TESTNET_OP=$TESTNET_OP"
exit 1
;;
esac
echo --- fin

View File

@ -1,6 +1,6 @@
[package]
name = "solana-drone"
version = "0.11.0"
version = "0.11.1"
description = "Solana Drone"
authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana"
@ -19,8 +19,8 @@ clap = "2.31"
log = "0.4.2"
serde = "1.0.82"
serde_derive = "1.0.82"
solana-sdk = { path = "../sdk", version = "0.11.0" }
solana-metrics = { path = "../metrics", version = "0.11.0" }
solana-sdk = { path = "../sdk", version = "0.11.1" }
solana-metrics = { path = "../metrics", version = "0.11.1" }
tokio = "0.1"
tokio-codec = "0.1"

View File

@ -2,7 +2,8 @@
authors = ["Solana Maintainers <maintainers@solana.com>"]
edition = "2018"
name = "solana-fullnode-config"
version = "0.11.0"
description = "Blockchain, Rebuilt for Scale"
version = "0.11.1"
repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0"
homepage = "https://solana.com/"
@ -14,8 +15,8 @@ log = "0.4.2"
serde = "1.0.82"
serde_derive = "1.0.82"
serde_json = "1.0.10"
solana-netutil = { path = "../netutil", version = "0.11.0" }
solana-sdk = { path = "../sdk", version = "0.11.0" }
solana-netutil = { path = "../netutil", version = "0.11.1" }
solana-sdk = { path = "../sdk", version = "0.11.1" }
untrusted = "0.6.2"
[features]

View File

@ -2,7 +2,8 @@
authors = ["Solana Maintainers <maintainers@solana.com>"]
edition = "2018"
name = "solana-fullnode"
version = "0.11.0"
description = "Blockchain, Rebuilt for Scale"
version = "0.11.1"
repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0"
homepage = "https://solana.com/"
@ -11,13 +12,13 @@ homepage = "https://solana.com/"
clap = "2.32.0"
log = "0.4.2"
serde_json = "1.0.10"
solana = { path = "..", version = "0.11.0" }
solana-drone = { path = "../drone", version = "0.11.0" }
solana-fullnode-config = { path = "../fullnode-config", version = "0.11.0" }
solana-logger = { path = "../logger", version = "0.11.0" }
solana-netutil = { path = "../netutil", version = "0.11.0" }
solana-metrics = { path = "../metrics", version = "0.11.0" }
solana-sdk = { path = "../sdk", version = "0.11.0" }
solana = { path = "..", version = "0.11.1" }
solana-drone = { path = "../drone", version = "0.11.1" }
solana-fullnode-config = { path = "../fullnode-config", version = "0.11.1" }
solana-logger = { path = "../logger", version = "0.11.1" }
solana-netutil = { path = "../netutil", version = "0.11.1" }
solana-metrics = { path = "../metrics", version = "0.11.1" }
solana-sdk = { path = "../sdk", version = "0.11.1" }
[features]
chacha = []

View File

@ -2,7 +2,8 @@
authors = ["Solana Maintainers <maintainers@solana.com>"]
edition = "2018"
name = "solana-genesis"
version = "0.11.0"
description = "Blockchain, Rebuilt for Scale"
version = "0.11.1"
repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0"
homepage = "https://solana.com/"
@ -10,8 +11,8 @@ homepage = "https://solana.com/"
[dependencies]
clap = "2.32.0"
serde_json = "1.0.10"
solana = { path = "..", version = "0.11.0" }
solana-sdk = { path = "../sdk", version = "0.11.0" }
solana = { path = "..", version = "0.11.1" }
solana-sdk = { path = "../sdk", version = "0.11.1" }
[features]
cuda = []

View File

@ -1,6 +1,6 @@
[package]
name = "solana-keygen"
version = "0.11.0"
version = "0.11.1"
description = "Solana key generation utility"
authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana"
@ -14,7 +14,7 @@ cuda = []
[dependencies]
dirs = "1.0.2"
clap = "2.31"
solana-sdk = { path = "../sdk", version = "0.11.0" }
solana-sdk = { path = "../sdk", version = "0.11.1" }
[[bin]]
name = "solana-keygen"

View File

@ -2,7 +2,8 @@
authors = ["Solana Maintainers <maintainers@solana.com>"]
edition = "2018"
name = "solana-ledger-tool"
version = "0.11.0"
description = "Blockchain, Rebuilt for Scale"
version = "0.11.1"
repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0"
homepage = "https://solana.com/"
@ -10,8 +11,8 @@ homepage = "https://solana.com/"
[dependencies]
clap = "2.32.0"
serde_json = "1.0.10"
solana = { path = "..", version = "0.11.0" }
solana-logger = { path = "../logger", version = "0.11.0" }
solana = { path = "..", version = "0.11.1" }
solana-logger = { path = "../logger", version = "0.11.1" }
[features]
cuda = []

View File

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

View File

@ -1,6 +1,6 @@
[package]
name = "solana-metrics"
version = "0.11.0"
version = "0.11.1"
description = "Solana Metrics"
authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana"
@ -14,7 +14,7 @@ log = "0.4.2"
reqwest = "0.9.0"
lazy_static = "1.2.0"
sys-info = "0.5.6"
solana-sdk = { path = "../sdk", version = "0.11.0" }
solana-sdk = { path = "../sdk", version = "0.11.1" }
[dev-dependencies]
rand = "0.6.1"

View File

@ -154,6 +154,11 @@ case $cloudProvider in
gce)
if $enableGpu; then
# 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"
else
# Upstream Ubuntu 18.04 LTS image
@ -161,23 +166,45 @@ gce)
fi
;;
ec2)
#
# 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)
imageName="ami-0a8bd6fb204473f78"
;;
us-west-1)
imageName="ami-07011f0795513c59d"
;;
us-west-2)
imageName="ami-0a11ef42b62b82b68"
;;
*)
usage "Unsupported region: $region"
;;
esac
if $enableGpu; then
#
# Custom Ubuntu 18.04 LTS image with CUDA 9.2 and CUDA 10.0 installed
#
# TODO: Unfortunately these AMIs are not public. When this becomes an issue,
# use the stock Ubuntu 18.04 image and programmatically install CUDA after the
# instance boots
#
case $region in
us-east-1)
imageName="ami-0a8bd6fb204473f78"
;;
us-west-1)
imageName="ami-07011f0795513c59d"
;;
us-west-2)
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"
@ -444,6 +471,8 @@ touch /.instance-startup-complete
EOF
cloud_Initialize "$prefix"
cloud_CreateInstances "$prefix" "$prefix-bootstrap-leader" 1 \
"$imageName" "$bootstrapLeaderMachineType" "$fullNodeBootDiskSizeInGb" \
"$startupScript" "$bootstrapLeaderAddress" "$bootDiskType"

View File

@ -35,6 +35,7 @@ Operate a configured testnet
(ignored if -s or -S is specified)
-r - Reuse existing node/ledger configuration from a
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
network nodes.
@ -59,12 +60,13 @@ sanityExtraArgs=
cargoFeatures=
skipSetup=false
updateNodes=false
customPrograms=
command=$1
[[ -n $command ]] || usage
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
h | \?)
usage
@ -107,6 +109,9 @@ while getopts "h?S:s:T:t:o:f:r" opt; do
r)
skipSetup=true
;;
D)
customPrograms=$OPTARG
;;
o)
case $OPTARG in
noLedgerVerify|noValidatorSanity|rejectExtraNodes)
@ -146,6 +151,9 @@ build() {
$MAYBE_DOCKER bash -c "
set -ex
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"

View File

@ -101,6 +101,33 @@ cloud_FindInstance() {
__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]
@ -131,21 +158,13 @@ cloud_CreateInstances() {
declare optionalStartupScript="$7"
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
args=(
--key-name "$networkName"
--count "$numNodes"
--region "$region"
--placement "AvailabilityZone=$zone"
--security-groups testnet
--security-groups "$networkName"
--image-id "$imageName"
--instance-type "$machineType"
--tag-specifications "ResourceType=instance,Tags=[{Key=name,Value=$namePrefix}]"

View 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"
}
]
}
]
}

View File

@ -76,6 +76,21 @@ cloud_FindInstance() {
__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]
# [machineType] [bootDiskSize] [enableGpu]

View File

@ -1,6 +1,6 @@
[package]
name = "solana-netutil"
version = "0.11.0"
version = "0.11.1"
description = "Solana Network Utilities"
authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana"
@ -18,7 +18,7 @@ reqwest = "0.9.0"
socket2 = "0.3.8"
[dev-dependencies]
solana-logger = { path = "../logger", version = "0.11.0" }
solana-logger = { path = "../logger", version = "0.11.1" }
[lib]
name = "solana_netutil"

View File

@ -1,6 +1,6 @@
[package]
name = "solana-bpf-noop"
version = "0.11.0"
version = "0.11.1"
description = "Solana BPF noop program"
authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana"
@ -9,4 +9,4 @@ homepage = "https://solana.com/"
[dependencies]
rbpf = "0.1.0"
solana-sdk = { path = "../../../../sdk", version = "0.11.0" }
solana-sdk = { path = "../../../../sdk", version = "0.11.1" }

View File

@ -1,6 +1,6 @@
[package]
name = "solana-bpfloader"
version = "0.11.0"
version = "0.11.1"
description = "Solana BPF Loader"
authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana"
@ -19,8 +19,8 @@ libc = "0.2.45"
log = "0.4.2"
solana_rbpf = "=0.1.5"
serde = "1.0.82"
solana-logger = { path = "../../../logger", version = "0.11.0" }
solana-sdk = { path = "../../../sdk", version = "0.11.0" }
solana-logger = { path = "../../../logger", version = "0.11.1" }
solana-sdk = { path = "../../../sdk", version = "0.11.1" }
[lib]
name = "solana_bpf_loader"

View File

@ -1,6 +1,6 @@
[package]
name = "solana-budget-program"
version = "0.11.0"
version = "0.11.1"
description = "Solana budget program"
authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana"
@ -14,8 +14,8 @@ chrono = { version = "0.4.0", features = ["serde"] }
log = "0.4.2"
serde = "1.0.82"
serde_derive = "1.0.82"
solana-logger = { path = "../../../logger", version = "0.11.0" }
solana-sdk = { path = "../../../sdk", version = "0.11.0" }
solana-logger = { path = "../../../logger", version = "0.11.1" }
solana-sdk = { path = "../../../sdk", version = "0.11.1" }
[lib]
name = "solana_budget_program"

View File

@ -1,6 +1,6 @@
[package]
name = "solana-erc20"
version = "0.11.0"
version = "0.11.1"
description = "Solana reference erc20 program"
authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana"
@ -13,8 +13,8 @@ bincode = "1.0.0"
log = "0.4.2"
serde = "1.0.82"
serde_derive = "1.0.82"
solana-logger = { path = "../../../logger", version = "0.11.0" }
solana-sdk = { path = "../../../sdk", version = "0.11.0" }
solana-logger = { path = "../../../logger", version = "0.11.1" }
solana-sdk = { path = "../../../sdk", version = "0.11.1" }
[lib]
name = "solana_erc20"

View File

@ -1,6 +1,6 @@
[package]
name = "solana-lualoader"
version = "0.11.0"
version = "0.11.1"
description = "Solana Lua Loader"
authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana"
@ -14,8 +14,8 @@ log = "0.4.2"
rlua = "0.15.2"
serde = "1.0.82"
serde_derive = "1.0.82"
solana-logger = { path = "../../../logger", version = "0.11.0" }
solana-sdk = { path = "../../../sdk", version = "0.11.0" }
solana-logger = { path = "../../../logger", version = "0.11.1" }
solana-sdk = { path = "../../../sdk", version = "0.11.1" }
[dev-dependencies]
bincode = "1.0.0"

View File

@ -1,6 +1,6 @@
[package]
name = "solana-native-loader"
version = "0.11.0"
version = "0.11.1"
description = "Solana Native Loader"
authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana"
@ -13,7 +13,7 @@ bincode = "1.0.0"
libc = "0.2.45"
libloading = "0.5.0"
log = "0.4.2"
solana-sdk = { path = "../../../sdk", version = "0.11.0" }
solana-sdk = { path = "../../../sdk", version = "0.11.1" }
[lib]
name = "solana_native_loader"

View File

@ -1,6 +1,6 @@
[package]
name = "solana-noop"
version = "0.11.0"
version = "0.11.1"
description = "Solana noop program"
authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana"
@ -9,8 +9,8 @@ homepage = "https://solana.com/"
edition = "2018"
[dependencies]
solana-sdk = { path = "../../../sdk", version = "0.11.0" }
solana-logger = { path = "../../../logger", version = "0.11.0" }
solana-sdk = { path = "../../../sdk", version = "0.11.1" }
solana-logger = { path = "../../../logger", version = "0.11.1" }
log = "0.4.2"
[lib]

View File

@ -1,6 +1,6 @@
[package]
name = "solana-storage-program"
version = "0.11.0"
version = "0.11.1"
description = "Solana storage program"
authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana"
@ -13,8 +13,8 @@ bincode = "1.0.0"
log = "0.4.2"
serde = "1.0.27"
serde_derive = "1.0.27"
solana-logger = { path = "../../../logger", version = "0.11.0" }
solana-sdk = { path = "../../../sdk", version = "0.11.0" }
solana-logger = { path = "../../../logger", version = "0.11.1" }
solana-sdk = { path = "../../../sdk", version = "0.11.1" }
[lib]
name = "solana_storage_program"

View File

@ -1,6 +1,6 @@
[package]
name = "solana-system-program"
version = "0.11.0"
version = "0.11.1"
description = "Solana system program"
authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana"
@ -12,7 +12,7 @@ edition = "2018"
bincode = "1.0.0"
log = "0.4.2"
serde = "1.0.27"
solana-sdk = { path = "../../../sdk", version = "0.11.0" }
solana-sdk = { path = "../../../sdk", version = "0.11.1" }
[lib]
name = "solana_system_program"

View File

@ -1,6 +1,6 @@
[package]
name = "solana-vote-program"
version = "0.11.0"
version = "0.11.1"
description = "Solana vote program"
authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana"
@ -13,9 +13,9 @@ bincode = "1.0.0"
log = "0.4.2"
serde = "1.0.82"
serde_derive = "1.0.82"
solana-logger = { path = "../../../logger", version = "0.11.0" }
solana-metrics = { path = "../../../metrics", version = "0.11.0" }
solana-sdk = { path = "../../../sdk", version = "0.11.0" }
solana-logger = { path = "../../../logger", version = "0.11.1" }
solana-metrics = { path = "../../../metrics", version = "0.11.1" }
solana-sdk = { path = "../../../sdk", version = "0.11.1" }
[lib]
name = "solana_vote_program"

View File

@ -2,7 +2,7 @@
authors = ["Solana Maintainers <maintainers@solana.com>"]
edition = "2018"
name = "solana-replicator"
version = "0.11.0"
version = "0.11.1"
repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0"
homepage = "https://solana.com/"
@ -10,10 +10,10 @@ homepage = "https://solana.com/"
[dependencies]
clap = "2.32.0"
serde_json = "1.0.10"
solana = { path = "..", version = "0.11.0" }
solana-logger = { path = "../logger", version = "0.11.0" }
solana-fullnode-config = { path = "../fullnode-config", version = "0.11.0" }
solana-sdk = { path = "../sdk", version = "0.11.0" }
solana = { path = "..", version = "0.11.1" }
solana-logger = { path = "../logger", version = "0.11.1" }
solana-fullnode-config = { path = "../fullnode-config", version = "0.11.1" }
solana-sdk = { path = "../sdk", version = "0.11.1" }
[features]
chacha = ["solana/chacha"]

View 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

View File

@ -2,7 +2,6 @@
#
# Send a metrics datapoint
#
set -e
point=$1
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}" \
| xargs curl --max-time 5 -XPOST --data-binary "$point"
exit 0

View File

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

View File

@ -4,14 +4,6 @@ set -ex
cd "$(dirname "$0")"
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
echo Unable to determine channel to publish into, exiting.
echo "^^^ +++"
@ -24,7 +16,7 @@ rm -rf usr/
cp -f entrypoint.sh usr/bin/solana-entrypoint.sh
docker build -t solanalabs/solana:$CHANNEL .
docker build -t solanalabs/solana:"$CHANNEL" .
maybeEcho=
if [[ -z $CI ]]; then
@ -38,4 +30,4 @@ else
fi
)
fi
$maybeEcho docker push solanalabs/solana:$CHANNEL
$maybeEcho docker push solanalabs/solana:"$CHANNEL"

View File

@ -1,6 +1,6 @@
[package]
name = "solana-upload-perf"
version = "0.11.0"
version = "0.11.1"
description = "Metrics Upload Utility"
authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana"
@ -10,7 +10,7 @@ homepage = "https://solana.com/"
[dependencies]
serde_json = "1.0.10"
solana-metrics = { path = "../metrics", version = "0.11.0" }
solana-metrics = { path = "../metrics", version = "0.11.1" }
[[bin]]
name = "solana-upload-perf"

View File

@ -1,6 +1,6 @@
[package]
name = "solana-vote-signer"
version = "0.0.1"
version = "0.11.1"
description = "Solana Vote Signing Service"
authors = ["Solana Maintainers <maintainers@solana.com>"]
repository = "https://github.com/solana-labs/solana"
@ -12,8 +12,8 @@ bs58 = "0.2.0"
clap = "2.31"
log = "0.4.2"
serde_json = "1.0.10"
solana-sdk = { path = "../sdk", version = "0.11.0" }
solana-metrics = { path = "../metrics", version = "0.11.0" }
solana-sdk = { path = "../sdk", version = "0.11.1" }
solana-metrics = { path = "../metrics", version = "0.11.1" }
solana-jsonrpc-core = "0.3.0"
solana-jsonrpc-http-server = "0.3.0"
solana-jsonrpc-macros = "0.3.0"

View File

@ -2,7 +2,8 @@
authors = ["Solana Maintainers <maintainers@solana.com>"]
edition = "2018"
name = "solana-wallet"
version = "0.11.0"
description = "Blockchain, Rebuilt for Scale"
version = "0.11.1"
repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0"
homepage = "https://solana.com/"
@ -14,10 +15,10 @@ clap = "2.32.0"
chrono = { version = "0.4.0", features = ["serde"] }
dirs = "1.0.2"
serde_json = "1.0.10"
solana = { path = "..", version = "0.11.0" }
solana-drone = { path = "../drone", version = "0.11.0" }
solana-logger = { path = "../logger", version = "0.11.0" }
solana-sdk = { path = "../sdk", version = "0.11.0" }
solana = { path = "..", version = "0.11.1" }
solana-drone = { path = "../drone", version = "0.11.1" }
solana-logger = { path = "../logger", version = "0.11.1" }
solana-sdk = { path = "../sdk", version = "0.11.1" }
[features]
cuda = []

View File

@ -602,7 +602,7 @@ pub fn process_command(config: &WalletConfig) -> Result<String, Box<dyn error::E
}
// Apply time elapsed to contract
WalletCommand::TimeElapsed(to, pubkey, dt) => {
let params = json!(format!("{}", config.id.pubkey()));
let params = json!([format!("{}", config.id.pubkey())]);
let balance = RpcRequest::GetBalance
.make_rpc_request(&rpc_client, 1, Some(params))?
.as_u64();