木星链 木星链
Ctrl+D收藏木星链

SUB:Substrate 极简概括:功能、特性与共识

作者:

时间:1900/1/1 0:00:00

今天我们将讨论 Substrate,一个可以帮助你构建自己的自定义区块链的库。Substrate 是由 ParityTech 研发出来的,也为 Polkadot 提供了基础。

什么是 Substrate?

来自牛津字典的解释:A substance or layer that underlies something, or on which some process occurs.(在某些事物的下面,或者可以基于它之上创建一些事物的物质或层)

顾名思义,Substrate 可以用来生长或在其上建造某种东西。在我们的案例中,我们可以构建区块链,或者在 Polkadot 的案例中,可以构建一个完整的区块链家族。

我为什么需要 Substrate?

软件归根结底就是抽象。

计算机科学的历史表明,我们不断地得到越来越多的抽象:从离散逻辑到集成电路和 CPU;从机器代码到汇编,从汇编到 C 语言,再到 C++、Rust、Haskell 等等。

编程 APIs 也是如此。例如,现在几乎没有人用纯 HTML 编写 web。

“每个问题都可以通过引入另一个抽象层来解决。除了很多抽象层的问题……所以我们发明了框架。”—— 改写于安德鲁·柯尼格的《金融时报》。

每个抽象层都试图解决一个特定的问题。那么,制造 Substrate 是为了解决什么问题呢?事实证明,在开始实施全新的区块链解决方案之前,你需要考虑很多事情:

Helium:迁移至Solana后Helium钱包将立即支持原生sub DAO代币赎回:金色财经报道,去中心化无线通信网络Helium官方发文称Binance.US宣布计划在Solana迁移之前,于2023年3月21日下架HNT/USD和HNT/USDT交易对,尽管Helium基金会对Binance.US决定在迁移之前采取这一行动感到失望,但我们理解他们的立场。

Helium表示迁移后Helium钱包应用将立即支持原生subDAO代币赎回(如HIP70中所述)以及SolanaDeFi平台内的其他集成,同时为HNT解锁更多去中心化交易协议。(Medium)[2023/3/14 13:02:38]

为什么还需要另外一个区块链?!

各种密码原语:加密、签名、RNG1 等

共识算法和容错投票

Proof of Waste、Proof of Stake、Proof of Authority? 还是其他完全不同的东西?

块结构和高效存储、消息序列化

P2P 网络、对等发现、区块和交易互通

状态机、执行运行逻辑、智能合约

轻客户端支持

尽管 Substrate 没有解决第一个问题,但 Substrate 可能会帮助你解决剩下的问题,因为它提供了现有的实现工具。这些都是基于我们多年开发区块链的经验而精心设计、编写和测试。

当然,你也可以亲自去实现所有这些任务,但我可以说,你最终可能会得到一个未经测试且没有很好文档记录的解决方案。更不用说,通常你自己设计或实现的加密算法会被认为是一个非常糟糕的想法,除非你是一个密码专家,而且你真的知道你在做什么。

Substrate生态首个资产跨链路由在Phala平台上线:4月7日消息,去中心化云计算平台Phala Network 宣布正式推出可桥接波卡平行链、EVM和其他公链的跨链路由产品 SubBridge。该产品是目前第一个支持波卡平行链生态与EVM等其他生态进行传输的跨链路由。该产品主要基于 XCM 和 ChainBridge 的跨链协议,实现资产的跨链传输。

目前该产品已经支持如Khala和Karura等平行链和以太坊的双向跨链,未来将支持更多平行链和其他生态进行资产跨链。[2022/4/7 14:10:31]

所以,通过提供典型算法的通用实现,Substrate 可以让你集中精力在项目本身:链的业务逻辑,即其状态机。

让我们来看看区块链中最重要的部分,看看 Substrate 可以提供什么。

作为永久存储的区块链

任何区块链的唯一目的,是提供一种可验证的、全球性的、永久的存储和转变数据的方法,这意味着所有各方都要在任何时间点上,以一种零信任的方式来检查和同意什么样的价值可以被认可。而且,一旦这些数据被封存,就应该是永久性的,根据共识,不可能对其进行篡改。

