Summary - Substrate is a chain layer which allows pluggable consensus, definition of storage through the seperation of "extrinsics" and abstracts the runtime design allowing for blockchain providers to decide which runtime best suits there application needs. It also has been built with light client protocol in mind with a number of storage and pruning options giving the ability to clearly seperated different actors requirements for infrastructure (e.g. participants can run a light client on a mobile device and validators can run full nodes with gauranteed performance and uptime). On top of this Polkadot sits as a relay chain (built on Substrate) which allows private chains to share infrastucture such as validators.
- What is Substrate
- Substrate Video - Slides
- Parity Substrate Wiki
- What is PolKadot
- Polkadot Governance Video - Slides
- Polkadot Whitepaper
- Polkadot Video Slides
- Substrate : A Rustic Vision of Polkadot by Gavin Wood Video - Slides
- Gavin Wood Podcast on Polkadot, Sharding and Substrate
- Polkadot runtime Environment : Alternative Implementation Grant - Github
- Token Economics - DOTS
- Secret Store shard key generation
- Parity Ethereum IPFS
- Cosmos vs Polkadot
- Polkadot POC Tutorials
- Polkadot on Reddit
- substrate.readme.io - Substrate Developers Hub
- Substrate Workshop - Video
- Substrate Web 3 Summit - Slides
- Building on Substrate
- Polkadot 2018 Recap
- Storage
- RocksDB
- DB Code
- Data Overview - Light Client
- decl_storage - macro
- Get and Set Storage
- Light Client
- Node
- Validator
- Archive Node
- libp2p
- Substrate Code - network libp2p
- Get and Set Storage
- Message Format
- Hybrid Consensus Slide
- Generalized Consensus Pull Request
- Consensus Code
- Rhododendron - Asynchronously safe BFT consensus, implementation in Rust
- Random Number Generation CSPRNG
- Block Finality
- Whitepaper Overview - Participation in Polkadot - Page 4 gives an overview of the actors
- Collator
- A collator node lives on a distinct parachain and submits a proposal fora state transition, along with a proof for its validity (what we might call a witness or block data).
- Pokadot Parachain - Defines primitive types for creating or validating a parachain.
- Statement Table - This stores messages other authorities issue about candidates.
- Network - Does the heavy lifting of routing the statements and gaining consensus across the relay chain (and associated parachains)
- Consensus - The "consensus" networking code built on top of the base network service. This fulfills the
polkadot_consensus::Network
trait, providing a hook to be called each time consensus begins on a new chain head. - Consensus Pool - Bridge between the network and consensus service for getting collations to it.
- Router - Statement routing and consensus table router implementation.
- Consensus - The "consensus" networking code built on top of the base network service. This fulfills the
- Fisherman (Misbehaviour check) - Utility for substrate-based runtimes that want to check misbehavior reports.
- See WASM above
- Rust Parity Tech WASMI
- Use in Substrate Code
- Message Format
- Relay Chain
- Consensus Process
- API
- RPC
- CLI
- SDK
- Oracles
- Workflow
- Feather
- Governance
- Token Economics
- Token Standards
- Analytics
- System Monitoring
- Deployment Tools
Deploying a Substrate Chain
Note by default chaindata is held in
Johns-MacBook-Pro-2:chains jincubator$ pwd
/Users/jincubator/Library/Application Support/Substrate/chains
Johns-MacBook-Pro-2:chains jincubator$ ll
total 0
drwxr-xr-x 5 jincubator staff 160 Oct 22 21:31 bbq-birch
drwxr-xr-x 5 jincubator staff 160 Oct 23 11:50 development
drwxr-xr-x 5 jincubator staff 160 Oct 23 14:16 staging_testnet
and to purge a chain see
substrate purge-chain --help
Deploying Polkadot
Deploying a simple contract
Running a Transaction