代码编织梦想

背景

2021年11月,随着波卡主网正式开启平行链插槽拍卖,波卡生态顿时成为一股耀眼的新势力。在波卡生态中,Gear则是相对被低估的项目之一。作为波卡智能合约平台,Gear在技术上支持异步编程和并行计算、WASM虚拟机,据称Gear的运行速度大幅高于传统EVM链,其TPS(每秒交易数量)可比以太坊和BSC、Polygon等EVM系公链高出几个数量级。Gear CEO Nikolay Volf也明确表示,Gear将支持DApp开发者使用Rust、C、C++等主流开发语言部署智能合约,并推出适用于不同应用的模板和库,让开发者仅修改部分参数就能轻松地部署DApp,尽可能增强其兼容性。

Gear的定位是一条新公链。但Gear官方未表示支持EVM,这将使其失去目前在区块链开发中占主导、数量广泛的Solidity开发者,不利于Gear生态的快速建设。而其Gear网络节点支持“并行处理”(在同一时刻运行多个任务)和“异步编程”(调用某函数功能的结果可延时返回)的能力可以很大程度上使Gear的TPS比普通公链高出几个数量级。所以可以采用将这两项技术迁移到EVM生态中,提高占主导地位Solidity的TPS。

基础区块链框架是Polkadot网络的重要组成部分。它使希望创建新区块链的团队不必从头开始编写,就可以在网络实施和共识代码上浪费精力。

基础涵盖多个方面,包括共识机制(块终结、验证器投票系统、容错)、网络层(p2p连接、消息发送和数据复制功能)、完整节点模板、数据库抽象、通过WASM的客户端更新机制(无硬叉)和其他重要模块。Gear使用的基板框架。这有助于满足企业级分散项目的最理想需求——容错、复制、标记化、不变性、数据安全和生产级跨平台持久数据库。

Gear本身被实现为一个定制的Substrate运行时,引入了高级本地扩展(通过主机功能)以提高性能。使用Substrate构建区块链允许Gear作为副链部署在任何兼容的中继链上,如Polkadot和Kusama。Polkadot网络Polkadot是下一代区块链协议,旨在联合多个专门构建的区块链,允许它们在规模上无缝运行。

核心技术

状态

与任何区块链系统一样,Gear保持分布式状态。编译到WebAssembly的运行时代码成为区块链存储状态的一部分。Gear支持无叉运行时升级的定义功能。如果使用最终小工具,也可以保证最终完成状态。
存储状态包括下面的三个组件:

  • 程序和内存(包括程序代码和它的私有空间)
  • 消息队列(网络中全球消息队列)
  • 账户(网络账户和他们的余额)
程序和内存

程序代码存储为一个不可变的Wasm blob。每个程序都有一个固定数量的单独内存,在初始化过程中为程序保留,并在消息处理之间保持(所谓的静态区域)。Gear实例为每个程序保留单独的内存空间,并保证其持久性。

一个程序只能在自己专门分配的内存空间内进行读写,不能访问其他程序的内存空间。单个内存空间在程序初始化期间为程序保留,不需要额外费用(包括在程序初始化费用中)。

程序可以从Gear实例提供的内存池中分配更多内存。程序可以以64KB的块为单位分配所需数量的内存页。每个额外的内存块分配都需要一笔gas费。

每个分配的内存块(64KB)分别存储在分布式数据库后端,但在程序访问其内存的运行时,Gear节点会构建连续的运行时内存,并允许程序在其上运行而无需重新加载。
在这里插入图片描述
Gear节点使用惰性加载技术,因此如果执行进程需要页面,那么页面会被放入内存,而不是立即加载所有页面。每次程序正常完成执行后,都会保存程序的状态及其内存。

使用持久内存对于确保数据密集型dApps的成功至关重要。在这里,每次需要处理程序时加载程序的传统方法似乎没有得到优化。具有多对多关系的分散应用程序受益于持久内存方法。

消息队列

Gear实例包含一个全局消息队列。使用Gear节点,用户可以向特定程序发送包含一条或多条消息的事务。这会填充消息队列。在块构造过程中,消息将出列并路由到特定程序。

账户

对于公共网络,为了防止DoS攻击,需要交易处理的气体/费用。Gear提供了一个余额模块,允许存储用户和程序余额并支付交易费用。

状态转换

Gear支持以下类型的事务:

  • 1.创建程序(用户上载新程序-智能合约)
  • 2.发送消息(程序或用户填充消息队列)
  • 3.取消消息队列(验证器(块生成器)取消多条消息队列,运行关联程序)
  • 4.平衡传输(Gear引擎执行用户程序验证器平衡传输)
  • 在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

