桂链:区块链模型介绍

桂链区块链基于Hyperledger开发,本文转自Hyperledger Fabric。

Hyperledger Fabric 模型¶

本节概述了 Hyperledger Fabric 的关键设计特性,这些特性确保其成为全方位、可定制的企业级区块链解决方案:

  • 资产 — 资产定义使得几乎任何具有货币价值的东西都可以在网络上交换,包括从食品到古董汽车再到货币期货。
  • 链码 — 链码执行与交易排序的分离,限制了跨节点类型所需的信任和验证级别,优化了网络可扩展性和性能。
  • 账本特性 — 不可更改的共享账本编码记录了每个通道所有的交易历史,并具有类似 SQL 的查询功能,以便进行高效的审计和解决争议。
  • 隐私 — 通道和私有数据集合使进行隐私且机密的多边交易成为可能,这通常是竞争企业和受监管行业在共同网络上交换资产所需要的。
  • 安全和成员服务 — 许可成员资格提供了一个可信的区块链网络,参与者知道所有交易都可以由授权的监管机构和审计员检测和跟踪。
  • 共识 — 独特的共识方法提供了企业所需的灵活性和可扩展性。

资产¶

资产可以涵盖有形(房地产和硬件)和无形资产(合同和知识产权)。Hyperledger Fabric 提供使用链码交易来实现修改资产的功能。

资产在 Hyperledger Fabric 中被表示为键值对的集合,状态更改记录为 Channel 账本上的交易。资产可以用二进制或 JSON 表示。

链码¶

链码是定义单项或多项资产,和能修改资产的交易指令的软件;换句话说,它是业务逻辑。链码强制执行读取或更改键值对或其他状态数据库信息的规则。链码函数针通过交易提案启动,并使用账本的当前状态数据库进行执行。链码执行后会产生一组用于写入的键值对(写集),可以被提交到网络并应用于所有节点的账本。

账本特性¶

账本是 Fabirc 中对所有状态转换的记录,是有序并防篡改的。状态转换是参与者提交链码调用(“交易”)的结果。每个交易都会生成一组资产键值对,这些键值对以创建、更新或删除形式提交到账本。

账本由区块链(“链”)组成,用于存储区块中不可更改并有序的的记录,以及维护当前 Fabirc 状态的状态数据库。每个通道有一个账本。每个节点为其所属的每个通道维护一个账本的副本。

Fabric 账本提供的一些特性:

  • 使用基于键的查找、范围查询和组合键查询来查询和更新账本
  • 使用富查询语言进行只读查询(如果使用了 CouchDB 作为状态数据库)
  • 只读历史记录查询(查询一个键的账本历史记录)用于支持数据溯源场景
  • 交易包括链码读取键/值(读集)的版本以及链码写入键/值(写集)的版本
  • 交易包含每个背书节点的签名,并被提交给排序服务
  • 交易按顺序打包进区块,并被排序服务“分发”给通道上的节点
  • 节点根据背书策略验证交易并执行策略
  • 在附加一个区块之前,会执行一次版本检查,以确保被读取的资产的状态自链码执行以来未发生更改
  • 一旦交易被验证并提交,就不可更改
  • 一个通道的账本包含一个配置区块,用于定义策略、访问控制列表和其他相关信息
  • 通道包含 Membership Service Provider 的实例,允许从不同的证书颁发机构(CA)生成加密材料

有关数据库、存储结构和“可查询性”的更深入介绍,请参阅 账本 主题。

隐私¶

Hyperledger Fabric 的每个通道上都会有一个不可更改的账本,以及可操纵和修改资产当前状态(即更新键值对)的链码。账本存在于通道范围内,它可以在整个网络中共享(假设每个参与者都在同一个公共通道上),也可以被私有化,使其仅包括一组特定的参与者。

在后一种情况下,这些参与者会创建一个单独的通道,从而隔离他们的交易和账本。如果应用场景需要在完全透明和隐私之间寻求平衡,可以仅在那些需要访问资产状态来进行读取和写入操作的节点上安装链码(换句话说,如果一个节点没有安装链码,它将无法与账本正常交互的)。

当该通道上的组织子集需要对其交易数据保密时,可以使用私有数据集合(集合)将其隔离在私有数据库中,将其在逻辑上与通道账本分开,致使只有经授权的组织子集才能访问。

因此,通道保持广泛的网络上的交易的私密性,而集合则保持通道上的组织子集之间数据的私密性。

为了进一步模糊数据,在将交易发送到排序服务并将区块附加到账本之前,可以使用诸如 AES 之类的通用加密算法对链码内的值进行(部分或全部)加密。一旦加密数据被写入账本,它就只能由拥有用于生成密文的相应密钥的用户解密。

