* Adds new `ProvideInherent` trait
Also implements the new trait for `srml/consensus` and `srml/timestamp`.
* Adds `impl_outer_inherent!` macro
* Reexport macros from `alloc`
* Introduce `RuntimeString` and fix `ProvideInherent` on `no_std`
* Replace `VersionString` with `RuntimeString`
* Improvements for `impl_outer_inherent!`
* Make `construct_runtime!` support `impl_outer_inherent!`
* Fixes after rebase
* Whitespace
* Try to make everything compact
* Make `Clone` work
* Fix
* Move contracts and balances over to compact encoding
* Session and timestamp are compact
* Sataking uses compact numbers
* Treasury now compact
* Compact Democracy
* Council is compact
* Fix
* Make `on_message` take the message as `&mut Option<_>`
* Make `ConsensusGossip` implement `Specialization`
* Move `new_session` into `ConsensusGossip`
* Adds `construct_simple_protocol` macro for simplifying the creation of protocols
* do not send OnDemand request to node who, we believe, can't process it
* ignore peers with too old best block on light nodes
* non-weird temporary
* fix condition
* compilation
* 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
* Rewrite the libp2p networking
* Fix erroneous replacement during rebase
* Update libp2p
* Update libp2p
* Remove the logic error about useless substreams
* Use the new NodeHandler system of libp2p
* Commit the Cargo.lock
* Upgrade yamux
* Forward port latest changes
* Fix compilation issues
* Implement the external URL
* Update to latest networking fixes
* Forward port rest of v0.2
* Fix reserved peers being dropped when we're full
* 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
* 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`
* First effort
* API versioning
* Introduce validate_transaction
* Introduce the API plus fixes.
* Docs
* Typo
* Add longevity parameter to transaction validity info.
* Remove unneeded script
* Rename Substrate Demo -> Substrate
* Rename demo -> node
* Build wasm from last rename.
* Merge ed25519 into substrate-primitives
* Minor tweak
* Rename substrate -> core
* Move substrate-runtime-support to core/runtime/support
* Rename/move substrate-runtime-version
* Move codec up a level
* Rename substrate-codec -> parity-codec
* Move environmental up a level
* Move pwasm-* up to top, ready for removal
* Remove requirement of s-r-support from s-r-primitives
* Move core/runtime/primitives into core/runtime-primitives
* Remove s-r-support dep from s-r-version
* Remove dep of s-r-support from bft
* Remove dep of s-r-support from node/consensus
* Sever all other core deps from s-r-support
* Forgot the no_std directive
* Rename non-SRML modules to sr-* to avoid match clashes
* Move runtime/* to srml/*
* Rename substrate-runtime-* -> srml-*
* Move srml to top-level