此属性广泛用于加密货币,其中永久存储包含帐户密钥及其实际余额。然而,需要注意的是,加密货币并不是唯一可能的区块链应用。基本上,几乎所有需要全局一致、永久存储和可验证交易历史记录的系统都可以通过某种方式使用区块链实现。

Substrate 提供高效的存储,非常容易使用,并且与 WebAssembly(Wasm) runtime 紧密集成。

作为功能的区块链

为了根据待定的操作去更新链的状态并改变其存储,我们需要有一个决策点。

德国电信采用波卡网络,计划利用Substrate构建应用程序:金色财经报道,德国电信 Deutsche Telekom 子公司 T-Systems Multimedia Solutions(MMS)将为波卡网络的资产质押用户提供节点所需的基础设施,该公司还购买了大量 DOT Token 以进行质押。据悉,加密业务功能将被集成到德国电信的会计系统中。

德国电信区块链解决方案核心负责人 Andreas Dittrich 表示,虽然波卡将成为德国电信采用的第四个区块链,但它是 T-Systems 首个针对运行基础设施进行评估的网络,从一开始就受到该公司的关注。因此,T-Systems 将为波卡网络运行多个私有和公共的验证器。

此外,Dittrich 表示,T-Systems 正考虑于 2022 年在波卡区块链编程工具包 Substrate 的基础上构建自己的应用程序。(Coindesk)[2021/12/21 7:54:11]

这些决策点可以表示为一个函数,它接受当前状态和一组待定的操作,并产生另一个应被视为新的状态的状态。在区块链世界中,这样的函数被称为状态转换函数(state transition function),简称 STF。

Substrate 可以让你以一种可管理和可移植的方式来定义这样一种功能。跟在网页上执行的JavaScript 非常相似,你可以编写一组统称为 runtime 的函数,这些函数将充当 STF。此外,这样的实现将是可移植的,并不依赖于处理器架构、操作系统、浏览器,或者任何其他依赖平台的方式。

事实上,即使是 Substrate 的底层技术都是密切相关的。Substrate 使用 WebAssembly 作为其 runtime 的通用语言,这正是 Mozilla、Google 和 Apple 等大公司目前正在集成的技术,在编写 web 时作为一种更快但仍然兼容的 JavaScript 替代品。

DeFi借贷平台Sublime完成250万美元种子轮融资:10月19日消息,DeFi借贷平台Sublime完成250万美元种子轮融资,Galaxy Digital和Electric Capital领投,FinTech Collective、Collab+Currency和天使投资人Jill Carlson Gunter和Ryan Selkis参投。该笔资金通过未来代币的简单协议 (SAFT) 销售获得。凭借新资本,总部位于印度的Sublime计划继续开发其平台并在未来几周内推出。与典型的信用检查不同,Sublime将让用户利用他们的数字身份来获得抵押不足的贷款。除了社交媒体资料外,Sublime还将支持加密和NFT作为抵押品。(The Block)[2021/10/20 20:41:23]

安全和速度

用 Wasm 编写链的逻辑和智能合约,意味着你将拥有最好的工具来以快速可靠的方式执行逻辑。但是,Substrate 有一种方法可以更快地执行代码,并且没有任何虚拟机的开销。

Substrate 最革命性的部分是,包含 STF 的 runtime 图像与其他有效载荷一起存储在链上。这意味着  runtime 和整个链的业务逻辑可以以安全和可验证的方式进行更新。更重要的是,由于 Substrate 及其 Runtime Module Library3  都是用 Rust 编程语言编写的,所以它们可以被翻译成本地代码和 Wasm。

在任何时候,客户端软件都有两个编译 runtime 的副本:一个是在软件中本机编译的,另一个是要在 VM 中执行的 Wasm 图像。执行 runtime 函数时,客户端软件检查 runtime 的链上 Wasm 版本是否与其编译的本机内置版本匹配。这样做后,客户端软件将 runtime 函数的执行委托给本机代码版本。

公告 | 币安将下架CLOAK、MOD、SALT、SUB、WINGS等币种:据币安公告,根据代币下架时所考虑的几点因素,决定于2月22日18:00(香港时间)停止交易并下架以下币种:CloakCoin(CLOAK)、Modum(MOD)、SALT(SALT)、Substratum(SUB)、Wings(WINGS)。用户可以在5月22日18:00(香港时间)之前提现,之后将关闭提现功能。[2019/2/15]

