hyperledger专题

hyperledger fabric 简析start

程序入口:peer/main. Go 在main.go中主要有四句重要代码,   peer/version : peer 版本。 node :    涉及本地节点的搭建,以及如何加入到网络,本机IP地址端口号,是VP节点还是NVP节点等。 network : 远程登录devops服务器,查询所有peer节点。 chaincode : chaincode三种操作de

超级账本08:hyperledger fabric完整案例

1.fabric开发流程 需求整理合约编写合约部署合约交互外部服务编写 2.需求分析 开发一个资产转让功能模块平台功能 用户开户和销户 资产登记,解决资产上链和用户绑定资产 资产转让,资产所有权的变更 查询功能,用户查询、资产查询、资产变更历史查

超级账本07:hyperledger fabric链码案例

1.链码入门 hello.go安装链码 实例化链码 调用链码 2.账户相关链码 payment.go安装链码 实例化链码 查询账户 转账 查询账户

超级账本06:hyperledger fabric智能合约

1.智能合约 执行环境安全隔离、不受第三方干扰链码 是fabric应用层的基石,是应用层与底层的桥梁 执行环境是一个独立的docker环境 通过gRPC协议与背书节点连接,只有背书节点才会运行链码 链码的生命周期 打包 安装 实例化

超级账本05:hyperledger fabric账本存储

1.账本存储概述 peer节点账本存储图如下 左边区块链是狭义上的区块存储,底层是一个文件系统,区块并不是存储在数据库,而是直接存储为文件右下角的区块索引用于查询区块,将区块属性与区块位置关联,例如根据区块哈希、高度、交易ID查询区块区块索引的实现使用了levelDB,是一个内嵌的数据库fabric中不是一个区块单独存一个文件,所以需要区块索引去查找右上角状态数据库是区块链上的最新数据 2.

超级账本04:hyperledger fabric共识排序

1.共识机制介绍 交易背书:客户端节点根据背书策略,选择背书节点,发送交易提案,背书节点调用智能合约执行模拟交易,执行完成后,经过签名背书,返回给客户端节点,整个过程是模拟的交易排序:排序节点接收已经签名背书的交易,确定交易顺序,将排好序的交易打包成区块,分发给其他组织主节点,排序节点不会去关心交易是否正确,只负责排序和打包区块交易验证:区块存储和交易验证不冲突,区块存储前进行交易验证,fabr

Hyperledger Fabric(3) - 源码分析之Peer启动流程

1. 背景 一个区块链项目的启动通常是通过命令行拉起peer,本文主要从代码角度分析Peer的启动流程。 2. /fabric/cmd目录 从命名上看,此目录大概率存放的是项目的命令行代码文件夹 ✘ wujinquan@wujinquandeMacBook-Pro  ~/workspace/gospace/src/github.com/hyperledger/fabric/cmd  t

Hyperledger Fabric(2) - 源码分析之Config 配置模块的设计

1. 背景 一个优秀的区块链开源性项目,配置参数的读取是必不可少的。通常来讲,项目会基于现有配置读取框架上进行开发。 本文主要从源码角度探索Fabric 的配置读取原理。 2.查找相关代码 从 Hyperledger Fabric(1) - 整体架构和源码结构 文章中可知/fabric/core目录是项目的核心代码区,所以从此处入手查找配置参数的读取模块是否在其中。 果不其然/fabri

Hyperledger Fabric(1) - 整体架构和源码结构

1.背景 目前区块链处在一个底层蓬勃发展和尝试应用落地的阶段。从业务分类上大致可将区块链分为公链(BTC/ETH/EOS)、联盟链(Hyperledger Fabric)和私有链(自己使用)。 公链可理解为与币圈挂钩,也是笔者一直所在的行业,目前天朝对币圈的政策可谓是不鼓励不反对。从近几年来,国家都在鼓励区块链的发展,其实是对联盟链一个很大的鼓励信号。 由于联盟链的出发点是解决一些行业的溯源

Hyperledger Fabric 2.4 Fabric Gateway文档翻译

翻译:原文地址 Fabric Gateway是Hyperledger Fabric v2.4 在peers上增加的一项服务,为向网络提交事务提供简单的小型的API。之前客户端SDK的需求,比如从不同组织的peers中收集交易背书,在v2.4中通过使用Fabric Gateway服务,只需要一个peer运行一个应用进程即可提交事务。 写客户端应用 使用Fabric2.4,写客户端应用可以用到

区块链:Hyperledger Fabric智能合约(链码)

智能合约 区块链2.0 : 以太坊合约协议的数字化代码表达分布式有限状态机执行环境安全隔离、不受第三方干扰(EVM、Docker) 链码 Fabric应用层基石(中间件)独立的Docker执行环境背书节点gRPC连接生命周期管理 生命周期 打包安装实例化升级交互 交互流程 系统链码 LSCC(Lifecycle System Chaincode) :用于管理链码的生命周期,除了

区块链:Hyperledger Fabric账本存储

交易流程 交易模拟 -> 读写集(RWSet)交易排序交易验证 -> 状态更新 1. 交易读写集(RWSet) 读集:读取的已提交的状态键值写集:将要更新的状态键值对写集:状态键值对删除标记写集:多次更新以最后一次为准版本号: 二元组(区块高度、交易编号) 交易验证 读集版本号 == 世界状态版本号(包括未提交的前序交易)  世界状态 交易执行后的所有键的最新值显著提升链码执行效率状

区块链:Hyperledger Fabric共识排序

一、共识 交易背书(模拟 @Endorser)交易排序(排序 @Orderer)交易验证(验证 @Committer) 二、排序节点功能 1. 交易排序 目的:保证系统交易顺序的一致性solo:   单节点排序, 所见即所得kafka: 外置消息队列保证一致性 2. 区块分发 中间状态区块有效交易&无效交易 3. 多通道   三、fabric目录结构 bccsp 密码学