有关如何在区块链网络上实现隐私的详细信息,请参阅 私有数据 主题。

安全和成员服务¶

Hyperledger Fabric 支持一个交易网络,在这个网络中,所有参与者都拥有已知的身份。公钥基础设施用于生成与组织、网络组件以及终端用户或客户端应用程序相关联的加密证书。因此,可以在更广泛的网络和通道级别上实现操纵和管理数据访问控制。Hyperledger Fabric 的这种“许可”概念,加上通道的存在和其功能,有助于解决隐私和机密性要求较高的场景。

更多信息,请参阅 Security Model 主题。

共识¶

最近,在分布式账本技术中,共识已成为单个函数内特定算法的同义词。然而,共识不仅包括简单地就交易顺序达成一致,两者的区别在Hyperledger Fabric 中得到了凸显,从提案和背书到排序、验证和提交,共识在整个交易流程中都扮演着核心角色。简言之,共识被定义为组成区块的一组交易的正确性的闭环验证。

当区块中交易的顺序和结果满足明确的策略标准检查时,最终会达成共识。这些制衡措施是在交易的生命周期内进行的,包括使用背书策略来规定哪些特定成员必须背书某个交易类别,以及使用系统链码来确保这些策略得到执行和维护。在提交一个交易之前,节点会使用系统链码来确保存在足够的背书,并且来自适当的实体。此外,在将包含此交易的任何区块附加到账本之前,都会进行版本检查,以确保在此期间,账本的当前状态是能与交易中的信息达成共识的。最终检查可防止双重花费操作和可能危及数据完整性的其他威胁,并让使用非静态变量来执行函数成为可能。

除了众多的背书、验证和版本检查外,交易流的各个方向上还会发生持续的身份验证。访问控制列表是在网络的分层上实现的(排序服务到通道),并且当一个交易提议通过不同的架构组件时,有效负载会被反复签名、验证和认证。总而言之,共识并不仅仅局限于对一批交易商定顺序;相反,它的首要特征是从交易提案到提交的过程中不断进行核查而附带实现的。

查看 交易流程 以获得共识的直观表示。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

项目实战--网页五子棋(对战功能)(9)

上期我们完成了websocket建立连接后的数据初始化,今天我们完成落子交互的具体代码: 这里我们先复习一下,之前约定好的落子请求与响应包含的字段: 1. 发送落子请求 我们在script.js文件中找到落子的相关方法,增加发送请…

elementplus的cascader级联选择器在懒加载且多选时的一些问题分析

1. 背景 在之前做的一个项目中使用到了element的级联选择器,并且是需要懒加载、多选、父子不关联等等,在选的时候当然没问题,但是回显的时候就会回显不出来,相信大部分伙伴都遇到过这个问题。我在以前出过一篇文章写过关于级联选…

基于PySide6的CATIA零件自动化着色工具开发实践

引言 在汽车及航空制造领域,CATIA作为核心的CAD设计软件,其二次开发能力对提升设计效率具有重要意义。本文介绍一种基于Python的CATIA零件着色工具开发方案,通过PySide6实现GUI交互,结合COM接口操作实现零件着色自动化。该方案成…

Uniapp项目运行到微信小程序、H5、APP等多个平台教程

摘要:Uniapp作为一款基于Vue.js的跨平台开发框架,支持“一次开发,多端部署”。本文将手把手教你如何将Uniapp项目运行到微信小程序、H5、APP等多个平台,并解析常见问题。 一、环境准备 在开始前,请确保已安装以下工具…

ROS分布式部署通信

目录 一、概念 二、设置 ROS 分布式网络 1. 环境要求 2. 主机(Master)设置 3. 从机(节点设备)设置 4. 测试是否正常通信 三、进阶启动多从机节点(launch)。 一、概念 ROS 分布式通信用于在多台计算机…

qt open3dAlpha重建

qt open3dAlpha重建 效果展示二、流程三、代码效果展示 二、流程 创建动作,链接到槽函数,并把动作放置菜单栏 参照前文 三、代码 1、槽函数实现 void on_actionAlpha_triggered();//alpha重建 void MainWindow::

我的三维引擎独立开发之路:坚持与迷茫

今天终于解决了,之前开发的基于threeceisum开发的融合引擎Merge3D,引用threejs版本过低的问题,也算又前进了一步! 有人说,直接用最新版本不就行了,哎关键之前版本怎么办哪,很多不兼容性,需要一个…

【ArcGIS】地理坐标系

文章目录 一、坐标系理论体系深度解析1.1 地球形态的数学表达演进史1.1.1 地球曲率的认知变化1.1.2 参考椭球体参数对比表 1.2 地理坐标系的三维密码1.2.1 经纬度的本质1.2.2 大地基准面(Datum)的奥秘 1.3 投影坐标系:平面世界的诞生1.3.1 投…

