Substrate客户端是一个运行在以Substrate为基础的区块链节点,它的组成部分包括但不限于如下内容:
**存储:**用于持续更新Substrate区块链状态。区块链网络允许参与者就存储达成去信任的共识consenushttps://docs.substrate.io/v3/advanced/consensus/。Substrate附带了一种简单而高效的键值存储机制https://docs.substrate.io/v3/advanced/storage/
运行时:定义区块如何被处理逻辑,包括状态转换逻辑。在Substrate中,运行时代码被编译为Wasmhttps://docs.substrate.io/v3/getting-started/glossary/#webassembly-wasm并且成为了区块链存储状态的一部分。这启用了以Substrate为基础的区块链定义的特征之一:无分叉运行时升级https://docs.substrate.io/v3/runtime/upgrades/#forkless-runtime-upgrades。Substrate客户端可能包含本地运行时,因为它是为与客户端本身相同的平台编译的(和Wasm相反)。把请求调用到运行时的客户端组建称为执行器https://docs.substrate.io/v3/advanced/executor/,它作用是在本地代码和解释了的Wasm之间作出选择。尽管本地运行时可能会提供更出色的性能优势,如它执行了新版本,执行器将会选择解释Wasm运行时。
点对点网络:它提供了让客户端和其他网络参与者进行交流的能力。Substrate使用了libp2p network stack https://libp2p.io/的Rust实现来实现这一点
共识:共识逻辑允许网络参与者就区块链的状态达成一致。Substrate使得提供自定义的共识引擎成为了可能并且还附带了集中基于Web3基金会研究https://research.web3.foundation/en/latest/index.html构建的共识机制
RPC(远程过程调用):让区块链用户与网络具有交互能力,Substrate提供了HTTP和WebSocket PRC服务器
遥测:嵌入式 Prometheus https://prometheus.io/ 服务器公开的客户端指标