区块链:Hyperledger Fabric系统架构

一、系统架构 官方图 二、网络拓扑 客户端(应用程序/SDK/命令行工具)Peer(Anchor 组节点/Endorser背书节点/Committer记账节点)Orderer 排序节点CA( 可选 ) 三、交易流程 应用程序:1. 提交交易提案 背书节点:2. 模拟执行交易提案                   3. 返回模拟执行结果 应用程序:4. 提交交易(模拟执行

区块链:Hyperledger Fabric-sample入门

一、first-network的目录 其中 .env 是一些环境变量,base是docker-compose的公共服务,byfn.sh是启动脚本, configtx.yaml和crypto-config.yaml是根据两个配置文件生成相应的脚本,docker-compose用于启动网络,scripts存放测试脚本 二、生成first-network配置文件 首先使用 ./byfn.sh

区块链:Hyperledger Fabric环境配置及fabric-sample测试运行

环境准备 安装go1.11 以及以上版本安装docker 17.06.2-ce 以及以上版本安装docker-compose 1.14.0 以及以上版本git 拉下 fabric-sample 项目下载docker image镜像 具体操作: GO安装 下载压缩包   无法翻墙 可以去这个网站        https://studygolang.com/dl cd ~   wget

部署Hyperledger Fabric测试区块链网络

一. 快速启动区块链测试网络 启动Fabric虚拟机 将 fabric-samples.zip 拷贝进虚拟机 ubzip fabric-samples.zip 解压并重命名为fabric-samples  mv fabric-samples-main fabric-samples 拷贝bin和config目录 cd fabric-samplescp ~/fabric/

Hyperledger Fabric

一.Hyperledger Fabric介绍 Hyperledger区块链全家桶 Hyperledger Fabric技术特性 资产 — 资产定义使得几乎任何具有货币价值的东西都可以在网络上交 换,包括从食品到古董汽车再到货币期货。链码 — 链码执行与交易排序的分离,限制了跨节点类型所需的信任和 验证级别,优化了网络可扩展性和性能。账本特性 — 不可更改的共享账本编码记录了每个通道所有的

Hyperledger Fabric 交易流程

Transaction Flow 本文件概述了在标准资产交换期间发生的交易机制。该方案包括两个clientA和B,他们购买和销售萝卜。他们分别在网络上有一个peer,通过peer发送他们的交易并与账本交互。 假设 此流程假定通道已设置并运行。应用程序用户registe并向组织的证书颁发机构(CA)enroll,并收回了必要的加密材料,用于向网络进行身份验证。 Chaincode(包含表

Hyperledger Fabric 排序服务核心原理和工作过程

Hyperledger 源码分析之 Fabric 排序服务在超级账本 Fabric 网络中起到十分核心的作用。所有交易在发送给 Committer 进行验证接受之前,需要先经过排序服务进行全局排序。 在目前架构中,排序服务的功能被抽取出来,作为单独的 fabric-orderer 模块来实现,代码主要在 fabric/orderer 目录下。 下面以 Kafka 作为共识

Hyperledger Fabric(二)—— Fabric入门及Hello_World

Fabric入门 需要的环境 docker          (docker的安装学习请看https://mp.csdn.net/postedit/83618414)docker-composego                (go的安装学习请看https://mp.csdn.net/postedit/81138437)JDKnpm和node.js 下载fabric组件的docker镜像

Hyperledger Fabric 私有数据(2)操作流程

1. 私有数据资产转移的案例 collections_config.json文件定义了3个私有数据集合定义:assetCollection、Org1MSPPrivateCollection和Org2MSPPrivateCollection。 eg. collections_config.json文件内容 [{"name": "assetCollection","policy": "OR('

Hyperledger Fabric 私有数据(1)概念

1. 定义 允许通道内的指定的某一个组织中的部分成员可以对私有数据进行操作,而其他没有权限的节点只能知道有这么一笔交易发生而不能了解交易的细节。 1.1 什么时候需要 当所有的数据都需要在通道内的成员之间保密的时候,使用通道比较合适。当交易要在所有组织之间传播,并且要求只有通道内的部分组织成员可以查看或操作交易内的某一部分数据时,并且部分数据需要对排序节点进行保密时。 2. 属性 每一个

Hyperledger Fabric 链码(3) 生命周期和API

1. Chaincode的5个生命周期命令 链码打包链码安装 eg.peer chaincode install ccpack.out链码实例化 eg. peer.sh chaincode instantiate -n mycc -v 0 -c ‘{“Args”:[“init”,“a”,“100”,“b”,“200”]}’ -C mychannel链码升级(当链码的代码发生改变时,就需要升级链码

Hyperledger Fabric SDK(1) 概述

1. 应用通过节点的RPC协议接口访问链码 2.四种语言版本的SDK Farbric的Peer节点和Orderer节点都提供了基于gRPC协议的接口,用于和Peer节点与Orderer节点进行命令/数据交互。 Fabric提供了多种语言版本的SDK: Fabric Nodejs SDKFabric Java SDKFabric Go SDKFabric Python SDK 3. S

Hyperledger Fabric 链码(2) 接口

1.Chaincode interface:每个链码程序必须实现链码接口,用以响应接收的事务。 1.1 go语言的“shim ”包中,接口规范如下: Init:在链码实例化或者升级的时候被调用,完成数据初始化Invoke:客户端调用Invoke方法来提交交易提案,在更新或查询提案事务中分类帐本数据状态的时候被调用 type Chaincode interface {// Init is ca