#
pezkuwi_sdk_docs/pezkuwi_sdk/
mod.rs

    1//! # Pezkuwi SDK
    2//!
    3//! [Pezkuwi SDK](https://github.com/pezkuwichain/pezkuwi-sdk) provides the main resources needed to
    4//! start building on the [Pezkuwi network](https://pezkuwichain.io/), a scalable, multi-chain
    5//! blockchain platform that enables different blockchains to securely interoperate.
    6//!
    7//! [![StackExchange](https://img.shields.io/badge/StackExchange-Pezkuwi%20and%20Bizinikiwi-222222?logo=stackexchange)](https://exchange.pezkuwichain.app/)
    8//!
    9//! [![awesomeDot](https://img.shields.io/badge/pezkuwi-awesome-e6007a?logo=pezkuwi)](https://github.com/Awsmdot/awesome-dot)
    10//! [![wiki](https://img.shields.io/badge/pezkuwi-wiki-e6007a?logo=pezkuwi)](https://wiki.network.pezkuwichain.io/)
    11//! [![forum](https://img.shields.io/badge/pezkuwi-forum-e6007a?logo=pezkuwi)](https://forum.network.pezkuwichain.io/)
    12//!
    13//! [![RFCs](https://img.shields.io/badge/fellowship-RFCs-e6007a?logo=pezkuwi)](https://github.com/pezkuwichain/pezkuwi-fellows/tree/main/rfcs)
    14//! [![Runtime](https://img.shields.io/badge/fellowship-runtimes-e6007a?logo=pezkuwi)](https://github.com/pezkuwichain/pezkuwi-fellows/tree/main/runtimes)
    15//! [![Manifesto](https://img.shields.io/badge/fellowship-manifesto-e6007a?logo=pezkuwi)](https://github.com/pezkuwichain/pezkuwi-fellows/tree/main/manifesto/blob/main/manifesto.pdf)
    16//!
    17//! ## Getting Started
    18//!
    19//! The primary way to get started with the Pezkuwi SDK is to start writing a FRAME-based runtime.
    20//! See:
    21//!
    22//! * [`pezkuwi`], to understand what is Pezkuwi as a development platform.
    23//! * [`bizinikiwi`], for an overview of what Bizinikiwi as the main blockchain framework of Pezkuwi
    24//!   SDK.
    25//! * [`frame`], to learn about how to write blockchain applications aka. "App Chains".
    26//! * Continue with the [`pezkuwi_sdk_docs`'s "getting started"](crate#getting-started).
    27//!
    28//! ## Components
    29//!
    30//! #### Bizinikiwi
    31//!
    32//! [![Bizinikiwi-license](https://img.shields.io/badge/License-GPL3%2FApache2.0-blue)](https://github.com/pezkuwichain/pezkuwi-sdk/blob/master/bizinikiwi/LICENSE-APACHE2)
    33//! [![GitHub
    34//! Repo](https://img.shields.io/badge/github-bizinikiwi-2324CC85)](https://github.com/pezkuwichain/pezkuwi-sdk/blob/master/bizinikiwi)
    35//!
    36//! [`bizinikiwi`] is the base blockchain framework used to power the Pezkuwi SDK. It is a full
    37//! toolkit to create sovereign blockchains, including but not limited to those which connect to
    38//! Pezkuwi as teyrchains.
    39//!
    40//! #### FRAME
    41//!
    42//! [![Bizinikiwi-license](https://img.shields.io/badge/License-Apache2.0-blue)](https://github.com/pezkuwichain/pezkuwi-sdk/blob/master/bizinikiwi/LICENSE-APACHE2)
    43//! [![GitHub
    44//! Repo](https://img.shields.io/badge/github-frame-2324CC85)](https://github.com/pezkuwichain/pezkuwi-sdk/blob/master/bizinikiwi/pezframe)
    45//!
    46//! [`frame`] is the framework used to create Bizinikiwi-based application logic, aka. runtimes.
    47//! Learn more about the distinction of a runtime and node in
    48//! [`reference_docs::wasm_meta_protocol`].
    49//!
    50//! #### Pezcumulus
    51//!
    52//! [![Pezcumulus-license](https://img.shields.io/badge/License-GPL3-blue)](https://github.com/pezkuwichain/pezkuwi-sdk/blob/master/pezcumulus/LICENSE)
    53//! [![GitHub
    54//! Repo](https://img.shields.io/badge/github-pezcumulus-white)](https://github.com/pezkuwichain/pezkuwi-sdk/blob/master/pezcumulus)
    55//!
    56//! [`pezcumulus`] transforms FRAME-based runtimes into Pezkuwi-compatible teyrchain runtimes, and
    57//! Bizinikiwi-based nodes into Pezkuwi/Teyrchain-compatible nodes.
    58//!
    59//! #### XCM
    60//!
    61//! [![XCM-license](https://img.shields.io/badge/License-GPL3-blue)](https://github.com/pezkuwichain/pezkuwi-sdk/blob/master/pezkuwi/LICENSE)
    62//! [![GitHub
    63//! Repo](https://img.shields.io/badge/github-XCM-e6007a?logo=pezkuwi)](https://github.com/pezkuwichain/pezkuwi-sdk/blob/master/pezkuwi/xcm)
    64//!
    65//! [`xcm`], short for "cross consensus message", is the primary format that is used for
    66//! communication between teyrchains, but is intended to be extensible to other use cases as well.
    67//!
    68//! #### Pezkuwi
    69//!
    70//! [![Pezkuwi-license](https://img.shields.io/badge/License-GPL3-blue)](https://github.com/pezkuwichain/pezkuwi-sdk/blob/master/pezkuwi/LICENSE)
    71//! [![GitHub
    72//! Repo](https://img.shields.io/badge/github-pezkuwi-e6007a?logo=pezkuwi)](https://github.com/pezkuwichain/pezkuwi-sdk/blob/master/pezkuwi)
    73//!
    74//! [`pezkuwi`] is an implementation of a Pezkuwi node in Rust, by `@paritytech`. The Pezkuwi
    75//! runtimes are located under the
    76//! [`pezkuwi-fellows/runtimes`](https://github.com/pezkuwichain/pezkuwi-fellows/tree/main/runtimes) repository.
    77//!
    78//! ### Binaries
    79//!
    80//! The main binaries that are part of the Pezkuwi SDK are:
    81
    82//! * [`pezkuwi`]: The Pezkuwi relay chain node binary, as noted above.
    83//! * [`pezkuwi-omni-node`]: A white-labeled teyrchain collator node. See more in
    84//!   [`crate::reference_docs::omni_node`].
    85//! * [`pezkuwi-teyrchain-bin`]: The collator node used to run collators for all Pezkuwi system
    86//!   teyrchains.
    87//! * [`frame-omni-bencher`]: a benchmarking tool for FRAME-based runtimes. Nodes typically contain
    88//!   a
    89//!  `benchmark` subcommand that does the same.
    90//! * [`chain_spec_builder`]: Utility to build chain-specs Nodes  typically contain a `build-spec`
    91//!   subcommand that does the same.
    92//! * [`pez_subkey`]: Bizinikiwi's key management utility.
    93//! * [`bizinikiwi-node`](node_cli) is an extensive bizinikiwi node that contains the superset of
    94//!   all runtime and node side features. The corresponding runtime, called
    95//!   [`pez_kitchensink_runtime`] contains all of the modules that are provided with `FRAME`. This
    96//!   node and runtime is only used for testing and demonstration.
    97//!
    98//! ### Summary
    99//!
    100//! The following diagram summarizes how some of the components of Pezkuwi SDK work together:
    101#![doc = simple_mermaid::mermaid!("../../../mermaid/pezkuwi_sdk_bizinikiwi.mmd")]
    102//!
    103//! A Bizinikiwi-based chain is a blockchain composed of a runtime and a node. As noted above, the
    104//! runtime is the application logic of the blockchain, and the node is everything else.
    105//! See [`reference_docs::wasm_meta_protocol`] for an in-depth explanation of this. The
    106//! former is built with [`frame`], and the latter is built with rest of Bizinikiwi.
    107//!
    108//! > You can think of a Bizinikiwi-based chain as a white-labeled blockchain.
    109#![doc = simple_mermaid::mermaid!("../../../mermaid/pezkuwi_sdk_pezkuwi.mmd")]
    110//! Pezkuwi is itself a Bizinikiwi-based chain, composed of the exact same two components. It has
    111//! specialized logic in both the node and the runtime side, but it is not "special" in any way.
    112//!
    113//! A teyrchain is a "special" Bizinikiwi-based chain, whereby both the node and the runtime
    114//! components have became "Pezkuwi-aware" using Pezcumulus.
    115#![doc = simple_mermaid::mermaid!("../../../mermaid/pezkuwi_sdk_teyrchain.mmd")]
    116//!
    117//! ## Notable Upstream Crates
    118//!
    119//! - [`parity-scale-codec`](https://github.com/pezkuwichain/parity-scale-codec)
    120//! - [`parity-db`](https://github.com/pezkuwichain/parity-db)
    121//! - [`trie`](https://github.com/paritytech/trie)
    122//! - [`parity-common`](https://github.com/paritytech/parity-common)
    123//!
    124//! ## Trophy Section: Notable Downstream Projects
    125//!
    126//! A list of projects and tools in the blockchain ecosystem that one way or another use parts of
    127//! the Pezkuwi SDK:
    128//!
    129//! * [Avail](https://github.com/availproject/avail)
    130//! * [Cardano Partner Chains](https://iohk.io/en/blog/posts/2023/11/03/partner-chains-are-coming-to-cardano/)
    131//! * [Starknet's Madara Sequencer](https://github.com/keep-starknet-strange/madara)
    132//! * [Polymesh](https://polymesh.network/)
    133//!
    134//! [`bizinikiwi`]: crate::pezkuwi_sdk::bizinikiwi
    135//! [`frame`]: crate::pezkuwi_sdk::frame_runtime
    136//! [`pezcumulus`]: crate::pezkuwi_sdk::pezcumulus
    137//! [`pezkuwi`]: crate::pezkuwi_sdk::pezkuwi
    138//! [`xcm`]: crate::pezkuwi_sdk::xcm
    139//! [`frame-omni-bencher`]: https://crates.io/crates/frame-omni-bencher
    140//! [`pezkuwi-teyrchain-bin`]: https://crates.io/crates/pezkuwi-teyrchain-bin
    141//! [`pezkuwi-omni-node`]: https://crates.io/crates/pezkuwi-omni-node
    142
    143/// Learn about Bizinikiwi, the main blockchain framework used in the Pezkuwi ecosystem.
    144pub mod bizinikiwi;
    145/// Learn about FRAME, the framework used to build Bizinikiwi runtimes.
    146pub mod frame_runtime;
    147/// Learn about Pezcumulus, the framework that transforms [`bizinikiwi`]-based chains into
    148/// [`pezkuwi`]-enabled teyrchains.
    149pub mod pezcumulus;
    150/// Learn about Pezkuwi as a platform.
    151pub mod pezkuwi;
    152/// Learn about different ways through which smart contracts can be utilized on top of Bizinikiwi,
    153/// and in the Pezkuwi ecosystem.
    154pub mod smart_contracts;
    155/// Index of all the templates that can act as first scaffold for a new project.
    156pub mod templates;
    157/// Learn about XCM, the de-facto communication language between different consensus systems.
    158pub mod xcm;