直播回顾 | 长安链可验证数据库技术架构和代码解读

news2024/9/22 19:29:01

3月29日长安链可验证数据库技术架构和代码解读中,北京大学博士后研究员高健博带开发者一起了解了长安链可验证数据库的应用背景、设计实现方式和功能代码结构。

数据存证以及通过智能合约进行数据共享是目前联盟链最直接、最广泛的应用场景。在很多存证场景中,需要上链的数据量特别大,但是数据价值密度并不高,相比于完全的链上存储,通过一定的链下存储并在链上进行验证,能够降低存储成本且保障数据权限,但是链下存储需要保证数据可信及其完整性。链下存储背景介绍中,高健博分析了链下存储的具体环节以及环节中存在的问题(视频约0-9分钟)。

图片


可验证数据库介绍环节,高健博博士分享了区块链、数据库的数据结构与链下数据存储完整性的定义,着重介绍了保证数据完整性的5种方案,其中Merkle B+树索引结构的可验证数据库兼顾了数据完整性的三个方面:正确性、真实性、全面性(视频约9-29分钟)。

设计实现方式介绍环节高健博博士分享了可验证数据库的链上链下交互过程。可验证数据库是作为MySQL插件开发的存储引擎,已经提供了完善的技术文档和相对完备的组件,目前主要适配了长安链2.3.1版本。高健博博士分享了可验证数据的具体使用方式,并通过视频进行了直观展示(视频约29-45分钟)。

最后代码解读环节介绍了可验证数据的代码目录结构和文件功能划分以及具体的代码内容(视频约45-50分钟)。

直播精彩问答

1.请问proof包括什么内容?请讲一下具体的验证过程,谢谢!

答:可验证数据库的证明主要包括Merkle证明和范围证明,其中范围证明是超出查询条件且与查询结果连续的两端数据,只需要通过比较查询条件即可;Merkle证明是查询结果及范围证明到Merkle根的路径,验证时需要重新计算hash,然后与Merkle根进行比较。

2. 只能验证查询条件是ID的记录吗?审计业务过程中查询条件很少是ID,可能是地区,年龄等。业务数据产生时可能不知道查询条件是什么?

答:直播中讲解查询条件为ID是为了便于理解,实际上只要是索引键都可以作为查询条件,但是推荐使用数字、字符串等分布较大且有序的键,例如年龄、编号等,不建议使用只有少数枚举值的字段,例如性别。

3. 把查询结果上链有必要吗,只发给在乎的参与对象可以么?

答:从验证查询结果的角度来说,不是必须上链的,也可以通过链下发送查询结果和证明。但是上链能够带来两个好处:一是发起链下查询的重要目的就是保证结果可信,上链之后能够让查询结果和证明具备抗抵赖等特性;二是通过智能合约封装了查询结果及证明的验证功能,降低开发难度和成本,所以还是推荐通过上链方式实现可验证数据库查询。

4. 树的大小有限制吗,如果数据比较多,数据的增删会不会引起比较大的开销?

答:树的大小限制和开销都是与传统关系型数据库的B+树一致的,额外的开销仅在Merkle树的更新时产生。Merkle树不会再数据增删改时实时更新,只在数据库管理员触发生成可验证版本(类似传统关系型数据库备份或快照)时才会进行批处理,这一过程可以在凌晨等业务低谷时进行。

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

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

相关文章

服务器如何开启远程连接?

服务器开启远程连接是网络管理中一项重要的功能。通过远程连接,用户可以在任何地方远程访问服务器,从而进行管理、维护和监控等操作。远程连接的开启可以为工作提供便利性和效率,但同时也带来了安全风险。确保远程连接的安全性和可靠性是至关…

html接入腾讯地图

1.申请key key申请地址&#xff1a;https://lbs.qq.com/dev/console/application/mine 官方文档 https://lbs.qq.com/webApi/javascriptGL/glGuide/glBasic 2.html接入示例 <!DOCTYPE html> <html lang"en"> <head><meta charset"U…

如何训练一个大语言模型(LLMs)

目录 前言大语言模型 Vs机器学习模型训练过程步骤1&#xff1a;数据策划&#xff08;Data Curation)步骤2&#xff1a;格式化与预处理步骤3&#xff1a;训练模型步骤4&#xff1a;模型评估 LLM Leaderboard[LLM Leaderboard 2024](https://www.vellum.ai/llm-leaderboard)[Open…

实时数仓选型

