简介有向无环图DAG

news2025/2/23 5:59:45

Sui创纪录的每秒交易量部分归功于数学构造,即有向无环图(Directed Acyclic Graph,DAG),该构造通过以最高效的方式处理交易来加速网络交易,而不是按照先来先服务的线性进展。

区块链是设计用于确保数据完整性的分布式账本,将有向无环图的非线性特性与区块链相结合,是将两种技术的优点结合在一起。作为一个区块链网络,Sui保留了数据对象的历史性和监护性,而其基于DAG的共识系统使对这些数据对象的操作变得灵活。

什么是DAG?

DAG是一种不同于传统区块链线性链结构的数据结构。与区块链不同,区块链由以线性方式链接在一起的区块组成,DAG更像是一个互相连接的节点网络。要理解DAG,让我们首先反向分解首字母缩写。

在分布式分类帐本技术的背景下,图形数据库使用类似于关系网的互连结构组织数据。每个个体数据条目(或交易)与其他数据条目的关系被用来形成基于因果关系的信息网络。通过这种方法,复杂的交易关系和依赖关系被捕获在网络中。

在定义中添加无环意味着无法在分类帐本或数据库中创建循环或循环。换句话说,不可能在数据库中创建一条导致早期交易依赖于后期交易的路径。这种特性确保了信息以单向流动,将我们带到缩写的最后一部分,即有向。作为有向图,每个关系都有一个定义的方向,指示数据库内信息的流动。有向性允许清晰且明确的数据流动,这对于维护完整性和促进交易的高效处理至关重要。

DAG中的交易与其他交易具有明确的关系,形成了类似网的结构。请注意,最终每个交易都会被所有节点观察到,并且为简单起见,此图像仅显示了一个交易仅被单个节点观察到的情况。

总之,DAG是一种以信息或交易的相互依赖为基础互连的网络结构数据库,形成一个随着每笔新交易而扩展的图形。

区块链和DAG

区块链通常将一组交易打包成一个区块,然后将其作为单个实体通过共识过程。区块以线性方式相互链接,这要求网络的状态在逐个区块的基础上以逐步方式发生变化。另一方面,DAG中的交易能够独立达成共识,绕过将许多交易分组到一个区块进行共识的过程。

在区块链中,所有网络验证节点都有一个共同的网络状态,他们都从中工作。验证节点同时评估一组交易,并且在超过半数的情况下达成一致意见之前不能继续进行。要使区块被视为有效并被固定到区块链中,该区块中的所有交易都必须有效。如果区块中的单个交易无效,那么整个区块将被丢弃,并且必须在不包括无效交易的情况下重新创建。在区块链中达成共识要求验证节点一起操作,逐个区块地批准交易。

与区块链中如何实现共识类似,DAG中的交易在被网络验证节点的超过半数签署后达成共识。一个关键区别在于DAG中的每个验证节点都有网络状态的不同子集。换句话说,整个网络状态不是存储在每个验证节点中的,而是只能通过累积各个验证节点对网络的理解来观察。

没有一个交易区块是一次由所有验证节点验证的,而是单个交易通过网络传播,获取具有网络状态知识的各个验证节点的签名以验证交易。一旦交易获得了网络验证节点超过半数的签名,它就达成了共识并被视为已最终确定。

由于这种结构,利用DAG进行交易传播和共识使得交易能够以异步和并发的方式进行确认,相比区块链提供了一种更加灵活和可扩展的方法。

从DAG到Sui区块链

Sui利用DAG进行交易传播和共识,然后在一个单独的过程中将交易排序为检查点,这类似于区块。检查点以线性方式相互链接和排序,类似于典型区块链的结构。Sui区块链结构的主要区别在于,分组到检查点中的交易已经最终确定,与典型的区块链结构不同,典型的区块链结构将尚未最终确定的交易分组到区块中。

Sui区块链结构的主要区别在于,分组到检查点中的交易已经最终确定,与典型的区块链结构不同,典型的区块链结构将尚未最终确定的交易分组到区块中。

融会贯通

Sui的创新方法结合了DAG和区块链的最佳特性,创造了一个速度和灵活性无与伦比的网络。通过利用DAG进行交易传播和共识,Sui确保交易可以以异步和并发的方式进行确认,相比传统的区块链系统,这使得系统更具可扩展性和效率。然而,为了维护历史信息的完整性和顺序,Sui采用了一个单独的过程将交易组织成检查点,类似于区块链中的区块。