为了交流创建的Actor模型

并发系统的主要挑战之一是并发控制。它定义了不同程序之间正确的通信顺序,并协调对共享资源的访问。潜在问题包括竞赛条件、死锁和资源匮乏。
并发计算系统可以分为两类通信:

  • 共享内存通信——当并发程序通过更改共享内存位置的内容进行通信时。
  • 消息传递通信-意味着通过消息交换进行并发程序通信。

消息传递并发比共享内存并发更容易理解。它通常被认为是一种更健壮的并发编程形式。

通常,消息传递并发比共享内存具有更好的性能特征。在消息传递系统中,每个进程的内存开销和任务切换开销较低。有很多数学理论可以理解消息传递系统,包括Actor模型。

对于进程间通信,Gear使用Actor模型方法。Actor模型越来越受欢迎,并在许多新的编程语言中使用,通常作为一种一流的语言概念。Actor模型的原则是,程序从不共享其状态,只在彼此之间交换消息。

参与者发布出现在消息队列末尾的消息。将消息放入队列需要一些小费用,足以支付消息引起的程序加载和分派。消息由验证器节点出列,并重复此操作,直到达到gas_limit。
虽然在普通的Actor模型中,无法保证消息的顺序,但Gear提供了额外的保证,即两个特定程序之间的消息顺序是保持不变的。

内存并行

每个程序单独的独立内存空间允许在Gear节点上并行处理消息。消息可以分为多个流,以便并行处理。流的数量是为整个网络配置的,可以等于典型验证器节点的CPU内核数量。每个流都包含用于定义的一组程序的消息。它涉及从其他程序或外部影响(例如,用户的事务)发送的消息。

例如,给定一个消息队列,其中包含针对100个不同程序的消息,以及在配置了2个处理流的网络上运行的Gear节点。Gear引擎使用运行时定义的流数,将目标程序的总数除以流数,并为每个流创建一个消息池(每个流50个程序,由验证器节点的2个CPU核心进行处理)。

程序被分发到不同的流中,每条消息都出现在定义了其目标程序的流中。因此,所有发往特定程序的消息都出现在单个处理流中。

在每个周期中,目标程序可以有多条消息,一个流可以处理多个程序的消息。消息处理的结果是将来自每个流的一组新消息添加到全局消息队列中,然后循环重复。消息处理过程中生成的结果消息通常发送到其他地址(通常返回源或下一个程序)。
在这里插入图片描述

内部流

在这里插入图片描述

遵循分散原则,Gear网络由许多计算设备组成,这些节点共享一个全局状态。
智能合约开发者(客户端)要做到这一点,客户必须有一个与Gear相连的账户,并有足够的资金支付交易费。

当用户上传程序时,接口将事务发送到任意网络节点。然后,该节点验证事务,如果一切正常,则将其放入事务池,在该池中,它将在网络中的所有节点之间共享。

在Gear中,参与者(用户和程序)通过一条或多条消息相互发送事务。这会填充全局消息队列。网络中的一个特殊节点(collator)将在下一个块中处理事务。在块构造期间,消息在块构造时间的保留空间内出列和处理。建议的区块由其他节点验证,并根据协商一致机制最终确定。消息处理结果以状态保存。

总结

Gear项目优缺点

优点:

  • 支持功能更齐全、速度更快的WASM虚拟机,支持Rust、C/C++等主流语言;
  • 支持不同交易事件的并行执行,支持智能合约编程和执行的异步化,可大幅加快程序运行速度,使TPS数量级远高于EVM系公链;相比于Solana,Gear的安全性可由波卡中继链加以保障。
  • 比起大多数公链(尤其是EVM系公链),性能和架构更贴近传统计算机环境;
  • 项目创始人及CEO有波卡母公司 Parity Technologies的任职背景,与波卡创始人Gavin Wood关系较近,项目早期便获得Web3基金会和Parity Technologies及知名VC三箭资本的融资。

