oracle substrate,Substrate 2.0 带来了哪些改变?

article/2025/8/26 11:35:27

453097fd0a2cb6e9689e7cd935742d6a.png

Substrate 已到了 2.0 版本的主要里程碑处。该区块链框架现在包含链下工作机(off-chain workers)和 70 多个可组合模块,并为构建优化的、与 Polkadot 兼容的、可投入生产的区块链奠定了坚实的基础。数十个实时区块链已经在运行 Substrate 2.0,包括Polkadot[1]和Kusama[2],以及 Polkadot 生态系统中的一系列其他专用区块链。

为什么要使用 Substrate?

有了 Substrate,runtime 就是你的区块链画布,为你提供最大的自由,可以完全根据你的应用程序或业务逻辑创建和自定义区块链。在 runtime 中,你可以利用内置的数据库管理、libp2p 网络以及快速安全的共识协议GRANDPA[3]来组成任何状态转换函数。

通过利用 Substrate 的模块化设计来使用经过考验的库,同时构建最重要的自定义组件,从而专注于你的优势。

ec63e3d2edc7cf65fc75e565eff834df.png

在 2018 年末,Polkadot 联合创始人 Gavin Wood 展示了[4]Substrate 1.0 可以实现可插拔的共识和无分叉 runtime 升级,现在,借助 Substrate 2.0,建设者可以使用经过考验的框架来部署他们一直想要的区块链。

FRAME - 区块链可组合性框架

Substrate 的模块化是其核心设计原则的一部分 —— 你可以替换很多主要组件,从共识和终结性引擎(Substrate 随附 AURA、BABE、GRANDPA 和已内置的可配置 PoW 引擎)等网络堆栈,到 runtime 开发都可以替换。

Runtime 模块(即 pallet)是可用于构成 Substrate runtime 的预构建组件。每个 pallet 都有各自的逻辑,可以修改区块链的状态转换函数的特性和功能,从而轻松添加基本功能和扩展功能。FRAME 是用于开发 Substrate pallet 的框架。FRAME[5]可以更轻松地为你的自定义区块链查找、选择和实施正确的 pallet,从而使其成为 Substrate 默认的模块化、可自定义 runtime 开发框架。Substrate 2.0 附带了许多新 pallet,这些 pallet 将帮助你快速轻松地使用适合你和你网络的属性来构建和部署区块链 runtime。

用 pallet 组成你的区块链

随着 Parity 和独立团队开发和发布自己的基于 Substrate 的区块链,pallet 的数量将随着时间的推移而不断增长。

Substrate 2.0 随附 70 多个 pallet,可帮助你构建区块链。现在,它发布在 crates.io 上,这让你可以通过 Rust 包管理器 cargo 简化包管理。Pallet 的一些示例包括:

Contracts[6]pallet 允许将智能合约部署到 WebAssembly 虚拟机,从而让合约可以使用可编译为 Wasm 的任何语言编写,例如 Rust、C ++和 Go。

BABE[7]和GRANDPA[8]是用于权益证明网络的配套 pallet,这些网络需要快速、可靠的区块生产和终结。与 Substrate 兼容的达成共识的其他方法包括 Aura(权限轮换和即时密封)。你可以在此处[9]了解有关 BABE 和 GRANDPA 共识的更多信息。

Democracy[10]是实现链上投票机制以由利益相关者进行快速、有约束力和透明治理的平台。

EVM[11]是一个 pallet,可复制以太坊虚拟机的功能,从而可以将 EVM 应用程序快速移植到 Substrate 链。许多现有的链正在利用此 pallet 来整合基于 Solidity 的合约,例如 Moonbeam[12]和Plasm[13]。

Treasury[14]pallet 提供了一种向国库添加资金的方法,该国库可以用于资助网络想要进行的任何活动。该 pallet 目前已经在 Polkadot、Kusama 和其他基于 Substrate 构建的实时区块链上投入使用了。

Identity[15]pallet 允许用户通过提供帐户名称和联系信息来公开声明谁拥有某些帐户。这对于权益证明网络上的验证人特别有用。

帐户和密钥安全性对于处理大量资金极为重要。这是创建Multisig[16]pallet 的主要原因之一,该 pallet 允许使用一个账户控制不同的密钥/设备。

Recovery[17]pallet 引入了链上资产的恢复机制,对于以用户友好的方式恢复丢失的密钥尤其有用。在此处[18]详细了解社交恢复机制。

Kusama 网络目前正在使用Society[19]pallet 来建立 Kappa Sigma Mu(人体区块链项目) ,在该项目中,成员通过纹身[20]来加入,并帮助采取主动,弥合人与机器之间的鸿沟。

使用链上协议进行链下计算

