diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index bfdb5bb3d092a..fa986923708d3 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -269,16 +269,6 @@ check-signed-tag:
script:
- ./.maintain/gitlab/check_signed.sh
-check-line-width:
- stage: check
- image: paritytech/tools:latest
- <<: *kubernetes-env
- rules:
- - if: $CI_COMMIT_REF_NAME =~ /^[0-9]+$/ # PRs
- script:
- - ./.maintain/gitlab/check_line_width.sh
- allow_failure: true
-
test-dependency-rules:
stage: check
image: paritytech/tools:latest
@@ -516,7 +506,7 @@ test-wasmer-sandbox:
variables:
<<: *default-vars
script:
- - time cargo test --release --features runtime-benchmarks,wasmer-sandbox
+ - time cargo test --release --features runtime-benchmarks,wasmer-sandbox,disable-ui-tests
- sccache -s
cargo-check-macos:
@@ -618,6 +608,7 @@ build-rustdoc:
variables:
<<: *default-vars
SKIP_WASM_BUILD: 1
+ DOC_INDEX_PAGE: "sc_service/index.html" # default redirected page
artifacts:
name: "${CI_JOB_NAME}_${CI_COMMIT_REF_NAME}-doc"
when: on_success
@@ -632,7 +623,7 @@ build-rustdoc:
- mv ./target/doc ./crate-docs
# FIXME: remove me after CI image gets nonroot
- chown -R nonroot:nonroot ./crate-docs
- - echo "" > ./crate-docs/index.html
+ - echo "" > ./crate-docs/index.html
- sccache -s
#### stage: publish
@@ -662,8 +653,8 @@ build-rustdoc:
--tag "$IMAGE_NAME:$VERSION"
--tag "$IMAGE_NAME:latest"
--file "$DOCKERFILE" .
- - echo "$DOCKER_HUB_USER" |
- buildah login --username "$DOCKER_HUB_PASS" --password-stdin docker.io
+ - echo "$DOCKER_HUB_PASS" |
+ buildah login --username "$DOCKER_HUB_USER" --password-stdin docker.io
- buildah info
- buildah push --format=v2s2 "$IMAGE_NAME:$VERSION"
- buildah push --format=v2s2 "$IMAGE_NAME:latest"
@@ -728,42 +719,75 @@ publish-rustdoc:
stage: publish
<<: *kubernetes-env
<<: *vault-secrets
- image: paritytech/tools:latest
+ image: node:16
variables:
GIT_DEPTH: 100
+ # --- Following variables are for rustdocs deployment ---
+ # Space separated values of branches and tags to generate rustdocs
+ RUSTDOCS_DEPLOY_REFS: "master monthly-2021-09+1 monthly-2021-08 v3.0.0"
+ # Location of the docs index template
+ INDEX_TPL: ".maintain/docs-index-tpl.ejs"
+ # Where the `/latest` symbolic link links to. One of the $RUSTDOCS_DEPLOY_REFS value.
+ LATEST: "monthly-2021-09+1"
rules:
- if: $CI_PIPELINE_SOURCE == "pipeline"
when: never
- if: $CI_PIPELINE_SOURCE == "web" && $CI_COMMIT_REF_NAME == "master"
- if: $CI_COMMIT_REF_NAME == "master"
+ - if: $CI_COMMIT_REF_NAME =~ /^monthly-20[0-9]{2}-[0-9]{2}.*$/ # to support: monthly-2021-09+1
+ - if: $CI_COMMIT_REF_NAME =~ /^v[0-9]+\.[0-9]+.*$/ # i.e. v1.0, v2.1rc1
# `needs:` can be removed after CI image gets nonroot. In this case `needs:` stops other
# artifacts from being dowloaded by this job.
needs:
- job: build-rustdoc
artifacts: true
script:
+ # If $CI_COMMIT_REF_NAME doesn't match one of $RUSTDOCS_DEPLOY_REFS space-separated values, we
+ # exit immediately.
+ # Putting spaces at the front and back to ensure we are not matching just any substring, but the
+ # whole space-separated value.
+ - '[[ " ${RUSTDOCS_DEPLOY_REFS} " =~ " ${CI_COMMIT_REF_NAME} " ]] || exit 0'
- rm -rf /tmp/*
# Set git config
- rm -rf .git/config
- git config user.email "devops-team@parity.io"
- git config user.name "${GITHUB_USER}"
- - git config remote.origin.url "https://${GITHUB_TOKEN}@github.com/paritytech/substrate.git"
+ - git config remote.origin.url "https://${GITHUB_TOKEN}@github.com/paritytech/${CI_PROJECT_NAME}.git"
- git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"
- git fetch origin gh-pages
+ # Install `ejs` and generate index.html based on RUSTDOCS_DEPLOY_REFS
+ - yarn global add ejs
+ - 'ejs ${INDEX_TPL} -i "{\"deploy_refs\":\"${RUSTDOCS_DEPLOY_REFS}\",\"repo_name\":\"${CI_PROJECT_NAME}\",\"latest\":\"${LATEST}\"}" > /tmp/index.html'
# Save README and docs
- cp -r ./crate-docs/ /tmp/doc/
- cp README.md /tmp/doc/
- git checkout gh-pages
- # Remove everything and restore generated docs and README
- - rm -rf ./*
- - mv /tmp/doc/* .
+ # Remove directories no longer necessary, as specified in $RUSTDOCS_DEPLOY_REFS.
+ # Also ensure $RUSTDOCS_DEPLOY_REFS is not just empty spaces.
+ # Even though this block spans multiple lines, they are concatenated to run as a single line
+ # command, so note for the semi-colons in the inner-most code block.
+ - if [[ ! -z ${RUSTDOCS_DEPLOY_REFS// } ]]; then
+ for FILE in *; do
+ if [[ ! " $RUSTDOCS_DEPLOY_REFS " =~ " $FILE " ]]; then
+ echo "Removing ${FILE}...";
+ rm -rf $FILE;
+ fi
+ done
+ fi
+ # Move the index page & built back
+ - mv -f /tmp/index.html .
+ # Ensure the destination dir doesn't exist.
+ - rm -rf ${CI_COMMIT_REF_NAME}
+ - mv -f /tmp/doc ${CI_COMMIT_REF_NAME}
+ # Add the symlink
+ - '[[ -e "$LATEST" ]] && ln -sf "${LATEST}" latest'
# Upload files
- git add --all --force
# `git commit` has an exit code of > 0 if there is nothing to commit.
# This causes GitLab to exit immediately and marks this job failed.
# We don't want to mark the entire job failed if there's nothing to
# publish though, hence the `|| true`.
- - git commit -m "Updated docs for ${CI_COMMIT_REF_NAME}" ||
+ - git commit -m "___Updated docs for ${CI_COMMIT_REF_NAME}___" ||
echo "___Nothing to commit___"
- git push origin gh-pages --force
after_script:
diff --git a/.maintain/docs-index-tpl.ejs b/.maintain/docs-index-tpl.ejs
new file mode 100644
index 0000000000000..81c619a926b2b
--- /dev/null
+++ b/.maintain/docs-index-tpl.ejs
@@ -0,0 +1,55 @@
+<%
+ const capFirst = s => (s && s[0].toUpperCase() + s.slice(1)) || "";
+%>
+
+
+
+
+
+
+
+ <%= capFirst(repo_name) %> Rustdocs
+
+
+
+
+
+
+
+
+
<%= capFirst(repo_name) %> Rustdocs
+
+
+ <%_ deploy_refs.split(/\s+/).forEach(ref => { _%>
+ -
+ <%- ref -%>
+ <%_ if (latest && latest.trim() !== '' && latest === ref) { _%>
+ (latest)
+ <%_ } _%>
+
+ <%_ }) _%>
+
+
+
+
+
+
diff --git a/.maintain/gitlab/check_line_width.sh b/.maintain/gitlab/check_line_width.sh
deleted file mode 100755
index ebab3013e4b48..0000000000000
--- a/.maintain/gitlab/check_line_width.sh
+++ /dev/null
@@ -1,55 +0,0 @@
-#!/bin/sh
-#
-# check if line width of rust source files is not beyond x characters
-#
-set -e
-set -o pipefail
-
-BASE_ORIGIN="origin"
-BASE_BRANCH_NAME="master"
-LINE_WIDTH="120"
-GOOD_LINE_WIDTH="100"
-BASE_BRANCH="${BASE_ORIGIN}/${BASE_BRANCH_NAME}"
-git fetch ${BASE_ORIGIN} ${BASE_BRANCH_NAME} --depth 100
-BASE_HASH=$(git merge-base ${BASE_BRANCH} HEAD)
-
-git diff --name-only ${BASE_HASH} -- \*.rs | ( while read file
-do
- if [ ! -f ${file} ];
- then
- echo "Skipping removed file."
- elif git diff ${BASE_HASH} -- ${file} | grep -q "^+.\{$(( $LINE_WIDTH + 1 ))\}"
- then
- if [ -z "${FAIL}" ]
- then
- echo "| error!"
- echo "| Lines must not be longer than ${LINE_WIDTH} characters."
- echo "| "
- echo "| see more https://github.com/paritytech/substrate/blob/master/docs/STYLE_GUIDE.md"
- echo "|"
- FAIL="true"
- fi
- echo "| file: ${file}"
- git diff ${BASE_HASH} -- ${file} \
- | grep -n "^+.\{$(( $LINE_WIDTH + 1))\}"
- echo "|"
- else
- if git diff ${BASE_HASH} -- ${file} | grep -q "^+.\{$(( $GOOD_LINE_WIDTH + 1 ))\}"
- then
- if [ -z "${FAIL}" ]
- then
- echo "| warning!"
- echo "| Lines should be longer than ${GOOD_LINE_WIDTH} characters only in exceptional circumstances!"
- echo "| "
- echo "| see more https://github.com/paritytech/substrate/blob/master/docs/STYLE_GUIDE.md"
- echo "|"
- fi
- echo "| file: ${file}"
- git diff ${BASE_HASH} -- ${file} | grep -n "^+.\{$(( $GOOD_LINE_WIDTH + 1 ))\}"
- echo "|"
- fi
- fi
-done
-
-test -z "${FAIL}"
-)
diff --git a/.maintain/monitoring/alerting-rules/alerting-rules.yaml b/.maintain/monitoring/alerting-rules/alerting-rules.yaml
index 7a69cba66c3f3..2711610024330 100644
--- a/.maintain/monitoring/alerting-rules/alerting-rules.yaml
+++ b/.maintain/monitoring/alerting-rules/alerting-rules.yaml
@@ -133,16 +133,6 @@ groups:
# Others
##############################################################################
- - alert: ContinuousTaskEnded
- expr: '(polkadot_tasks_spawned_total{task_name != "basic-authorship-proposer", task_name != "substrate-rpc-subscription"} == 1)
- - on(instance, task_name) group_left() (polkadot_tasks_ended_total == 1)'
- for: 5m
- labels:
- severity: warning
- annotations:
- message: 'Continuous task {{ $labels.task_name }} on node
- {{ $labels.instance }} ended unexpectedly.'
-
- alert: AuthorityDiscoveryDiscoveryFailureHigh
expr: 'polkadot_authority_discovery_handle_value_found_event_failure /
ignoring(name)
diff --git a/.maintain/node-template-release/Cargo.lock b/.maintain/node-template-release/Cargo.lock
new file mode 100644
index 0000000000000..ee562498c811c
--- /dev/null
+++ b/.maintain/node-template-release/Cargo.lock
@@ -0,0 +1,616 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "adler"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
+
+[[package]]
+name = "ansi_term"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "atty"
+version = "0.2.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
+dependencies = [
+ "hermit-abi",
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "autocfg"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a"
+
+[[package]]
+name = "bitflags"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+
+[[package]]
+name = "cc"
+version = "1.0.70"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d26a6ce4b6a484fa3edb70f7efa6fc430fd2b87285fe8b84304fd0936faa0dc0"
+
+[[package]]
+name = "cfg-if"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+[[package]]
+name = "clap"
+version = "2.33.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "37e58ac78573c40708d45522f0d80fa2f01cc4f9b4e2bf749807255454312002"
+dependencies = [
+ "ansi_term",
+ "atty",
+ "bitflags",
+ "strsim",
+ "textwrap",
+ "unicode-width",
+ "vec_map",
+]
+
+[[package]]
+name = "crc32fast"
+version = "1.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "81156fece84ab6a9f2afdb109ce3ae577e42b1228441eded99bd77f627953b1a"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "curl-sys"
+version = "0.4.48+curl-7.79.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a6a77a741f832116da66aeb126b4f19190ecf46144a74a9bde43c2086f38da0e"
+dependencies = [
+ "cc",
+ "libc",
+ "libz-sys",
+ "openssl-sys",
+ "pkg-config",
+ "vcpkg",
+ "winapi",
+]
+
+[[package]]
+name = "filetime"
+version = "0.2.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "975ccf83d8d9d0d84682850a38c8169027be83368805971cc4f238c2b245bc98"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "redox_syscall",
+ "winapi",
+]
+
+[[package]]
+name = "flate2"
+version = "1.0.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e6988e897c1c9c485f43b47a529cef42fde0547f9d8d41a7062518f1d8fc53f"
+dependencies = [
+ "cfg-if",
+ "crc32fast",
+ "libc",
+ "miniz_oxide",
+]
+
+[[package]]
+name = "fs_extra"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2022715d62ab30faffd124d40b76f4134a550a87792276512b18d63272333394"
+
+[[package]]
+name = "getrandom"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7fcd999463524c52659517fe2cea98493cfe485d10565e7b0fb07dbba7ad2753"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "wasi",
+]
+
+[[package]]
+name = "git2"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c7339329bfa14a00223244311560d11f8f489b453fb90092af97f267a6090ab0"
+dependencies = [
+ "bitflags",
+ "libc",
+ "libgit2-sys",
+ "log",
+ "openssl-probe",
+ "openssl-sys",
+ "url",
+]
+
+[[package]]
+name = "glob"
+version = "0.2.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8be18de09a56b60ed0edf84bc9df007e30040691af7acd1c41874faac5895bfb"
+
+[[package]]
+name = "heck"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c"
+dependencies = [
+ "unicode-segmentation",
+]
+
+[[package]]
+name = "hermit-abi"
+version = "0.1.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "idna"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e"
+dependencies = [
+ "matches",
+ "unicode-bidi",
+ "unicode-normalization",
+]
+
+[[package]]
+name = "lazy_static"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+
+[[package]]
+name = "libc"
+version = "0.2.103"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dd8f7255a17a627354f321ef0055d63b898c6fb27eff628af4d1b66b7331edf6"
+
+[[package]]
+name = "libgit2-sys"
+version = "0.7.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "48441cb35dc255da8ae72825689a95368bf510659ae1ad55dc4aa88cb1789bf1"
+dependencies = [
+ "cc",
+ "curl-sys",
+ "libc",
+ "libssh2-sys",
+ "libz-sys",
+ "openssl-sys",
+ "pkg-config",
+]
+
+[[package]]
+name = "libssh2-sys"
+version = "0.2.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e0186af0d8f171ae6b9c4c90ec51898bad5d08a2d5e470903a50d9ad8959cbee"
+dependencies = [
+ "cc",
+ "libc",
+ "libz-sys",
+ "openssl-sys",
+ "pkg-config",
+ "vcpkg",
+]
+
+[[package]]
+name = "libz-sys"
+version = "1.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "de5435b8549c16d423ed0c03dbaafe57cf6c3344744f1242520d59c9d8ecec66"
+dependencies = [
+ "cc",
+ "libc",
+ "pkg-config",
+ "vcpkg",
+]
+
+[[package]]
+name = "log"
+version = "0.4.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "matches"
+version = "0.1.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f"
+
+[[package]]
+name = "miniz_oxide"
+version = "0.4.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a92518e98c078586bc6c934028adcca4c92a53d6a958196de835170a01d84e4b"
+dependencies = [
+ "adler",
+ "autocfg",
+]
+
+[[package]]
+name = "node-template-release"
+version = "3.0.0"
+dependencies = [
+ "flate2",
+ "fs_extra",
+ "git2",
+ "glob",
+ "structopt",
+ "tar",
+ "tempfile",
+ "toml",
+]
+
+[[package]]
+name = "openssl-probe"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "28988d872ab76095a6e6ac88d99b54fd267702734fd7ffe610ca27f533ddb95a"
+
+[[package]]
+name = "openssl-sys"
+version = "0.9.67"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "69df2d8dfc6ce3aaf44b40dec6f487d5a886516cf6879c49e98e0710f310a058"
+dependencies = [
+ "autocfg",
+ "cc",
+ "libc",
+ "pkg-config",
+ "vcpkg",
+]
+
+[[package]]
+name = "percent-encoding"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831"
+
+[[package]]
+name = "pkg-config"
+version = "0.3.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7c9b1041b4387893b91ee6746cddfc28516aff326a3519fb2adf820932c5e6cb"
+
+[[package]]
+name = "ppv-lite86"
+version = "0.2.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac74c624d6b2d21f425f752262f42188365d7b8ff1aff74c82e45136510a4857"
+
+[[package]]
+name = "proc-macro-error"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
+dependencies = [
+ "proc-macro-error-attr",
+ "proc-macro2",
+ "quote",
+ "syn",
+ "version_check",
+]
+
+[[package]]
+name = "proc-macro-error-attr"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "version_check",
+]
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.29"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b9f5105d4fdaab20335ca9565e106a5d9b82b6219b5ba735731124ac6711d23d"
+dependencies = [
+ "unicode-xid",
+]
+
+[[package]]
+name = "quote"
+version = "1.0.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c3d0b9745dc2debf507c8422de05d7226cc1f0644216dfdfead988f9b1ab32a7"
+dependencies = [
+ "proc-macro2",
+]
+
+[[package]]
+name = "rand"
+version = "0.8.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2e7573632e6454cf6b99d7aac4ccca54be06da05aca2ef7423d22d27d4d4bcd8"
+dependencies = [
+ "libc",
+ "rand_chacha",
+ "rand_core",
+ "rand_hc",
+]
+
+[[package]]
+name = "rand_chacha"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
+dependencies = [
+ "ppv-lite86",
+ "rand_core",
+]
+
+[[package]]
+name = "rand_core"
+version = "0.6.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7"
+dependencies = [
+ "getrandom",
+]
+
+[[package]]
+name = "rand_hc"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d51e9f596de227fda2ea6c84607f5558e196eeaf43c986b724ba4fb8fdf497e7"
+dependencies = [
+ "rand_core",
+]
+
+[[package]]
+name = "redox_syscall"
+version = "0.2.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8383f39639269cde97d255a32bdb68c047337295414940c68bdd30c2e13203ff"
+dependencies = [
+ "bitflags",
+]
+
+[[package]]
+name = "remove_dir_all"
+version = "0.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "serde"
+version = "1.0.130"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f12d06de37cf59146fbdecab66aa99f9fe4f78722e3607577a5375d66bd0c913"
+
+[[package]]
+name = "strsim"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
+
+[[package]]
+name = "structopt"
+version = "0.3.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bf9d950ef167e25e0bdb073cf1d68e9ad2795ac826f2f3f59647817cf23c0bfa"
+dependencies = [
+ "clap",
+ "lazy_static",
+ "structopt-derive",
+]
+
+[[package]]
+name = "structopt-derive"
+version = "0.4.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "134d838a2c9943ac3125cf6df165eda53493451b719f3255b2a26b85f772d0ba"
+dependencies = [
+ "heck",
+ "proc-macro-error",
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "syn"
+version = "1.0.77"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5239bc68e0fef57495900cfea4e8dc75596d9a319d7e16b1e0a440d24e6fe0a0"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-xid",
+]
+
+[[package]]
+name = "tar"
+version = "0.4.37"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d6f5515d3add52e0bbdcad7b83c388bb36ba7b754dda3b5f5bc2d38640cdba5c"
+dependencies = [
+ "filetime",
+ "libc",
+ "xattr",
+]
+
+[[package]]
+name = "tempfile"
+version = "3.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dac1c663cfc93810f88aed9b8941d48cabf856a1b111c29a40439018d870eb22"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "rand",
+ "redox_syscall",
+ "remove_dir_all",
+ "winapi",
+]
+
+[[package]]
+name = "textwrap"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
+dependencies = [
+ "unicode-width",
+]
+
+[[package]]
+name = "tinyvec"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f83b2a3d4d9091d0abd7eba4dc2710b1718583bd4d8992e2190720ea38f391f7"
+dependencies = [
+ "tinyvec_macros",
+]
+
+[[package]]
+name = "tinyvec_macros"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c"
+
+[[package]]
+name = "toml"
+version = "0.4.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "758664fc71a3a69038656bee8b6be6477d2a6c315a6b81f7081f591bffa4111f"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "unicode-bidi"
+version = "0.3.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "246f4c42e67e7a4e3c6106ff716a5d067d4132a642840b242e357e468a2a0085"
+
+[[package]]
+name = "unicode-normalization"
+version = "0.1.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d54590932941a9e9266f0832deed84ebe1bf2e4c9e4a3554d393d18f5e854bf9"
+dependencies = [
+ "tinyvec",
+]
+
+[[package]]
+name = "unicode-segmentation"
+version = "1.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8895849a949e7845e06bd6dc1aa51731a103c42707010a5b591c0038fb73385b"
+
+[[package]]
+name = "unicode-width"
+version = "0.1.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973"
+
+[[package]]
+name = "unicode-xid"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3"
+
+[[package]]
+name = "url"
+version = "1.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dd4e7c0d531266369519a4aa4f399d748bd37043b00bde1e4ff1f60a120b355a"
+dependencies = [
+ "idna",
+ "matches",
+ "percent-encoding",
+]
+
+[[package]]
+name = "vcpkg"
+version = "0.2.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
+
+[[package]]
+name = "vec_map"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
+
+[[package]]
+name = "version_check"
+version = "0.9.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5fecdca9a5291cc2b8dcf7dc02453fee791a280f3743cb0905f8822ae463b3fe"
+
+[[package]]
+name = "wasi"
+version = "0.10.2+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6"
+
+[[package]]
+name = "winapi"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+dependencies = [
+ "winapi-i686-pc-windows-gnu",
+ "winapi-x86_64-pc-windows-gnu",
+]
+
+[[package]]
+name = "winapi-i686-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+
+[[package]]
+name = "winapi-x86_64-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+
+[[package]]
+name = "xattr"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "244c3741f4240ef46274860397c7c74e50eb23624996930e484c16679633a54c"
+dependencies = [
+ "libc",
+]
diff --git a/Cargo.lock b/Cargo.lock
index 7754e0ae6b62f..0e3f3399dbf6c 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -14,20 +14,11 @@ dependencies = [
[[package]]
name = "addr2line"
-version = "0.14.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a55f82cfe485775d02112886f4169bde0c5894d75e79ead7eafe7e40a25e45f7"
-dependencies = [
- "gimli 0.23.0",
-]
-
-[[package]]
-name = "addr2line"
-version = "0.15.1"
+version = "0.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "03345e98af8f3d786b6d9f656ccfa6ac316d954e92bc4841f0bba20789d5fb5a"
+checksum = "3e61f2b7f93d2c7d2b08263acaa4a363b3e276806c68af6134c44f523bf1aacd"
dependencies = [
- "gimli 0.24.0",
+ "gimli 0.25.0",
]
[[package]]
@@ -291,9 +282,9 @@ dependencies = [
[[package]]
name = "async-std"
-version = "1.9.0"
+version = "1.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d9f06685bad74e0570f5213741bea82158279a4103d988e57bfada11ad230341"
+checksum = "f8056f1455169ab86dd47b47391e4ab0cbd25410a70e9fe675544f49bafaf952"
dependencies = [
"async-attributes",
"async-channel",
@@ -415,15 +406,16 @@ checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a"
[[package]]
name = "backtrace"
-version = "0.3.56"
+version = "0.3.61"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d117600f438b1707d4e4ae15d3595657288f8235a0eb593e80ecc98ab34e1bc"
+checksum = "e7a905d892734eea339e896738c14b9afce22b5318f64b951e70bf3844419b01"
dependencies = [
- "addr2line 0.14.1",
+ "addr2line",
+ "cc",
"cfg-if 1.0.0",
"libc",
"miniz_oxide",
- "object 0.23.0",
+ "object 0.26.0",
"rustc-demangle",
]
@@ -492,6 +484,80 @@ dependencies = [
"serde",
]
+[[package]]
+name = "beefy-gadget"
+version = "4.0.0-dev"
+dependencies = [
+ "beefy-primitives",
+ "fnv",
+ "futures 0.3.16",
+ "log 0.4.14",
+ "parity-scale-codec",
+ "parking_lot 0.11.1",
+ "sc-client-api",
+ "sc-keystore",
+ "sc-network",
+ "sc-network-gossip",
+ "sc-network-test",
+ "sc-utils",
+ "sp-api",
+ "sp-application-crypto",
+ "sp-arithmetic",
+ "sp-blockchain",
+ "sp-core",
+ "sp-keystore",
+ "sp-runtime",
+ "strum 0.21.0",
+ "substrate-prometheus-endpoint",
+ "thiserror",
+ "wasm-timer",
+]
+
+[[package]]
+name = "beefy-gadget-rpc"
+version = "4.0.0-dev"
+dependencies = [
+ "beefy-gadget",
+ "beefy-primitives",
+ "futures 0.3.16",
+ "jsonrpc-core",
+ "jsonrpc-core-client",
+ "jsonrpc-derive",
+ "jsonrpc-pubsub",
+ "log 0.4.14",
+ "parity-scale-codec",
+ "sc-rpc",
+ "serde",
+ "sp-core",
+ "sp-runtime",
+]
+
+[[package]]
+name = "beefy-merkle-tree"
+version = "4.0.0-dev"
+dependencies = [
+ "env_logger 0.9.0",
+ "hex",
+ "hex-literal",
+ "log 0.4.14",
+ "tiny-keccak",
+]
+
+[[package]]
+name = "beefy-primitives"
+version = "4.0.0-dev"
+dependencies = [
+ "hex-literal",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-api",
+ "sp-application-crypto",
+ "sp-core",
+ "sp-keystore",
+ "sp-runtime",
+ "sp-std",
+]
+
[[package]]
name = "bincode"
version = "1.3.2"
@@ -993,11 +1059,11 @@ dependencies = [
[[package]]
name = "cranelift-bforest"
-version = "0.74.0"
+version = "0.76.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c8ca3560686e7c9c7ed7e0fe77469f2410ba5d7781b1acaa9adc8d8deea28e3e"
+checksum = "7e6bea67967505247f54fa2c85cf4f6e0e31c4e5692c9b70e4ae58e339067333"
dependencies = [
- "cranelift-entity 0.74.0",
+ "cranelift-entity 0.76.0",
]
[[package]]
@@ -1014,26 +1080,26 @@ dependencies = [
"gimli 0.22.0",
"log 0.4.14",
"regalloc",
- "smallvec 1.6.1",
+ "smallvec 1.7.0",
"target-lexicon 0.11.2",
"thiserror",
]
[[package]]
name = "cranelift-codegen"
-version = "0.74.0"
+version = "0.76.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "baf9bf1ffffb6ce3d2e5ebc83549bd2436426c99b31cc550d521364cbe35d276"
+checksum = "48194035d2752bdd5bdae429e3ab88676e95f52a2b1355a5d4e809f9e39b1d74"
dependencies = [
- "cranelift-bforest 0.74.0",
- "cranelift-codegen-meta 0.74.0",
- "cranelift-codegen-shared 0.74.0",
- "cranelift-entity 0.74.0",
- "gimli 0.24.0",
+ "cranelift-bforest 0.76.0",
+ "cranelift-codegen-meta 0.76.0",
+ "cranelift-codegen-shared 0.76.0",
+ "cranelift-entity 0.76.0",
+ "gimli 0.25.0",
"log 0.4.14",
"regalloc",
"serde",
- "smallvec 1.6.1",
+ "smallvec 1.7.0",
"target-lexicon 0.12.0",
]
@@ -1049,12 +1115,12 @@ dependencies = [
[[package]]
name = "cranelift-codegen-meta"
-version = "0.74.0"
+version = "0.76.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4cc21936a5a6d07e23849ffe83e5c1f6f50305c074f4b2970ca50c13bf55b821"
+checksum = "976efb22fcab4f2cd6bd4e9913764616a54d895c1a23530128d04e03633c555f"
dependencies = [
- "cranelift-codegen-shared 0.74.0",
- "cranelift-entity 0.74.0",
+ "cranelift-codegen-shared 0.76.0",
+ "cranelift-entity 0.76.0",
]
[[package]]
@@ -1065,9 +1131,9 @@ checksum = "6759012d6d19c4caec95793f052613e9d4113e925e7f14154defbac0f1d4c938"
[[package]]
name = "cranelift-codegen-shared"
-version = "0.74.0"
+version = "0.76.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca5b6ffaa87560bebe69a5446449da18090b126037920b0c1c6d5945f72faf6b"
+checksum = "9dabb5fe66e04d4652e434195b45ae65b5c8172d520247b8f66d8df42b2b45dc"
dependencies = [
"serde",
]
@@ -1083,9 +1149,9 @@ dependencies = [
[[package]]
name = "cranelift-entity"
-version = "0.74.0"
+version = "0.76.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d6b4a8bef04f82e4296782646f733c641d09497df2fabf791323fefaa44c64c"
+checksum = "3329733e4d4b8e91c809efcaa4faee80bf66f20164e3dd16d707346bd3494799"
dependencies = [
"serde",
]
@@ -1098,47 +1164,48 @@ checksum = "b608bb7656c554d0a4cf8f50c7a10b857e80306f6ff829ad6d468a7e2323c8d8"
dependencies = [
"cranelift-codegen 0.68.0",
"log 0.4.14",
- "smallvec 1.6.1",
+ "smallvec 1.7.0",
"target-lexicon 0.11.2",
]
[[package]]
name = "cranelift-frontend"
-version = "0.74.0"
+version = "0.76.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c31b783b351f966fce33e3c03498cb116d16d97a8f9978164a60920bd0d3a99c"
+checksum = "279afcc0d3e651b773f94837c3d581177b348c8d69e928104b2e9fccb226f921"
dependencies = [
- "cranelift-codegen 0.74.0",
+ "cranelift-codegen 0.76.0",
"log 0.4.14",
- "smallvec 1.6.1",
+ "smallvec 1.7.0",
"target-lexicon 0.12.0",
]
[[package]]
name = "cranelift-native"
-version = "0.74.0"
+version = "0.76.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a77c88d3dd48021ff1e37e978a00098524abd3513444ae252c08d37b310b3d2a"
+checksum = "4c04d1fe6a5abb5bb0edc78baa8ef238370fb8e389cc88b6d153f7c3e9680425"
dependencies = [
- "cranelift-codegen 0.74.0",
+ "cranelift-codegen 0.76.0",
+ "libc",
"target-lexicon 0.12.0",
]
[[package]]
name = "cranelift-wasm"
-version = "0.74.0"
+version = "0.76.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "edb6d408e2da77cdbbd65466298d44c86ae71c1785d2ab0d8657753cdb4d9d89"
+checksum = "e0d260ad44f6fd2c91f7f5097191a2a9e3edcbb36df1fb787b600dad5ea148ec"
dependencies = [
- "cranelift-codegen 0.74.0",
- "cranelift-entity 0.74.0",
- "cranelift-frontend 0.74.0",
+ "cranelift-codegen 0.76.0",
+ "cranelift-entity 0.76.0",
+ "cranelift-frontend 0.76.0",
"itertools 0.10.0",
"log 0.4.14",
"serde",
- "smallvec 1.6.1",
+ "smallvec 1.7.0",
"thiserror",
- "wasmparser 0.78.2",
+ "wasmparser 0.79.0",
]
[[package]]
@@ -1985,7 +2052,7 @@ dependencies = [
"pretty_assertions 0.6.1",
"scale-info",
"serde",
- "smallvec 1.6.1",
+ "smallvec 1.7.0",
"sp-arithmetic",
"sp-core",
"sp-inherents",
@@ -2314,6 +2381,21 @@ version = "0.3.55"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8f5f3913fa0bfe7ee1fd8248b6b9f42a5af4b9d65ec2dd2c3c26132b950ecfc2"
+[[package]]
+name = "generate-bags"
+version = "3.0.0"
+dependencies = [
+ "chrono",
+ "frame-election-provider-support",
+ "frame-support",
+ "frame-system",
+ "git2",
+ "num-format",
+ "pallet-staking",
+ "sp-io",
+ "structopt",
+]
+
[[package]]
name = "generic-array"
version = "0.12.4"
@@ -2380,21 +2462,28 @@ dependencies = [
[[package]]
name = "gimli"
-version = "0.23.0"
+version = "0.25.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f6503fe142514ca4799d4c26297c4248239fe8838d827db6bd6065c6ed29a6ce"
-
-[[package]]
-name = "gimli"
-version = "0.24.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0e4075386626662786ddb0ec9081e7c7eeb1ba31951f447ca780ef9f5d568189"
+checksum = "f0a01e0497841a3b2db4f8afa483cce65f7e96a3498bd6c541734792aeac8fe7"
dependencies = [
"fallible-iterator",
"indexmap",
"stable_deref_trait",
]
+[[package]]
+name = "git2"
+version = "0.13.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "659cd14835e75b64d9dba5b660463506763cf0aa6cb640aeeb0e98d841093490"
+dependencies = [
+ "bitflags",
+ "libc",
+ "libgit2-sys",
+ "log 0.4.14",
+ "url 2.2.1",
+]
+
[[package]]
name = "glob"
version = "0.3.0"
@@ -3141,7 +3230,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "45a3f58dc069ec0e205a27f5b45920722a46faed802a0541538241af6228f512"
dependencies = [
"parity-util-mem",
- "smallvec 1.6.1",
+ "smallvec 1.7.0",
]
[[package]]
@@ -3170,7 +3259,7 @@ dependencies = [
"parking_lot 0.11.1",
"regex",
"rocksdb",
- "smallvec 1.6.1",
+ "smallvec 1.7.0",
]
[[package]]
@@ -3203,6 +3292,18 @@ version = "0.2.95"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "789da6d93f1b866ffe175afc5322a4d76c038605a1c3319bb57b06967ca98a36"
+[[package]]
+name = "libgit2-sys"
+version = "0.12.22+1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "89c53ac117c44f7042ad8d8f5681378dfbc6010e49ec2c0d1f11dfedc7a4a1c3"
+dependencies = [
+ "cc",
+ "libc",
+ "libz-sys",
+ "pkg-config",
+]
+
[[package]]
name = "libloading"
version = "0.5.2"
@@ -3274,7 +3375,7 @@ dependencies = [
"multiaddr",
"parking_lot 0.11.1",
"pin-project 1.0.5",
- "smallvec 1.6.1",
+ "smallvec 1.7.0",
"wasm-timer",
]
@@ -3305,7 +3406,7 @@ dependencies = [
"ring",
"rw-stream-sink",
"sha2 0.9.3",
- "smallvec 1.6.1",
+ "smallvec 1.7.0",
"thiserror",
"unsigned-varint 0.7.0",
"void",
@@ -3333,7 +3434,7 @@ dependencies = [
"futures 0.3.16",
"libp2p-core",
"log 0.4.14",
- "smallvec 1.6.1",
+ "smallvec 1.7.0",
"trust-dns-resolver",
]
@@ -3352,7 +3453,7 @@ dependencies = [
"prost",
"prost-build",
"rand 0.7.3",
- "smallvec 1.6.1",
+ "smallvec 1.7.0",
]
[[package]]
@@ -3376,7 +3477,7 @@ dependencies = [
"rand 0.7.3",
"regex",
"sha2 0.9.3",
- "smallvec 1.6.1",
+ "smallvec 1.7.0",
"unsigned-varint 0.7.0",
"wasm-timer",
]
@@ -3393,7 +3494,7 @@ dependencies = [
"log 0.4.14",
"prost",
"prost-build",
- "smallvec 1.6.1",
+ "smallvec 1.7.0",
"wasm-timer",
]
@@ -3416,7 +3517,7 @@ dependencies = [
"prost-build",
"rand 0.7.3",
"sha2 0.9.3",
- "smallvec 1.6.1",
+ "smallvec 1.7.0",
"uint",
"unsigned-varint 0.7.0",
"void",
@@ -3439,7 +3540,7 @@ dependencies = [
"libp2p-swarm",
"log 0.4.14",
"rand 0.8.4",
- "smallvec 1.6.1",
+ "smallvec 1.7.0",
"socket2 0.4.0",
"void",
]
@@ -3458,7 +3559,7 @@ dependencies = [
"nohash-hasher",
"parking_lot 0.11.1",
"rand 0.7.3",
- "smallvec 1.6.1",
+ "smallvec 1.7.0",
"unsigned-varint 0.7.0",
]
@@ -3547,7 +3648,7 @@ dependencies = [
"prost",
"prost-build",
"rand 0.7.3",
- "smallvec 1.6.1",
+ "smallvec 1.7.0",
"unsigned-varint 0.7.0",
"void",
"wasm-timer",
@@ -3568,7 +3669,7 @@ dependencies = [
"lru",
"minicbor",
"rand 0.7.3",
- "smallvec 1.6.1",
+ "smallvec 1.7.0",
"unsigned-varint 0.7.0",
"wasm-timer",
]
@@ -3584,7 +3685,7 @@ dependencies = [
"libp2p-core",
"log 0.4.14",
"rand 0.7.3",
- "smallvec 1.6.1",
+ "smallvec 1.7.0",
"void",
"wasm-timer",
]
@@ -3711,9 +3812,9 @@ dependencies = [
"base64 0.12.3",
"digest 0.9.0",
"hmac-drbg 0.3.0",
- "libsecp256k1-core",
- "libsecp256k1-gen-ecmult",
- "libsecp256k1-gen-genmult",
+ "libsecp256k1-core 0.2.2",
+ "libsecp256k1-gen-ecmult 0.2.1",
+ "libsecp256k1-gen-genmult 0.2.1",
"rand 0.7.3",
"serde",
"sha2 0.9.3",
@@ -3730,15 +3831,32 @@ dependencies = [
"base64 0.12.3",
"digest 0.9.0",
"hmac-drbg 0.3.0",
- "libsecp256k1-core",
- "libsecp256k1-gen-ecmult",
- "libsecp256k1-gen-genmult",
+ "libsecp256k1-core 0.2.2",
+ "libsecp256k1-gen-ecmult 0.2.1",
+ "libsecp256k1-gen-genmult 0.2.1",
"rand 0.7.3",
"serde",
"sha2 0.9.3",
"typenum",
]
+[[package]]
+name = "libsecp256k1"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b0452aac8bab02242429380e9b2f94ea20cea2b37e2c1777a1358799bbe97f37"
+dependencies = [
+ "arrayref",
+ "base64 0.13.0",
+ "digest 0.9.0",
+ "libsecp256k1-core 0.3.0",
+ "libsecp256k1-gen-ecmult 0.3.0",
+ "libsecp256k1-gen-genmult 0.3.0",
+ "rand 0.8.4",
+ "serde",
+ "sha2 0.9.3",
+]
+
[[package]]
name = "libsecp256k1-core"
version = "0.2.2"
@@ -3750,13 +3868,33 @@ dependencies = [
"subtle 2.4.0",
]
+[[package]]
+name = "libsecp256k1-core"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5be9b9bb642d8522a44d533eab56c16c738301965504753b03ad1de3425d5451"
+dependencies = [
+ "crunchy",
+ "digest 0.9.0",
+ "subtle 2.4.0",
+]
+
[[package]]
name = "libsecp256k1-gen-ecmult"
version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ccab96b584d38fac86a83f07e659f0deafd0253dc096dab5a36d53efe653c5c3"
dependencies = [
- "libsecp256k1-core",
+ "libsecp256k1-core 0.2.2",
+]
+
+[[package]]
+name = "libsecp256k1-gen-ecmult"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3038c808c55c87e8a172643a7d87187fc6c4174468159cb3090659d55bcb4809"
+dependencies = [
+ "libsecp256k1-core 0.3.0",
]
[[package]]
@@ -3765,7 +3903,16 @@ version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "67abfe149395e3aa1c48a2beb32b068e2334402df8181f818d3aee2b304c4f5d"
dependencies = [
- "libsecp256k1-core",
+ "libsecp256k1-core 0.2.2",
+]
+
+[[package]]
+name = "libsecp256k1-gen-genmult"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3db8d6ba2cec9eacc40e6e8ccc98931840301f1006e95647ceb2dd5c3aa06f7c"
+dependencies = [
+ "libsecp256k1-core 0.3.0",
]
[[package]]
@@ -3775,6 +3922,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "602113192b08db8f38796c4e85c39e960c145965140e918018bcde1952429655"
dependencies = [
"cc",
+ "libc",
"pkg-config",
"vcpkg",
]
@@ -3950,9 +4098,9 @@ checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00"
[[package]]
name = "memchr"
-version = "2.3.4"
+version = "2.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0ee1c47aaa256ecabcaea351eae4a9b01ef39ed810004e298d2511ed284b1525"
+checksum = "b16bd47d9e329435e309c58469fe0791c2d0d1ba96ec0954152a5ae2b04387dc"
[[package]]
name = "memmap"
@@ -4211,7 +4359,7 @@ dependencies = [
"futures 0.3.16",
"log 0.4.14",
"pin-project 1.0.5",
- "smallvec 1.6.1",
+ "smallvec 1.7.0",
"unsigned-varint 0.7.0",
]
@@ -4351,6 +4499,7 @@ dependencies = [
"frame-system",
"futures 0.3.16",
"hex-literal",
+ "jsonrpsee-ws-client",
"log 0.4.14",
"nix",
"node-executor",
@@ -4364,6 +4513,7 @@ dependencies = [
"platforms",
"rand 0.7.3",
"regex",
+ "remote-externalities",
"sc-authority-discovery",
"sc-basic-authorship",
"sc-chain-spec",
@@ -4408,7 +4558,9 @@ dependencies = [
"substrate-build-script-utils",
"substrate-frame-cli",
"tempfile",
+ "tokio",
"try-runtime-cli",
+ "wait-timeout",
]
[[package]]
@@ -4530,6 +4682,7 @@ dependencies = [
"pallet-authority-discovery",
"pallet-authorship",
"pallet-babe",
+ "pallet-bags-list",
"pallet-balances",
"pallet-bounties",
"pallet-collective",
@@ -4591,6 +4744,15 @@ dependencies = [
"substrate-wasm-builder",
]
+[[package]]
+name = "node-runtime-generate-bags"
+version = "3.0.0"
+dependencies = [
+ "generate-bags",
+ "node-runtime",
+ "structopt",
+]
+
[[package]]
name = "node-template"
version = "3.0.0"
@@ -4711,9 +4873,9 @@ checksum = "2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451"
[[package]]
name = "nom"
-version = "6.2.1"
+version = "6.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c5c51b9083a3c620fa67a2a635d1ce7d95b897e957d6b28ff9a5da960a103a6"
+checksum = "e7413f999671bd4745a7b624bd370a569fb6bc574b23c83a3c5ed2e453f3d5e2"
dependencies = [
"bitvec 0.19.5",
"funty",
@@ -4750,6 +4912,16 @@ dependencies = [
"num-traits",
]
+[[package]]
+name = "num-format"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bafe4179722c2894288ee77a9f044f02811c86af699344c498b0840c698a2465"
+dependencies = [
+ "arrayvec 0.4.12",
+ "itoa",
+]
+
[[package]]
name = "num-integer"
version = "0.1.44"
@@ -4815,18 +4987,13 @@ dependencies = [
[[package]]
name = "object"
-version = "0.23.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a9a7ab5d64814df0fe4a4b5ead45ed6c5f181ee3ff04ba344313a6c80446c5d4"
-
-[[package]]
-name = "object"
-version = "0.24.0"
+version = "0.26.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a5b3dd1c072ee7963717671d1ca129f1048fda25edea6b752bfc71ac8854170"
+checksum = "c55827317fb4c08822499848a14237d2874d6f139828893017237e7ab93eb386"
dependencies = [
"crc32fast",
"indexmap",
+ "memchr",
]
[[package]]
@@ -5017,6 +5184,25 @@ dependencies = [
"sp-std",
]
+[[package]]
+name = "pallet-bags-list"
+version = "4.0.0-dev"
+dependencies = [
+ "frame-benchmarking",
+ "frame-election-provider-support",
+ "frame-support",
+ "frame-system",
+ "log 0.4.14",
+ "pallet-balances",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+ "sp-std",
+ "sp-tracing",
+]
+
[[package]]
name = "pallet-balances"
version = "4.0.0-dev"
@@ -5034,6 +5220,50 @@ dependencies = [
"sp-std",
]
+[[package]]
+name = "pallet-beefy"
+version = "4.0.0-dev"
+dependencies = [
+ "beefy-primitives",
+ "frame-support",
+ "frame-system",
+ "pallet-session",
+ "parity-scale-codec",
+ "scale-info",
+ "serde",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+ "sp-staking",
+ "sp-std",
+]
+
+[[package]]
+name = "pallet-beefy-mmr"
+version = "4.0.0-dev"
+dependencies = [
+ "beefy-merkle-tree",
+ "beefy-primitives",
+ "frame-support",
+ "frame-system",
+ "hex",
+ "hex-literal",
+ "libsecp256k1 0.7.0",
+ "log 0.4.14",
+ "pallet-beefy",
+ "pallet-mmr",
+ "pallet-mmr-primitives",
+ "pallet-session",
+ "parity-scale-codec",
+ "scale-info",
+ "serde",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+ "sp-staking",
+ "sp-std",
+]
+
[[package]]
name = "pallet-bounties"
version = "4.0.0-dev"
@@ -5041,6 +5271,7 @@ dependencies = [
"frame-benchmarking",
"frame-support",
"frame-system",
+ "log 0.4.14",
"pallet-balances",
"pallet-treasury",
"parity-scale-codec",
@@ -5092,7 +5323,7 @@ dependencies = [
"rand_pcg 0.2.1",
"scale-info",
"serde",
- "smallvec 1.6.1",
+ "smallvec 1.7.0",
"sp-core",
"sp-io",
"sp-runtime",
@@ -5707,6 +5938,7 @@ dependencies = [
"frame-system",
"log 0.4.14",
"pallet-authorship",
+ "pallet-bags-list",
"pallet-balances",
"pallet-session",
"pallet-staking-reward-curve",
@@ -5718,6 +5950,7 @@ dependencies = [
"sp-application-crypto",
"sp-core",
"sp-io",
+ "sp-npos-elections",
"sp-runtime",
"sp-staking",
"sp-std",
@@ -5821,7 +6054,7 @@ dependencies = [
"scale-info",
"serde",
"serde_json",
- "smallvec 1.6.1",
+ "smallvec 1.7.0",
"sp-core",
"sp-io",
"sp-runtime",
@@ -6018,7 +6251,7 @@ dependencies = [
"parity-util-mem-derive",
"parking_lot 0.11.1",
"primitive-types",
- "smallvec 1.6.1",
+ "smallvec 1.7.0",
"winapi 0.3.9",
]
@@ -6129,7 +6362,7 @@ dependencies = [
"cloudabi",
"libc",
"redox_syscall 0.1.57",
- "smallvec 1.6.1",
+ "smallvec 1.7.0",
"winapi 0.3.9",
]
@@ -6143,7 +6376,7 @@ dependencies = [
"instant",
"libc",
"redox_syscall 0.2.5",
- "smallvec 1.6.1",
+ "smallvec 1.7.0",
"winapi 0.3.9",
]
@@ -6996,7 +7229,7 @@ dependencies = [
"log 0.4.14",
"rustc-hash",
"serde",
- "smallvec 1.6.1",
+ "smallvec 1.7.0",
]
[[package]]
@@ -7769,7 +8002,6 @@ dependencies = [
"sc-allocator",
"sc-executor-common",
"sc-runtime-test",
- "scoped-tls",
"sp-core",
"sp-io",
"sp-runtime-interface",
@@ -7934,7 +8166,7 @@ dependencies = [
"sc-utils",
"serde",
"serde_json",
- "smallvec 1.6.1",
+ "smallvec 1.7.0",
"sp-arithmetic",
"sp-blockchain",
"sp-consensus",
@@ -8459,6 +8691,26 @@ version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
+[[package]]
+name = "scroll"
+version = "0.10.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fda28d4b4830b807a8b43f7b0e6b5df875311b3e7621d84577188c175b6ec1ec"
+dependencies = [
+ "scroll_derive",
+]
+
+[[package]]
+name = "scroll_derive"
+version = "0.10.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aaaae8f38bb311444cfb7f1979af0bc9240d95795f75f9ceddf6a59b79ceffa0"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
[[package]]
name = "sct"
version = "0.6.0"
@@ -8546,9 +8798,9 @@ dependencies = [
[[package]]
name = "serde"
-version = "1.0.126"
+version = "1.0.130"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ec7505abeacaec74ae4778d9d9328fe5a5d04253220a85c4ee022239fc996d03"
+checksum = "f12d06de37cf59146fbdecab66aa99f9fe4f78722e3607577a5375d66bd0c913"
dependencies = [
"serde_derive",
]
@@ -8574,9 +8826,9 @@ dependencies = [
[[package]]
name = "serde_derive"
-version = "1.0.126"
+version = "1.0.130"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "963a7dbc9895aeac7ac90e74f34a5d5261828f79df35cbed41e10189d3804d43"
+checksum = "d7bc1a1ab1961464eae040d96713baa5a724a8152c1222492465b54322ec508b"
dependencies = [
"proc-macro2",
"quote",
@@ -8740,9 +8992,9 @@ dependencies = [
[[package]]
name = "smallvec"
-version = "1.6.1"
+version = "1.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fe0f37c9e8f3c5a4a66ad655a93c74daac4ad00c441533bf5c6e7990bb42604e"
+checksum = "1ecab6c735a6bb4139c0caafd0cc3635748bbb3acf4550e8138122099251f309"
[[package]]
name = "snap"
@@ -9180,7 +9432,6 @@ dependencies = [
"sp-core",
"sp-externalities",
"sp-keystore",
- "sp-maybe-compressed-blob",
"sp-runtime-interface",
"sp-state-machine",
"sp-std",
@@ -9451,7 +9702,7 @@ dependencies = [
"parking_lot 0.11.1",
"pretty_assertions 0.6.1",
"rand 0.7.3",
- "smallvec 1.6.1",
+ "smallvec 1.7.0",
"sp-core",
"sp-externalities",
"sp-panic-handler",
@@ -9696,6 +9947,9 @@ name = "strum"
version = "0.21.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "aaf86bbcfd1fa9670b7a129f64fc0c9fcbbfe4f1bc4210e9e98fe71ffc12cde2"
+dependencies = [
+ "strum_macros 0.21.1",
+]
[[package]]
name = "strum_macros"
@@ -10229,9 +10483,9 @@ checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c"
[[package]]
name = "tokio"
-version = "1.10.0"
+version = "1.12.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "01cf844b23c6131f624accf65ce0e4e9956a8bb329400ea5bcc26ae3a5c20b0b"
+checksum = "c2c2416fdedca8443ae44b4527de1ea633af61d8f7169ffa6e72c5b53d24efcc"
dependencies = [
"autocfg 1.0.1",
"bytes 1.0.1",
@@ -10483,7 +10737,7 @@ dependencies = [
"serde",
"serde_json",
"sharded-slab",
- "smallvec 1.6.1",
+ "smallvec 1.7.0",
"thread_local",
"tracing",
"tracing-core",
@@ -10529,7 +10783,7 @@ dependencies = [
"hashbrown 0.11.2",
"log 0.4.14",
"rustc-hex",
- "smallvec 1.6.1",
+ "smallvec 1.7.0",
]
[[package]]
@@ -10569,7 +10823,7 @@ dependencies = [
"lazy_static",
"log 0.4.14",
"rand 0.8.4",
- "smallvec 1.6.1",
+ "smallvec 1.7.0",
"thiserror",
"tinyvec",
"url 2.2.1",
@@ -10589,7 +10843,7 @@ dependencies = [
"lru-cache",
"parking_lot 0.11.1",
"resolv-conf",
- "smallvec 1.6.1",
+ "smallvec 1.7.0",
"thiserror",
"trust-dns-proto",
]
@@ -10604,6 +10858,7 @@ checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642"
name = "try-runtime-cli"
version = "0.10.0-dev"
dependencies = [
+ "jsonrpsee-ws-client",
"log 0.4.14",
"parity-scale-codec",
"remote-externalities",
@@ -10613,9 +10868,12 @@ dependencies = [
"sc-service",
"serde",
"sp-core",
+ "sp-externalities",
+ "sp-io",
"sp-keystore",
"sp-runtime",
"sp-state-machine",
+ "sp-version",
"structopt",
]
@@ -11015,7 +11273,7 @@ dependencies = [
"enumset",
"serde",
"serde_bytes",
- "smallvec 1.6.1",
+ "smallvec 1.7.0",
"target-lexicon 0.11.2",
"thiserror",
"wasmer-types",
@@ -11035,7 +11293,7 @@ dependencies = [
"more-asserts",
"rayon",
"serde",
- "smallvec 1.6.1",
+ "smallvec 1.7.0",
"tracing",
"wasmer-compiler",
"wasmer-types",
@@ -11055,7 +11313,7 @@ dependencies = [
"more-asserts",
"rayon",
"serde",
- "smallvec 1.6.1",
+ "smallvec 1.7.0",
"wasmer-compiler",
"wasmer-types",
"wasmer-vm",
@@ -11210,15 +11468,15 @@ checksum = "87cc2fe6350834b4e528ba0901e7aa405d78b89dc1fa3145359eb4de0e323fcf"
[[package]]
name = "wasmparser"
-version = "0.78.2"
+version = "0.79.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "52144d4c78e5cf8b055ceab8e5fa22814ce4315d6002ad32cfd914f37c12fd65"
+checksum = "5b5894be15a559c85779254700e1d35f02f843b5a69152e5c82c626d9fd66c0e"
[[package]]
name = "wasmtime"
-version = "0.27.0"
+version = "0.29.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b310b9d20fcf59385761d1ade7a3ef06aecc380e3d3172035b919eaf7465d9f7"
+checksum = "8bbb8a082a8ef50f7eeb8b82dda9709ef1e68963ea3c94e45581644dd4041835"
dependencies = [
"anyhow",
"backtrace",
@@ -11234,9 +11492,9 @@ dependencies = [
"region",
"rustc-demangle",
"serde",
- "smallvec 1.6.1",
+ "smallvec 1.7.0",
"target-lexicon 0.12.0",
- "wasmparser 0.78.2",
+ "wasmparser 0.79.0",
"wasmtime-cache",
"wasmtime-environ",
"wasmtime-jit",
@@ -11247,9 +11505,9 @@ dependencies = [
[[package]]
name = "wasmtime-cache"
-version = "0.27.0"
+version = "0.29.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d14d500d5c3dc5f5c097158feee123d64b3097f0d836a2a27dff9c761c73c843"
+checksum = "d73391579ca7f24573138ef768b73b2aed5f9d542385c64979b65d60d0912399"
dependencies = [
"anyhow",
"base64 0.13.0",
@@ -11268,78 +11526,78 @@ dependencies = [
[[package]]
name = "wasmtime-cranelift"
-version = "0.27.0"
+version = "0.29.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c525b39f062eada7db3c1298287b96dcb6e472b9f6b22501300b28d9fa7582f6"
+checksum = "81c6f5ae9205382345c7cd7454932a906186836999a2161c385e38a15f52e1fe"
dependencies = [
- "cranelift-codegen 0.74.0",
- "cranelift-entity 0.74.0",
- "cranelift-frontend 0.74.0",
+ "cranelift-codegen 0.76.0",
+ "cranelift-entity 0.76.0",
+ "cranelift-frontend 0.76.0",
"cranelift-wasm",
"target-lexicon 0.12.0",
- "wasmparser 0.78.2",
+ "wasmparser 0.79.0",
"wasmtime-environ",
]
[[package]]
name = "wasmtime-debug"
-version = "0.27.0"
+version = "0.29.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c5d2a763e7a6fc734218e0e463196762a4f409c483063d81e0e85f96343b2e0a"
+checksum = "c69e08f55e12f15f50b1b533bc3626723e7224254a065de6576934c86258c9e8"
dependencies = [
"anyhow",
- "gimli 0.24.0",
+ "gimli 0.25.0",
"more-asserts",
- "object 0.24.0",
+ "object 0.26.0",
"target-lexicon 0.12.0",
"thiserror",
- "wasmparser 0.78.2",
+ "wasmparser 0.79.0",
"wasmtime-environ",
]
[[package]]
name = "wasmtime-environ"
-version = "0.27.0"
+version = "0.29.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f64d0c2d881c31b0d65c1f2695e022d71eb60b9fbdd336aacca28208b58eac90"
+checksum = "005d93174040af37fb8625f891cd9827afdad314261f7ec4ee61ec497d6e9d3c"
dependencies = [
"cfg-if 1.0.0",
- "cranelift-codegen 0.74.0",
- "cranelift-entity 0.74.0",
+ "cranelift-codegen 0.76.0",
+ "cranelift-entity 0.76.0",
"cranelift-wasm",
- "gimli 0.24.0",
+ "gimli 0.25.0",
"indexmap",
"log 0.4.14",
"more-asserts",
"serde",
"thiserror",
- "wasmparser 0.78.2",
+ "wasmparser 0.79.0",
]
[[package]]
name = "wasmtime-jit"
-version = "0.27.0"
+version = "0.29.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4d4539ea734422b7c868107e2187d7746d8affbcaa71916d72639f53757ad707"
+checksum = "d0bf1dfb213a35d8f21aefae40e597fe72778a907011ffdff7affb029a02af9a"
dependencies = [
- "addr2line 0.15.1",
+ "addr2line",
"anyhow",
"cfg-if 1.0.0",
- "cranelift-codegen 0.74.0",
- "cranelift-entity 0.74.0",
- "cranelift-frontend 0.74.0",
+ "cranelift-codegen 0.76.0",
+ "cranelift-entity 0.76.0",
+ "cranelift-frontend 0.76.0",
"cranelift-native",
"cranelift-wasm",
- "gimli 0.24.0",
+ "gimli 0.25.0",
"log 0.4.14",
"more-asserts",
- "object 0.24.0",
+ "object 0.26.0",
"rayon",
"region",
"serde",
"target-lexicon 0.12.0",
"thiserror",
- "wasmparser 0.78.2",
+ "wasmparser 0.79.0",
"wasmtime-cranelift",
"wasmtime-debug",
"wasmtime-environ",
@@ -11351,13 +11609,13 @@ dependencies = [
[[package]]
name = "wasmtime-obj"
-version = "0.27.0"
+version = "0.29.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e1a8ff85246d091828e2225af521a6208ed28c997bb5c39eb697366dc2e2f2b"
+checksum = "d231491878e710c68015228c9f9fc5955fe5c96dbf1485c15f7bed55b622c83c"
dependencies = [
"anyhow",
"more-asserts",
- "object 0.24.0",
+ "object 0.26.0",
"target-lexicon 0.12.0",
"wasmtime-debug",
"wasmtime-environ",
@@ -11365,14 +11623,17 @@ dependencies = [
[[package]]
name = "wasmtime-profiling"
-version = "0.27.0"
+version = "0.29.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e24364d522dcd67c897c8fffc42e5bdfc57207bbb6d7eeade0da9d4a7d70105b"
+checksum = "21486cfb5255c2069666c1f116f9e949d4e35c9a494f11112fa407879e42198d"
dependencies = [
"anyhow",
"cfg-if 1.0.0",
+ "gimli 0.25.0",
"lazy_static",
"libc",
+ "object 0.26.0",
+ "scroll",
"serde",
"target-lexicon 0.12.0",
"wasmtime-environ",
@@ -11381,9 +11642,9 @@ dependencies = [
[[package]]
name = "wasmtime-runtime"
-version = "0.27.0"
+version = "0.29.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c51e57976e8a19a18a18e002c6eb12e5769554204238e47ff155fda1809ef0f7"
+checksum = "d7ddfdf32e0a20d81f48be9dacd31612bc61de5a174d1356fef806d300f507de"
dependencies = [
"anyhow",
"backtrace",
@@ -11632,18 +11893,18 @@ dependencies = [
[[package]]
name = "zstd"
-version = "0.6.1+zstd.1.4.9"
+version = "0.9.0+zstd.1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5de55e77f798f205d8561b8fe2ef57abfb6e0ff2abe7fd3c089e119cdb5631a3"
+checksum = "07749a5dc2cb6b36661290245e350f15ec3bbb304e493db54a1d354480522ccd"
dependencies = [
"zstd-safe",
]
[[package]]
name = "zstd-safe"
-version = "3.0.1+zstd.1.4.9"
+version = "4.1.1+zstd.1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1387cabcd938127b30ce78c4bf00b30387dddf704e3f0881dbc4ff62b5566f8c"
+checksum = "c91c90f2c593b003603e5e0493c837088df4469da25aafff8bce42ba48caf079"
dependencies = [
"libc",
"zstd-sys",
@@ -11651,9 +11912,9 @@ dependencies = [
[[package]]
name = "zstd-sys"
-version = "1.4.20+zstd.1.4.9"
+version = "1.6.1+zstd.1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ebd5b733d7cf2d9447e2c3e76a5589b4f5e5ae065c22a2bc0b023cbc331b6c8e"
+checksum = "615120c7a2431d16cf1cf979e7fc31ba7a5b5e5707b29c8a99e5dbf8a8392a33"
dependencies = [
"cc",
"libc",
diff --git a/Cargo.toml b/Cargo.toml
index bca0c816217ee..71473a4bc5689 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -19,6 +19,8 @@ members = [
"client/api",
"client/authority-discovery",
"client/basic-authorship",
+ "client/beefy",
+ "client/beefy/rpc",
"client/block-builder",
"client/chain-spec",
"client/chain-spec/derive",
@@ -69,6 +71,9 @@ members = [
"frame/authorship",
"frame/babe",
"frame/balances",
+ "frame/beefy",
+ "frame/beefy-mmr",
+ "frame/beefy-mmr/primitives",
"frame/benchmarking",
"frame/bounties",
"frame/collective",
@@ -128,6 +133,7 @@ members = [
"frame/uniques",
"frame/utility",
"frame/vesting",
+ "frame/bags-list",
"primitives/api",
"primitives/api/proc-macro",
"primitives/api/test",
@@ -137,6 +143,7 @@ members = [
"primitives/arithmetic/fuzzer",
"primitives/authority-discovery",
"primitives/authorship",
+ "primitives/beefy",
"primitives/block-builder",
"primitives/blockchain",
"primitives/consensus/aura",
@@ -198,6 +205,8 @@ members = [
"utils/frame/try-runtime/cli",
"utils/frame/rpc/support",
"utils/frame/rpc/system",
+ "utils/frame/generate-bags",
+ "utils/frame/generate-bags/node-runtime",
"utils/prometheus",
"utils/wasm-builder",
]
diff --git a/bin/node-template/README.md b/bin/node-template/README.md
index cd977fac84493..e618b13c2a2f0 100644
--- a/bin/node-template/README.md
+++ b/bin/node-template/README.md
@@ -1,10 +1,21 @@
# Substrate Node Template
+[](https://playground.substrate.dev/?deploy=node-template) [](https://matrix.to/#/#substrate-technical:matrix.org)
+
A fresh FRAME-based [Substrate](https://www.substrate.io/) node, ready for hacking :rocket:
## Getting Started
-Follow these steps to get started with the Node Template :hammer_and_wrench:
+Follow the steps below to get started with the Node Template, or get it up and running right from
+your browser in just a few clicks using [Playground](https://playground.substrate.dev/)
+:hammer_and_wrench:
+
+### Using Nix
+
+Install [nix](https://nixos.org/) and optionally [direnv](https://github.com/direnv/direnv) and
+[lorri](https://github.com/target/lorri) for a fully plug and play experience for setting up the
+development environment. To get all the correct dependencies activate direnv `direnv allow` and
+lorri `lorri shell`.
### Rust Setup
@@ -62,10 +73,17 @@ Start the development chain with detailed logging:
RUST_BACKTRACE=1 ./target/release/node-template -ldebug --dev
```
+### Connect with Polkadot-JS Apps Front-end
+
+Once the node template is running locally, you can connect it with **Polkadot-JS Apps** front-end
+to interact with your chain. [Click
+here](https://polkadot.js.org/apps/#/explorer?rpc=ws://localhost:9944) connecting the Apps to your
+local node template.
+
### Multi-Node Local Testnet
-If you want to see the multi-node consensus algorithm in action, refer to
-[our Start a Private Network tutorial](https://substrate.dev/docs/en/tutorials/start-a-private-network/).
+If you want to see the multi-node consensus algorithm in action, refer to our
+[Start a Private Network tutorial](https://substrate.dev/docs/en/tutorials/start-a-private-network/).
## Template Structure
@@ -77,34 +95,34 @@ directories.
A blockchain node is an application that allows users to participate in a blockchain network.
Substrate-based blockchain nodes expose a number of capabilities:
-- Networking: Substrate nodes use the [`libp2p`](https://libp2p.io/) networking stack to allow the
- nodes in the network to communicate with one another.
-- Consensus: Blockchains must have a way to come to
- [consensus](https://substrate.dev/docs/en/knowledgebase/advanced/consensus) on the state of the
- network. Substrate makes it possible to supply custom consensus engines and also ships with
- several consensus mechanisms that have been built on top of
- [Web3 Foundation research](https://research.web3.foundation/en/latest/polkadot/NPoS/index.html).
-- RPC Server: A remote procedure call (RPC) server is used to interact with Substrate nodes.
+- Networking: Substrate nodes use the [`libp2p`](https://libp2p.io/) networking stack to allow the
+ nodes in the network to communicate with one another.
+- Consensus: Blockchains must have a way to come to
+ [consensus](https://substrate.dev/docs/en/knowledgebase/advanced/consensus) on the state of the
+ network. Substrate makes it possible to supply custom consensus engines and also ships with
+ several consensus mechanisms that have been built on top of
+ [Web3 Foundation research](https://research.web3.foundation/en/latest/polkadot/NPoS/index.html).
+- RPC Server: A remote procedure call (RPC) server is used to interact with Substrate nodes.
There are several files in the `node` directory - take special note of the following:
-- [`chain_spec.rs`](./node/src/chain_spec.rs): A
- [chain specification](https://substrate.dev/docs/en/knowledgebase/integrate/chain-spec) is a
- source code file that defines a Substrate chain's initial (genesis) state. Chain specifications
- are useful for development and testing, and critical when architecting the launch of a
- production chain. Take note of the `development_config` and `testnet_genesis` functions, which
- are used to define the genesis state for the local development chain configuration. These
- functions identify some
- [well-known accounts](https://substrate.dev/docs/en/knowledgebase/integrate/subkey#well-known-keys)
- and use them to configure the blockchain's initial state.
-- [`service.rs`](./node/src/service.rs): This file defines the node implementation. Take note of
- the libraries that this file imports and the names of the functions it invokes. In particular,
- there are references to consensus-related topics, such as the
- [longest chain rule](https://substrate.dev/docs/en/knowledgebase/advanced/consensus#longest-chain-rule),
- the [Aura](https://substrate.dev/docs/en/knowledgebase/advanced/consensus#aura) block authoring
- mechanism and the
- [GRANDPA](https://substrate.dev/docs/en/knowledgebase/advanced/consensus#grandpa) finality
- gadget.
+- [`chain_spec.rs`](./node/src/chain_spec.rs): A
+ [chain specification](https://substrate.dev/docs/en/knowledgebase/integrate/chain-spec) is a
+ source code file that defines a Substrate chain's initial (genesis) state. Chain specifications
+ are useful for development and testing, and critical when architecting the launch of a
+ production chain. Take note of the `development_config` and `testnet_genesis` functions, which
+ are used to define the genesis state for the local development chain configuration. These
+ functions identify some
+ [well-known accounts](https://substrate.dev/docs/en/knowledgebase/integrate/subkey#well-known-keys)
+ and use them to configure the blockchain's initial state.
+- [`service.rs`](./node/src/service.rs): This file defines the node implementation. Take note of
+ the libraries that this file imports and the names of the functions it invokes. In particular,
+ there are references to consensus-related topics, such as the
+ [longest chain rule](https://substrate.dev/docs/en/knowledgebase/advanced/consensus#longest-chain-rule),
+ the [Aura](https://substrate.dev/docs/en/knowledgebase/advanced/consensus#aura) block authoring
+ mechanism and the
+ [GRANDPA](https://substrate.dev/docs/en/knowledgebase/advanced/consensus#grandpa) finality
+ gadget.
After the node has been [built](#build), refer to the embedded documentation to learn more about the
capabilities and configuration parameters that it exposes:
@@ -130,13 +148,13 @@ create pallets and flexibly compose them to create blockchains that can address
Review the [FRAME runtime implementation](./runtime/src/lib.rs) included in this template and note
the following:
-- This file configures several pallets to include in the runtime. Each pallet configuration is
- defined by a code block that begins with `impl $PALLET_NAME::Config for Runtime`.
-- The pallets are composed into a single runtime by way of the
- [`construct_runtime!`](https://crates.parity.io/frame_support/macro.construct_runtime.html)
- macro, which is part of the core
- [FRAME Support](https://substrate.dev/docs/en/knowledgebase/runtime/frame#support-library)
- library.
+- This file configures several pallets to include in the runtime. Each pallet configuration is
+ defined by a code block that begins with `impl $PALLET_NAME::Config for Runtime`.
+- The pallets are composed into a single runtime by way of the
+ [`construct_runtime!`](https://crates.parity.io/frame_support/macro.construct_runtime.html)
+ macro, which is part of the core
+ [FRAME Support](https://substrate.dev/docs/en/knowledgebase/runtime/frame#support-library)
+ library.
### Pallets
@@ -146,17 +164,17 @@ template pallet that is [defined in the `pallets`](./pallets/template/src/lib.rs
A FRAME pallet is compromised of a number of blockchain primitives:
-- Storage: FRAME defines a rich set of powerful
- [storage abstractions](https://substrate.dev/docs/en/knowledgebase/runtime/storage) that makes
- it easy to use Substrate's efficient key-value database to manage the evolving state of a
- blockchain.
-- Dispatchables: FRAME pallets define special types of functions that can be invoked (dispatched)
- from outside of the runtime in order to update its state.
-- Events: Substrate uses [events](https://substrate.dev/docs/en/knowledgebase/runtime/events) to
- notify users of important changes in the runtime.
-- Errors: When a dispatchable fails, it returns an error.
-- Config: The `Config` configuration interface is used to define the types and parameters upon
- which a FRAME pallet depends.
+- Storage: FRAME defines a rich set of powerful
+ [storage abstractions](https://substrate.dev/docs/en/knowledgebase/runtime/storage) that makes
+ it easy to use Substrate's efficient key-value database to manage the evolving state of a
+ blockchain.
+- Dispatchables: FRAME pallets define special types of functions that can be invoked (dispatched)
+ from outside of the runtime in order to update its state.
+- Events: Substrate uses [events](https://substrate.dev/docs/en/knowledgebase/runtime/events) to
+ notify users of important changes in the runtime.
+- Errors: When a dispatchable fails, it returns an error.
+- Config: The `Config` configuration interface is used to define the types and parameters upon
+ which a FRAME pallet depends.
### Run in Docker
@@ -170,7 +188,8 @@ Then run the following command to start a single node development chain.
```
This command will firstly compile your code, and then start a local development network. You can
-also replace the default command (`cargo build --release && ./target/release/node-template --dev --ws-external`)
+also replace the default command
+(`cargo build --release && ./target/release/node-template --dev --ws-external`)
by appending your own. A few useful ones are as follow.
```bash
diff --git a/bin/node-template/node/Cargo.toml b/bin/node-template/node/Cargo.toml
index 04d70b338ac04..c8f2b52f112f5 100644
--- a/bin/node-template/node/Cargo.toml
+++ b/bin/node-template/node/Cargo.toml
@@ -1,14 +1,14 @@
[package]
name = "node-template"
version = "3.0.0"
-authors = ["Substrate DevHub "]
description = "A fresh FRAME-based Substrate node, ready for hacking."
+authors = ["Substrate DevHub "]
+homepage = "https://substrate.dev"
edition = "2018"
license = "Unlicense"
-build = "build.rs"
-homepage = "https://substrate.dev"
-repository = "https://github.com/substrate-developer-hub/substrate-node-template/"
publish = false
+repository = "https://github.com/substrate-developer-hub/substrate-node-template/"
+build = "build.rs"
[package.metadata.docs.rs]
targets = ["x86_64-unknown-linux-gnu"]
diff --git a/bin/node-template/node/src/cli.rs b/bin/node-template/node/src/cli.rs
index 8b551051c1b19..8ed1d35ba5f92 100644
--- a/bin/node-template/node/src/cli.rs
+++ b/bin/node-template/node/src/cli.rs
@@ -35,7 +35,7 @@ pub enum Subcommand {
/// Revert the chain to a previous state.
Revert(sc_cli::RevertCmd),
- /// The custom benchmark subcommmand benchmarking runtime pallets.
+ /// The custom benchmark subcommand benchmarking runtime pallets.
#[structopt(name = "benchmark", about = "Benchmark runtime pallets.")]
Benchmark(frame_benchmarking_cli::BenchmarkCmd),
}
diff --git a/bin/node-template/pallets/template/Cargo.toml b/bin/node-template/pallets/template/Cargo.toml
index b3eb747625b4f..dccb37c6540c3 100644
--- a/bin/node-template/pallets/template/Cargo.toml
+++ b/bin/node-template/pallets/template/Cargo.toml
@@ -1,14 +1,13 @@
[package]
-authors = ['Substrate DevHub ']
-edition = '2018'
name = 'pallet-template'
version = "3.0.0"
-license = "Unlicense"
-homepage = "https://substrate.dev"
-repository = "https://github.com/substrate-developer-hub/substrate-node-template/"
description = "FRAME pallet template for defining custom runtime logic."
-readme = "README.md"
+authors = ['Substrate DevHub ']
+homepage = "https://substrate.dev"
+edition = '2018'
+license = "Unlicense"
publish = false
+repository = "https://github.com/substrate-developer-hub/substrate-node-template/"
[package.metadata.docs.rs]
targets = ["x86_64-unknown-linux-gnu"]
diff --git a/bin/node-template/pallets/template/src/benchmarking.rs b/bin/node-template/pallets/template/src/benchmarking.rs
index 2117c048cfbdb..d496a9fc89b1a 100644
--- a/bin/node-template/pallets/template/src/benchmarking.rs
+++ b/bin/node-template/pallets/template/src/benchmarking.rs
@@ -4,7 +4,7 @@ use super::*;
#[allow(unused)]
use crate::Pallet as Template;
-use frame_benchmarking::{benchmarks, impl_benchmark_test_suite, whitelisted_caller};
+use frame_benchmarking::{benchmarks, whitelisted_caller};
use frame_system::RawOrigin;
benchmarks! {
@@ -15,6 +15,6 @@ benchmarks! {
verify {
assert_eq!(Something::::get(), Some(s));
}
-}
-impl_benchmark_test_suite!(Template, crate::mock::new_test_ext(), crate::mock::Test);
+ impl_benchmark_test_suite!(Template, crate::mock::new_test_ext(), crate::mock::Test);
+}
diff --git a/bin/node-template/runtime/Cargo.toml b/bin/node-template/runtime/Cargo.toml
index 47e67af2b9ae1..081e458b18e08 100644
--- a/bin/node-template/runtime/Cargo.toml
+++ b/bin/node-template/runtime/Cargo.toml
@@ -1,12 +1,13 @@
[package]
name = "node-template-runtime"
version = "3.0.0"
+description = 'A fresh FRAME-based Substrate runtime, ready for hacking.'
authors = ["Substrate DevHub "]
+homepage = "https://substrate.dev"
edition = "2018"
license = "Unlicense"
-homepage = "https://substrate.dev"
-repository = "https://github.com/substrate-developer-hub/substrate-node-template/"
publish = false
+repository = "https://github.com/substrate-developer-hub/substrate-node-template/"
[package.metadata.docs.rs]
targets = ["x86_64-unknown-linux-gnu"]
diff --git a/bin/node-template/runtime/src/lib.rs b/bin/node-template/runtime/src/lib.rs
index eecc93e166666..ca6e6b1822d45 100644
--- a/bin/node-template/runtime/src/lib.rs
+++ b/bin/node-template/runtime/src/lib.rs
@@ -222,6 +222,7 @@ impl pallet_grandpa::Config for Runtime {
type HandleEquivocation = ();
type WeightInfo = ();
+ type MaxAuthorities = MaxAuthorities;
}
parameter_types! {
diff --git a/bin/node-template/shell.nix b/bin/node-template/shell.nix
new file mode 100644
index 0000000000000..c08005c1630e9
--- /dev/null
+++ b/bin/node-template/shell.nix
@@ -0,0 +1,35 @@
+let
+ mozillaOverlay =
+ import (builtins.fetchGit {
+ url = "https://github.com/mozilla/nixpkgs-mozilla.git";
+ rev = "57c8084c7ef41366993909c20491e359bbb90f54";
+ });
+ pinned = builtins.fetchGit {
+ # Descriptive name to make the store path easier to identify
+ url = "https://github.com/nixos/nixpkgs/";
+ # Commit hash for nixos-unstable as of 2020-04-26
+ # `git ls-remote https://github.com/nixos/nixpkgs nixos-unstable`
+ ref = "refs/heads/nixos-unstable";
+ rev = "1fe6ed37fd9beb92afe90671c0c2a662a03463dd";
+ };
+ nixpkgs = import pinned { overlays = [ mozillaOverlay ]; };
+ toolchain = with nixpkgs; (rustChannelOf { date = "2021-09-14"; channel = "nightly"; });
+ rust-wasm = toolchain.rust.override {
+ targets = [ "wasm32-unknown-unknown" ];
+ };
+in
+with nixpkgs; pkgs.mkShell {
+ buildInputs = [
+ clang
+ pkg-config
+ rust-wasm
+ ] ++ stdenv.lib.optionals stdenv.isDarwin [
+ darwin.apple_sdk.frameworks.Security
+ ];
+
+ LIBCLANG_PATH = "${llvmPackages.libclang}/lib";
+ PROTOC = "${protobuf}/bin/protoc";
+ RUST_SRC_PATH = "${toolchain.rust-src}/lib/rustlib/src/rust/library/";
+ ROCKSDB_LIB_DIR = "${rocksdb}/lib";
+
+}
diff --git a/bin/node/bench/src/construct.rs b/bin/node/bench/src/construct.rs
index 1532e02bd3ef6..ca1a1c18f9ea9 100644
--- a/bin/node/bench/src/construct.rs
+++ b/bin/node/bench/src/construct.rs
@@ -30,8 +30,8 @@ use std::{borrow::Cow, collections::HashMap, pin::Pin, sync::Arc};
use node_primitives::Block;
use node_testing::bench::{BenchDb, BlockType, DatabaseType, KeyTypes, Profile};
use sc_transaction_pool_api::{
- ImportNotificationStream, PoolFuture, PoolStatus, TransactionFor, TransactionSource,
- TransactionStatusStreamFor, TxHash,
+ ImportNotificationStream, PoolFuture, PoolStatus, ReadyTransactions, TransactionFor,
+ TransactionSource, TransactionStatusStreamFor, TxHash,
};
use sp_consensus::{Environment, Proposer};
use sp_inherents::InherentDataProvider;
@@ -216,6 +216,19 @@ impl sc_transaction_pool_api::InPoolTransaction for PoolTransaction {
#[derive(Clone, Debug)]
pub struct Transactions(Vec>);
+pub struct TransactionsIterator(std::vec::IntoIter>);
+
+impl Iterator for TransactionsIterator {
+ type Item = Arc;
+
+ fn next(&mut self) -> Option {
+ self.0.next()
+ }
+}
+
+impl ReadyTransactions for TransactionsIterator {
+ fn report_invalid(&mut self, _tx: &Self::Item) {}
+}
impl sc_transaction_pool_api::TransactionPool for Transactions {
type Block = Block;
@@ -257,16 +270,17 @@ impl sc_transaction_pool_api::TransactionPool for Transactions {
_at: NumberFor,
) -> Pin<
Box<
- dyn Future