Commit Graph
100 Commits
Author SHA1 Message Date
Robert HabermeierandAndré Silva dfb48a2405 Offline fallback for GRANDPA (#1619)
Co-authored-by: André Silva <andre.beat@gmail.com>

* skeleton for finality tracker

* dispatch events when nothing finalized for a long time

* begin integrating finality tracker into grandpa

* add delay field to pending change

* add has_api_with function to sr_version for querying APIs

* partially integrate new force changes into grandpa

* implement forced changes

* get srml-grandpa compiling

* Update core/finality-grandpa/src/authorities.rs

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

* Update core/finality-grandpa/src/authorities.rs

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

* Update core/finality-grandpa/src/authorities.rs

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

* remove explicit dependence on CoreApi

* increase node runtime version

* integrate grandpa forced changes into node runtime

* add some tests to finality-tracker

* integrate finality tracking into node-runtime

* test forced-change logic

* test forced changes in the authority-set handler

* kill some unneeded bounds in client

* test forced-changes in finality-grandpa and fix logic

* build wasm and finality-tracker is no-std

* restart voter on forced change

* allow returning custom error type from lock_import_and_run

* extract out most DB logic to aux_schema and use atomic client ops

* unify authority set writing

* implement set pausing

* bump runtime version

* note on DB when we pause.

* core: grandpa: integrate forced changes with multiple pending standard changes

* core: grandpa: fix AuthoritySet tests

* runtime: bump impl_version

* core: clear pending justification requests after forced change import

* srml: finality-tracker: use FinalizedInherentData

* core: log requests for clearing justification requests

* core, node: update runtimes

* core: grandpa: fix tests

* core: grandpa: remove todos and add comments

* core: grandpa: use has_api_with from ApiExt

* core: fix tests

* core: grandpa: remove unnecessary mut modifier

* core: replace PostImportActions bitflags with struct

* core: grandpa: restrict genesis on forced authority set change

* core: grandpa: add more docs

* core: grandpa: prevent safety violations in Environment::finalize_block

* core: grandpa: register finality tracker inherent data provider

* core: grandpa: fix tests

* node: update runtime blobs

* core: grandpa: remove outdated todo

* core: aura: fix typo in log message

* core: grandpa: check re-finalization is on canonical chain

* srml: finality-tracker: fix initialization

* node: update runtime wasm

* srml: finality-tracker: don't re-initialize config keys
2019-03-05 15:41:35 +00:00
Robert Habermeier 4c8fec17fc Some gossip improvements (#1892)
* queue messages in future

* use new gossip API in GRANDPA

* implement message_expired for grandpa

* fix indent
2019-02-28 20:19:42 +01:00
Robert Habermeier 64685c0536 Prune leaves on finality (#1871)
* support multiple leaves at same height in leaves set

* prune leaves on finalization

* test leaves behavior in client-db

* fix no-std compilation
2019-02-26 15:50:55 -05:00
Robert Habermeier 2155e44e13 grandpa: consistent argument ordering in rebroadcast vs. network (#1647)
* grandpa: consistent argument ordering in rebroadcast vs. network

* use a round type
2019-02-01 17:17:43 +01:00
Robert Habermeier ced9e72824 Download unknown but announced forks (#1604)
* test reproducing fork sync issues

* update to new announce_block API

* Download unknown forks

* Reverted download_stale

* Avoid cloning the hash

* Typo
2019-01-28 16:41:33 -03:00
Robert Habermeier d027123059 GRANDPA: announce blocks we vote on to peers (#1593)
* announce blocks we vote on to peers (missing network impl)

* Implemented 'announce'

* Fixed test

* improve announce docs and add logging

* Track recently announced blocks
2019-01-28 16:41:36 +00:00
Robert Habermeier 86c5f78805 more logging around pending GRANDPA changes (#1587) 2019-01-27 14:53:57 +01:00
Robert Habermeier 0953521cc4 don't panic in best_containing (#1559)
* don't panic in best_containing

* core: client: fix borrow in best_containing
2019-01-25 12:16:37 +00:00
Robert Habermeier 7c1f92b26f log when it takes a while to import forks we need from GRANDPA (#1533) 2019-01-23 12:22:24 -03:00
Robert Habermeier 9ae1316c86 a wrapper network for rebroadcasting GRANDPA messages periodically (#1513) 2019-01-21 16:33:07 -03:00
Robert Habermeier 3ea681998a remove unneeded iterator bound on ordered_trie_root (#1490) 2019-01-20 15:49:29 +01:00
Robert Habermeier a7a0121b09 mark GRANDPA and consensus stuff as unstable (#1469) 2019-01-17 22:07:54 +01:00
Robert Habermeier f0b4c87eb5 set wasmi version 0.4.3 in Cargo.toml (#1452) 2019-01-15 21:44:54 +01:00
Robert Habermeier 9acda28c16 informant: display finalized height and hash (#1387) 2019-01-10 18:19:31 +01:00
Robert Habermeier eb0ff291d6 log on reorganization (#1356) 2019-01-07 15:32:04 +01:00
Robert Habermeier 35ba22cdd1 refactor aura slot timers a bit, add additional guards (#1303) 2018-12-29 15:29:09 +01:00
Robert Habermeier c61d03a86f fix overflow in slashing logic (#1263) 2018-12-13 12:33:03 +01:00
Robert Habermeier 20782baeef add on_exit parameter to aura thread builder (#1249) 2018-12-11 13:43:53 +01:00
Robert Habermeier 6299b42a4d Punish offline validators, aura-style (#1216)
* make offline-reporting infrastructure more generic

* add a listener-trait for watching when the timestamp has been set

* prevent inclusion of empty offline reports

* add test for exclusion

* generate aura-offline reports

* ability to slash many times for being offline "multiple" times

* Logic for punishing validators for missing aura steps

* stub tests

* pave way for verification of timestamp vs slot

* alter aura import queue to wait for timestamp

* check timestamp matches seal

* do inherent check properly

* service compiles

* all tests compile

* test srml-aura logic

* aura tests pass

* everything builds

* some more final tweaks to block authorship for aura

* switch to manual delays before step

* restore substrate-consensus-aura to always std and address grumbles

* update some state roots in executor tests

* node-executor tests pass

* get most tests passing

* address grumbles
2018-12-10 18:37:08 +01:00
Robert Habermeier 9bccc9661c CheckInherentError can now report when something would be valid (#1204)
* CheckInherentError can now report when something would be valid

* set timestamp inherent to next valid block time

* return max timestamp for valid-after when checking
2018-12-04 09:19:36 +01:00
Robert Habermeier 63980e3770 make block builder and construct_runtime! generic over inherent-data (#1191)
* make block builder generic over inherent-data

* construct_runtime has you specify inherent data type

* get all tests to compile
2018-12-03 11:49:30 +01:00
Robert Habermeier 40e6c7522a make start_aura bounds more lenient (#1189) 2018-12-03 02:47:09 +01:00
Robert Habermeier 59af4de4fd GRANDPA: add commit messages (#1151)
* get compiling with latest version of grandpa

* generalize UntilImported to prepare for waiting for commit message targets

* extract until_imported out to own module

* logic for blocking commits until enough blocks imported

* add tests for commit message blocking logic

* pass through commit mesage round number as well

* extract communication streams to own module

* add Error implementation for ExitOrError

* introduce stream adapter for checking commit messages

* output sink for commits

* implement the unimplemented

* remove extra line

* update to latest version of grandpa api

* update finality-grandpa to 0.4.0

* Use filter_map earlier when checking incoming commits messages

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

* address some grumbles
2018-11-26 16:24:26 +01:00
Robert Habermeier 2e41e9e870 add leaves function to chain (#1154) 2018-11-23 02:35:01 +01:00
Robert Habermeier 11fe84a742 Minimal switch of substrate-node to GRANDPA /Aura (#1128)
* add beginnings of SRML grandpa library

* get srml-grandpa compiling

* tests for srml-grandpa

* add optional session integration to grandpa SRML

* start integration into node runtime

* Allow extracting pending change from header digest

* Make it compile on wasm

* make tests compile again

* Move Authority Key fetching into service, simplify service factory construction

* Generalize Authority Consensus Setup system

* Add Authority Setup Docs

* Allow CLI params to be extensible

 - move params to structopts
 - split parsing and default command execution
 - add custom config to node
 - extended parsing of custom config
 - extending params via structop's flatten

* Minor fixes on cli extension params:
 - added docs
 - re-add actual app name, rather than node-name
 - make strategy and subcommand optional

* better cli params

* synchronize GRANDPA and normal node authorities

* Implement grandpa::network for gossip consensus

* run_grandpa in Node

* Fix missed merge error

* Integrate grandpa import queue

* more specific type def

* link up linkhalf and import block

* make grandpa future send

* get compiling

* Fix new params convention and license header

* get it running

* rebuild node runtime WASM

* change logging level

* Update node/cli/src/params.rs

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

* Update node/cli/src/params.rs

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

* Update node/cli/src/lib.rs

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

* Update node/runtime/src/lib.rs

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

* Update node/cli/src/lib.rs

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

* Clean up and Fixme for mutable config

* Move GrandpaService Integration into grandpa, feature gated but on per default

* Fixing grandpa runtime module test

* Update wasm runtime hashes for tests

* GRANDPA: use post-header hash when logging scheduled changes

* add an extra bit of logging to authorities

* fixing missing constrain

* remove old code

* move `NewAuthorities` to an event in srml-grandpa

* fix node-executor tests to use grandpa log

* Remove GossipConsensus from tests, use newly provided sync-feature, fixes tests

* Update to latest wasm runtimes

* address grumbles

* address grumbles

* only derive deserialize when using std

* Clean up use of Deserialize
2018-11-21 18:42:50 +01:00
Robert Habermeier 969c81028c alter DB schema to fix lookup race (#1135) 2018-11-19 14:54:35 +01:00
Robert Habermeier c74daa8afe Fix doc on set_validator_count (#1137) 2018-11-19 14:46:36 +01:00
Robert Habermeier e45a68a009 add extra verification for aura (#1126)
* add extra verification for aura

* fix tests

* adjust documentation wording
2018-11-16 11:36:35 +01:00
Robert Habermeier 5d5bbcccfb rename fg-primitives to more verbose name (#1123) 2018-11-16 08:36:04 +01:00
Robert Habermeier 1b202e1ffb start to refactor block import wrapper a bit 2018-11-15 18:36:16 +01:00
Robert Habermeier d2e928a39f more issues due to core API reshuffle 2018-11-15 18:09:03 +01:00
Robert Habermeier 913513d983 Merge branch 'rh-grandpa-dynamic2' of github.com:paritytech/substrate 2018-11-15 17:49:36 +01:00
Robert Habermeier 4307a55505 special case equality in ancestry function 2018-11-15 17:03:39 +01:00
Robert Habermeier 1cb0bbc48b start addressing basti comments 2018-11-15 16:36:28 +01:00
Robert Habermeier 7e088f6342 address grumbles 2018-11-14 14:34:32 +01:00
Robert Habermeier e37ab01482 Merge branch 'master' into rh-grandpa-dynamic2 2018-11-14 14:32:30 +01:00
Robert Habermeier 876969d6f0 add some docs 2018-11-05 11:27:01 +01:00
Robert Habermeier 3968553f8c re-export ApiId from sr-api 2018-11-05 10:47:34 +01:00
Robert Habermeier ddd46db4d5 fix test 2018-11-03 17:08:47 +01:00
Robert Habermeier abfc4a24a9 ignore test temporarily 2018-11-03 16:47:38 +01:00
Robert Habermeier dc59431474 API id module 2018-11-03 16:45:18 +01:00
Robert Habermeier ebeacee7d4 all tests compile 2018-11-02 18:17:57 +01:00
Robert Habermeier 21f291a607 Merge branch 'master' into rh-grandpa-dynamic2 2018-11-01 20:31:13 +01:00
Robert Habermeier 5b2a93821c use published finality-grandpa 2018-11-01 20:25:59 +01:00
Robert Habermeier 6704f15e99 finish GRANDPA test: dynamic authority sets 2018-11-01 20:15:51 +01:00
Robert Habermeier 9630f34775 client sets aux in import pipeline 2018-10-31 12:47:41 +01:00
Robert Habermeier d346b330f9 implement aux-storing in client-db 2018-10-31 12:41:22 +01:00
Robert Habermeier 3f2a7f3cba set aux in block import 2018-10-31 12:40:21 +01:00
Robert Habermeier c64ff78776 initial test to ensure auxiliary data is generated correctly 2018-10-31 12:39:27 +01:00
Robert Habermeier fe6dd131f0 tests compile after changes 2018-10-30 23:46:27 +01:00
Robert Habermeier afbe00db75 extract out tests to file 2018-10-29 17:05:42 +01:00
Robert Habermeier 6d4acb053d tests compile using new test framework 2018-10-29 17:03:08 +01:00
Robert Habermeier 84925067f4 generalizable data for peers in test network 2018-10-29 16:25:22 +01:00
Robert Habermeier 0302a1fc5e refactor import queue to use explicit block import references 2018-10-29 15:56:10 +01:00
Robert Habermeier e2ee6a2b90 read authority set from DB on startup 2018-10-29 02:31:51 +01:00
Robert Habermeier 3317fee0a1 write authority set to DB 2018-10-29 02:05:47 +01:00
Robert Habermeier 55ca13ab09 call into chain WASM to check for changes 2018-10-28 20:50:31 +01:00
Robert Habermeier 442e300163 add substrate finality grandpa primitives for WASM 2018-10-28 20:37:09 +01:00
Robert Habermeier 66dafbcb0b minimize public interface 2018-10-28 18:45:42 +01:00
Robert Habermeier ab6c343aaf Merge branch 'master' into rh-grandpa-dynamic2 2018-10-27 18:12:33 +02:00
Robert Habermeier 1a3fe5657d restart voter with new authority set as necessary 2018-10-27 17:32:42 +02:00
Robert Habermeier 25984d8dc8 add some tests for authority set logic 2018-10-27 16:18:01 +02:00
Robert Habermeier e33a8dde4a compiles 2018-10-27 15:43:03 +02:00
Robert Habermeier 5f6dc6bc6a apply authority set changes 2018-10-26 19:19:12 +02:00
Robert Habermeier a422a14b52 use generic block number in GRANDPA 2018-10-25 18:00:46 +02:00
Robert Habermeier 08890f2bc1 note future changes when importing block 2018-10-25 16:48:51 +02:00
Robert Habermeier fb1401ab79 Merge branch 'master' into rh-grandpa-dynamic2 2018-10-22 16:06:42 +02:00
Robert Habermeier 515153fa85 localize messages to set-index and add pending changes 2018-10-21 11:11:53 +02:00
Robert Habermeier fa62c8e9df start import queue in chain_ops as well 2018-10-17 21:02:19 -07:00
Robert Habermeier e7a50ff52a generalize some import_queue params 2018-10-17 21:02:15 -07:00
Robert Habermeier 1c75f8059a round-localized signatures on GRANDPA messages 2018-10-17 14:52:08 -07:00
Robert Habermeier b255f8f987 grandpa-compatible digest items 2018-10-17 14:51:54 -07:00
Robert Habermeier 02f8897648 Fix grumbles from previous GRANDPA PR (#880)
* implement grandpa client

* consensus gossip with arbitrary topics

* defer GRANDPA messages until referenced blocks imported

* set up communication for voter in a transparent way

* instantiate GRANDPA voter

* keep last round state on disk

* switch back to crates.io finality-grandpa

* update cargo.lock

* use new `collect_garbage` API

* update sync test framework and make public

* test that observers can observe

* fix warning

* use more idiomatic predicate for collecting garbage in gossip

* kill spaces

* fix date

* fatal error when unable to complete

* rename run_voter to run_grandpa

* switch back to crates.io
2018-10-05 14:26:28 -04:00
Robert Habermeier 68b4be14ff Initial GRANDPA integration (#866)
* implement grandpa client

* consensus gossip with arbitrary topics

* defer GRANDPA messages until referenced blocks imported

* set up communication for voter in a transparent way

* instantiate GRANDPA voter

* keep last round state on disk

* switch back to crates.io finality-grandpa

* update cargo.lock

* use new `collect_garbage` API

* update sync test framework and make public

* test that observers can observe

* fix warning

* use more idiomatic predicate for collecting garbage in gossip

* kill spaces

* fix date
2018-10-05 16:30:39 +02:00
Robert Habermeier a3285e43f6 ensure meta is actually in the right column and sanity check on iterator (#820) 2018-09-27 16:05:24 +01:00
Robert Habermeier abf799f78f Hard cutoff for non-finalized block state pruning (#798)
* state pruning after window even when nothing is finalized

* rename and alter canonicalization delay

* fix constant

* address grumbles

* add comment on canonicality vs finality
2018-09-26 00:24:11 +02:00
Robert Habermeier b02c274374 Finality notification streams (#791)
* finalization for in_mem

* fetch last finalized block

* pruning: use canonical term instead of final

* finalize blocks in full node

* begin to port light client DB

* add tree-route

* keep number index consistent in full nodes

* fix tests

* disable cache and finish porting light client

* add AsMut to system module

* final leaf is always best

* fix all tests

* Fix comment and trace

* removed unused Into call

* add comment on behavior of `finalize_block`

* move `tree_route` to client common

* tree_route tests

* return slices in TreeRoute

* apply finality up to parent

* add `finalize_block` call

* adjust formatting

* finality notifications and add last finalized block to chain info

* exhaustive match and comments

* fix sync tests by using non-instant finality
2018-09-24 18:45:37 +02:00
Robert Habermeier b7d095a2e0 Introduce notion of finality to substrate (#760)
* finalization for in_mem

* fetch last finalized block

* pruning: use canonical term instead of final

* finalize blocks in full node

* begin to port light client DB

* add tree-route

* keep number index consistent in full nodes

* fix tests

* disable cache and finish porting light client

* add AsMut to system module

* final leaf is always best

* fix all tests

* Fix comment and trace

* removed unused Into call

* add comment on behavior of `finalize_block`
2018-09-21 15:56:21 +02:00
Robert Habermeier a0069f5fe2 Forward-port BFT fixes from v0.2 and restructure agreement cancelling (#619)
* more accurate consensus superseding logic

* mild revision to `can_build_on` logic

* fix a deadlock when spawning agreement as non-authority

* dropping BFT future before poll doesn't lead to service deadlock

* push cancel to BFTfuture rather than waiting for task
2018-08-28 12:28:28 +01:00
Robert Habermeier 3ef4463c3a [forward port] continue rounds (#583)
* keep rounds consistent when encountering bad block

* fix interval logic

* Fixed indentation
2018-08-17 22:12:37 +02:00
Robert Habermeier d0066e51ae remove wasm-publish step 2018-08-15 13:57:14 +02:00
Robert Habermeier 4eefa5ee60 update script targets 2018-08-15 13:43:41 +02:00
Robert Habermeier add49f1f79 Merge branch 'master' into split-substrate 2018-08-15 13:24:27 +02:00
Robert Habermeier 934829c052 get everything building 2018-08-14 18:59:32 +02:00
Robert Habermeier a079be3e64 Update some outdated slashing tests in runtime (#565)
* fix session slashing test

* fix staking slashing tests
2018-08-14 14:27:34 +02:00
Robert Habermeier e8f21cf0c9 Vote out offline authorities (#524)
* notify when an authority appears to have missed their block

* Runtime API

* offline tracker

* Move to consensus

* generating reports of offline indices

* stubbed-out evaluation logic

* Slashing data pathwat

* usize -> u32

* Slash bad validators.

* update to rhododendron 0.3

* fix compilation of polkadot-consensus

* Support offline noting in checked_block

* include offline reports in block authorship voting

* do not vote validators offline after some time

* add test for offline-tracker

* fix test build

* bump spec version

* update wasm

* Only allow validators that are possible to slash

* Fix grumble

* More idiomatic

* New Wasm.

* update rhododendron

* improve logging and reduce round time exponent

* format offline validators in ss58
2018-08-11 11:29:30 +02:00
Robert Habermeier c2b20fe5b0 fix block body fetch for availability pruning (#539) 2018-08-10 16:02:07 +02:00
Robert Habermeier 4e95cefab9 don't wait for all futures to resolve before shutdown (#536) 2018-08-10 13:56:54 +02:00
Robert Habermeier 34b4cb8320 Fix some formatting grumbles (#501) 2018-08-06 14:42:39 +03:00
Robert Habermeier 21346f34f8 Availability/Extrinsic store (#465) 2018-08-06 11:55:55 +02:00
Robert Habermeier 65b66e6bad force BFT delay in consensus service, not in proposer logic (#477)
* move forced delay to consensus service

* fiddle with logging
2018-08-02 17:01:27 +02:00
Robert Habermeier bd3890da7e Collator for the "adder" (formerly basic-add) parachain and various small fixes (#438)
* update basic_add wasm

* wasm feature and collator feature

* move test parachains around a little

* fix wasm build for basic_add

* move basic_add to adder, introduce README

* minimal basic_add collator

* ensure collator messages are sent in the right order

* more logging

* route consensus statements to all peers

* minor bugfixes for parachains

* genesis builder accounts for parachain heads

* fix parachains tests

* targets for txpool

* tweak runtime + collator

* fix version in adder-collator

* consistency for overflowing

* adjust comment

* fix stable test run

* remove dummy registration test

* final grumbles
2018-08-01 17:04:04 +02:00
Robert Habermeier 927cb59aaf Collator-side of collator protocol (#351)
* skeleton of collators object

* awaiting and handling collations. rename `collators` to CollationPool

* add some tests

* add tests

* implement Collators trait for ConsensusNetwork

* plug collators into main polkadot-network

* ignore collator role message

* add a couple more tests

* garbage collection for collations

* extract session-key tracking from consensus

* add local_collations.rs

* finish polish of local_collations

* integrate local_collations into network layer

* introduce API for adding local collations

* mostly finish collator implementation pending service fix

* Specialized network()

* push collations to the network

* grumbles

* substrate-service has custom configuration

* initialize network in collator mode as necessary
2018-07-18 15:04:26 +02:00
Robert Habermeier c6119cbbdf hash random seed when using to choose round proposer (#336) 2018-07-16 18:17:52 +02:00
Robert Habermeier 7d881a2ec5 Validator side of the collation protocol. (#295)
* skeleton of collators object

* awaiting and handling collations. rename `collators` to CollationPool

* add some tests

* add tests

* implement Collators trait for ConsensusNetwork

* plug collators into main polkadot-network

* ignore collator role message

* add a couple more tests

* garbage collection for collations

* ensure disconnected backup collator is removed from pool

* address other grumbles
2018-07-12 10:47:10 +02:00
Robert Habermeier 374984fe35 PoC-1 consensus extracted to "rhododendron" (#284) 2018-07-09 11:26:04 +02:00
Robert Habermeier 9b254c3075 Collator node workflow (#280)
* arbitrary application logic in CLI

* collation work

* split up exit and work futures in application

* collation node workflow

* typo

* indentation fix

* doc grumbles

* rename Application to Worker

* refactor Worker::exit to exit_only
2018-07-06 17:13:31 +03:00
Robert Habermeier be5ff4e62f Minimal parachains part 2: Parachain statement and data routing (#173)
* dynamic inclusion threshold calculator

* collators interface

* collation helpers

* initial proposal-creation future

* create proposer when asked to propose

* remove local_availability duty

* statement table tracks includable parachain count

* beginnings of timing future

* finish proposal logic

* remove stray println

* extract shared table to separate module

* change ordering

* includability tracking

* fix doc

* initial changes to parachains module

* initialise dummy block before API calls

* give polkadot control over round proposer based on random seed

* propose only after enough candidates

* flesh out parachains module a bit more

* set_heads

* actually introduce set_heads to runtime

* update block_builder to accept parachains

* split block validity errors from real errors in evaluation

* update WASM runtimes

* polkadot-api methods for parachains additions

* delay evaluation until candidates are ready

* comments

* fix dynamic inclusion with zero initial

* test for includability tracker

* wasm validation of parachain candidates

* move primitives to primitives crate

* remove runtime-std dependency from codec

* adjust doc

* polkadot-parachain-primitives

* kill legacy polkadot-validator crate

* basic-add test chain

* test for basic_add parachain

* move to test-chains dir

* use wasm-build

* new wasm directory layout

* reorganize a bit more

* Fix for rh-minimal-parachain (#141)

* Remove extern "C"

We already encountered such behavior (bug?) in pwasm-std, I believe.

* Fix `panic_fmt` signature by adding `_col`

Wrong `panic_fmt` signature can inhibit some optimizations in LTO mode.

* Add linker flags and use wasm-gc in build script

Pass --import-memory to LLD to emit wasm binary with imported memory.

Also use wasm-gc instead of wasm-build.

* Fix effective_max.

I'm not sure why it was the way it was actually.

* Recompile wasm.

* Fix indent

* more basic_add tests

* validate parachain WASM

* produce statements on receiving statements

* tests for reactive statement production

* fix build

* add OOM lang item to runtime-io

* use dynamic_inclusion when evaluating as well

* fix update_includable_count

* remove dead code

* grumbles

* actually defer round_proposer logic

* update wasm

* address a few more grumbles

* schedule collation work as soon as BFT is started

* impl future in collator

* fix comment

* governance proposals for adding and removing parachains

* bump protocol version

* tear out polkadot-specific pieces of substrate-network

* extract out polkadot-specific stuff from substrate-network

* begin polkadot network subsystem

* grumbles

* update WASM checkins

* parse status from polkadot peer

* allow invoke of network specialization

* begin statement router implementation

* remove dependency on tokio-timer

* fix sanity check and have proposer factory create communication streams

* pull out statement routing from consensus library

* fix comments

* adjust typedefs

* extract consensus_gossip out of main network protocol handler

* port substrate-bft to new tokio

* port polkadot-consensus to new tokio

* fix typo

* start message processing task

* initial consensus network implementation

* remove known tracking from statement-table crate

* extract router into separate module

* defer statements until later

* double signature is invalid

* propagating statements

* grumbles

* request block data

* fix compilation

* embed new consensus network into service

* port demo CLI to tokio

* all test crates compile

* some tests for fetching block data

* whitespace

* adjusting some tokio stuff

* update exit-future

* remove overly noisy warning

* clean up collation work a bit

* address review grumbles

* fix lock order in protocol handler

* rebuild wasm artifacts

* tag AuthorityId::from_slice for std only

* address formatting grumbles

* rename event_loop to executor

* some more docs for polkadot-network crate
2018-07-06 14:17:03 +02:00
Robert Habermeier 5355956314 fix typo (#285) 2018-07-06 13:50:40 +02:00
Robert Habermeier 4082d660ba store all future messages in BFT (#228) 2018-06-22 17:52:23 +02:00