链下工作机(Off-chain workers[21])是 Substrate 2.0 中的一项新功能,可让你将数据安全地集成到你的区块链上,非常适合物联网(IoT)设备或通过预言机(oracle)进行的实际数据输入。

f1ce2eae611460445940e00f9560830d.png

为了使链下数据集成安全和更高效,Substrate 提供链下工作机。链下工作机子系统允许执行更长的运行时间和可能不确定的任务(例如 Web 请求、数据的加密/解密和签名、随机数生成、CPU 密集型计算、链上数据的枚举/聚集等)来利用链上数据和访问。一个例子是 “I‘m online” pallet,它利用了链下工作机的优势。这样一来,权益证明网络中尚未出块验证人就可以自动向链上发送交易,以表明他们仍然可用。这样可确保验证人可用,因此不应因脱机而被踢出或被 Slash。

链下工作机的代码存储在链上,并且可以访问链上环境,但是永远不会作为区块处理的一部分执行。链下工作机可以轻松地运行正确的代码,并允许在不占用区块链的情况下执行更长的运行任务。但是,链上代码允许在其运行的区块链的状态转换函数中实现验证机制,例如投票、平均和挑战。区块链/预言机网络设计者和网络上运行的节点可以确定谁应该做什么、何时做以及对参与者的奖励和惩罚。

Substrate 2.0 带有一组 pallet,可以使依赖现有或现实世界数据的区块链的数据集成效率更高。

Substrate 2.0 是为构建者而生的

使用 Substrate 2.0,可以比以往更加轻松地构建可与 Polkadot 生态系统互操作的自定义、可扩展的区块链,其中都包含实现团队设计目标所需的业务逻辑。Substrate 的开发者生态还通过不断完善的开发者工具套件,以及基准测试和监控解决方案套件,帮助你准备好区块链生产,这是一流的商业级软件框架所期望的。

b4870eaf805dfb353f6014eead53fbd4.png

在Substrate Developer Hub[22]上,你可以深入了解所有技术文档、教程和资源来开始使用。如果需要获得即时反馈,请直接在Substrate Technical[23]Element 聊天室与我们的开发人员聊天。

10 月 15 日,在Sub0 Online[24](Substrate 开发者社区会议)上,深入了解 Substrate 的强大功能和用例,并与 Substrate 社区建立联系。免费的多渠道在线会议将为所有水平的 Substrate 开发人员、学习者以及希望了解更多有关如何使用区块链框架构建 Web3 未来的 Substrate 新手提供讲座和讲习班。演讲者将包括 Parity 创始人 Gavin Wood 和 Jutta Steiner,以及构建 Substrate 和 Polkadot 的 Parity 开发人员,以及来自各种使用案例和行业垂直领域的生态系统构建者。


http://chatgpt.dhexx.cn/article/F2E8Joh9.shtml

相关文章

Substrate 基础教程(Tutorials) -- 授权特定节点

