走进Hyperledger Fabric:企业区块链技术的简明介绍

该文章Github地址:https://github.com/AntonyCheng/blockchain-notes

在此介绍一下作者开源的SpringBoot项目初始化模板(Github仓库地址:https://github.com/AntonyCheng/spring-boot-init-template & CSDN文章地址:https://blog.csdn.net/AntonyCheng/article/details/136555245),该模板集成了最常见的开发组件,同时基于修改配置文件实现组件的装载,除了这些,模板中还有非常丰富的整合示例,同时单体架构也非常适合SpringBoot框架入门,如果觉得有意义或者有帮助,欢迎Star & Issues & PR!

1.区块链技术起源

分布式系统:弱中心化是区块链思想的核心;

P2P网络:为区块链提供了网络层基础架构;

共识算法:区块链技术的核心,实现了数据的一致存储;

密码学:为区块链数据的传输和访问安全性,完整性和无法抵赖性提供了技术支撑;

分布式数据库:区块链的物理载体;

智能合约:为区块链应用提供了无限可能;

电子现金:最近几十年来的解决方案为区块链研发提供基础;

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

2.比特币产生背景

2.1.先行货币体系的问题

政府信用担保发行:货币滥发贬值;

银行体系提供金融服务:金融危机;

2.2.比特币起源

中本聪(可能不是一个人,也可能也是一个人)在2008年提出比特币:一种点对点的电子现金系统;

总共将发行2100万个比特币,目前已生成1600万个,总市场规模在1400+亿美元左右;

迄今为止最成功的区块链应用,十多年来没有出现过一次服务暂停现象,任何交易均可被追溯,但是交易者却是匿名的;

2.3.电子货币和数字货币对比

电子货币民间数字货币
定价属性以主权货币计价以其自身价值计价
价值属性受到货币政策影响由供需决定
发行央行算法
记账多个账本单个账本
流通信息流和资金流分离信息流和资金流合一
具体案例微信支付,支付宝比特币

3.区块链技术

3.1.区块链技术演进

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

3.2.区块链的三种形态

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

3.3.区块链定义

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

3.4.区块链三大特征

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

3.5.智能合约

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

3.6.区块链技术架构

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

共识层:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

3.7.区块链技术社区

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

3.Hyperledger

3.1.Hyperledger社区

超级账本(Hyperledger)是首个面向企业应用场景的分布式账本平台,包括了:IBM、Intel、Cisco、DAH、摩根大通、R3等在内的众多科技和金融巨头的贡献参与,在银行,供应链等领域得到了广泛的关注和发展,目前已经拥有超过200家企业成员;

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

3.2.Hyperledger项目

2015年12月,由开源世界的旗舰组织Linux基金会牵头,30家初始企业成员共同宣布 Hyperledger联合项目成立。

成立之初,IBM贡献了4万多行已有的 OpenBlockchain 代码,DigitalAsset则贡献了企业和开发者相关资源,R3 贡献了新的金融交易架构,Intel也贡献了分布式账本相关的代码。

作为一个联合项目,旗下由面向不同的场景的子项目构成:包括==Fabric==、Sawtooth、lroha、Blockchain Explorer、 Cello、Indy、 Composer、 Burrow等8大顶级项目。

所有项目都遵循 Apache v2 许可,并约定共同遵守如下的基本原则:

  • 重视模块化设计:包括交易、合同、一致性、身份、存储等技术场景;
  • 重视代码可读性:保障新功能和模块都可以很容易添加和扩展;
  • 可持续的演化路线:随着需求的深入和更多的应用场景,不断增加和演化新的项目;

Hyperledger Sawtooth 是一个创建、部署和运行分布式账本的模块化平台。它包含一个 新奇的共识算法,叫做经历时间证明 (Proof of ElapsedTime,简写POET),面向大型分布式验证器群,消耗最少的资源。

Hyperledger Iroha 是为了将分布式账本技术简单容易地与基础架构型项目集成而设计的一个区块链框架项目。

Hyperledger Indy 是特别为去中心化的身份而建立的一种分布式账本。它提供了基于区块链或者其它分布式账本互操作来创建和使用独立数字身份的工具、代码库和可以重用的组件。

Hyperledger Burrow 是一个支持许可的智能合约机,burrow提供了一个模块化的区块链客户端,带一个经许可的智能合约解释器,它部分建立在以太坊虚拟机(EVM)规范的基础上。

Hyperledger Fabric 是一个带有准入机制的企业级联盟链项目,它的前身是IBM贡献的OpenBlockchain。

3.3.社区工作流

在社区开发过程中,需要了解一下社区写作过程中所需要使用的工具:

  • Linux Foundation ID
  • Jira–任务和进度管理
  • Gerrit–代码仓库和Review管理
  • RocketChat–在线沟通

安装环境:推荐在Linux或者MacoS环境中开发Hyperledger 项目代码。

  • Git:用来从Gerrit仓库获取代码并进行版本管理
  • Golang:配置Golang运行环境
  • 用来支持容器环境Docker;

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

4.Fabric

4.1.Fabric介绍

Hyperledger Fabric是一个提供分布式账本解决方案的平台。HyperledgerFabric由模块化架构支撑,并具备极佳的保密性、可伸缩性、灵活性和可扩展性。

Hyperledger Fabric被设计成支持不同的模块组件直接拔插启用,并能适应在经济生态系统中错综复杂的各种场景。

4.2.Fabirc应用场景

商业积分,利用区块链多方发行扩大参与者、使积分自由流通,吸引用户再次消费。

跨境支付与结算,减少机构之间的信任成本,降低手续费。

数据存证,版权保护,鉴别数据真伪。

4.3.Fabric名词解释

成员服务 (Membership Services),成员服务用来在许可的区块链网络上认证、授权和管理身份。

排序或者共识服务(Ordering Service) ,确认交易并将交易排序放入block。

账本 (Ledger) ,交易状态的持久化。

节点 (Node),一个网络实体用来维护Ledger,执行合约的容器。

SDK,用来和区块链网络进行交互。

4.4.Fabric基础架构

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Fabric1.X的架构优势

链码(Chaincode) 执行信任的可伸缩性,将用户自己开发的链码和系统提供的Order服务拆分,用户开发的链码和系统提供的Order服务不再是一一对应的关系,Order也可以适当容忍错误的出现,增强了系统的鲁棒性;

性能提升,拆分链码和Order的串行执行,在原有架构中,当链码执行非常耗时的时候,Order将会处于闲置状态,不利于提高系统的吞吐量,拆分以后链码和Order可以并行执行发送交易;

共识机制可以单独实现(Order);

4.5.Fabric交易流程

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

应用向单个或多个Peer节点发送对交易的背书请求;

背书节点执 ChainCode,但并不将结果提交到本地账本,只是将结果返回给应;

应收集所有背书节点的结果后,将结果播给Orderer;

Order执共识过程,并成Block,通过消息通道批量的将Block发布给Peer节点;

各个Peer节点验证交易,并提交到本地账本中。

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

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

相关文章

GPT-SoVITS语音合成服务器部署(远程访问)

GPT-SoVITS 是一个开源项目,它使用大约一分钟的语音数据便可以训练出一个优秀的TTS模型。 项目的核心技术是 Zero-shot TTS 和 Few-shot TTS。 Zero-shot TTS 可以让用户输入5秒钟的语音样本并立即体验转换后的语音,而 Few-shot TTS 则可以通过使用仅一…

静默安装OGG21.3微服务版本FOR ORACLE版本

静默安装OGG21.3微服务版本FOR ORACLE版本 silent install ogg21.3 for oracle 某度找来找去都没有找到一份可靠的静默安装OGG21.3微服务版本的案例,特别难受,为此将自己静默安装的步骤一步步贴出来分享给大家,请指点,谢谢。 至…

【赠书第20期】AI绘画与修图实战:Photoshop+Firefly从入门到精通

文章目录 前言 1 入门篇:初识Photoshop与Firefly 2 进阶篇:掌握Photoshop与Firefly的核心技巧 3 实战篇:运用Photoshop与Firefly进行创作 4 精通篇:提升创作水平,拓展应用领域 5 结语 6 推荐图书 7 粉丝福利 前…

解决谷歌浏览器最新chrome94版本CORS跨域问题

项目场景: 谷歌浏览器升级到chrome94版本出现CORS跨域问题 问题描述 解决谷歌浏览器最新chrome94版本CORS跨域问题。 CORS跨域问题: 升级谷歌浏览器最新chrome94版本后,提示Access to XMLHttpRequest at ‘http://localhost:xxxx/api’ fro…

【机器学习系列】M3DM工业缺陷检测部署与训练

一.基础资料 1.Git 地址 地址 2.issues issues 3.参考 参考 csdn 二.服务器信息 1.GPU 服务器 GPU 服务器自带 CUDA 安装(前提是需要勾选上)CUDA 需要选择大于 11.3 的版本登录服务器后会自动安装 GPU 驱动 2.CUDA 安装 GPU 服务器自带 CUDA CUDA 版本查看 3.登录信…

安装Pinia 插件 pinia-plugin-persist 添加 persist 属性时报红线解决方法

1,使用全局状态管理pinia 添加persist包红线, 网上很多都没有得到实际的解决方法。 2,接下来给大家梳理一下正确的解决方法; 首先卸载pinia-plugin-persist pnpm uninstall pinia-plugin-persist 安装pinia-plugin-persistedsta…

Git——修改历史记录详解

目录 Git1、修改历史信息1.1、启动互动模式1.2、修改Commit信息的影响1.3、取消Rebase 2、多个Commit合并位一个Commit3、一个Commit拆解成多个Commit4、在某些Commit之间插入新的Commit5、删除Commit6、调整Commit的顺序7、Revert指令7.1、取消Commit7.2、取消Revert1、再开一…

【金三银四】掌趣科技24.3.7 H项目 服务端开发笔试题

考试题型: 不定项选择题 10 道 , 填空题 10 道 , 问答题 2 道 , 编程题 4 道 目录 不定项选择题 10 道填空题 10 道问答题 2 道编程题 4 道 不定项选择题 10 道 在TCP协议中,发送方的窗口大小是由两个关键因素共同决定…

Java八股文(MyBatis Plus)

Java八股文のMyBatis Plus MyBatis Plus MyBatis Plus MyBatis Plus 是什么?它与 MyBatis 有什么区别? MyBatis Plus 是基于 MyBatis 进行扩展的一款持久层框架,它提供了一系列增强功能,简化了 MyBatis 的使用。 与 MyBatis 相比…

SpringBoot(文件上传功能,阿里云OSS存储,几种配置文件用法)【详解】

目录 一、新增员工 二、文件上传-技术点 1. 文件上传功能 1.客户端上传文件三要素 2 服务端接收文件 Controller接收文件示例 修改允许上传的文件大小 2. 本地存储文件 3. 阿里云OSS存储(这里只写一种,可以用其它的) 1.介绍 2.开通…

力扣L14--- 415.字符串相加(JAVA版)-2024年3月17日

1.题目 2.知识点 注1:你可以使用Integer.parseInt()或Double.parseDouble()等方法将字符串转换为整数或浮点数。 public class Main {public static void main(String[] args) {String str "123";int num Integer.parseInt(str);System.out.println(…

深度序列模型与自然语言处理:基于TensorFlow2实践

目录 写在前面 推荐图书 编辑推荐 内容简介 作者简介 推荐理由 写在最后 写在前面 本期博主给大家推荐一本深度学习的好书,对Python深度学习感兴趣的小伙伴快来看看吧! 推荐图书 《深度序列模型与自然语言处理 基于TensorFlow2实践》 直达链接…

iOS常见崩溃简介

1. 崩溃 多指在移动设备(如iOS、Android设备)中或不可移动设备(如:Windows、Linux等设备), 在打开或使用应用程序时出现的突然退出中断的情况(类似于Windows的应用程序崩溃)。 多表现为&#…

MySQL_数据库图形化界面软件_00000_00001

目录 NavicatSQLyogDBeaverMySQL Workbench可能出现的问题 Navicat 官网地址: 英文:https://www.navicat.com 中文:https://www.navicat.com.cn SQLyog 官网地址: 英文:https://webyog.com DBeaver 官网地址&…

使用 opencv 识别答题卡,生成填涂答案

一般答题卡设计时都在试卷4个角预留4个一样大小的黑块 仅能识别选择题判断题之类的填涂答题的题目,不能识别填空题应用题等其它主观题 使用 opencv 识别试卷图片中所有黑块,再根据黑块大小获取四个角的位置,根据四个黑块位置校正图像 将图…

【Numpy】练习题100道(51-75题)

🌻个人主页:相洋同学 🥇学习在于行动、总结和坚持,共勉! #学习笔记# Git-hub链接 目录 1.题目列表 2.题解 1.题目列表 51. 创建一个表示位置(x,y)和颜色(r,g,b)的结…

chatGLM3+chatchat实现本地知识库

背景 由于客服存在大量的问题为FAQ问题,需要精准回复客户,所以针对此类精准问题,通过自建同量数量库进行回复。 落地方案 通过chatGLM3-6Blangchain-chatchatbge-large-zh实现本地知识库库。 注意:相关介绍和说明请看官网~ 配置要…

【解读】NIST网络安全框架CSF 2.0

2014年,NIST(美国国家标准与技术研究所,类似于中国的工信部)首次发布了网络安全框架CSF(Cybersecurity Framework),十年后,在2024年2月26日发布了重大更新(CSF 2.0)&…

C++初阶:string的使用与STL

目录 1. C标准库与STL2. string是什么3. string的使用3.1 构造与拷贝构造3.2 遍历访问方式3.3 STL中算法操作相关内容3.4 容量相关成员函数3.5 内容修改相关成员函数3.6 string类操作成员函数3.7 string的非成员函数 1. C标准库与STL 编程语言标准库中,有着许多基础…

wps技巧二实现每一行文字后面统一添加数据

效果 操作 查找,输入^p 替换,输入 n m p q^p,测试数据,随意替换成你想要的 结果