区块链技术和Hyperledger Fabric介绍

1 区块链介绍

1.1 区块链技术形成

1.1.1 起源

在比特币诞生之时,技术专家们开始研究比特币的底层技术,并抽象提取出来,形成区块链技术,或者称分布式账本技术。

1.1.2 定义

简称BT(Blockchain technology),也称为分布式账本技术,是一种互联网数据库技术,其特点是去中心化、公开透明,让每个人均可参与数据库记录,同时数据不可篡改。

1.1.3 理解

把数据库比喻为一个账本,一次记账的行为就是一次数据库的读写;当产生一个数据时,在一段时间内谁最快拿到记账权的人,将由这个人来记账,然后把这个账本信息发给整个系统里的其它所有人,所有人达成共识时,本次记账有效,最终在账本上的数据谁也无权修改。

1.2 区块链技术发展

1.2.1 区块链1.0

以比特币为代表的去中心化虚拟货币,是与转账、汇款和数字化支付相关的密码学货币应用,主要以公有链方式存在。

1.2.2 区块链2.0

被广泛应用于各个金融领域,不只是单纯的虚拟货币,如股票、债券、期货、贷款、抵押、产权、智能财产和智能合约,主要以公有链、联盟链方式存在。

1.2.3 区块链3.0

被应用到除金融以外的各个领域,不再需要第三方信任认证机构的前提下,实现信息的交换和共享,达到人与人之间的信任,变革生产关系;主要以公有链、联盟链和私有链方式存在。

1.3 区块链技术基本概念

1.3.1 理解

区块链从字面上理解:数据记录在区块中,通过一定的算法把区块连成一个链。

1.3.2 核心概念

  • 交易(Transaction)

  • 区块(Block)

  • 链(Chain)

1.4 区块链技术原理

每一次交易,都需要对账本状态进行一次改变,生成一个区块,需要所有人进行确认,达成全员共识时,该区块才生效。区块链通过哈希(Hash)算法,生成一串字符串,保存在区块的头部中,一个区块通过指向上一个Hash值,加入到区块链中;Hash算法是一种加密算法,指对原始信息进行特定的转换运算,换算成对应的加密值(称为Hash值);是一种单向的加密方式,加密后的密文不可逆推,只有加密过程,没有解密过程;区块链中使用SHA-256算法对区块进行加密。

1.5 区块链工作过程

  • 交易产生

  • 交易广播

  • 节点计算

  • 获取记账权

  • 记账权广播

  • 验证区块

  • 完成记账

1.6 区块链开发平台分类

1.6.1 公有链平台

主要以以太坊为主的平台,可以在该类平台上进行代币的发行和根据各种模块搭建应用。

1.6.2 联盟链平台

主要以超级账本为主的开源系统,该类开源系统提供完善的区块链底层技术,开发者只要在其框架下进行二次开发,根据自身需求编写智能合约,通过SDK接口访问区块中的数据,实现具体的区块链业务场景。

2 超级账本(Hyperledger)介绍

2.1 超级账本起源

2.1.1 起源

开放式账本项目(Open Ledger Project)是超级账本(Hyperledger)前身,由Linux基金会于2015年发起的推进区块链数字技术和交易验证的开源项目,在2015年底IBM宣布加入到开放式账本项目(Open Ledger Project)后,该项目更名为超级账本(Hyperledger)。

2.1.2 目前

2016年12月1日,超级账本项目(Hyperledger Project)开源联盟技术指导委员会(TSC)宣布成立TWG China 中国技术工作组,促进超级账本当中的各国成员与中国贡献者和技术用户之间的交流,目前中国区成员有百度、万达、小米、华为、招商银行、民生银行等。

2.2 超级账本简介

2.2.1 定义

超级账本(Hyperledger)是推动区块链跨行业应用的开源项目的总称,组织成员可以发起新的区块链项目,加入到超级账本项目(Hyperledger)中,但需要遵循Hyperledger的生命周期。

2.2.2 流程

Hyperledger的生命周期分为五个阶段,分别为Proposal(提案)、Incubation(孵化)、Active(活跃)、Deprecated(过时)、End of Life(结束)。

2.2.3 项目

超级账本(Hyperledger)有Fabric、Sawtooth、Iroha、Blockchain Explorer、Cello、Indy、Composer、Burrow八大顶级项目,目前提到超级账本(Hyperledger)默认指Fabric。

3 Fabric介绍

3.1 Fabric简介

3.1.1 定义

Fabric是一个提供模块化分布式账本解决方案的框架。

3.1.2 交易流程

3.2 Fabric关键技术

  • 帐本(Ledger)

  • 智能合约(Smart contract)

  • 通道(Channel)

  • 节点(Peer)

  • 排序(Orderer)

  • 接口(SDK)

3.2.1 帐本(Ledger)