缺点:

  • 由于采用较难实现的并行架构和异步编程,其潜在复杂性与区块链状态的确定性有关,但不同的节点有不同数量的CPU核心,所以需要通过开发特殊的尖端算法来克服,这方面的开发难度不容小觑。
  • 即便是在设计上极尽缜密和周到,并行处理模式在长期运行中都可能出现Bug。2018年时,EOS创始人BM针对EOS白皮书里提到的、很难真正实现的“并行性”parallelism,曾表示:“能解决这个问题的人,之前必须有开发至少3个区块链系统的经验。”此外,Solana也曾提出支持并行架构的“Sealevel”技术方案,但尚未实际落地。
  • Gear尚未启动测试网,距离主网正式投入使用及获得波卡插槽拍卖可能还有较长时间,这将使其失去在波卡生态的先发优势。
  • Gear目前主要支持Rust和C语言,尤其以Rust语言为主。但Rust语言的学习难度较大,开发者数量可能有限。
  • Gear官方未表示支持EVM,这将使其失去目前在区块链开发中占主导、数量广泛的Solidity开发者,不利于Gear生态的快速建设;
  • Gear的安全性取决于波卡中继链,其未来的繁荣将受制于波卡生态本身。波卡在未来可能出现的缺陷或将严重影响Gear。
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_40500099/article/details/127150140

国赛优秀论文研读--2019C-爱代码爱编程

2019C机场出租车 题目要求C308emmm,没太看懂,不细究了C044摘要模型准备问题一因素确定选择决策模型问题二问题三问题四C137摘要问题一出租车司机选择决策模型因素确定收支方案确定求解(第一次计算机模拟)问题二问题三最优乘车效率模型求解(第二次计算机模拟)结果分析问题四最优排队方案模型求解(第三次计算机模拟)总结代码清单 原文地址(戳这里

论文研读-文献聚类可视化-文献聚类结果可视分析方法研究-爱代码爱编程

文献聚类结果可视分析方法研究 1 论文概述1.1 摘要1.2 引言1.3 脉络2 可视分析框架2.1 框架概述2.2 框架组成3 可视化设计3.1 语料结构可视化3.2 语料内容可视化3.3 聚类结果调整和优化4 系统实现及案例分析4.1 选择聚类方法4.2 调整聚类数量4.3 优化和诊断聚类结果4.4 用户反馈5 结论6 收获 1 论文概述

Swin-Unet论文研读-爱代码爱编程

Swin-Unet: Unet-like Pure Transformer for Medical Image Segmentation 论文:https://arxiv.org/pdf/2105.05537.pdf 代码:https://github.com/HuCaoFighting/Swin-Unet Abstract(摘要) 在过去的几年里,卷

深度学习神经网络论文研读-自然语言处理方向-elctra-爱代码爱编程

深度学习神经网络论文研读-自然语言处理方向-elctra-目录 概念引入ELECTRA比BERRT快的原因摘要elctra的判别器与生成器模型训练其他训练方式效果比较论文意义 概念引入 该篇论文对GAN有要求,对GAN不熟悉的朋友,可以先看这篇博文简单理解下MASK机制的简单理解有关NLP的一些基本概念详见ELECTRA比BERRT快的原因

深度学习神经网络学习笔记-自然语言处理方向-论文研读-情感分析/文本分类-glove-Global Vectors for Word Representation-爱代码爱编程

本文目录 概念引入介绍摘要大意模型原理模型的公式推导模型效果对比 概念引入 逻辑回归线性回归时间序列分析神经网络self-attention与softmax的推导word2evc 该篇论文的背景word2evc提出的方法无法使用全局的统计信息 矩阵分解方法在词对推理的任务上表现很差 介绍 LSA和word2vec,一个是利用了全局特征的

深度学习神经网络学习笔记-自然语言处理方向-论文研读-情感分析/文本分类-char_embedding-爱代码爱编程

本文目录 概念引入由来摘要大意C2W模型语言模型的训练流程词性标注模型研究成果 概念引入 逻辑回归线性回归时间序列分析神经网络self-attention与softmax的推导word2evc 由来 词向量的学习在自然语言处理的应用中非常重要,词向量可以在空间上捕获词之间的语法和语义相似性。但是词向量机制中是假设词和词之间是独立的,这种独

深度学习神经网络学习笔记-爱代码爱编程

本文目录 概念引入机器阅读理解的简要介绍论文研究背景相关数据集的时间脉络问答系统的分类研究成果实验结果 概念引入 有关中文实体命名识别 逻辑回归 线性回归 时间序列分析 神经网络 self-a

深度学习神经网络学习笔记-爱代码爱编程

本文目录 概念引入文章背景信息抽取主要包括以下子任务研究成果关系抽取分类关系抽取方法关系抽取的挑战该模型的结构语法特征句法特征结果分析 概念引入 有关中文实体命名识别 逻辑回归 线性回归 时间