实时数仓选型 实时数仓选型第一版实时数仓选型第二版 实时数仓选型第一版 实时数仓分层: 计算框架:Flink;存储框架:消息队列(可以实时读取&可以实时写入)ODS:Kafka 使用场景:每过来一条数据,读取到并加工处理DIM: HBase 使用场景:事实表会根据主键获取一行维表数据(1.永…

6个好用的AI绘画网站,AI画画操作简单更好看

如今&#xff0c;越来越多的人在艺术领域选择使用AI绘画软件进行创作&#xff0c;这已经成为一种趋势。以下是几款好用的AI绘画软件&#xff0c;可以帮助你和你的小伙伴们的AI画画操作简单更好看。 下面先欣赏AI美图~ 爱制作AI: 独特优势&#xff1a;爱制作AI是爱制作AI拥有强…

网页视频录制技巧,这2个方法一定要收好!

“大家知道如何录制网页上的视频吗&#xff1f;我现在有一个重要的项目&#xff0c;需要录制一段在线视频作为参考。但是尝试了好几种方法&#xff0c;都没能成功。时间紧迫&#xff0c;我真的非常需要这个视频。大家有没有好的建议或者方法呢&#xff1f;谢谢了&#xff01;”…

UG10.如何设置鼠标滚轮操作模型放大缩小方向?

UG10.如何设置鼠标滚轮操作模型放大缩小方向呢&#xff1f;看一下具体操作步骤吧。 首先打开UG10.软件&#xff0c;在主菜单栏选择【文件】下拉菜单&#xff0c;选择【实用工具】。 点击【用户默认设置】。 文章源自四五设计网-https://www.45te.com/45545.html 选中【基本环…

分享基于鸿蒙OpenHarmony的Unity团结引擎应用开发赛

该赛题旨在鼓励更多开发者基于OpenHarmony4.x版本&#xff0c;使用团结引擎创造出精彩的游戏与应用。本次大赛分为“创新游戏”与“创新3D 化应用”两大赛道&#xff0c;每赛道又分“大众组”与“高校组”&#xff0c;让不同背景的开发者同台竞技。无论你是游戏开发者&#xff…

LabVIEW轴承表面缺陷检测系统

LabVIEW轴承表面缺陷检测系统 为了解决轴承生产中人工检测效率低下、误检率高的问题&#xff0c;实现了一套基于LabVIEW的轴承表面缺陷自动检测系统。该系统利用工业相机采集轴承图像&#xff0c;通过图像处理技术对轴承表面的划痕缺陷和倒角缺陷进行自动识别和分析&#xff0…

Linux中inode号与日志分析

一.inode号 1.inode表结构 元信息&#xff1a;每个文件的属性信息&#xff0c;比如&#xff1a;文件的大小&#xff0c;时间&#xff0c;类型&#xff0c;权限等&#xff0c;称为文件的元数据(meta data 元信息 ) 元数据是存放在inode&#xff08;index node&#xff09;表中…

【Java】Java基础 使用集合实现斗地主分牌

&#x1f4dd;个人主页&#xff1a;哈__ 期待您的关注 今天使用集合TreeSet来实现一个斗地主的分牌流程。 TreeSet集合的一个特点就是 元素有序&#xff0c;这样就方便我们分的牌自动排序。 0.思路 1.创建玩家手牌集合 我们到时候分的牌都存储在这里&#xff0c;但你可能会…

AI大模型探索之路-应用篇17:GLM大模型-大数据自助查询平台架构实践

文章目录 前言一、技术架构设计二、本地知识库准备三、SQLServer服务1. 数据库准备步骤1&#xff1a;安装MySQL数据库步骤2&#xff1a;启动MySQL数据库步骤3&#xff1a;登录MySQL数据库步骤4&#xff1a;创建数据库用户glm步骤5&#xff1a;给数据库用户赋权限步骤6&#xff…

前端CSS基础6(CSS列表与表格的相关属性,边框的样式调整)

前端CSS基础6&#xff08;CSS列表与表格的相关属性&#xff0c;边框的样式调整&#xff09; CSS列表相关属性CSS表格相关属性回忆表格边框相关属性单元格边框相关属性回忆单元格的跨行和跨列操作单元格边框的相关属性 CSS列表相关属性 在 CSS 中&#xff0c;列表&#xff08;L…

Hadoop3:大数据生态体系

一、技术层面 通过下面这张图&#xff0c;我们可以大概确定&#xff0c;在大数据行业里&#xff0c;自己的学习路线。 个人认为&#xff0c;Hadoop集群一旦搭建完工&#xff0c;基本就是个把人运维的事情 主要岗位应该是集中在数据计算层&#xff0c;尤其是实时计算&#xff…

Skill Check: Building Blocks for an LLM Application

Skill Check: Building Blocks for an LLM Application

docker 报错 error adding seccomp filter rule for syscall clone3

网上有一些说法&#xff0c;例如重新安装docker 但是我自己尝试&#xff0c;用 –security-opt seccompunconfined 就可以&#xff0c;但是需要把这个命令放到紧挨着run的位置&#xff0c;如果放到偏后的位置&#xff0c;可能不起作用。 以下命令是其他网友启动是的命令&…

nfs网络存储配置

准备&#xff1a;yum install rpcbind yum install nfs-server 一台服务器&#xff1a;192.168.220.131 一台客户端&#xff1a;192.168.220.220 服务器&#xff1a; 先启动rpcbind服务&#xff1a;systemctl restart rpcbind 在启动…

day83 AJAX

1什么是AJAX AJAX语法 AJAX Asynchronous JavaScript and XML 异步js和XML 实现页面某一部份更新&#xff0c;无需服务器转发或重定向 1 $.ajax() 语法: $.ajax( { "url" : "url&qu…

Python | Leetcode Python题解之第43题字符串相乘

题目&#xff1a; 题解&#xff1a; class Solution:def multiply(self, num1: str, num2: str) -> str:if num1 "0" or num2 "0":return "0"m, n len(num1), len(num2)ansArr [0] * (m n)for i in range(m - 1, -1, -1):x int(num1[i…

Python --- 新手小白自己动手安装Anaconda+Jupyter Notebook全记录(Windows平台)

新手小白自己动手安装AnacondaJupyter Notebook全记录 这两天在家学Pythonmathine learning&#xff0c;在我刚刚入手python的时候&#xff0c;我写了一篇新手的入手文章&#xff0c;是基于Vs code编译器的入手指南&#xff0c;里面包括如何安装python&#xff0c;以及如何在Vs…