Fabric帐本(Ledger)是一系列有序和防篡改的状态转换的记录,结构由一个区块链构成,并将不可变的、有序的记录存放在区块中;同时包含一个状态数据库来记录当前的状态,账本的当前状态信息是链交易日志中记录过的所有键的最新值,由于当前状态表示的是通道已知的所有键的最新值,由此也被称为世界状态。

3.2.2 智能合约(Smart contract)

智能合约又称为链码,是在区块链上运行的一段代码,是应用系统与区块链底层交互的中间件,通过智能合约可以实现各种复杂的应用。

3.2.3 通道(Channel)

通道是两个节点(Peer)或多个节点之间信息通信的私有空间,在通道内的交易的数据与通道外隔绝,保证通道内数据的安全 Fabric是多通道设计,系统可以创建多条通道,某个节点(Peer)可以加入到不同的通道中,在每个通道中有自身的创世区块和实例化智能合约(Smart contract) 每个通道都有属于自己的锚节点,通过锚节点可以与其它通道进行信息交互,但本身通道内的账本不会通过一个通道传到另一个通道上,通道对账本是分离的。

3.2.4 节点(Peer)

节点(Peer)是区块链的交易处理和账本维护的主体,主要负责参与共识过程和通过执行链码(chaincode)实现对账本的读写操作。

节点(Peer)根据功能不同分为背书节点(Endorser peer)和提交节点(Committer peer),根据通讯不同分为锚节点(Anchor peer)和主节点(Leading peer)。

3.2.5 排序(Orderer)

排序(Orderer)指对区块链网络中不同通道产生的交易进行排序,并广播给节点(Peer)。排序(Orderer)是以可插拔组件的方式实现,目前分为SOLO和Kafka两种类型。 SOLO:仅有一个Orderer服务节点负责接收交易信息进行排序。

Kafka:是由Apache软件基金会开发的一个开源流处理平台,一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据,可以配置多个排序节点集群方式。

3.2.6 接口(SDK)

Fabric SDK提供调用账本(Ledger)、智能合约(Smart contract)、通道(Channel)、节点(Peer)、排序(Orderer)等接口,方便用第三方应用程序的开发,大大扩展了Fabric的应用场景。

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

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

相关文章

【递归】【后续遍历】【迭代】【队列】Leetcode 101 对称二叉树

【递归】【后续遍历】Leetcode 101 对称二叉树 解法一: 递归:后序遍历 左右中解法二: 迭代法,用了单端队列 ---------------🎈🎈对称二叉树 题目链接🎈🎈------------------- 解法一…

Eclipse - Code Templates

Eclipse - Code Templates References Window -> Preferences -> C/C -> Code Style -> Code Templates 配置默认代码模板,可以点击 Export 将自己配置好的 Code Templates 导出去,以便备份和共享。 References [1] Yongqiang Cheng, https…

MACOS上面C/C++获取网卡索引,索引获取网卡接口名

