Commit Graph

73 Commits

Author SHA1 Message Date
Bastian Köcher 1439558f14 Compress the PoV block before sending it over the network (#2288)
* Compress the PoV block before sending it over the network

This pr changes the way we send PoV blocks over the network. We now
compress the PoV block before it is send over the network. This should
reduce the size significant for PoVs which contain the runtime WASM for
example.

* Preallocate 1KB

* Try something..

* Switch to zstd and some renamings

* Make compression/decompression fail in browsers

* Use some sane maximum value

* Update roadmap/implementers-guide/src/types/network.md

Co-authored-by: Andronik Ordian <write@reusable.software>

* Fix and add test

* add

Co-authored-by: Andronik Ordian <write@reusable.software>
Co-authored-by: Robert Habermeier <rphmeier@gmail.com>
2021-01-21 18:04:14 +00:00
Martin Pugh 8b46fa64cd fix check_line_width.sh (#2120) 2020-12-16 13:27:53 +01:00
Robert Habermeier 15c253117d Add assignment keys to session keys, no separate approvals key (#2092)
* guide: merge backing and approval keys

* bump substrate master & update primitives

* use new SessionInfo struct in session_info

* session keys upgrade for Polkadot

* kusama & westend runtimes

* bump westend, kusama, and polkadot versions

* add session key to rococo & test-runtime

* update prepare-test-net to latest subkey

* update chain specs to support new para_assignment session key

* get cargo.lock from master

* formatting

* update kill_storage based on substrate master

* fix test-service

* assgn -> asgn

* use session info module for assignment session key
2020-12-10 20:30:27 -06:00
Bastian Köcher d7047578e9 Fix tests on master (#2080)
Because of a bug in the test script, we didn't stopped CI when the main
tests are failed.
2020-12-07 14:47:39 +00:00
Martin Pugh 642826ba07 Fix check_runtime.sh (#2020) 2020-11-26 20:17:16 +01:00
Bastian Köcher 0186ba8daf Switch to wasm-builder 3.0.0 (#2004)
* Switch to wasm-builder 3.0.0

* Fix deterministic wasm build check
2020-11-24 12:31:32 +00:00
Peter Goodspeed-Niklaus 0a5bc82529 Add Prometheus timers to the subsystems (#1923)
* reexport prometheus-super for ease of use of other subsystems

* add some prometheus timers for collation generation subsystem

* add timing metrics to av-store

* add metrics to candidate backing

* add timing metric to bitfield signing

* add timing metrics to candidate selection

* add timing metrics to candidate-validation

* add timing metrics to chain-api

* add timing metrics to provisioner

* add timing metrics to runtime-api

* add timing metrics to availability-distribution

* add timing metrics to bitfield-distribution

* add timing metrics to collator protocol: collator side

* add timing metrics to collator protocol: validator side

* fix candidate validation test failures

* add timing metrics to pov distribution

* add timing metrics to statement-distribution

* use substrate_prometheus_endpoint prometheus reexport instead of prometheus_super

* don't include JOB_DELAY in bitfield-signing metrics

* give adder-collator ability to easily export its genesis-state and validation code

* wip: adder-collator pushbutton script

* don't attempt to register the adder-collator automatically

Instead, get these values with

```sh
target/release/adder-collator export-genesis-state
target/release/adder-collator export-genesis-wasm
```

And then register the parachain on https://polkadot.js.org/apps/?rpc=ws%3A%2F%2F127.0.0.1%3A9944#/explorer

To collect prometheus data, after running the script, create `prometheus.yml` per the instructions
at https://www.notion.so/paritytechnologies/Setting-up-Prometheus-locally-835cb3a9df7541a781c381006252b5ff
and then run:

```sh
docker run -v `pwd`/prometheus.yml:/etc/prometheus/prometheus.yml:z --network host prom/prometheus
```

Demonstrates that data makes it across to prometheus, though it is likely to be useful in the future
to tweak the buckets.

* Update parachain/test-parachains/adder/collator/src/cli.rs

Co-authored-by: Andronik Ordian <write@reusable.software>

* use the grandpa-pause parameter

* skip metrics in tracing instrumentation

* remove unnecessary grandpa_pause cli param

Co-authored-by: Andronik Ordian <write@reusable.software>
2020-11-20 15:04:51 +01:00
Martin Pugh f02bc5575a base priority on client changes only (#1969) 2020-11-18 16:06:45 -05:00
Martin Pugh 0ab81c907f Add CI job to verify extrinsic ordering (#1950)
* WIP: add initial check_extrinsics_ordering.sh script

* iterate through runtimes, add gitlab job

* move job to publish

* temp force build-linux-release to run

* update check_extrinsics_ordering.sh

* maybe we have to fetch release

* use node docker image

* revert before opening pr: force bad extrinsic ordering

* revert commits to prepare for PR

* move job to build stage, use bin from test-linux-release

* remove FIXME

* fix PR nags
2020-11-16 14:41:57 +01:00
Bastian Köcher b1cd13fdc1 Make sure adder collator test is executed in CI (#1949)
* Revert "Restrict collating_using_adder_collator test on feature real-overseer (#1947)"

This reverts commit 75da335d66.

* Revert "Revert "Restrict collating_using_adder_collator test on feature real-overseer (#1947)""

This reverts commit 4e92cdfb1046b0e3da7627297050ae71ae3dd6e3.

* Test something
2020-11-12 19:48:34 +01:00
Martin Pugh 23f05fdcf1 [CI] Fix release Docker github action (#1942) 2020-11-11 13:44:31 +01:00
Bastian Köcher 83661eb8dc Adds integration test based on adder collator (#1928)
* Adds integration test based on adder collator

This adds an integration test for parachains that uses the adder
collator. The test will start two relay chain nodes and one collator and
waits until 4 blocks are build and enacted by the parachain.

* Make sure the integration test is run in CI

* Fix wasm compilation

* Update parachain/test-parachains/adder/collator/src/lib.rs

Co-authored-by: Sergei Shulepov <sergei@parity.io>

* Update cli/src/command.rs

Co-authored-by: Sergei Shulepov <sergei@parity.io>
2020-11-09 10:26:29 +00:00
s3krit 6466a7f34d [CI] Switch to using paritytech/srtool (#1887)
* switch to using paritytech/srtool

* update release link
2020-10-29 20:33:17 +01:00
s3krit e2e57cb8f6 rollback spec_version and fix check_runtime (#1868) 2020-10-28 12:18:41 +00:00
Peter Goodspeed-Niklaus 1a25c41277 start working on building the real overseer (#1795)
* start working on building the real overseer

Unfortunately, this fails to compile right now due to an upstream
failure to compile which is probably brought on by a recent upgrade
to rustc v1.47.

* fill in AllSubsystems internal constructors

* replace fn make_metrics with Metrics::attempt_to_register

* update to account for #1740

* remove Metrics::register, rename Metrics::attempt_to_register

* add 'static bounds to real_overseer type params

* pass authority_discovery and network_service to real_overseer

It's not straightforwardly obvious that this is the best way to handle
the case when there is no authority discovery service, but it seems
to be the best option available at the moment.

* select a proper database configuration for the availability store db

* use subdirectory for av-store database path

* apply Basti's patch which avoids needing to parameterize everything on Block

* simplify path extraction

* get all tests to compile

* Fix Prometheus double-registry error

for debugging purposes, added this to node/subsystem-util/src/lib.rs:472-476:

```rust
Some(registry) => Self::try_register(registry).map_err(|err| {
	eprintln!("PrometheusError calling {}::register: {:?}", std::any::type_name::<Self>(), err);
	err
}),
```

That pointed out where the registration was failing, which led to
this fix. The test still doesn't pass, but it now fails in a new
and different way!

* authorities must have authority discovery, but not necessarily overseer handlers

* fix broken SpawnedSubsystem impls

detailed logging determined that using the `Box::new` style of
future generation, the `self.run` method was never being called,
leading to dropped receivers / closed senders for those subsystems,
causing the overseer to shut down immediately.

This is not the final fix needed to get things working properly,
but it's a good start.

* use prometheus properly

Prometheus lets us register simple counters, which aren't very
interesting. It also allows us to register CounterVecs, which are.
With a CounterVec, you can provide a set of labels, which can
later be used to filter the counts.

We were using them wrong, though. This pattern was repeated in a
variety of places in the code:

```rust
// panics with an cardinality mismatch
let my_counter = register(CounterVec::new(opts, &["succeeded", "failed"])?, registry)?;
my_counter.with_label_values(&["succeeded"]).inc()
```

The problem is that the labels provided in the constructor are not
the set of legal values which can be annotated, but a set of individual
label names which can have individual, arbitrary values.

This commit fixes that.

* get av-store subsystem to actually run properly and not die on first signal

* typo fix: incomming -> incoming

* don't disable authority discovery in test nodes

* Fix rococo-v1 missing session keys

* Update node/core/av-store/Cargo.toml

* try dummying out av-store on non-full-nodes

* overseer and subsystems are required only for full nodes

* Reduce the amount of warnings on browser target

* Fix two more warnings

* InclusionInherent should actually have an Inherent module on rococo

* Ancestry: don't return genesis' parent hash

* Update Cargo.lock

* fix broken test

* update test script: specify chainspec as script argument

* Apply suggestions from code review

Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>

* Update node/service/src/lib.rs

Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>

* node/service/src/lib: Return error via ? operator

* post-merge blues

* add is_collator flag

* prevent occasional av-store test panic

* simplify fix; expand application

* run authority_discovery in Role::Discover when collating

* distinguish between proposer closed channel errors

* add IsCollator enum, remove is_collator CLI flag

* improve formatting

* remove nop loop

* Fix some stuff

Co-authored-by: Andronik Ordian <write@reusable.software>
Co-authored-by: Bastian Köcher <git@kchr.de>
Co-authored-by: Fedor Sakharov <fedor.sakharov@gmail.com>
Co-authored-by: Robert Habermeier <robert@Roberts-MBP.lan1>
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
Co-authored-by: Max Inden <mail@max-inden.de>
2020-10-28 10:26:50 +00:00
s3krit 0c316acef0 remove debug lines (#1847) 2020-10-26 11:59:20 +00:00
s3krit da121e4183 update generate_release_text.rb (#1812) 2020-10-23 14:37:53 -05:00
s3krit 747103dfd2 Automation for new release process (#1754) 2020-10-20 18:24:54 +02:00
s3krit 032c68850d [CI] Docker image updates (#1799) 2020-10-19 15:44:14 +02:00
Peter Goodspeed-Niklaus f31c904140 add two node local net script (#1781)
* initial work running a two node local net

* use the right incantations so the nodes produce blocks together

* improve internal documentation
2020-10-05 14:51:40 +00:00
s3krit f3abba15c6 Add deb and RPM repository config and documentation (#1676)
Co-authored-by: Parity Releases <releases@parity.io>
Co-authored-by: Demi Marie Obenour <demiobenour@gmail.com>
2020-09-10 17:22:20 +02:00
Bastian Köcher 8729fb7d4b Revert "Ignore checks for companion PRs (#1455)" (#1549) 2020-08-06 17:08:06 +02:00
Cecile Tonglet 497772da18 Ignore checks for companion PRs (#1455) 2020-08-06 06:52:03 +02:00
s3krit 6d0f9df65a [CI] Fix draft release publishing (#1546)
Small oversight, realised I was checking `git log version..old_version` rather than the other way round. Not sure how this slipped through
2020-08-05 19:32:03 +02:00
s3krit 0a44e7a63a Update check_labels runtimenoteworthy label (#1540) 2020-08-05 15:41:16 +02:00
Bastian Köcher 5a4bca765e Add Rococo test network (#1363)
* Add Rococo test network

* Correct license header

* Add bootNodes address

* Fix compile errors

* Change bootNodes

* Change rococo bootNodes

* Add new bootNodes

* Fix bootNodes typo

* Remove public telemetry

* Add rococo-local chain spec

* Remove staking

* Remove staking from chain spec

* use rococo-staging chain spec and preserve bootnodes

* Same but with --raw

* update chain name and remove telemetry

* Empty commit to re-trigger CI

* Fix revision (temp. until I merge master)

* Revert to branch = master to avoid conflicts

* Revert to branch = master to avoid conflicts

* Disable test (temp)

* Revert to branch = master to avoid conflicts

* Revert to branch = master to avoid conflicts

* Change bootNodes IPs for second rococo network

* Revert "Disable test (temp)"

This reverts commit a159f12e3131d1a25dabb1a4d2834642f2bcdc26.

* Revert purchase

* Update chain spec

* FUUU

* Update service/src/lib.rs

Co-authored-by: Robert Habermeier <rphmeier@gmail.com>

* Update runtime/rococo/src/lib.rs

Co-authored-by: Robert Habermeier <rphmeier@gmail.com>

* Fix compilation

Co-authored-by: Evaldo <contato@evaldofelipe.com>
Co-authored-by: David Dorgan <david@parity.io>
Co-authored-by: Cecile Tonglet <cecile.tonglet@cecton.com>
Co-authored-by: Robert Habermeier <rphmeier@gmail.com>
2020-08-04 09:41:39 +00:00
s3krit c82f15ec35 [CI] Build wasm blob with srtool and include prop hashes and blobs in release notes (#1506)
* initial build-wasms commit

* fix wasm builds

* add caching and artifact upload

* test for git dir

* Revert "test for git dir"

This reverts commit 295e4655484691aed9162f479a87f09c1b1c9317.

* fix git version incompability

* attempt to fix caching

* Revert "fix git version incompability"

This reverts commit 1d22ffd26b7eff635c5abcc9bd04cb3c88629a1d.

* add kusama job

* use a build matrix for building runtimes

* combine build-wasms and publish draft release

* attempt to name runtimes according to version

* Revert "attempt to name runtimes according to version"

This reverts commit 82f7b4dc0aea995f2599293bba9f11b879f459e5.
Failed experiment

* name runtimes according to version #2

* fix asset path and name

* build wasms first, include prop hash
2020-07-31 14:34:45 +02:00
s3krit 05675df4ed [CI] Publish draft release redux (#1493)
* Add publish-draft-release Github action
* Remove publish_draft_release.sh gitlab job
2020-07-30 14:02:51 +02:00
Cecile Tonglet 42ddcada02 Companion PR (#1423) 2020-07-22 09:16:14 +02:00
Gavin Wood 760d49c551 Remove Sudo (#1437)
* Remove Sudo

NOTE: To ensure minimal index changes to pre-existing pallet deployments,
this is done with a "swap_remove" style; the previous last pallet
(Purchase), which is hitherto unused, has been shifted into the old index
of Sudo.

* Remove CC1 designation.

* Fixes

* Bump

* Fixes

* Fixes

* Fixes

* Fixes

* Fixes

* Fixes

* Fixes

* Fixes

* Fixes

* Fixes
2020-07-20 17:47:09 +02:00
s3krit 6a9cc1869b [CI] check_runtime.sh redux (#1390)
* Initial check_runtime.sh redux

* Skip further checks if no change to runtime

* remove polkadot-master reference

* Fix issues found during review :)

* replace static common dir with common_dirs array
2020-07-15 13:35:51 -04:00
s3krit ebf7de90c2 [CI] Refactor publish_draft_release.sh (#1289)
* Refactor publish_draft_release.sh

* Switch to using arrays for storing labelled changes
* Combine changes for Polkadot and Substrate
* Change sanitised_git_logs in `lib.sh` to drop `*`s at the start
* Only look for priorities of medium or above (presence of one or more
  C1 label is enforeced by check-labels anyway, saves us some API calls)

* Ensure priorities >C1-low aren't labelled B0-silent
2020-06-22 19:24:12 +02:00
s3krit c3ed40fbe6 [CI] Add criticality of release to release notes (#1259)
* Enforces presence of C-labels to designate the importance of a release
* Iterates over them on a release, takes the highest present and includes it in the release notes
* Lists the change(s) that caused the release to be that priority
2020-06-17 14:10:13 +02:00
Gav Wood 43e7a3be33 Another CI fix 2020-06-17 13:15:09 +02:00
Gav Wood e21a6bf763 Fix CI 2020-06-17 13:13:05 +02:00
Gavin Wood fdda80295f v0.8.10 (Polkadot 10) (#1277)
* Rename old labels.

* Bump runtimes

* Bump versions

* Bump lock
2020-06-17 13:03:23 +02:00
Martin Pugh b5aecb8a3d update label names for check_labels job 2020-06-16 15:38:43 +02:00
s3krit 9bbcc3d89f [CI] Fix release notification message, and add rustc version to release notes (#1191)
* Release announcements: s/kusama/polkadot/

* Additional debug info for gitlab publish script

* add rustc version check job

* fully comment out tag-checking

* s/podman/docker/g

* Switch to rust-builder image and install jq

* remove temporary TODOs
2020-06-09 11:12:34 +02:00
s3krit bb0e37f23a Update lib.sh (#1203)
Changes behaviour of `sanitised_git_logs` to collate all changes when operating on separate branches.
2020-06-08 21:50:00 +02:00
s3krit 57c2ded955 [CI] Add Polkadot runtime version to release notes, change release title to Polkadot CC1 (#1136)
* Include polkadot spec in release notes, retitle releases

* add CC1 to release title
2020-05-26 15:46:23 +02:00
gabriel klawitter 6f1d6e9dcc ci: github api use token for pull requests (#1099) 2020-05-15 16:56:02 +05:30
Bastian Köcher d5033456bb Check for correct tag in check_tags.sh (#1087) 2020-05-12 13:08:05 +02:00
s3krit b2655b5220 [CI] add check_tags CI job (#1072)
* add check_tags CI job

* fix typo in gitlab-ci.yml

* add more useful CI output

* Make presence of github token optional
2020-05-08 17:31:23 +02:00
s3krit 9ce4513e79 [CI] Changelog generation: add westend spec version and check changes against labels (#1016)
* Add westend spec version and check labels for polkadot

... And remove reference to `polkadot-master`

* Add changelog section for runtimenoteworthy labels

And change markdown nesting header style
2020-04-24 11:55:40 +02:00
s3krit 73ab649437 CI: Move publish_draft_release job to test stage, and substrate changelog subsections (#908)
* Move publish_draft_release to test stage

Also remove the alert_pending_release job since it's no longer needed

* delete alert_pending_release.sh

* Add splitting substrate changes into subsections
2020-03-21 13:39:52 +01:00
s3krit 0c93011760 CI: Label PRs with B2-breaksapi if substrate changes are labelled B2-breaksapi (#862)
* CI: Split common functions into lib.sh and make...

... alert_pending_release.sh check the substrate changes for various
labels. If labelled, will be included in the changelog, otherwise will
silently be left out.

* replace non-standard /bin/bash with /usr/bin/env bash

* CI: make lib.sh /bin/sh-compatible

* lib.sh: fix newline chars sometimes breaking has_label()

* check_runtime.sh: tag change with 'B2-breaksapi'...

... if any substrate changes are also labelled 'B2-breaksapi'

* Remove debug exits and uncomment labelling

* exit early if we label with breaksapi

* fix publish_draft_release.sh
2020-02-26 14:56:18 +01:00
s3krit 1f9d2af08e CI: fix bad URL in publish_draft_release.sh (#858) 2020-02-24 12:43:15 +00:00
s3krit 25e2448597 CI: Make alert_pending_release.sh filter substrate changes based on github labels... (#850)
* CI: Split common functions into lib.sh and make...

... alert_pending_release.sh check the substrate changes for various
labels. If labelled, will be included in the changelog, otherwise will
silently be left out.

* replace non-standard /bin/bash with /usr/bin/env bash

* CI: make lib.sh /bin/sh-compatible
2020-02-18 15:59:22 +01:00
gabriel klawitter 9a2495c66e ci: fix check_runtime on busybox (#820) 2020-02-03 16:53:20 +01:00
gabriel klawitter c9e2e5ea0c ci: only tag breaksapi if there were changes to the runtime sources (#798) 2020-01-24 22:41:41 +08:00