然后,这些检查点被链接在一起,并以线性方式排序,为存储和访问历史数据提供了熟悉的结构。与传统的区块链不同,在Sui中,包含在检查点中的交易已经最终确定,提供了一种简化和高效的交易验证和存储方法。

这种混合架构使得Sui能够充分利用DAG和区块链的优势,为去中心化应用和智能合约创造了一个强大而灵活的平台。

注意:此内容仅供一般教育和信息目的使用,并不构成买卖或持有任何资产、投资或金融产品的认可或推荐,并且不构成财务、法律或税务建议。


关于 Sui Network

Sui是基于第一原理重新设计和构建而成的L1公有链,旨在为创作者和开发者提供能够承载Web3中下一个十亿用户的开发平台。Sui上的应用基于Move智能合约语言,并具有水平可扩展性,让开发者能够快速且低成本支持广泛的应用开发。获取更多信息:https://linktr.ee/sui_apac

官网|英文Twitter|中文Twitter|Discord|英文电报群|中文电报群

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1579303.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

APx500音频分析仪硬件简介

两通道模拟输出,两通道或以上的模拟输入接口 线性编码数字音频接口(AES/EBU,TOSLINK,SPDIF)Linear PCM 脉冲密度调制码流(需要APx-PDM选件支持) Bluetooth蓝牙音频码流(需APx-BT选件支持) 最…

基于Android的记单词App系统的设计与实现

博主介绍:✌IT徐师兄、7年大厂程序员经历。全网粉丝15W、csdn博客专家、掘金/华为云//InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇&#x1f3…

js 求出对应年月的开始日期和结束日期