无分叉升级

当 runtime image 在链上更新时,某些客户端还没有更新其软件。在这种情况下,他们的节点将通过在 Substrate 的集成 Wasm 虚拟机上解释 runtime 来执行正确的版本。因此,在任何情况下,网络上的所有节点总是能够正确地同步链(尽管效率不同),从而防止链分叉。

网络

区块链依赖于有许多参与者通过网络进行通信。典型的解决方案是使用点对点技术来进行这种通信,而 Substrate 也不例外。P2P 是一组用于创建分布式网络应用程序技术的通用名称。

其主要思想是建立一个自我维持的网络环境,在这个环境中,每个参与者(通常称为节点)都能够在网络中运行,而无需事先配置或被授权。

为了确保节点可以在任何时候加入或离开网络,而不影响整个网络的连接性,Substrate 使用了 Rust 实现的 libp2p(https://github.com/libp2p/rust-libp2p) ,这是一个很有前途的网络堆栈,它拥有建立分布式网络环境所需的一切。

自定义消息

在最简单的情况下,你甚至不需要考虑网络,因为 Substrate 为你做了一切。你只需提供区块链的状态转换功能,并将所有网络交互留给 Substrate。但是,如果区块链要求发送自定义消息,则可以通过提供明确自定义消息及其处理逻辑的特定的网络协议,来自定义和扩展网络子系统。

共识

有一个允许你从一个状态转移到另一个状态的状态转移函数是好的,但还不够。你还需要一种方式让所有节点都同意下一个状态应该是什么。

作为一个银行账户的拥有者,你最不想遇到的情况就是你和银行在 “你的账户里有多少钱“ 上存在分歧。区块链允许各方在不信任对方的情况下达成共识(因此零信任),即使在恶意参与者试图破坏系统并窃取你的资金的情况下也是如此。

这是使用一个具有拜占庭容错(BFT)属性的共识算法完成的。如果一个系统是 BFT,这意味着节点可以达成一致,即使其中的一部分表现恶劣,包括串通、截留消息和离线。BFT 共识系统能够抵抗不同程度的网络问题,在这些问题中,消息可以重新排序或延迟。一些 BFT 共识系统的设计使得当节点行为不当(例如,一次投票两个区块)时,它们可以受到惩罚,并在链上削减他们质押的 token。

对于支持在 Substrate 中的每个共识引擎,都将有一个 runtime 模块,用于处理错误行为的证明。评估错误行为的影响可以由 runtime 确定。

从数学上证明,只要网络中三分之二的节点没有恶意并按照协议运行,该协议是可行的。这就是为什么在网络中有很多节点很重要的原因之一。

共识是任何区块链应用程序的关键部分。幸运的是,Substrate 提供了一个已经可用的 BFT 共识,几乎可以开箱即用。

根据使用场景的不同,你可以使用现有的块创作逻辑,也可以提供自己的块创作逻辑。在后一种情况下,你可以使用 BFT 的通用版本并使其适合你的需要。

Substrate 将继续发展,并有更多的共识算法加入到其中(https://medium.com/polkadot-network/grandpa-block-finality-in-polkadot-an-introduction-part-1-d08a24a021b5),包括在 Web3 基金会开发的 GRANDPA(GHOST-based Recursive Ancestor Deriving Prefix Agreement) 的最终确定小工具。

另外,由于 Substrate 是一个完全可扩展和可定制的框架,因此可以定义你自己的自定义共识算法。事实上,Substrate 是如此的灵活,它可以支持不是基于经典区块链架构的解决方案。例如,我们正在研究如何通过设计一个不基于传统块概念的共识,来解决区块链吞吐量问题。

轻客户端支持

早期的区块链实现是这样设计的:网络中的每个节点都在本地维护完整的区块链数据库。这现在被称为 full client(完整客户端),这意味着客户端拥有作为网络节点运行所需的一切。

完整客户端(也称为全节点)对于链安全非常重要。但是随着区块链的增长,客户的数据库变得越来越大。目前,主流加密货币拥有数百 GB 的数据库。

当整个节点初始化时,它需要做的第一件事是与网络的其他部分同步。由于安全原因,这样的一个节点不能按原样随机从一个节点下载数据库,而是需要从头开始构建自己的数据库,重新同步 genesis(链的第一个区块)以来的所有交易。除了计算上的昂贵,这个任务还需要通过网络传输大量的数据。

我想每个人都会同意,下载半兆字节的数据到你的手机上只是为了买一个三明治… 这是不切实际的,要不就是很荒谬。这就是为什么,几乎从一开始,区块链开发人员就开始考虑降低节点维护成本的方法,包括存储空间和网络吞吐量。

最终,轻客户的概念诞生了。简言之,轻客户端是区块链节点的一种操作模式,其中只有最重要的数据存储在本地,网络交互减少到最低限度,同时为几乎所有可能进行的交互保留可接受的安全性。

适度的资源需求最终允许轻客户端节点轻松引导,因此可以在移动设备上执行。

不幸的是,将轻客户端支持集成到现有区块链中是一项严肃的任务。在区块链的初始设计中集成轻客户端会更容易的多。Substrate 是在考虑到轻客户端支持而专门设计的。基于 Substrate 构建的区块链具有现成的轻客户端支持。

总结

在这篇文章中,我们略读了 Substrate 框架的主要目标和特性。要涵盖 Substrate 的所有方面需要更长的文章,但希望你现在已经对这些概念有了大致的了解。虽然这还不足以开始编写你的代码,但至少现在你应该知道期待什么。

要了解更多信息,请查看 Jack Fransham 之前的文章《什么是 Substrate》:https://www.parity.io/what-is-substrate/。

如果你想深入研究并开始实现你的区块链,最好的开始是 Parity Substrate Wiki(https://wiki.parity.io/)。

另外,不要犹豫查看源代码,特别是 ReadMe 文件:

(https://github.com/paritytech/substrate)。

注释

RNG 代表随机数发生器。并非每个 RNG 都适合区块链应用。

Substrate 本身现在正处于非常活跃的发展阶段。代码库非常不稳定,文档工作正在进行中。我们正在积极地填充 wiki,这是一个寻找更多细节的好地方:https://wiki.parity.io/

Runtime module library 是一组可选的 Rust 大木箱,用于处理常见任务,如参数序列化和调用分派,并帮助你以最小的成本构建 runtime。这个库是完全可选的,所以从头开始设计自己的 runtime,或者使用任何可以编译成 Wasm 的语言都是非常好的。除了 Rust 之外,目前只有 C 语言和 C++ 支持 Wasm 作为目标体系结构。

原文:https://www.parity.io/substrate-in-a-nutshell/

翻译:PolkaWorld 社区

标签:SUBUBSBSTTRASUBXSUBS币BSTNTravelNote

比特币价格实时行情热门资讯
SER:减半前销毁近半未产代币 隐私公链决胜生态落地

2020年开年至今,“减半”似乎是市场关心的最大主题,没有之一。以比特币为首的多个项目都将迎来区块奖励减半或是减产。不久前,某交易平台要销毁未产出的平台币的决定,引发市场高涨的热情.

1900/1/1 0:00:00
区块链:对区块链生态的互融与革新

区块链技术发展到今天,在打通传统行业数据壁垒的同时,也在无形之中形成了自己的护城河,这对于一直标榜去中心化的区块链行业来说,不见得是个好事,不得不说,截至目前.

1900/1/1 0:00:00
比特币:为什么全球排名前五的对冲基金经理应该配置比特币?

根据彭博社的最新研究,全球排名前五位的对冲基金经理的人均收入估计超过10亿美元,在促成这五位成功的十大投资中,有Facebook公司和阿里巴巴等科技股.

1900/1/1 0:00:00
BTC:BTC再次突破 多头力量仍未离场

分析师The Crypto Dog:尽管有波动,但BTC将涨至2万美元:分析师The Crypto Dog在推特上表示,很多人似乎仍然不明白这一点.

1900/1/1 0:00:00
NBS:2020年将大放异彩的7大加密货币

编者按:美国时间2020年2月21日,作者Luke Lango在美国Nasdaq(纳斯达克)网站上发表了文章“7 Explosive Cryptocurrencies to Buy for th.

1900/1/1 0:00:00
比特币:这次 比特币ETF真的全军覆没了

美国证券交易委员会再次击碎了比特币交易所交易基金的梦想,迄今为止所有 BTC ETF 申请均被拒绝.

1900/1/1 0:00:00