分片技术简介与Trias分片MVP

2024-04-22 03:32
文章标签 技术 简介 mvp 分片 trias

本文主要是介绍分片技术简介与Trias分片MVP,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

区块链发展的关键因素有两个,一个是数据的隐私和确权,一个就是区块链的扩容,即区块链性能的提升。区块链数据的隐私和确权我们前面的文章已经提到过,今天我们主要讨论的是区块链的扩容方法。


区块链为什么要扩容?我们先来看看比特币和以太坊的吞吐量,比特币是7TPS左右,以太坊是20TPS左右,但是中心化的VISA的TPS大概在8000左右。所以如果一个支付系统放在区块链上,区块链的性能将远远不能满足支付系统的吞吐量要求,这就像一个高速公路收费站,我们只开了一个收费口,而且这个收费口的工作效率也很低,那么就会有大量的汽车被堵在收费口外,这会造成高速公路也就是网络的拥堵,一笔交易可能要等几天才能完成。但是如果我们开了10个收费口甚至更多,那交通状况将大大得到缓解直到畅通无阻。如果一个收费口可以比喻为一个分链的话,设置“多个”或“多种”收费口的技术来使区块链的吞吐量增加的技术就是分片技术。


分片技术最早源自数据库的扩容技术,是一种基于数据库分成若干片段的传统概念扩容技术,它将数据库分割成多个碎片并将这些碎片放置在不同的服务器上,在这些不同服务器上的数据就能同时并行处理,在同样的时间环境下,处理速度成倍增加。这种分片技术应用于区块链上就是将网络中的节点分成不同的分片,也可以说分在不同的分链上,各分片可以并行处理不同交易,以提高网络并发量,也就是我们常说的TPS。区块链分片的特点是具有动态扩容性,随着节点数量的增加,区块链的性能也随之增加。将网络分割为碎片会使得更多的交易同时被处理和验证。但是它仅仅可以并行处理相互之间未建立连接的交易,对于之间有关联的交易,分片对性能的提升将会受到影响。所以分片技术应用于区块链有其独有的优势和挑战,现在应用于区块链的分片技术主要有几种:网络分片、交易分片以及状态分片等。

网络分片

网络分片就是开发一种机制来确定哪些节点可以按照安全的方式保留在哪些碎片中。这样能避免那些控制大量特定碎片的人所发起的攻击。通常随机抽样的方式可以防止恶意节点过度填充单个碎片。

交易分片
交易分片就是通过用户交易的输入输出数据并根据一种算法(如哈希值)来确定交易数据的分片。但是这种方法不能有效避免双花攻击,除非数据跨碎片进行通信,但这又可能会破坏交易分片的目的——提升交易吞吐量。但根据交易者的地址信息来分片的话就可有效检测到双花攻击,而不需要进行任何跨碎片的通信。

状态分片

状态分片就是通过把区块链数据分成不同状态的数据来分片的一种技术。在状态分片的情况下,重新分配节点是非常棘手的。一个特定的碎片只会保留一部分状态,如果在一次重新调整网络的过程中,在同步完成前可能会出现导致整个系统失效的问题。
但是Trias探索了分片技术的新方向,通过把交易分片和状态分片技术组合,弥补了各自技术的缺点,使分片技术可以更好地应用于区块链。

Trias分片MVP在真实区块链基础上,加入主链用来协调处理各分片交易,另外又在此基础上加入负载均衡和数据库,分别用来分发交易请求和存储账号数据。

具体的架构请参照下图:

LoadBalance

LoadBalance是一个负载均衡层,所有的交易请求通过LoadBalance进行处理,当前分为两类请求,一类是查询请求,LoadBalance会直接请求Storage查询并返回,还有一类是交易请求,LoadBalance请求storage获取交易涉及的Chain,将请求转发给Root_Chain处理。当前LoadBalance通过Openresty实现。

Storage

Storage做为存储层保存交易账号数据,包括账号名,Chain ID,余额等,只有LoadBalance会直接与Storage交互,涉及到查询和更新。当前Storage通过etcd实现。

Root_Chain

Root_Chain作为一个主链在跨链交易时会生成交易凭据,各Child_Chain依据主链的凭据进行操作。当前版本Child_Chain要接收到Root_Chain请求就会操作,还未实现Root_Chain和Child_Chain的校验。当前Root_Chain通过python实现,开启一个rpc,api接受LoadBalance请求,判断是否跨链,产生交易生成凭据并将结果返回给LoadBalance。

Child_Chain

