Skip to content
Snippets Groups Projects
  • Shawn Tabrizi's avatar
    Fix various spelling errors (#4940) · c7a14db7
    Shawn Tabrizi authored
    
    * meaningfull -> meaningful
    
    * initialise -> initialize
    
    * tokans -> tokens
    
    * incentivise -> incentivize
    
    * lenght -> length
    
    * incentivisation -> incentivization
    
    * doesnt't -> doesn't
    
    * overwriten -> overwritten
    
    * lifecycle -> life cycle
    
    * lifecycle -> life cycle
    
    * usefull -> useful
    
    * noone -> no one
    
    * spaming -> spamming
    
    * defered -> deferred
    
    * hieght -> height
    
    * sumation -> summation
    
    * ingore -> ignore
    
    * registed -> registered
    
    * Auxialary -> Auxiliary
    
    * loggin -> logging
    
    * independance -> independence
    
    * trailling -> trailing
    
    * responsability -> responsibility
    
    * trunkated -> truncated
    
    * Weither -> Whether
    
    * informations -> information
    
    * Runtume -> Runtime
    
    * choosen -> chosen
    
    * delcataion -> declaration
    
    * Unchekced -> Unchecked
    
    * defintion -> definition
    
    * scrach -> scratch
    
    * imput -> input
    
    * transfered -> transferred
    
    * endownment -> endowment
    
    * Determinator -> Determiner
    
    * relevent -> relevant
    
    * emited -> emitted
    
    * acocunt -> account
    
    * proprotional -> proportional
    
    * instantiaion -> instantiation
    
    * commited -> committed
    
    * tombstonedead -> tombstone
    
    * uwnrap -> unwrap
    
    * acount -> account
    
    * specialised -> specialized
    
    * existant -> existent
    
    * requried -> required
    
    * Anull -> Annul
    
    * AUTHORITES -> AUTHORITIES
    
    * underyling -> underlying
    
    * recognisable -> recognizable
    
    * Capitalise -> Capitalize
    
    * reportfor -> report for
    
    * hearbeat -> heartbeat
    
    * onlineness -> being online
    
    * creater -> creator
    
    * Bytearray -> Byte array
    
    * Despoit -> Deposit
    
    * substratced -> subtracted
    
    * Curent -> Current
    
    * imbalanes -> imbalances
    
    * countfown -> countdown
    
    * inexisting -> inexistent
    
    * additionaly -> additionally
    
    * substracted -> subtracted
    
    * auxilary -> auxiliary
    
    * parital -> partial
    
    * in't -> isn't
    
    * compatability -> compatibility
    
    * infomation -> information
    
    * etected -> detected
    
    * extrinsiscs -> extrinsics
    
    * reprensentation -> representation
    
    * coonfiguration -> configuration
    
    * primtives -> primitives
    
    * miscelanious -> miscellaneous
    
    * VERISON -> VERSION
    
    * endcoded -> encoded
    
    * Genrates -> Generates
    
    * miliseconds -> milliseconds
    
    * occured -> occurred
    
    * trully -> truely
    
    * truely -> truly
    
    * conjuction -> conjunction
    
    * encouters -> encounters
    
    * customised -> customized
    
    * deterministicly -> deterministically
    
    * finalisation -> finalization
    
    * pluggable -> plugable
    
    * wakeup -> wake-up
    
    * interemdiate -> intermediate
    
    * intepreting -> interpreting
    
    * finalzied -> finalized
    
    * throgh -> through
    
    * extinsic -> extrinsic
    
    * convient -> convenient
    
    * allocater -> allocator
    
    * propagateable -> propagatable
    
    * succesfuly -> successfully
    
    * finalising -> finalizing
    
    * publically -> publicly
    
    * phrasee -> phrase
    
    * substration -> substractions
    
    * substractions -> subtractions
    
    * neccessarily -> necessarily
    
    * Inlucde -> Include
    
    * unefficient -> inefficient
    
    * thay -> they
    
    * funtion -> function
    
    * datastructures -> data structures
    
    * infromation -> information
    
    * propagatable -> propagable
    
    * ecountered -> encountered
    
    * recognise -> recognize
    
    * intergration -> integration
    
    * lastet -> latest
    
    * datatypes -> data types
    
    * datatype -> data type
    
    * Strongarming -> Strong Arming
    
    * avaible -> available
    
    * Commiting -> Committing
    
    * Retreiving -> Retrieving
    
    * shoud -> should
    
    * canonicaliziation -> canonicalization
    
    * comitted -> committed
    
    * clonable -> cloneable
    
    * Uknown -> Unknown
    
    * reponse -> response
    
    * arbitary -> arbitrary
    
    * Capapbilities -> Capabilities
    
    * responsbile -> responsible
    
    * initialisation -> initialization
    
    * cames -> came
    
    * intemediate -> intermediate
    
    * reqeust -> request
    
    * intance -> instance
    
    * explcitly -> explicitly
    
    * neighor -> neighbor
    
    * reolving -> resolving
    
    * untill -> until
    
    * Validte -> Validate
    
    * deserailize -> deserialize
    
    * literaly -> literally
    
    * preceeding -> preceding
    
    * abpve -> above
    
    * chcecked -> checked
    
    * numbet -> number
    
    * Unknow -> Unknown
    
    * halfs -> halves
    
    * gossup -> gossip
    
    * givent -> given
    
    * immediatelly -> immediately
    
    * slicable -> sliceable
    
    * conensus -> consensus
    
    * Mimicks -> Mimics
    
    * acccept -> accept
    
    * serialise -> serialize
    
    * exstrinsics -> extrinsics
    
    * panicks -> panics
    
    * maintaince -> maintenance
    
    * repeatidely -> repeatedly
    
    * anecstor -> ancestor
    
    * becasue -> because
    
    * processer -> processor
    
    * Prunning -> Pruning
    
    * insterested -> interested
    
    * unuseful -> not useful
    
    * yeided -> yielded
    
    * descendfing -> descending
    
    * corresponts -> corresponds
    
    * survivew -> survive
    
    * keps -> keeps
    
    * ligh -> light
    
    * prerequisities -> prerequisites
    
    * positiion -> position
    
    * depedency -> dependency
    
    * extrinisic -> extrinsic
    
    * atomicaly -> atomically
    
    * staticly -> statically
    
    * resul -> result
    
    * timestamb -> timestamp
    
    * Utilites -> Utilities
    
    * ammount -> amount
    
    * pocess -> process
    
    * exteral -> external
    
    * Update client/finality-grandpa/src/tests.rs
    
    * Update primitives/io/src/lib.rs
    
    Co-Authored-By: default avatarjoe petrowski <25483142+joepetrowski@users.noreply.github.com>
    
    * Update primitives/blockchain/src/lib.rs
    
    Co-Authored-By: default avatarjoe petrowski <25483142+joepetrowski@users.noreply.github.com>
    
    * Update frame/support/src/weights.rs
    
    Co-Authored-By: default avatarjoe petrowski <25483142+joepetrowski@users.noreply.github.com>
    
    * Update bin/node/cli/tests/common.rs
    
    Co-Authored-By: default avatarjoe petrowski <25483142+joepetrowski@users.noreply.github.com>
    
    * Update client/api/src/execution_extensions.rs
    
    Co-Authored-By: default avatarjoe petrowski <25483142+joepetrowski@users.noreply.github.com>
    
    * Update client/cli/src/params.rs
    
    Co-Authored-By: default avatarjoe petrowski <25483142+joepetrowski@users.noreply.github.com>
    
    * Update client/executor/common/src/sandbox.rs
    
    Co-Authored-By: default avatarjoe petrowski <25483142+joepetrowski@users.noreply.github.com>
    
    * Update client/api/src/execution_extensions.rs
    
    Co-Authored-By: default avatarjoe petrowski <25483142+joepetrowski@users.noreply.github.com>
    
    * Update client/finality-grandpa/src/communication/mod.rs
    
    Co-Authored-By: default avatarjoe petrowski <25483142+joepetrowski@users.noreply.github.com>
    
    * Update client/state-db/src/pruning.rs
    
    Co-Authored-By: default avatarjoe petrowski <25483142+joepetrowski@users.noreply.github.com>
    
    * Update frame/contracts/src/tests.rs
    
    Co-Authored-By: default avatarjoe petrowski <25483142+joepetrowski@users.noreply.github.com>
    
    * Update client/api/src/execution_extensions.rs
    
    * bump impl
    
    * timestamb -> timestamp
    
    Co-authored-by: default avatarjoe petrowski <25483142+joepetrowski@users.noreply.github.com>
    c7a14db7
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
Structure.adoc 4.21 KiB

Structure

1. Overview

Substrate is split into multiple levels with increasing opinion and decreasing flexibility:

  • primitives

  • client

  • FRAME (formerly srml)

Putting all these components together we have:

  • Integration Tests

  • Node

  • Node template

  • Subkey

1.1. Runtime

  • found in: /primitives

  • crates prefix: sp-

  • constraints:

    • must be [no_std]

    • crates may not (dev-)depend on crates in other subfolders of this repo

In the lowest level, Substrate defines primitives, interfaces and traits to implement any on-chain Substrate transition system and its interactions with the outside world. This is the lowest level of abstraction and opinion that everything else builds upon.

1.2. Client

  • found in: /client

  • crates prefix: substrate-

  • constraints:

    • crates may not (dev-)depend on any frame--crates

In the client you can find a set of crates to construct the outer substrate-node, implementing outer runtime interfaces, thus it depends on runtime. It provides the outer building blocks like transaction queue, networking layer, database backend, full* and light-client support.

1.3. FRAME (formerly srml)

  • found in: /frame

  • crates prefix: frame- and pallet-

  • constraints:

    • all crates that go on chain must be [no_std]

    • must not (dev-)depend on anything in /client

FRAME is a set of modules that implement specific transition functions and features one might want to have in their runtime.

Pallets are individual modules within FRAME. These are containers that host domain-specific logic. They have the pallet- prefix. For example, pallet-staking contains logic for staking tokens.

There are a few crates with the frame- prefix. These do not contain domain-specific logic. Rather, they are the main FRAME support infrastructure. These are:

  • Executive

  • Metadata

  • Support

  • System

  • Utility

1.4. Integration Tests

  • found in: /test

  • crates prefix: substrate-test

  • constraints:

    • only helpers may be published

    • purely testing crates must be publish = false

All tests that have to pull (dev)-dependencies out of their subtree and would thus break the dependency rules are considered integration tests and should be stored in here. Only helper-crates in here shall be published, everything else is expected to be non-publish.

1.5. Binaries and template

  • found in: /bin

We also provide some binaries pulling from the components creating full applications.

1.5.1. Node

  • found in: /bin/node

The default (testing) application pulling together our recommended setup of substrate-client with a wasm-contracts-supporting frame-runtime. The node pulls it all together, constructs the (upgradable) runtime, and wires up the client around it. You can find an example client, which includes a full wasm-contracts chain in node. This is also what is being built and run if you do cargo run.

1.5.2. Node Template

  • found in: /bin/node-template

We also provide a template to get you started building your own node.

1.5.3. Utils

  • found in: /bin/utils

    • subkey Subkey is a client library to generate keys and sign transactions to send to a substrate node.

    • chain-spec-builder The chain spec builder builds a chain specification that includes a Substrate runtime compiled as WASM. To ensure proper functioning of the included runtime compile (or run) the chain spec builder binary in --release mode.

2. Internal Dependency Tree

+---------------+       +----------------+
|               |       |                |
|    runtime    +<------+   frame        |
|               |       |                |
+------+-----+--+       +-------------+--+
       ^     ^                        ^
       |     +----------------+       |
       |                      |       |
+------+--------+             |       |
|               |             |       |
|   client      |          +--+-------+--------+
|               +<---------+                   |
+---------------+          |                   |
                           |   test  /bin/*    |
                           |                   |
                           |                   |
                           +-------------------+