实现效果: 背景: element日期时间选择组件,通过时间选择年-月,求出对应年月的开始日期和结束日期。 核心代码: /*** 返回给定年份和月份的起始和结束日期。* 202403 -> 2024-03-01 2024-03-31* param {number} y…

11-新热文章-实时计算

热点文章-实时计算 1 今日内容 1.1 定时计算与实时计算 1.2 今日内容 kafkaStream 什么是流式计算 kafkaStream概述 kafkaStream入门案例 Springboot集成kafkaStream 实时计算 用户行为发送消息 kafkaStream聚合处理消息 更新文章行为数量 替换热点文章数据 2 实时…

Linux下解决Java输出文件,中文变问号和中文乱码问题

# 启用 zh_CN.UTF-8 字体 echo "zh_CN.UTF-8 UTF-8" >> /etc/locale.gen # 生成并安装 locale 数据 locale-gen # 更新当前 shell 环境 source /etc/default/locale 相当于以下操作: # Debian sudo apt install locales sudo dpkg-reconfigur…

基于SSM+Jsp+Mysql的超市管理系统

开发语言:Java框架:ssm技术:JSPJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包…

【第二十四篇】使用Burpsuite实现反射、储存、DOM型XSS(靶场实战案例)

目录 反射性XSS储存型XSSDOM XSS反射性XSS 搜索1后,审查元素: 猜测<font>标签中没有进行XSS特殊字符转义,而在<font>标签内,可使用<script>标签: <script>alert(1)</script>储存型XSS 该模块对姓名、电子邮件、网站做过滤处理,但评论处…

Few-Shot目标检测数据集 | Few-Shot目标检测数据集_已经整理成MS-COCO数据格式_含60000+张图_可直接用于目标检测算法训练

项目应用场景 面向 Few-Shot 目标检测场景&#xff0c;项目提供 6000 张图&#xff0c;已经整理成 MS-COCO 数据格式&#xff0c;可用于 Few-Shot 目标检测的训练数据集&#xff0c;或作为 Few-Shot 目标检测数据集的补充。 数据集展示 数据集下载 > 具体参见项目 README.m…

【算法详解】二分查找

1. 二分查找算法介绍 「二分查找算法&#xff08;Binary Search Algorithm&#xff09;」&#xff1a;也叫做 「折半查找算法」、「对数查找算法」。是一种在有序数组中查找某一特定元素的搜索算法。 基本算法思想&#xff1a;先确定待查找元素所在的区间范围&#xff0c;在逐步…

SSM党员管理系统

一、系统介绍 党员管理系统: 可以方便管理人员对党员管理系统的管理&#xff0c;提高信息管理工作效率及查询效率&#xff0c;有利于更好的为用户提供服务。 主要的模块包括&#xff1a; 1、后台功能&#xff1a; 管理员角色&#xff1a;首页、个人中心&#xff0c;党员管理…

MySQL高级(索引结构B + Tree)

以一颗最大度数&#xff08;max - degree&#xff09;为 4 &#xff08;4阶&#xff09;的 b tree 为例&#xff1a; 绿色框框起来的部分&#xff0c;是索引部分&#xff0c;仅仅起到索引数据的作用&#xff0c;不存储数据。红色框框起来的部分&#xff0c;是数据存储部分&…

PostgreSQL入门到实战-第七弹

PostgreSQL入门到实战 PostgreSQL查询语句(四)官网地址PostgreSQL概述PostgreSQL中DISTINCT 语句介绍PostgreSQL中DISTINCT 语句实操更新计划 PostgreSQL查询语句(四) 官网地址 声明: 由于操作系统, 版本更新等原因, 文章所列内容不一定100%复现, 还要以官方信息为准 https:…

【运输层】TCP 的可靠传输是如何实现的?

目录 1、发送和接收窗口&#xff08;滑动窗口&#xff09; &#xff08;1&#xff09;滑动窗口的工作流程 &#xff08;2&#xff09;滑动窗口和缓存的关系 &#xff08;3&#xff09;滑动窗口的注意事项 2、如何选择超时重传时间 &#xff08;1&#xff09;加权平均往返…

React面试

React渲染流程(重点) jsx描述界面 jsx babel render function>vdom vdom fiber 在进行渲染 vdom 转换fiber reconcile 转换过程创建dom commit 到domvdom React Element 对象, 只记录了子节点, 没有记录兄弟节点, 因为渲染不可中断 fiber fiberNode 对象, 是一个链表 父节…

lua学习笔记13(一些特殊用法的学习和三目运算符的实现)

print("*****************************一些特殊用法的学习*******************************") print("*****************************多变量赋值*******************************") local a,b,c114514,8848,"凌少" print(a) print(b) print(c) -…

C#操作MySQL从入门到精通(7)——对查询数据进行简单过滤

前言 我们在查询数据库中数据的时候,有时候需要剔除一些我们不想要的数据,这时候就需要对数据进行过滤,比如学生信息中,我只需要年龄等于18的,类似这种操作,本文就是详细介绍如何对查询的数据进行初步的过滤。 1、等于操作符 本次查询student_age 等于20的数据,使用我…

导出加入域控的电脑清单

要导出加入域控的所有电脑清单&#xff0c;包括计算机名等基本信息&#xff0c;可以使用 PowerShell 中的 Get-ADComputer cmdlet。下面是一个基础示例脚本&#xff0c;用于从Active Directory (AD)中批量导出所有加入域的计算机名称及可能的其他相关信息&#xff0c;并将其保存…

Mudbus协议CRC校验码C#

Mudbus协议CRC校验码C# 什么是modbus协议特点协议格式modbus-crc16校验原理方法帧校验CRC计算方法&#xff1a;例子 C#代码Demo源码下载 什么是modbus Modbus是一种串行通信协议&#xff0c;最初由Modicon&#xff08;目前属于施耐德电气公司&#xff09;于1979年开发 Modbus协…

设计模式之访问者模式讲解

概念&#xff1a;封装一些作用于某种数据结构中的各元素的操作&#xff0c;它可以在不改变数据结构的前提下定义作用于这些元素的新操作。 抽象访问者&#xff1a;声明一个或多个访问操作&#xff0c;定义访问者可以访问哪些元素。具体访问者&#xff1a;实现抽象访问者的所有操…

2-4 AUTOSAR ASW Port端口

返回总目录->返回总目录<- 一、端口Port 软件组件的端口根据输入/输出方向可分为需型端口(Require Port,RPort)与供型端口(Provide Port,PPort),以及供需端口(Provide and Require Port,PRPort)。 需型端口可以和供型端口连接。 需型端口:用于从其他软件组件获…