Commit Graph

111 Commits

Author SHA1 Message Date
Fedor Sakharov 99d164b5e7 Erasure encoding availability (#345)
* Erasure encoding availability initial commit

 * Modifications to availability store to keep chunks as well as
   reconstructed blocks and extrinsics.
 * Gossip messages containig signed erasure chunks.
 * Requesting eraure chunks with polkadot-specific messages.
 * Validation of erasure chunk messages.

* Apply suggestions from code review

Co-Authored-By: Luke Schoen <ltfschoen@users.noreply.github.com>

* Fix build after a merge

* Gossip erasure chunk messages under their own topic

* erasure_chunks should use the appropriate topic

* Updates Cargo.lock

* Fixes after merge

* Removes a couple of leftover pieces of code

* Fixes simple stuff from review

* Updates erasure and storage for more flexible logic

* Changes validation and candidate receipt production.

* Adds add_erasure_chunks method

* Fixes most of the nits

* Better validate_collation and validate_receipt functions

* Fixes the tests

* Apply suggestions from code review

Co-Authored-By: Robert Habermeier <rphmeier@gmail.com>

* Removes unwrap() calls

* Removes ErasureChunks primitive

* Removes redundant fields from ErasureChunk struct

* AvailabilityStore should store CandidateReceipt

* Changes the way chunk messages are imported and validated.

 * Availability store now stores a validator_index and n_validators for
 each relay_parent.
 * Availability store now also stores candidate receipts.
 * Removes importing chunks in the table and moves it into network
 gossip validation.
 * Validation of erasure messages id done against receipts that are
 stored in the availability store.

* Correctly compute topics for erasure messages

* Removes an unused parameter

* Refactors availability db querying into a helper

* Adds the apis described in the writeup

* Adds a runtime api to extract erasure roots form raw extrinsics.

* Adds a barebone BlockImport impl for avalability store

* Adds the implementation of the availability worker

* Fix build after the merge with master.

* Make availability store API async

* Bring back the default wasmtime feature

* Lines width

* Bump runtime version

* Formatting and dead code elimination

* some style nits (#1)

* More nits and api cleanup

* Disable wasm CI for availability-store

* Another nit

* Formatting
2019-12-03 15:49:07 +01:00
Benjamin Kampmann 7832ad93cd fix for latest substrate crate renaming (#641)
* rename crates as appropriate

* Rename to use master - easy to revert, but shows it's working

* Bump runtime version

* Bump version

* Bump Substrate again
2019-12-02 16:56:50 +01:00
Bastian Köcher 33eb0b7ba6 Update to Substrate master (#633) 2019-11-29 14:54:37 +01:00
Arkadiy Paronyan d63f20434e Update to substrate master (#629)
* Update to substrate master

* Update service/src/lib.rs

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

* bump subsrate
2019-11-28 12:57:55 +00:00
Gavin Wood 756e0cd165 Update Substrate (#623)
* Update to latest Substrate master (#615)

* Update to latest Substrate master

* Remove unneeded patch + warning

* Update `Cargo.lock`

* Fix tests

* Update again

* Bump Substrate (#616)

* Update lock

* Fix

* Few fixes

* Bump to latest Substrate

* Fixes

* fix pre-tx-pool compilation

* more compilation fixes

* Updates for the injection period

- Liberal slash-refunding
- Instant unbonding

* *: Enable refactored authority discovery (#624)

* *: Enable authority discovery module

* *: List authority discovery id after parachain validator id

Make sure existing key types don't change their order by appending the
authority discovery id instead of injecting it between im online id and
parachain validator id.

* *: Gate authority discovery module behind feature flag

* cli/src/lib.rs: Fix warnings

* cli/src/lib.rs: Shorten line length

* Bump Substrate

* Bump Substrate

* Line widths

* Line widths again

* Revert bump.
2019-11-28 12:08:37 +00:00
Gavin Wood d5c521a086 Update Substrate after repository reorganisation (#587) (#598)
* Update Substrate after repository reorganisation

* Switch back to polkadot-master

* Bump `bitvec` and `parity-scale-codec` (#591)

Also bump other dependencies, but respect semver on them.
2019-11-19 18:30:01 +01:00
Gavin Wood cc0e775810 Master backports (#571)
* Update to latest Substrate master (#570)

* Bump substrate/version (#557)

* Bump version and Substrate (#560)

* Bump version and Substrate

* Bump version and Substrate

* Bump versions

* bump substrate to release specific v0.6.15

* Update lock

* Prepare Polkadot update for Substrate runtime interface 2.0 (#563)

* Prepare Polkadot update for Substrate runtime interface 2.0

* bump substrate to release specific v0.6.15

* Switch to `polkadot-master`

* Version bump

* Master backports

* Bump runtime

* Fix tests

* Fix tests

* Another fix.
2019-11-12 02:10:02 +01:00
Gavin Wood bd79b34bb3 Backport all v0.6 changes to master... (#552)
* Bump Substrate and versions (#531)

* Bump versions

* Build fix.

* Enable governance (#536)

* Enable governance

* Tweak a few parameters

* Bump substrate, versions. (#538)

* Bump substrate, versions.

* Build fix

* Bump rpc deps (#537)

* Update to latest sub

* Revert branch update

* Update.

* Update tests.

* Ignore warnings in tests.

* Revert substrate (#540)

* Version bump

* Bump Substrate, versions. (#542)

* Bump Substrate, versions.

Also revert the enabling of democracy

* Build fix

* Bump Substrate (#544)

* Bump Substrate

* Fix

* A few tidyups

* Bump Substrate (#547)

* Bump Substrate

* Another bump

* Fixed build for new block_import API

* Enable grandpa migration. (#549)

* Enable grandpa migration.

* Bump runtime version
2019-11-08 11:49:04 +01:00
Gavin Wood 848784e8ec Bump runtime version, update substrate. (#526)
* Bump substrate

* Bump runtime version

* Fix Configuration stuff

* switch to custom branch

* add new backend entry, ignore it

* Bump runtime version, update substrate.

* Rename branch back

* Update substrate
2019-11-01 15:57:07 +00:00
Gavin Wood 80662344f1 Bump Substrate master (#522)
* Bump substrate

* Bump runtime version

* Fix Configuration stuff

* fix extract_proof return type

* add ImOnline module as Authorship event handler
2019-10-31 16:08:16 +00:00
Gavin Wood 0168e2f0fe Update Substrate (#514)
* Update Substrate

* Attempt a fix

* Update substrate again

* Fix compilation

* update substrate add support for sentry

* Fixes tests
2019-10-29 22:00:12 +01:00
André Silva 6d71392500 service: don't use the grandpa observer (#494) (#498)
* service: don't use the grandpa observer

* service: remove unnecessary boxing

* service: fix indentation

* service: remove unnecessary on_exit

tasks spawned with `spawn_task`/`spawn_essential_task` are already
guarded by `on_exit`.

* Update service/src/lib.rs

Co-Authored-By: Gavin Wood <gavin@parity.io>
2019-10-25 12:47:42 +02:00
André Silva d51cdff423 service: cleanup task spawning (#495) 2019-10-25 11:09:54 +01:00
Gavin Wood 425b884931 Switch elections to Phragmen, enable them in PoA (#492)
* Switch elections to Phragmen, enable them in PoA

* Remove superfluous code.

* Build fixes

* Update to substrate master

* Build fixes

* Add warning

* Disable authority discovery for now

* Remove commented code

* Fix warning
2019-10-24 18:55:02 +02:00
Tomasz Drwięga 8dc443dc5b Support account_nextIndex RPC. (#460)
* Use node-rpc extensions to support account_nextIndex.

* Remove todo.

* Update lock.

* Use new srml_system_rpc crate.

* Update to substrate=master

* Update lockfile.

* Update to polkadot-master.

* Apply suggestions from code review

Co-Authored-By: Bastian Köcher <bkchr@users.noreply.github.com>
2019-10-23 13:17:53 +02:00
Bastian Köcher 11afe6a30c Only register one gossip validator for full nodes (#487) 2019-10-21 15:06:00 -04:00
Bastian Köcher 7732e6cc60 Fixes required for Cumulus (#485)
* Collator node need to register all gossip validators as well

* Make sure that parachain authorities are only written once at genesis

* Fix test
2019-10-21 10:10:20 +02:00
Bastian Köcher 2e47302ead Update to latest Substrate master (#486) 2019-10-20 21:23:16 +02:00
thiolliere 9d3dd691b6 update (#457) 2019-10-03 12:52:41 +02:00
André Silva ec828175d8 grandpa: set justification period to 512 blocks (#445) 2019-09-24 17:29:47 +02:00
André Silva 821a59ca8d add authority discovery module (#444) 2019-09-24 15:31:27 +02:00
Bastian Köcher 4f4baa9b07 Update to lastest Substrate master (#443) 2019-09-24 13:09:30 +02:00
thiolliere 444a19ec5f update substrate (#442) 2019-09-23 16:25:14 +02:00
Gavin Wood 28e23d07ef Substrate.from() (#426)
* Substrate.from()

* Fix some transaction validation code

* must be more specific for matching now.

* Update `wasm-builder` and add `build-only-wasm` script

* Update to latest service builder interfaces

* ANother substrate update

* Another update
2019-09-11 13:14:20 +02:00
Robert Habermeier 55c4c830fe ICMP message-routing gossip (#304)
* core logic for ICMP gossip

* refactor gossip to make more extension friendly

* move files aroun

* extract attestation-gossip logic to its own module

* message validation and broadcast logic

* fix upstream crates' compilation

* add a test

* another test for overlapping

* Some grammar and phrasing tweaks

Co-Authored-By: Luke Schoen <ltfschoen@users.noreply.github.com>

* add since parameter to ingress runtime API

* broadcast out known unrouted message queues

* fix compilation of service and collator

* remove useless index_mapping

* some tests for icmp propagation

* fix decoding bug and test icmp queue validation

* simplify engine-id definition

Co-Authored-By: Sergei Pepyakin <sergei@parity.io>

* address some grumbles

* some cleanup of old circulation code

* give network a handle to extrinsic store on startup

* an honest collator ensures data available as well

* address some grumbles

* add docs; rename the attestation session to "leaf work"

* module docs

* move gossip back to gossip.rs

* clean up and document attestation-gossip a bit

* some more docs on the availability store

* store all outgoing message queues in the availability store

* filter `Extrinsic` out of validation crate

* expunge Extrinsic from network

* expunge Extrinsic from erasure-coding

* expunge Extrinsic from collator

* expunge from adder-collator

* rename ExtrinsicStore to AvailabilityStore everywhere

* annotate and clean up message-routing tests
2019-08-29 11:49:59 +02:00
Pierre Krieger bd8ebbfee5 Update to latest Substrate (#407)
* Update to latest Substrate

* Fix main.rs
2019-08-27 15:50:24 +02:00
Gavin Wood 6bcb0e57bf Update substrate and add some sensible values (#387)
* Update substrate

* Update substrate and some chain spec

* Undo old change

* Use hex ser/de for ethereum addresses

* Add docs.

* Accidental line

* incorrect fix

* Fix build
2019-08-20 13:29:05 +02:00
Bastian Köcher da39da8a04 Fix service setup for non-validator nodes (#378)
* Fix service setup for non-validator nodes

* Apply suggestions
2019-08-16 20:10:58 +02:00
Gavin Wood 2c6409a942 Update to latest Substrate (#377)
* Update to latest substrate

* Propagate substrate#3225

* Fixes

* Build

* Fix
2019-08-16 17:56:56 +02:00
Kian Paimani 10fc88f6b1 Update to latest Substrate master. (#353)
* Integrate srml/im-online

* Fix all build errors with old aura.

* Fix most of the build errors.

* Builds and tests seem to pass (I will not trust this commit yet)

* Apply suggestions from code review

Co-Authored-By: Robert Habermeier <rphmeier@gmail.com>

* Kill some warnings.

* fix panics on 0 validators

* Fix dev chain.

* Fix author stuff

* fix im online integration.

* Some tweaks

* Introduce app-crypto

* Initial build work

* codec update / tweaks

* patch polkadot-erasure-coding input

* More fixes for new crypto

* More fixes

* Update parachains module

* evamp parachain crypto

* More crypto work.

* Chain spec and service.

* ChainSpec stuff

* Last bits for a clean build

* Tweak coment

* adapt polkadot-validation to the new keystore

* polkadot-network compiles, but tests don't

* Integrate the new parachain validation stuff

* delete message_routing file

* make polkadot-network tests compile and pass

* runtime tests compile and pass

* update substrate ref

* service compiles

* all tests pass

* Add TODO, change branch back to polkadot-master

* Lock file

* TODOs done

* Issue number

* Remove old tODO

* Remove commented code
2019-08-12 15:48:29 +02:00
Bastian Köcher 4d5db52ca0 Update to latest Substrate (#340)
* Update Substrate

* Update Substrate again

* Integrate weight/fee stuff.

* Add new files.
2019-07-26 12:19:41 +02:00
Arkadiy Paronyan f1fdb0cb83 Parachain validation moved to external process (#325)
* Improved execution & tests

* Style

* Made CLI arg const

* Moved Upwards message

* CLI subcommand for validation worker

* Build halting parachain

* Build halting parachain

* Made stuff private

* Reorganized parachain tests

* Comment

* Whitespace

* Apply suggestions from code review

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

* Fixed call data size check and introduced an enum

* Apply suggestions from code review

Co-Authored-By: Bastian Köcher <bkchr@users.noreply.github.com>
2019-07-23 11:09:30 +02:00
Shawn Tabrizi 2c66adfb0a Update to latest Substrate (7688cbc) (#329)
* Initial fixes

* Clean up Timestamp

* Patch futures

* Typo

* Fix compilation of tests

* Fix parachains tests

* Update runtime/src/parachains.rs

Co-Authored-By: thiolliere <gui.thiolliere@gmail.com>

* Update runtime/src/parachains.rs

Co-Authored-By: Gavin Wood <github@gavwood.com>
2019-07-19 14:15:14 +08:00
Bastian Köcher c0b065837e Update to latest Substrate master (#320)
* Make `collator::Network` require `Send + Sync` to make it work

* Update packages

* Update to latest Substrate

* Make it compile and make tests work

* Use `polkadot-master`

* Fix CI

* Remove `build.sh` from readmes

* Delete old stuff

* Bring one back
2019-07-09 15:33:49 +01:00
Gavin Wood 29ee4e8f3a Update to Substrate master (#311)
* Best effort to bring up to date.

* Fix the executor stuff

* Update verisons.

* Finish fixing

* Final fixes and warnings.

* add some docs and bump Wasm versions

* Fix tests

* Fix final test
2019-07-04 17:15:59 +02:00
Bastian Köcher a016bac6ad Update to latest Substrate master + warning fixes (#292)
* Update to latest Substrate master + warning fixes

* Update runtime/src/lib.rs

Co-Authored-By: thiolliere <gui.thiolliere@gmail.com>
2019-06-20 13:57:58 +02:00
Stanislav Tkach 2c85f90e0a Migrate to the 2018 edition (#273) 2019-05-29 18:33:49 +02:00
Pierre Krieger c699bdc10a Update to Substrate master (#271) 2019-05-25 20:23:14 +02:00
Stanislav Tkach 10ae8d48f5 Add block data size check (#230)
* Add block data size check

* Pass max_block_data_size everywhere

* Fix build after merge

* Fix ParachainWork initialization

* Fix tests compilation
2019-05-24 13:02:13 +02:00
Robert Habermeier 164943b961 strip out all ICMP network code and begin gossip refactor for attestations (#256)
* strip out all ICMP code and begin gossip refactor

* validate incoming statements

* message_allowed logic

* compiles

* do reporting and neighbor packet validation

* tests compile

* propagate gossip messages

* test message_allowed

* some more tests

* address grumbles
2019-05-17 14:30:10 -04:00
thiolliere 6d778c99d2 update substrate (#259)
* WIP

* merging select_chain

* WIP

* update to point to gui-polkadot-master

* Fix collator

* update gui-polkadot-master and fix

* fix unwraps

* better returning an error
2019-05-15 14:35:27 -04:00
Robert Habermeier a65be1b2df update substrate reference (#244)
* port polkadot_runtime and polkadot_validation

* update storages build (#245)

* all tests pass

* rebuild wasm
2019-05-06 18:25:55 +02:00
Bastian Köcher b13b7aec7c Update to almost latest substrate master (#205) 2019-04-03 17:46:04 +02:00
Bastian Köcher c12ed7d8ac Update to latest substrate master (#197) 2019-03-29 11:35:39 -04:00
Bastian Köcher 7e2714f843 Update to latest substrate-master and polkadot v0.3 (#195)
* Rebuild runtime

* Remove invalid value from chainspec (#68)

* service: use grandpa block import for locally sealed aura blocks (#85)

* bump version to v0.3.1

* Update lock file.

* limit number of transactions when building blocks (#91)

* Update to latest Substrate

* Bump to 0.3.2

* Actually bump.

* v0.3.2 (#98)

* bump substrate version

* fix polkadot-collator

* point to alexander-backports of substrate

* bump version

* cli: fix node shutdown (#100)

* update to latest substrate, change to v0.3.4

* update to latest substrate, bump version to 0.3.5

* v0.3.6

* try to build on every v0.3 commit and update alexander-backports

* bump to v0.3.7

* bump to 0.3.8

* Bump to 0.3.9: network and pruning improvements

* Bump to 0.3.10: reduce network bandwidth usage

* Use libp2p-kad 0.3.2 (#122)

* Bump libp2p-identify to 0.3.1 (#123)

* Bump to 0.3.12 (#127)

* Update Substrate again (#128)

* update substrate and bump version to v0.3.13

* bump version to v0.3.14: fix --reserved-nodes

* add a manually curated grandpa module (#136)

* updating v0.3 to use substrate v0.10 (#146)

* updating to latest substrate v0.10

* better handling of outer poll

* nit

* fix tests

* remove comment

* reduce indentation

* use self.poll

* bring oneshot into scope

* spaces

* wrap

* remove match

* wrap

* Update primitives/Cargo.toml

Co-Authored-By: gterzian <2792687+gterzian@users.noreply.github.com>

* Update runtime/wasm/Cargo.toml

Co-Authored-By: gterzian <2792687+gterzian@users.noreply.github.com>

* Update runtime/wasm/Cargo.toml

Co-Authored-By: gterzian <2792687+gterzian@users.noreply.github.com>

* Update test-parachains/adder/collator/src/main.rs

Co-Authored-By: gterzian <2792687+gterzian@users.noreply.github.com>

* indent

* add paranthese

* config: fix wrong ip for alexander bootnode (#161)

* fix curated-grandpa and rebuild wasm (#162)

* [v0.3] Integrates new gossip system into Polkadot (#166)

* new gossip validation in network

* integrate new gossip into service

* network: guard validation network future under exit signal (#168)

* bump version to v0.3.15: substrate v0.10

* [v0.3] update to substrate master (#175)

* update to substrate master

* fix test

* service: fix telemetry endpoints on alexander chainspec (#169) (#178)

* Update v0.3 to latest Substrate master (#177)

* update substrate v0.3 to latest master

* bump spec version

* update to latest master: remove fees module

* update runtime blobs

* bump version to 0.3.16

* replace sr25519 accountid with anysigner

* bump version to v0.3.17

* Some PoC-3 GRANDPA tweaks (#181)

* call on_finalise after triggering curated_grandpa change

* make grandpa rounds shorter for faster finalization

* use authorities when calculating duty roster (#185)

* [v0.3] Update to substrate master (#183)

* update to latest substrate master

* bump version to 0.3.18

* update to latest substrate master

* bump spec version

* update runtime wasm blobs

* remove current_offline_slash from chain spec

* update to substrate master: bump version to v0.3.19 (#188)

* update to substrate master: bump version to v0.3.19

libp2p network improvements

* network: replace NodeIndex with PeerId

* network: fix tests

* polkadot v0.3.20 (#190)

* update to substrate master: bump version to 0.3.20

* runtime: add offchain worker trait

* runtime: rebuild wasm blobs

* bump spec version (#191)

* Fix compilation

* Update version to 0.4.0

* Switch to use `polkadot-master` branch from substrate

* Remove unused struct

* Remove `grandpa::SyncedAuthorities` from `OnSessionChange`
2019-03-28 15:20:39 +01:00
Robert Habermeier 454ddf8921 Collators get incoming parachain messages (#149)
* refactor out a consensus data fetcher from table router

* move statement checking logic into router

* refuse to start authority if collator

* support building the table router asynchronously

* instantiate_consensus does not overwrite old

* update key in new consensus if there was none before

* collator collects ingress from network

* test produced egress roots

* fix adder-collator compilation

* address first grumbles

* integrate new gossip with collator network launch

* address review
2019-03-22 00:48:36 +01:00
Gav Wood 67275abe30 Update to Substrate master (#176)
* Update to master

This introduces a new type `CollatorId`, currently just `SessionKey`
but which would forseeably change to its own thing. It seems to work
like this (despite there being a lot of the new-incompatible
`AccountId` replaced). No idea if it does anything sensible, though.

* Cleanups

* Fix tests

* Remove commented code

* Specify commit hash

* Remove commented code

* Correct version

* Update runtime/Cargo.toml

Co-Authored-By: gavofyork <github@gavwood.com>

* PairT instead of _Pair

* Update lock file

* Remove rev causing upset
2019-03-18 11:29:39 +01:00
Robert Habermeier 7e6183f74c Update to new gossip system. (#172)
* Integrates new gossip system into Polkadot (#166)

* new gossip validation in network

* integrate new gossip into service

* Fix build

* Fix claims module

* fix warning

* update to latest master again

* update runtime
2019-03-06 20:47:09 +01:00
joe petrowski 30472a18ab Correct FIXME/TODO in service module (#164)
* remove TODO

TODO should have been removed after the last update

* add issue link to grandpa config

* add todo with link

* update issue link to substrate
2019-02-28 10:40:02 +01:00
Andrew Jones 7a619ea222 Rename polkadot-consensus -> polkadot-validation (#151)
* Initial rename of consensus -> validation

* Rename crate imports

* network: rename consensus to validation

* network: rename consensus in comments and logs

* Grumbles

* Rename tests consensus -> validation
2019-02-21 14:00:06 -05:00