Compare commits
12 Commits
Author | SHA1 | Date | |
---|---|---|---|
dfdb2eea49 | |||
2d3ead0c05 | |||
4499173ea3 | |||
633e820970 | |||
95f9862df7 | |||
c16356ecb3 | |||
f0bbec7999 | |||
5226d2b1de | |||
57bc9c3ee7 | |||
d4b23a0cc9 | |||
d6c1cf2499 | |||
63db9d6933 |
625
Cargo.lock
generated
625
Cargo.lock
generated
File diff suppressed because it is too large
Load Diff
@ -2,7 +2,7 @@
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
edition = "2018"
|
||||
name = "solana-archiver"
|
||||
version = "0.21.6"
|
||||
version = "0.21.8"
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
license = "Apache-2.0"
|
||||
homepage = "https://solana.com/"
|
||||
@ -10,10 +10,10 @@ homepage = "https://solana.com/"
|
||||
[dependencies]
|
||||
clap = "2.33.0"
|
||||
console = "0.9.1"
|
||||
solana-clap-utils = { path = "../clap-utils", version = "0.21.6" }
|
||||
solana-core = { path = "../core", version = "0.21.6" }
|
||||
solana-logger = { path = "../logger", version = "0.21.6" }
|
||||
solana-metrics = { path = "../metrics", version = "0.21.6" }
|
||||
solana-net-utils = { path = "../net-utils", version = "0.21.6" }
|
||||
solana-sdk = { path = "../sdk", version = "0.21.6" }
|
||||
solana-clap-utils = { path = "../clap-utils", version = "0.21.8" }
|
||||
solana-core = { path = "../core", version = "0.21.8" }
|
||||
solana-logger = { path = "../logger", version = "0.21.8" }
|
||||
solana-metrics = { path = "../metrics", version = "0.21.8" }
|
||||
solana-net-utils = { path = "../net-utils", version = "0.21.8" }
|
||||
solana-sdk = { path = "../sdk", version = "0.21.8" }
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
edition = "2018"
|
||||
name = "solana-banking-bench"
|
||||
version = "0.21.6"
|
||||
version = "0.21.8"
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
license = "Apache-2.0"
|
||||
homepage = "https://solana.com/"
|
||||
@ -10,11 +10,11 @@ homepage = "https://solana.com/"
|
||||
[dependencies]
|
||||
log = "0.4.6"
|
||||
rayon = "1.2.0"
|
||||
solana-core = { path = "../core", version = "0.21.6" }
|
||||
solana-ledger = { path = "../ledger", version = "0.21.6" }
|
||||
solana-logger = { path = "../logger", version = "0.21.6" }
|
||||
solana-runtime = { path = "../runtime", version = "0.21.6" }
|
||||
solana-measure = { path = "../measure", version = "0.21.6" }
|
||||
solana-sdk = { path = "../sdk", version = "0.21.6" }
|
||||
solana-core = { path = "../core", version = "0.21.8" }
|
||||
solana-ledger = { path = "../ledger", version = "0.21.8" }
|
||||
solana-logger = { path = "../logger", version = "0.21.8" }
|
||||
solana-runtime = { path = "../runtime", version = "0.21.8" }
|
||||
solana-measure = { path = "../measure", version = "0.21.8" }
|
||||
solana-sdk = { path = "../sdk", version = "0.21.8" }
|
||||
rand = "0.6.5"
|
||||
crossbeam-channel = "0.3"
|
||||
|
@ -2,7 +2,7 @@
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
edition = "2018"
|
||||
name = "solana-bench-exchange"
|
||||
version = "0.21.6"
|
||||
version = "0.21.8"
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
license = "Apache-2.0"
|
||||
homepage = "https://solana.com/"
|
||||
@ -23,19 +23,19 @@ serde = "1.0.102"
|
||||
serde_derive = "1.0.102"
|
||||
serde_json = "1.0.41"
|
||||
serde_yaml = "0.8.11"
|
||||
solana-clap-utils = { path = "../clap-utils", version = "0.21.6" }
|
||||
solana-core = { path = "../core", version = "0.21.6" }
|
||||
solana-genesis = { path = "../genesis", version = "0.21.6" }
|
||||
solana-client = { path = "../client", version = "0.21.6" }
|
||||
solana-drone = { path = "../drone", version = "0.21.6" }
|
||||
solana-exchange-program = { path = "../programs/exchange", version = "0.21.6" }
|
||||
solana-logger = { path = "../logger", version = "0.21.6" }
|
||||
solana-metrics = { path = "../metrics", version = "0.21.6" }
|
||||
solana-net-utils = { path = "../net-utils", version = "0.21.6" }
|
||||
solana-runtime = { path = "../runtime", version = "0.21.6" }
|
||||
solana-sdk = { path = "../sdk", version = "0.21.6" }
|
||||
solana-clap-utils = { path = "../clap-utils", version = "0.21.8" }
|
||||
solana-core = { path = "../core", version = "0.21.8" }
|
||||
solana-genesis = { path = "../genesis", version = "0.21.8" }
|
||||
solana-client = { path = "../client", version = "0.21.8" }
|
||||
solana-drone = { path = "../drone", version = "0.21.8" }
|
||||
solana-exchange-program = { path = "../programs/exchange", version = "0.21.8" }
|
||||
solana-logger = { path = "../logger", version = "0.21.8" }
|
||||
solana-metrics = { path = "../metrics", version = "0.21.8" }
|
||||
solana-net-utils = { path = "../net-utils", version = "0.21.8" }
|
||||
solana-runtime = { path = "../runtime", version = "0.21.8" }
|
||||
solana-sdk = { path = "../sdk", version = "0.21.8" }
|
||||
untrusted = "0.7.0"
|
||||
ws = "0.9.1"
|
||||
|
||||
[dev-dependencies]
|
||||
solana-local-cluster = { path = "../local-cluster", version = "0.21.6" }
|
||||
solana-local-cluster = { path = "../local-cluster", version = "0.21.8" }
|
||||
|
@ -2,14 +2,14 @@
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
edition = "2018"
|
||||
name = "solana-bench-streamer"
|
||||
version = "0.21.6"
|
||||
version = "0.21.8"
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
license = "Apache-2.0"
|
||||
homepage = "https://solana.com/"
|
||||
|
||||
[dependencies]
|
||||
clap = "2.33.0"
|
||||
solana-clap-utils = { path = "../clap-utils", version = "0.21.6" }
|
||||
solana-core = { path = "../core", version = "0.21.6" }
|
||||
solana-logger = { path = "../logger", version = "0.21.6" }
|
||||
solana-net-utils = { path = "../net-utils", version = "0.21.6" }
|
||||
solana-clap-utils = { path = "../clap-utils", version = "0.21.8" }
|
||||
solana-core = { path = "../core", version = "0.21.8" }
|
||||
solana-logger = { path = "../logger", version = "0.21.8" }
|
||||
solana-net-utils = { path = "../net-utils", version = "0.21.8" }
|
||||
|
@ -2,7 +2,7 @@
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
edition = "2018"
|
||||
name = "solana-bench-tps"
|
||||
version = "0.21.6"
|
||||
version = "0.21.8"
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
license = "Apache-2.0"
|
||||
homepage = "https://solana.com/"
|
||||
@ -16,24 +16,24 @@ serde = "1.0.102"
|
||||
serde_derive = "1.0.102"
|
||||
serde_json = "1.0.41"
|
||||
serde_yaml = "0.8.11"
|
||||
solana-clap-utils = { path = "../clap-utils", version = "0.21.6" }
|
||||
solana-core = { path = "../core", version = "0.21.6" }
|
||||
solana-genesis = { path = "../genesis", version = "0.21.6" }
|
||||
solana-client = { path = "../client", version = "0.21.6" }
|
||||
solana-drone = { path = "../drone", version = "0.21.6" }
|
||||
solana-librapay-api = { path = "../programs/librapay_api", version = "0.21.6", optional = true }
|
||||
solana-logger = { path = "../logger", version = "0.21.6" }
|
||||
solana-metrics = { path = "../metrics", version = "0.21.6" }
|
||||
solana-measure = { path = "../measure", version = "0.21.6" }
|
||||
solana-net-utils = { path = "../net-utils", version = "0.21.6" }
|
||||
solana-runtime = { path = "../runtime", version = "0.21.6" }
|
||||
solana-sdk = { path = "../sdk", version = "0.21.6" }
|
||||
solana-move-loader-program = { path = "../programs/move_loader", version = "0.21.6", optional = true }
|
||||
solana-clap-utils = { path = "../clap-utils", version = "0.21.8" }
|
||||
solana-core = { path = "../core", version = "0.21.8" }
|
||||
solana-genesis = { path = "../genesis", version = "0.21.8" }
|
||||
solana-client = { path = "../client", version = "0.21.8" }
|
||||
solana-drone = { path = "../drone", version = "0.21.8" }
|
||||
solana-librapay-api = { path = "../programs/librapay_api", version = "0.21.8", optional = true }
|
||||
solana-logger = { path = "../logger", version = "0.21.8" }
|
||||
solana-metrics = { path = "../metrics", version = "0.21.8" }
|
||||
solana-measure = { path = "../measure", version = "0.21.8" }
|
||||
solana-net-utils = { path = "../net-utils", version = "0.21.8" }
|
||||
solana-runtime = { path = "../runtime", version = "0.21.8" }
|
||||
solana-sdk = { path = "../sdk", version = "0.21.8" }
|
||||
solana-move-loader-program = { path = "../programs/move_loader", version = "0.21.8", optional = true }
|
||||
|
||||
[dev-dependencies]
|
||||
serial_test = "0.2.0"
|
||||
serial_test_derive = "0.2.0"
|
||||
solana-local-cluster = { path = "../local-cluster", version = "0.21.6" }
|
||||
solana-local-cluster = { path = "../local-cluster", version = "0.21.8" }
|
||||
|
||||
[features]
|
||||
move = ["solana-librapay-api", "solana-move-loader-program"]
|
||||
|
@ -177,7 +177,7 @@ $ solana send-timestamp <PUBKEY> <PROCESS_ID> --date 2018-12-24T23:59:00
|
||||
## Usage
|
||||
### solana-cli
|
||||
```text
|
||||
solana-cli 0.21.6
|
||||
solana-cli 0.21.8
|
||||
Blockchain, Rebuilt for Scale
|
||||
|
||||
USAGE:
|
||||
|
@ -157,7 +157,7 @@ The result value will be an RpcResponse JSON object containing an AccountInfo JS
|
||||
curl -X POST -H "Content-Type: application/json" -d '{"jsonrpc":"2.0", "id":1, "method":"getAccountInfo", "params":["2gVkYWexTHR5Hb2aLeQN3tnngvWzisFKXDUPrgMHpdST"]}' http://localhost:8899
|
||||
|
||||
// Result
|
||||
{"jsonrpc":"2.0","result":{"context":{"slot":1},"value":{"executable":false,"owner":[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"lamports":1,"data":[3,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0.21.6,0,0,0,0,0,0,50,48,53,48,45,48,49,45,48,49,84,48,48,58,48,48,58,48,48,90,252,10,7,28,246,140,88,177,98,82,10,227,89,81,18,30,194,101,199,16,11,73,133,20,246,62,114,39,20,113,189,32,50,0,0,0,0,0,0,0,247,15,36,102,167,83,225,42,133,127,82,34,36,224,207,130,109,230,224,188,163,33,213,13,5,117,211,251,65,159,197,51,0,0,0,0,0,0]}},"id":1}
|
||||
{"jsonrpc":"2.0","result":{"context":{"slot":1},"value":{"executable":false,"owner":[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"lamports":1,"data":[3,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0.21.8,0,0,0,0,0,0,50,48,53,48,45,48,49,45,48,49,84,48,48,58,48,48,58,48,48,90,252,10,7,28,246,140,88,177,98,82,10,227,89,81,18,30,194,101,199,16,11,73,133,20,246,62,114,39,20,113,189,32,50,0,0,0,0,0,0,0,247,15,36,102,167,83,225,42,133,127,82,34,36,224,207,130,109,230,224,188,163,33,213,13,5,117,211,251,65,159,197,51,0,0,0,0,0,0]}},"id":1}
|
||||
```
|
||||
|
||||
### getBalance
|
||||
@ -853,7 +853,7 @@ Subscribe to an account to receive notifications when the lamports or data for a
|
||||
#### Notification Format:
|
||||
|
||||
```bash
|
||||
{"jsonrpc": "2.0","method": "accountNotification", "params": {"result": {"executable":false,"owner":[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"lamports":1,"data":[3,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0.21.6,0,0,0,0,0,0,50,48,53,48,45,48,49,45,48,49,84,48,48,58,48,48,58,48,48,90,252,10,7,28,246,140,88,177,98,82,10,227,89,81,18,30,194,101,199,16,11,73,133,20,246,62,114,39,20,113,189,32,50,0,0,0,0,0,0,0,247,15,36,102,167,83,225,42,133,127,82,34,36,224,207,130,109,230,224,188,163,33,213,13,5,117,211,251,65,159,197,51,0,0,0,0,0,0]},"subscription":0}}
|
||||
{"jsonrpc": "2.0","method": "accountNotification", "params": {"result": {"executable":false,"owner":[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"lamports":1,"data":[3,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0.21.8,0,0,0,0,0,0,50,48,53,48,45,48,49,45,48,49,84,48,48,58,48,48,58,48,48,90,252,10,7,28,246,140,88,177,98,82,10,227,89,81,18,30,194,101,199,16,11,73,133,20,246,62,114,39,20,113,189,32,50,0,0,0,0,0,0,0,247,15,36,102,167,83,225,42,133,127,82,34,36,224,207,130,109,230,224,188,163,33,213,13,5,117,211,251,65,159,197,51,0,0,0,0,0,0]},"subscription":0}}
|
||||
```
|
||||
|
||||
### accountUnsubscribe
|
||||
@ -911,7 +911,7 @@ Subscribe to a program to receive notifications when the lamports or data for a
|
||||
* `object` - account info JSON object \(see [getAccountInfo](jsonrpc-api.md#getaccountinfo) for field details\)
|
||||
|
||||
```bash
|
||||
{"jsonrpc":"2.0","method":"programNotification","params":{{"result":["8Rshv2oMkPu5E4opXTRyuyBeZBqQ4S477VG26wUTFxUM",{"executable":false,"lamports":1,"owner":[129,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"data":[1,1,1,0,0,0,0,0,0,0.21.6,0,0,0,0,0,0,50,48,49,56,45,49,50,45,50,52,84,50,51,58,53,57,58,48,48,90,235,233,39,152,15,44,117,176,41,89,100,86,45,61,2,44,251,46,212,37,35,118,163,189,247,84,27,235,178,62,55,89,0,0,0,0,50,0,0,0,0,0,0,0,235,233,39,152,15,44,117,176,41,89,100,86,45,61,2,44,251,46,212,37,35,118,163,189,247,84,27,235,178,62,45,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}],"subscription":0}}
|
||||
{"jsonrpc":"2.0","method":"programNotification","params":{{"result":["8Rshv2oMkPu5E4opXTRyuyBeZBqQ4S477VG26wUTFxUM",{"executable":false,"lamports":1,"owner":[129,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"data":[1,1,1,0,0,0,0,0,0,0.21.8,0,0,0,0,0,0,50,48,49,56,45,49,50,45,50,52,84,50,51,58,53,57,58,48,48,90,235,233,39,152,15,44,117,176,41,89,100,86,45,61,2,44,251,46,212,37,35,118,163,189,247,84,27,235,178,62,55,89,0,0,0,0,50,0,0,0,0,0,0,0,235,233,39,152,15,44,117,176,41,89,100,86,45,61,2,44,251,46,212,37,35,118,163,189,247,84,27,235,178,62,45,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}],"subscription":0}}
|
||||
```
|
||||
|
||||
### programUnsubscribe
|
||||
|
@ -81,8 +81,8 @@ With a FEC rate: `16:4`
|
||||
|
||||
With FEC rate of `16:16`
|
||||
* `G = 12800`
|
||||
* `S = SUM of i=0 -> 32 for binomial(prob_failure = 0.2775, trials = 64, failures = i) = 0.0.21.6`
|
||||
* `B = (1 - 0.0.21.6) ^ (12800 / 32) = 0.42583`
|
||||
* `S = SUM of i=0 -> 32 for binomial(prob_failure = 0.2775, trials = 64, failures = i) = 0.0.21.8`
|
||||
* `B = (1 - 0.0.21.8) ^ (12800 / 32) = 0.42583`
|
||||
|
||||
With FEC rate of `32:32`
|
||||
* `G = 12800`
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
This design describes Solana's _Tower BFT_ algorithm. It addresses the following problems:
|
||||
|
||||
* Some forks may not end up accepted by the super-majority of the cluster, and voters need to recover from voting on such forks.
|
||||
* Some forks may not end up accepted by the supermajority of the cluster, and voters need to recover from voting on such forks.
|
||||
* Many forks may be votable by different voters, and each voter may see a different set of votable forks. The selected forks should eventually converge for the cluster.
|
||||
* Reward based votes have an associated risk. Voters should have the ability to configure how much risk they take on.
|
||||
* The [cost of rollback](tower-bft.md#cost-of-rollback) needs to be computable. It is important to clients that rely on some measurable form of Consistency. The costs to break consistency need to be computable, and increase super-linearly for older votes.
|
||||
|
@ -2,7 +2,7 @@
|
||||
Follow this guide to setup Solana's key generation tool called `solana-keygen`
|
||||
|
||||
{% hint style="warn" %}
|
||||
After installation, ensure your version is `0.21.6` or higher by running `solana-keygen -V`
|
||||
After installation, ensure your version is `0.21.8` or higher by running `solana-keygen -V`
|
||||
{% endhint %}
|
||||
|
||||
## Download
|
||||
|
@ -91,5 +91,5 @@ This is an area currently under exploration
|
||||
|
||||
As discussed in the [Economic Design](../implemented-proposals/ed_overview/) section, annual validator interest rates are to be specified as a function of total percentage of circulating supply that has been staked. The cluster rewards validators who are online and actively participating in the validation process throughout the entirety of their _validation period_. For validators that go offline/fail to validate transactions during this period, their annual reward is effectively reduced.
|
||||
|
||||
Similarly, we may consider an algorithmic reduction in a validator's active amount staked amount in the case that they are offline. I.e. if a validator is inactive for some amount of time, either due to a partition or otherwise, the amount of their stake that is considered ‘active’ \(eligible to earn rewards\) may be reduced. This design would be structured to help long-lived partitions to eventually reach finality on their respective chains as the % of non-voting total stake is reduced over time until a super-majority can be achieved by the active validators in each partition. Similarly, upon re-engaging, the ‘active’ amount staked will come back online at some defined rate. Different rates of stake reduction may be considered depending on the size of the partition/active set.
|
||||
Similarly, we may consider an algorithmic reduction in a validator's active amount staked amount in the case that they are offline. I.e. if a validator is inactive for some amount of time, either due to a partition or otherwise, the amount of their stake that is considered ‘active’ \(eligible to earn rewards\) may be reduced. This design would be structured to help long-lived partitions to eventually reach finality on their respective chains as the % of non-voting total stake is reduced over time until a supermajority can be achieved by the active validators in each partition. Similarly, upon re-engaging, the ‘active’ amount staked will come back online at some defined rate. Different rates of stake reduction may be considered depending on the size of the partition/active set.
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-chacha-sys"
|
||||
version = "0.21.6"
|
||||
version = "0.21.8"
|
||||
description = "Solana chacha-sys"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
|
@ -72,10 +72,14 @@ ARGS+=(
|
||||
--env CI_JOB_ID
|
||||
--env CI_PULL_REQUEST
|
||||
--env CI_REPO_SLUG
|
||||
--env CODECOV_TOKEN
|
||||
--env CRATES_IO_TOKEN
|
||||
)
|
||||
|
||||
# Also propagate environment variables needed for codecov
|
||||
# https://docs.codecov.io/docs/testing-with-docker#section-codecov-inside-docker
|
||||
# We normalize CI to `1`; but codecov expects it to be `true` to detect Buildkite...
|
||||
CODECOV_ENVS=$(CI=true bash <(curl -s https://codecov.io/env))
|
||||
|
||||
if $INTERACTIVE; then
|
||||
if [[ -n $1 ]]; then
|
||||
echo
|
||||
@ -83,8 +87,10 @@ if $INTERACTIVE; then
|
||||
echo
|
||||
fi
|
||||
set -x
|
||||
exec docker run --interactive --tty "${ARGS[@]}" "$IMAGE" bash
|
||||
# shellcheck disable=SC2086
|
||||
exec docker run --interactive --tty "${ARGS[@]}" $CODECOV_ENVS "$IMAGE" bash
|
||||
fi
|
||||
|
||||
set -x
|
||||
exec docker run "${ARGS[@]}" "$IMAGE" "$@"
|
||||
# shellcheck disable=SC2086
|
||||
exec docker run "${ARGS[@]}" $CODECOV_ENVS "$IMAGE" "$@"
|
||||
|
@ -41,7 +41,8 @@ if [[ -z "$CODECOV_TOKEN" ]]; then
|
||||
echo "^^^ +++"
|
||||
echo CODECOV_TOKEN undefined, codecov.io upload skipped
|
||||
else
|
||||
bash <(curl -s https://codecov.io/bash) -X gcov -f target/cov/lcov.info
|
||||
# We normalize CI to `1`; but codecov expects it to be `true` to detect Buildkite...
|
||||
CI=true bash <(curl -s https://codecov.io/bash) -X gcov -f target/cov/lcov.info
|
||||
|
||||
annotate --style success --context codecov.io \
|
||||
"CodeCov report: https://codecov.io/github/solana-labs/solana/commit/${CI_COMMIT:0:9}"
|
||||
|
@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-clap-utils"
|
||||
version = "0.21.6"
|
||||
version = "0.21.8"
|
||||
description = "Solana utilities for the clap"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@ -12,7 +12,7 @@ edition = "2018"
|
||||
clap = "2.33.0"
|
||||
rpassword = "4.0"
|
||||
semver = "0.9.0"
|
||||
solana-sdk = { path = "../sdk", version = "0.21.6" }
|
||||
solana-sdk = { path = "../sdk", version = "0.21.8" }
|
||||
tiny-bip39 = "0.6.2"
|
||||
url = "2.1.0"
|
||||
|
||||
|
@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
edition = "2018"
|
||||
name = "solana-cli"
|
||||
description = "Blockchain, Rebuilt for Scale"
|
||||
version = "0.21.6"
|
||||
version = "0.21.8"
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
license = "Apache-2.0"
|
||||
homepage = "https://solana.com/"
|
||||
@ -28,24 +28,24 @@ serde = "1.0.102"
|
||||
serde_derive = "1.0.102"
|
||||
serde_json = "1.0.41"
|
||||
serde_yaml = "0.8.11"
|
||||
solana-budget-program = { path = "../programs/budget", version = "0.21.6" }
|
||||
solana-clap-utils = { path = "../clap-utils", version = "0.21.6" }
|
||||
solana-client = { path = "../client", version = "0.21.6" }
|
||||
solana-config-program = { path = "../programs/config", version = "0.21.6" }
|
||||
solana-drone = { path = "../drone", version = "0.21.6" }
|
||||
solana-logger = { path = "../logger", version = "0.21.6" }
|
||||
solana-net-utils = { path = "../net-utils", version = "0.21.6" }
|
||||
solana-runtime = { path = "../runtime", version = "0.21.6" }
|
||||
solana-sdk = { path = "../sdk", version = "0.21.6" }
|
||||
solana-stake-program = { path = "../programs/stake", version = "0.21.6" }
|
||||
solana-storage-program = { path = "../programs/storage", version = "0.21.6" }
|
||||
solana-vote-program = { path = "../programs/vote", version = "0.21.6" }
|
||||
solana-vote-signer = { path = "../vote-signer", version = "0.21.6" }
|
||||
solana-budget-program = { path = "../programs/budget", version = "0.21.8" }
|
||||
solana-clap-utils = { path = "../clap-utils", version = "0.21.8" }
|
||||
solana-client = { path = "../client", version = "0.21.8" }
|
||||
solana-config-program = { path = "../programs/config", version = "0.21.8" }
|
||||
solana-drone = { path = "../drone", version = "0.21.8" }
|
||||
solana-logger = { path = "../logger", version = "0.21.8" }
|
||||
solana-net-utils = { path = "../net-utils", version = "0.21.8" }
|
||||
solana-runtime = { path = "../runtime", version = "0.21.8" }
|
||||
solana-sdk = { path = "../sdk", version = "0.21.8" }
|
||||
solana-stake-program = { path = "../programs/stake", version = "0.21.8" }
|
||||
solana-storage-program = { path = "../programs/storage", version = "0.21.8" }
|
||||
solana-vote-program = { path = "../programs/vote", version = "0.21.8" }
|
||||
solana-vote-signer = { path = "../vote-signer", version = "0.21.8" }
|
||||
url = "2.1.0"
|
||||
|
||||
[dev-dependencies]
|
||||
solana-core = { path = "../core", version = "0.21.6" }
|
||||
solana-budget-program = { path = "../programs/budget", version = "0.21.6" }
|
||||
solana-core = { path = "../core", version = "0.21.8" }
|
||||
solana-budget-program = { path = "../programs/budget", version = "0.21.8" }
|
||||
tempfile = "3.1.0"
|
||||
|
||||
[[bin]]
|
||||
|
@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-client"
|
||||
version = "0.21.6"
|
||||
version = "0.21.8"
|
||||
description = "Solana Client"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@ -19,10 +19,10 @@ reqwest = { version = "0.9.22", default-features = false, features = ["rustls-tl
|
||||
serde = "1.0.102"
|
||||
serde_derive = "1.0.102"
|
||||
serde_json = "1.0.41"
|
||||
solana-net-utils = { path = "../net-utils", version = "0.21.6" }
|
||||
solana-sdk = { path = "../sdk", version = "0.21.6" }
|
||||
solana-net-utils = { path = "../net-utils", version = "0.21.8" }
|
||||
solana-sdk = { path = "../sdk", version = "0.21.8" }
|
||||
|
||||
[dev-dependencies]
|
||||
jsonrpc-core = "14.0.3"
|
||||
jsonrpc-http-server = "14.0.3"
|
||||
solana-logger = { path = "../logger", version = "0.21.6" }
|
||||
solana-logger = { path = "../logger", version = "0.21.8" }
|
||||
|
@ -1,7 +1,7 @@
|
||||
[package]
|
||||
name = "solana-core"
|
||||
description = "Blockchain, Rebuilt for Scale"
|
||||
version = "0.21.6"
|
||||
version = "0.21.8"
|
||||
documentation = "https://docs.rs/solana"
|
||||
homepage = "https://solana.com/"
|
||||
readme = "../README.md"
|
||||
@ -41,25 +41,25 @@ rayon = "1.2.0"
|
||||
serde = "1.0.102"
|
||||
serde_derive = "1.0.102"
|
||||
serde_json = "1.0.41"
|
||||
solana-budget-program = { path = "../programs/budget", version = "0.21.6" }
|
||||
solana-clap-utils = { path = "../clap-utils", version = "0.21.6" }
|
||||
solana-chacha-sys = { path = "../chacha-sys", version = "0.21.6" }
|
||||
solana-client = { path = "../client", version = "0.21.6" }
|
||||
solana-drone = { path = "../drone", version = "0.21.6" }
|
||||
solana-budget-program = { path = "../programs/budget", version = "0.21.8" }
|
||||
solana-clap-utils = { path = "../clap-utils", version = "0.21.8" }
|
||||
solana-chacha-sys = { path = "../chacha-sys", version = "0.21.8" }
|
||||
solana-client = { path = "../client", version = "0.21.8" }
|
||||
solana-drone = { path = "../drone", version = "0.21.8" }
|
||||
ed25519-dalek = "1.0.0-pre.1"
|
||||
solana-ledger = { path = "../ledger", version = "0.21.6" }
|
||||
solana-logger = { path = "../logger", version = "0.21.6" }
|
||||
solana-merkle-tree = { path = "../merkle-tree", version = "0.21.6" }
|
||||
solana-metrics = { path = "../metrics", version = "0.21.6" }
|
||||
solana-measure = { path = "../measure", version = "0.21.6" }
|
||||
solana-net-utils = { path = "../net-utils", version = "0.21.6" }
|
||||
solana-perf = { path = "../perf", version = "0.21.6" }
|
||||
solana-runtime = { path = "../runtime", version = "0.21.6" }
|
||||
solana-sdk = { path = "../sdk", version = "0.21.6" }
|
||||
solana-stake-program = { path = "../programs/stake", version = "0.21.6" }
|
||||
solana-storage-program = { path = "../programs/storage", version = "0.21.6" }
|
||||
solana-vote-program = { path = "../programs/vote", version = "0.21.6" }
|
||||
solana-vote-signer = { path = "../vote-signer", version = "0.21.6" }
|
||||
solana-ledger = { path = "../ledger", version = "0.21.8" }
|
||||
solana-logger = { path = "../logger", version = "0.21.8" }
|
||||
solana-merkle-tree = { path = "../merkle-tree", version = "0.21.8" }
|
||||
solana-metrics = { path = "../metrics", version = "0.21.8" }
|
||||
solana-measure = { path = "../measure", version = "0.21.8" }
|
||||
solana-net-utils = { path = "../net-utils", version = "0.21.8" }
|
||||
solana-perf = { path = "../perf", version = "0.21.8" }
|
||||
solana-runtime = { path = "../runtime", version = "0.21.8" }
|
||||
solana-sdk = { path = "../sdk", version = "0.21.8" }
|
||||
solana-stake-program = { path = "../programs/stake", version = "0.21.8" }
|
||||
solana-storage-program = { path = "../programs/storage", version = "0.21.8" }
|
||||
solana-vote-program = { path = "../programs/vote", version = "0.21.8" }
|
||||
solana-vote-signer = { path = "../vote-signer", version = "0.21.8" }
|
||||
symlink = "0.1.0"
|
||||
sys-info = "0.5.8"
|
||||
tempfile = "3.1.0"
|
||||
@ -68,13 +68,9 @@ tokio-codec = "0.1"
|
||||
tokio-fs = "0.1"
|
||||
tokio-io = "0.1"
|
||||
untrusted = "0.7.0"
|
||||
solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "0.21.6" }
|
||||
solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "0.21.8" }
|
||||
reed-solomon-erasure = { package = "solana-reed-solomon-erasure", version = "4.0.1-3", features = ["simd-accel"] }
|
||||
|
||||
[target."cfg(unix)".dependencies]
|
||||
jemallocator = "0.3.2"
|
||||
jemalloc-ctl = "0.3.2"
|
||||
|
||||
[dev-dependencies]
|
||||
hex-literal = "0.2.1"
|
||||
matches = "0.1.6"
|
||||
|
@ -7,7 +7,6 @@ use crate::{
|
||||
poh_recorder::{PohRecorder, PohRecorderError, WorkingBankEntry},
|
||||
poh_service::PohService,
|
||||
result::{Error, Result},
|
||||
thread_mem_usage,
|
||||
};
|
||||
use crossbeam_channel::{Receiver as CrossbeamReceiver, RecvTimeoutError};
|
||||
use itertools::Itertools;
|
||||
@ -17,7 +16,7 @@ use solana_ledger::{
|
||||
entry::hash_transactions,
|
||||
leader_schedule_cache::LeaderScheduleCache,
|
||||
};
|
||||
use solana_measure::measure::Measure;
|
||||
use solana_measure::{measure::Measure, thread_mem_usage};
|
||||
use solana_metrics::{inc_new_counter_debug, inc_new_counter_info, inc_new_counter_warn};
|
||||
use solana_perf::{cuda_runtime::PinnedVec, perf_libs};
|
||||
use solana_runtime::{accounts_db::ErrorCounters, bank::Bank, transaction_batch::TransactionBatch};
|
||||
|
@ -24,7 +24,6 @@ use crate::{
|
||||
repair_service::RepairType,
|
||||
result::{Error, Result},
|
||||
sendmmsg::{multicast, send_mmsg},
|
||||
thread_mem_usage,
|
||||
weighted_shuffle::{weighted_best, weighted_shuffle},
|
||||
};
|
||||
use bincode::{serialize, serialized_size};
|
||||
@ -32,6 +31,7 @@ use core::cmp;
|
||||
use itertools::Itertools;
|
||||
use rand::{thread_rng, Rng};
|
||||
use solana_ledger::{bank_forks::BankForks, blocktree::Blocktree, staking_utils};
|
||||
use solana_measure::thread_mem_usage;
|
||||
use solana_metrics::{datapoint_debug, inc_new_counter_debug, inc_new_counter_error};
|
||||
use solana_net_utils::{
|
||||
bind_common, bind_common_in_range, bind_in_range, find_available_port_in_range,
|
||||
@ -67,11 +67,11 @@ pub const GOSSIP_SLEEP_MILLIS: u64 = 100;
|
||||
/// the number of slots to respond with when responding to `Orphan` requests
|
||||
pub const MAX_ORPHAN_REPAIR_RESPONSES: usize = 10;
|
||||
/// The maximum size of a bloom filter
|
||||
pub const MAX_BLOOM_SIZE: usize = 1030;
|
||||
pub const MAX_BLOOM_SIZE: usize = 1028;
|
||||
/// The maximum size of a protocol payload
|
||||
const MAX_PROTOCOL_PAYLOAD_SIZE: u64 = PACKET_DATA_SIZE as u64 - MAX_PROTOCOL_HEADER_SIZE;
|
||||
/// The largest protocol header size
|
||||
const MAX_PROTOCOL_HEADER_SIZE: u64 = 202;
|
||||
const MAX_PROTOCOL_HEADER_SIZE: u64 = 204;
|
||||
|
||||
#[derive(Debug, PartialEq, Eq)]
|
||||
pub enum ClusterInfoError {
|
||||
@ -273,7 +273,7 @@ impl ClusterInfo {
|
||||
|
||||
let ip_addr = node.gossip.ip();
|
||||
format!(
|
||||
"{:15} {:2}| {:5} | {:44} | {:5}| {:5}| {:5} | {:5}| {:5} | {:5}| {:5} | {:5}| {:5}\n",
|
||||
"{:15} {:2}| {:5} | {:44} | {:5}| {:5}| {:5} | {:5}| {:5} | {:5}| {:5} | {:5}| {:5}| v{}\n",
|
||||
if ContactInfo::is_valid_address(&node.gossip) {
|
||||
ip_addr.to_string()
|
||||
} else {
|
||||
@ -291,15 +291,16 @@ impl ClusterInfo {
|
||||
addr_to_string(&ip_addr, &node.storage_addr),
|
||||
addr_to_string(&ip_addr, &node.rpc),
|
||||
addr_to_string(&ip_addr, &node.rpc_pubsub),
|
||||
node.shred_version,
|
||||
)
|
||||
})
|
||||
.collect();
|
||||
|
||||
format!(
|
||||
"IP Address |Age(ms)| Node identifier \
|
||||
|Gossip| TPU |TPU fwd| TVU |TVU fwd|Repair|Storage| RPC |PubSub\n\
|
||||
|Gossip| TPU |TPU fwd| TVU |TVU fwd|Repair|Storage| RPC |PubSub|ShredVer\n\
|
||||
------------------+-------+----------------------------------------------+\
|
||||
------+------+-------+------+-------+------+-------+------+------\n\
|
||||
------+------+-------+------+-------+------+-------+------+------+--------\n\
|
||||
{}\
|
||||
Nodes: {}{}{}",
|
||||
nodes.join(""),
|
||||
@ -406,13 +407,13 @@ impl ClusterInfo {
|
||||
}
|
||||
|
||||
pub fn rpc_peers(&self) -> Vec<ContactInfo> {
|
||||
let me = self.my_data().id;
|
||||
let me = self.my_data();
|
||||
self.gossip
|
||||
.crds
|
||||
.table
|
||||
.values()
|
||||
.filter_map(|x| x.value.contact_info())
|
||||
.filter(|x| x.id != me)
|
||||
.filter(|x| x.id != me.id)
|
||||
.filter(|x| ContactInfo::is_valid_address(&x.rpc))
|
||||
.cloned()
|
||||
.collect()
|
||||
@ -447,7 +448,7 @@ impl ClusterInfo {
|
||||
|
||||
/// all validators that have a valid tvu port.
|
||||
pub fn tvu_peers(&self) -> Vec<ContactInfo> {
|
||||
let me = self.my_data().id;
|
||||
let me = self.my_data();
|
||||
self.gossip
|
||||
.crds
|
||||
.table
|
||||
@ -455,34 +456,34 @@ impl ClusterInfo {
|
||||
.filter_map(|x| x.value.contact_info())
|
||||
.filter(|x| ContactInfo::is_valid_address(&x.tvu))
|
||||
.filter(|x| !ClusterInfo::is_archiver(x))
|
||||
.filter(|x| x.id != me)
|
||||
.filter(|x| x.id != me.id)
|
||||
.cloned()
|
||||
.collect()
|
||||
}
|
||||
|
||||
/// all peers that have a valid storage addr
|
||||
pub fn storage_peers(&self) -> Vec<ContactInfo> {
|
||||
let me = self.my_data().id;
|
||||
let me = self.my_data();
|
||||
self.gossip
|
||||
.crds
|
||||
.table
|
||||
.values()
|
||||
.filter_map(|x| x.value.contact_info())
|
||||
.filter(|x| ContactInfo::is_valid_address(&x.storage_addr))
|
||||
.filter(|x| x.id != me)
|
||||
.filter(|x| x.id != me.id)
|
||||
.cloned()
|
||||
.collect()
|
||||
}
|
||||
|
||||
/// all peers that have a valid tvu
|
||||
pub fn retransmit_peers(&self) -> Vec<ContactInfo> {
|
||||
let me = self.my_data().id;
|
||||
let me = self.my_data();
|
||||
self.gossip
|
||||
.crds
|
||||
.table
|
||||
.values()
|
||||
.filter_map(|x| x.value.contact_info())
|
||||
.filter(|x| x.id != me)
|
||||
.filter(|x| x.id != me.id)
|
||||
.filter(|x| ContactInfo::is_valid_address(&x.tvu))
|
||||
.filter(|x| ContactInfo::is_valid_address(&x.tvu_forwards))
|
||||
.cloned()
|
||||
@ -491,10 +492,10 @@ impl ClusterInfo {
|
||||
|
||||
/// all tvu peers with valid gossip addrs
|
||||
fn repair_peers(&self) -> Vec<ContactInfo> {
|
||||
let me = self.my_data().id;
|
||||
let me = self.my_data();
|
||||
ClusterInfo::tvu_peers(self)
|
||||
.into_iter()
|
||||
.filter(|x| x.id != me)
|
||||
.filter(|x| x.id != me.id)
|
||||
.filter(|x| ContactInfo::is_valid_address(&x.gossip))
|
||||
.collect()
|
||||
}
|
||||
@ -2563,7 +2564,7 @@ mod tests {
|
||||
|
||||
#[test]
|
||||
fn test_split_messages_packet_size() {
|
||||
// Test that if a value is smaller than payload size but too large to be wrappe in a vec
|
||||
// Test that if a value is smaller than payload size but too large to be wrapped in a vec
|
||||
// that it is still dropped
|
||||
let payload: Vec<CrdsValue> = vec![];
|
||||
let vec_size = serialized_size(&payload).unwrap();
|
||||
@ -2576,7 +2577,7 @@ mod tests {
|
||||
}));
|
||||
|
||||
let mut i = 0;
|
||||
while value.size() < desired_size {
|
||||
while value.size() <= desired_size {
|
||||
let slots = (0..i).collect::<BTreeSet<_>>();
|
||||
if slots.len() > 200 {
|
||||
panic!(
|
||||
|
@ -31,6 +31,8 @@ pub struct ContactInfo {
|
||||
pub rpc_pubsub: SocketAddr,
|
||||
/// latest wallclock picked
|
||||
pub wallclock: u64,
|
||||
/// node shred version
|
||||
pub shred_version: u16,
|
||||
}
|
||||
|
||||
impl Ord for ContactInfo {
|
||||
@ -84,6 +86,7 @@ impl Default for ContactInfo {
|
||||
rpc: socketaddr_any!(),
|
||||
rpc_pubsub: socketaddr_any!(),
|
||||
wallclock: 0,
|
||||
shred_version: 0,
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -115,6 +118,7 @@ impl ContactInfo {
|
||||
rpc,
|
||||
rpc_pubsub,
|
||||
wallclock: now,
|
||||
shred_version: 0,
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -5,7 +5,7 @@ use crate::packet::PacketsRecycler;
|
||||
use crate::poh_recorder::PohRecorder;
|
||||
use crate::result::{Error, Result};
|
||||
use crate::streamer::{self, PacketReceiver, PacketSender};
|
||||
use crate::thread_mem_usage;
|
||||
use solana_measure::thread_mem_usage;
|
||||
use solana_metrics::{inc_new_counter_debug, inc_new_counter_info};
|
||||
use solana_perf::recycler::Recycler;
|
||||
use solana_sdk::clock::DEFAULT_TICKS_PER_SLOT;
|
||||
|
@ -199,7 +199,6 @@ fn spy(
|
||||
.unwrap()
|
||||
.tvu_peers()
|
||||
.into_iter()
|
||||
.filter(|node| !ClusterInfo::is_archiver(&node))
|
||||
.collect::<Vec<_>>();
|
||||
archivers = spy_ref.read().unwrap().storage_peers();
|
||||
if let Some(num) = num_nodes {
|
||||
|
@ -12,7 +12,6 @@ pub mod chacha_cuda;
|
||||
pub mod cluster_info_vote_listener;
|
||||
pub mod commitment;
|
||||
pub mod shred_fetch_stage;
|
||||
pub mod thread_mem_usage;
|
||||
#[macro_use]
|
||||
pub mod contact_info;
|
||||
pub mod archiver;
|
||||
@ -84,10 +83,3 @@ extern crate solana_metrics;
|
||||
#[cfg(test)]
|
||||
#[macro_use]
|
||||
extern crate matches;
|
||||
|
||||
#[cfg(unix)]
|
||||
extern crate jemallocator;
|
||||
|
||||
#[cfg(unix)]
|
||||
#[global_allocator]
|
||||
static ALLOC: jemallocator::Jemalloc = jemallocator::Jemalloc;
|
||||
|
@ -7,7 +7,6 @@ use crate::{
|
||||
poh_recorder::PohRecorder,
|
||||
result::{Error, Result},
|
||||
rpc_subscriptions::RpcSubscriptions,
|
||||
thread_mem_usage,
|
||||
};
|
||||
use solana_ledger::{
|
||||
bank_forks::BankForks,
|
||||
@ -18,7 +17,7 @@ use solana_ledger::{
|
||||
leader_schedule_cache::LeaderScheduleCache,
|
||||
snapshot_package::SnapshotPackageSender,
|
||||
};
|
||||
use solana_measure::measure::Measure;
|
||||
use solana_measure::{measure::Measure, thread_mem_usage};
|
||||
use solana_metrics::inc_new_counter_info;
|
||||
use solana_runtime::bank::Bank;
|
||||
use solana_sdk::{
|
||||
|
@ -4,7 +4,7 @@
|
||||
use crate::packet::{self, send_to, Packets, PacketsRecycler, PACKETS_PER_BATCH};
|
||||
use crate::recvmmsg::NUM_RCVMMSGS;
|
||||
use crate::result::{Error, Result};
|
||||
use crate::thread_mem_usage;
|
||||
use solana_measure::thread_mem_usage;
|
||||
use solana_sdk::timing::duration_as_ms;
|
||||
use std::net::UdpSocket;
|
||||
use std::sync::atomic::{AtomicBool, Ordering};
|
||||
|
@ -48,7 +48,8 @@ use std::{
|
||||
sync::atomic::{AtomicBool, Ordering},
|
||||
sync::mpsc::Receiver,
|
||||
sync::{Arc, Mutex, RwLock},
|
||||
thread::Result,
|
||||
thread::{sleep, Result},
|
||||
time::Duration,
|
||||
};
|
||||
|
||||
#[derive(Clone, Debug)]
|
||||
@ -67,6 +68,7 @@ pub struct ValidatorConfig {
|
||||
pub broadcast_stage_type: BroadcastStageType,
|
||||
pub partition_cfg: Option<PartitionCfg>,
|
||||
pub fixed_leader_schedule: Option<FixedSchedule>,
|
||||
pub wait_for_supermajority: bool,
|
||||
}
|
||||
|
||||
impl Default for ValidatorConfig {
|
||||
@ -86,6 +88,7 @@ impl Default for ValidatorConfig {
|
||||
broadcast_stage_type: BroadcastStageType::Standard,
|
||||
partition_cfg: None,
|
||||
fixed_leader_schedule: None,
|
||||
wait_for_supermajority: false,
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -138,32 +141,10 @@ impl Validator {
|
||||
|
||||
warn!("identity pubkey: {:?}", id);
|
||||
warn!("vote pubkey: {:?}", vote_account);
|
||||
warn!(
|
||||
"CUDA is {}abled",
|
||||
if solana_perf::perf_libs::api().is_some() {
|
||||
"en"
|
||||
} else {
|
||||
"dis"
|
||||
}
|
||||
);
|
||||
|
||||
// Validator binaries built on a machine with AVX support will generate invalid opcodes
|
||||
// when run on machines without AVX causing a non-obvious process abort. Instead detect
|
||||
// the mismatch and error cleanly.
|
||||
#[target_feature(enable = "avx")]
|
||||
{
|
||||
if is_x86_feature_detected!("avx") {
|
||||
info!("AVX detected");
|
||||
} else {
|
||||
error!("Your machine does not have AVX support, please rebuild from source on your machine");
|
||||
process::exit(1);
|
||||
}
|
||||
}
|
||||
report_target_features();
|
||||
|
||||
info!("entrypoint: {:?}", entrypoint_info_option);
|
||||
|
||||
Self::print_node_info(&node);
|
||||
|
||||
info!("Initializing sigverify, this could take a while...");
|
||||
sigverify::init();
|
||||
info!("Done.");
|
||||
@ -194,8 +175,6 @@ impl Validator {
|
||||
let bank = bank_forks[bank_info.bank_slot].clone();
|
||||
let bank_forks = Arc::new(RwLock::new(bank_forks));
|
||||
let block_commitment_cache = Arc::new(RwLock::new(BlockCommitmentCache::default()));
|
||||
// The version used by shreds, derived from genesis
|
||||
let shred_version = Shred::version_from_hash(&genesis_hash);
|
||||
|
||||
let mut validator_exit = ValidatorExit::default();
|
||||
let exit_ = exit.clone();
|
||||
@ -203,6 +182,9 @@ impl Validator {
|
||||
let validator_exit = Arc::new(RwLock::new(Some(validator_exit)));
|
||||
|
||||
node.info.wallclock = timestamp();
|
||||
node.info.shred_version = Shred::version_from_hash(&genesis_hash);
|
||||
Self::print_node_info(&node);
|
||||
|
||||
let cluster_info = Arc::new(RwLock::new(ClusterInfo::new(
|
||||
node.info.clone(),
|
||||
keypair.clone(),
|
||||
@ -293,14 +275,7 @@ impl Validator {
|
||||
if config.snapshot_config.is_some() {
|
||||
poh_recorder.set_bank(&bank);
|
||||
}
|
||||
|
||||
let poh_recorder = Arc::new(Mutex::new(poh_recorder));
|
||||
let poh_service = PohService::new(poh_recorder.clone(), &poh_config, &exit);
|
||||
assert_eq!(
|
||||
blocktree.new_shreds_signals.len(),
|
||||
1,
|
||||
"New shred signal for the TVU should be the same as the clear bank signal."
|
||||
);
|
||||
|
||||
let ip_echo_server = solana_net_utils::ip_echo_server(node.sockets.ip_echo.unwrap());
|
||||
|
||||
@ -321,6 +296,22 @@ impl Validator {
|
||||
.set_entrypoint(entrypoint_info.clone());
|
||||
}
|
||||
|
||||
if config.wait_for_supermajority {
|
||||
info!(
|
||||
"Waiting more than 66% of activated stake at slot {} to be in gossip...",
|
||||
bank.slot()
|
||||
);
|
||||
loop {
|
||||
let gossip_stake_percent = get_stake_percent_in_gossip(&bank, &cluster_info);
|
||||
|
||||
info!("{}% of activated stake in gossip", gossip_stake_percent,);
|
||||
if gossip_stake_percent > 66 {
|
||||
break;
|
||||
}
|
||||
sleep(Duration::new(1, 0));
|
||||
}
|
||||
}
|
||||
|
||||
let sockets = Sockets {
|
||||
repair: node
|
||||
.sockets
|
||||
@ -353,6 +344,13 @@ impl Validator {
|
||||
Some(voting_keypair)
|
||||
};
|
||||
|
||||
let poh_service = PohService::new(poh_recorder.clone(), &poh_config, &exit);
|
||||
assert_eq!(
|
||||
blocktree.new_shreds_signals.len(),
|
||||
1,
|
||||
"New shred signal for the TVU should be the same as the clear bank signal."
|
||||
);
|
||||
|
||||
let tvu = Tvu::new(
|
||||
vote_account,
|
||||
voting_keypair,
|
||||
@ -373,7 +371,7 @@ impl Validator {
|
||||
block_commitment_cache,
|
||||
config.dev_sigverify_disabled,
|
||||
config.partition_cfg.clone(),
|
||||
shred_version,
|
||||
node.info.shred_version,
|
||||
transaction_status_sender.clone(),
|
||||
);
|
||||
|
||||
@ -393,7 +391,7 @@ impl Validator {
|
||||
&blocktree,
|
||||
&config.broadcast_stage_type,
|
||||
&exit,
|
||||
shred_version,
|
||||
node.info.shred_version,
|
||||
);
|
||||
|
||||
datapoint_info!("validator-new", ("id", id.to_string(), String));
|
||||
@ -579,6 +577,63 @@ pub fn new_validator_for_tests() -> (Validator, ContactInfo, Keypair, PathBuf) {
|
||||
(node, contact_info, mint_keypair, ledger_path)
|
||||
}
|
||||
|
||||
fn report_target_features() {
|
||||
warn!(
|
||||
"CUDA is {}abled",
|
||||
if solana_perf::perf_libs::api().is_some() {
|
||||
"en"
|
||||
} else {
|
||||
"dis"
|
||||
}
|
||||
);
|
||||
|
||||
// Validator binaries built on a machine with AVX support will generate invalid opcodes
|
||||
// when run on machines without AVX causing a non-obvious process abort. Instead detect
|
||||
// the mismatch and error cleanly.
|
||||
#[target_feature(enable = "avx")]
|
||||
{
|
||||
if is_x86_feature_detected!("avx") {
|
||||
info!("AVX detected");
|
||||
} else {
|
||||
error!("Your machine does not have AVX support, please rebuild from source on your machine");
|
||||
process::exit(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Get the activated stake percentage (based on the provided bank) that is visible in gossip
|
||||
fn get_stake_percent_in_gossip(
|
||||
bank: &Arc<solana_runtime::bank::Bank>,
|
||||
cluster_info: &Arc<RwLock<ClusterInfo>>,
|
||||
) -> u64 {
|
||||
let mut gossip_stake = 0;
|
||||
let mut total_activated_stake = 0;
|
||||
let tvu_peers = cluster_info.read().unwrap().tvu_peers();
|
||||
let me = cluster_info.read().unwrap().my_data();
|
||||
|
||||
for (activated_stake, vote_account) in bank.vote_accounts().values() {
|
||||
let vote_state =
|
||||
solana_vote_program::vote_state::VoteState::from(&vote_account).unwrap_or_default();
|
||||
total_activated_stake += activated_stake;
|
||||
if tvu_peers
|
||||
.iter()
|
||||
.filter(|peer| peer.shred_version == me.shred_version)
|
||||
.any(|peer| peer.id == vote_state.node_pubkey)
|
||||
{
|
||||
trace!(
|
||||
"observed {} in gossip, (activated_stake={})",
|
||||
vote_state.node_pubkey,
|
||||
activated_stake
|
||||
);
|
||||
gossip_stake += activated_stake;
|
||||
} else if vote_state.node_pubkey == cluster_info.read().unwrap().id() {
|
||||
gossip_stake += activated_stake;
|
||||
}
|
||||
}
|
||||
|
||||
gossip_stake * 100 / total_activated_stake
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
|
@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-crate-features"
|
||||
version = "0.21.6"
|
||||
version = "0.21.8"
|
||||
description = "Solana Crate Features"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
|
@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-drone"
|
||||
version = "0.21.6"
|
||||
version = "0.21.8"
|
||||
description = "Solana Drone"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@ -19,10 +19,10 @@ clap = "2.33"
|
||||
log = "0.4.8"
|
||||
serde = "1.0.102"
|
||||
serde_derive = "1.0.102"
|
||||
solana-clap-utils = { path = "../clap-utils", version = "0.21.6" }
|
||||
solana-logger = { path = "../logger", version = "0.21.6" }
|
||||
solana-metrics = { path = "../metrics", version = "0.21.6" }
|
||||
solana-sdk = { path = "../sdk", version = "0.21.6" }
|
||||
solana-clap-utils = { path = "../clap-utils", version = "0.21.8" }
|
||||
solana-logger = { path = "../logger", version = "0.21.8" }
|
||||
solana-metrics = { path = "../metrics", version = "0.21.8" }
|
||||
solana-sdk = { path = "../sdk", version = "0.21.8" }
|
||||
tokio = "0.1"
|
||||
tokio-codec = "0.1"
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-fixed-buf"
|
||||
version = "0.21.6"
|
||||
version = "0.21.8"
|
||||
description = "A fixed-size byte array that supports bincode serde"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
|
@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-genesis-programs"
|
||||
version = "0.21.6"
|
||||
version = "0.21.8"
|
||||
description = "Solana genesis programs"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@ -10,16 +10,16 @@ edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
log = { version = "0.4.8" }
|
||||
solana-bpf-loader-program = { path = "../programs/bpf_loader", version = "0.21.6" }
|
||||
solana-budget-program = { path = "../programs/budget", version = "0.21.6" }
|
||||
solana-config-program = { path = "../programs/config", version = "0.21.6" }
|
||||
solana-exchange-program = { path = "../programs/exchange", version = "0.21.6" }
|
||||
solana-runtime = { path = "../runtime", version = "0.21.6" }
|
||||
solana-sdk = { path = "../sdk", version = "0.21.6" }
|
||||
solana-stake-program = { path = "../programs/stake", version = "0.21.6" }
|
||||
solana-storage-program = { path = "../programs/storage", version = "0.21.6" }
|
||||
solana-vest-program = { path = "../programs/vest", version = "0.21.6" }
|
||||
solana-vote-program = { path = "../programs/vote", version = "0.21.6" }
|
||||
solana-bpf-loader-program = { path = "../programs/bpf_loader", version = "0.21.8" }
|
||||
solana-budget-program = { path = "../programs/budget", version = "0.21.8" }
|
||||
solana-config-program = { path = "../programs/config", version = "0.21.8" }
|
||||
solana-exchange-program = { path = "../programs/exchange", version = "0.21.8" }
|
||||
solana-runtime = { path = "../runtime", version = "0.21.8" }
|
||||
solana-sdk = { path = "../sdk", version = "0.21.8" }
|
||||
solana-stake-program = { path = "../programs/stake", version = "0.21.8" }
|
||||
solana-storage-program = { path = "../programs/storage", version = "0.21.8" }
|
||||
solana-vest-program = { path = "../programs/vest", version = "0.21.8" }
|
||||
solana-vote-program = { path = "../programs/vote", version = "0.21.8" }
|
||||
|
||||
[lib]
|
||||
crate-type = ["lib"]
|
||||
|
@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
edition = "2018"
|
||||
name = "solana-genesis"
|
||||
description = "Blockchain, Rebuilt for Scale"
|
||||
version = "0.21.6"
|
||||
version = "0.21.8"
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
license = "Apache-2.0"
|
||||
homepage = "https://solana.com/"
|
||||
@ -16,11 +16,11 @@ serde = "1.0.102"
|
||||
serde_derive = "1.0.102"
|
||||
serde_json = "1.0.41"
|
||||
serde_yaml = "0.8.11"
|
||||
solana-clap-utils = { path = "../clap-utils", version = "0.21.6" }
|
||||
solana-genesis-programs = { path = "../genesis-programs", version = "0.21.6" }
|
||||
solana-ledger = { path = "../ledger", version = "0.21.6" }
|
||||
solana-sdk = { path = "../sdk", version = "0.21.6" }
|
||||
solana-stake-program = { path = "../programs/stake", version = "0.21.6" }
|
||||
solana-storage-program = { path = "../programs/storage", version = "0.21.6" }
|
||||
solana-vote-program = { path = "../programs/vote", version = "0.21.6" }
|
||||
solana-clap-utils = { path = "../clap-utils", version = "0.21.8" }
|
||||
solana-genesis-programs = { path = "../genesis-programs", version = "0.21.8" }
|
||||
solana-ledger = { path = "../ledger", version = "0.21.8" }
|
||||
solana-sdk = { path = "../sdk", version = "0.21.8" }
|
||||
solana-stake-program = { path = "../programs/stake", version = "0.21.8" }
|
||||
solana-storage-program = { path = "../programs/storage", version = "0.21.8" }
|
||||
solana-vote-program = { path = "../programs/vote", version = "0.21.8" }
|
||||
tempfile = "3.1.0"
|
||||
|
@ -3,19 +3,19 @@ authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
edition = "2018"
|
||||
name = "solana-gossip"
|
||||
description = "Blockchain, Rebuilt for Scale"
|
||||
version = "0.21.6"
|
||||
version = "0.21.8"
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
license = "Apache-2.0"
|
||||
homepage = "https://solana.com/"
|
||||
|
||||
[dependencies]
|
||||
clap = "2.33.0"
|
||||
solana-clap-utils = { path = "../clap-utils", version = "0.21.6" }
|
||||
solana-core = { path = "../core", version = "0.21.6" }
|
||||
solana-client = { path = "../client", version = "0.21.6" }
|
||||
solana-logger = { path = "../logger", version = "0.21.6" }
|
||||
solana-net-utils = { path = "../net-utils", version = "0.21.6" }
|
||||
solana-sdk = { path = "../sdk", version = "0.21.6" }
|
||||
solana-clap-utils = { path = "../clap-utils", version = "0.21.8" }
|
||||
solana-core = { path = "../core", version = "0.21.8" }
|
||||
solana-client = { path = "../client", version = "0.21.8" }
|
||||
solana-logger = { path = "../logger", version = "0.21.8" }
|
||||
solana-net-utils = { path = "../net-utils", version = "0.21.8" }
|
||||
solana-sdk = { path = "../sdk", version = "0.21.8" }
|
||||
|
||||
|
||||
|
||||
|
@ -9,7 +9,7 @@ use solana_client::rpc_client::RpcClient;
|
||||
use solana_core::{contact_info::ContactInfo, gossip_service::discover};
|
||||
use solana_sdk::pubkey::Pubkey;
|
||||
use std::error;
|
||||
use std::net::SocketAddr;
|
||||
use std::net::{IpAddr, Ipv4Addr, SocketAddr};
|
||||
use std::process::exit;
|
||||
|
||||
fn main() -> Result<(), Box<dyn error::Error>> {
|
||||
@ -38,6 +38,13 @@ fn main() -> Result<(), Box<dyn error::Error>> {
|
||||
.takes_value(false)
|
||||
.help("Return all RPC URLs"),
|
||||
)
|
||||
.arg(
|
||||
Arg::with_name("any")
|
||||
.long("any")
|
||||
.takes_value(false)
|
||||
.conflicts_with("all")
|
||||
.help("Return any RPC URL"),
|
||||
)
|
||||
.arg(
|
||||
Arg::with_name("timeout")
|
||||
.long("timeout")
|
||||
@ -74,9 +81,8 @@ fn main() -> Result<(), Box<dyn error::Error>> {
|
||||
.long("gossip-host")
|
||||
.value_name("HOST")
|
||||
.takes_value(true)
|
||||
.conflicts_with("entrypoint")
|
||||
.validator(solana_net_utils::is_host)
|
||||
.help("Gossip DNS name or IP address for the node when --entrypoint is not provided [default: 127.0.0.1]"),
|
||||
.help("Gossip DNS name or IP address for the node [default: ask --entrypoint, or 127.0.0.1 when --entrypoint is not provided]"),
|
||||
)
|
||||
.arg(
|
||||
Arg::with_name("num_nodes")
|
||||
@ -164,21 +170,29 @@ fn main() -> Result<(), Box<dyn error::Error>> {
|
||||
|
||||
let entrypoint_addr = parse_entrypoint(&matches);
|
||||
|
||||
let gossip_host = if let Some(entrypoint_addr) = entrypoint_addr {
|
||||
solana_net_utils::get_public_ip_addr(&entrypoint_addr).unwrap_or_else(|err| {
|
||||
eprintln!(
|
||||
"Failed to contact cluster entrypoint {}: {}",
|
||||
entrypoint_addr, err
|
||||
);
|
||||
exit(1);
|
||||
})
|
||||
} else {
|
||||
solana_net_utils::parse_host(matches.value_of("gossip_host").unwrap_or("127.0.0.1"))
|
||||
.unwrap_or_else(|err| {
|
||||
eprintln!("Error: {}", err);
|
||||
let gossip_host = matches
|
||||
.value_of("gossip_host")
|
||||
.map(|gossip_host| {
|
||||
solana_net_utils::parse_host(gossip_host).unwrap_or_else(|e| {
|
||||
eprintln!("failed to parse gossip-host: {}", e);
|
||||
exit(1);
|
||||
})
|
||||
};
|
||||
})
|
||||
.unwrap_or_else(|| {
|
||||
if let Some(entrypoint_addr) = entrypoint_addr {
|
||||
solana_net_utils::get_public_ip_addr(&entrypoint_addr).unwrap_or_else(
|
||||
|err| {
|
||||
eprintln!(
|
||||
"Failed to contact cluster entrypoint {}: {}",
|
||||
entrypoint_addr, err
|
||||
);
|
||||
exit(1);
|
||||
},
|
||||
)
|
||||
} else {
|
||||
IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1))
|
||||
}
|
||||
});
|
||||
|
||||
let gossip_addr = SocketAddr::new(
|
||||
gossip_host,
|
||||
@ -230,6 +244,8 @@ fn main() -> Result<(), Box<dyn error::Error>> {
|
||||
}
|
||||
}
|
||||
("get-rpc-url", Some(matches)) => {
|
||||
let any = matches.is_present("any");
|
||||
let all = matches.is_present("all");
|
||||
let entrypoint_addr = parse_entrypoint(&matches);
|
||||
let timeout = value_t_or_exit!(matches, "timeout", u64);
|
||||
let (nodes, _archivers) = discover(
|
||||
@ -244,7 +260,7 @@ fn main() -> Result<(), Box<dyn error::Error>> {
|
||||
let rpc_addrs: Vec<_> = nodes
|
||||
.iter()
|
||||
.filter_map(|contact_info| {
|
||||
if (matches.is_present("all") || Some(contact_info.gossip) == entrypoint_addr)
|
||||
if (any || all || Some(contact_info.gossip) == entrypoint_addr)
|
||||
&& ContactInfo::is_valid_address(&contact_info.rpc)
|
||||
{
|
||||
return Some(contact_info.rpc);
|
||||
@ -260,6 +276,9 @@ fn main() -> Result<(), Box<dyn error::Error>> {
|
||||
|
||||
for rpc_addr in rpc_addrs {
|
||||
println!("http://{}", rpc_addr);
|
||||
if any {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
("stop", Some(matches)) => {
|
||||
|
@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
edition = "2018"
|
||||
name = "solana-install"
|
||||
description = "The solana cluster software installer"
|
||||
version = "0.21.6"
|
||||
version = "0.21.8"
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
license = "Apache-2.0"
|
||||
homepage = "https://solana.com/"
|
||||
@ -26,11 +26,11 @@ reqwest = { version = "0.9.22", default-features = false, features = ["rustls-tl
|
||||
serde = "1.0.102"
|
||||
serde_derive = "1.0.102"
|
||||
serde_yaml = "0.8.11"
|
||||
solana-clap-utils = { path = "../clap-utils", version = "0.21.6" }
|
||||
solana-client = { path = "../client", version = "0.21.6" }
|
||||
solana-config-program = { path = "../programs/config", version = "0.21.6" }
|
||||
solana-logger = { path = "../logger", version = "0.21.6" }
|
||||
solana-sdk = { path = "../sdk", version = "0.21.6" }
|
||||
solana-clap-utils = { path = "../clap-utils", version = "0.21.8" }
|
||||
solana-client = { path = "../client", version = "0.21.8" }
|
||||
solana-config-program = { path = "../programs/config", version = "0.21.8" }
|
||||
solana-logger = { path = "../logger", version = "0.21.8" }
|
||||
solana-sdk = { path = "../sdk", version = "0.21.8" }
|
||||
tar = "0.4.26"
|
||||
tempdir = "0.3.7"
|
||||
url = "2.1.0"
|
||||
|
@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-keygen"
|
||||
version = "0.21.6"
|
||||
version = "0.21.8"
|
||||
description = "Solana key generation utility"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@ -14,8 +14,8 @@ clap = "2.33"
|
||||
dirs = "2.0.2"
|
||||
num_cpus = "1.11.1"
|
||||
rpassword = "4.0"
|
||||
solana-clap-utils = { path = "../clap-utils", version = "0.21.6" }
|
||||
solana-sdk = { path = "../sdk", version = "0.21.6" }
|
||||
solana-clap-utils = { path = "../clap-utils", version = "0.21.8" }
|
||||
solana-sdk = { path = "../sdk", version = "0.21.8" }
|
||||
tiny-bip39 = "0.6.2"
|
||||
|
||||
[[bin]]
|
||||
|
@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
edition = "2018"
|
||||
name = "solana-ledger-tool"
|
||||
description = "Blockchain, Rebuilt for Scale"
|
||||
version = "0.21.6"
|
||||
version = "0.21.8"
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
license = "Apache-2.0"
|
||||
homepage = "https://solana.com/"
|
||||
@ -15,12 +15,12 @@ serde = "1.0.102"
|
||||
serde_derive = "1.0.102"
|
||||
serde_json = "1.0.41"
|
||||
serde_yaml = "0.8.11"
|
||||
solana-clap-utils = { path = "../clap-utils", version = "0.21.6" }
|
||||
solana-ledger = { path = "../ledger", version = "0.21.6" }
|
||||
solana-logger = { path = "../logger", version = "0.21.6" }
|
||||
solana-runtime = { path = "../runtime", version = "0.21.6" }
|
||||
solana-sdk = { path = "../sdk", version = "0.21.6" }
|
||||
solana-vote-program = { path = "../programs/vote", version = "0.21.6" }
|
||||
solana-clap-utils = { path = "../clap-utils", version = "0.21.8" }
|
||||
solana-ledger = { path = "../ledger", version = "0.21.8" }
|
||||
solana-logger = { path = "../logger", version = "0.21.8" }
|
||||
solana-runtime = { path = "../runtime", version = "0.21.8" }
|
||||
solana-sdk = { path = "../sdk", version = "0.21.8" }
|
||||
solana-vote-program = { path = "../programs/vote", version = "0.21.8" }
|
||||
|
||||
[dev-dependencies]
|
||||
assert_cmd = "0.11"
|
||||
|
@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-ledger"
|
||||
version = "0.21.6"
|
||||
version = "0.21.8"
|
||||
description = "Solana ledger"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@ -29,19 +29,19 @@ rayon = "1.2.0"
|
||||
reed-solomon-erasure = { package = "solana-reed-solomon-erasure", version = "4.0.1-3", features = ["simd-accel"] }
|
||||
serde = "1.0.102"
|
||||
serde_derive = "1.0.102"
|
||||
solana-client = { path = "../client", version = "0.21.6" }
|
||||
solana-genesis-programs = { path = "../genesis-programs", version = "0.21.6" }
|
||||
solana-logger = { path = "../logger", version = "0.21.6" }
|
||||
solana-measure = { path = "../measure", version = "0.21.6" }
|
||||
solana-merkle-tree = { path = "../merkle-tree", version = "0.21.6" }
|
||||
solana-metrics = { path = "../metrics", version = "0.21.6" }
|
||||
solana-perf = { path = "../perf", version = "0.21.6" }
|
||||
solana-client = { path = "../client", version = "0.21.8" }
|
||||
solana-genesis-programs = { path = "../genesis-programs", version = "0.21.8" }
|
||||
solana-logger = { path = "../logger", version = "0.21.8" }
|
||||
solana-measure = { path = "../measure", version = "0.21.8" }
|
||||
solana-merkle-tree = { path = "../merkle-tree", version = "0.21.8" }
|
||||
solana-metrics = { path = "../metrics", version = "0.21.8" }
|
||||
solana-perf = { path = "../perf", version = "0.21.8" }
|
||||
ed25519-dalek = "1.0.0-pre.1"
|
||||
solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "0.21.6" }
|
||||
solana-runtime = { path = "../runtime", version = "0.21.6" }
|
||||
solana-sdk = { path = "../sdk", version = "0.21.6" }
|
||||
solana-stake-program = { path = "../programs/stake", version = "0.21.6" }
|
||||
solana-vote-program = { path = "../programs/vote", version = "0.21.6" }
|
||||
solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "0.21.8" }
|
||||
solana-runtime = { path = "../runtime", version = "0.21.8" }
|
||||
solana-sdk = { path = "../sdk", version = "0.21.8" }
|
||||
solana-stake-program = { path = "../programs/stake", version = "0.21.8" }
|
||||
solana-vote-program = { path = "../programs/vote", version = "0.21.8" }
|
||||
sys-info = "0.5.8"
|
||||
tar = "0.4.26"
|
||||
tempfile = "3.1.0"
|
||||
@ -56,7 +56,7 @@ features = ["lz4"]
|
||||
[dev-dependencies]
|
||||
assert_matches = "1.3.0"
|
||||
matches = "0.1.6"
|
||||
solana-budget-program = { path = "../programs/budget", version = "0.21.6" }
|
||||
solana-budget-program = { path = "../programs/budget", version = "0.21.8" }
|
||||
|
||||
[lib]
|
||||
crate-type = ["lib"]
|
||||
|
@ -11,6 +11,7 @@ use itertools::Itertools;
|
||||
use log::*;
|
||||
use rand::{seq::SliceRandom, thread_rng};
|
||||
use rayon::{prelude::*, ThreadPool};
|
||||
use solana_measure::thread_mem_usage;
|
||||
use solana_metrics::{datapoint, datapoint_error, inc_new_counter_debug};
|
||||
use solana_rayon_threadlimit::get_thread_count;
|
||||
use solana_runtime::{
|
||||
@ -282,6 +283,9 @@ pub fn process_blocktree_from_root(
|
||||
opts: &ProcessOptions,
|
||||
) -> result::Result<(BankForks, Vec<BankForksInfo>, LeaderScheduleCache), BlocktreeProcessorError> {
|
||||
info!("processing ledger from root slot {}...", bank.slot());
|
||||
let allocated = thread_mem_usage::Allocatedp::default();
|
||||
let initial_allocation = allocated.get();
|
||||
|
||||
// Starting slot must be a root, and thus has no parents
|
||||
assert!(bank.parent().is_none());
|
||||
let start_slot = bank.slot();
|
||||
@ -334,8 +338,9 @@ pub fn process_blocktree_from_root(
|
||||
};
|
||||
|
||||
info!(
|
||||
"ledger processed in {}ms. {} fork{} at {}",
|
||||
"ledger processed in {}ms. {} MB allocated. {} fork{} at {}",
|
||||
duration_as_ms(&now.elapsed()),
|
||||
allocated.since(initial_allocation) / 1_000_000,
|
||||
bank_forks_info.len(),
|
||||
if bank_forks_info.len() > 1 { "s" } else { "" },
|
||||
bank_forks_info
|
||||
@ -451,6 +456,9 @@ fn process_next_slots(
|
||||
// Only process full slots in blocktree_processor, replay_stage
|
||||
// handles any partials
|
||||
if next_meta.is_full() {
|
||||
let allocated = thread_mem_usage::Allocatedp::default();
|
||||
let initial_allocation = allocated.get();
|
||||
|
||||
let next_bank = Arc::new(Bank::new_from_parent(
|
||||
&bank,
|
||||
&leader_schedule_cache
|
||||
@ -458,7 +466,12 @@ fn process_next_slots(
|
||||
.unwrap(),
|
||||
*next_slot,
|
||||
));
|
||||
trace!("Add child bank {} of slot={}", next_slot, bank.slot());
|
||||
trace!(
|
||||
"New bank for slot {}, parent slot is {}. {} bytes allocated",
|
||||
next_slot,
|
||||
bank.slot(),
|
||||
allocated.since(initial_allocation)
|
||||
);
|
||||
pending_slots.push((*next_slot, next_meta, next_bank, bank.last_blockhash()));
|
||||
} else {
|
||||
let bfi = BankForksInfo {
|
||||
@ -486,6 +499,7 @@ fn process_pending_slots(
|
||||
let mut fork_info = vec![];
|
||||
let mut last_status_report = Instant::now();
|
||||
let mut pending_slots = vec![];
|
||||
let mut last_root_slot = root_bank.slot();
|
||||
process_next_slots(
|
||||
root_bank,
|
||||
root_meta,
|
||||
@ -500,7 +514,10 @@ fn process_pending_slots(
|
||||
let (slot, meta, bank, last_entry_hash) = pending_slots.pop().unwrap();
|
||||
|
||||
if last_status_report.elapsed() > Duration::from_secs(2) {
|
||||
info!("processing ledger...slot {}", slot);
|
||||
info!(
|
||||
"processing ledger: slot={}, last root slot={}",
|
||||
slot, last_root_slot
|
||||
);
|
||||
last_status_report = Instant::now();
|
||||
}
|
||||
|
||||
@ -509,6 +526,9 @@ fn process_pending_slots(
|
||||
continue;
|
||||
}
|
||||
|
||||
let allocated = thread_mem_usage::Allocatedp::default();
|
||||
let initial_allocation = allocated.get();
|
||||
|
||||
// Fetch all entries for this slot
|
||||
let entries = blocktree.get_slot_entries(slot, 0, None).map_err(|err| {
|
||||
warn!("Failed to load entries for slot {}: {:?}", slot, err);
|
||||
@ -531,8 +551,16 @@ fn process_pending_slots(
|
||||
bank.squash();
|
||||
pending_slots.clear();
|
||||
fork_info.clear();
|
||||
last_root_slot = slot;
|
||||
}
|
||||
|
||||
trace!(
|
||||
"Bank for {}slot {} is complete. {} bytes allocated",
|
||||
if last_root_slot == slot { "root " } else { "" },
|
||||
slot,
|
||||
allocated.since(initial_allocation)
|
||||
);
|
||||
|
||||
if slot >= dev_halt_at_slot {
|
||||
let bfi = BankForksInfo { bank_slot: slot };
|
||||
fork_info.push((bank, bfi));
|
||||
|
@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
edition = "2018"
|
||||
name = "solana-local-cluster"
|
||||
description = "Blockchain, Rebuilt for Scale"
|
||||
version = "0.21.6"
|
||||
version = "0.21.8"
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
license = "Apache-2.0"
|
||||
homepage = "https://solana.com/"
|
||||
@ -12,23 +12,23 @@ homepage = "https://solana.com/"
|
||||
itertools = "0.8.1"
|
||||
log = "0.4.8"
|
||||
rand = "0.6.5"
|
||||
solana-config-program = { path = "../programs/config", version = "0.21.6" }
|
||||
solana-core = { path = "../core", version = "0.21.6" }
|
||||
solana-client = { path = "../client", version = "0.21.6" }
|
||||
solana-drone = { path = "../drone", version = "0.21.6" }
|
||||
solana-exchange-program = { path = "../programs/exchange", version = "0.21.6" }
|
||||
solana-genesis-programs = { path = "../genesis-programs", version = "0.21.6" }
|
||||
solana-ledger = { path = "../ledger", version = "0.21.6" }
|
||||
solana-logger = { path = "../logger", version = "0.21.6" }
|
||||
solana-runtime = { path = "../runtime", version = "0.21.6" }
|
||||
solana-sdk = { path = "../sdk", version = "0.21.6" }
|
||||
solana-stake-program = { path = "../programs/stake", version = "0.21.6" }
|
||||
solana-storage-program = { path = "../programs/storage", version = "0.21.6" }
|
||||
solana-vest-program = { path = "../programs/vest", version = "0.21.6" }
|
||||
solana-vote-program = { path = "../programs/vote", version = "0.21.6" }
|
||||
solana-config-program = { path = "../programs/config", version = "0.21.8" }
|
||||
solana-core = { path = "../core", version = "0.21.8" }
|
||||
solana-client = { path = "../client", version = "0.21.8" }
|
||||
solana-drone = { path = "../drone", version = "0.21.8" }
|
||||
solana-exchange-program = { path = "../programs/exchange", version = "0.21.8" }
|
||||
solana-genesis-programs = { path = "../genesis-programs", version = "0.21.8" }
|
||||
solana-ledger = { path = "../ledger", version = "0.21.8" }
|
||||
solana-logger = { path = "../logger", version = "0.21.8" }
|
||||
solana-runtime = { path = "../runtime", version = "0.21.8" }
|
||||
solana-sdk = { path = "../sdk", version = "0.21.8" }
|
||||
solana-stake-program = { path = "../programs/stake", version = "0.21.8" }
|
||||
solana-storage-program = { path = "../programs/storage", version = "0.21.8" }
|
||||
solana-vest-program = { path = "../programs/vest", version = "0.21.8" }
|
||||
solana-vote-program = { path = "../programs/vote", version = "0.21.8" }
|
||||
symlink = "0.1.0"
|
||||
tempfile = "3.1.0"
|
||||
solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "0.21.6" }
|
||||
solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "0.21.8" }
|
||||
|
||||
[dev-dependencies]
|
||||
serial_test = "0.2.0"
|
||||
|
@ -158,6 +158,8 @@ fn test_validator_exit_2() {
|
||||
let num_nodes = 2;
|
||||
let mut validator_config = ValidatorConfig::default();
|
||||
validator_config.rpc_config.enable_validator_exit = true;
|
||||
validator_config.wait_for_supermajority = true;
|
||||
|
||||
let config = ClusterConfig {
|
||||
cluster_lamports: 10_000,
|
||||
node_stakes: vec![100; num_nodes],
|
||||
|
@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
edition = "2018"
|
||||
name = "solana-log-analyzer"
|
||||
description = "The solana cluster network analysis tool"
|
||||
version = "0.21.6"
|
||||
version = "0.21.8"
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
license = "Apache-2.0"
|
||||
homepage = "https://solana.com/"
|
||||
@ -17,8 +17,8 @@ semver = "0.9.0"
|
||||
serde = "1.0.102"
|
||||
serde_derive = "1.0.102"
|
||||
serde_json = "1.0.41"
|
||||
solana-clap-utils = { path = "../clap-utils", version = "0.21.6" }
|
||||
solana-logger = { path = "../logger", version = "0.21.6" }
|
||||
solana-clap-utils = { path = "../clap-utils", version = "0.21.8" }
|
||||
solana-logger = { path = "../logger", version = "0.21.8" }
|
||||
|
||||
[[bin]]
|
||||
name = "solana-log-analyzer"
|
||||
|
@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-logger"
|
||||
version = "0.21.6"
|
||||
version = "0.21.8"
|
||||
description = "Solana Logger"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
|
@ -1,7 +1,7 @@
|
||||
[package]
|
||||
name = "solana-measure"
|
||||
description = "Blockchain, Rebuilt for Scale"
|
||||
version = "0.21.6"
|
||||
version = "0.21.8"
|
||||
documentation = "https://docs.rs/solana"
|
||||
homepage = "https://solana.com/"
|
||||
readme = "../README.md"
|
||||
@ -11,4 +11,10 @@ license = "Apache-2.0"
|
||||
edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
solana-sdk = { path = "../sdk", version = "0.21.6" }
|
||||
log = "0.4.8"
|
||||
solana-sdk = { path = "../sdk", version = "0.21.8" }
|
||||
solana-metrics = { path = "../metrics", version = "0.21.8" }
|
||||
|
||||
[target."cfg(unix)".dependencies]
|
||||
jemallocator = "0.3.2"
|
||||
jemalloc-ctl = "0.3.2"
|
||||
|
@ -1 +1,9 @@
|
||||
pub mod measure;
|
||||
pub mod thread_mem_usage;
|
||||
|
||||
#[cfg(unix)]
|
||||
extern crate jemallocator;
|
||||
|
||||
#[cfg(unix)]
|
||||
#[global_allocator]
|
||||
static ALLOC: jemallocator::Jemalloc = jemallocator::Jemalloc;
|
||||
|
@ -28,6 +28,7 @@ impl Allocatedp {
|
||||
Self {}
|
||||
}
|
||||
|
||||
/// Return current thread heap usage
|
||||
pub fn get(&self) -> u64 {
|
||||
#[cfg(unix)]
|
||||
{
|
||||
@ -36,4 +37,9 @@ impl Allocatedp {
|
||||
#[cfg(not(unix))]
|
||||
0
|
||||
}
|
||||
|
||||
/// Return the difference in thread heap usage since a previous `get()`
|
||||
pub fn since(&self, previous: u64) -> i64 {
|
||||
self.get() as i64 - previous as i64
|
||||
}
|
||||
}
|
@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-merkle-tree"
|
||||
version = "0.21.6"
|
||||
version = "0.21.8"
|
||||
description = "Solana Merkle Tree"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@ -9,7 +9,7 @@ homepage = "https://solana.com/"
|
||||
edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
solana-sdk = { path = "../sdk", version = "0.21.6" }
|
||||
solana-sdk = { path = "../sdk", version = "0.21.8" }
|
||||
|
||||
[dev-dependencies]
|
||||
hex = "0.4.0"
|
||||
|
@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-metrics"
|
||||
version = "0.21.6"
|
||||
version = "0.21.8"
|
||||
description = "Solana Metrics"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@ -13,7 +13,7 @@ env_logger = "0.7.1"
|
||||
lazy_static = "1.4.0"
|
||||
log = "0.4.8"
|
||||
reqwest = { version = "0.9.22", default-features = false, features = ["rustls-tls"] }
|
||||
solana-sdk = { path = "../sdk", version = "0.21.6" }
|
||||
solana-sdk = { path = "../sdk", version = "0.21.8" }
|
||||
sys-info = "0.5.8"
|
||||
|
||||
[dev-dependencies]
|
||||
|
@ -278,7 +278,7 @@ setup_validator_accounts() {
|
||||
return 0
|
||||
}
|
||||
|
||||
rpc_url=$($solana_gossip get-rpc-url --entrypoint "$gossip_entrypoint")
|
||||
rpc_url=$($solana_gossip get-rpc-url --entrypoint "$gossip_entrypoint" --any)
|
||||
|
||||
[[ -r "$identity_keypair_path" ]] || $solana_keygen new --no-passphrase -so "$identity_keypair_path"
|
||||
[[ -r "$voting_keypair_path" ]] || $solana_keygen new --no-passphrase -so "$voting_keypair_path"
|
||||
|
@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
edition = "2018"
|
||||
name = "solana-net-shaper"
|
||||
description = "The solana cluster network shaping tool"
|
||||
version = "0.21.6"
|
||||
version = "0.21.8"
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
license = "Apache-2.0"
|
||||
homepage = "https://solana.com/"
|
||||
@ -16,8 +16,8 @@ semver = "0.9.0"
|
||||
serde = "1.0.102"
|
||||
serde_derive = "1.0.102"
|
||||
serde_json = "1.0.41"
|
||||
solana-clap-utils = { path = "../clap-utils", version = "0.21.6" }
|
||||
solana-logger = { path = "../logger", version = "0.21.6" }
|
||||
solana-clap-utils = { path = "../clap-utils", version = "0.21.8" }
|
||||
solana-logger = { path = "../logger", version = "0.21.8" }
|
||||
rand = "0.6.5"
|
||||
|
||||
[[bin]]
|
||||
|
@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-net-utils"
|
||||
version = "0.21.6"
|
||||
version = "0.21.8"
|
||||
description = "Solana Network Utilities"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@ -18,8 +18,8 @@ rand = "0.6.1"
|
||||
serde = "1.0.102"
|
||||
serde_derive = "1.0.102"
|
||||
socket2 = "0.3.11"
|
||||
solana-clap-utils = { path = "../clap-utils", version = "0.21.6" }
|
||||
solana-logger = { path = "../logger", version = "0.21.6" }
|
||||
solana-clap-utils = { path = "../clap-utils", version = "0.21.8" }
|
||||
solana-logger = { path = "../logger", version = "0.21.8" }
|
||||
tokio = "0.1"
|
||||
tokio-codec = "0.1"
|
||||
|
||||
|
@ -489,6 +489,7 @@ startBootstrapLeader() {
|
||||
ssh "${sshOptions[@]}" -n "$ipAddress" \
|
||||
"./solana/net/remote/remote-node.sh \
|
||||
$deployMethod \
|
||||
$ipAddress \
|
||||
bootstrap-leader \
|
||||
$entrypointIp \
|
||||
$((${#validatorIpList[@]} + ${#blockstreamerIpList[@]} + ${#archiverIpList[@]})) \
|
||||
@ -558,6 +559,7 @@ startNode() {
|
||||
ssh "${sshOptions[@]}" -n "$ipAddress" \
|
||||
"./solana/net/remote/remote-node.sh \
|
||||
$deployMethod \
|
||||
$ipAddress \
|
||||
$nodeType \
|
||||
$entrypointIp \
|
||||
$((${#validatorIpList[@]} + ${#blockstreamerIpList[@]} + ${#archiverIpList[@]})) \
|
||||
|
@ -5,27 +5,28 @@ cd "$(dirname "$0")"/../..
|
||||
|
||||
set -x
|
||||
deployMethod="$1"
|
||||
nodeType="$2"
|
||||
entrypointIp="$3"
|
||||
numNodes="$4"
|
||||
if [[ -n $5 ]]; then
|
||||
export RUST_LOG="$5"
|
||||
ipAddress="$2"
|
||||
nodeType="$3"
|
||||
entrypointIp="$4"
|
||||
numNodes="$5"
|
||||
if [[ -n $6 ]]; then
|
||||
export RUST_LOG="$6"
|
||||
fi
|
||||
skipSetup="$6"
|
||||
failOnValidatorBootupFailure="$7"
|
||||
externalPrimordialAccountsFile="$8"
|
||||
maybeDisableAirdrops="$9"
|
||||
internalNodesStakeLamports="${10}"
|
||||
internalNodesLamports="${11}"
|
||||
nodeIndex="${12}"
|
||||
numBenchTpsClients="${13}"
|
||||
benchTpsExtraArgs="${14}"
|
||||
numBenchExchangeClients="${15}"
|
||||
benchExchangeExtraArgs="${16}"
|
||||
genesisOptions="${17}"
|
||||
extraNodeArgs="${18}"
|
||||
gpuMode="${19:-auto}"
|
||||
GEOLOCATION_API_KEY="${20}"
|
||||
skipSetup="$7"
|
||||
failOnValidatorBootupFailure="$8"
|
||||
externalPrimordialAccountsFile="$9"
|
||||
maybeDisableAirdrops="${10}"
|
||||
internalNodesStakeLamports="${11}"
|
||||
internalNodesLamports="${12}"
|
||||
nodeIndex="${13}"
|
||||
numBenchTpsClients="${14}"
|
||||
benchTpsExtraArgs="${15}"
|
||||
numBenchExchangeClients="${16}"
|
||||
benchExchangeExtraArgs="${17}"
|
||||
genesisOptions="${18}"
|
||||
extraNodeArgs="${19}"
|
||||
gpuMode="${20:-auto}"
|
||||
GEOLOCATION_API_KEY="${21}"
|
||||
set +x
|
||||
|
||||
# Use a very large stake (relative to the default multinode-demo/ stake of 42)
|
||||
@ -42,6 +43,7 @@ missing() {
|
||||
}
|
||||
|
||||
[[ -n $deployMethod ]] || missing deployMethod
|
||||
[[ -n $ipAddress ]] || missing ipAddress
|
||||
[[ -n $nodeType ]] || missing nodeType
|
||||
[[ -n $entrypointIp ]] || missing entrypointIp
|
||||
[[ -n $numNodes ]] || missing numNodes
|
||||
@ -284,18 +286,22 @@ EOF
|
||||
fi
|
||||
|
||||
args=(
|
||||
--entrypoint "$entrypointIp:8001"
|
||||
--gossip-port 8001
|
||||
--rpc-port 8899
|
||||
)
|
||||
if [[ $nodeType = blockstreamer ]]; then
|
||||
args+=(
|
||||
--blockstream /tmp/solana-blockstream.sock
|
||||
--entrypoint "$ipAddress:8001"
|
||||
--gossip-port 9001
|
||||
--no-voting
|
||||
--dev-no-sigverify
|
||||
--blockstream /tmp/solana-blockstream.sock
|
||||
)
|
||||
else
|
||||
args+=(--enable-rpc-exit)
|
||||
args+=(
|
||||
--entrypoint "$entrypointIp:8001"
|
||||
--gossip-port 8001
|
||||
--enable-rpc-exit
|
||||
)
|
||||
if [[ -n $internalNodesLamports ]]; then
|
||||
args+=(--node-lamports "$internalNodesLamports")
|
||||
fi
|
||||
@ -365,6 +371,11 @@ EOF
|
||||
|
||||
cat >> ~/solana/on-reboot <<EOF
|
||||
~/solana/restart-explorer
|
||||
echo --- Starting gossip spy node
|
||||
ln -sfT gossip.log.\$now gossip.log
|
||||
nohup solana-gossip spy --gossip-port 8001 --gossip-host "$ipAddress" --entrypoint $entrypointIp:8001 > gossip.log.\$now 2>&1 &
|
||||
sleep 1
|
||||
head gossip.log
|
||||
EOF
|
||||
fi
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-perf"
|
||||
version = "0.21.6"
|
||||
version = "0.21.8"
|
||||
description = "Solana Performance APIs"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@ -18,11 +18,11 @@ serde_derive = "1.0.102"
|
||||
dlopen_derive = "0.1.4"
|
||||
lazy_static = "1.4.0"
|
||||
log = "0.4.8"
|
||||
solana-sdk = { path = "../sdk", version = "0.21.6" }
|
||||
solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "0.21.6" }
|
||||
solana-budget-program = { path = "../programs/budget", version = "0.21.6" }
|
||||
solana-logger = { path = "../logger", version = "0.21.6" }
|
||||
solana-metrics = { path = "../metrics", version = "0.21.6" }
|
||||
solana-sdk = { path = "../sdk", version = "0.21.8" }
|
||||
solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "0.21.8" }
|
||||
solana-budget-program = { path = "../programs/budget", version = "0.21.8" }
|
||||
solana-logger = { path = "../logger", version = "0.21.8" }
|
||||
solana-metrics = { path = "../metrics", version = "0.21.8" }
|
||||
|
||||
[lib]
|
||||
name = "solana_perf"
|
||||
|
524
programs/bpf/Cargo.lock
generated
524
programs/bpf/Cargo.lock
generated
File diff suppressed because it is too large
Load Diff
@ -1,7 +1,7 @@
|
||||
[package]
|
||||
name = "solana-bpf-programs"
|
||||
description = "Blockchain, Rebuilt for Scale"
|
||||
version = "0.21.6"
|
||||
version = "0.21.8"
|
||||
documentation = "https://docs.rs/solana"
|
||||
homepage = "https://solana.com/"
|
||||
readme = "README.md"
|
||||
@ -22,10 +22,10 @@ walkdir = "2"
|
||||
bincode = "1.1.4"
|
||||
byteorder = "1.3.2"
|
||||
elf = "0.0.10"
|
||||
solana-bpf-loader-program = { path = "../bpf_loader", version = "0.21.6" }
|
||||
solana-logger = { path = "../../logger", version = "0.21.6" }
|
||||
solana-runtime = { path = "../../runtime", version = "0.21.6" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.21.6" }
|
||||
solana-bpf-loader-program = { path = "../bpf_loader", version = "0.21.8" }
|
||||
solana-logger = { path = "../../logger", version = "0.21.8" }
|
||||
solana-runtime = { path = "../../runtime", version = "0.21.8" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.21.8" }
|
||||
solana_rbpf = "=0.1.19"
|
||||
|
||||
[[bench]]
|
||||
|
@ -3,7 +3,7 @@
|
||||
|
||||
[package]
|
||||
name = "solana-bpf-rust-128bit"
|
||||
version = "0.21.6"
|
||||
version = "0.21.8"
|
||||
description = "Solana BPF test program written in Rust"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@ -12,11 +12,11 @@ homepage = "https://solana.com/"
|
||||
edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
solana-sdk = { path = "../../../../sdk/", version = "0.21.6", default-features = false }
|
||||
solana-bpf-rust-128bit-dep = { path = "../128bit_dep", version = "0.21.6" }
|
||||
solana-sdk = { path = "../../../../sdk/", version = "0.21.8", default-features = false }
|
||||
solana-bpf-rust-128bit-dep = { path = "../128bit_dep", version = "0.21.8" }
|
||||
|
||||
[dev_dependencies]
|
||||
solana-sdk-bpf-test = { path = "../../../../sdk/bpf/rust/test", version = "0.21.6" }
|
||||
solana-sdk-bpf-test = { path = "../../../../sdk/bpf/rust/test", version = "0.21.8" }
|
||||
|
||||
[features]
|
||||
program = ["solana-sdk/program"]
|
||||
|
@ -3,7 +3,7 @@
|
||||
|
||||
[package]
|
||||
name = "solana-bpf-rust-128bit-dep"
|
||||
version = "0.21.6"
|
||||
version = "0.21.8"
|
||||
description = "Solana BPF test program written in Rust"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@ -12,10 +12,10 @@ homepage = "https://solana.com/"
|
||||
edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
solana-sdk = { path = "../../../../sdk/", version = "0.21.6", default-features = false }
|
||||
solana-sdk = { path = "../../../../sdk/", version = "0.21.8", default-features = false }
|
||||
|
||||
[dev_dependencies]
|
||||
solana-sdk-bpf-test = { path = "../../../../sdk/bpf/rust/test", version = "0.21.6" }
|
||||
solana-sdk-bpf-test = { path = "../../../../sdk/bpf/rust/test", version = "0.21.8" }
|
||||
|
||||
[features]
|
||||
program = ["solana-sdk/program"]
|
||||
|
@ -3,7 +3,7 @@
|
||||
|
||||
[package]
|
||||
name = "solana-bpf-rust-alloc"
|
||||
version = "0.21.6"
|
||||
version = "0.21.8"
|
||||
description = "Solana BPF test program written in Rust"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@ -12,10 +12,10 @@ homepage = "https://solana.com/"
|
||||
edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
solana-sdk = { path = "../../../../sdk/", version = "0.21.6", default-features = false }
|
||||
solana-sdk = { path = "../../../../sdk/", version = "0.21.8", default-features = false }
|
||||
|
||||
[dev_dependencies]
|
||||
solana-sdk-bpf-test = { path = "../../../../sdk/bpf/rust/test", version = "0.21.6" }
|
||||
solana-sdk-bpf-test = { path = "../../../../sdk/bpf/rust/test", version = "0.21.8" }
|
||||
|
||||
[features]
|
||||
program = ["solana-sdk/program"]
|
||||
|
@ -3,7 +3,7 @@
|
||||
|
||||
[package]
|
||||
name = "solana-bpf-rust-dep-crate"
|
||||
version = "0.21.6"
|
||||
version = "0.21.8"
|
||||
description = "Solana BPF test program written in Rust"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@ -13,10 +13,10 @@ edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
byteorder = { version = "1", default-features = false }
|
||||
solana-sdk = { path = "../../../../sdk/", version = "0.21.6", default-features = false }
|
||||
solana-sdk = { path = "../../../../sdk/", version = "0.21.8", default-features = false }
|
||||
|
||||
[dev_dependencies]
|
||||
solana-sdk-bpf-test = { path = "../../../../sdk/bpf/rust/test", version = "0.21.6" }
|
||||
solana-sdk-bpf-test = { path = "../../../../sdk/bpf/rust/test", version = "0.21.8" }
|
||||
|
||||
[features]
|
||||
program = ["solana-sdk/program"]
|
||||
|
@ -3,7 +3,7 @@
|
||||
|
||||
[package]
|
||||
name = "solana-bpf-rust-external-spend"
|
||||
version = "0.21.6"
|
||||
version = "0.21.8"
|
||||
description = "Solana BPF test program written in Rust"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@ -12,10 +12,10 @@ homepage = "https://solana.com/"
|
||||
edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
solana-sdk = { path = "../../../../sdk/", version = "0.21.6", default-features = false }
|
||||
solana-sdk = { path = "../../../../sdk/", version = "0.21.8", default-features = false }
|
||||
|
||||
[dev_dependencies]
|
||||
solana-sdk-bpf-test = { path = "../../../../sdk/bpf/rust/test", version = "0.21.6" }
|
||||
solana-sdk-bpf-test = { path = "../../../../sdk/bpf/rust/test", version = "0.21.8" }
|
||||
|
||||
[features]
|
||||
program = ["solana-sdk/program"]
|
||||
|
@ -3,7 +3,7 @@
|
||||
|
||||
[package]
|
||||
name = "solana-bpf-rust-iter"
|
||||
version = "0.21.6"
|
||||
version = "0.21.8"
|
||||
description = "Solana BPF test program written in Rust"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@ -12,10 +12,10 @@ homepage = "https://solana.com/"
|
||||
edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
solana-sdk = { path = "../../../../sdk/", version = "0.21.6", default-features = false }
|
||||
solana-sdk = { path = "../../../../sdk/", version = "0.21.8", default-features = false }
|
||||
|
||||
[dev_dependencies]
|
||||
solana-sdk-bpf-test = { path = "../../../../sdk/bpf/rust/test", version = "0.21.6" }
|
||||
solana-sdk-bpf-test = { path = "../../../../sdk/bpf/rust/test", version = "0.21.8" }
|
||||
|
||||
[features]
|
||||
program = ["solana-sdk/program"]
|
||||
|
@ -3,7 +3,7 @@
|
||||
|
||||
[package]
|
||||
name = "solana-bpf-rust-many-args"
|
||||
version = "0.21.6"
|
||||
version = "0.21.8"
|
||||
description = "Solana BPF test program written in Rust"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@ -12,11 +12,11 @@ homepage = "https://solana.com/"
|
||||
edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
solana-sdk = { path = "../../../../sdk/", version = "0.21.6", default-features = false }
|
||||
solana-bpf-rust-many-args-dep = { path = "../many_args_dep", version = "0.21.6" }
|
||||
solana-sdk = { path = "../../../../sdk/", version = "0.21.8", default-features = false }
|
||||
solana-bpf-rust-many-args-dep = { path = "../many_args_dep", version = "0.21.8" }
|
||||
|
||||
[dev_dependencies]
|
||||
solana-sdk-bpf-test = { path = "../../../../sdk/bpf/rust/test", version = "0.21.6" }
|
||||
solana-sdk-bpf-test = { path = "../../../../sdk/bpf/rust/test", version = "0.21.8" }
|
||||
|
||||
[features]
|
||||
program = ["solana-sdk/program"]
|
||||
|
@ -3,7 +3,7 @@
|
||||
|
||||
[package]
|
||||
name = "solana-bpf-rust-many-args-dep"
|
||||
version = "0.21.6"
|
||||
version = "0.21.8"
|
||||
description = "Solana BPF test program written in Rust"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@ -12,10 +12,10 @@ homepage = "https://solana.com/"
|
||||
edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
solana-sdk = { path = "../../../../sdk/", version = "0.21.6", default-features = false }
|
||||
solana-sdk = { path = "../../../../sdk/", version = "0.21.8", default-features = false }
|
||||
|
||||
[dev_dependencies]
|
||||
solana-sdk-bpf-test = { path = "../../../../sdk/bpf/rust/test", version = "0.21.6" }
|
||||
solana-sdk-bpf-test = { path = "../../../../sdk/bpf/rust/test", version = "0.21.8" }
|
||||
|
||||
[features]
|
||||
program = ["solana-sdk/program"]
|
||||
|
@ -3,7 +3,7 @@
|
||||
|
||||
[package]
|
||||
name = "solana-bpf-rust-noop"
|
||||
version = "0.21.6"
|
||||
version = "0.21.8"
|
||||
description = "Solana BPF test program written in Rust"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@ -12,10 +12,10 @@ homepage = "https://solana.com/"
|
||||
edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
solana-sdk = { path = "../../../../sdk/", version = "0.21.6", default-features = false }
|
||||
solana-sdk = { path = "../../../../sdk/", version = "0.21.8", default-features = false }
|
||||
|
||||
[dev_dependencies]
|
||||
solana-sdk-bpf-test = { path = "../../../../sdk/bpf/rust/test", version = "0.21.6" }
|
||||
solana-sdk-bpf-test = { path = "../../../../sdk/bpf/rust/test", version = "0.21.8" }
|
||||
|
||||
[features]
|
||||
program = ["solana-sdk/program"]
|
||||
|
@ -3,7 +3,7 @@
|
||||
|
||||
[package]
|
||||
name = "solana-bpf-rust-panic"
|
||||
version = "0.21.6"
|
||||
version = "0.21.8"
|
||||
description = "Solana BPF test program written in Rust"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@ -12,10 +12,10 @@ homepage = "https://solana.com/"
|
||||
edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
solana-sdk = { path = "../../../../sdk/", version = "0.21.6", default-features = false }
|
||||
solana-sdk = { path = "../../../../sdk/", version = "0.21.8", default-features = false }
|
||||
|
||||
[dev_dependencies]
|
||||
solana-sdk-bpf-test = { path = "../../../../sdk/bpf/rust/test", version = "0.21.6" }
|
||||
solana-sdk-bpf-test = { path = "../../../../sdk/bpf/rust/test", version = "0.21.8" }
|
||||
|
||||
[features]
|
||||
program = ["solana-sdk/program"]
|
||||
|
@ -3,7 +3,7 @@
|
||||
|
||||
[package]
|
||||
name = "solana-bpf-rust-param-passing"
|
||||
version = "0.21.6"
|
||||
version = "0.21.8"
|
||||
description = "Solana BPF test program written in Rust"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@ -12,11 +12,11 @@ homepage = "https://solana.com/"
|
||||
edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
solana-sdk = { path = "../../../../sdk/", version = "0.21.6", default-features = false }
|
||||
solana-bpf-rust-param-passing-dep = { path = "../param_passing_dep", version = "0.21.6" }
|
||||
solana-sdk = { path = "../../../../sdk/", version = "0.21.8", default-features = false }
|
||||
solana-bpf-rust-param-passing-dep = { path = "../param_passing_dep", version = "0.21.8" }
|
||||
|
||||
[dev_dependencies]
|
||||
solana-sdk-bpf-test = { path = "../../../../sdk/bpf/rust/test", version = "0.21.6" }
|
||||
solana-sdk-bpf-test = { path = "../../../../sdk/bpf/rust/test", version = "0.21.8" }
|
||||
|
||||
[features]
|
||||
program = ["solana-sdk/program"]
|
||||
|
@ -3,7 +3,7 @@
|
||||
|
||||
[package]
|
||||
name = "solana-bpf-rust-param-passing-dep"
|
||||
version = "0.21.6"
|
||||
version = "0.21.8"
|
||||
description = "Solana BPF program written in Rust"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@ -12,10 +12,10 @@ homepage = "https://solana.com/"
|
||||
edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
solana-sdk = { path = "../../../../sdk/", version = "0.21.6", default-features = false }
|
||||
solana-sdk = { path = "../../../../sdk/", version = "0.21.8", default-features = false }
|
||||
|
||||
[dev_dependencies]
|
||||
solana-sdk-bpf-test = { path = "../../../../sdk/bpf/rust/test", version = "0.21.6" }
|
||||
solana-sdk-bpf-test = { path = "../../../../sdk/bpf/rust/test", version = "0.21.8" }
|
||||
|
||||
[features]
|
||||
program = ["solana-sdk/program"]
|
||||
|
@ -3,7 +3,7 @@
|
||||
|
||||
[package]
|
||||
name = "solana-bpf-rust-sysval"
|
||||
version = "0.21.6"
|
||||
version = "0.21.8"
|
||||
description = "Solana BPF test program written in Rust"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@ -12,10 +12,10 @@ homepage = "https://solana.com/"
|
||||
edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
solana-sdk = { path = "../../../../sdk/", version = "0.21.6", default-features = false }
|
||||
solana-sdk = { path = "../../../../sdk/", version = "0.21.8", default-features = false }
|
||||
|
||||
[dev_dependencies]
|
||||
solana-sdk-bpf-test = { path = "../../../../sdk/bpf/rust/test", version = "0.21.6" }
|
||||
solana-sdk-bpf-test = { path = "../../../../sdk/bpf/rust/test", version = "0.21.8" }
|
||||
|
||||
[features]
|
||||
program = ["solana-sdk/program"]
|
||||
|
@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-bpf-loader-program"
|
||||
version = "0.21.6"
|
||||
version = "0.21.8"
|
||||
description = "Solana BPF loader"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@ -14,8 +14,8 @@ byteorder = "1.3.2"
|
||||
libc = "0.2.65"
|
||||
log = "0.4.8"
|
||||
serde = "1.0.102"
|
||||
solana-logger = { path = "../../logger", version = "0.21.6" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.21.6" }
|
||||
solana-logger = { path = "../../logger", version = "0.21.8" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.21.8" }
|
||||
solana_rbpf = "=0.1.19"
|
||||
|
||||
[lib]
|
||||
|
@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-btc-spv-program"
|
||||
version = "0.21.6"
|
||||
version = "0.21.8"
|
||||
description = "Solana Bitcoin spv parsing program"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@ -16,7 +16,7 @@ num-derive = "0.3"
|
||||
num-traits = "0.2"
|
||||
serde = "1.0.102"
|
||||
serde_derive = "1.0.102"
|
||||
solana-sdk = { path = "../../sdk", version = "0.21.6"}
|
||||
solana-sdk = { path = "../../sdk", version = "0.21.8"}
|
||||
hex = "0.3.2"
|
||||
|
||||
[lib]
|
||||
|
@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "btc_spv_bin"
|
||||
version = "0.21.6"
|
||||
version = "0.21.8"
|
||||
description = "Solana Bitcoin spv parsing program"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
|
@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-budget-program"
|
||||
version = "0.21.6"
|
||||
version = "0.21.8"
|
||||
description = "Solana Budget program"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@ -16,10 +16,10 @@ num-derive = "0.3"
|
||||
num-traits = "0.2"
|
||||
serde = "1.0.102"
|
||||
serde_derive = "1.0.102"
|
||||
solana-sdk = { path = "../../sdk", version = "0.21.6" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.21.8" }
|
||||
|
||||
[dev-dependencies]
|
||||
solana-runtime = { path = "../../runtime", version = "0.21.6" }
|
||||
solana-runtime = { path = "../../runtime", version = "0.21.8" }
|
||||
|
||||
[lib]
|
||||
crate-type = ["lib", "cdylib"]
|
||||
|
@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-config-program"
|
||||
version = "0.21.6"
|
||||
version = "0.21.8"
|
||||
description = "Solana Config program"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@ -14,8 +14,8 @@ chrono = { version = "0.4.10", features = ["serde"] }
|
||||
log = "0.4.8"
|
||||
serde = "1.0.102"
|
||||
serde_derive = "1.0.102"
|
||||
solana-logger = { path = "../../logger", version = "0.21.6" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.21.6" }
|
||||
solana-logger = { path = "../../logger", version = "0.21.8" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.21.8" }
|
||||
|
||||
[lib]
|
||||
crate-type = ["lib", "cdylib"]
|
||||
|
@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-config-tests"
|
||||
version = "0.21.6"
|
||||
version = "0.21.8"
|
||||
description = "Solana config api tests"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@ -13,11 +13,11 @@ bincode = "1.2.0"
|
||||
log = "0.4.8"
|
||||
serde = "1.0.102"
|
||||
serde_derive = "1.0.102"
|
||||
solana-logger = { path = "../../logger", version = "0.21.6" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.21.6" }
|
||||
solana-config-program = { path = "../config", version = "0.21.6" }
|
||||
solana-logger = { path = "../../logger", version = "0.21.8" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.21.8" }
|
||||
solana-config-program = { path = "../config", version = "0.21.8" }
|
||||
|
||||
|
||||
[dev-dependencies]
|
||||
solana-runtime = { path = "../../runtime", version = "0.21.6" }
|
||||
solana-runtime = { path = "../../runtime", version = "0.21.8" }
|
||||
assert_matches = "1.3.0"
|
||||
|
@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-exchange-program"
|
||||
version = "0.21.6"
|
||||
version = "0.21.8"
|
||||
description = "Solana Exchange program"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@ -13,12 +13,12 @@ bincode = "1.2.0"
|
||||
log = "0.4.8"
|
||||
serde = "1.0.102"
|
||||
serde_derive = "1.0.102"
|
||||
solana-logger = { path = "../../logger", version = "0.21.6" }
|
||||
solana-metrics = { path = "../../metrics", version = "0.21.6" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.21.6" }
|
||||
solana-logger = { path = "../../logger", version = "0.21.8" }
|
||||
solana-metrics = { path = "../../metrics", version = "0.21.8" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.21.8" }
|
||||
|
||||
[dev-dependencies]
|
||||
solana-runtime = { path = "../../runtime", version = "0.21.6" }
|
||||
solana-runtime = { path = "../../runtime", version = "0.21.8" }
|
||||
|
||||
[lib]
|
||||
crate-type = ["lib", "cdylib"]
|
||||
|
@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-failure-program"
|
||||
version = "0.21.6"
|
||||
version = "0.21.8"
|
||||
description = "Solana failure program"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@ -10,10 +10,10 @@ edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
log = "0.4.8"
|
||||
solana-sdk = { path = "../../sdk", version = "0.21.6" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.21.8" }
|
||||
|
||||
[dev-dependencies]
|
||||
solana-runtime = { path = "../../runtime", version = "0.21.6" }
|
||||
solana-runtime = { path = "../../runtime", version = "0.21.8" }
|
||||
|
||||
[lib]
|
||||
crate-type = ["lib", "cdylib"]
|
||||
|
@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-librapay-api"
|
||||
version = "0.21.6"
|
||||
version = "0.21.8"
|
||||
description = "Solana Libra Payment"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@ -11,10 +11,10 @@ edition = "2018"
|
||||
[dependencies]
|
||||
bincode = "1.2.0"
|
||||
log = "0.4.8"
|
||||
solana-logger = { path = "../../logger", version = "0.21.6" }
|
||||
solana-move-loader-program = { path = "../move_loader", version = "0.21.6" }
|
||||
solana-runtime = { path = "../../runtime", version = "0.21.6" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.21.6" }
|
||||
solana-logger = { path = "../../logger", version = "0.21.8" }
|
||||
solana-move-loader-program = { path = "../move_loader", version = "0.21.8" }
|
||||
solana-runtime = { path = "../../runtime", version = "0.21.8" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.21.8" }
|
||||
language_e2e_tests = { version = "0.0.1-sol4", package = "solana_libra_language_e2e_tests" }
|
||||
types = { version = "0.0.1-sol4", package = "solana_libra_types" }
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-move-loader-program"
|
||||
version = "0.21.6"
|
||||
version = "0.21.8"
|
||||
description = "Solana Move loader"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@ -18,8 +18,8 @@ serde = "1.0.102"
|
||||
serde_bytes = "0.11"
|
||||
serde_derive = "1.0.102"
|
||||
serde_json = "1.0.41"
|
||||
solana-logger = { path = "../../logger", version = "0.21.6" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.21.6" }
|
||||
solana-logger = { path = "../../logger", version = "0.21.8" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.21.8" }
|
||||
|
||||
bytecode_verifier = { version = "0.0.1-sol4", package = "solana_libra_bytecode_verifier" }
|
||||
canonical_serialization = { version = "0.0.1-sol4", package = "solana_libra_canonical_serialization" }
|
||||
|
@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-noop-program"
|
||||
version = "0.21.6"
|
||||
version = "0.21.8"
|
||||
description = "Solana Noop program"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@ -10,8 +10,8 @@ edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
log = "0.4.8"
|
||||
solana-logger = { path = "../../logger", version = "0.21.6" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.21.6" }
|
||||
solana-logger = { path = "../../logger", version = "0.21.8" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.21.8" }
|
||||
|
||||
[lib]
|
||||
crate-type = ["lib", "cdylib"]
|
||||
|
@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-ownable-api"
|
||||
version = "0.21.6"
|
||||
version = "0.21.8"
|
||||
description = "ownable program API"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@ -12,12 +12,12 @@ edition = "2018"
|
||||
bincode = "1.2.0"
|
||||
serde = "1.0.102"
|
||||
serde_derive = "1.0.102"
|
||||
solana-sdk = { path = "../../sdk", version = "0.21.6" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.21.8" }
|
||||
num-derive = "0.3"
|
||||
num-traits = "0.2"
|
||||
|
||||
[dev-dependencies]
|
||||
solana-runtime = { path = "../../runtime", version = "0.21.6" }
|
||||
solana-runtime = { path = "../../runtime", version = "0.21.8" }
|
||||
|
||||
[lib]
|
||||
crate-type = ["lib"]
|
||||
|
@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-stake-program"
|
||||
version = "0.21.6"
|
||||
version = "0.21.8"
|
||||
description = "Solana Stake program"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@ -16,11 +16,11 @@ num-traits = "0.2"
|
||||
rand = "0.6.5"
|
||||
serde = "1.0.102"
|
||||
serde_derive = "1.0.102"
|
||||
solana-logger = { path = "../../logger", version = "0.21.6" }
|
||||
solana-metrics = { path = "../../metrics", version = "0.21.6" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.21.6" }
|
||||
solana-vote-program = { path = "../vote", version = "0.21.6" }
|
||||
solana-config-program = { path = "../config", version = "0.21.6" }
|
||||
solana-logger = { path = "../../logger", version = "0.21.8" }
|
||||
solana-metrics = { path = "../../metrics", version = "0.21.8" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.21.8" }
|
||||
solana-vote-program = { path = "../vote", version = "0.21.8" }
|
||||
solana-config-program = { path = "../config", version = "0.21.8" }
|
||||
|
||||
[lib]
|
||||
crate-type = ["lib", "cdylib"]
|
||||
|
@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-stake-tests"
|
||||
version = "0.21.6"
|
||||
version = "0.21.8"
|
||||
description = "Solana stake tests"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@ -10,11 +10,11 @@ edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
log = "0.4.8"
|
||||
solana-logger = { path = "../../logger", version = "0.21.6" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.21.6" }
|
||||
solana-stake-program = { path = "../stake", version = "0.21.6" }
|
||||
solana-vote-program = { path = "../vote", version = "0.21.6" }
|
||||
solana-logger = { path = "../../logger", version = "0.21.8" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.21.8" }
|
||||
solana-stake-program = { path = "../stake", version = "0.21.8" }
|
||||
solana-vote-program = { path = "../vote", version = "0.21.8" }
|
||||
|
||||
[dev-dependencies]
|
||||
solana-runtime = { path = "../../runtime", version = "0.21.6" }
|
||||
solana-runtime = { path = "../../runtime", version = "0.21.8" }
|
||||
assert_matches = "1.3.0"
|
||||
|
@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-storage-program"
|
||||
version = "0.21.6"
|
||||
version = "0.21.8"
|
||||
description = "Solana Storage program"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@ -16,8 +16,8 @@ num-derive = "0.3"
|
||||
num-traits = "0.2"
|
||||
serde = "1.0.102"
|
||||
serde_derive = "1.0.102"
|
||||
solana-logger = { path = "../../logger", version = "0.21.6" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.21.6" }
|
||||
solana-logger = { path = "../../logger", version = "0.21.8" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.21.8" }
|
||||
|
||||
[lib]
|
||||
crate-type = ["lib", "cdylib"]
|
||||
|
@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-storage-tests"
|
||||
version = "0.21.6"
|
||||
version = "0.21.8"
|
||||
description = "Solana storage tests"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@ -10,11 +10,11 @@ edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
log = "0.4.8"
|
||||
solana-logger = { path = "../../logger", version = "0.21.6" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.21.6" }
|
||||
solana-storage-program = { path = "../storage", version = "0.21.6" }
|
||||
solana-logger = { path = "../../logger", version = "0.21.8" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.21.8" }
|
||||
solana-storage-program = { path = "../storage", version = "0.21.8" }
|
||||
|
||||
[dev-dependencies]
|
||||
solana-runtime = { path = "../../runtime", version = "0.21.6" }
|
||||
solana-runtime = { path = "../../runtime", version = "0.21.8" }
|
||||
assert_matches = "1.3.0"
|
||||
bincode = "1.2.0"
|
||||
|
@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-vest-program"
|
||||
version = "0.21.6"
|
||||
version = "0.21.8"
|
||||
description = "Solana Vest program"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@ -16,11 +16,11 @@ num-derive = "0.2"
|
||||
num-traits = "0.2"
|
||||
serde = "1.0.102"
|
||||
serde_derive = "1.0.102"
|
||||
solana-sdk = { path = "../../sdk", version = "0.21.6" }
|
||||
solana-config-program = { path = "../config", version = "0.21.6" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.21.8" }
|
||||
solana-config-program = { path = "../config", version = "0.21.8" }
|
||||
|
||||
[dev-dependencies]
|
||||
solana-runtime = { path = "../../runtime", version = "0.21.6" }
|
||||
solana-runtime = { path = "../../runtime", version = "0.21.8" }
|
||||
|
||||
[lib]
|
||||
crate-type = ["lib"]
|
||||
|
@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-vote-program"
|
||||
version = "0.21.6"
|
||||
version = "0.21.8"
|
||||
description = "Solana Vote program"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@ -15,9 +15,9 @@ num-derive = "0.3"
|
||||
num-traits = "0.2"
|
||||
serde = "1.0.102"
|
||||
serde_derive = "1.0.102"
|
||||
solana-logger = { path = "../../logger", version = "0.21.6" }
|
||||
solana-metrics = { path = "../../metrics", version = "0.21.6" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.21.6" }
|
||||
solana-logger = { path = "../../logger", version = "0.21.8" }
|
||||
solana-metrics = { path = "../../metrics", version = "0.21.8" }
|
||||
solana-sdk = { path = "../../sdk", version = "0.21.8" }
|
||||
|
||||
[lib]
|
||||
crate-type = ["lib", "cdylib"]
|
||||
|
@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-rayon-threadlimit"
|
||||
version = "0.21.6"
|
||||
version = "0.21.8"
|
||||
description = "solana-rayon-threadlimit"
|
||||
homepage = "https://solana.com/"
|
||||
readme = "../README.md"
|
||||
|
@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-runtime"
|
||||
version = "0.21.6"
|
||||
version = "0.21.8"
|
||||
description = "Solana runtime"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@ -24,17 +24,17 @@ rayon = "1.2.0"
|
||||
serde = { version = "1.0.102", features = ["rc"] }
|
||||
serde_derive = "1.0.102"
|
||||
serde_json = "1.0.41"
|
||||
solana-logger = { path = "../logger", version = "0.21.6" }
|
||||
solana-measure = { path = "../measure", version = "0.21.6" }
|
||||
solana-metrics = { path = "../metrics", version = "0.21.6" }
|
||||
solana-bpf-loader-program = { path = "../programs/bpf_loader", version = "0.21.6" }
|
||||
solana-sdk = { path = "../sdk", version = "0.21.6" }
|
||||
solana-stake-program = { path = "../programs/stake", version = "0.21.6" }
|
||||
solana-storage-program = { path = "../programs/storage", version = "0.21.6" }
|
||||
solana-vote-program = { path = "../programs/vote", version = "0.21.6" }
|
||||
solana-logger = { path = "../logger", version = "0.21.8" }
|
||||
solana-measure = { path = "../measure", version = "0.21.8" }
|
||||
solana-metrics = { path = "../metrics", version = "0.21.8" }
|
||||
solana-bpf-loader-program = { path = "../programs/bpf_loader", version = "0.21.8" }
|
||||
solana-sdk = { path = "../sdk", version = "0.21.8" }
|
||||
solana-stake-program = { path = "../programs/stake", version = "0.21.8" }
|
||||
solana-storage-program = { path = "../programs/storage", version = "0.21.8" }
|
||||
solana-vote-program = { path = "../programs/vote", version = "0.21.8" }
|
||||
sys-info = "0.5.8"
|
||||
tempfile = "3.1.0"
|
||||
solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "0.21.6" }
|
||||
solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "0.21.8" }
|
||||
itertools = "0.8.2"
|
||||
|
||||
[lib]
|
||||
@ -42,4 +42,4 @@ crate-type = ["lib"]
|
||||
name = "solana_runtime"
|
||||
|
||||
[dev-dependencies]
|
||||
solana-noop-program = { path = "../programs/noop", version = "0.21.6" }
|
||||
solana-noop-program = { path = "../programs/noop", version = "0.21.8" }
|
||||
|
@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
edition = "2018"
|
||||
name = "solana-scripts"
|
||||
description = "Blockchain, Rebuilt for Scale"
|
||||
version = "0.21.6"
|
||||
version = "0.21.8"
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
license = "Apache-2.0"
|
||||
homepage = "https://solana.com/"
|
||||
|
@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-sdk-c"
|
||||
version = "0.21.6"
|
||||
version = "0.21.8"
|
||||
description = "Solana SDK C"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@ -18,7 +18,7 @@ bs58 = "0.3.0"
|
||||
libc = "0.2.65"
|
||||
rand_chacha = "0.1.1"
|
||||
rand_core = { version = ">=0.2, <0.4", default-features = false }
|
||||
solana-sdk = { path = "../sdk", version = "0.21.6" }
|
||||
solana-sdk = { path = "../sdk", version = "0.21.8" }
|
||||
ed25519-dalek = "1.0.0-pre.1"
|
||||
sha2 = "0.8.0"
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-sdk"
|
||||
version = "0.21.6"
|
||||
version = "0.21.8"
|
||||
description = "Solana SDK"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@ -46,9 +46,9 @@ serde_derive = "1.0.102"
|
||||
serde_json = { version = "1.0.41", optional = true }
|
||||
sha2 = "0.8.0"
|
||||
ed25519-dalek = { version = "1.0.0-pre.1", optional = true }
|
||||
solana-crate-features = { path = "../crate-features", version = "0.21.6", optional = true }
|
||||
solana-logger = { path = "../logger", version = "0.21.6", optional = true }
|
||||
solana-sdk-macro = { path = "macro", version = "0.21.6" }
|
||||
solana-crate-features = { path = "../crate-features", version = "0.21.8", optional = true }
|
||||
solana-logger = { path = "../logger", version = "0.21.8", optional = true }
|
||||
solana-sdk-macro = { path = "macro", version = "0.21.8" }
|
||||
|
||||
[dev-dependencies]
|
||||
tiny-bip39 = "0.6.2"
|
||||
|
@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-sdk-bpf-test"
|
||||
version = "0.21.6"
|
||||
version = "0.21.8"
|
||||
description = "Solana BPF SDK test utilities"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
|
@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-sdk-macro"
|
||||
version = "0.21.6"
|
||||
version = "0.21.8"
|
||||
description = "Solana SDK Macro"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
|
@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "solana-upload-perf"
|
||||
version = "0.21.6"
|
||||
version = "0.21.8"
|
||||
description = "Metrics Upload Utility"
|
||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
@ -12,7 +12,7 @@ publish = false
|
||||
[dependencies]
|
||||
log = "0.4.8"
|
||||
serde_json = "1.0.41"
|
||||
solana-metrics = { path = "../metrics", version = "0.21.6" }
|
||||
solana-metrics = { path = "../metrics", version = "0.21.8" }
|
||||
|
||||
[[bin]]
|
||||
name = "solana-upload-perf"
|
||||
|
@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
edition = "2018"
|
||||
name = "solana-validator"
|
||||
description = "Blockchain, Rebuilt for Scale"
|
||||
version = "0.21.6"
|
||||
version = "0.21.8"
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
license = "Apache-2.0"
|
||||
homepage = "https://solana.com/"
|
||||
@ -15,21 +15,22 @@ chrono = { version = "0.4.10", features = ["serde"] }
|
||||
console = "0.9.1"
|
||||
log = "0.4.8"
|
||||
indicatif = "0.13.0"
|
||||
rand = "0.6.5"
|
||||
reqwest = { version = "0.9.22", default-features = false }
|
||||
serde_json = "1.0.41"
|
||||
solana-clap-utils = { path = "../clap-utils", version = "0.21.6" }
|
||||
solana-client = { path = "../client", version = "0.21.6" }
|
||||
solana-core = { path = "../core", version = "0.21.6" }
|
||||
solana-drone = { path = "../drone", version = "0.21.6" }
|
||||
solana-ledger = { path = "../ledger", version = "0.21.6" }
|
||||
solana-logger = { path = "../logger", version = "0.21.6" }
|
||||
solana-perf = { path = "../perf", version = "0.21.6" }
|
||||
solana-metrics = { path = "../metrics", version = "0.21.6" }
|
||||
solana-net-utils = { path = "../net-utils", version = "0.21.6" }
|
||||
solana-runtime = { path = "../runtime", version = "0.21.6" }
|
||||
solana-sdk = { path = "../sdk", version = "0.21.6" }
|
||||
solana-vote-program = { path = "../programs/vote", version = "0.21.6" }
|
||||
solana-vote-signer = { path = "../vote-signer", version = "0.21.6" }
|
||||
solana-clap-utils = { path = "../clap-utils", version = "0.21.8" }
|
||||
solana-client = { path = "../client", version = "0.21.8" }
|
||||
solana-core = { path = "../core", version = "0.21.8" }
|
||||
solana-drone = { path = "../drone", version = "0.21.8" }
|
||||
solana-ledger = { path = "../ledger", version = "0.21.8" }
|
||||
solana-logger = { path = "../logger", version = "0.21.8" }
|
||||
solana-perf = { path = "../perf", version = "0.21.8" }
|
||||
solana-metrics = { path = "../metrics", version = "0.21.8" }
|
||||
solana-net-utils = { path = "../net-utils", version = "0.21.8" }
|
||||
solana-runtime = { path = "../runtime", version = "0.21.8" }
|
||||
solana-sdk = { path = "../sdk", version = "0.21.8" }
|
||||
solana-vote-program = { path = "../programs/vote", version = "0.21.8" }
|
||||
solana-vote-signer = { path = "../vote-signer", version = "0.21.8" }
|
||||
tar = "0.4.26"
|
||||
tempfile = "3.1.0"
|
||||
|
||||
|
@ -3,6 +3,7 @@ use clap::{crate_description, crate_name, value_t, value_t_or_exit, App, Arg};
|
||||
use console::{style, Emoji};
|
||||
use indicatif::{ProgressBar, ProgressStyle};
|
||||
use log::*;
|
||||
use rand::{thread_rng, Rng};
|
||||
use solana_clap_utils::{
|
||||
input_parsers::pubkey_of,
|
||||
input_validators::{is_keypair, is_pubkey_or_keypair},
|
||||
@ -217,15 +218,16 @@ fn get_rpc_addr(
|
||||
.any(|contact_info| contact_info.gossip == *entrypoint_gossip);
|
||||
|
||||
if found_entrypoint & !rpc_peers.is_empty() {
|
||||
// Prefer the entrypoint's RPC service it it has one, otherwise pick the first RPC
|
||||
// service found
|
||||
// Prefer the entrypoint's RPC service if present, otherwise pick a node at random
|
||||
if let Some(contact_info) = rpc_peers
|
||||
.iter()
|
||||
.find(|contact_info| contact_info.gossip == *entrypoint_gossip)
|
||||
{
|
||||
break (contact_info.id, contact_info.rpc);
|
||||
}
|
||||
break (rpc_peers[0].id, rpc_peers[0].rpc);
|
||||
|
||||
let i = thread_rng().gen_range(0, rpc_peers.len());
|
||||
break (rpc_peers[i].id, rpc_peers[i].rpc);
|
||||
}
|
||||
|
||||
sleep(Duration::from_secs(1));
|
||||
@ -537,6 +539,12 @@ pub fn main() {
|
||||
.takes_value(true)
|
||||
.help("Redirect logging to the specified file, '-' for standard error"),
|
||||
)
|
||||
.arg(
|
||||
Arg::with_name("wait_for_supermajority")
|
||||
.long("wait-for-supermajority")
|
||||
.takes_value(false)
|
||||
.help("After processing the ledger, wait until a supermajority of stake is visible on gossip before starting PoH"),
|
||||
)
|
||||
.get_matches();
|
||||
|
||||
let identity_keypair = Arc::new(
|
||||
@ -582,6 +590,7 @@ pub fn main() {
|
||||
validator_config.dev_halt_at_slot = value_t!(matches, "dev_halt_at_slot", Slot).ok();
|
||||
|
||||
validator_config.rpc_config.enable_validator_exit = matches.is_present("enable_rpc_exit");
|
||||
validator_config.wait_for_supermajority = matches.is_present("wait_for_supermajority");
|
||||
|
||||
validator_config.rpc_config.drone_addr = matches.value_of("rpc_drone_addr").map(|address| {
|
||||
solana_net_utils::parse_host_port(address).expect("failed to parse drone address")
|
||||
|
@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
edition = "2018"
|
||||
name = "solana-vote-signer"
|
||||
description = "Solana Vote Signing Service"
|
||||
version = "0.21.6"
|
||||
version = "0.21.8"
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
license = "Apache-2.0"
|
||||
homepage = "https://solana.com/"
|
||||
@ -17,9 +17,9 @@ jsonrpc-http-server = "14.0.3"
|
||||
log = "0.4.8"
|
||||
serde = "1.0.102"
|
||||
serde_json = "1.0.41"
|
||||
solana-clap-utils = { path = "../clap-utils", version = "0.21.6" }
|
||||
solana-metrics = { path = "../metrics", version = "0.21.6" }
|
||||
solana-sdk = { path = "../sdk", version = "0.21.6" }
|
||||
solana-clap-utils = { path = "../clap-utils", version = "0.21.8" }
|
||||
solana-metrics = { path = "../metrics", version = "0.21.8" }
|
||||
solana-sdk = { path = "../sdk", version = "0.21.8" }
|
||||
|
||||
[lib]
|
||||
crate-type = ["lib"]
|
||||
|
@ -3,7 +3,7 @@ authors = ["Solana Maintainers <maintainers@solana.com>"]
|
||||
edition = "2018"
|
||||
name = "solana-watchtower"
|
||||
description = "Blockchain, Rebuilt for Scale"
|
||||
version = "0.21.6"
|
||||
version = "0.21.8"
|
||||
repository = "https://github.com/solana-labs/solana"
|
||||
license = "Apache-2.0"
|
||||
homepage = "https://solana.com/"
|
||||
@ -13,11 +13,11 @@ clap = "2.33.0"
|
||||
log = "0.4.8"
|
||||
reqwest = { version = "0.9.24", default-features = false, features = ["rustls-tls"] }
|
||||
serde_json = "1.0"
|
||||
solana-clap-utils = { path = "../clap-utils", version = "0.21.6" }
|
||||
solana-client = { path = "../client", version = "0.21.6" }
|
||||
solana-logger = { path = "../logger", version = "0.21.6" }
|
||||
solana-metrics = { path = "../metrics", version = "0.21.6" }
|
||||
solana-sdk = { path = "../sdk", version = "0.21.6" }
|
||||
solana-clap-utils = { path = "../clap-utils", version = "0.21.8" }
|
||||
solana-client = { path = "../client", version = "0.21.8" }
|
||||
solana-logger = { path = "../logger", version = "0.21.8" }
|
||||
solana-metrics = { path = "../metrics", version = "0.21.8" }
|
||||
solana-sdk = { path = "../sdk", version = "0.21.8" }
|
||||
|
||||
[[bin]]
|
||||
name = "solana-watchtower"
|
||||
|
Reference in New Issue
Block a user