区块链
Physicaloser
博客主页:https://zhayujie.com
个人邮箱:zyj@zhayujie.com
展开
-
Hyperledger Fabric基础概念介绍
Hyperledger fabric是Linux Foundation主办的超级账本项目下的开源项目之一,旨在提供一个模块化的区块链解决方案的支撑平台。概述一、区块链的共有特性**1.分布式存储(Distributed Ledger):**所有节点共同维护完全一致的账本数据,区块以保存前一个区块Hash值的方式顺序相连,组成了链式数据结构,保证了数据的不可篡改。**2.共识机制(Consensus Protocol):**fabric v1.0以后使用的是交易背书、交易排序和交易验证共同构成的.原创 2020-05-25 10:52:19 · 1811 阅读 · 0 评论 -
Fabric chaincode测试 —— 开发者模式和单元测试
在fabric开发中,chaincode的测试是一个令人比较头疼的问题,一是由于实际情况中chaincode中的存储和查询是依赖于peer节点上的状态数据库的,所以无法在本地直接测试;二是由于chaincode是运行于容器中的,这导致我们很难获取在代码中打印的日志。原创 2018-12-01 20:12:45 · 6228 阅读 · 12 评论 -
Hyperledger fabric修改组织和通道的名称
组织(Org)和通道(Channel)的名称是fabric网络比较重要的两个配置参数,在fabric提供的示例中都已经设置好了这两个参数,一般组织名为"Org1"和"Org2",通道名为"mychannel"。而在实际应用开发中通常需要自定义组织和通道的名称,这里以最接近实际应用的balance-transfer为例说明如何自定义设置组织和通道名称。##前言Fabric网络在启动前会通过二进..原创 2018-11-19 16:56:08 · 1819 阅读 · 3 评论 -
Hyperledger fabric应用的多机部署(自动化一键部署)
前面关于fabric部署的介绍都是基于单机环境下的,实际生产环境中一般会根据应用场景将节点分开部署在多台物理机上,面临的难题主要是不同主机间的节点如何通过网络进行通信。前言这里仍然以balance-transfer v1.0为例,尝试将两个组织分布到内网中的两台机器上,部署示意图如下:这里使用的是solo模式的排序服务,orderer节点和Org1位于一台机器上,Org2位...原创 2018-09-08 14:21:00 · 6269 阅读 · 10 评论 -
Hyperledger fabric使用SDK动态增加组织
在fabric网络运行过程中动态追加新的组织是相当复杂的,网上的资料也十分匮乏,大多是基于first-network这样的简单示例,而且是使用启动cli容器的方法来增加组织,几乎没有针对实际应用的解决方案。本文介绍了如何在应用程序中调用SDK来进行组织的动态增加。前言首先需要介绍一个配置区块的概念,fabric中的配置信息是作为区块写在链上的,每个配置区块中只有一条配置交易,而且配...原创 2018-09-08 14:17:35 · 4569 阅读 · 3 评论 -
Hyperledger fabric在现有组织中增加节点
fabric网络在创建时就已经确定了初始的节点数量,而在实际应用场景中可能会需要在某个组织中动态增加节点。这里以balance-transfer v1.0为例(2 Org,4 Peer),介绍如何在org1中加入第3个peer节点。一、追加新节点的身份信息首先需要在组织org1的MSP目录中追加新节点的证书和私钥信息,主要是用到cryptogen工具(v1.1.0以上版本)1....原创 2018-09-08 14:13:41 · 5528 阅读 · 10 评论 -
Hyperledger Fabric——balance transfer(六)查询
balance transfer 提供了很多查询接口,包括链码查询,根据区块号查询区块数据,根据交易ID查询交易信息,查询链上的区块数,查询已安装或已实例化的链码,查询通道。源码解析1.调用链码查询:调用指定背书节点上部署的chaincode进行查询操作,该方法只会发送交易提案到目标节点,并不会产生新的交易。...原创 2018-06-22 16:19:17 · 3233 阅读 · 0 评论 -
Hyperledger Fabric——balance transfer(五)执行交易
链码安装和实例化之后就可以调用chaincode执行交易,下面分析简单的账户转账操作是如何完成的。源码分析1.首先看app.js的路由函数app.post('/channels/:channelName/chaincodes/:chaincodeName', async function(req, res) { var peers = req.body.peers;...原创 2018-05-15 17:00:34 · 1593 阅读 · 0 评论 -
Fabric CA的部署与使用
Fabric CA是Hyperledger Fbric的证书认证中心,提供以下功能:用户信息的登记与注册,数字证书的颁发与管理。前言之前使用CA服务一直是在docker容器中运行下载好的CA镜像,在应用程序中通过Node SDK中集成的接口来访问CA服务器,这次尝试手动部署CA服务;Fabric CA由服务端和客户端组件组成,CA服务端(fabric-ca-server)可...原创 2018-05-07 12:07:25 · 10113 阅读 · 2 评论 -
Hyperledger Fabric——balance transfer(四)安装和实例化chaincode
详细解析blance transfer示例的安装(install)和实例化(Instantiate)链码(chaincode)的过程。安装chaincode会根据本地的链码文件生成chaincode镜像,实例化chaincode则会启动该镜像,使链码在docker容器中运行。安装chaincode1.首先看app.js中的路由函数原创 2018-05-14 17:17:45 · 2075 阅读 · 0 评论 -
Hyperledger fabric MSP成员管理
Hyperledger fabric 1.0 基于 PKI(Public Key Infrastructure)体系,引入了MSP模块(Membership Service Provider): 成员管理服务提供商,生成数字证书来标识和管理成员的身份。Fabirc的成员身份基于标准的X.509证书,密钥使用的是ECDSA算法,利用PKI体系给每个成员颁发数字证书,通道内只有相同MSP内...原创 2018-05-03 11:27:43 · 4788 阅读 · 0 评论 -
Hyperledger Fabric——balance transfer(三)创建和加入Channel
详细解析blance transfer示例的创建通道(Channel)和加入节点到通道的过程。创建Channel1.首先看app.js的路由函数var createChannel = require('./app/create-channel.js');app.post('/channels', async function(req, res) { // 接收...原创 2018-04-24 17:31:56 · 4074 阅读 · 0 评论 -
Hyperledger Fabric——balance transfer(二)注册用户
详细分析blance transfer示例的用户注册(register)与登录(enroll)功能。源码分析1.首先分析项目根目录的app.js文件中关于用户注册和登录的路由函数。注意这里的token很重要,在之后的请求中,只要在请求头中附上token,js的路由函数就能直接获取其中的参数:req.username,req.orgName// 注册和登录用户app.p...原创 2018-03-28 19:31:22 · 4442 阅读 · 5 评论 -
Hyperledger Fabric——balance transfer(一)启动示例
Blacne transfer是Hyperledger fabric Node SDK的一个示例应用,主要使用了SDK中fabric-client 和 fabric-ca-client 模块中的API,实现了与Fabric网络交互的各种操作。先决条件Docker - v1.12 or higherDocker Compose - v1.8 or higherGit - ...原创 2018-03-27 09:00:40 · 2739 阅读 · 4 评论 -
Hyperledger Fabric Node SDK和应用开发
Hyperledger Fabric 提供了多种语言的SDK版本,其中提出比较早、比较稳定而全面的是Node.js版本的SDK。SDK和Chaincode的关系:SDK存在于客户端层面,主要用于与网络中各组件的交互,包括peer,orderer,event,channel,chaincode,提供丰富的API便于开发者编写应用程序。Chaincode处于更底层,提供Query,...原创 2018-03-23 21:41:45 · 2035 阅读 · 0 评论 -
Ubuntu下配置Hyperledger Fabric环境
在win10系统的台式机上安装配置Hyperledger Fabric环境安装Ubuntu 16.04 双系统 镜像下载地址:https://www.ubuntu.com/download/desktop 安装教程:http://www.cnblogs.com/Duane/p/5424218.html 注意:这里设置了/boot分区并作为启动引导器以保留win10系统的引导,注...原创 2018-03-20 18:03:58 · 2771 阅读 · 0 评论 -
Hyperledger Fabric开发(一):环境配置
运行fabric-samples项目中的一个例子:first-network,创建第一个网络(Building Your First Network)。 该网络共有4个peer节点,划分为2个组织(organizations),以及1个单独的orderer节点,另外还需要一个容器来执行创建和加入channel、部署和执行chaincode等命令。 运行该例子需要下载的文件有:fabric原创 2018-03-01 10:02:48 · 768 阅读 · 0 评论 -
Hyperledger Fabric开发(二):创建网络
运行fabric-samples项目中的一个例子:first-network,创建第一个网络(Building Your First Network)。 该网络共有4个peer节点,划分为2个组织(organizations),以及1个单独的orderer节点,另外还需要一个容器来执行创建和加入channel、部署和执行chaincode等命令。 运行该例子需要下载的文件有:fa...原创 2018-03-01 16:54:25 · 2298 阅读 · 3 评论 -
Python创建一个简单的区块链
区块链(Blockchain)是一种分布式账本(listributed ledger),它是一种仅供增加(append-only),内容不可变(immutable)的有序(ordered)链式数据结构,该数据结构由网络中的一系列节点共同维护,并且这些节点之间互不信任。区块链是如今盛行的Bitcoin,Ethereum等数字货币背后的底层技术,本文通过Python从0开始创建一个简单的区块链模...原创 2018-03-07 16:30:20 · 1420 阅读 · 0 评论