Child_Chain是独立的区块链,有单独的节点和数据,通过接受Root_Chain请求处理交易。当前通过Tendermint实现共识,Tendermint内account作为内建的app提供交易场景。
 

这篇关于分片技术简介与Trias分片MVP的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/924724

相关文章

SpringBoot3实现Gzip压缩优化的技术指南

《SpringBoot3实现Gzip压缩优化的技术指南》随着Web应用的用户量和数据量增加,网络带宽和页面加载速度逐渐成为瓶颈,为了减少数据传输量,提高用户体验,我们可以使用Gzip压缩HTTP响应,... 目录1、简述2、配置2.1 添加依赖2.2 配置 Gzip 压缩3、服务端应用4、前端应用4.1 N

Java利用JSONPath操作JSON数据的技术指南

《Java利用JSONPath操作JSON数据的技术指南》JSONPath是一种强大的工具,用于查询和操作JSON数据,类似于SQL的语法,它为处理复杂的JSON数据结构提供了简单且高效... 目录1、简述2、什么是 jsONPath?3、Java 示例3.1 基本查询3.2 过滤查询3.3 递归搜索3.4

Python中随机休眠技术原理与应用详解

《Python中随机休眠技术原理与应用详解》在编程中,让程序暂停执行特定时间是常见需求,当需要引入不确定性时,随机休眠就成为关键技巧,下面我们就来看看Python中随机休眠技术的具体实现与应用吧... 目录引言一、实现原理与基础方法1.1 核心函数解析1.2 基础实现模板1.3 整数版实现二、典型应用场景2

Golang的CSP模型简介(最新推荐)

《Golang的CSP模型简介(最新推荐)》Golang采用了CSP(CommunicatingSequentialProcesses,通信顺序进程)并发模型,通过goroutine和channe... 目录前言一、介绍1. 什么是 CSP 模型2. Goroutine3. Channel4. Channe

Java中的Opencv简介与开发环境部署方法

《Java中的Opencv简介与开发环境部署方法》OpenCV是一个开源的计算机视觉和图像处理库,提供了丰富的图像处理算法和工具,它支持多种图像处理和计算机视觉算法,可以用于物体识别与跟踪、图像分割与... 目录1.Opencv简介Opencv的应用2.Java使用OpenCV进行图像操作opencv安装j

【专题】2024飞行汽车技术全景报告合集PDF分享(附原数据表)

原文链接: https://tecdat.cn/?p=37628 6月16日,小鹏汇天旅航者X2在北京大兴国际机场临空经济区完成首飞,这也是小鹏汇天的产品在京津冀地区进行的首次飞行。小鹏汇天方面还表示,公司准备量产,并计划今年四季度开启预售小鹏汇天分体式飞行汽车,探索分体式飞行汽车城际通勤。阅读原文,获取专题报告合集全文,解锁文末271份飞行汽车相关行业研究报告。 据悉,业内人士对飞行汽车行业

金融业开源技术 术语

金融业开源技术  术语 1  范围 本文件界定了金融业开源技术的常用术语。 本文件适用于金融业中涉及开源技术的相关标准及规范性文件制定和信息沟通等活动。

ASIO网络调试助手之一:简介

多年前,写过几篇《Boost.Asio C++网络编程》的学习文章,一直没机会实践。最近项目中用到了Asio,于是抽空写了个网络调试助手。 开发环境: Win10 Qt5.12.6 + Asio(standalone) + spdlog 支持协议: UDP + TCP Client + TCP Server 独立的Asio(http://www.think-async.com)只包含了头文件,不依

业务协同平台--简介

一、使用场景         1.多个系统统一在业务协同平台定义协同策略,由业务协同平台代替人工完成一系列的单据录入         2.同时业务协同平台将执行任务推送给pda、pad等执行终端,通知各人员、设备进行作业执行         3.作业过程中,可设置完成时间预警、作业节点通知,时刻了解作业进程         4.做完再给你做过程分析,给出优化建议         就问你这一套下

AI(文生语音)-TTS 技术线路探索学习:从拼接式参数化方法到Tacotron端到端输出

AI(文生语音)-TTS 技术线路探索学习:从拼接式参数化方法到Tacotron端到端输出 在数字化时代,文本到语音(Text-to-Speech, TTS)技术已成为人机交互的关键桥梁,无论是为视障人士提供辅助阅读,还是为智能助手注入声音的灵魂,TTS 技术都扮演着至关重要的角色。从最初的拼接式方法到参数化技术,再到现今的深度学习解决方案,TTS 技术经历了一段长足的进步。这篇文章将带您穿越时