diff --git a/.buildkite/hooks/pre-command b/.buildkite/hooks/pre-command
index 3e0491d64f..9193748bba 100644
--- a/.buildkite/hooks/pre-command
+++ b/.buildkite/hooks/pre-command
@@ -36,4 +36,7 @@ export CARGO_TARGET_CACHE=$HOME/cargo-target-cache/"$CHANNEL"-"$BUILDKITE_LABEL"
# `std:
# "found possibly newer version of crate `std` which `xyz` depends on
rm -rf target/bpfel-unknown-unknown
+ if [[ $BUILDKITE_LABEL = "stable-perf" ]]; then
+ rm -rf target/release
+ fi
)
diff --git a/.gitignore b/.gitignore
index 55a67b207b..eb9a4cb7ff 100644
--- a/.gitignore
+++ b/.gitignore
@@ -16,6 +16,7 @@
*.log
log-*.txt
log-*/
+!log-analyzer
# intellij files
/.idea/
diff --git a/.mergify.yml b/.mergify.yml
index 8b4b89e0bb..70c4aad68f 100644
--- a/.mergify.yml
+++ b/.mergify.yml
@@ -50,14 +50,6 @@ pull_request_rules:
label:
add:
- automerge
- - name: v1.3 backport
- conditions:
- - label=v1.3
- actions:
- backport:
- ignore_conflicts: true
- branches:
- - v1.3
- name: v1.4 backport
conditions:
- label=v1.4
@@ -82,3 +74,11 @@ pull_request_rules:
ignore_conflicts: true
branches:
- v1.6
+ - name: v1.7 backport
+ conditions:
+ - label=v1.7
+ actions:
+ backport:
+ ignore_conflicts: true
+ branches:
+ - v1.7
diff --git a/Cargo.lock b/Cargo.lock
index 1e44782f6b..7acac8a6c5 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -1,5 +1,7 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
+version = 3
+
[[package]]
name = "Inflector"
version = "0.11.4"
@@ -62,9 +64,9 @@ dependencies = [
[[package]]
name = "anyhow"
-version = "1.0.40"
+version = "1.0.41"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "28b2cd92db5cbd74e8e5028f7e27dd7aa3090e89e4f2a197cc7c8dfb69c7063b"
+checksum = "15af2628f6890fe2609a3b91bef4c83450512802e59489f9c1cb1fa5df064a61"
[[package]]
name = "arc-swap"
@@ -72,6 +74,12 @@ version = "0.4.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dabe5a181f83789739c194cbe5a897dde195078fac08568d09221fd6137a7ba8"
+[[package]]
+name = "arc-swap"
+version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e906254e445520903e7fc9da4f709886c84ae4bc4ddaf0e093188d66df4dc820"
+
[[package]]
name = "arrayref"
version = "0.3.6"
@@ -102,9 +110,9 @@ checksum = "eab1c04a571841102f5345a8fc0f6bb3d31c315dec879b5c6e42e40ce7ffa34e"
[[package]]
name = "assert_cmd"
-version = "1.0.4"
+version = "1.0.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f57fec1ac7e4de72dcc69811795f1a7172ed06012f80a5d1ee651b62484f588"
+checksum = "a88b6bd5df287567ffdf4ddf4d33060048e1068308e5f62d81c6f9824a045a48"
dependencies = [
"bstr",
"doc-comment",
@@ -122,9 +130,9 @@ checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9"
[[package]]
name = "async-stream"
-version = "0.2.1"
+version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "22068c0c19514942eefcfd4daf8976ef1aad84e61539f95cd200c35202f80af5"
+checksum = "171374e7e3b2504e0e5236e3b59260560f9fe94bfe9ac39ba5e4e929c5590625"
dependencies = [
"async-stream-impl",
"futures-core",
@@ -132,13 +140,13 @@ dependencies = [
[[package]]
name = "async-stream-impl"
-version = "0.2.1"
+version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "25f9db3b38af870bf7e5cc649167533b493928e50744e2c30ae350230b414670"
+checksum = "648ed8c8d2ce5409ccd57453d9d1b214b342a0d69376a6feda1fd6cae3299308"
dependencies = [
"proc-macro2 1.0.27",
"quote 1.0.9",
- "syn 1.0.72",
+ "syn 1.0.73",
]
[[package]]
@@ -149,7 +157,7 @@ checksum = "0b98e84bbb4cbcdd97da190ba0c58a1bb0de2c1fdf67d159e192ed766aeca722"
dependencies = [
"proc-macro2 1.0.27",
"quote 1.0.9",
- "syn 1.0.72",
+ "syn 1.0.73",
]
[[package]]
@@ -181,7 +189,7 @@ checksum = "da47c46001293a2c4b744d731958be22cff408a2ab76e2279328f9713b1267b4"
dependencies = [
"proc-macro2 1.0.27",
"quote 1.0.9",
- "syn 1.0.72",
+ "syn 1.0.73",
]
[[package]]
@@ -194,7 +202,7 @@ dependencies = [
"derive_utils",
"proc-macro2 1.0.27",
"quote 1.0.9",
- "syn 1.0.72",
+ "syn 1.0.73",
]
[[package]]
@@ -211,15 +219,16 @@ checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a"
[[package]]
name = "backoff"
-version = "0.2.1"
+version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "721c249ab59cbc483ad4294c9ee2671835c1e43e9ffc277e6b4ecfef733cfdc5"
+checksum = "9fe17f59a06fe8b87a6fc8bf53bb70b3aba76d7685f432487a68cd5552853625"
dependencies = [
"futures-core",
+ "getrandom 0.2.3",
"instant",
- "pin-project 0.4.28",
- "rand 0.7.3",
- "tokio 0.2.25",
+ "pin-project",
+ "rand 0.8.4",
+ "tokio 1.7.1",
]
[[package]]
@@ -297,13 +306,12 @@ dependencies = [
[[package]]
name = "bindgen"
-version = "0.55.1"
+version = "0.57.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "75b13ce559e6433d360c26305643803cb52cfbabbc2b9c47ce04a58493dfb443"
+checksum = "fd4865004a46a0aafb2a0a5eb19d3c9fc46ee5f063a6cfc605c69ac9ecf5263d"
dependencies = [
"bitflags",
"cexpr",
- "cfg-if 0.1.10",
"clang-sys",
"lazy_static 1.4.0",
"lazycell",
@@ -425,7 +433,7 @@ dependencies = [
"borsh-schema-derive-internal",
"proc-macro-crate",
"proc-macro2 1.0.27",
- "syn 1.0.72",
+ "syn 1.0.73",
]
[[package]]
@@ -436,7 +444,7 @@ checksum = "d2104c73179359431cc98e016998f2f23bc7a05bc53e79741bcba705f30047bc"
dependencies = [
"proc-macro2 1.0.27",
"quote 1.0.9",
- "syn 1.0.72",
+ "syn 1.0.73",
]
[[package]]
@@ -447,7 +455,7 @@ checksum = "ae29eb8418fcd46f723f8691a2ac06857d31179d33d2f2d91eb13967de97c728"
dependencies = [
"proc-macro2 1.0.27",
"quote 1.0.9",
- "syn 1.0.72",
+ "syn 1.0.73",
]
[[package]]
@@ -470,9 +478,9 @@ dependencies = [
[[package]]
name = "bumpalo"
-version = "3.6.1"
+version = "3.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "63396b8a4b9de3f4fdfb320ab6080762242f66a8ef174c49d8e19b674db4cdbe"
+checksum = "9c59e7af012c713f529e7a3ee57ce9b31ddd858d4b512923602f74608b009631"
[[package]]
name = "bv"
@@ -570,9 +578,9 @@ dependencies = [
[[package]]
name = "bzip2-sys"
-version = "0.1.10+1.0.8"
+version = "0.1.11+1.0.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17fa3d1ac1ca21c5c4e36a97f3c3eb25084576f6fc47bf0139c1123434216c6c"
+checksum = "736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc"
dependencies = [
"cc",
"libc",
@@ -803,9 +811,9 @@ dependencies = [
[[package]]
name = "cpufeatures"
-version = "0.1.4"
+version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed00c67cb5d0a7d64a44f6ad2668db7e7530311dd53ea79bcd4fb022c64911c8"
+checksum = "66c99696f6c9dd7f35d486b9d04d7e6e202aa3e8c40d553f2fdf5e7e0c6a71ef"
dependencies = [
"libc",
]
@@ -830,7 +838,7 @@ dependencies = [
"clap",
"criterion-plot",
"csv",
- "itertools 0.10.0",
+ "itertools 0.10.1",
"lazy_static 1.4.0",
"num-traits",
"oorandom",
@@ -885,7 +893,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "06ed27e177f16d65f0f0c22a213e17c696ace5dd64b14258b52f9417ccb52db4"
dependencies = [
"cfg-if 1.0.0",
- "crossbeam-utils 0.8.4",
+ "crossbeam-utils 0.8.5",
]
[[package]]
@@ -906,8 +914,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "94af6efb46fef72616855b036a624cf27ba656ffc9be1b9a3c931cfc7749a9a9"
dependencies = [
"cfg-if 1.0.0",
- "crossbeam-epoch 0.9.4",
- "crossbeam-utils 0.8.4",
+ "crossbeam-epoch 0.9.5",
+ "crossbeam-utils 0.8.5",
]
[[package]]
@@ -927,12 +935,12 @@ dependencies = [
[[package]]
name = "crossbeam-epoch"
-version = "0.9.4"
+version = "0.9.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "52fb27eab85b17fbb9f6fd667089e07d6a2eb8743d02639ee7f6a7a7729c9c94"
+checksum = "4ec02e091aa634e2c3ada4a392989e7c3116673ef0ac5b72232439094d73b7fd"
dependencies = [
"cfg-if 1.0.0",
- "crossbeam-utils 0.8.4",
+ "crossbeam-utils 0.8.5",
"lazy_static 1.4.0",
"memoffset 0.6.4",
"scopeguard",
@@ -962,11 +970,10 @@ dependencies = [
[[package]]
name = "crossbeam-utils"
-version = "0.8.4"
+version = "0.8.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4feb231f0d4d6af81aed15928e58ecf5816aa62a2393e2c82f46973e92a9a278"
+checksum = "d82cfc11ce7f2c3faef78d8a684447b40d503d9681acebed6cb728d45940c4db"
dependencies = [
- "autocfg 1.0.1",
"cfg-if 1.0.0",
"lazy_static 1.4.0",
]
@@ -997,6 +1004,16 @@ dependencies = [
"subtle 2.4.0",
]
+[[package]]
+name = "crypto-mac"
+version = "0.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "58bcd97a54c7ca5ce2f6eb16f6bede5b0ab5f0055fedc17d2f0b4466e21671ca"
+dependencies = [
+ "generic-array 0.14.4",
+ "subtle 2.4.0",
+]
+
[[package]]
name = "crypto-mac"
version = "0.10.0"
@@ -1076,6 +1093,15 @@ dependencies = [
"rayon",
]
+[[package]]
+name = "derivation-path"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "193388a8c8c75a490b604ff61775e236541b8975e98e5ca1f6ea97d122b7e2db"
+dependencies = [
+ "failure",
+]
+
[[package]]
name = "derivative"
version = "2.2.0"
@@ -1084,7 +1110,7 @@ checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b"
dependencies = [
"proc-macro2 1.0.27",
"quote 1.0.9",
- "syn 1.0.72",
+ "syn 1.0.73",
]
[[package]]
@@ -1096,7 +1122,7 @@ dependencies = [
"convert_case",
"proc-macro2 1.0.27",
"quote 1.0.9",
- "syn 1.0.72",
+ "syn 1.0.73",
]
[[package]]
@@ -1107,7 +1133,7 @@ checksum = "532b4c15dccee12c7044f1fcad956e98410860b22231e44a3b827464797ca7bf"
dependencies = [
"proc-macro2 1.0.27",
"quote 1.0.9",
- "syn 1.0.72",
+ "syn 1.0.73",
]
[[package]]
@@ -1237,18 +1263,44 @@ dependencies = [
[[package]]
name = "ed25519-dalek"
-version = "1.0.0-pre.4"
+version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "21a8a37f4e8b35af971e6db5e3897e7a6344caa3f92f6544f88125a1f5f0035a"
+checksum = "c762bae6dcaf24c4c84667b8579785430908723d5c889f469d76a41d59cc7a9d"
dependencies = [
- "curve25519-dalek 2.1.2",
+ "curve25519-dalek 3.1.0",
"ed25519",
"rand 0.7.3",
"serde",
- "sha2 0.8.2",
+ "serde_bytes",
+ "sha2 0.9.5",
"zeroize",
]
+[[package]]
+name = "ed25519-dalek-bip32"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "057f328f31294b5ab432e6c39642f54afd1531677d6d4ba2905932844cc242f3"
+dependencies = [
+ "derivation-path",
+ "ed25519-dalek",
+ "failure",
+ "hmac 0.9.0",
+ "sha2 0.9.5",
+]
+
+[[package]]
+name = "educe"
+version = "0.4.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f86b50932a01e7ec5c06160492ab660fb19b6bb2a7878030dd6cd68d21df9d4d"
+dependencies = [
+ "enum-ordinalize",
+ "proc-macro2 1.0.27",
+ "quote 1.0.9",
+ "syn 1.0.73",
+]
+
[[package]]
name = "either"
version = "1.6.1"
@@ -1293,7 +1345,20 @@ checksum = "1e94aa31f7c0dc764f57896dc615ddd76fc13b0d5dca7eb6cc5e018a5a09ec06"
dependencies = [
"proc-macro2 1.0.27",
"quote 1.0.9",
- "syn 1.0.72",
+ "syn 1.0.73",
+]
+
+[[package]]
+name = "enum-ordinalize"
+version = "3.1.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b166c9e378360dd5a6666a9604bb4f54ae0cac39023ffbac425e917a2a04fef"
+dependencies = [
+ "num-bigint",
+ "num-traits",
+ "proc-macro2 1.0.27",
+ "quote 1.0.9",
+ "syn 1.0.73",
]
[[package]]
@@ -1308,9 +1373,9 @@ dependencies = [
[[package]]
name = "env_logger"
-version = "0.8.3"
+version = "0.8.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17392a012ea30ef05a610aa97dfb49496e71c9f676b27879922ea5bdf60d9d3f"
+checksum = "a19187fea3ac7e84da7dacf48de0c45d63c6a76f9490dae389aead16c243fce3"
dependencies = [
"atty",
"humantime",
@@ -1494,9 +1559,10 @@ version = "0.1.0"
dependencies = [
"anyhow",
"bincode",
- "env_logger 0.8.3",
+ "env_logger 0.8.4",
"evm-rpc",
"evm-state",
+ "futures-util",
"hex",
"jsonrpc-core",
"jsonrpc-core-client",
@@ -1597,7 +1663,7 @@ dependencies = [
"fixed-hash",
"hex",
"impl-rlp",
- "itertools 0.10.0",
+ "itertools 0.10.1",
"keccak-hash",
"lazy_static 1.4.0",
"log 0.4.14",
@@ -1607,7 +1673,7 @@ dependencies = [
"quickcheck 0.9.2",
"quickcheck_macros 0.9.1",
"rand 0.6.1",
- "rand 0.8.3",
+ "rand 0.8.4",
"rlp",
"rocksdb",
"secp256k1",
@@ -1625,7 +1691,7 @@ name = "evm-utils"
version = "0.1.0"
dependencies = [
"bincode",
- "env_logger 0.8.3",
+ "env_logger 0.8.4",
"evm-rpc",
"evm-state",
"hex",
@@ -1658,7 +1724,7 @@ checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4"
dependencies = [
"proc-macro2 1.0.27",
"quote 1.0.9",
- "syn 1.0.72",
+ "syn 1.0.73",
"synstructure",
]
@@ -1679,11 +1745,10 @@ dependencies = [
[[package]]
name = "fd-lock"
-version = "1.1.1"
+version = "2.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a15bec795244d49f5ee3024bdc6c3883fb035f7f6601d4a4821c3d5d60784454"
+checksum = "0010f02effd88c702318c5dde0463206be67495d0b4d906ba7c0a8f166cc7f06"
dependencies = [
- "failure",
"libc",
"winapi 0.3.9",
]
@@ -1702,7 +1767,7 @@ checksum = "1d34cfa13a63ae058bfa601fe9e313bbdb3746427c1459185464ce0fcf62e1e8"
dependencies = [
"cfg-if 1.0.0",
"libc",
- "redox_syscall 0.2.8",
+ "redox_syscall 0.2.9",
"winapi 0.3.9",
]
@@ -1713,7 +1778,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cfcf0ed7fe52a17a03854ec54a9f76d6d84508d1c0e66bc1793301c73fc8493c"
dependencies = [
"byteorder",
- "rand 0.8.3",
+ "rand 0.8.4",
"rustc-hex",
"static_assertions",
]
@@ -1832,16 +1897,6 @@ version = "0.3.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0402f765d8a89a26043b889b26ce3c4679d268fa6bb22cd7c6aad98340e179d1"
-[[package]]
-name = "futures-cpupool"
-version = "0.1.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ab90cde24b3319636588d0c35fe03b1333857621051837ed769faefb4c2162e4"
-dependencies = [
- "futures 0.1.31",
- "num_cpus",
-]
-
[[package]]
name = "futures-executor"
version = "0.3.15"
@@ -1851,6 +1906,7 @@ dependencies = [
"futures-core",
"futures-task",
"futures-util",
+ "num_cpus",
]
[[package]]
@@ -1869,7 +1925,7 @@ dependencies = [
"proc-macro-hack",
"proc-macro2 1.0.27",
"quote 1.0.9",
- "syn 1.0.72",
+ "syn 1.0.73",
]
[[package]]
@@ -1891,6 +1947,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "feb5c238d27e2bf94ffdfd27b2c29e3df4a68c4193bb6427384259e2bf191967"
dependencies = [
"autocfg 1.0.1",
+ "futures 0.1.31",
"futures-channel",
"futures-core",
"futures-io",
@@ -1898,7 +1955,7 @@ dependencies = [
"futures-sink",
"futures-task",
"memchr",
- "pin-project-lite 0.2.6",
+ "pin-project-lite 0.2.7",
"pin-utils",
"proc-macro-hack",
"proc-macro-nested",
@@ -1997,9 +2054,9 @@ checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574"
[[package]]
name = "globset"
-version = "0.4.6"
+version = "0.4.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c152169ef1e421390738366d2f796655fec62621dabbd0fd476f905934061e4a"
+checksum = "10463d9ff00a2a068db14231982f5132edebad0d7660cd956a1c30292dbcbfbd"
dependencies = [
"aho-corasick",
"bstr",
@@ -2010,11 +2067,11 @@ dependencies = [
[[package]]
name = "goauth"
-version = "0.8.1"
+version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "877c55b7ac37895bd6e4ca0b357c074248358c95e20cf1cf2b462603121f7b87"
+checksum = "d94101e84ede813c04773b0a43396c01b5a3a9376537dbce1125858ae090ae60"
dependencies = [
- "arc-swap",
+ "arc-swap 1.3.0",
"futures 0.3.15",
"log 0.4.14",
"reqwest",
@@ -2023,8 +2080,8 @@ dependencies = [
"serde_json",
"simpl",
"smpl_jwt",
- "time 0.2.26",
- "tokio 0.2.25",
+ "time 0.2.27",
+ "tokio 1.7.1",
]
[[package]]
@@ -2040,40 +2097,41 @@ dependencies = [
[[package]]
name = "h2"
-version = "0.1.26"
+version = "0.2.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a5b34c246847f938a410a03c5458c7fee2274436675e76d8b903c08efc29c462"
+checksum = "5e4728fd124914ad25e99e3d15a9361a879f6620f63cb56bbb08f95abb97a535"
dependencies = [
- "byteorder",
- "bytes 0.4.12",
+ "bytes 0.5.6",
"fnv",
- "futures 0.1.31",
- "http 0.1.21",
+ "futures-core",
+ "futures-sink",
+ "futures-util",
+ "http",
"indexmap",
- "log 0.4.14",
"slab",
- "string",
- "tokio-io",
+ "tokio 0.2.25",
+ "tokio-util 0.3.1",
+ "tracing",
+ "tracing-futures",
]
[[package]]
name = "h2"
-version = "0.2.7"
+version = "0.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5e4728fd124914ad25e99e3d15a9361a879f6620f63cb56bbb08f95abb97a535"
+checksum = "825343c4eef0b63f541f8903f395dc5beb362a979b5799a84062527ef1e37726"
dependencies = [
- "bytes 0.5.6",
+ "bytes 1.0.1",
"fnv",
"futures-core",
"futures-sink",
"futures-util",
- "http 0.2.4",
+ "http",
"indexmap",
"slab",
- "tokio 0.2.25",
- "tokio-util 0.3.1",
+ "tokio 1.7.1",
+ "tokio-util 0.6.7",
"tracing",
- "tracing-futures",
]
[[package]]
@@ -2117,18 +2175,18 @@ dependencies = [
[[package]]
name = "heck"
-version = "0.3.2"
+version = "0.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "87cbf45460356b7deeb5e3415b5563308c0a9b057c85e12b06ad551f98d0a6ac"
+checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c"
dependencies = [
"unicode-segmentation",
]
[[package]]
name = "hermit-abi"
-version = "0.1.18"
+version = "0.1.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "322f4de77956e22ed0e5032c359a0f1273f1f7f0d79bfa3b8ffbc730d7fbcc5c"
+checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
dependencies = [
"libc",
]
@@ -2172,6 +2230,26 @@ dependencies = [
"digest 0.8.1",
]
+[[package]]
+name = "hmac"
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "126888268dcc288495a26bf004b38c5fdbb31682f992c84ceb046a1f0fe38840"
+dependencies = [
+ "crypto-mac 0.8.0",
+ "digest 0.9.0",
+]
+
+[[package]]
+name = "hmac"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "deae6d9dbb35ec2c502d62b8f7b1c000a0822c3b0794ba36b3149c0a1c840dff"
+dependencies = [
+ "crypto-mac 0.9.1",
+ "digest 0.9.0",
+]
+
[[package]]
name = "hmac"
version = "0.10.1"
@@ -2193,17 +2271,6 @@ dependencies = [
"hmac 0.7.1",
]
-[[package]]
-name = "http"
-version = "0.1.21"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d6ccf5ede3a895d8856620237b2f02972c1bbc78d2965ad7fe8838d4a0ed41f0"
-dependencies = [
- "bytes 0.4.12",
- "fnv",
- "itoa",
-]
-
[[package]]
name = "http"
version = "0.2.4"
@@ -2217,24 +2284,23 @@ dependencies = [
[[package]]
name = "http-body"
-version = "0.1.0"
+version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6741c859c1b2463a423a1dbce98d418e6c3c3fc720fb0d45528657320920292d"
+checksum = "13d5ff830006f7646652e057693569bfe0d51760c0085a071769d142a205111b"
dependencies = [
- "bytes 0.4.12",
- "futures 0.1.31",
- "http 0.1.21",
- "tokio-buf",
+ "bytes 0.5.6",
+ "http",
]
[[package]]
name = "http-body"
-version = "0.3.1"
+version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "13d5ff830006f7646652e057693569bfe0d51760c0085a071769d142a205111b"
+checksum = "60daa14be0e0786db0f03a9e57cb404c9d756eed2b6c62b9ea98ec5743ec75a9"
dependencies = [
- "bytes 0.5.6",
- "http 0.2.4",
+ "bytes 1.0.1",
+ "http",
+ "pin-project-lite 0.2.7",
]
[[package]]
@@ -2249,6 +2315,12 @@ version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "494b4d60369511e7dea41cf646832512a94e542f68bb9c49e54518e0f468eb47"
+[[package]]
+name = "httpdate"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6456b8a6c8f33fee7d958fcd1b60d55b11940a79e63ae87013e6d22e26034440"
+
[[package]]
name = "humantime"
version = "2.1.0"
@@ -2276,85 +2348,78 @@ dependencies = [
[[package]]
name = "hyper"
-version = "0.12.36"
+version = "0.13.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c843caf6296fc1f93444735205af9ed4e109a539005abb2564ae1d6fad34c52"
+checksum = "8a6f157065790a3ed2f88679250419b5cdd96e714a0d65f7797fd337186e96bb"
dependencies = [
- "bytes 0.4.12",
- "futures 0.1.31",
- "futures-cpupool",
- "h2 0.1.26",
- "http 0.1.21",
- "http-body 0.1.0",
+ "bytes 0.5.6",
+ "futures-channel",
+ "futures-core",
+ "futures-util",
+ "h2 0.2.7",
+ "http",
+ "http-body 0.3.1",
"httparse",
- "iovec",
+ "httpdate 0.3.2",
"itoa",
- "log 0.4.14",
- "net2",
- "rustc_version 0.2.3",
- "time 0.1.44",
- "tokio 0.1.22",
- "tokio-buf",
- "tokio-executor",
- "tokio-io",
- "tokio-reactor",
- "tokio-tcp",
- "tokio-threadpool",
- "tokio-timer",
- "want 0.2.0",
+ "pin-project",
+ "socket2 0.3.19",
+ "tokio 0.2.25",
+ "tower-service",
+ "tracing",
+ "want",
]
[[package]]
name = "hyper"
-version = "0.13.10"
+version = "0.14.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a6f157065790a3ed2f88679250419b5cdd96e714a0d65f7797fd337186e96bb"
+checksum = "07d6baa1b441335f3ce5098ac421fb6547c46dda735ca1bc6d0153c838f9dd83"
dependencies = [
- "bytes 0.5.6",
+ "bytes 1.0.1",
"futures-channel",
"futures-core",
"futures-util",
- "h2 0.2.7",
- "http 0.2.4",
- "http-body 0.3.1",
+ "h2 0.3.3",
+ "http",
+ "http-body 0.4.2",
"httparse",
- "httpdate",
+ "httpdate 1.0.1",
"itoa",
- "pin-project 1.0.7",
- "socket2",
- "tokio 0.2.25",
+ "pin-project-lite 0.2.7",
+ "socket2 0.4.0",
+ "tokio 1.7.1",
"tower-service",
"tracing",
- "want 0.3.0",
+ "want",
]
[[package]]
name = "hyper-rustls"
-version = "0.21.0"
+version = "0.22.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "37743cc83e8ee85eacfce90f2f4102030d9ff0a95244098d781e9bee4a90abb6"
+checksum = "5f9f7a97316d44c0af9b0301e65010573a853a9fc97046d7331d7f6bc0fd5a64"
dependencies = [
- "bytes 0.5.6",
"futures-util",
- "hyper 0.13.10",
+ "hyper 0.14.9",
"log 0.4.14",
"rustls",
- "tokio 0.2.25",
+ "tokio 1.7.1",
"tokio-rustls",
"webpki",
]
[[package]]
name = "hyper-tls"
-version = "0.4.3"
+version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d979acc56dcb5b8dddba3917601745e877576475aa046df3226eabdecef78eed"
+checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905"
dependencies = [
- "bytes 0.5.6",
- "hyper 0.13.10",
+ "bytes 1.0.1",
+ "hyper 0.14.9",
"native-tls",
- "tokio 0.2.25",
- "tokio-tls 0.3.1",
+ "tokio 1.7.1",
+ "tokio-native-tls",
]
[[package]]
@@ -2470,18 +2535,9 @@ dependencies = [
[[package]]
name = "ipnet"
-version = "2.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "47be2f14c678be2fdcab04ab1171db51b2762ce6f0a8ee87c8dd4a04ed216135"
-
-[[package]]
-name = "itertools"
-version = "0.8.2"
+version = "2.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f56a2d0bc861f9165be4eb3442afd3c236d8a98afd426f65d92324ae1091a484"
-dependencies = [
- "either",
-]
+checksum = "68f2d64f2edebec4ce84ad108148e67e1064789bee435edc5b60ad398714a3a9"
[[package]]
name = "itertools"
@@ -2494,9 +2550,9 @@ dependencies = [
[[package]]
name = "itertools"
-version = "0.10.0"
+version = "0.10.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "37d572918e350e82412fe766d24b15e6682fb2ed2bbe018280caa810397cb319"
+checksum = "69ddb889f9d0d08a67338271fa9b62996bc788c7796a5c18cf057420aaed5eaf"
dependencies = [
"either",
]
@@ -2559,29 +2615,33 @@ dependencies = [
[[package]]
name = "jsonrpc-client-transports"
-version = "15.1.0"
+version = "17.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "489b9c612e60c766f751ab40fcb43cbb55a1e10bb44a9b4307ed510ca598cbd7"
+checksum = "a2f81014e2706fde057e9dcb1036cf6bbf9418d972c597be5c7158c984656722"
dependencies = [
- "failure",
- "futures 0.1.31",
+ "derive_more",
+ "futures 0.3.15",
"jsonrpc-core",
"jsonrpc-pubsub",
+ "jsonrpc-server-utils",
"log 0.4.14",
+ "parity-tokio-ipc",
"serde",
"serde_json",
- "tokio 0.1.22",
+ "tokio 0.2.25",
"url 1.7.2",
"websocket",
]
[[package]]
name = "jsonrpc-core"
-version = "15.1.0"
+version = "17.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0745a6379e3edc893c84ec203589790774e4247420033e71a76d3ab4687991fa"
+checksum = "d4467ab6dfa369b69e52bd0692e480c4d117410538526a57a304a0f2250fd95e"
dependencies = [
- "futures 0.1.31",
+ "futures 0.3.15",
+ "futures-executor",
+ "futures-util",
"log 0.4.14",
"serde",
"serde_derive",
@@ -2590,80 +2650,101 @@ dependencies = [
[[package]]
name = "jsonrpc-core-client"
-version = "15.1.0"
+version = "17.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6f764902d7b891344a0acb65625f32f6f7c6db006952143bd650209fbe7d94db"
+checksum = "5c366c092d6bccc6e7ab44dd635a0f22ab2f201215339915fb7ff9508404f431"
dependencies = [
+ "futures 0.3.15",
"jsonrpc-client-transports",
]
[[package]]
name = "jsonrpc-derive"
-version = "15.1.0"
+version = "17.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "99a847f9ec7bb52149b2786a17c9cb260d6effc6b8eeb8c16b343a487a7563a3"
+checksum = "34f6326966ebac440db89eba788f5a0e5ac2614b4b4bfbdc049a971e71040f32"
dependencies = [
"proc-macro-crate",
"proc-macro2 1.0.27",
"quote 1.0.9",
- "syn 1.0.72",
+ "syn 1.0.73",
]
[[package]]
name = "jsonrpc-http-server"
-version = "15.1.0"
+version = "17.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4fb5c4513b7b542f42da107942b7b759f27120b5cc894729f88254b28dff44b7"
+checksum = "522a047cac0958097ee71d047dd71cb84979fd2fa21c7a68fbe12736bef870a2"
dependencies = [
- "hyper 0.12.36",
+ "futures 0.3.15",
+ "hyper 0.13.10",
"jsonrpc-core",
"jsonrpc-server-utils",
"log 0.4.14",
"net2",
- "parking_lot 0.10.2",
+ "parking_lot 0.11.1",
"unicase 2.6.0",
]
+[[package]]
+name = "jsonrpc-ipc-server"
+version = "17.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b1d782052ef17051d12681bcc2fa2e9e1aabf3f634588125493d63ddcca6fe1"
+dependencies = [
+ "futures 0.3.15",
+ "jsonrpc-core",
+ "jsonrpc-server-utils",
+ "log 0.4.14",
+ "parity-tokio-ipc",
+ "parking_lot 0.11.1",
+ "tower-service",
+]
+
[[package]]
name = "jsonrpc-pubsub"
-version = "15.1.0"
+version = "17.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "639558e0604013be9787ae52f798506ae42bf4220fe587bdc5625871cc8b9c77"
+checksum = "14739e5523a40739882cc34a44ab2dd9356bce5ce102513f5984a9efbe342f3d"
dependencies = [
+ "futures 0.3.15",
"jsonrpc-core",
+ "lazy_static 1.4.0",
"log 0.4.14",
- "parking_lot 0.10.2",
+ "parking_lot 0.11.1",
"rand 0.7.3",
"serde",
]
[[package]]
name = "jsonrpc-server-utils"
-version = "15.1.0"
+version = "17.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "72f1f3990650c033bd8f6bd46deac76d990f9bbfb5f8dc8c4767bf0a00392176"
+checksum = "bce68fa279a2822b3619369cd024f8a4f8e5ce485468834f8679a3c7919aae2d"
dependencies = [
- "bytes 0.4.12",
+ "bytes 0.5.6",
+ "futures 0.3.15",
"globset",
"jsonrpc-core",
"lazy_static 1.4.0",
"log 0.4.14",
- "tokio 0.1.22",
- "tokio-codec",
+ "tokio 0.2.25",
+ "tokio-util 0.3.1",
"unicase 2.6.0",
]
[[package]]
name = "jsonrpc-ws-server"
-version = "15.1.0"
+version = "17.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6596fe75209b73a2a75ebe1dce4e60e03b88a2b25e8807b667597f6315150d22"
+checksum = "b1d267a8649ec37e4452dd7b3f48827c9cdf36de3a3539cf73242c222ba2eb50"
dependencies = [
+ "futures 0.3.15",
"jsonrpc-core",
"jsonrpc-server-utils",
"log 0.4.14",
"parity-ws",
- "parking_lot 0.10.2",
+ "parking_lot 0.11.1",
"slab",
]
@@ -2746,9 +2827,9 @@ dependencies = [
[[package]]
name = "libc"
-version = "0.2.95"
+version = "0.2.97"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "789da6d93f1b866ffe175afc5322a4d76c038605a1c3319bb57b06967ca98a36"
+checksum = "12b8adadd720df158f4d70dfe7ccc6adb0472d7c55ca83445f6a5ab3e36f8fb6"
[[package]]
name = "libloading"
@@ -2772,8 +2853,9 @@ dependencies = [
[[package]]
name = "librocksdb-sys"
-version = "6.15.4"
-source = "git+https://github.com/rust-rocksdb/rust-rocksdb?rev=39b877b#39b877b41aac99f6accee814410c478878a79454"
+version = "6.17.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5da125e1c0f22c7cae785982115523a0738728498547f415c9054cb17c7e89f9"
dependencies = [
"bindgen",
"cc",
@@ -2909,18 +2991,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d"
[[package]]
-name = "mime_guess"
-version = "2.0.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2684d4c2e97d99848d30b324b00c8fcc7e5c897b7cbb5819b09e7c90e8baf212"
-dependencies = [
- "mime 0.3.16",
- "unicase 2.6.0",
-]
-
-[[package]]
-name = "miniz_oxide"
-version = "0.4.4"
+name = "miniz_oxide"
+version = "0.4.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a92518e98c078586bc6c934028adcca4c92a53d6a958196de835170a01d84e4b"
dependencies = [
@@ -2949,9 +3021,9 @@ dependencies = [
[[package]]
name = "mio"
-version = "0.7.11"
+version = "0.7.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf80d3e903b34e0bd7282b218398aec54e082c840d9baf8339e0080a0c542956"
+checksum = "8c2bdb6314ec10835cd3293dd268473a835c02b7b352e788be788b3c6ca6bb16"
dependencies = [
"libc",
"log 0.4.14",
@@ -3107,6 +3179,17 @@ dependencies = [
"winapi 0.3.9",
]
+[[package]]
+name = "num-bigint"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4e0d047c1062aa51e256408c560894e5251f08925980e53cf1aa5bd00eec6512"
+dependencies = [
+ "autocfg 1.0.1",
+ "num-integer",
+ "num-traits",
+]
+
[[package]]
name = "num-derive"
version = "0.3.3"
@@ -3115,7 +3198,7 @@ checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d"
dependencies = [
"proc-macro2 1.0.27",
"quote 1.0.9",
- "syn 1.0.72",
+ "syn 1.0.73",
]
[[package]]
@@ -3166,7 +3249,7 @@ dependencies = [
"proc-macro-crate",
"proc-macro2 1.0.27",
"quote 1.0.9",
- "syn 1.0.72",
+ "syn 1.0.73",
]
[[package]]
@@ -3189,9 +3272,9 @@ checksum = "4eae0151b9dacf24fcc170d9995e511669a082856a91f958a2fe380bfab3fb22"
[[package]]
name = "once_cell"
-version = "1.7.2"
+version = "1.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af8b08b04175473088b46763e51ee54da5f9a164bc162f615b91bc179dbf15a3"
+checksum = "692fcb63b64b1758029e0a96ee63e049ce8c5948587f2f7208df04625e5f6b56"
dependencies = [
"parking_lot 0.11.1",
]
@@ -3216,9 +3299,9 @@ checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5"
[[package]]
name = "openssl"
-version = "0.10.34"
+version = "0.10.35"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6d7830286ad6a3973c0f1d9b73738f69c76b739301d0229c4b96501695cbe4c8"
+checksum = "549430950c79ae24e6d02e0b7404534ecf311d94cc9f861e9e4020187d13d885"
dependencies = [
"bitflags",
"cfg-if 1.0.0",
@@ -3236,9 +3319,9 @@ checksum = "28988d872ab76095a6e6ac88d99b54fd267702734fd7ffe610ca27f533ddb95a"
[[package]]
name = "openssl-sys"
-version = "0.9.63"
+version = "0.9.65"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b6b0d6fb7d80f877617dfcb014e605e2b5ab2fb0afdf27935219bb6bd984cb98"
+checksum = "7a7907e3bfa08bb85105209cdfcb6c63d109f8f6c1ed6ca318fff5c1853fbc1d"
dependencies = [
"autocfg 1.0.1",
"cc",
@@ -3266,7 +3349,7 @@ dependencies = [
"Inflector",
"proc-macro2 1.0.27",
"quote 1.0.9",
- "syn 1.0.72",
+ "syn 1.0.73",
]
[[package]]
@@ -3291,7 +3374,23 @@ dependencies = [
"proc-macro-crate",
"proc-macro2 1.0.27",
"quote 1.0.9",
- "syn 1.0.72",
+ "syn 1.0.73",
+]
+
+[[package]]
+name = "parity-tokio-ipc"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fd7f6c69d7687501b2205fe51ade1d7b8797bb3aa141fe5bf13dd78c0483bc89"
+dependencies = [
+ "futures 0.3.15",
+ "libc",
+ "log 0.4.14",
+ "mio-named-pipes",
+ "miow 0.3.7",
+ "rand 0.7.3",
+ "tokio 0.2.25",
+ "winapi 0.3.9",
]
[[package]]
@@ -3382,7 +3481,7 @@ dependencies = [
"cfg-if 1.0.0",
"instant",
"libc",
- "redox_syscall 0.2.8",
+ "redox_syscall 0.2.9",
"smallvec 1.6.1",
"winapi 0.3.9",
]
@@ -3430,7 +3529,7 @@ checksum = "0f35583365be5d148e959284f42526841917b7bfa09e2d1a7ad5dde2cf0eaa39"
dependencies = [
"proc-macro2 1.0.27",
"quote 1.0.9",
- "syn 1.0.72",
+ "syn 1.0.73",
]
[[package]]
@@ -3449,6 +3548,15 @@ dependencies = [
"crypto-mac 0.7.0",
]
+[[package]]
+name = "pbkdf2"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "216eaa586a190f0a738f2f918511eecfa90f13295abec0e457cdebcceda80cbd"
+dependencies = [
+ "crypto-mac 0.8.0",
+]
+
[[package]]
name = "pbkdf2"
version = "0.6.0"
@@ -3498,33 +3606,13 @@ dependencies = [
"serde_yaml",
]
-[[package]]
-name = "pin-project"
-version = "0.4.28"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "918192b5c59119d51e0cd221f4d49dde9112824ba717369e903c97d076083d0f"
-dependencies = [
- "pin-project-internal 0.4.28",
-]
-
[[package]]
name = "pin-project"
version = "1.0.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c7509cc106041c40a4518d2af7a61530e1eed0e6285296a3d8c5472806ccc4a4"
dependencies = [
- "pin-project-internal 1.0.7",
-]
-
-[[package]]
-name = "pin-project-internal"
-version = "0.4.28"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3be26700300be6d9d23264c73211d8190e755b6b5ca7a1b28230025511b52a5e"
-dependencies = [
- "proc-macro2 1.0.27",
- "quote 1.0.9",
- "syn 1.0.72",
+ "pin-project-internal",
]
[[package]]
@@ -3535,7 +3623,7 @@ checksum = "48c950132583b500556b1efd71d45b319029f2b71518d979fcc208e16b42426f"
dependencies = [
"proc-macro2 1.0.27",
"quote 1.0.9",
- "syn 1.0.72",
+ "syn 1.0.73",
]
[[package]]
@@ -3546,9 +3634,9 @@ checksum = "257b64915a082f7811703966789728173279bdebb956b143dbcd23f6f970a777"
[[package]]
name = "pin-project-lite"
-version = "0.2.6"
+version = "0.2.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dc0e1f259c92177c30a4c9d177246edd0a3568b25756a977d0632cf8fa37e905"
+checksum = "8d31d11c69a6b52a174b42bdc0c30e5e11670f90788b2c471c31c1d17d449443"
[[package]]
name = "pin-utils"
@@ -3665,7 +3753,7 @@ dependencies = [
"proc-macro-error-attr",
"proc-macro2 1.0.27",
"quote 1.0.9",
- "syn 1.0.72",
+ "syn 1.0.73",
"version_check 0.9.3",
]
@@ -3712,37 +3800,46 @@ dependencies = [
[[package]]
name = "prost"
-version = "0.6.1"
+version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ce49aefe0a6144a45de32927c77bd2859a5f7677b55f220ae5b744e87389c212"
+checksum = "9e6984d2f1a23009bd270b8bb56d0926810a3d483f59c987d77969e9d8e840b2"
dependencies = [
- "bytes 0.5.6",
+ "bytes 1.0.1",
"prost-derive",
]
[[package]]
name = "prost-derive"
-version = "0.6.1"
+version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "537aa19b95acde10a12fec4301466386f757403de4cd4e5b4fa78fb5ecb18f72"
+checksum = "169a15f3008ecb5160cba7d37bcd690a7601b6d30cfb87a117d45e59d52af5d4"
dependencies = [
"anyhow",
- "itertools 0.8.2",
+ "itertools 0.9.0",
"proc-macro2 1.0.27",
"quote 1.0.9",
- "syn 1.0.72",
+ "syn 1.0.73",
]
[[package]]
name = "prost-types"
-version = "0.6.1"
+version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1834f67c0697c001304b75be76f67add9c89742eda3a085ad8ee0bb38c3417aa"
+checksum = "b518d7cdd93dab1d1122cf07fa9a60771836c668dde9d9e2a139f957f0d9f1bb"
dependencies = [
- "bytes 0.5.6",
+ "bytes 1.0.1",
"prost",
]
+[[package]]
+name = "qstring"
+version = "0.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d464fae65fff2680baf48019211ce37aaec0c78e9264c84a3e484717f965104e"
+dependencies = [
+ "percent-encoding 2.1.0",
+]
+
[[package]]
name = "quickcheck"
version = "0.9.2"
@@ -3761,9 +3858,9 @@ version = "1.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "588f6378e4dd99458b60ec275b4477add41ce4fa9f64dcba6f15adccb19b50d6"
dependencies = [
- "env_logger 0.8.3",
+ "env_logger 0.8.4",
"log 0.4.14",
- "rand 0.8.3",
+ "rand 0.8.4",
]
[[package]]
@@ -3774,7 +3871,7 @@ checksum = "608c156fd8e97febc07dc9c2e2c80bf74cfc6ef26893eae3daf8bc2bc94a4b7f"
dependencies = [
"proc-macro2 1.0.27",
"quote 1.0.9",
- "syn 1.0.72",
+ "syn 1.0.73",
]
[[package]]
@@ -3785,7 +3882,7 @@ checksum = "b22a693222d716a9587786f37ac3f6b4faedb5b80c23914e7303ff5a1d8016e9"
dependencies = [
"proc-macro2 1.0.27",
"quote 1.0.9",
- "syn 1.0.72",
+ "syn 1.0.73",
]
[[package]]
@@ -3876,14 +3973,14 @@ dependencies = [
[[package]]
name = "rand"
-version = "0.8.3"
+version = "0.8.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0ef9e7e66b4468674bfcb0c81af8b7fa0bb154fa9f28eb840da5c447baeb8d7e"
+checksum = "2e7573632e6454cf6b99d7aac4ccca54be06da05aca2ef7423d22d27d4d4bcd8"
dependencies = [
"libc",
- "rand_chacha 0.3.0",
- "rand_core 0.6.2",
- "rand_hc 0.3.0",
+ "rand_chacha 0.3.1",
+ "rand_core 0.6.3",
+ "rand_hc 0.3.1",
]
[[package]]
@@ -3908,12 +4005,12 @@ dependencies = [
[[package]]
name = "rand_chacha"
-version = "0.3.0"
+version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e12735cf05c9e10bf21534da50a147b924d555dc7a547c42e6bb2d5b6017ae0d"
+checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
dependencies = [
"ppv-lite86",
- "rand_core 0.6.2",
+ "rand_core 0.6.3",
]
[[package]]
@@ -3942,9 +4039,9 @@ dependencies = [
[[package]]
name = "rand_core"
-version = "0.6.2"
+version = "0.6.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "34cf66eb183df1c5876e2dcf6b13d57340741e8dc255b48e40a26de954d06ae7"
+checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7"
dependencies = [
"getrandom 0.2.3",
]
@@ -3969,11 +4066,11 @@ dependencies = [
[[package]]
name = "rand_hc"
-version = "0.3.0"
+version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3190ef7066a446f2e7f42e239d161e905420ccab01eb967c9eb27d21b2322a73"
+checksum = "d51e9f596de227fda2ea6c84607f5558e196eeaf43c986b724ba4fb8fdf497e7"
dependencies = [
- "rand_core 0.6.2",
+ "rand_core 0.6.3",
]
[[package]]
@@ -4039,7 +4136,7 @@ checksum = "d78120e2c850279833f1dd3582f730c4ab53ed95aeaaaa862a2a5c71b1656d8e"
dependencies = [
"crossbeam-channel 0.5.1",
"crossbeam-deque 0.8.0",
- "crossbeam-utils 0.8.4",
+ "crossbeam-utils 0.8.5",
"lazy_static 1.4.0",
"num_cpus",
]
@@ -4061,9 +4158,9 @@ checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce"
[[package]]
name = "redox_syscall"
-version = "0.2.8"
+version = "0.2.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "742739e41cd49414de871ea5e549afb7e2a3ac77b589bcbebe8c82fab37147fc"
+checksum = "5ab49abadf3f9e1c4bc499e8845e152ad87d2ad2d30371841171169e9d75feee"
dependencies = [
"bitflags",
]
@@ -4075,7 +4172,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "528532f3d801c87aec9def2add9ca802fe569e44a544afe633765267840abe64"
dependencies = [
"getrandom 0.2.3",
- "redox_syscall 0.2.8",
+ "redox_syscall 0.2.9",
]
[[package]]
@@ -4102,12 +4199,9 @@ dependencies = [
[[package]]
name = "regex-automata"
-version = "0.1.9"
+version = "0.1.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ae1ded71d66a4a97f5e961fd0cb25a5f366a42a41570d16a763a69c092c26ae4"
-dependencies = [
- "byteorder",
-]
+checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132"
[[package]]
name = "regex-syntax"
@@ -4126,18 +4220,18 @@ dependencies = [
[[package]]
name = "reqwest"
-version = "0.10.10"
+version = "0.11.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0718f81a8e14c4dbb3b34cf23dc6aaf9ab8a0dfec160c534b3dbca1aaa21f47c"
+checksum = "246e9f61b9bb77df069a947682be06e31ac43ea37862e244a69f177694ea6d22"
dependencies = [
"base64 0.13.0",
- "bytes 0.5.6",
+ "bytes 1.0.1",
"encoding_rs",
"futures-core",
"futures-util",
- "http 0.2.4",
- "http-body 0.3.1",
- "hyper 0.13.10",
+ "http",
+ "http-body 0.4.2",
+ "hyper 0.14.9",
"hyper-rustls",
"hyper-tls",
"ipnet",
@@ -4145,17 +4239,16 @@ dependencies = [
"lazy_static 1.4.0",
"log 0.4.14",
"mime 0.3.16",
- "mime_guess",
"native-tls",
"percent-encoding 2.1.0",
- "pin-project-lite 0.2.6",
+ "pin-project-lite 0.2.7",
"rustls",
"serde",
"serde_json",
"serde_urlencoded",
- "tokio 0.2.25",
+ "tokio 1.7.1",
+ "tokio-native-tls",
"tokio-rustls",
- "tokio-tls 0.3.1",
"url 2.2.2",
"wasm-bindgen",
"wasm-bindgen-futures",
@@ -4214,13 +4307,14 @@ checksum = "e33d7b2abe0c340d8797fe2907d3f20d3b5ea5908683618bfe80df7f621f672a"
dependencies = [
"proc-macro2 1.0.27",
"quote 1.0.9",
- "syn 1.0.72",
+ "syn 1.0.73",
]
[[package]]
name = "rocksdb"
-version = "0.15.0"
-source = "git+https://github.com/rust-rocksdb/rust-rocksdb?rev=39b877b#39b877b41aac99f6accee814410c478878a79454"
+version = "0.16.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c749134fda8bfc90d0de643d59bfc841dcb3ac8a1062e12b6754bd60235c48b3"
dependencies = [
"libc",
"librocksdb-sys",
@@ -4238,9 +4332,9 @@ dependencies = [
[[package]]
name = "rustc-demangle"
-version = "0.1.19"
+version = "0.1.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "410f7acf3cb3a44527c5d9546bad4bf4e6c460915d5f9f2fc524498bfe8f70ce"
+checksum = "dead70b0b5e03e9c814bcb6b01e03e68f7c57a80aa48c72ec92152ab3e818d49"
[[package]]
name = "rustc-hash"
@@ -4280,11 +4374,11 @@ dependencies = [
[[package]]
name = "rustls"
-version = "0.18.1"
+version = "0.19.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5d1126dcf58e93cee7d098dbda643b5f92ed724f1f6a63007c1116eed6700c81"
+checksum = "35edb675feee39aec9c99fa5ff985081995a06d594114ae14cbe797ad7b7a6d7"
dependencies = [
- "base64 0.12.3",
+ "base64 0.13.0",
"log 0.4.14",
"ring",
"sct",
@@ -4351,7 +4445,7 @@ checksum = "aaaae8f38bb311444cfb7f1979af0bc9240d95795f75f9ceddf6a59b79ceffa0"
dependencies = [
"proc-macro2 1.0.27",
"quote 1.0.9",
- "syn 1.0.72",
+ "syn 1.0.73",
]
[[package]]
@@ -4399,9 +4493,9 @@ dependencies = [
[[package]]
name = "security-framework"
-version = "2.2.0"
+version = "2.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3670b1d2fdf6084d192bc71ead7aabe6c06aa2ea3fbd9cc3ac111fa5c2b1bd84"
+checksum = "23a2ac85147a3a11d77ecf1bc7166ec0b92febfa4461c37944e180f319ece467"
dependencies = [
"bitflags",
"core-foundation",
@@ -4412,9 +4506,9 @@ dependencies = [
[[package]]
name = "security-framework-sys"
-version = "2.2.0"
+version = "2.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3676258fd3cfe2c9a0ec99ce3038798d847ce3e4bb17746373eb9f0f1ac16339"
+checksum = "7e4effb91b4b8b6fb7732e670b6cee160278ff8e6bf485c7805d9e319d76e284"
dependencies = [
"core-foundation-sys",
"libc",
@@ -4490,7 +4584,7 @@ checksum = "963a7dbc9895aeac7ac90e74f34a5d5261828f79df35cbed41e10189d3804d43"
dependencies = [
"proc-macro2 1.0.27",
"quote 1.0.9",
- "syn 1.0.72",
+ "syn 1.0.73",
]
[[package]]
@@ -4547,7 +4641,7 @@ checksum = "d08338d8024b227c62bd68a12c7c9883f5c66780abaef15c550dc56f46ee6515"
dependencies = [
"proc-macro2 1.0.27",
"quote 1.0.9",
- "syn 1.0.72",
+ "syn 1.0.73",
]
[[package]]
@@ -4648,9 +4742,9 @@ dependencies = [
[[package]]
name = "signal-hook-registry"
-version = "1.3.0"
+version = "1.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "16f1d0fef1604ba8f7a073c7e701f213e056707210e9020af4528e0101ce11a6"
+checksum = "e51e73328dc4ac0c7ccbda3a494dfa03df1de2f46018127f60c693f2648455b0"
dependencies = [
"libc",
]
@@ -4703,18 +4797,18 @@ checksum = "fe0f37c9e8f3c5a4a66ad655a93c74daac4ad00c441533bf5c6e7990bb42604e"
[[package]]
name = "smpl_jwt"
-version = "0.5.0"
+version = "0.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "547e9c1059500ce0fe6cfa325f868b5621214957922be60a49d86e3e844ee9dc"
+checksum = "4370044f8b20f944e05c35d77edd3518e6f21fc4de77e593919f287c6a3f428a"
dependencies = [
- "base64 0.12.3",
+ "base64 0.13.0",
"log 0.4.14",
"openssl",
"serde",
"serde_derive",
"serde_json",
"simpl",
- "time 0.2.26",
+ "time 0.2.27",
]
[[package]]
@@ -4735,7 +4829,7 @@ checksum = "1508efa03c362e23817f96cde18abed596a25219a8b2c66e8db33c03543d315b"
dependencies = [
"proc-macro2 1.0.27",
"quote 1.0.9",
- "syn 1.0.72",
+ "syn 1.0.73",
]
[[package]]
@@ -4749,9 +4843,19 @@ dependencies = [
"winapi 0.3.9",
]
+[[package]]
+name = "socket2"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9e3dfc207c526015c632472a77be09cf1b6e46866581aecae5cc38fb4235dea2"
+dependencies = [
+ "libc",
+ "winapi 0.3.9",
+]
+
[[package]]
name = "solana-account-decoder"
-version = "1.5.19"
+version = "1.6.14"
dependencies = [
"Inflector",
"base64 0.12.3",
@@ -4774,23 +4878,47 @@ dependencies = [
[[package]]
name = "solana-accounts-bench"
-version = "1.5.19"
+version = "1.6.14"
dependencies = [
"clap",
"crossbeam-channel 0.4.4",
"log 0.4.14",
"rand 0.7.3",
"rayon",
- "solana-logger 1.5.19",
+ "solana-logger 1.6.14",
"solana-measure",
"solana-runtime",
"solana-sdk",
"solana-version",
]
+[[package]]
+name = "solana-accounts-cluster-bench"
+version = "1.6.14"
+dependencies = [
+ "clap",
+ "log 0.4.14",
+ "rand 0.7.3",
+ "rayon",
+ "solana-account-decoder",
+ "solana-clap-utils",
+ "solana-client",
+ "solana-core",
+ "solana-faucet",
+ "solana-local-cluster",
+ "solana-logger 1.6.14",
+ "solana-measure",
+ "solana-net-utils",
+ "solana-runtime",
+ "solana-sdk",
+ "solana-transaction-status",
+ "solana-version",
+ "spl-token",
+]
+
[[package]]
name = "solana-banking-bench"
-version = "1.5.19"
+version = "1.6.14"
dependencies = [
"clap",
"crossbeam-channel 0.4.4",
@@ -4800,7 +4928,7 @@ dependencies = [
"solana-clap-utils",
"solana-core",
"solana-ledger",
- "solana-logger 1.5.19",
+ "solana-logger 1.6.14",
"solana-measure",
"solana-perf",
"solana-runtime",
@@ -4811,54 +4939,55 @@ dependencies = [
[[package]]
name = "solana-banks-client"
-version = "1.5.19"
+version = "1.6.14"
dependencies = [
"bincode",
"borsh",
"borsh-derive",
"futures 0.3.15",
- "mio 0.7.11",
+ "mio 0.7.13",
"solana-banks-interface",
"solana-banks-server",
- "solana-program 1.5.19",
+ "solana-program 1.6.14",
"solana-runtime",
"solana-sdk",
"tarpc",
- "tokio 0.3.7",
+ "tokio 1.7.1",
"tokio-serde",
]
[[package]]
name = "solana-banks-interface"
-version = "1.5.19"
+version = "1.6.14"
dependencies = [
- "mio 0.7.11",
+ "mio 0.7.13",
"serde",
"solana-sdk",
"tarpc",
- "tokio 0.3.7",
+ "tokio 1.7.1",
]
[[package]]
name = "solana-banks-server"
-version = "1.5.19"
+version = "1.6.14"
dependencies = [
"bincode",
"futures 0.3.15",
"log 0.4.14",
- "mio 0.7.11",
+ "mio 0.7.13",
"solana-banks-interface",
"solana-metrics",
"solana-runtime",
"solana-sdk",
"tarpc",
- "tokio 0.3.7",
+ "tokio 1.7.1",
"tokio-serde",
+ "tokio-stream",
]
[[package]]
name = "solana-bench-exchange"
-version = "1.5.19"
+version = "1.6.14"
dependencies = [
"clap",
"itertools 0.9.0",
@@ -4876,7 +5005,7 @@ dependencies = [
"solana-faucet",
"solana-genesis",
"solana-local-cluster",
- "solana-logger 1.5.19",
+ "solana-logger 1.6.14",
"solana-metrics",
"solana-net-utils",
"solana-runtime",
@@ -4886,11 +5015,11 @@ dependencies = [
[[package]]
name = "solana-bench-streamer"
-version = "1.5.19"
+version = "1.6.14"
dependencies = [
"clap",
"solana-clap-utils",
- "solana-logger 1.5.19",
+ "solana-logger 1.6.14",
"solana-net-utils",
"solana-streamer",
"solana-version",
@@ -4898,7 +5027,7 @@ dependencies = [
[[package]]
name = "solana-bench-tps"
-version = "1.5.19"
+version = "1.6.14"
dependencies = [
"bincode",
"clap",
@@ -4907,14 +5036,13 @@ dependencies = [
"serde_json",
"serde_yaml",
"serial_test",
- "serial_test_derive",
"solana-clap-utils",
"solana-client",
"solana-core",
"solana-faucet",
"solana-genesis",
"solana-local-cluster",
- "solana-logger 1.5.19",
+ "solana-logger 1.6.14",
"solana-measure",
"solana-metrics",
"solana-net-utils",
@@ -4944,7 +5072,7 @@ dependencies = [
"solana-faucet",
"solana-genesis",
"solana-local-cluster",
- "solana-logger 1.5.19",
+ "solana-logger 1.6.14",
"solana-measure",
"solana-metrics",
"solana-net-utils",
@@ -4955,17 +5083,18 @@ dependencies = [
[[package]]
name = "solana-bpf-loader-program"
-version = "1.5.19"
+version = "1.6.14"
dependencies = [
"bincode",
"byteorder",
- "curve25519-dalek 3.1.0",
"log 0.4.14",
"num-derive",
"num-traits",
"rand 0.7.3",
- "rand_core 0.6.2",
+ "rand_core 0.6.3",
"rustversion",
+ "sha3 0.9.1",
+ "solana-measure",
"solana-runtime",
"solana-sdk",
"solana_rbpf",
@@ -4974,7 +5103,7 @@ dependencies = [
[[package]]
name = "solana-budget-program"
-version = "1.5.19"
+version = "1.6.14"
dependencies = [
"bincode",
"chrono",
@@ -4990,16 +5119,19 @@ dependencies = [
[[package]]
name = "solana-cargo-build-bpf"
-version = "1.5.19"
+version = "1.6.14"
dependencies = [
+ "bzip2",
"cargo_metadata",
"clap",
+ "solana-download-utils",
"solana-sdk",
+ "tar",
]
[[package]]
name = "solana-cargo-test-bpf"
-version = "1.5.19"
+version = "1.6.14"
dependencies = [
"cargo_metadata",
"clap",
@@ -5007,22 +5139,23 @@ dependencies = [
[[package]]
name = "solana-clap-utils"
-version = "1.5.19"
+version = "1.6.14"
dependencies = [
"chrono",
"clap",
"rpassword",
"solana-remote-wallet",
"solana-sdk",
+ "tempfile",
"thiserror",
- "tiny-bip39",
+ "tiny-bip39 0.8.0",
"uriparse",
"url 2.2.2",
]
[[package]]
name = "solana-cli"
-version = "1.5.19"
+version = "1.6.14"
dependencies = [
"Inflector",
"bincode",
@@ -5051,7 +5184,7 @@ dependencies = [
"solana-config-program",
"solana-core",
"solana-faucet",
- "solana-logger 1.5.19",
+ "solana-logger 1.6.14",
"solana-net-utils",
"solana-remote-wallet",
"solana-sdk",
@@ -5060,15 +5193,16 @@ dependencies = [
"solana-version",
"solana-vote-program",
"solana_rbpf",
+ "spl-memo",
"tempfile",
"thiserror",
- "tiny-bip39",
+ "tiny-bip39 0.7.3",
"url 2.2.2",
]
[[package]]
name = "solana-cli-config"
-version = "1.5.19"
+version = "1.6.14"
dependencies = [
"dirs-next",
"lazy_static 1.4.0",
@@ -5080,7 +5214,7 @@ dependencies = [
[[package]]
name = "solana-cli-output"
-version = "1.5.19"
+version = "1.6.14"
dependencies = [
"Inflector",
"base64 0.13.0",
@@ -5098,11 +5232,12 @@ dependencies = [
"solana-stake-program",
"solana-transaction-status",
"solana-vote-program",
+ "spl-memo",
]
[[package]]
name = "solana-client"
-version = "1.5.19"
+version = "1.6.14"
dependencies = [
"assert_matches",
"base64 0.13.0",
@@ -5126,7 +5261,7 @@ dependencies = [
"solana-account-decoder",
"solana-clap-utils",
"solana-faucet",
- "solana-logger 1.5.19",
+ "solana-logger 1.6.14",
"solana-net-utils",
"solana-sdk",
"solana-stake-program",
@@ -5134,27 +5269,28 @@ dependencies = [
"solana-version",
"solana-vote-program",
"thiserror",
+ "tokio 1.7.1",
"tungstenite",
"url 2.2.2",
]
[[package]]
name = "solana-config-program"
-version = "1.5.19"
+version = "1.6.14"
dependencies = [
"bincode",
"chrono",
"log 0.4.14",
- "rand_core 0.6.2",
+ "rand_core 0.6.3",
"serde",
"serde_derive",
- "solana-logger 1.5.19",
+ "solana-logger 1.6.14",
"solana-sdk",
]
[[package]]
name = "solana-core"
-version = "1.5.19"
+version = "1.6.14"
dependencies = [
"ahash 0.6.3",
"anyhow",
@@ -5164,7 +5300,6 @@ dependencies = [
"bs58",
"bv",
"byteorder",
- "bytes 0.4.12",
"chrono",
"core_affinity",
"crossbeam-channel 0.4.4",
@@ -5182,6 +5317,7 @@ dependencies = [
"jsonrpc-http-server",
"jsonrpc-pubsub",
"jsonrpc-ws-server",
+ "libc",
"log 0.4.14",
"lru",
"matches",
@@ -5192,6 +5328,7 @@ dependencies = [
"primitive-types",
"rand 0.7.3",
"rand_chacha 0.2.2",
+ "rand_core 0.6.3",
"raptorq",
"rayon",
"regex",
@@ -5199,14 +5336,12 @@ dependencies = [
"retain_mut",
"rlp",
"rustc_version 0.2.3",
- "rustversion",
"secp256k1",
"serde",
"serde_bytes",
"serde_derive",
"serde_json",
"serial_test",
- "serial_test_derive",
"sha3 0.9.1",
"snafu",
"solana-account-decoder",
@@ -5215,10 +5350,10 @@ dependencies = [
"solana-client",
"solana-evm-loader-program",
"solana-faucet",
- "solana-frozen-abi 1.5.19",
- "solana-frozen-abi-macro 1.5.19",
+ "solana-frozen-abi 1.6.14",
+ "solana-frozen-abi-macro 1.6.14",
"solana-ledger",
- "solana-logger 1.5.19",
+ "solana-logger 1.6.14",
"solana-measure",
"solana-merkle-tree",
"solana-metrics",
@@ -5236,21 +5371,20 @@ dependencies = [
"solana-version",
"solana-vote-program",
"spl-token",
+ "symlink",
"systemstat",
"tempfile",
"thiserror",
- "tokio 0.1.22",
"tokio 0.2.25",
- "tokio-codec",
- "tokio-fs",
- "tokio-io",
+ "tokio 1.7.1",
+ "tokio-util 0.3.1",
"trees",
"velas-account-program",
]
[[package]]
name = "solana-crate-features"
-version = "1.5.19"
+version = "1.6.14"
dependencies = [
"backtrace",
"bytes 0.4.12",
@@ -5265,14 +5399,14 @@ dependencies = [
"reqwest",
"serde",
"syn 0.15.44",
- "syn 1.0.72",
+ "syn 1.0.73",
"tokio 0.1.22",
"winapi 0.3.9",
]
[[package]]
name = "solana-dos"
-version = "1.5.19"
+version = "1.6.14"
dependencies = [
"bincode",
"clap",
@@ -5283,7 +5417,7 @@ dependencies = [
"solana-client",
"solana-core",
"solana-ledger",
- "solana-logger 1.5.19",
+ "solana-logger 1.6.14",
"solana-net-utils",
"solana-runtime",
"solana-sdk",
@@ -5292,7 +5426,7 @@ dependencies = [
[[package]]
name = "solana-download-utils"
-version = "1.5.19"
+version = "1.6.14"
dependencies = [
"bzip2",
"console 0.11.3",
@@ -5327,13 +5461,13 @@ dependencies = [
"sha3 0.9.1",
"simple_logger",
"snafu",
- "solana-logger 1.5.19",
+ "solana-logger 1.6.14",
"solana-sdk",
]
[[package]]
name = "solana-exchange-program"
-version = "1.5.19"
+version = "1.6.14"
dependencies = [
"bincode",
"log 0.4.14",
@@ -5341,7 +5475,7 @@ dependencies = [
"num-traits",
"serde",
"serde_derive",
- "solana-logger 1.5.19",
+ "solana-logger 1.6.14",
"solana-metrics",
"solana-runtime",
"solana-sdk",
@@ -5350,7 +5484,7 @@ dependencies = [
[[package]]
name = "solana-failure-program"
-version = "1.5.19"
+version = "1.6.14"
dependencies = [
"solana-runtime",
"solana-sdk",
@@ -5358,7 +5492,7 @@ dependencies = [
[[package]]
name = "solana-faucet"
-version = "1.5.19"
+version = "1.6.14"
dependencies = [
"bincode",
"byteorder",
@@ -5368,18 +5502,18 @@ dependencies = [
"serde_derive",
"solana-clap-utils",
"solana-cli-config",
- "solana-logger 1.5.19",
+ "solana-logger 1.6.14",
"solana-metrics",
"solana-sdk",
"solana-version",
- "spl-memo 3.0.0",
+ "spl-memo",
"thiserror",
- "tokio 0.3.7",
+ "tokio 1.7.1",
]
[[package]]
name = "solana-frozen-abi"
-version = "1.5.19"
+version = "1.6.14"
dependencies = [
"bs58",
"bv",
@@ -5390,16 +5524,16 @@ dependencies = [
"serde",
"serde_derive",
"sha2 0.9.5",
- "solana-frozen-abi-macro 1.5.19",
- "solana-logger 1.5.19",
+ "solana-frozen-abi-macro 1.6.14",
+ "solana-logger 1.6.14",
"thiserror",
]
[[package]]
name = "solana-frozen-abi"
-version = "1.6.10"
+version = "1.7.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "03201ac63bad0f18339e1631b75d10b18d4a0a0adef5551298174fb8346cf6de"
+checksum = "dc00a9f7c3eb2fb8687d34ce6d8672fbf7bd8f67002a5f75ccd6f6c4e8cd8a91"
dependencies = [
"bs58",
"bv",
@@ -5410,38 +5544,37 @@ dependencies = [
"serde",
"serde_derive",
"sha2 0.9.5",
- "solana-frozen-abi-macro 1.6.10",
- "solana-logger 1.6.10",
+ "solana-frozen-abi-macro 1.7.3",
+ "solana-logger 1.7.3",
"thiserror",
]
[[package]]
name = "solana-frozen-abi-macro"
-version = "1.5.19"
+version = "1.6.14"
dependencies = [
"lazy_static 1.4.0",
"proc-macro2 1.0.27",
"quote 1.0.9",
"rustc_version 0.2.3",
- "syn 1.0.72",
+ "syn 1.0.73",
]
[[package]]
name = "solana-frozen-abi-macro"
-version = "1.6.10"
+version = "1.7.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7817d332895c39ee895508c1327bef17eb35e34fbdc5b06ca4ae26649a0392d5"
+checksum = "bc381a29ab68515e69dcfad633ab78dd98d83c0b959c2cae9a9a98df6e265acf"
dependencies = [
- "lazy_static 1.4.0",
"proc-macro2 1.0.27",
"quote 1.0.9",
"rustc_version 0.2.3",
- "syn 1.0.72",
+ "syn 1.0.73",
]
[[package]]
name = "solana-genesis"
-version = "1.5.19"
+version = "1.6.14"
dependencies = [
"base64 0.12.3",
"chrono",
@@ -5459,7 +5592,7 @@ dependencies = [
"solana-evm-loader-program",
"solana-exchange-program",
"solana-ledger",
- "solana-logger 1.5.19",
+ "solana-logger 1.6.14",
"solana-runtime",
"solana-sdk",
"solana-stake-program",
@@ -5469,9 +5602,25 @@ dependencies = [
"tempfile",
]
+[[package]]
+name = "solana-keygen"
+version = "1.6.14"
+dependencies = [
+ "bs58",
+ "clap",
+ "dirs-next",
+ "num_cpus",
+ "solana-clap-utils",
+ "solana-cli-config",
+ "solana-remote-wallet",
+ "solana-sdk",
+ "solana-version",
+ "tiny-bip39 0.7.3",
+]
+
[[package]]
name = "solana-ledger"
-version = "1.5.19"
+version = "1.6.14"
dependencies = [
"assert_matches",
"bincode",
@@ -5505,9 +5654,9 @@ dependencies = [
"solana-account-decoder",
"solana-bpf-loader-program",
"solana-budget-program",
- "solana-frozen-abi 1.5.19",
- "solana-frozen-abi-macro 1.5.19",
- "solana-logger 1.5.19",
+ "solana-frozen-abi 1.6.14",
+ "solana-frozen-abi-macro 1.6.14",
+ "solana-logger 1.6.14",
"solana-measure",
"solana-merkle-tree",
"solana-metrics",
@@ -5522,13 +5671,14 @@ dependencies = [
"solana-vote-program",
"tempfile",
"thiserror",
- "tokio 0.2.25",
+ "tokio 1.7.1",
+ "tokio-stream",
"trees",
]
[[package]]
name = "solana-ledger-tool"
-version = "1.5.19"
+version = "1.6.14"
dependencies = [
"assert_cmd",
"bs58",
@@ -5550,7 +5700,7 @@ dependencies = [
"solana-clap-utils",
"solana-cli-output",
"solana-ledger",
- "solana-logger 1.5.19",
+ "solana-logger 1.6.14",
"solana-measure",
"solana-runtime",
"solana-sdk",
@@ -5560,12 +5710,12 @@ dependencies = [
"solana-version",
"solana-vote-program",
"tempfile",
- "tokio 0.2.25",
+ "tokio 1.7.1",
]
[[package]]
name = "solana-local-cluster"
-version = "1.5.19"
+version = "1.6.14"
dependencies = [
"assert_matches",
"crossbeam-channel 0.4.4",
@@ -5576,7 +5726,6 @@ dependencies = [
"rand 0.7.3",
"rayon",
"serial_test",
- "serial_test_derive",
"solana-client",
"solana-config-program",
"solana-core",
@@ -5584,7 +5733,7 @@ dependencies = [
"solana-exchange-program",
"solana-faucet",
"solana-ledger",
- "solana-logger 1.5.19",
+ "solana-logger 1.6.14",
"solana-rayon-threadlimit",
"solana-runtime",
"solana-sdk",
@@ -5596,40 +5745,40 @@ dependencies = [
[[package]]
name = "solana-log-analyzer"
-version = "1.5.19"
+version = "1.6.14"
dependencies = [
"byte-unit",
"clap",
"serde",
"serde_json",
"solana-clap-utils",
- "solana-logger 1.5.19",
+ "solana-logger 1.6.14",
"solana-version",
]
[[package]]
name = "solana-logger"
-version = "1.5.19"
+version = "1.6.14"
dependencies = [
- "env_logger 0.8.3",
+ "env_logger 0.8.4",
"lazy_static 1.4.0",
"log 0.4.14",
]
[[package]]
name = "solana-logger"
-version = "1.6.10"
+version = "1.7.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3ff64fd45c789b34870b58c48c27f2c137b95a446e3a359873608468d3efe77f"
+checksum = "62f8e4921602f61681d8d29d2606d4f8e1c848d4f6b9964813bfc1b457dfd7ce"
dependencies = [
- "env_logger 0.8.3",
+ "env_logger 0.8.4",
"lazy_static 1.4.0",
"log 0.4.14",
]
[[package]]
name = "solana-measure"
-version = "1.5.19"
+version = "1.6.14"
dependencies = [
"jemalloc-ctl",
"jemallocator",
@@ -5640,11 +5789,11 @@ dependencies = [
[[package]]
name = "solana-merkle-root-bench"
-version = "1.5.19"
+version = "1.6.14"
dependencies = [
"clap",
"log 0.4.14",
- "solana-logger 1.5.19",
+ "solana-logger 1.6.14",
"solana-measure",
"solana-runtime",
"solana-sdk",
@@ -5653,44 +5802,43 @@ dependencies = [
[[package]]
name = "solana-merkle-tree"
-version = "1.5.19"
+version = "1.6.14"
dependencies = [
"fast-math",
"hex",
"matches",
- "solana-program 1.5.19",
+ "solana-program 1.6.14",
]
[[package]]
name = "solana-metrics"
-version = "1.5.19"
+version = "1.6.14"
dependencies = [
- "env_logger 0.8.3",
+ "env_logger 0.8.4",
"gethostname",
"lazy_static 1.4.0",
"log 0.4.14",
"rand 0.7.3",
"reqwest",
"serial_test",
- "serial_test_derive",
"solana-sdk",
]
[[package]]
name = "solana-net-shaper"
-version = "1.5.19"
+version = "1.6.14"
dependencies = [
"clap",
"rand 0.7.3",
"serde",
"serde_json",
"solana-clap-utils",
- "solana-logger 1.5.19",
+ "solana-logger 1.6.14",
]
[[package]]
name = "solana-net-utils"
-version = "1.5.19"
+version = "1.6.14"
dependencies = [
"bincode",
"clap",
@@ -5699,26 +5847,26 @@ dependencies = [
"rand 0.7.3",
"serde",
"serde_derive",
- "socket2",
+ "socket2 0.3.19",
"solana-clap-utils",
- "solana-logger 1.5.19",
+ "solana-logger 1.6.14",
"solana-version",
- "tokio 0.3.7",
+ "tokio 1.7.1",
"url 2.2.2",
]
[[package]]
name = "solana-noop-program"
-version = "1.5.19"
+version = "1.6.14"
dependencies = [
"log 0.4.14",
- "solana-logger 1.5.19",
+ "solana-logger 1.6.14",
"solana-sdk",
]
[[package]]
name = "solana-notifier"
-version = "1.5.19"
+version = "1.6.14"
dependencies = [
"log 0.4.14",
"reqwest",
@@ -5727,7 +5875,7 @@ dependencies = [
[[package]]
name = "solana-ownable"
-version = "1.5.19"
+version = "1.6.14"
dependencies = [
"bincode",
"num-derive",
@@ -5739,7 +5887,7 @@ dependencies = [
[[package]]
name = "solana-perf"
-version = "1.5.19"
+version = "1.6.14"
dependencies = [
"bincode",
"curve25519-dalek 2.1.2",
@@ -5752,7 +5900,7 @@ dependencies = [
"rayon",
"serde",
"solana-budget-program",
- "solana-logger 1.5.19",
+ "solana-logger 1.6.14",
"solana-measure",
"solana-metrics",
"solana-rayon-threadlimit",
@@ -5761,7 +5909,7 @@ dependencies = [
[[package]]
name = "solana-poh-bench"
-version = "1.5.19"
+version = "1.6.14"
dependencies = [
"clap",
"log 0.4.14",
@@ -5769,7 +5917,7 @@ dependencies = [
"rayon",
"solana-clap-utils",
"solana-ledger",
- "solana-logger 1.5.19",
+ "solana-logger 1.6.14",
"solana-measure",
"solana-perf",
"solana-sdk",
@@ -5778,7 +5926,7 @@ dependencies = [
[[package]]
name = "solana-program"
-version = "1.5.19"
+version = "1.6.14"
dependencies = [
"assert_matches",
"bincode",
@@ -5802,18 +5950,19 @@ dependencies = [
"serde_derive",
"serde_json",
"sha2 0.9.5",
- "solana-frozen-abi 1.5.19",
- "solana-frozen-abi-macro 1.5.19",
- "solana-logger 1.5.19",
- "solana-sdk-macro 1.5.19",
+ "sha3 0.9.1",
+ "solana-frozen-abi 1.6.14",
+ "solana-frozen-abi-macro 1.6.14",
+ "solana-logger 1.6.14",
+ "solana-sdk-macro 1.6.14",
"thiserror",
]
[[package]]
name = "solana-program"
-version = "1.6.10"
+version = "1.7.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "632dc4e769b8dbb1884167737fd390cfa4266159ce37229e6ed64d61aba192d6"
+checksum = "9f9c454274436aac77286369e35835fafa1f79d1da1c4b7a1c662b2c41705f77"
dependencies = [
"bincode",
"blake3",
@@ -5836,39 +5985,42 @@ dependencies = [
"serde_derive",
"sha2 0.9.5",
"sha3 0.9.1",
- "solana-frozen-abi 1.6.10",
- "solana-frozen-abi-macro 1.6.10",
- "solana-logger 1.6.10",
- "solana-sdk-macro 1.6.10",
+ "solana-frozen-abi 1.7.3",
+ "solana-frozen-abi-macro 1.7.3",
+ "solana-logger 1.7.3",
+ "solana-sdk-macro 1.7.3",
"thiserror",
]
[[package]]
name = "solana-program-test"
-version = "1.5.19"
+version = "1.6.14"
dependencies = [
+ "assert_matches",
"async-trait",
"base64 0.12.3",
+ "bincode",
"chrono",
"chrono-humanize",
"log 0.4.14",
- "mio 0.7.11",
+ "mio 0.7.13",
+ "serde",
+ "serde_derive",
"solana-banks-client",
"solana-banks-server",
"solana-bpf-loader-program",
- "solana-logger 1.5.19",
- "solana-program 1.5.19",
+ "solana-logger 1.6.14",
"solana-runtime",
"solana-sdk",
"solana-stake-program",
"solana-vote-program",
"thiserror",
- "tokio 0.3.7",
+ "tokio 1.7.1",
]
[[package]]
name = "solana-ramp-tps"
-version = "1.5.19"
+version = "1.6.14"
dependencies = [
"bzip2",
"clap",
@@ -5879,7 +6031,7 @@ dependencies = [
"serde_yaml",
"solana-client",
"solana-core",
- "solana-logger 1.5.19",
+ "solana-logger 1.6.14",
"solana-metrics",
"solana-net-utils",
"solana-notifier",
@@ -5890,7 +6042,7 @@ dependencies = [
[[package]]
name = "solana-rayon-threadlimit"
-version = "1.5.19"
+version = "1.6.14"
dependencies = [
"lazy_static 1.4.0",
"num_cpus",
@@ -5898,7 +6050,7 @@ dependencies = [
[[package]]
name = "solana-remote-wallet"
-version = "1.5.19"
+version = "1.6.14"
dependencies = [
"base32",
"console 0.11.3",
@@ -5908,15 +6060,16 @@ dependencies = [
"num-derive",
"num-traits",
"parking_lot 0.10.2",
+ "qstring",
"semver 0.9.0",
"solana-sdk",
"thiserror",
- "url 2.2.2",
+ "uriparse",
]
[[package]]
name = "solana-runtime"
-version = "1.5.19"
+version = "1.6.14"
dependencies = [
"arrayref",
"assert_matches",
@@ -5932,7 +6085,6 @@ dependencies = [
"evm-state",
"flate2",
"fnv",
- "fs_extra",
"itertools 0.9.0",
"lazy_static 1.4.0",
"libc",
@@ -5951,16 +6103,15 @@ dependencies = [
"serde_derive",
"solana-config-program",
"solana-evm-loader-program",
- "solana-frozen-abi 1.5.19",
- "solana-frozen-abi-macro 1.5.19",
- "solana-logger 1.5.19",
+ "solana-frozen-abi 1.6.14",
+ "solana-frozen-abi-macro 1.6.14",
+ "solana-logger 1.6.14",
"solana-measure",
"solana-metrics",
"solana-noop-program",
"solana-rayon-threadlimit",
"solana-sdk",
"solana-secp256k1-program",
- "solana-sleep-program",
"solana-stake-program",
"solana-vote-program",
"symlink",
@@ -5973,7 +6124,7 @@ dependencies = [
[[package]]
name = "solana-scripts"
-version = "1.5.19"
+version = "1.6.14"
dependencies = [
"csv",
"serde",
@@ -5981,7 +6132,7 @@ dependencies = [
[[package]]
name = "solana-sdk"
-version = "1.5.19"
+version = "1.6.14"
dependencies = [
"assert_matches",
"bincode",
@@ -5990,8 +6141,10 @@ dependencies = [
"byteorder",
"chrono",
"curve25519-dalek 2.1.2",
+ "derivation-path",
"digest 0.9.0",
"ed25519-dalek",
+ "ed25519-dalek-bip32",
"evm-rpc",
"evm-state",
"generic-array 0.14.4",
@@ -6007,8 +6160,10 @@ dependencies = [
"num-traits",
"once_cell",
"pbkdf2 0.6.0",
+ "qstring",
"rand 0.7.3",
"rand_chacha 0.2.2",
+ "rand_core 0.6.3",
"rlp",
"rustc_version 0.2.3",
"rustversion",
@@ -6019,51 +6174,52 @@ dependencies = [
"sha2 0.9.5",
"sha3 0.9.1",
"solana-crate-features",
- "solana-frozen-abi 1.5.19",
- "solana-frozen-abi-macro 1.5.19",
- "solana-logger 1.5.19",
- "solana-program 1.5.19",
- "solana-sdk-macro 1.5.19",
+ "solana-frozen-abi 1.6.14",
+ "solana-frozen-abi-macro 1.6.14",
+ "solana-logger 1.6.14",
+ "solana-program 1.6.14",
+ "solana-sdk-macro 1.6.14",
"tempfile",
"thiserror",
- "tiny-bip39",
+ "tiny-bip39 0.7.3",
"triehash",
+ "uriparse",
]
[[package]]
name = "solana-sdk-macro"
-version = "1.5.19"
+version = "1.6.14"
dependencies = [
"bs58",
"proc-macro2 1.0.27",
"quote 1.0.9",
"rustversion",
- "syn 1.0.72",
+ "syn 1.0.73",
]
[[package]]
name = "solana-sdk-macro"
-version = "1.6.10"
+version = "1.7.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9e6762b630db60c40e3efbb461cc945e0c5dfb7b0bcf719f76551f0f97f0c005"
+checksum = "85ee9c0af66098ec40bf9012b7910c8cdb1ce8b95fc9fad90e6a0cbe692a48fe"
dependencies = [
"bs58",
"proc-macro2 1.0.27",
"quote 1.0.9",
"rustversion",
- "syn 1.0.72",
+ "syn 1.0.73",
]
[[package]]
name = "solana-secp256k1-program"
-version = "1.5.19"
+version = "1.6.14"
dependencies = [
"bincode",
"digest 0.9.0",
"libsecp256k1",
"rand 0.7.3",
"sha3 0.9.1",
- "solana-logger 1.5.19",
+ "solana-logger 1.6.14",
"solana-sdk",
]
@@ -6073,13 +6229,13 @@ version = "1.5.14"
dependencies = [
"byteorder",
"log 0.4.14",
- "solana-logger 1.5.19",
+ "solana-logger 1.6.14",
"solana-sdk",
]
[[package]]
name = "solana-stake-accounts"
-version = "1.5.19"
+version = "1.6.14"
dependencies = [
"clap",
"solana-clap-utils",
@@ -6093,7 +6249,7 @@ dependencies = [
[[package]]
name = "solana-stake-monitor"
-version = "1.5.19"
+version = "1.6.14"
dependencies = [
"clap",
"console 0.11.3",
@@ -6101,13 +6257,12 @@ dependencies = [
"serde",
"serde_yaml",
"serial_test",
- "serial_test_derive",
"solana-clap-utils",
"solana-cli-config",
"solana-client",
"solana-core",
"solana-local-cluster",
- "solana-logger 1.5.19",
+ "solana-logger 1.6.14",
"solana-metrics",
"solana-sdk",
"solana-stake-program",
@@ -6118,26 +6273,31 @@ dependencies = [
[[package]]
name = "solana-stake-o-matic"
-version = "1.5.19"
+version = "1.6.14"
dependencies = [
"clap",
"log 0.4.14",
+ "reqwest",
+ "semver 0.9.0",
+ "serde",
+ "serde_json",
"serde_yaml",
"solana-clap-utils",
"solana-cli-config",
"solana-cli-output",
"solana-client",
- "solana-logger 1.5.19",
+ "solana-logger 1.6.14",
"solana-metrics",
"solana-notifier",
"solana-sdk",
"solana-stake-program",
"solana-transaction-status",
+ "thiserror",
]
[[package]]
name = "solana-stake-program"
-version = "1.5.19"
+version = "1.6.14"
dependencies = [
"bincode",
"log 0.4.14",
@@ -6147,9 +6307,9 @@ dependencies = [
"serde",
"serde_derive",
"solana-config-program",
- "solana-frozen-abi 1.5.19",
- "solana-frozen-abi-macro 1.5.19",
- "solana-logger 1.5.19",
+ "solana-frozen-abi 1.6.14",
+ "solana-frozen-abi-macro 1.6.14",
+ "solana-logger 1.6.14",
"solana-metrics",
"solana-sdk",
"solana-vote-program",
@@ -6158,9 +6318,9 @@ dependencies = [
[[package]]
name = "solana-storage-bigtable"
-version = "1.5.19"
+version = "1.6.14"
dependencies = [
- "arc-swap",
+ "arc-swap 0.4.8",
"backoff",
"bincode",
"bzip2",
@@ -6173,6 +6333,7 @@ dependencies = [
"log 0.4.14",
"prost",
"prost-types",
+ "rand_core 0.6.3",
"serde",
"serde_derive",
"smpl_jwt",
@@ -6186,7 +6347,7 @@ dependencies = [
[[package]]
name = "solana-storage-proto"
-version = "1.5.19"
+version = "1.6.14"
dependencies = [
"bincode",
"bs58",
@@ -6202,11 +6363,11 @@ dependencies = [
[[package]]
name = "solana-store-tool"
-version = "1.5.19"
+version = "1.6.14"
dependencies = [
"clap",
"log 0.4.14",
- "solana-logger 1.5.19",
+ "solana-logger 1.6.14",
"solana-measure",
"solana-runtime",
"solana-sdk",
@@ -6215,12 +6376,12 @@ dependencies = [
[[package]]
name = "solana-streamer"
-version = "1.5.19"
+version = "1.6.14"
dependencies = [
"libc",
"log 0.4.14",
"nix 0.19.1",
- "solana-logger 1.5.19",
+ "solana-logger 1.6.14",
"solana-measure",
"solana-metrics",
"solana-perf",
@@ -6230,14 +6391,14 @@ dependencies = [
[[package]]
name = "solana-sys-tuner"
-version = "1.5.19"
+version = "1.6.14"
dependencies = [
"clap",
"libc",
"log 0.4.14",
"nix 0.19.1",
"solana-clap-utils",
- "solana-logger 1.5.19",
+ "solana-logger 1.6.14",
"solana-version",
"sysctl",
"unix_socket2",
@@ -6246,7 +6407,7 @@ dependencies = [
[[package]]
name = "solana-tokens"
-version = "1.5.19"
+version = "1.6.14"
dependencies = [
"bincode",
"chrono",
@@ -6264,7 +6425,7 @@ dependencies = [
"solana-cli-config",
"solana-client",
"solana-core",
- "solana-logger 1.5.19",
+ "solana-logger 1.6.14",
"solana-program-test",
"solana-remote-wallet",
"solana-runtime",
@@ -6280,7 +6441,7 @@ dependencies = [
[[package]]
name = "solana-transaction-status"
-version = "1.5.19"
+version = "1.6.14"
dependencies = [
"Inflector",
"base64 0.12.3",
@@ -6296,15 +6457,14 @@ dependencies = [
"solana-stake-program",
"solana-vote-program",
"spl-associated-token-account",
- "spl-memo 2.0.1",
- "spl-memo 3.0.0",
+ "spl-memo",
"spl-token",
"thiserror",
]
[[package]]
name = "solana-upload-perf"
-version = "1.5.19"
+version = "1.6.14"
dependencies = [
"serde_json",
"solana-metrics",
@@ -6312,21 +6472,21 @@ dependencies = [
[[package]]
name = "solana-version"
-version = "0.3.6"
+version = "1.6.14"
dependencies = [
"log 0.4.14",
"rustc_version 0.2.3",
"serde",
"serde_derive",
- "solana-frozen-abi 1.5.19",
- "solana-frozen-abi-macro 1.5.19",
- "solana-logger 1.5.19",
+ "solana-frozen-abi 1.6.14",
+ "solana-frozen-abi-macro 1.6.14",
+ "solana-logger 1.6.14",
"solana-sdk",
]
[[package]]
name = "solana-vest-program"
-version = "1.5.19"
+version = "1.6.14"
dependencies = [
"bincode",
"chrono",
@@ -6342,7 +6502,7 @@ dependencies = [
[[package]]
name = "solana-vote-program"
-version = "1.5.19"
+version = "1.6.14"
dependencies = [
"bincode",
"log 0.4.14",
@@ -6351,9 +6511,9 @@ dependencies = [
"rustc_version 0.2.3",
"serde",
"serde_derive",
- "solana-frozen-abi 1.5.19",
- "solana-frozen-abi-macro 1.5.19",
- "solana-logger 1.5.19",
+ "solana-frozen-abi 1.6.14",
+ "solana-frozen-abi-macro 1.6.14",
+ "solana-logger 1.6.14",
"solana-metrics",
"solana-sdk",
"thiserror",
@@ -6361,7 +6521,7 @@ dependencies = [
[[package]]
name = "solana-watchtower"
-version = "1.5.19"
+version = "1.6.14"
dependencies = [
"clap",
"humantime",
@@ -6370,7 +6530,7 @@ dependencies = [
"solana-cli-config",
"solana-cli-output",
"solana-client",
- "solana-logger 1.5.19",
+ "solana-logger 1.6.14",
"solana-metrics",
"solana-notifier",
"solana-sdk",
@@ -6379,9 +6539,9 @@ dependencies = [
[[package]]
name = "solana_rbpf"
-version = "0.2.7"
+version = "0.2.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "14e36c51d5aa290416c5dea3c43ac467cb57c0b643184af23e6bdab7434710fb"
+checksum = "debbc13545a1d972955a4fd3014e7c9d6d81da16c3626ee5f64bf3aa619548f8"
dependencies = [
"byteorder",
"combine",
@@ -6407,39 +6567,30 @@ version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4adc47eebe5d2b662cbaaba1843719c28a67e5ec5d0460bc3ca60900a51f74e2"
dependencies = [
- "solana-program 1.6.10",
+ "solana-program 1.7.3",
"spl-token",
]
[[package]]
name = "spl-memo"
-version = "2.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb2b771f6146dec14ef5fbf498f9374652c54badc3befc8c40c1d426dd45d720"
-dependencies = [
- "solana-program 1.6.10",
-]
-
-[[package]]
-name = "spl-memo"
-version = "3.0.0"
+version = "3.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e76b60c6f58279b5469beb1705744e9778ee94d643c8e3e2ff91874c59bb3c63"
+checksum = "bd0dc6f70db6bacea7ff25870b016a65ba1d1b6013536f08e4fd79a8f9005325"
dependencies = [
- "solana-program 1.6.10",
+ "solana-program 1.7.3",
]
[[package]]
name = "spl-token"
-version = "3.1.0"
+version = "3.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b795e50d15dfd35aa5460b80a16414503a322be115a417a43db987c5824c6798"
+checksum = "fbfa8fd791aeb4d7ad5fedb7872478de9f4e8b4fcb02dfd9e7f2f9ae3f3ddd73"
dependencies = [
"arrayref",
"num-derive",
"num-traits",
"num_enum",
- "solana-program 1.6.10",
+ "solana-program 1.7.3",
"thiserror",
]
@@ -6488,7 +6639,7 @@ dependencies = [
"quote 1.0.9",
"serde",
"serde_derive",
- "syn 1.0.72",
+ "syn 1.0.73",
]
[[package]]
@@ -6504,7 +6655,7 @@ dependencies = [
"serde_derive",
"serde_json",
"sha1",
- "syn 1.0.72",
+ "syn 1.0.73",
]
[[package]]
@@ -6513,15 +6664,6 @@ version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "213701ba3370744dcd1a12960caa4843b3d68b4d1c0a5d575e0d65b2ee9d16c0"
-[[package]]
-name = "string"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d24114bfcceb867ca7f71a0d3fe45d45619ec47a6fbfa98cb14e14250bfa5d6d"
-dependencies = [
- "bytes 0.4.12",
-]
-
[[package]]
name = "strsim"
version = "0.8.0"
@@ -6550,7 +6692,7 @@ dependencies = [
"proc-macro-error",
"proc-macro2 1.0.27",
"quote 1.0.9",
- "syn 1.0.72",
+ "syn 1.0.73",
]
[[package]]
@@ -6584,9 +6726,9 @@ dependencies = [
[[package]]
name = "syn"
-version = "1.0.72"
+version = "1.0.73"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1e8cdbefb79a9a5a65e0db8b47b723ee907b7c7f8496c76a1770b5c310bab82"
+checksum = "f71489ff30030d2ae598524f61326b902466f72a0fb1a8564c001cc63425bcc7"
dependencies = [
"proc-macro2 1.0.27",
"quote 1.0.9",
@@ -6601,7 +6743,7 @@ checksum = "b834f2d66f734cb897113e34aaff2f1ab4719ca946f9a7358dba8f8064148701"
dependencies = [
"proc-macro2 1.0.27",
"quote 1.0.9",
- "syn 1.0.72",
+ "syn 1.0.73",
"unicode-xid 0.2.2",
]
@@ -6620,9 +6762,9 @@ dependencies = [
[[package]]
name = "systemstat"
-version = "0.1.7"
+version = "0.1.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c31c241679f72241744c20d064a4db7feeb2caa214a8d6e2d4243b8c674a29a5"
+checksum = "a934f8fe2f893260080fdde71e840b35308f48bf3bd3b261cb24e668c4b48db3"
dependencies = [
"bytesize",
"chrono",
@@ -6641,9 +6783,9 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369"
[[package]]
name = "tar"
-version = "0.4.33"
+version = "0.4.35"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c0bcfbd6a598361fda270d82469fff3d65089dc33e175c9a131f7b4cd395f228"
+checksum = "7d779dc6aeff029314570f666ec83f19df7280bb36ef338442cfa8c604021b80"
dependencies = [
"filetime",
"libc",
@@ -6652,34 +6794,34 @@ dependencies = [
[[package]]
name = "tarpc"
-version = "0.23.1"
+version = "0.24.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1035e0e1b7064c1080702a8a5b3d044a3dea10a1096766be6f5c22580096fa75"
+checksum = "e325774dd5b35d979e9f4db2b0f0d7d85dc2ff2b676a3150af56c09eafc14b07"
dependencies = [
"anyhow",
"fnv",
"futures 0.3.15",
"humantime",
"log 0.4.14",
- "pin-project 1.0.7",
+ "pin-project",
"rand 0.7.3",
"serde",
"static_assertions",
"tarpc-plugins",
- "tokio 0.3.7",
+ "tokio 1.7.1",
"tokio-serde",
- "tokio-util 0.4.0",
+ "tokio-util 0.6.7",
]
[[package]]
name = "tarpc-plugins"
-version = "0.8.0"
+version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "edbaf92ceea0a2ab555bea18a47a891e46ba2d6f930ec9506771662f4ab82bb7"
+checksum = "f3240378a22b1195734e085ba71d1d4188d50f034aea82635acc430b7005afb5"
dependencies = [
"proc-macro2 1.0.27",
"quote 1.0.9",
- "syn 1.0.72",
+ "syn 1.0.73",
]
[[package]]
@@ -6690,8 +6832,8 @@ checksum = "dac1c663cfc93810f88aed9b8941d48cabf856a1b111c29a40439018d870eb22"
dependencies = [
"cfg-if 1.0.0",
"libc",
- "rand 0.8.3",
- "redox_syscall 0.2.8",
+ "rand 0.8.4",
+ "redox_syscall 0.2.9",
"remove_dir_all",
"winapi 0.3.9",
]
@@ -6750,7 +6892,7 @@ checksum = "8a36768c0fbf1bb15eca10defa29526bda730a2376c2ab4393ccfa16fb1a318d"
dependencies = [
"proc-macro2 1.0.27",
"quote 1.0.9",
- "syn 1.0.72",
+ "syn 1.0.73",
]
[[package]]
@@ -6772,9 +6914,9 @@ dependencies = [
[[package]]
name = "time"
-version = "0.2.26"
+version = "0.2.27"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "08a8cbfbf47955132d0202d1662f49b2423ae35862aee471f3ba4b133358f372"
+checksum = "4752a97f8eebd6854ff91f1c1824cd6160626ac4bd44287f7f4ea2035a02a242"
dependencies = [
"const_fn",
"libc",
@@ -6797,15 +6939,15 @@ dependencies = [
[[package]]
name = "time-macros-impl"
-version = "0.1.1"
+version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e5c3be1edfad6027c69f5491cf4cb310d1a71ecd6af742788c6ff8bced86b8fa"
+checksum = "fd3c141a1b43194f3f56a1411225df8646c55781d5f26db825b3d98507eb482f"
dependencies = [
"proc-macro-hack",
"proc-macro2 1.0.27",
"quote 1.0.9",
"standback",
- "syn 1.0.72",
+ "syn 1.0.73",
]
[[package]]
@@ -6824,6 +6966,24 @@ dependencies = [
"unicode-normalization",
]
+[[package]]
+name = "tiny-bip39"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d9e44c4759bae7f1032e286a7ef990bd9ed23fe831b7eeba0beb97484c2e59b8"
+dependencies = [
+ "anyhow",
+ "hmac 0.8.1",
+ "once_cell",
+ "pbkdf2 0.4.0",
+ "rand 0.7.3",
+ "rustc-hash",
+ "sha2 0.9.5",
+ "thiserror",
+ "unicode-normalization",
+ "zeroize",
+]
+
[[package]]
name = "tiny-keccak"
version = "2.0.2"
@@ -6908,37 +7068,24 @@ dependencies = [
[[package]]
name = "tokio"
-version = "0.3.7"
+version = "1.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "46409491c9375a693ce7032101970a54f8a2010efb77e13f70788f0d84489e39"
+checksum = "5fb2ed024293bb19f7a5dc54fe83bf86532a44c12a2bb8ba40d64a4509395ca2"
dependencies = [
"autocfg 1.0.1",
- "bytes 0.6.0",
- "futures-core",
+ "bytes 1.0.1",
"libc",
"memchr",
- "mio 0.7.11",
+ "mio 0.7.13",
"num_cpus",
"once_cell",
"parking_lot 0.11.1",
- "pin-project-lite 0.2.6",
+ "pin-project-lite 0.2.7",
"signal-hook-registry",
- "slab",
- "tokio-macros 0.3.2",
+ "tokio-macros 1.2.0",
"winapi 0.3.9",
]
-[[package]]
-name = "tokio-buf"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8fb220f46c53859a4b7ec083e41dec9778ff0b1851c0942b211edb89e0ccdc46"
-dependencies = [
- "bytes 0.4.12",
- "either",
- "futures 0.1.31",
-]
-
[[package]]
name = "tokio-codec"
version = "0.1.2"
@@ -7000,18 +7147,28 @@ checksum = "e44da00bfc73a25f814cd8d7e57a68a5c31b74b3152a0a1d1f590c97ed06265a"
dependencies = [
"proc-macro2 1.0.27",
"quote 1.0.9",
- "syn 1.0.72",
+ "syn 1.0.73",
]
[[package]]
name = "tokio-macros"
-version = "0.3.2"
+version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "46dfffa59fc3c8aad216ed61bdc2c263d2b9d87a9c8ac9de0c11a813e51b6db7"
+checksum = "c49e3df43841dafb86046472506755d8501c5615673955f6aa17181125d13c37"
dependencies = [
"proc-macro2 1.0.27",
"quote 1.0.9",
- "syn 1.0.72",
+ "syn 1.0.73",
+]
+
+[[package]]
+name = "tokio-native-tls"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f7d995660bd2b7f8c1568414c1126076c13fbb725c40112dc0120b78eb9b717b"
+dependencies = [
+ "native-tls",
+ "tokio 1.7.1",
]
[[package]]
@@ -7035,28 +7192,40 @@ dependencies = [
[[package]]
name = "tokio-rustls"
-version = "0.14.1"
+version = "0.22.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e12831b255bcfa39dc0436b01e19fea231a37db570686c06ee72c423479f889a"
+checksum = "bc6844de72e57df1980054b38be3a9f4702aba4858be64dd700181a8a6d0e1b6"
dependencies = [
- "futures-core",
"rustls",
- "tokio 0.2.25",
+ "tokio 1.7.1",
"webpki",
]
[[package]]
name = "tokio-serde"
-version = "0.6.1"
+version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ebdd897b01021779294eb09bb3b52b6e11b0747f9f7e333a84bef532b656de99"
+checksum = "911a61637386b789af998ee23f50aa30d5fd7edcec8d6d3dedae5e5815205466"
dependencies = [
"bincode",
- "bytes 0.5.6",
- "derivative",
- "futures 0.3.15",
- "pin-project 0.4.28",
+ "bytes 1.0.1",
+ "educe",
+ "futures-core",
+ "futures-sink",
+ "pin-project",
"serde",
+ "serde_json",
+]
+
+[[package]]
+name = "tokio-stream"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f8864d706fdb3cc0843a49647ac892720dac98a6eeb818b77190592cf4994066"
+dependencies = [
+ "futures-core",
+ "pin-project-lite 0.2.7",
+ "tokio 1.7.1",
]
[[package]]
@@ -7123,16 +7292,6 @@ dependencies = [
"tokio-io",
]
-[[package]]
-name = "tokio-tls"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a70f4fcd7b3b24fb194f837560168208f669ca8cb70d0c4b862944452396343"
-dependencies = [
- "native-tls",
- "tokio 0.2.25",
-]
-
[[package]]
name = "tokio-udp"
version = "0.1.6"
@@ -7182,16 +7341,16 @@ dependencies = [
[[package]]
name = "tokio-util"
-version = "0.4.0"
+version = "0.6.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "24793699f4665ba0416ed287dc794fe6b11a4aa5e4e95b58624f45f6c46b97d4"
+checksum = "1caa0b0c8d94a049db56b5acf8cba99dc0623aab1b26d5b5f5e2d945846b3592"
dependencies = [
- "bytes 0.5.6",
+ "bytes 1.0.1",
"futures-core",
"futures-sink",
"log 0.4.14",
- "pin-project-lite 0.1.12",
- "tokio 0.3.7",
+ "pin-project-lite 0.2.7",
+ "tokio 1.7.1",
]
[[package]]
@@ -7205,30 +7364,29 @@ dependencies = [
[[package]]
name = "tonic"
-version = "0.3.1"
+version = "0.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "74a5d6e7439ecf910463667080de772a9c7ddf26bc9fb4f3252ac3862e43337d"
+checksum = "2ac42cd97ac6bd2339af5bcabf105540e21e45636ec6fa6aae5e85d44db31be0"
dependencies = [
"async-stream",
"async-trait",
- "base64 0.12.3",
- "bytes 0.5.6",
+ "base64 0.13.0",
+ "bytes 1.0.1",
"futures-core",
"futures-util",
- "http 0.2.4",
- "http-body 0.3.1",
- "hyper 0.13.10",
+ "h2 0.3.3",
+ "http",
+ "http-body 0.4.2",
+ "hyper 0.14.9",
"percent-encoding 2.1.0",
- "pin-project 0.4.28",
+ "pin-project",
"prost",
"prost-derive",
- "tokio 0.2.25",
+ "tokio 1.7.1",
"tokio-rustls",
- "tokio-util 0.3.1",
+ "tokio-stream",
+ "tokio-util 0.6.7",
"tower",
- "tower-balance",
- "tower-load",
- "tower-make",
"tower-service",
"tracing",
"tracing-futures",
@@ -7236,182 +7394,36 @@ dependencies = [
[[package]]
name = "tower"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fd3169017c090b7a28fce80abaad0ab4f5566423677c9331bb320af7e49cfe62"
-dependencies = [
- "futures-core",
- "tower-buffer",
- "tower-discover",
- "tower-layer",
- "tower-limit",
- "tower-load-shed",
- "tower-retry",
- "tower-service",
- "tower-timeout",
- "tower-util",
-]
-
-[[package]]
-name = "tower-balance"
-version = "0.3.0"
+version = "0.4.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a792277613b7052448851efcf98a2c433e6f1d01460832dc60bef676bc275d4c"
+checksum = "f60422bc7fefa2f3ec70359b8ff1caff59d785877eb70595904605bcc412470f"
dependencies = [
"futures-core",
"futures-util",
"indexmap",
- "pin-project 0.4.28",
- "rand 0.7.3",
+ "pin-project",
+ "rand 0.8.4",
"slab",
- "tokio 0.2.25",
- "tower-discover",
+ "tokio 1.7.1",
+ "tokio-stream",
+ "tokio-util 0.6.7",
"tower-layer",
- "tower-load",
- "tower-make",
- "tower-ready-cache",
"tower-service",
"tracing",
]
-[[package]]
-name = "tower-buffer"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c4887dc2a65d464c8b9b66e0e4d51c2fd6cf5b3373afc72805b0a60bce00446a"
-dependencies = [
- "futures-core",
- "pin-project 0.4.28",
- "tokio 0.2.25",
- "tower-layer",
- "tower-service",
- "tracing",
-]
-
-[[package]]
-name = "tower-discover"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f6b5000c3c54d269cc695dff28136bb33d08cbf1df2c48129e143ab65bf3c2a"
-dependencies = [
- "futures-core",
- "pin-project 0.4.28",
- "tower-service",
-]
-
[[package]]
name = "tower-layer"
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "343bc9466d3fe6b0f960ef45960509f84480bf4fd96f92901afe7ff3df9d3a62"
-[[package]]
-name = "tower-limit"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "92c3040c5dbed68abffaa0d4517ac1a454cd741044f33ab0eefab6b8d1361404"
-dependencies = [
- "futures-core",
- "pin-project 0.4.28",
- "tokio 0.2.25",
- "tower-layer",
- "tower-load",
- "tower-service",
-]
-
-[[package]]
-name = "tower-load"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8cc79fc3afd07492b7966d7efa7c6c50f8ed58d768a6075dd7ae6591c5d2017b"
-dependencies = [
- "futures-core",
- "log 0.4.14",
- "pin-project 0.4.28",
- "tokio 0.2.25",
- "tower-discover",
- "tower-service",
-]
-
-[[package]]
-name = "tower-load-shed"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9f021e23900173dc315feb4b6922510dae3e79c689b74c089112066c11f0ae4e"
-dependencies = [
- "futures-core",
- "pin-project 0.4.28",
- "tower-layer",
- "tower-service",
-]
-
-[[package]]
-name = "tower-make"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ce50370d644a0364bf4877ffd4f76404156a248d104e2cc234cd391ea5cdc965"
-dependencies = [
- "tokio 0.2.25",
- "tower-service",
-]
-
-[[package]]
-name = "tower-ready-cache"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4eabb6620e5481267e2ec832c780b31cad0c15dcb14ed825df5076b26b591e1f"
-dependencies = [
- "futures-core",
- "futures-util",
- "indexmap",
- "log 0.4.14",
- "tokio 0.2.25",
- "tower-service",
-]
-
-[[package]]
-name = "tower-retry"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e6727956aaa2f8957d4d9232b308fe8e4e65d99db30f42b225646e86c9b6a952"
-dependencies = [
- "futures-core",
- "pin-project 0.4.28",
- "tokio 0.2.25",
- "tower-layer",
- "tower-service",
-]
-
[[package]]
name = "tower-service"
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "360dfd1d6d30e05fda32ace2c8c70e9c0a9da713275777f5a4dbb8a1893930c6"
-[[package]]
-name = "tower-timeout"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "127b8924b357be938823eaaec0608c482d40add25609481027b96198b2e4b31e"
-dependencies = [
- "pin-project 0.4.28",
- "tokio 0.2.25",
- "tower-layer",
- "tower-service",
-]
-
-[[package]]
-name = "tower-util"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d1093c19826d33807c72511e68f73b4a0469a3f22c2bd5f7d5212178b4b89674"
-dependencies = [
- "futures-core",
- "futures-util",
- "pin-project 0.4.28",
- "tower-service",
-]
-
[[package]]
name = "tracing"
version = "0.1.26"
@@ -7420,7 +7432,7 @@ checksum = "09adeb8c97449311ccd28a427f96fb563e7fd31aabf994189879d9da2394b89d"
dependencies = [
"cfg-if 1.0.0",
"log 0.4.14",
- "pin-project-lite 0.2.6",
+ "pin-project-lite 0.2.7",
"tracing-attributes",
"tracing-core",
]
@@ -7433,7 +7445,7 @@ checksum = "c42e6fa53307c8a17e4ccd4dc81cf5ec38db9209f59b222210375b54ee40d1e2"
dependencies = [
"proc-macro2 1.0.27",
"quote 1.0.9",
- "syn 1.0.72",
+ "syn 1.0.73",
]
[[package]]
@@ -7451,7 +7463,7 @@ version = "0.2.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2"
dependencies = [
- "pin-project 1.0.7",
+ "pin-project",
"tracing",
]
@@ -7479,7 +7491,7 @@ dependencies = [
[[package]]
name = "triedb"
version = "0.5.0"
-source = "git+https://github.com/velas/triedb?branch=chore/bump-rocksdb#eba324ad94551de29145023d58d31a4a86def84e"
+source = "git+https://github.com/velas/triedb?branch=chore/bump-rocksdb#ea0083bc880a47f51c11df4cbfebb90ee4988545"
dependencies = [
"primitive-types",
"rlp",
@@ -7513,7 +7525,7 @@ dependencies = [
"base64 0.11.0",
"byteorder",
"bytes 0.5.6",
- "http 0.2.4",
+ "http",
"httparse",
"input_buffer",
"log 0.4.14",
@@ -7583,9 +7595,9 @@ dependencies = [
[[package]]
name = "unicode-normalization"
-version = "0.1.17"
+version = "0.1.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "07fbfce1c8a97d547e8b5334978438d9d6ec8c20e38f56d4a4374d181493eaef"
+checksum = "d54590932941a9e9266f0832deed84ebe1bf2e4c9e4a3554d393d18f5e854bf9"
dependencies = [
"tinyvec",
]
@@ -7695,9 +7707,9 @@ checksum = "7cf7d77f457ef8dfa11e4cd5933c5ddb5dc52a94664071951219a97710f0a32b"
[[package]]
name = "vcpkg"
-version = "0.2.13"
+version = "0.2.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "025ce40a007e1907e58d5bc1a594def78e5573bb0b1160bc389634e8f12e4faa"
+checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
[[package]]
name = "vec_map"
@@ -7718,13 +7730,12 @@ dependencies = [
[[package]]
name = "velas-gossip"
-version = "1.5.19"
+version = "1.6.14"
dependencies = [
"clap",
"solana-clap-utils",
- "solana-client",
"solana-core",
- "solana-logger 1.5.19",
+ "solana-logger 1.6.14",
"solana-net-utils",
"solana-sdk",
"solana-version",
@@ -7732,7 +7743,7 @@ dependencies = [
[[package]]
name = "velas-install"
-version = "1.5.19"
+version = "1.6.14"
dependencies = [
"atty",
"bincode",
@@ -7753,7 +7764,7 @@ dependencies = [
"solana-clap-utils",
"solana-client",
"solana-config-program",
- "solana-logger 1.5.19",
+ "solana-logger 1.6.14",
"solana-sdk",
"solana-version",
"tar",
@@ -7763,25 +7774,9 @@ dependencies = [
"winreg",
]
-[[package]]
-name = "velas-keygen"
-version = "1.5.19"
-dependencies = [
- "bs58",
- "clap",
- "dirs-next",
- "num_cpus",
- "solana-clap-utils",
- "solana-cli-config",
- "solana-remote-wallet",
- "solana-sdk",
- "solana-version",
- "tiny-bip39",
-]
-
[[package]]
name = "velas-validator"
-version = "1.5.19"
+version = "1.6.14"
dependencies = [
"base64 0.12.3",
"bincode",
@@ -7791,11 +7786,16 @@ dependencies = [
"core_affinity",
"fd-lock",
"indicatif",
+ "jsonrpc-core",
+ "jsonrpc-core-client",
+ "jsonrpc-derive",
+ "jsonrpc-ipc-server",
+ "jsonrpc-server-utils",
"libc",
"log 0.4.14",
"num_cpus",
"rand 0.7.3",
- "serde_json",
+ "serde",
"signal-hook",
"solana-clap-utils",
"solana-cli-config",
@@ -7804,7 +7804,7 @@ dependencies = [
"solana-download-utils",
"solana-faucet",
"solana-ledger",
- "solana-logger 1.5.19",
+ "solana-logger 1.6.14",
"solana-metrics",
"solana-net-utils",
"solana-perf",
@@ -7853,17 +7853,6 @@ dependencies = [
"winapi-util",
]
-[[package]]
-name = "want"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b6395efa4784b027708f7451087e647ec73cc74f5d9bc2e418404248d679a230"
-dependencies = [
- "futures 0.1.31",
- "log 0.4.14",
- "try-lock",
-]
-
[[package]]
name = "want"
version = "0.3.0"
@@ -7909,7 +7898,7 @@ dependencies = [
"log 0.4.14",
"proc-macro2 1.0.27",
"quote 1.0.9",
- "syn 1.0.72",
+ "syn 1.0.73",
"wasm-bindgen-shared",
]
@@ -7943,7 +7932,7 @@ checksum = "be2241542ff3d9f241f5e2cb6dd09b37efe786df8851c54957683a49f0987a97"
dependencies = [
"proc-macro2 1.0.27",
"quote 1.0.9",
- "syn 1.0.72",
+ "syn 1.0.73",
"wasm-bindgen-backend",
"wasm-bindgen-shared",
]
@@ -7976,9 +7965,9 @@ dependencies = [
[[package]]
name = "webpki-roots"
-version = "0.20.0"
+version = "0.21.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f20dea7535251981a9670857150d571846545088359b28e4951d350bdaf179f"
+checksum = "aabe153544e473b775453675851ecc86863d2a81d786d741f6b76778f2a48940"
dependencies = [
"webpki",
]
@@ -7998,7 +7987,7 @@ dependencies = [
"tokio-io",
"tokio-reactor",
"tokio-tcp",
- "tokio-tls 0.2.1",
+ "tokio-tls",
"unicase 1.4.2",
"url 1.7.2",
"websocket-base",
@@ -8021,7 +8010,7 @@ dependencies = [
"tokio-codec",
"tokio-io",
"tokio-tcp",
- "tokio-tls 0.2.1",
+ "tokio-tls",
]
[[package]]
@@ -8127,7 +8116,7 @@ checksum = "a2c1e130bebaeab2f23886bf9acbaca14b092408c452543c857f66399cd6dab1"
dependencies = [
"proc-macro2 1.0.27",
"quote 1.0.9",
- "syn 1.0.72",
+ "syn 1.0.73",
"synstructure",
]
diff --git a/Cargo.toml b/Cargo.toml
index 167b1152da..d091289ed8 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -1,5 +1,6 @@
[workspace]
members = [
+ "accounts-cluster-bench",
"bench-exchange",
"bench-streamer",
"bench-tps",
@@ -81,4 +82,9 @@ members = [
"watchtower",
]
-exclude = ["programs/bpf"]
+exclude = [
+ "programs/bpf",
+]
+
+[profile.dev]
+split-debuginfo = "unpacked"
diff --git a/README.md b/README.md
index f29e3d00f9..3b04eaa4ed 100644
--- a/README.md
+++ b/README.md
@@ -81,6 +81,3 @@ $ cargo +nightly bench
The release process for this project is described [here](RELEASE.md).
-# Disclaimer
-
-All claims, content, designs, algorithms, estimates, roadmaps, specifications, and performance measurements described in this project are done with the author's best effort. It is up to the reader to check and validate their accuracy and truthfulness. Furthermore nothing in this project constitutes a solicitation for investment.
diff --git a/SECURITY.md b/SECURITY.md
new file mode 100644
index 0000000000..ee9df8d7b6
--- /dev/null
+++ b/SECURITY.md
@@ -0,0 +1,155 @@
+# Security Policy
+
+1. [Reporting security problems](#reporting)
+4. [Security Bug Bounties](#bounty)
+2. [Incident Response Process](#process)
+
+
+## Reporting security problems to Solana
+
+**DO NOT CREATE AN ISSUE** to report a security problem. Instead, please send an
+email to security@solana.com and provide your github username so we can add you
+to a new draft security advisory for further discussion.
+
+Expect a response as fast as possible, within one business day at the latest.
+
+
+## Security Bug Bounties
+We offer bounties for critical security issues. Please see below for more details.
+
+Loss of Funds:
+$500,000 USD in locked SOL tokens (locked for 12 months)
+* Theft of funds without users signature from any account
+* Theft of funds without users interaction in system, token, stake, vote programs
+* Theft of funds that requires users signature - creating a vote program that drains the delegated stakes.
+
+Consensus/Safety Violations:
+$250,000 USD in locked SOL tokens (locked for 12 months)
+* Consensus safety violation
+* Tricking a validator to accept an optimistic confirmation or rooted slot without a double vote, etc..
+
+Other Attacks:
+ $100,000 USD in locked SOL tokens (locked for 12 months)
+* Protocol liveness attacks,
+* Eclipse attacks,
+* Remote attacks that partition the network,
+
+DoS Attacks:
+$25,000 USD in locked SOL tokens (locked for 12 months)
+* Remote resource exaustion via Non-RPC protocols
+
+RPC DoS/Crashes:
+$5,000 USD in locked SOL tokens (locked for 12 months)
+* RPC attacks
+
+Out of Scope:
+The following components are out of scope for the bounty program
+* Metrics: `/metrics` in the monorepo as well as https://metrics.solana.com
+* Explorer: `/explorer` in the monorepo as well as https://explorer.solana.com
+* Any encrypted credentials, auth tokens, etc. checked into the repo
+* Bugs in dependencies. Please take them upstream!
+* Attacks that require social engineering
+
+Eligibility:
+* The participant submitting the bug bounty shall follow the process outlined within this document
+* Valid exploits can be eligible even if they are not successfully executed on the cluster
+* Multiple submissions for the same class of exploit are still eligible for compensation, though may be compensated at a lower rate, however these will be assessed on a case-by-case basis
+* Participants must complete KYC and sign the participation agreement here when the registrations are open https://solana.com/validator-registration. Security exploits will still be assessed and open for submission at all times. This needs only be done prior to distribution of tokens.
+
+Notes:
+* All locked tokens can be staked during the lockup period
+
+
+## Incident Response Process
+
+In case an incident is discovered or reported, the following process will be
+followed to contain, respond and remediate:
+
+### 1. Establish a new draft security advisory
+In response to an email to security@solana.com, a member of the `solana-labs/admins` group will
+1. Create a new draft security advisory for the incident at https://github.com/solana-labs/solana/security/advisories
+1. Add the reporter's github user and the `solana-labs/security-incident-response` group to the draft security advisory
+1. Create a private fork of the repository (grey button towards the bottom of the page)
+1. Respond to the reporter by email, sharing a link to the draft security advisory
+
+### 2. Triage
+Within the draft security advisory, discuss and determine the severity of the
+issue. If necessary, members of the `solana-labs/security-incident-response`
+group may add other github users to the advisory to assist.
+
+If it is determined that this not a critical network issue then the advisory
+should be closed and if more follow-up is required a normal Solana public github
+issue should be created.
+
+### 3. Prepare Fixes
+For the affected branches, typically all three (edge, beta and stable), prepare
+a fix for the issue and push them to the corresponding branch in the private
+repository associated with the draft security advisory.
+
+There is no CI available in the private repository so you must build from source
+and manually verify fixes.
+
+Code review from the reporter is ideal, as well as from multiple members of the
+core development team.
+
+### 4. Notify Security Group Validators
+Once an ETA is available for the fix, a member of the
+`solana-labs/security-incident-response` group should notify the validators so
+they can prepare for an update using the "Solana Red Alert" notification system.
+
+The teams are all over the world and it's critical to provide actionable
+information at the right time. Don't be the person that wakes everybody up at
+2am when a fix won't be available for hours.
+
+### 5. Ship the patch
+Once the fix is accepted, a member of the
+`solana-labs/security-incident-response` group should prepare a single patch
+file for each affected branch. The commit title for the patch should only
+contain the advisory id, and not disclose any further details about the
+incident.
+
+Copy the patches to https://release.solana.com/ under a subdirectory named after
+the advisory id (example:
+https://release.solana.com/GHSA-hx59-f5g4-jghh/v1.4.patch). Contact a member of
+the `solana-labs/admins` group if you require access to release.solana.com
+
+Using the "Solana Red Alert" channel:
+1. Notify validators that there's an issue and a patch will be provided in X minutes
+2. If X minutes expires and there's no patch, notify of the delay and provide a
+ new ETA
+3. Provide links to patches of https://release.solana.com/ for each affected branch
+
+Validators can be expected to build the patch from source against the latest
+release for the affected branch.
+
+Since the software version will not change after the patch is applied, request
+that each validator notify in the existing channel once they've updated. Manually
+monitor the roll out until a sufficient amount of stake has updated - typically
+at least 33.3% or 66.6% depending on the issue.
+
+### 6. Public Disclosure and Release
+Once the fix has been deployed to the security group validators, the patches from the security
+advisory may be merged into the main source repository. A new official release
+for each affected branch should be shipped and all validators requested to
+upgrade as quickly as possible.
+
+### 7. Security Advisory Bounty Accounting and Cleanup
+
+If this issue is eligible for a bounty, prefix the title of the security
+advisory with one of the following, depending on the severity:
+* `[Bounty Category: Critical: Loss of Funds]`
+* `[Bounty Category: Critical: Loss of Availability]`
+* `[Bounty Category: Critical: DoS]`
+* `[Bounty Category: Critical: Other]`
+* `[Bounty Category: Non-critical]`
+* `[Bounty Category: RPC]`
+
+Confirm with the reporter that they agree with the severity assessment, and
+discuss as required to reach a conclusion.
+
+We currently do not use the Github workflow to publish security advisories.
+Once the issue and fix have been disclosed, and a bounty category is assessed if
+appropriate, the GitHub security advisory is no longer needed and can be closed.
+
+Bounties are currently awarded once a quarter (TODO: link to this process, or
+inline the workflow)
diff --git a/account-decoder/Cargo.toml b/account-decoder/Cargo.toml
index a869f39913..e404c9fd80 100644
--- a/account-decoder/Cargo.toml
+++ b/account-decoder/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "solana-account-decoder"
-version = "1.5.19"
+version = "1.6.14"
description = "Solana account decoder"
authors = ["Solana Maintainers "]
repository = "https://github.com/solana-labs/solana"
@@ -19,14 +19,16 @@ bs58 = "0.3.1"
bv = "0.11.1"
Inflector = "0.11.4"
lazy_static = "1.4.0"
-serde = "1.0.118"
+serde = "1.0.122"
serde_derive = "1.0.103"
serde_json = "1.0.56"
thiserror = "1.0"
zstd = "0.5.1"
-solana-config-program = { path = "../programs/config", version = "=1.5.19" }
-solana-sdk = { path = "../sdk", version = "=1.5.19" }
-solana-stake-program = { path = "../programs/stake", version = "=1.5.19" }
-solana-vote-program = { path = "../programs/vote", version = "=1.5.19" }
-spl-token-v2-0 = { package = "spl-token", version = "=3.1.0", features = ["no-entrypoint"] }
+
+solana-config-program = { path = "../programs/config", version = "=1.6.14" }
+solana-sdk = { path = "../sdk", version = "=1.6.14" }
+solana-stake-program = { path = "../programs/stake", version = "=1.6.14" }
+solana-vote-program = { path = "../programs/vote", version = "=1.6.14" }
+spl-token-v2-0 = { package = "spl-token", version = "=3.1.1", features = ["no-entrypoint"] }
+
velas-account-program = { path = "../programs/velas-account-program" }
diff --git a/account-decoder/src/lib.rs b/account-decoder/src/lib.rs
index 611be374e4..7f1e7c40c7 100644
--- a/account-decoder/src/lib.rs
+++ b/account-decoder/src/lib.rs
@@ -16,7 +16,10 @@ pub mod validator_info;
use {
crate::parse_account_data::{parse_account_data, AccountAdditionalData, ParsedAccount},
- solana_sdk::{account::Account, clock::Epoch, fee_calculator::FeeCalculator, pubkey::Pubkey},
+ solana_sdk::{
+ account::ReadableAccount, account::WritableAccount, clock::Epoch,
+ fee_calculator::FeeCalculator, pubkey::Pubkey,
+ },
std::{
io::{Read, Write},
str::FromStr,
@@ -45,7 +48,7 @@ pub enum UiAccountData {
Binary(String, UiAccountEncoding),
}
-#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
+#[derive(Serialize, Deserialize, Clone, Copy, Debug, PartialEq)]
#[serde(rename_all = "camelCase")]
pub enum UiAccountEncoding {
Binary, // Legacy. Retained for RPC backwards compatibility
@@ -57,58 +60,61 @@ pub enum UiAccountEncoding {
}
impl UiAccount {
- pub fn encode(
+ pub fn encode(
pubkey: &Pubkey,
- account: Account,
+ account: &T,
encoding: UiAccountEncoding,
additional_data: Option,
data_slice_config: Option,
) -> Self {
let data = match encoding {
UiAccountEncoding::Binary => UiAccountData::LegacyBinary(
- bs58::encode(slice_data(&account.data, data_slice_config)).into_string(),
+ bs58::encode(slice_data(&account.data(), data_slice_config)).into_string(),
),
UiAccountEncoding::Base58 => UiAccountData::Binary(
- bs58::encode(slice_data(&account.data, data_slice_config)).into_string(),
+ bs58::encode(slice_data(&account.data(), data_slice_config)).into_string(),
encoding,
),
UiAccountEncoding::Base64 => UiAccountData::Binary(
- base64::encode(slice_data(&account.data, data_slice_config)),
+ base64::encode(slice_data(&account.data(), data_slice_config)),
encoding,
),
UiAccountEncoding::Base64Zstd => {
let mut encoder = zstd::stream::write::Encoder::new(Vec::new(), 0).unwrap();
match encoder
- .write_all(slice_data(&account.data, data_slice_config))
+ .write_all(slice_data(&account.data(), data_slice_config))
.and_then(|()| encoder.finish())
{
Ok(zstd_data) => UiAccountData::Binary(base64::encode(zstd_data), encoding),
Err(_) => UiAccountData::Binary(
- base64::encode(slice_data(&account.data, data_slice_config)),
+ base64::encode(slice_data(&account.data(), data_slice_config)),
UiAccountEncoding::Base64,
),
}
}
UiAccountEncoding::JsonParsed => {
if let Ok(parsed_data) =
- parse_account_data(pubkey, &account.owner, &account.data, additional_data)
+ parse_account_data(pubkey, &account.owner(), &account.data(), additional_data)
{
UiAccountData::Json(parsed_data)
} else {
- UiAccountData::Binary(base64::encode(&account.data), UiAccountEncoding::Base64)
+ UiAccountData::Binary(
+ base64::encode(&account.data()),
+ UiAccountEncoding::Base64,
+ )
}
}
};
UiAccount {
- lamports: account.lamports,
+ lamports: account.lamports(),
data,
- owner: account.owner.to_string(),
- executable: account.executable,
- rent_epoch: account.rent_epoch,
+ owner: account.owner().to_string(),
+ executable: account.executable(),
+ rent_epoch: account.rent_epoch(),
}
}
- pub fn decode(&self) -> Option {
+ pub fn decode(&self) -> Option {
let data = match &self.data {
UiAccountData::Json(_) => None,
UiAccountData::LegacyBinary(blob) => bs58::decode(blob).into_vec().ok(),
@@ -128,13 +134,13 @@ impl UiAccount {
UiAccountEncoding::Binary | UiAccountEncoding::JsonParsed => None,
},
}?;
- Some(Account {
- lamports: self.lamports,
+ Some(T::create(
+ self.lamports,
data,
- owner: Pubkey::from_str(&self.owner).ok()?,
- executable: self.executable,
- rent_epoch: self.rent_epoch,
- })
+ Pubkey::from_str(&self.owner).ok()?,
+ self.executable,
+ self.rent_epoch,
+ ))
}
}
@@ -184,6 +190,7 @@ fn slice_data(data: &[u8], data_slice_config: Option) -> &[u8
#[cfg(test)]
mod test {
use super::*;
+ use solana_sdk::account::{Account, AccountSharedData};
#[test]
fn test_slice_data() {
@@ -217,10 +224,10 @@ mod test {
fn test_base64_zstd() {
let encoded_account = UiAccount::encode(
&Pubkey::default(),
- Account {
+ &AccountSharedData::from(Account {
data: vec![0; 1024],
..Account::default()
- },
+ }),
UiAccountEncoding::Base64Zstd,
None,
None,
@@ -230,7 +237,9 @@ mod test {
UiAccountData::Binary(_, UiAccountEncoding::Base64Zstd)
));
- let decoded_account = encoded_account.decode().unwrap();
- assert_eq!(decoded_account.data, vec![0; 1024]);
+ let decoded_account = encoded_account.decode::().unwrap();
+ assert_eq!(decoded_account.data(), &vec![0; 1024]);
+ let decoded_account = encoded_account.decode::().unwrap();
+ assert_eq!(decoded_account.data(), &vec![0; 1024]);
}
}
diff --git a/account-decoder/src/parse_config.rs b/account-decoder/src/parse_config.rs
index a0d5623b32..3a9d6151b5 100644
--- a/account-decoder/src/parse_config.rs
+++ b/account-decoder/src/parse_config.rs
@@ -91,6 +91,7 @@ mod test {
use crate::validator_info::ValidatorInfo;
use serde_json::json;
use solana_config_program::create_config_account;
+ use solana_sdk::account::ReadableAccount;
#[test]
fn test_parse_config() {
@@ -101,7 +102,7 @@ mod test {
let stake_config_account = create_config_account(vec![], &stake_config, 10);
assert_eq!(
parse_config(
- &stake_config_account.data,
+ &stake_config_account.data(),
&solana_stake_program::config::id()
)
.unwrap(),
@@ -124,7 +125,7 @@ mod test {
10,
);
assert_eq!(
- parse_config(&validator_info_config_account.data, &info_pubkey).unwrap(),
+ parse_config(&validator_info_config_account.data(), &info_pubkey).unwrap(),
ConfigAccountType::ValidatorInfo(UiConfig {
keys: vec![
UiConfigKey {
diff --git a/account-decoder/src/parse_token.rs b/account-decoder/src/parse_token.rs
index c7f1587c0c..b1bccfc537 100644
--- a/account-decoder/src/parse_token.rs
+++ b/account-decoder/src/parse_token.rs
@@ -14,23 +14,23 @@ use std::str::FromStr;
// A helper function to convert spl_token_v2_0::id() as spl_sdk::pubkey::Pubkey to
// solana_sdk::pubkey::Pubkey
pub fn spl_token_id_v2_0() -> Pubkey {
- Pubkey::from_str(&spl_token_v2_0::id().to_string()).unwrap()
+ Pubkey::new_from_array(spl_token_v2_0::id().to_bytes())
}
// A helper function to convert spl_token_v2_0::native_mint::id() as spl_sdk::pubkey::Pubkey to
// solana_sdk::pubkey::Pubkey
pub fn spl_token_v2_0_native_mint() -> Pubkey {
- Pubkey::from_str(&spl_token_v2_0::native_mint::id().to_string()).unwrap()
+ Pubkey::new_from_array(spl_token_v2_0::native_mint::id().to_bytes())
}
// A helper function to convert a solana_sdk::pubkey::Pubkey to spl_sdk::pubkey::Pubkey
pub fn spl_token_v2_0_pubkey(pubkey: &Pubkey) -> SplTokenPubkey {
- SplTokenPubkey::from_str(&pubkey.to_string()).unwrap()
+ SplTokenPubkey::new_from_array(pubkey.to_bytes())
}
// A helper function to convert a spl_sdk::pubkey::Pubkey to solana_sdk::pubkey::Pubkey
pub fn pubkey_from_spl_token_v2_0(pubkey: &SplTokenPubkey) -> Pubkey {
- Pubkey::from_str(&pubkey.to_string()).unwrap()
+ Pubkey::new_from_array(pubkey.to_bytes())
}
pub fn parse_token(
diff --git a/accounts-bench/Cargo.toml b/accounts-bench/Cargo.toml
index 47eeb976dc..e93d4fb719 100644
--- a/accounts-bench/Cargo.toml
+++ b/accounts-bench/Cargo.toml
@@ -2,7 +2,7 @@
authors = ["Solana Maintainers "]
edition = "2018"
name = "solana-accounts-bench"
-version = "1.5.19"
+version = "1.6.14"
repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0"
homepage = "https://solana.com/"
@@ -10,12 +10,12 @@ publish = false
[dependencies]
log = "0.4.11"
-rayon = "1.4.0"
-solana-logger = { path = "../logger", version = "=1.5.19" }
-solana-runtime = { path = "../runtime", version = "=1.5.19" }
-solana-measure = { path = "../measure", version = "=1.5.19" }
-solana-sdk = { path = "../sdk", version = "=1.5.19" }
-solana-version = { path = "../version" }
+rayon = "1.5.0"
+solana-logger = { path = "../logger", version = "=1.6.14" }
+solana-runtime = { path = "../runtime", version = "=1.6.14" }
+solana-measure = { path = "../measure", version = "=1.6.14" }
+solana-sdk = { path = "../sdk", version = "=1.6.14" }
+solana-version = { path = "../version", version = "=1.6.14" }
rand = "0.7.0"
clap = "2.33.1"
crossbeam-channel = "0.4"
diff --git a/accounts-bench/src/main.rs b/accounts-bench/src/main.rs
index 9d49e7853f..e23be3ce71 100644
--- a/accounts-bench/src/main.rs
+++ b/accounts-bench/src/main.rs
@@ -6,10 +6,10 @@ use rayon::prelude::*;
use solana_measure::measure::Measure;
use solana_runtime::{
accounts::{create_test_accounts, update_accounts_bench, Accounts},
- accounts_index::Ancestors,
+ accounts_index::{AccountSecondaryIndexes, Ancestors},
};
use solana_sdk::{genesis_config::ClusterType, pubkey::Pubkey};
-use std::{collections::HashSet, env, fs, path::PathBuf};
+use std::{env, fs, path::PathBuf};
fn main() {
solana_logger::setup();
@@ -58,8 +58,12 @@ fn main() {
if fs::remove_dir_all(path.clone()).is_err() {
println!("Warning: Couldn't remove {:?}", path);
}
- let accounts =
- Accounts::new_with_config(vec![path], &ClusterType::Testnet, HashSet::new(), false);
+ let accounts = Accounts::new_with_config(
+ vec![path],
+ &ClusterType::Testnet,
+ AccountSecondaryIndexes::default(),
+ false,
+ );
println!("Creating {} accounts", num_accounts);
let mut create_time = Measure::start("create accounts");
let pubkeys: Vec<_> = (0..num_slots)
diff --git a/accounts-cluster-bench/.gitignore b/accounts-cluster-bench/.gitignore
new file mode 100644
index 0000000000..b645148aa9
--- /dev/null
+++ b/accounts-cluster-bench/.gitignore
@@ -0,0 +1 @@
+/farf/
diff --git a/accounts-cluster-bench/Cargo.toml b/accounts-cluster-bench/Cargo.toml
new file mode 100644
index 0000000000..8e04c6ba37
--- /dev/null
+++ b/accounts-cluster-bench/Cargo.toml
@@ -0,0 +1,34 @@
+[package]
+authors = ["Solana Maintainers "]
+edition = "2018"
+name = "solana-accounts-cluster-bench"
+version = "1.6.14"
+repository = "https://github.com/solana-labs/solana"
+license = "Apache-2.0"
+homepage = "https://solana.com/"
+publish = false
+
+[dependencies]
+clap = "2.33.1"
+log = "0.4.11"
+rand = "0.7.0"
+rayon = "1.4.1"
+solana-account-decoder = { path = "../account-decoder", version = "=1.6.14" }
+solana-clap-utils = { path = "../clap-utils", version = "=1.6.14" }
+solana-client = { path = "../client", version = "=1.6.14" }
+solana-core = { path = "../core", version = "=1.6.14" }
+solana-measure = { path = "../measure", version = "=1.6.14" }
+solana-logger = { path = "../logger", version = "=1.6.14" }
+solana-net-utils = { path = "../net-utils", version = "=1.6.14" }
+solana-faucet = { path = "../faucet", version = "=1.6.14" }
+solana-runtime = { path = "../runtime", version = "=1.6.14" }
+solana-sdk = { path = "../sdk", version = "=1.6.14" }
+solana-transaction-status = { path = "../transaction-status", version = "=1.6.14" }
+solana-version = { path = "../version", version = "=1.6.14" }
+spl-token-v2-0 = { package = "spl-token", version = "=3.1.1", features = ["no-entrypoint"] }
+
+[dev-dependencies]
+solana-local-cluster = { path = "../local-cluster", version = "=1.6.14" }
+
+[package.metadata.docs.rs]
+targets = ["x86_64-unknown-linux-gnu"]
diff --git a/accounts-cluster-bench/src/main.rs b/accounts-cluster-bench/src/main.rs
new file mode 100644
index 0000000000..5896843f94
--- /dev/null
+++ b/accounts-cluster-bench/src/main.rs
@@ -0,0 +1,742 @@
+#![allow(clippy::integer_arithmetic)]
+use clap::{crate_description, crate_name, value_t, values_t_or_exit, App, Arg};
+use log::*;
+use rand::{thread_rng, Rng};
+use rayon::prelude::*;
+use solana_account_decoder::parse_token::spl_token_v2_0_pubkey;
+use solana_clap_utils::input_parsers::pubkey_of;
+use solana_client::rpc_client::RpcClient;
+use solana_core::gossip_service::discover;
+use solana_faucet::faucet::{request_airdrop_transaction, FAUCET_PORT};
+use solana_measure::measure::Measure;
+use solana_runtime::inline_spl_token_v2_0;
+use solana_sdk::{
+ commitment_config::CommitmentConfig,
+ message::Message,
+ pubkey::Pubkey,
+ rpc_port::DEFAULT_RPC_PORT,
+ signature::{read_keypair_file, Keypair, Signature, Signer},
+ system_instruction, system_program,
+ timing::timestamp,
+ transaction::Transaction,
+};
+use solana_transaction_status::parse_token::spl_token_v2_0_instruction;
+use std::{
+ net::SocketAddr,
+ process::exit,
+ sync::{
+ atomic::{AtomicBool, AtomicU64, Ordering},
+ Arc, RwLock,
+ },
+ thread::{sleep, Builder, JoinHandle},
+ time::{Duration, Instant},
+};
+
+// Create and close messages both require 2 signatures; if transaction construction changes, update
+// this magic number
+const NUM_SIGNATURES: u64 = 2;
+
+pub fn airdrop_lamports(
+ client: &RpcClient,
+ faucet_addr: &SocketAddr,
+ id: &Keypair,
+ desired_balance: u64,
+) -> bool {
+ let starting_balance = client.get_balance(&id.pubkey()).unwrap_or(0);
+ info!("starting balance {}", starting_balance);
+
+ if starting_balance < desired_balance {
+ let airdrop_amount = desired_balance - starting_balance;
+ info!(
+ "Airdropping {:?} lamports from {} for {}",
+ airdrop_amount,
+ faucet_addr,
+ id.pubkey(),
+ );
+
+ let (blockhash, _fee_calculator) = client.get_recent_blockhash().unwrap();
+ match request_airdrop_transaction(&faucet_addr, &id.pubkey(), airdrop_amount, blockhash) {
+ Ok(transaction) => {
+ let mut tries = 0;
+ loop {
+ tries += 1;
+ let result = client.send_and_confirm_transaction(&transaction);
+
+ if result.is_ok() {
+ break;
+ }
+ if tries >= 5 {
+ panic!(
+ "Error requesting airdrop: to addr: {:?} amount: {} {:?}",
+ faucet_addr, airdrop_amount, result
+ )
+ }
+ }
+ }
+ Err(err) => {
+ panic!(
+ "Error requesting airdrop: {:?} to addr: {:?} amount: {}",
+ err, faucet_addr, airdrop_amount
+ );
+ }
+ };
+
+ let current_balance = client.get_balance(&id.pubkey()).unwrap_or_else(|e| {
+ panic!("airdrop error {}", e);
+ });
+ info!("current balance {}...", current_balance);
+
+ if current_balance - starting_balance != airdrop_amount {
+ info!(
+ "Airdrop failed? {} {} {} {}",
+ id.pubkey(),
+ current_balance,
+ starting_balance,
+ airdrop_amount,
+ );
+ }
+ }
+ true
+}
+
+// signature, timestamp, id
+type PendingQueue = Vec<(Signature, u64, u64)>;
+
+struct TransactionExecutor {
+ sig_clear_t: JoinHandle<()>,
+ sigs: Arc>,
+ cleared: Arc>>,
+ exit: Arc,
+ counter: AtomicU64,
+ client: RpcClient,
+}
+
+impl TransactionExecutor {
+ fn new(entrypoint_addr: SocketAddr) -> Self {
+ let sigs = Arc::new(RwLock::new(Vec::new()));
+ let cleared = Arc::new(RwLock::new(Vec::new()));
+ let exit = Arc::new(AtomicBool::new(false));
+ let sig_clear_t = Self::start_sig_clear_thread(&exit, &sigs, &cleared, entrypoint_addr);
+ let client =
+ RpcClient::new_socket_with_commitment(entrypoint_addr, CommitmentConfig::confirmed());
+ Self {
+ sigs,
+ cleared,
+ sig_clear_t,
+ exit,
+ counter: AtomicU64::new(0),
+ client,
+ }
+ }
+
+ fn num_outstanding(&self) -> usize {
+ self.sigs.read().unwrap().len()
+ }
+
+ fn push_transactions(&self, txs: Vec) -> Vec {
+ let mut ids = vec![];
+ let new_sigs = txs.into_iter().filter_map(|tx| {
+ let id = self.counter.fetch_add(1, Ordering::Relaxed);
+ ids.push(id);
+ match self.client.send_transaction(&tx) {
+ Ok(sig) => {
+ return Some((sig, timestamp(), id));
+ }
+ Err(e) => {
+ info!("error: {:#?}", e);
+ }
+ }
+ None
+ });
+ let mut sigs_w = self.sigs.write().unwrap();
+ sigs_w.extend(new_sigs);
+ ids
+ }
+
+ fn drain_cleared(&self) -> Vec {
+ std::mem::take(&mut *self.cleared.write().unwrap())
+ }
+
+ fn close(self) {
+ self.exit.store(true, Ordering::Relaxed);
+ self.sig_clear_t.join().unwrap();
+ }
+
+ fn start_sig_clear_thread(
+ exit: &Arc,
+ sigs: &Arc>,
+ cleared: &Arc>>,
+ entrypoint_addr: SocketAddr,
+ ) -> JoinHandle<()> {
+ let sigs = sigs.clone();
+ let exit = exit.clone();
+ let cleared = cleared.clone();
+ Builder::new()
+ .name("sig_clear".to_string())
+ .spawn(move || {
+ let client = RpcClient::new_socket_with_commitment(
+ entrypoint_addr,
+ CommitmentConfig::confirmed(),
+ );
+ let mut success = 0;
+ let mut error_count = 0;
+ let mut timed_out = 0;
+ let mut last_log = Instant::now();
+ while !exit.load(Ordering::Relaxed) {
+ let sigs_len = sigs.read().unwrap().len();
+ if sigs_len > 0 {
+ let mut sigs_w = sigs.write().unwrap();
+ let mut start = Measure::start("sig_status");
+ let statuses: Vec<_> = sigs_w
+ .chunks(200)
+ .flat_map(|sig_chunk| {
+ let only_sigs: Vec<_> = sig_chunk.iter().map(|s| s.0).collect();
+ client
+ .get_signature_statuses(&only_sigs)
+ .expect("status fail")
+ .value
+ })
+ .collect();
+ let mut num_cleared = 0;
+ let start_len = sigs_w.len();
+ let now = timestamp();
+ let mut new_ids = vec![];
+ let mut i = 0;
+ let mut j = 0;
+ while i != sigs_w.len() {
+ let mut retain = true;
+ let sent_ts = sigs_w[i].1;
+ if let Some(e) = &statuses[j] {
+ debug!("error: {:?}", e);
+ if e.status.is_ok() {
+ success += 1;
+ } else {
+ error_count += 1;
+ }
+ num_cleared += 1;
+ retain = false;
+ } else if now - sent_ts > 30_000 {
+ retain = false;
+ timed_out += 1;
+ }
+ if !retain {
+ new_ids.push(sigs_w.remove(i).2);
+ } else {
+ i += 1;
+ }
+ j += 1;
+ }
+ let final_sigs_len = sigs_w.len();
+ drop(sigs_w);
+ cleared.write().unwrap().extend(new_ids);
+ start.stop();
+ debug!(
+ "sigs len: {:?} success: {} took: {}ms cleared: {}/{}",
+ final_sigs_len,
+ success,
+ start.as_ms(),
+ num_cleared,
+ start_len,
+ );
+ if last_log.elapsed().as_millis() > 5000 {
+ info!(
+ "success: {} error: {} timed_out: {}",
+ success, error_count, timed_out,
+ );
+ last_log = Instant::now();
+ }
+ }
+ sleep(Duration::from_millis(200));
+ }
+ })
+ .unwrap()
+ }
+}
+
+struct SeedTracker {
+ max_created: Arc,
+ max_closed: Arc,
+}
+
+fn make_create_message(
+ keypair: &Keypair,
+ base_keypair: &Keypair,
+ max_created_seed: Arc,
+ num_instructions: usize,
+ balance: u64,
+ maybe_space: Option,
+ mint: Option,
+) -> Message {
+ let space = maybe_space.unwrap_or_else(|| thread_rng().gen_range(0, 1000));
+
+ let instructions: Vec<_> = (0..num_instructions)
+ .into_iter()
+ .map(|_| {
+ let program_id = if mint.is_some() {
+ inline_spl_token_v2_0::id()
+ } else {
+ system_program::id()
+ };
+ let seed = max_created_seed.fetch_add(1, Ordering::Relaxed).to_string();
+ let to_pubkey =
+ Pubkey::create_with_seed(&base_keypair.pubkey(), &seed, &program_id).unwrap();
+ let mut instructions = vec![system_instruction::create_account_with_seed(
+ &keypair.pubkey(),
+ &to_pubkey,
+ &base_keypair.pubkey(),
+ &seed,
+ balance,
+ space,
+ &program_id,
+ )];
+ if let Some(mint_address) = mint {
+ instructions.push(spl_token_v2_0_instruction(
+ spl_token_v2_0::instruction::initialize_account(
+ &spl_token_v2_0::id(),
+ &spl_token_v2_0_pubkey(&to_pubkey),
+ &spl_token_v2_0_pubkey(&mint_address),
+ &spl_token_v2_0_pubkey(&base_keypair.pubkey()),
+ )
+ .unwrap(),
+ ));
+ }
+
+ instructions
+ })
+ .collect();
+ let instructions: Vec<_> = instructions.into_iter().flatten().collect();
+
+ Message::new(&instructions, Some(&keypair.pubkey()))
+}
+
+fn make_close_message(
+ keypair: &Keypair,
+ base_keypair: &Keypair,
+ max_closed_seed: Arc,
+ num_instructions: usize,
+ balance: u64,
+ spl_token: bool,
+) -> Message {
+ let instructions: Vec<_> = (0..num_instructions)
+ .into_iter()
+ .map(|_| {
+ let program_id = if spl_token {
+ inline_spl_token_v2_0::id()
+ } else {
+ system_program::id()
+ };
+ let seed = max_closed_seed.fetch_add(1, Ordering::Relaxed).to_string();
+ let address =
+ Pubkey::create_with_seed(&base_keypair.pubkey(), &seed, &program_id).unwrap();
+ if spl_token {
+ spl_token_v2_0_instruction(
+ spl_token_v2_0::instruction::close_account(
+ &spl_token_v2_0::id(),
+ &spl_token_v2_0_pubkey(&address),
+ &spl_token_v2_0_pubkey(&keypair.pubkey()),
+ &spl_token_v2_0_pubkey(&base_keypair.pubkey()),
+ &[],
+ )
+ .unwrap(),
+ )
+ } else {
+ system_instruction::transfer_with_seed(
+ &address,
+ &base_keypair.pubkey(),
+ seed,
+ &program_id,
+ &keypair.pubkey(),
+ balance,
+ )
+ }
+ })
+ .collect();
+
+ Message::new(&instructions, Some(&keypair.pubkey()))
+}
+
+#[allow(clippy::too_many_arguments)]
+fn run_accounts_bench(
+ entrypoint_addr: SocketAddr,
+ faucet_addr: SocketAddr,
+ payer_keypairs: &[&Keypair],
+ iterations: usize,
+ maybe_space: Option,
+ batch_size: usize,
+ close_nth: u64,
+ maybe_lamports: Option,
+ num_instructions: usize,
+ mint: Option,
+) {
+ assert!(num_instructions > 0);
+ let client =
+ RpcClient::new_socket_with_commitment(entrypoint_addr, CommitmentConfig::confirmed());
+
+ info!("Targeting {}", entrypoint_addr);
+
+ let mut last_blockhash = Instant::now();
+ let mut last_log = Instant::now();
+ let mut count = 0;
+ let mut recent_blockhash = client.get_recent_blockhash().expect("blockhash");
+ let mut tx_sent_count = 0;
+ let mut total_accounts_created = 0;
+ let mut total_accounts_closed = 0;
+ let mut balances: Vec<_> = payer_keypairs
+ .iter()
+ .map(|keypair| client.get_balance(&keypair.pubkey()).unwrap_or(0))
+ .collect();
+ let mut last_balance = Instant::now();
+
+ let default_max_lamports = 1000;
+ let min_balance = maybe_lamports.unwrap_or_else(|| {
+ let space = maybe_space.unwrap_or(default_max_lamports);
+ client
+ .get_minimum_balance_for_rent_exemption(space as usize)
+ .expect("min balance")
+ });
+
+ let base_keypair = Keypair::new();
+ let seed_tracker = SeedTracker {
+ max_created: Arc::new(AtomicU64::default()),
+ max_closed: Arc::new(AtomicU64::default()),
+ };
+
+ info!("Starting balance(s): {:?}", balances);
+
+ let executor = TransactionExecutor::new(entrypoint_addr);
+
+ loop {
+ if last_blockhash.elapsed().as_millis() > 10_000 {
+ recent_blockhash = client.get_recent_blockhash().expect("blockhash");
+ last_blockhash = Instant::now();
+ }
+
+ let fee = recent_blockhash
+ .1
+ .lamports_per_signature
+ .saturating_mul(NUM_SIGNATURES);
+ let lamports = min_balance + fee;
+
+ for (i, balance) in balances.iter_mut().enumerate() {
+ if *balance < lamports || last_balance.elapsed().as_millis() > 2000 {
+ if let Ok(b) = client.get_balance(&payer_keypairs[i].pubkey()) {
+ *balance = b;
+ }
+ last_balance = Instant::now();
+ if *balance < lamports * 2 {
+ info!(
+ "Balance {} is less than needed: {}, doing aidrop...",
+ balance, lamports
+ );
+ if !airdrop_lamports(
+ &client,
+ &faucet_addr,
+ &payer_keypairs[i],
+ lamports * 100_000,
+ ) {
+ warn!("failed airdrop, exiting");
+ return;
+ }
+ }
+ }
+ }
+
+ let sigs_len = executor.num_outstanding();
+ if sigs_len < batch_size {
+ let num_to_create = batch_size - sigs_len;
+ if num_to_create >= payer_keypairs.len() {
+ info!("creating {} new", num_to_create);
+ let chunk_size = num_to_create / payer_keypairs.len();
+ if chunk_size > 0 {
+ for (i, keypair) in payer_keypairs.iter().enumerate() {
+ let txs: Vec<_> = (0..chunk_size)
+ .into_par_iter()
+ .map(|_| {
+ let message = make_create_message(
+ keypair,
+ &base_keypair,
+ seed_tracker.max_created.clone(),
+ num_instructions,
+ min_balance,
+ maybe_space,
+ mint,
+ );
+ let signers: Vec<&Keypair> = vec![keypair, &base_keypair];
+ Transaction::new(&signers, message, recent_blockhash.0)
+ })
+ .collect();
+ balances[i] = balances[i].saturating_sub(lamports * txs.len() as u64);
+ info!("txs: {}", txs.len());
+ let new_ids = executor.push_transactions(txs);
+ info!("ids: {}", new_ids.len());
+ tx_sent_count += new_ids.len();
+ total_accounts_created += num_instructions * new_ids.len();
+ }
+ }
+ }
+
+ if close_nth > 0 {
+ let expected_closed = total_accounts_created as u64 / close_nth;
+ if expected_closed > total_accounts_closed {
+ let txs: Vec<_> = (0..expected_closed - total_accounts_closed)
+ .into_par_iter()
+ .map(|_| {
+ let message = make_close_message(
+ &payer_keypairs[0],
+ &base_keypair,
+ seed_tracker.max_closed.clone(),
+ 1,
+ min_balance,
+ mint.is_some(),
+ );
+ let signers: Vec<&Keypair> = vec![&payer_keypairs[0], &base_keypair];
+ Transaction::new(&signers, message, recent_blockhash.0)
+ })
+ .collect();
+ balances[0] = balances[0].saturating_sub(fee * txs.len() as u64);
+ info!("close txs: {}", txs.len());
+ let new_ids = executor.push_transactions(txs);
+ info!("close ids: {}", new_ids.len());
+ tx_sent_count += new_ids.len();
+ total_accounts_closed += new_ids.len() as u64;
+ }
+ }
+ } else {
+ let _ = executor.drain_cleared();
+ }
+
+ count += 1;
+ if last_log.elapsed().as_millis() > 3000 {
+ info!(
+ "total_accounts_created: {} total_accounts_closed: {} tx_sent_count: {} loop_count: {} balance(s): {:?}",
+ total_accounts_created, total_accounts_closed, tx_sent_count, count, balances
+ );
+ last_log = Instant::now();
+ }
+ if iterations != 0 && count >= iterations {
+ break;
+ }
+ if executor.num_outstanding() >= batch_size {
+ sleep(Duration::from_millis(500));
+ }
+ }
+ executor.close();
+}
+
+fn main() {
+ solana_logger::setup_with_default("solana=info");
+ let matches = App::new(crate_name!())
+ .about(crate_description!())
+ .version(solana_version::version!())
+ .arg(
+ Arg::with_name("entrypoint")
+ .long("entrypoint")
+ .takes_value(true)
+ .value_name("HOST:PORT")
+ .help("RPC entrypoint address. Usually :8899"),
+ )
+ .arg(
+ Arg::with_name("faucet_addr")
+ .long("faucet")
+ .takes_value(true)
+ .value_name("HOST:PORT")
+ .help("Faucet entrypoint address. Usually :9900"),
+ )
+ .arg(
+ Arg::with_name("space")
+ .long("space")
+ .takes_value(true)
+ .value_name("BYTES")
+ .help("Size of accounts to create"),
+ )
+ .arg(
+ Arg::with_name("lamports")
+ .long("lamports")
+ .takes_value(true)
+ .value_name("LAMPORTS")
+ .help("How many lamports to fund each account"),
+ )
+ .arg(
+ Arg::with_name("identity")
+ .long("identity")
+ .takes_value(true)
+ .multiple(true)
+ .value_name("FILE")
+ .help("keypair file"),
+ )
+ .arg(
+ Arg::with_name("batch_size")
+ .long("batch-size")
+ .takes_value(true)
+ .value_name("BYTES")
+ .help("Number of transactions to send per batch"),
+ )
+ .arg(
+ Arg::with_name("close_nth")
+ .long("close-frequency")
+ .takes_value(true)
+ .value_name("BYTES")
+ .help(
+ "Send close transactions after this many accounts created. \
+ Note: a `close-frequency` value near or below `batch-size` \
+ may result in transaction-simulation errors, as the close \
+ transactions will be submitted before the corresponding \
+ create transactions have been confirmed",
+ ),
+ )
+ .arg(
+ Arg::with_name("num_instructions")
+ .long("num-instructions")
+ .takes_value(true)
+ .value_name("NUM")
+ .help("Number of accounts to create on each transaction"),
+ )
+ .arg(
+ Arg::with_name("iterations")
+ .long("iterations")
+ .takes_value(true)
+ .value_name("NUM")
+ .help("Number of iterations to make"),
+ )
+ .arg(
+ Arg::with_name("check_gossip")
+ .long("check-gossip")
+ .help("Just use entrypoint address directly"),
+ )
+ .arg(
+ Arg::with_name("mint")
+ .long("mint")
+ .takes_value(true)
+ .help("Mint address to initialize account"),
+ )
+ .get_matches();
+
+ let skip_gossip = !matches.is_present("check_gossip");
+
+ let port = if skip_gossip { DEFAULT_RPC_PORT } else { 8001 };
+ let mut entrypoint_addr = SocketAddr::from(([127, 0, 0, 1], port));
+ if let Some(addr) = matches.value_of("entrypoint") {
+ entrypoint_addr = solana_net_utils::parse_host_port(addr).unwrap_or_else(|e| {
+ eprintln!("failed to parse entrypoint address: {}", e);
+ exit(1)
+ });
+ }
+ let mut faucet_addr = SocketAddr::from(([127, 0, 0, 1], FAUCET_PORT));
+ if let Some(addr) = matches.value_of("faucet_addr") {
+ faucet_addr = solana_net_utils::parse_host_port(addr).unwrap_or_else(|e| {
+ eprintln!("failed to parse entrypoint address: {}", e);
+ exit(1)
+ });
+ }
+
+ let space = value_t!(matches, "space", u64).ok();
+ let lamports = value_t!(matches, "lamports", u64).ok();
+ let batch_size = value_t!(matches, "batch_size", usize).unwrap_or(4);
+ let close_nth = value_t!(matches, "close_nth", u64).unwrap_or(0);
+ let iterations = value_t!(matches, "iterations", usize).unwrap_or(10);
+ let num_instructions = value_t!(matches, "num_instructions", usize).unwrap_or(1);
+ if num_instructions == 0 || num_instructions > 500 {
+ eprintln!("bad num_instructions: {}", num_instructions);
+ exit(1);
+ }
+
+ let mint = pubkey_of(&matches, "mint");
+
+ let payer_keypairs: Vec<_> = values_t_or_exit!(matches, "identity", String)
+ .iter()
+ .map(|keypair_string| {
+ read_keypair_file(keypair_string)
+ .unwrap_or_else(|_| panic!("bad keypair {:?}", keypair_string))
+ })
+ .collect();
+ let mut payer_keypair_refs: Vec<&Keypair> = vec![];
+ for keypair in payer_keypairs.iter() {
+ payer_keypair_refs.push(keypair);
+ }
+
+ let rpc_addr = if !skip_gossip {
+ info!("Finding cluster entry: {:?}", entrypoint_addr);
+ let (gossip_nodes, _validators) = discover(
+ None, // keypair
+ Some(&entrypoint_addr),
+ None, // num_nodes
+ Duration::from_secs(60), // timeout
+ None, // find_node_by_pubkey
+ Some(&entrypoint_addr), // find_node_by_gossip_addr
+ None, // my_gossip_addr
+ 0, // my_shred_version
+ )
+ .unwrap_or_else(|err| {
+ eprintln!("Failed to discover {} node: {:?}", entrypoint_addr, err);
+ exit(1);
+ });
+
+ info!("done found {} nodes", gossip_nodes.len());
+ gossip_nodes[0].rpc
+ } else {
+ info!("Using {:?} as the RPC address", entrypoint_addr);
+ entrypoint_addr
+ };
+
+ run_accounts_bench(
+ rpc_addr,
+ faucet_addr,
+ &payer_keypair_refs,
+ iterations,
+ space,
+ batch_size,
+ close_nth,
+ lamports,
+ num_instructions,
+ mint,
+ );
+}
+
+#[cfg(test)]
+pub mod test {
+ use super::*;
+ use solana_core::validator::ValidatorConfig;
+ use solana_local_cluster::{
+ local_cluster::{ClusterConfig, LocalCluster},
+ validator_configs::make_identical_validator_configs,
+ };
+ use solana_sdk::poh_config::PohConfig;
+
+ #[test]
+ fn test_accounts_cluster_bench() {
+ solana_logger::setup();
+ let validator_config = ValidatorConfig::default();
+ let num_nodes = 1;
+ let mut config = ClusterConfig {
+ cluster_lamports: 10_000_000,
+ poh_config: PohConfig::new_sleep(Duration::from_millis(50)),
+ node_stakes: vec![100; num_nodes],
+ validator_configs: make_identical_validator_configs(&validator_config, num_nodes),
+ ..ClusterConfig::default()
+ };
+
+ let faucet_addr = SocketAddr::from(([127, 0, 0, 1], 9900));
+ let cluster = LocalCluster::new(&mut config);
+ let iterations = 10;
+ let maybe_space = None;
+ let batch_size = 100;
+ let close_nth = 100;
+ let maybe_lamports = None;
+ let num_instructions = 2;
+ let mut start = Measure::start("total accounts run");
+ run_accounts_bench(
+ cluster.entry_point_info.rpc,
+ faucet_addr,
+ &[&cluster.funding_keypair],
+ iterations,
+ maybe_space,
+ batch_size,
+ close_nth,
+ maybe_lamports,
+ num_instructions,
+ None,
+ );
+ start.stop();
+ info!("{}", start);
+ }
+}
diff --git a/banking-bench/Cargo.toml b/banking-bench/Cargo.toml
index ae8bbfaa15..96b57f5855 100644
--- a/banking-bench/Cargo.toml
+++ b/banking-bench/Cargo.toml
@@ -2,7 +2,7 @@
authors = ["Solana Maintainers "]
edition = "2018"
name = "solana-banking-bench"
-version = "1.5.19"
+version = "1.6.14"
repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0"
homepage = "https://solana.com/"
@@ -13,17 +13,17 @@ clap = "2.33.1"
crossbeam-channel = "0.4"
log = "0.4.11"
rand = "0.7.0"
-rayon = "1.4.0"
-solana-core = { path = "../core", version = "=1.5.19" }
-solana-clap-utils = { path = "../clap-utils", version = "=1.5.19" }
-solana-streamer = { path = "../streamer", version = "=1.5.19" }
-solana-perf = { path = "../perf", version = "=1.5.19" }
-solana-ledger = { path = "../ledger", version = "=1.5.19" }
-solana-logger = { path = "../logger", version = "=1.5.19" }
-solana-runtime = { path = "../runtime", version = "=1.5.19" }
-solana-measure = { path = "../measure", version = "=1.5.19" }
-solana-sdk = { path = "../sdk", version = "=1.5.19" }
-solana-version = { path = "../version" }
+rayon = "1.5.0"
+solana-core = { path = "../core", version = "=1.6.14" }
+solana-clap-utils = { path = "../clap-utils", version = "=1.6.14" }
+solana-streamer = { path = "../streamer", version = "=1.6.14" }
+solana-perf = { path = "../perf", version = "=1.6.14" }
+solana-ledger = { path = "../ledger", version = "=1.6.14" }
+solana-logger = { path = "../logger", version = "=1.6.14" }
+solana-runtime = { path = "../runtime", version = "=1.6.14" }
+solana-measure = { path = "../measure", version = "=1.6.14" }
+solana-sdk = { path = "../sdk", version = "=1.6.14" }
+solana-version = { path = "../version", version = "=1.6.14" }
[package.metadata.docs.rs]
targets = ["x86_64-unknown-linux-gnu"]
diff --git a/banks-client/Cargo.toml b/banks-client/Cargo.toml
index 89441a9a0e..ce99abbe64 100644
--- a/banks-client/Cargo.toml
+++ b/banks-client/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "solana-banks-client"
-version = "1.5.19"
+version = "1.6.14"
description = "Solana banks client"
authors = ["Solana Maintainers "]
repository = "https://github.com/solana-labs/solana"
@@ -15,16 +15,16 @@ borsh = "0.8.1"
borsh-derive = "0.8.1"
futures = "0.3"
mio = "0.7.6"
-solana-banks-interface = { path = "../banks-interface", version = "=1.5.19" }
-solana-program = { path = "../sdk/program", version = "=1.5.19" }
-solana-sdk = { path = "../sdk", version = "=1.5.19" }
-tarpc = { version = "0.23.0", features = ["full"] }
-tokio = { version = "0.3.5", features = ["full"] }
-tokio-serde = { version = "0.6", features = ["bincode"] }
+solana-banks-interface = { path = "../banks-interface", version = "=1.6.14" }
+solana-program = { path = "../sdk/program", version = "=1.6.14" }
+solana-sdk = { path = "../sdk", version = "=1.6.14" }
+tarpc = { version = "0.24.1", features = ["full"] }
+tokio = { version = "1", features = ["full"] }
+tokio-serde = { version = "0.8", features = ["bincode"] }
[dev-dependencies]
-solana-runtime = { path = "../runtime", version = "=1.5.19" }
-solana-banks-server = { path = "../banks-server", version = "=1.5.19" }
+solana-runtime = { path = "../runtime", version = "=1.6.14" }
+solana-banks-server = { path = "../banks-server", version = "=1.6.14" }
[lib]
crate-type = ["lib"]
diff --git a/banks-client/src/lib.rs b/banks-client/src/lib.rs
index 7aa7f42c04..5a4d36580e 100644
--- a/banks-client/src/lib.rs
+++ b/banks-client/src/lib.rs
@@ -129,7 +129,7 @@ impl BanksClient {
self.get_account(sysvar::rent::id()).map(|result| {
let rent_sysvar = result?
.ok_or_else(|| io::Error::new(io::ErrorKind::Other, "Rent sysvar not present"))?;
- from_account::(&rent_sysvar).ok_or_else(|| {
+ from_account::(&rent_sysvar).ok_or_else(|| {
io::Error::new(io::ErrorKind::Other, "Failed to deserialize Rent sysvar")
})
})
diff --git a/banks-interface/Cargo.toml b/banks-interface/Cargo.toml
index 1451e69833..ef33e3b95e 100644
--- a/banks-interface/Cargo.toml
+++ b/banks-interface/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "solana-banks-interface"
-version = "1.5.19"
+version = "1.6.14"
description = "Solana banks RPC interface"
authors = ["Solana Maintainers "]
repository = "https://github.com/solana-labs/solana"
@@ -11,12 +11,12 @@ edition = "2018"
[dependencies]
mio = "0.7.6"
-serde = { version = "1.0.118", features = ["derive"] }
-solana-sdk = { path = "../sdk", version = "=1.5.19" }
-tarpc = { version = "0.23.0", features = ["full"] }
+serde = { version = "1.0.122", features = ["derive"] }
+solana-sdk = { path = "../sdk", version = "=1.6.14" }
+tarpc = { version = "0.24.1", features = ["full"] }
[dev-dependencies]
-tokio = { version = "0.3.5", features = ["full"] }
+tokio = { version = "1", features = ["full"] }
[lib]
crate-type = ["lib"]
diff --git a/banks-server/Cargo.toml b/banks-server/Cargo.toml
index ee7f4b2180..df16a93b20 100644
--- a/banks-server/Cargo.toml
+++ b/banks-server/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "solana-banks-server"
-version = "1.5.19"
+version = "1.6.14"
description = "Solana banks server"
authors = ["Solana Maintainers "]
repository = "https://github.com/solana-labs/solana"
@@ -14,13 +14,14 @@ bincode = "1.3.1"
futures = "0.3"
log = "0.4.11"
mio = "0.7.6"
-solana-banks-interface = { path = "../banks-interface", version = "=1.5.19" }
-solana-runtime = { path = "../runtime", version = "=1.5.19" }
-solana-sdk = { path = "../sdk", version = "=1.5.19" }
-solana-metrics = { path = "../metrics", version = "=1.5.19" }
-tarpc = { version = "0.23.0", features = ["full"] }
-tokio = { version = "0.3", features = ["full"] }
-tokio-serde = { version = "0.6", features = ["bincode"] }
+solana-banks-interface = { path = "../banks-interface", version = "=1.6.14" }
+solana-runtime = { path = "../runtime", version = "=1.6.14" }
+solana-sdk = { path = "../sdk", version = "=1.6.14" }
+solana-metrics = { path = "../metrics", version = "=1.6.14" }
+tarpc = { version = "0.24.1", features = ["full"] }
+tokio = { version = "1", features = ["full"] }
+tokio-serde = { version = "0.8", features = ["bincode"] }
+tokio-stream = "0.1"
[lib]
crate-type = ["lib"]
diff --git a/banks-server/src/banks_server.rs b/banks-server/src/banks_server.rs
index a8dbb6f53c..1f1a303ac2 100644
--- a/banks-server/src/banks_server.rs
+++ b/banks-server/src/banks_server.rs
@@ -242,7 +242,7 @@ impl Banks for BanksServer {
commitment: CommitmentLevel,
) -> Option {
let bank = self.bank(commitment);
- bank.get_account(&address)
+ bank.get_account(&address).map(Account::from)
}
}
diff --git a/banks-server/src/rpc_banks_service.rs b/banks-server/src/rpc_banks_service.rs
index 541133e64a..75e5e13ba6 100644
--- a/banks-server/src/rpc_banks_service.rs
+++ b/banks-server/src/rpc_banks_service.rs
@@ -15,6 +15,7 @@ use tokio::{
runtime::Runtime,
time::{self, Duration},
};
+use tokio_stream::wrappers::IntervalStream;
pub struct RpcBanksService {
thread_hdl: JoinHandle<()>,
@@ -35,7 +36,7 @@ async fn start_abortable_tcp_server(
block_commitment_cache.clone(),
)
.fuse();
- let interval = time::interval(Duration::from_millis(100)).fuse();
+ let interval = IntervalStream::new(time::interval(Duration::from_millis(100))).fuse();
pin_mut!(server, interval);
loop {
select! {
diff --git a/bench-exchange/Cargo.toml b/bench-exchange/Cargo.toml
index c9860f9734..12e927f1ec 100644
--- a/bench-exchange/Cargo.toml
+++ b/bench-exchange/Cargo.toml
@@ -2,7 +2,7 @@
authors = ["Solana Maintainers "]
edition = "2018"
name = "solana-bench-exchange"
-version = "1.5.19"
+version = "1.6.14"
repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0"
homepage = "https://solana.com/"
@@ -15,24 +15,24 @@ log = "0.4.11"
num-derive = "0.3"
num-traits = "0.2"
rand = "0.7.0"
-rayon = "1.4.0"
+rayon = "1.5.0"
serde_json = "1.0.56"
serde_yaml = "0.8.13"
-solana-clap-utils = { path = "../clap-utils", version = "=1.5.19" }
-solana-core = { path = "../core", version = "=1.5.19" }
-solana-genesis = { path = "../genesis", version = "=1.5.19" }
-solana-client = { path = "../client", version = "=1.5.19" }
-solana-faucet = { path = "../faucet", version = "=1.5.19" }
-solana-exchange-program = { path = "../programs/exchange", version = "=1.5.19" }
-solana-logger = { path = "../logger", version = "=1.5.19" }
-solana-metrics = { path = "../metrics", version = "=1.5.19" }
-solana-net-utils = { path = "../net-utils", version = "=1.5.19" }
-solana-runtime = { path = "../runtime", version = "=1.5.19" }
-solana-sdk = { path = "../sdk", version = "=1.5.19" }
-solana-version = { path = "../version" }
+solana-clap-utils = { path = "../clap-utils", version = "=1.6.14" }
+solana-core = { path = "../core", version = "=1.6.14" }
+solana-genesis = { path = "../genesis", version = "=1.6.14" }
+solana-client = { path = "../client", version = "=1.6.14" }
+solana-faucet = { path = "../faucet", version = "=1.6.14" }
+solana-exchange-program = { path = "../programs/exchange", version = "=1.6.14" }
+solana-logger = { path = "../logger", version = "=1.6.14" }
+solana-metrics = { path = "../metrics", version = "=1.6.14" }
+solana-net-utils = { path = "../net-utils", version = "=1.6.14" }
+solana-runtime = { path = "../runtime", version = "=1.6.14" }
+solana-sdk = { path = "../sdk", version = "=1.6.14" }
+solana-version = { path = "../version", version = "=1.6.14" }
[dev-dependencies]
-solana-local-cluster = { path = "../local-cluster", version = "=1.5.19" }
+solana-local-cluster = { path = "../local-cluster", version = "=1.6.14" }
[package.metadata.docs.rs]
targets = ["x86_64-unknown-linux-gnu"]
diff --git a/bench-exchange/tests/bench_exchange.rs b/bench-exchange/tests/bench_exchange.rs
index bb032c2bd1..a41b644501 100644
--- a/bench-exchange/tests/bench_exchange.rs
+++ b/bench-exchange/tests/bench_exchange.rs
@@ -1,19 +1,23 @@
use log::*;
use solana_bench_exchange::bench::{airdrop_lamports, do_bench_exchange, Config};
-use solana_core::gossip_service::{discover_cluster, get_multi_client};
-use solana_core::validator::ValidatorConfig;
-use solana_exchange_program::exchange_processor::process_instruction;
-use solana_exchange_program::id;
-use solana_exchange_program::solana_exchange_program;
+use solana_core::{
+ gossip_service::{discover_cluster, get_multi_client},
+ validator::ValidatorConfig,
+};
+use solana_exchange_program::{
+ exchange_processor::process_instruction, id, solana_exchange_program,
+};
use solana_faucet::faucet::run_local_faucet_with_port;
-use solana_local_cluster::local_cluster::{ClusterConfig, LocalCluster};
-use solana_runtime::bank::Bank;
-use solana_runtime::bank_client::BankClient;
-use solana_sdk::genesis_config::create_genesis_config;
-use solana_sdk::signature::{Keypair, Signer};
-use std::process::exit;
-use std::sync::mpsc::channel;
-use std::time::Duration;
+use solana_local_cluster::{
+ local_cluster::{ClusterConfig, LocalCluster},
+ validator_configs::make_identical_validator_configs,
+};
+use solana_runtime::{bank::Bank, bank_client::BankClient};
+use solana_sdk::{
+ genesis_config::create_genesis_config,
+ signature::{Keypair, Signer},
+};
+use std::{process::exit, sync::mpsc::channel, time::Duration};
#[test]
#[ignore]
@@ -44,7 +48,7 @@ fn test_exchange_local_cluster() {
let cluster = LocalCluster::new(&mut ClusterConfig {
node_stakes: vec![100_000; NUM_NODES],
cluster_lamports: 100_000_000_000_000,
- validator_configs: vec![ValidatorConfig::default(); NUM_NODES],
+ validator_configs: make_identical_validator_configs(&ValidatorConfig::default(), NUM_NODES),
native_instruction_processors: [solana_exchange_program!()].to_vec(),
..ClusterConfig::default()
});
diff --git a/bench-streamer/Cargo.toml b/bench-streamer/Cargo.toml
index d0f83dce82..8bd7442584 100644
--- a/bench-streamer/Cargo.toml
+++ b/bench-streamer/Cargo.toml
@@ -2,7 +2,7 @@
authors = ["Solana Maintainers "]
edition = "2018"
name = "solana-bench-streamer"
-version = "1.5.19"
+version = "1.6.14"
repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0"
homepage = "https://solana.com/"
@@ -10,11 +10,11 @@ publish = false
[dependencies]
clap = "2.33.1"
-solana-clap-utils = { path = "../clap-utils", version = "=1.5.19" }
-solana-streamer = { path = "../streamer", version = "=1.5.19" }
-solana-logger = { path = "../logger", version = "=1.5.19" }
-solana-net-utils = { path = "../net-utils", version = "=1.5.19" }
-solana-version = { path = "../version" }
+solana-clap-utils = { path = "../clap-utils", version = "=1.6.14" }
+solana-streamer = { path = "../streamer", version = "=1.6.14" }
+solana-logger = { path = "../logger", version = "=1.6.14" }
+solana-net-utils = { path = "../net-utils", version = "=1.6.14" }
+solana-version = { path = "../version", version = "=1.6.14" }
[package.metadata.docs.rs]
targets = ["x86_64-unknown-linux-gnu"]
diff --git a/bench-tps/Cargo.toml b/bench-tps/Cargo.toml
index c35fd8ede3..b5d522cfc0 100644
--- a/bench-tps/Cargo.toml
+++ b/bench-tps/Cargo.toml
@@ -2,7 +2,7 @@
authors = ["Solana Maintainers "]
edition = "2018"
name = "solana-bench-tps"
-version = "1.5.19"
+version = "1.6.14"
repository = "https://github.com/solana-labs/solana"
license = "Apache-2.0"
homepage = "https://solana.com/"
@@ -12,26 +12,25 @@ publish = false
bincode = "1.3.1"
clap = "2.33.1"
log = "0.4.11"
-rayon = "1.4.0"
+rayon = "1.5.0"
serde_json = "1.0.56"
serde_yaml = "0.8.13"
-solana-clap-utils = { path = "../clap-utils", version = "=1.5.19" }
-solana-core = { path = "../core", version = "=1.5.19" }
-solana-genesis = { path = "../genesis", version = "=1.5.19" }
-solana-client = { path = "../client", version = "=1.5.19" }
-solana-faucet = { path = "../faucet", version = "=1.5.19" }
-solana-logger = { path = "../logger", version = "=1.5.19" }
-solana-metrics = { path = "../metrics", version = "=1.5.19" }
-solana-measure = { path = "../measure", version = "=1.5.19" }
-solana-net-utils = { path = "../net-utils", version = "=1.5.19" }
-solana-runtime = { path = "../runtime", version = "=1.5.19" }
-solana-sdk = { path = "../sdk", version = "=1.5.19" }
-solana-version = { path = "../version" }
+solana-clap-utils = { path = "../clap-utils", version = "=1.6.14" }
+solana-core = { path = "../core", version = "=1.6.14" }
+solana-genesis = { path = "../genesis", version = "=1.6.14" }
+solana-client = { path = "../client", version = "=1.6.14" }
+solana-faucet = { path = "../faucet", version = "=1.6.14" }
+solana-logger = { path = "../logger", version = "=1.6.14" }
+solana-metrics = { path = "../metrics", version = "=1.6.14" }
+solana-measure = { path = "../measure", version = "=1.6.14" }
+solana-net-utils = { path = "../net-utils", version = "=1.6.14" }
+solana-runtime = { path = "../runtime", version = "=1.6.14" }
+solana-sdk = { path = "../sdk", version = "=1.6.14" }
+solana-version = { path = "../version", version = "=1.6.14" }
[dev-dependencies]
serial_test = "0.4.0"
-serial_test_derive = "0.4.0"
-solana-local-cluster = { path = "../local-cluster", version = "=1.5.19" }
+solana-local-cluster = { path = "../local-cluster", version = "=1.6.14" }
[package.metadata.docs.rs]
targets = ["x86_64-unknown-linux-gnu"]
diff --git a/bench-tps/src/bench.rs b/bench-tps/src/bench.rs
index ba0350dec2..084b81ddec 100644
--- a/bench-tps/src/bench.rs
+++ b/bench-tps/src/bench.rs
@@ -8,7 +8,7 @@ use solana_measure::measure::Measure;
use solana_metrics::{self, datapoint_info};
use solana_sdk::{
client::Client,
- clock::{DEFAULT_TICKS_PER_SECOND, DEFAULT_TICKS_PER_SLOT, MAX_PROCESSING_AGE},
+ clock::{DEFAULT_S_PER_SLOT, MAX_PROCESSING_AGE},
commitment_config::CommitmentConfig,
fee_calculator::FeeCalculator,
hash::Hash,
@@ -32,8 +32,7 @@ use std::{
};
// The point at which transactions become "too old", in seconds.
-const MAX_TX_QUEUE_AGE: u64 =
- MAX_PROCESSING_AGE as u64 * DEFAULT_TICKS_PER_SLOT / DEFAULT_TICKS_PER_SECOND;
+const MAX_TX_QUEUE_AGE: u64 = (MAX_PROCESSING_AGE as f64 * DEFAULT_S_PER_SLOT) as u64;
pub const MAX_SPENDS_PER_TX: u64 = 4;
diff --git a/bench-tps/tests/bench_tps.rs b/bench-tps/tests/bench_tps.rs
index f0713623e1..a49c68a7b4 100644
--- a/bench-tps/tests/bench_tps.rs
+++ b/bench-tps/tests/bench_tps.rs
@@ -1,15 +1,21 @@
#![allow(clippy::integer_arithmetic)]
-use serial_test_derive::serial;
-use solana_bench_tps::bench::{do_bench_tps, generate_and_fund_keypairs};
-use solana_bench_tps::cli::Config;
+use serial_test::serial;
+use solana_bench_tps::{
+ bench::{do_bench_tps, generate_and_fund_keypairs},
+ cli::Config,
+};
use solana_client::thin_client::create_client;
-use solana_core::cluster_info::VALIDATOR_PORT_RANGE;
-use solana_core::validator::ValidatorConfig;
+use solana_core::{cluster_info::VALIDATOR_PORT_RANGE, validator::ValidatorConfig};
use solana_faucet::faucet::run_local_faucet_with_port;
-use solana_local_cluster::local_cluster::{ClusterConfig, LocalCluster};
+use solana_local_cluster::{
+ local_cluster::{ClusterConfig, LocalCluster},
+ validator_configs::make_identical_validator_configs,
+};
use solana_sdk::signature::{Keypair, Signer};
-use std::sync::{mpsc::channel, Arc};
-use std::time::Duration;
+use std::{
+ sync::{mpsc::channel, Arc},
+ time::Duration,
+};
fn test_bench_tps_local_cluster(config: Config) {
let native_instruction_processors = vec![];
@@ -19,7 +25,7 @@ fn test_bench_tps_local_cluster(config: Config) {
let cluster = LocalCluster::new(&mut ClusterConfig {
node_stakes: vec![999_990; NUM_NODES],
cluster_lamports: 200_000_000,
- validator_configs: vec![ValidatorConfig::default(); NUM_NODES],
+ validator_configs: make_identical_validator_configs(&ValidatorConfig::default(), NUM_NODES),
native_instruction_processors,
..ClusterConfig::default()
});
diff --git a/ci/do-audit.sh b/ci/do-audit.sh
index 37ed86d29c..b6c1b86be1 100755
--- a/ci/do-audit.sh
+++ b/ci/do-audit.sh
@@ -33,12 +33,10 @@ cargo_audit_ignores=(
# Blocked on predicates v1.0.6 removing its dependency on `difference`
--ignore RUSTSEC-2020-0095
- # hyper is upgraded on master/v1.6 but not for v1.5
- --ignore RUSTSEC-2021-0020
-
# generic-array: arr! macro erases lifetimes
#
- # ed25519-dalek and libsecp256k1 not upgraded for v1.5
+ # Blocked on libsecp256k1 releasing with upgraded dependencies
+ # https://github.com/paritytech/libsecp256k1/issues/66
--ignore RUSTSEC-2020-0146
)
diff --git a/ci/docker-rust-nightly/Dockerfile b/ci/docker-rust-nightly/Dockerfile
index d463de2db4..4cf08b7cba 100644
--- a/ci/docker-rust-nightly/Dockerfile
+++ b/ci/docker-rust-nightly/Dockerfile
@@ -1,4 +1,4 @@
-FROM solanalabs/rust:1.49.0
+FROM solanalabs/rust:1.51.0
ARG date
RUN set -x \
diff --git a/ci/docker-rust/Dockerfile b/ci/docker-rust/Dockerfile
index 26aafdabed..bad2bd7150 100644
--- a/ci/docker-rust/Dockerfile
+++ b/ci/docker-rust/Dockerfile
@@ -1,6 +1,6 @@
# Note: when the rust version is changed also modify
# ci/rust-version.sh to pick up the new image tag
-FROM rust:1.49.0
+FROM rust:1.51.0
# Add Google Protocol Buffers for Libra's metrics library.
ENV PROTOC_VERSION 3.8.0
diff --git a/ci/localnet-sanity.sh b/ci/localnet-sanity.sh
index f94c9e1878..0899e1e2bc 100755
--- a/ci/localnet-sanity.sh
+++ b/ci/localnet-sanity.sh
@@ -78,7 +78,6 @@ nodes=(
--init-complete-file init-complete-node0.log \
--dynamic-port-range 8000-8050"
"multinode-demo/validator.sh \
- --enable-rpc-exit \
--no-restart \
--dynamic-port-range 8050-8100 \
--init-complete-file init-complete-node1.log \
@@ -201,17 +200,10 @@ killNodes() {
[[ ${#pids[@]} -gt 0 ]] || return
# Try to use the RPC exit API to cleanly exit the first two nodes
- # (dynamic nodes, -x, are just killed since their RPC port is not known)
+ # (dynamic nodes, -x, are just killed)
echo "--- RPC exit"
- for port in 8899 18899; do
- (
- set -x
- curl --retry 5 --retry-delay 2 --retry-connrefused \
- -X POST -H 'Content-Type: application/json' \
- -d '{"jsonrpc":"2.0","id":1, "method":"validatorExit"}' \
- http://localhost:$port
- )
- done
+ $solana_validator --ledger "$SOLANA_CONFIG_DIR"/bootstrap-validator exit --force || true
+ $solana_validator --ledger "$SOLANA_CONFIG_DIR"/validator exit --force || true
# Give the nodes a splash of time to cleanly exit before killing them
sleep 2
diff --git a/ci/run-sanity.sh b/ci/run-sanity.sh
index 36f423c53e..5e0390a60c 100755
--- a/ci/run-sanity.sh
+++ b/ci/run-sanity.sh
@@ -22,10 +22,11 @@ done
snapshot_slot=1
# wait a bit longer than snapshot_slot
-while [[ $($solana_cli --url http://localhost:8899 slot --commitment recent) -le $((snapshot_slot + 1)) ]]; do
+while [[ $($solana_cli --url http://localhost:8899 slot --commitment processed) -le $((snapshot_slot + 1)) ]]; do
sleep 1
done
-curl -X POST -H 'Content-Type: application/json' -d '{"jsonrpc":"2.0","id":1, "method":"validatorExit"}' http://localhost:8899
+
+$solana_validator --ledger config/ledger exit --force || true
wait $pid
diff --git a/ci/rust-version.sh b/ci/rust-version.sh
index 7dc982fae6..b8719f2800 100644
--- a/ci/rust-version.sh
+++ b/ci/rust-version.sh
@@ -18,13 +18,13 @@
if [[ -n $RUST_STABLE_VERSION ]]; then
stable_version="$RUST_STABLE_VERSION"
else
- stable_version=1.49.0
+ stable_version=1.51.0
fi
if [[ -n $RUST_NIGHTLY_VERSION ]]; then
nightly_version="$RUST_NIGHTLY_VERSION"
else
- nightly_version=2021-01-23
+ nightly_version=2021-04-18
fi
diff --git a/ci/test-checks.sh b/ci/test-checks.sh
index 9d60586e8a..03ddeea0c4 100755
--- a/ci/test-checks.sh
+++ b/ci/test-checks.sh
@@ -79,7 +79,6 @@ _ ci/do-audit.sh
cd "$project"
_ "$cargo" nightly clippy -- --deny=warnings --allow=clippy::missing_safety_doc
_ "$cargo" stable fmt -- --check
- _ "$cargo" nightly test
)
done
}
diff --git a/ci/test-stable.sh b/ci/test-stable.sh
index ec3feca39a..1d7cbc1bce 100755
--- a/ci/test-stable.sh
+++ b/ci/test-stable.sh
@@ -25,9 +25,6 @@ source scripts/ulimit-n.sh
test -d target/debug/bpf && find target/debug/bpf -name '*.d' -delete
test -d target/release/bpf && find target/release/bpf -name '*.d' -delete
-# Clear the BPF sysroot files, they are not automatically rebuilt
-rm -rf target/xargo # Issue #3105
-
# Limit compiler jobs to reduce memory usage
# on machines with 2gb/thread of memory
NPROC=$(nproc)
@@ -46,7 +43,11 @@ test-stable-perf)
# BPF solana-sdk legacy compile test
./cargo-build-bpf --manifest-path sdk/Cargo.toml
- # BPF program tests
+ # BPF Program unit tests
+ "$cargo" stable test --manifest-path programs/bpf/Cargo.toml
+ cargo-build-bpf --manifest-path programs/bpf/Cargo.toml --bpf-sdk sdk/bpf
+
+ # BPF program system tests
_ make -C programs/bpf/c tests
_ "$cargo" stable test \
--manifest-path programs/bpf/Cargo.toml \
diff --git a/clap-utils/Cargo.toml b/clap-utils/Cargo.toml
index 7035e85f46..627e4a8ef1 100644
--- a/clap-utils/Cargo.toml
+++ b/clap-utils/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "solana-clap-utils"
-version = "1.5.19"
+version = "1.6.14"
description = "Solana utilities for the clap"
authors = ["Solana Maintainers "]
repository = "https://github.com/solana-labs/solana"
@@ -12,14 +12,17 @@ edition = "2018"
[dependencies]
clap = "2.33.0"
rpassword = "4.0"
-solana-remote-wallet = { path = "../remote-wallet", version = "=1.5.19" }
-solana-sdk = { path = "../sdk", version = "=1.5.19" }
+solana-remote-wallet = { path = "../remote-wallet", version = "=1.6.14" }
+solana-sdk = { path = "../sdk", version = "=1.6.14" }
thiserror = "1.0.21"
-tiny-bip39 = "0.7.0"
+tiny-bip39 = "0.8.0"
uriparse = "0.6.3"
url = "2.1.0"
chrono = "0.4"
+[dev-dependencies]
+tempfile = "3.1.0"
+
[lib]
name = "solana_clap_utils"
diff --git a/clap-utils/src/fee_payer.rs b/clap-utils/src/fee_payer.rs
index 4031ab4e88..ef21c31def 100644
--- a/clap-utils/src/fee_payer.rs
+++ b/clap-utils/src/fee_payer.rs
@@ -1,5 +1,7 @@
-use crate::{input_validators, ArgConstant};
-use clap::Arg;
+use {
+ crate::{input_validators, ArgConstant},
+ clap::Arg,
+};
pub const FEE_PAYER_ARG: ArgConstant<'static> = ArgConstant {
name: "fee_payer",
diff --git a/clap-utils/src/input_parsers.rs b/clap-utils/src/input_parsers.rs
index 50ba489cec..e64785142f 100644
--- a/clap-utils/src/input_parsers.rs
+++ b/clap-utils/src/input_parsers.rs
@@ -1,19 +1,21 @@
-use crate::keypair::{
- keypair_from_seed_phrase, pubkey_from_path, resolve_signer_from_path, signer_from_path,
- ASK_KEYWORD, SKIP_SEED_PHRASE_VALIDATION_ARG,
+use {
+ crate::keypair::{
+ keypair_from_seed_phrase, pubkey_from_path, resolve_signer_from_path, signer_from_path,
+ ASK_KEYWORD, SKIP_SEED_PHRASE_VALIDATION_ARG,
+ },
+ chrono::DateTime,
+ clap::ArgMatches,
+ solana_remote_wallet::remote_wallet::RemoteWalletManager,
+ solana_sdk::{
+ clock::UnixTimestamp,
+ commitment_config::CommitmentConfig,
+ genesis_config::ClusterType,
+ native_token::sol_to_lamports,
+ pubkey::Pubkey,
+ signature::{read_keypair_file, Keypair, Signature, Signer},
+ },
+ std::{str::FromStr, sync::Arc},
};
-use chrono::DateTime;
-use clap::ArgMatches;
-use solana_remote_wallet::remote_wallet::RemoteWalletManager;
-use solana_sdk::{
- clock::UnixTimestamp,
- commitment_config::CommitmentConfig,
- genesis_config::ClusterType,
- native_token::sol_to_lamports,
- pubkey::Pubkey,
- signature::{read_keypair_file, Keypair, Signature, Signer},
-};
-use std::{str::FromStr, sync::Arc};
// Return parsed values from matches at `name`
pub fn values_of(matches: &ArgMatches<'_>, name: &str) -> Option>
@@ -55,7 +57,7 @@ pub fn keypair_of(matches: &ArgMatches<'_>, name: &str) -> Option {
if let Some(value) = matches.value_of(name) {
if value == ASK_KEYWORD {
let skip_validation = matches.is_present(SKIP_SEED_PHRASE_VALIDATION_ARG.name);
- keypair_from_seed_phrase(name, skip_validation, true).ok()
+ keypair_from_seed_phrase(name, skip_validation, true, None, true).ok()
} else {
read_keypair_file(value).ok()
}
@@ -70,7 +72,7 @@ pub fn keypairs_of(matches: &ArgMatches<'_>, name: &str) -> Option>
.filter_map(|value| {
if value == ASK_KEYWORD {
let skip_validation = matches.is_present(SKIP_SEED_PHRASE_VALIDATION_ARG.name);
- keypair_from_seed_phrase(name, skip_validation, true).ok()
+ keypair_from_seed_phrase(name, skip_validation, true, None, true).ok()
} else {
read_keypair_file(value).ok()
}
diff --git a/clap-utils/src/input_validators.rs b/clap-utils/src/input_validators.rs
index 75682f1d79..b74990afb0 100644
--- a/clap-utils/src/input_validators.rs
+++ b/clap-utils/src/input_validators.rs
@@ -1,13 +1,15 @@
-use crate::keypair::{parse_signer_source, SignerSource, ASK_KEYWORD};
-use chrono::DateTime;
-use solana_sdk::{
- clock::{Epoch, Slot},
- hash::Hash,
- pubkey::{Pubkey, MAX_SEED_LEN},
- signature::{read_keypair_file, Signature},
+use {
+ crate::keypair::{parse_signer_source, SignerSourceKind, ASK_KEYWORD},
+ chrono::DateTime,
+ solana_sdk::{
+ clock::{Epoch, Slot},
+ hash::Hash,
+ pubkey::{Pubkey, MAX_SEED_LEN},
+ signature::{read_keypair_file, Signature},
+ },
+ std::fmt::Display,
+ std::str::FromStr,
};
-use std::fmt::Display;
-use std::str::FromStr;
fn is_parsable_generic(string: T) -> Result<(), String>
where
@@ -94,6 +96,26 @@ where
.map_err(|err| format!("{}", err))
}
+// Return an error if a `SignerSourceKind::Prompt` cannot be parsed
+pub fn is_prompt_signer_source(string: T) -> Result<(), String>
+where
+ T: AsRef + Display,
+{
+ if string.as_ref() == ASK_KEYWORD {
+ return Ok(());
+ }
+ match parse_signer_source(string.as_ref())
+ .map_err(|err| format!("{}", err))?
+ .kind
+ {
+ SignerSourceKind::Prompt => Ok(()),
+ _ => Err(format!(
+ "Unable to parse input as `prompt:` URI scheme or `ASK` keyword: {}",
+ string
+ )),
+ }
+}
+
// Return an error if string cannot be parsed as pubkey string or keypair file location
pub fn is_pubkey_or_keypair(string: T) -> Result<(), String>
where
@@ -108,8 +130,11 @@ pub fn is_valid_pubkey(string: T) -> Result<(), String>
where
T: AsRef + Display,
{
- match parse_signer_source(string.as_ref()) {
- SignerSource::Filepath(path) => is_keypair(path),
+ match parse_signer_source(string.as_ref())
+ .map_err(|err| format!("{}", err))?
+ .kind
+ {
+ SignerSourceKind::Filepath(path) => is_keypair(path),
_ => Ok(()),
}
}
diff --git a/clap-utils/src/keypair.rs b/clap-utils/src/keypair.rs
index d9d8f4dcbd..9d61776798 100644
--- a/clap-utils/src/keypair.rs
+++ b/clap-utils/src/keypair.rs
@@ -1,31 +1,39 @@
-use crate::{
- input_parsers::pubkeys_sigs_of,
- offline::{SIGNER_ARG, SIGN_ONLY_ARG},
- ArgConstant,
-};
-use bip39::{Language, Mnemonic, Seed};
-use clap::ArgMatches;
-use rpassword::prompt_password_stderr;
-use solana_remote_wallet::{
- remote_keypair::generate_remote_keypair,
- remote_wallet::{maybe_wallet_manager, RemoteWalletError, RemoteWalletManager},
-};
-use solana_sdk::{
- hash::Hash,
- message::Message,
- pubkey::Pubkey,
- signature::{
- keypair_from_seed, keypair_from_seed_phrase_and_passphrase, read_keypair,
- read_keypair_file, Keypair, NullSigner, Presigner, Signature, Signer,
+use {
+ crate::{
+ input_parsers::pubkeys_sigs_of,
+ offline::{SIGNER_ARG, SIGN_ONLY_ARG},
+ ArgConstant,
},
-};
-use std::{
- convert::TryFrom,
- error,
- io::{stdin, stdout, Write},
- process::exit,
- str::FromStr,
- sync::Arc,
+ bip39::{Language, Mnemonic, Seed},
+ clap::ArgMatches,
+ rpassword::prompt_password_stderr,
+ solana_remote_wallet::{
+ locator::{Locator as RemoteWalletLocator, LocatorError as RemoteWalletLocatorError},
+ remote_keypair::generate_remote_keypair,
+ remote_wallet::{maybe_wallet_manager, RemoteWalletError, RemoteWalletManager},
+ },
+ solana_sdk::{
+ derivation_path::{DerivationPath, DerivationPathError},
+ hash::Hash,
+ message::Message,
+ pubkey::Pubkey,
+ signature::{
+ generate_seed_from_seed_phrase_and_passphrase, keypair_from_seed,
+ keypair_from_seed_and_derivation_path, keypair_from_seed_phrase_and_passphrase,
+ read_keypair, read_keypair_file, Keypair, NullSigner, Presigner, Signature, Signer,
+ },
+ },
+ std::{
+ cell::RefCell,
+ convert::TryFrom,
+ error,
+ io::{stdin, stdout, Write},
+ ops::Deref,
+ process::exit,
+ str::FromStr,
+ sync::Arc,
+ },
+ thiserror::Error,
};
pub struct SignOnly {
@@ -84,12 +92,48 @@ impl CliSignerInfo {
}
}
+#[derive(Debug, Default)]
pub struct DefaultSigner {
pub arg_name: String,
pub path: String,
+ is_path_checked: RefCell,
}
impl DefaultSigner {
+ pub fn new, P: AsRef>(arg_name: AN, path: P) -> Self {
+ let arg_name = arg_name.as_ref().to_string();
+ let path = path.as_ref().to_string();
+ Self {
+ arg_name,
+ path,
+ ..Self::default()
+ }
+ }
+
+ fn path(&self) -> Result<&str, Box> {
+ if !self.is_path_checked.borrow().deref() {
+ parse_signer_source(&self.path)
+ .and_then(|s| {
+ if let SignerSourceKind::Filepath(path) = &s.kind {
+ std::fs::metadata(path).map(|_| ()).map_err(|e| e.into())
+ } else {
+ Ok(())
+ }
+ })
+ .map_err(|_| {
+ std::io::Error::new(
+ std::io::ErrorKind::Other,
+ format!(
+ "No default signer found, run \"solana-keygen new -o {}\" to create a new one",
+ self.path
+ ),
+ )
+ })?;
+ *self.is_path_checked.borrow_mut() = true;
+ }
+ Ok(&self.path)
+ }
+
pub fn generate_unique_signers(
&self,
bulk_signers: Vec