依赖函数: if_nametoindex IF名字 to IF索引 if_indextoname IF索引 to IF名字 MACOS 10.7 版本支援(就是2011年发不OSX的第一个面向用的系统版本) int GetInterfaceIndex(const ppp::string& ifrName) noexcept{if (ifrName.empt…

Docker原理及概念相关

Docker最核心的组件 image:镜像,构建容器,也可以通过Dockerfile文本描述镜像的内容。 (我们将应用程序运行所需的环境,打包为镜像文件) Container:容器 (你的应用程序,就跑在容器中 ) 镜像仓库(dockerhub)(…

应急响应实战笔记02日志分析篇(5)

第5篇:MySQL日志分析 常见的数据库攻击包括弱口令、SQL注入、提升权限、窃取备份等。对数据库日志进行分析,可以发现攻击行为,进一步还原攻击场景及追溯攻击源。 0x01 Mysql日志分析 general query log能记录成功连接和每次执行的查询,我们…

【题解】洛谷 P4423 [BJWC2011] 最小三角形

题目链接 传送门 思路 我们充分发扬人类智慧: 将所有点全部绕原点随机旋转同一个角度,然后按 x y x\times y xy 从小到大排序。 根据数学直觉,在随机旋转后,答案中的三个点在数组中肯定不会离得太远。 所以我们只取每个点…

vue 生成word表格文档 前端库介绍

在Vue中生成Word表格文档,你可以使用一些前端库来帮助你完成这项任务。以下是几个流行的库及其简要介绍: 1. **docxtemplater**: - **介绍**: docxtemplater是一个基于JavaScript的库,它可以处理docx和pptx模板,允许你通过JSON…

《白话C++》第10章 STL和boost,Page84 shared_ptr示例使用,容器中的指针

容器中的指针在容器解体时经常忘了释放&#xff1f;指针存放在容器中多次&#xff0c;结果被重复释放&#xff1f;这个问题&#xff0c;通过std::shared_ptr都可以完美地解决&#xff1a; #include <iostream> #include <list> #include <vector> #include …

如何使用Net2FTP部署本地Web网站并实现远程文件共享

文章目录 1.前言2. Net2FTP网站搭建2.1. Net2FTP下载和安装2.2. Net2FTP网页测试 3. cpolar内网穿透3.1.Cpolar云端设置3.2.Cpolar本地设置 4.公网访问测试5.结语 1.前言 文件传输可以说是互联网最主要的应用之一&#xff0c;特别是智能设备的大面积使用&#xff0c;无论是个人…

【DBeaver+mysql】如何在DBeaver中创建mysql服务的连接并新建数据库

一、创建步骤 1、下载安装mysql 8.0&#xff08;注意&#xff0c;安装过程会启动mysql服务&#xff0c;这才是能用命令行执行node处理sql语句的关键&#xff09; 下载地址&#xff1a;https://dev.mysql.com/downloads/file/?id526407 2、下载安装DBeaver数据库管理IDE 3、在…

优化线性回归模型的代价函数

目录 前言1 代价函数与线性回归模型2 单变量线性回归3 双变量线性回归4 优化过程结论 前言 线性回归是机器学习领域中最基础的模型之一&#xff0c;它通过找到最佳拟合直线来预测连续型输出变量。在线性回归中&#xff0c;代价函数&#xff08;Cost Function&#xff09;起着至…

js-前端存储之sessionStorage

1.使用场景 sessionStorage 是 Web Storage API 提供的一种客户端存储机制&#xff0c;用于在浏览器中保存会话级别&#xff08;session-level&#xff09;的数据。与 localStorage 不同&#xff0c;sessionStorage 中存储的数据在用户关闭标签页或浏览器窗口时会被清除。 2.使…

uniapp小程序因使用 uni.switchTab传不了值使用vuex(简单明了)

uniapp里面不需要npm下载vuex&#xff0c;自带vuex直接用就行 一、先建立一个index.js文件夹 里面写如以下代码 import Vue from vueimport Vuex from vuexVue.use(Vuex)const store new Vuex.Store({state: {userExt: null},mutations: {//相当于同步的操作setUserExt(sta…

查询获取SMBIOS的方法

一、用于在本地查询 SMBIOS 的示例 PowerShell 脚本 Microsoft网站参考 以下 ChassisTypes 列表是从最新的 DMTF SMBIOS 规范复制的。 # Set-ExecutionPolicy or Script Signing documentation needs to be reviewed # Current script is designed to run on individual mach…

x86下使用硬件实现的任务切换(TSS表)---使用代码讲解

实现任务切换(使用TSS) 视频讲解可以看这一个课程 • The current program, task, or procedure executes a JMP or CALL instruction to a TSS descriptor in the GDT. • The current program, task, or procedure executes a JMP or CALL instruction to a task-gate descri…

Spring Event详解

Spring Event详解 1.详细介绍2.使用场景3.注意事项4.案例分析5.代码实现6.与消息队列的区别7.SpringEvent结合线程池异步实现 1.详细介绍 Spring Event是Spring框架内建的一种发布/订阅&#xff08;Publish-Subscribe&#xff09;模式的实现&#xff0c;它允许应用内部不同组件…

并查集,真好用,一次AC不是梦!

文章目录 &#x1f680;前言&#x1f680;并查集&#x1f680;并查集的两个优化✈️路径压缩✈️按秩合并 &#x1f680;并查集代码模板 &#x1f680;前言 大家好啊&#xff01;今天阿辉来给大家介绍一种简洁而优雅的数据结构——并查集&#xff0c;不知道各位是否了解它&…

ssh连接服务器需要子网掩码吗?

IP寻址需要同时知道IP地址和子网掩码&#xff0c;但是在通过ssh连接服务器时&#xff0c;只需要知道IP地址和端口号就可以了&#xff0c;ssh通讯为什么不需要子网掩码呢。在不知道子网掩码的前提下&#xff0c;可以正确找到IP对应的主机吗&#xff1f; 不需要&#xff0c;SSH&a…

桌面显示器应用Type-C接口

随着科技的飞速发展&#xff0c;桌面显示器作为我们日常工作中不可或缺的设备之一&#xff0c;也在不断地更新换代。其中&#xff0c;Type-C接口的应用成为了桌面显示器发展的一个重要趋势。那么&#xff0c;桌面显示器应用Type-C接口究竟有什么好处呢&#xff1f; 首先&#x…

职场隐私守则:关系再好也别碰这些“雷区”

在职场中&#xff0c;与同事建立良好的关系是非常重要的&#xff0c;它有助于提高工作效率、增进团队协作&#xff0c;并且能够为日常的工作带来便利。 然而&#xff0c;即便与同事的关系再亲密&#xff0c;也有一些隐私话题是绝对不能轻易透露的。 在与同事和领导相处时&…