数据分析人员需要掌握sql到什么程度?

学习SQL三个层次 熟悉基本的增删改查语句及函数,包括select、where、group by、having、order by、delete、insert、join、update等,可以做日常的取数或简单的分析(该水平已经超过90%非IT同事);掌握并熟练使用高阶语法&#xff0…

简洁实用的3个免费wordpress主题

高端大气动态炫酷的免费企业官网wordpress主题 非常简洁的免费wordpress主题,安装简单、设置简单,几分钟就可以搭建好一个wordpress网站。 经典风格的免费wordpress主题 免费下载 https://www.fuyefa.com/wordpress

golang从入门到做牛马:第一篇-我与golang的缘分,go语言简介

还记得2018年的夏天,刚毕业的我不知道该做些什么,于是自学了一周的go语言,想要找一份go语言工作的代码,当时的go还没有go mod来管理依赖包,在北京找了一个月的工作,找到了一个小公司做了后端开发,当然使用go语言开发,带着兴奋劲,年轻身体也好,边努力学习,边工作。 时…

【Python编程】高性能Python Web服务部署架构解析

一、FastAPI 与 Uvicorn/Gunicorn 的协同 1. 开发环境:Uvicorn 直接驱动 作用:Uvicorn 作为 ASGI 服务器,原生支持 FastAPI 的异步特性,提供热重载(--reload)和高效异步请求处理。 启动命令: u…

Sentinel 笔记

Sentinel 笔记 1 介绍 Sentinel 是阿里开源的分布式系统流量防卫组件,专注于 流量控制、熔断降级、系统保护。 官网:https://sentinelguard.io/zh-cn/index.html wiki:https://github.com/alibaba/Sentinel/wiki 对比同类产品&#xff1…

JQuery 语法 $

jQuery 语法是通过选取 HTML 元素, 并对选取的元素执⾏某些操作 JQuery 选择器 jQuery 中所有选择器都以 $ 开头:$(). JQuery事件 事件由三部分组成: 1. 事件源: 哪个元素触发的 2. 事件类型: 是点击, 选中, 还是修改? 3. 事件处理程序: 进⼀步如何处理. …

算法每日一练 (9)

💢欢迎来到张胤尘的技术站 💥技术如江河,汇聚众志成。代码似星辰,照亮行征程。开源精神长,传承永不忘。携手共前行,未来更辉煌💥 文章目录 算法每日一练 (9)最小路径和题目描述解题思路解题代码…

2025/3/8 第 27 场 蓝桥入门赛 题解

1. 38红包【算法赛】 签到题&#xff1a; 算倍数就行了 #include <bits/stdc.h> using namespace std; int main() {int ans0;for(int i1;i<2025;i){if(i % 3 0)ans;else if(i % 8 0)ans;else if(i % 38 0)ans;}cout<<ans<<endl;return 0; } 2. 祝福…

《白帽子讲 Web 安全》之深入同源策略(万字详解)

目录 引言 一、同源策略基础认知 &#xff08;一&#xff09;定义 &#xff08;二&#xff09;作用 &#xff08;三&#xff09;作用机制详解 二、同源策略的分类 &#xff08;一&#xff09;域名同源策略 &#xff08;二&#xff09;协议同源策略 &#xff08;三&…

基于SpringBoot的商城管理系统(源码+部署教程)

运行环境 数据库&#xff1a;MySql 编译器&#xff1a;Intellij IDEA 前端运行环境&#xff1a;node.js v12.13.0 JAVA版本&#xff1a;JDK 1.8 主要功能 基于Springboot的商城管理系统包含管理端和用户端两个部分&#xff0c;主要功能有&#xff1a; 管理端 首页商品列…

FFmpeg-chapter7和chapter8-使用 FFmpeg 解码视频(原理篇和实站篇)

解码流程如下图 流程&#xff1a;首先&#xff0c;通过 avcodec_alloc_context3(nullptr) 分配一个 AVCodecContext 结构体&#xff0c;然后使用 avcodec_parameters_to_context 将参数复制到上下文中&#xff0c;接着通过 avcodec_find_decoder 查找指定的解码器&#xff0c;并…

【银河麒麟高级服务器操作系统实例】虚拟机桥接网络问题分析及处理

更多银河麒麟操作系统产品及技术讨论&#xff0c;欢迎加入银河麒麟操作系统官方论坛 https://forum.kylinos.cn 了解更多银河麒麟操作系统全新产品&#xff0c;请点击访问 麒麟软件产品专区&#xff1a;https://product.kylinos.cn 开发者专区&#xff1a;https://developer…