区块链
文章平均质量分 94
大壮-_-
这个作者很懒,什么都没留下…
展开
-
CentOS搭建Fabric-1.0
自2017年4月份fabric-1.0 alpha发布至今,fabric-1.0经历了alpha、alpha2、beta、rc1、1.0等版本。与fabric-0.6相比,fabric-1.0在架构和角色上发生很大变化,其节点类型分成peer、orderer、ca、client,因此,搭建fabric-1.0网络对于刚接触fabric的爱好者显得比较复杂。在对fabric-1.0各个版本进行搭建实...原创 2018-03-21 12:06:31 · 4459 阅读 · 3 评论 -
Hyperledger fabric查询区块错误问题解决:“error Entry not found in index”
最近写了一个Hyperledger Fabric区块监控的程序,功能是应用程序监听区块生成事件,并查询新生成区块的信息。然而,当客户端收到Peer发来的blockEvent事件后,调用Channel对象的queryBlockByNumber()方法时,出现了“error Entry not found in index”错误。一、错误描述在调用queryBlockByNumber()方法时,向...原创 2019-04-02 21:30:48 · 4111 阅读 · 1 评论 -
Hyperledger Fabric 2.0.0-alpha发布
由Linux基金会牵头的Hyperledger项目是目前应用范围最广的面向企业应用场景的开源分布式账本之一。作为Hyperledger项目中的顶级项目,Fabric项目在2019年4月10日发布了2.0.0-alpha版本,此版本实现了Fabric的几大重要特性,包括智能合约生命周期优化、原生Token支持、Raft共识算法支持等。1. 智能合约生命周期优化在Fabric中,智能合约被称为链...原创 2019-04-11 10:12:43 · 2470 阅读 · 0 评论 -
【翻译】Hyperledger Fabric v1.1 中的系统链码
Hyperledger Fabric v1.1提供了几个特殊的链码来执行某些特殊的任务,这些链码被称为系统链码 (System Chaincode)。本文的目的是简述这些链码的实现、功能和用法。与用户链码类似,系统链码也实现了 Init() 和 Invoke() 方法。Fabric中一共有五种合约:Configuration System Chaincode (CSCC) – core/sc...翻译 2018-08-09 15:46:12 · 1066 阅读 · 0 评论 -
拜占庭将军问题(四)——非全连接下的算法演变
前面几篇文章介绍了解决拜占庭将军问题的算法——OM(m)算法和SM(m)算法。但这个两种算法都是在一个将军能够直接与所有其他将军通信的情况下,进行讨论的。这篇文章将移除这个假设,阐述并非所有的将军都能直接通信的情况下,拜占庭将军问题算法的演变。建模所有将军组成一个有限简单无向图,图的两个节点的边以为着这两个将军可以直接发消息。现在将OM(m)算法和SM(m)算法从全连接的图扩展到多...原创 2018-04-04 18:24:13 · 1098 阅读 · 2 评论 -
拜占庭将军问题(二)——口头协议
在上一篇文章中,介绍了拜占庭将军问题的描述、条件和结论。在传输口头消息(Oral Messages)时,少于3m+1个将军中有m个叛徒时,拜占庭将军问题是无解的。Leslie在原文1中, 提出了一种传输口头消息时拜占庭将军问题的一种解法。定义首先,为定义口头消息,拜占庭将军消息系统具有以下假设: A1. 每个消息被正确发送。 A2. 消息的接收者知道是谁发送的消息 ...原创 2018-03-21 12:00:26 · 3649 阅读 · 0 评论 -
拜占庭将军问题(一)—— 引言与结论
拜占庭将军问题(The Byzantine Generals Problem)是Leslie Lamport在其同名的论文1提出的一种针对分布式对等网络中的容错问题。一个可靠的计算机系统需要能够处理一个或多个系统组件的失效。一个失效的组件可能会表现为发送错误的信息,或者因组件故障不发出信息等行为。这种类型的失效问题被称为拜占庭将军问题。Leslie在这篇论文中对拜占庭将军问题进行了描述并提出解...原创 2018-03-21 11:56:57 · 6145 阅读 · 3 评论 -
拜占庭将军问题(三)——书面协议
在上篇文章中,对口头消息算法OM(m)进行了阐述,OM(m)算法能够处理在大于3m个将军中至多存在m个叛徒的拜占庭将军问题。Leslie的论文1中,对将军之间发送不可篡改的签名消息的情况进行分析,阐述书面协议算法SM(m)。假设为了限制叛徒发送的消息,从而使拜占庭将军问题更加简单。一种方法是让每位将军发送不可伪造的签名消息。更准确的来说,在假设A1-A3的基础上添加如下假设:...原创 2018-03-23 21:24:26 · 3368 阅读 · 4 评论 -
fabric-1.0动态加入组织
fabric的组织配置信息一般是提前写在configtx.yaml文件中的,通过configtx.yaml生成系统创世区块和通道文件。而系统启动和通道创建是通过创世区块和通道文件进行的,因此要在fabric系统运行时添加组织则是非常困难的。还好,fabric-1.0提供了configtxlator工具,为动态修改fabric通道信息提供可能。本文将介绍如何利用configtxlator为fab...原创 2018-03-21 12:08:59 · 1338 阅读 · 0 评论 -
CentOS配置fabric-1.0的kafka模式
目前fabric1.0将广播服务从peer节点中分离出来,形成orderer节点,orderer节点提供原子通信保证(Atomic Communication Guarantee),也叫做有序广播(total-order broadcast)、原子广播(atomic broadcast), 共识(consensus)。即将peer节点发送过来的交易进行排序、打包为区块,然后将区块广播各个组织的pe...原创 2018-03-21 12:09:44 · 1142 阅读 · 0 评论 -
Fabric链码获取用户证书的方法
在Fabric链码开发过程中,有时候需要获取调用链码的用户信息,比如在一个数据共享的链码中,需要根据用户的信息对数据进行限制访问。幸运的是,Fabric提供了ChaincodeStubInterface接口,其中GetCreator方法可以获取提交请求的用户的相关信息。接口描述如下:// GetCreator returns `SignatureHeader.Creator` (e.g. an ...原创 2019-05-17 20:03:26 · 3734 阅读 · 3 评论