五、授权特定节点 在添加可信节点中,您看到了如何使用一组已知的验证器节点构建一个简单的网络。该教程演示了一个简化版的许可网络(permissioned network)。在一个被许可的网络中,只有被授权的节点(authorized nodes…

Substrate常见问题

目录标题 1. Rust nightly not installed, please install it!2. Rust WASM toolchain not installed, please install it!3. use pallet::*出错4. failed to load manifest for workspace member5. error: failed to run custom build command for node-template-runtime v4.0…

什么是 Substrate

如果你关注了 Polkadot 项目,可能会多次看到「Substrate」这个词。 它是 Polkadot 项目的重要组成部分,但有关它的信息非常少。 白皮书或黄皮书里找不到, 至少没有专门的介绍「Substrate」。 从较高的层面来看,Substrate 是一个可…

Substrate之旅3:Substrate是什么

Substrate 是从Polkadot 孵化出来的项目。它是一个用来搭建区块链的通用框架,具有以下特点: 可扩展。模块化。开源。 Substrate的框架与组件 框架 其中: P2P: libp2p网络协议,Substrate基于该协议实现了一个不带任何假设的&…

Substrate 基础 -- 教程(Tutorials)

官网 github DOC 面向未来的区块链框架 Substrate 使开发人员能够快速、轻松地构建适合任何用例的未来 证明区块链(future proof blockchains)。 Substrate 文档包括区块链构建器(blockchain builders)和parachain 项目团队的概念、过程和参考信息。…

【Android 逆向】substrate 框架 ( substrate 简介 | substrate 相关文档资料 )

文章目录 一、substrate 简介二、substrate 相关文档资料 一、substrate 简介 substrate 官网 : http://www.cydiasubstrate.com substrate 框架 是 Cydia 下的逆向工具 , 该框架是开源的 ; substrate 配合对应的 so 动态库 和 头文件 , 可以在 Android / iOS 平台中独立运行 …

ios tableView那些事(三)给tableView添加些图片

感觉光有数据的tableView很丑&#xff0c;那么我们就来美化下吧&#xff0c;加一些图片 #import <UIKit/UIKit.h> /*tableview 一定要用到这两个delegate UITableViewDataSource,UITableViewDelegate */ interface ViewController :UIViewController <UITableViewDa…

QT的TableView实现多级表头

QT的TableView实现多级表头 最近项目需要支持多级表头&#xff0c;QT本身不支持。可重写QHeaderView表头实现。 demo如下&#xff1a; FSItemDelegate.h #pragma once/* 自定义委托类 */ #include <QItemDelegate> #include <QSpinBox> #include <QDoubleSpin…

QML类型:TableView

一、描述 TableView 显示从内置 QML 类型&#xff08;如 ListModel 和 XmlListModel&#xff09;创建的模型中的数据&#xff0c;这些模型仅填充 TableView 中的第一列。要创建具有多列的模型&#xff0c;请使用 TableModel 或继承 QAbstractItemModel 的 C 模型。 TableView…

QML TableView表格使用示例

前言 QML中实现表格可以使用多种方式&#xff0c;比如直接使用ListView&#xff0c;定义每一行delegate&#xff0c;或者自定义Rectangle&#xff0c;放到Flipable中组合使用。Qt Quick Control1中 从5.1版本开始就提供了表格控件&#xff0c;但是感觉不怎么好用&#xff0c;在…

Qt TableView的简单使用

软件环境&#xff1a; ubuntu -------------------------------------------------------------------------------------------------------- 最终效果图&#xff1a; --------------------------------------------------------------------------------------------------…

PyQt5 TableView组件

一、话不多说&#xff0c;先看图 本次要实现的是主窗口内添加widget组件&#xff0c;widget内设置成垂直盒布局&#xff0c;然后在布局中添加tableView、PushButton组件 二、看main函数 if __name__ __main__:app QApplication(sys.argv)# 现在这创建 主窗口 &#xff08;不然…

优雅的开发TableView

前言 UITableView&#xff08;UITableViewController&#xff09;是iOS开发使用频率最高的一个组件。 不管是使用UITableView还是还是UITableViewController&#xff0c;在开发的时候&#xff0c;我们都需要实现两个协议&#xff1a; UITableViewControllerDataSourceUITabl…

JavaFX控件——TableView

在JavaFX 应用中对创建表格最重要的是TableView, TableColumn和TableCell这三个类。 你可以通过实现数据模型&#xff08;data model&#xff09; 和 实现 单元格工厂(cell factory) 来填充表格。 表格类提供了表格列嵌入式的排序能力和必要时调整列宽度的功能。 下面开始学…

ios开发:多个Section的TableView

开发多个Section的tableView。 首先应该考虑到数据源该如何得到 我们这里可以通过两种方式:第一种是读取plist文件。第二种是通过代码进行数据存储以及读取。 多个Section需要的数据源是一个字典&#xff0c;字典里的内容是一个数组。在plist文件中可以这样去创建 在.h文件中…

tableview概述

转自&#xff1a;http://www.cnblogs.com/smileEvday/archive/2012/06/28/tableView.html                 下面分9个方面进行介绍&#xff1a; 一、UITableView概述 UITableView继承自UIScrollView&#xff0c;可以表现为Plain和Grouped两种风格&#xff0c;分…

ios tableView那些事(一)创建一个简单的tableView

工作也有半年多了&#xff01;几乎每个项目中的会用到tableview这个神奇而好用的控件&#xff0c;在学习和工作中都会看别人的博客&#xff01;对我有很大的帮助&#xff0c;就如同站在巨人的肩膀上的感觉吧 哈哈&#xff01;于是决定重新开始写博客&#xff0c;希望能帮助像我…

JavaFX TableView和ListView的点击事件

项目场景&#xff1a; 最近在用JavaFX做一个简易的商城界面&#xff0c;大概想实现这样的功能&#xff1a; 左边显示用户的最近五个购买的产品 使用ListView 点击ListView的项目会定位到相应的tablerow位置 方便用户快速查找中间显示所有可用产品 使用TableView 双击tablerow…

JavaFX【TableView使用详解】

目录 概述 组件 Student ObservableList TableView setCellValueFactory() TableColumn 1. Callback 2. PropertyValueFactory 增加到末行 1、tableView.getItems().add(Student s) 2、list.add(Student s) 删除指定行 1、tableView.getItems().remove(int i) 2、…

QT中TableView数据展示

QT中TableView数据展示 最近在学习QT,大量数据从数据库取出放入QT界面中展示&#xff0c;这时用到了tableView&#xff0c;一些简单的使用分享给大家。 创建数据模型 QStandardItemModel *modelnew QStandardItemModel(); QStandardItemModel是Qt库中的一个类&#xff0c;它…