* Switch from devp2p to libp2p
* Move the keys in the network state
* Properly load, store or generate private key
* Some robustness
* Update for latest libp2p
* Allow secio
* Don't open a new Kademlia connec all the time
* Handle Kademlia disconnection
* Set correct permissions on key file
* Improvements to secret key storage
* Flush the peer store at Kademlia requests
* Use RAII guards for disconnection
* Some misc work
* Set informations about peers
* Fix tests and external URL
* Fix some style
* Split obtain_private_key into multiple function
* More style fixes
* More style fixes
* Fix some concerns
* Turn // into ///
* More style fixes
* More style fixes
* Add annotations to unreachable!
* Fix style again
* Remove commented out code
* Fix test year
* More concerns
* Substrate service
* Splitting polkadot service
* Specialised components
* Specialised components
* Docs and style
* Docs and style
* Final touches
* Added db key assertion
* 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
* runtime: refactor Checkable and BlindCheckable traits
* fix impl BlindCheckable for Extrinsic
* fix impl Checkable for TestXt
* fix impl Checkable for UncheckedExtrinsic
* fix tabs
* add ::Address to system::Trait since its no longer in Checkable trait
* replace tab by space in comment
* replace occurences of Checkable::check with ::check_with
* tx-pool: replace CheckedIntrinsic type alias since it now would require type param
* make more uses of Checkable compile
* adapt Executive impl to new Checkable trait
* fix that CheckedExtrinsic takes AccountId not Address as first type param
* Checkable trait: return error again since it's required in some cases
* Checkable: improve docstrings
* consistent punctuation and capitalization in docstrings
* Ctx -> Context
addresses https://github.com/paritytech/polkadot/pull/287#discussion_r200956240
* reduce trait bounds for impl Checkable for TestXt
addresses https://github.com/paritytech/polkadot/pull/287#discussion_r200839303
* use <UncheckedExtrinsic as Checkable>::Checked
addresses https://github.com/paritytech/polkadot/pull/287#discussion_r200955165
* Revert "add ::Address to system::Trait since its no longer in Checkable trait"
This reverts commit 02eb103015b833c995c9f9067aac2542bb7ce5ea.
* runtime/executive: properly fix that Address no longer in Checkable
* return `Result<Self::Checked, &'static str>` from `Checkable::check`
* 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
* 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
* Refactor to provide performance improvements for RuntimeVersion lookup, too.
Provides a new runtime_version function which, given a specific , returns
the runtime version for that block, either cached or by executing the block
and caching the result. Exposes that function through all clients to make
most use of that performance improvements.
* Improve Runtime execution by caching runtime lookup
Cache whether the native or wasm runtime should be used for a given
code and if the latter, keep around the parsed wasmi::Module for faster
execution.
* Additional comment and code style fixes
* Fallback to WASM runtime if we can't call the version function
* The previous assumption that the wasm-code was compiled with rustc might be wrong now, that the code comes from the blockchain. Added Notes about that.
* WIP
* Iteration over all keys with the specified prefix
* Add clear_prefix in runtime-io
* Introduce a custom storage impl: Double Map
* Remove prefix
* Impl for_keys_with_prefix for light client
* Fix wasm_executor
* Test storage removal leads to removal of stroage
* Check for ok result in storage tests.
* Add docs.
* Remove commented code under decl_storage!
* Add clear_prefix test in runtime-io
* Add test for wasm_executor
* Prefix walking test.
* Rebuild binaries.
* Genesis serialization
* Custom type for AuthorityId
* Merge w master
* Fixed a few minor issues
* Fixed unmerged file
* Renamed tag
* Deferred genesis loading
* Upated wasm runtime
* Minor issues
* Started work on state db
* Updated for a new hash type
* Pruning and tests
* Generalize on the block hash/key type
* Integrate with the client backend
* Merge w master
* CLI options
* Updated for light client refactoring
* Used IntoIterator
* Fixed invalid input hadling
* Recompile runtime.
* Introduce and enforce block time
* Introduce early session ending.
* Report most of staking module
* rewards, proper early exit and slashing
* Fix build & session logic, introduce tests
* Fixed staking tests.
* Initial test for reward
* Fix test
* Tests for slashing
* Update/fix preset configs
* Fix some tests.
* Fix some staking tests
* Minor fix
* minor cleanups
* Fix build
* Rename timestamp::Value -> Moment
* Require final block of session to be timely
* Merge remote-tracking branch 'origin/master' into gav-xts-dont-panic
* Update wasm.
* consensus, session and staking all panic-safe.
* Democracy doesn't panic in apply.
* Fix tests.
* Extra helper macro, council depanicked.
* Fix one test.
* Fix up all council tests. No panics!
* Council voting depanicked.
* Dispatch returns result.
* session & staking tests updated
* Fix democracy tests.
* Fix council tests.
* Fix up polkadot parachains in runtime
* Fix borked merge
* More Slicable support
Support general `Option` and array types.
* Basic storage types.
* Existential deposit for contract creation
* Basic implemnetation along with removals
* Fix tests.
* externalities builder fix.
* Tests.
* Fix up the runtime.
* Fix tests.
* Add generic `Address` type.
* Initial function integration of Address into Extrinsic.
* Fix build
* All tests compile.
* Fix (some) tests.
* Fix signing.
* Push error.
* transfer can accept Address
* Make Address generic over AccountIndex
* Fix test
* Make Council use Address for dispatch.
* Fix build
* Bend over backwards to support braindead derive.
* Repot some files.
* Fix tests.
* Fix grumbles
* Remove Default bound
* Fix build for new nightly.
* Make `apply_extrinsic` never panic, return useful Result.
* More merge hell
* Doesn't build, but might do soon
* Serde woes
* get substrate-runtime-staking compiling
* Polkadot builds again!
* Fix all build.
* Fix tests & binaries.
* Reserve some extra initial byte values of address for future format changes
* Make semantic of `ReservedBalance` clear.
* Fix panic handler.
* Integrate other balance transformations into the new model
Fix up staking tests.
* Fix runtime tests.
* Fix panic build.
* Tests for demonstrating interaction between balance types.
* Repot some runtime code
* Fix checkedblock in non-std builds
* Get rid of `DoLookup` phantom.
* Attempt to make transaction_pool work with lookups.
* Remove vscode settings
* New attempt at making transaction pool work.
* It builds again!
* --all builds
* Fix tests.
* New build.
* Test account nonce reset.
* polkadot transaction pool tests/framework.
* Address grumbles.
* Pool support non-verified transactions.
* Revert bad `map_or`
* Rebuild binaries, workaround.
* Avoid casting to usize early.
* Make verification use provided block_id.
* Fix tests.
* Alter tests to use retry.
* Fix tests & add call to re-verify.
* Semi-refactor.
* Integrate new queue with the rest of the code.
* Fix tests.
* Add reverify_transaction method.
* Use result.