blockchain
文章平均质量分 83
_noname
Ideas worth spreading.
展开
-
Ubuntu安装rocksdb4.1 并使用 pyrocksdb测试连接成功
保证gcc 和 g++ 在4.7以上gcc --versiong++ --version安装必要的库apt-get -y install build-essentialapt-get -y install libsnappy-dev zlib1g-dev libbz2-dev下载rocksdb的源码https://github.com/facebook/rocksdb/releas原创 2016-11-28 22:48:45 · 4811 阅读 · 0 评论 -
超级账本PBFT(拜占庭容错)算法详解
上一章我们从分布式系统的角度简单叙述了一下 IBM HyperLedger fabric 的一些基本概念、架构和协议信息。其中最为核心的部分就是共识算法(consensus plugin),fabric推荐并实现的就是PBFT这一经典算法。BFT算法Client会发送一系列请求给各个replicas节点来执行相应的操作,BFT算法保证所有正常的replicas节点执行相同序列的操作。因转载 2017-06-27 18:12:30 · 2082 阅读 · 0 评论 -
Hyperledger fabric0.6 peer启动过程源码分析
由图片可以看出peer启动节点后先初始化一下日志然后进入Server函数//==============================================================================//peer node start 之后做日志初始化之后就进入到server函数//==================================转载 2017-06-29 15:03:15 · 945 阅读 · 0 评论 -
Hyperledger fabric0.6的链码接口整理
1.Chaincode接口必须被所有的链上代码实现,fabric运行交易通过调用这些指定的函数 type Chaincode interface{ // 在容器建立连接之后再部署交易期间调用Init函数,准许链上代码初始化内部数据 Init(stub ChaincodeStubInterface, function string, args []string) ([转载 2017-06-29 14:39:54 · 1113 阅读 · 0 评论 -
Hyperledger fabric 源码分析之 peer 服务启动过程
peer 服务是主服务。该服务支持各种 peer 命令。包括查询状态,和启动、停止节点服务等。启动过程在 peer/main.Go 中。serve 函数最重要的是 func serve(args []string) error 函数。当执行 peer node start 命令时候被调用,启动一个节点服务。首先是进行配置管理,根据配置信息和一转载 2017-06-29 10:25:15 · 922 阅读 · 0 评论 -
fabric0.6的账本操作的整体流程分析
花了点时间整理了一下,有问题提出来沟通~fabric0.6同步流程过程 绿色注释的地方有的是一些思考,也希望能与有这方面思考的同学能有一些思想碰撞~转载 2017-06-29 10:22:04 · 676 阅读 · 0 评论 -
hyperledger fabric0.6 结构分析(三)
本文解决的问题是:本Peer节点如何接收其他节点的数据,接到数据如何处理?之前两节的分析是命令来源是CLI client,如何连接到Devops服务器、如何发送给Consensus模块、如何发送给ChainCodeSupportClient等。接下来分析本文要讨论的问题1)在进行网络初始化的过程中执行以下内容,在创建节点Engine过程中该节点作为客户端的身份连转载 2017-06-29 10:16:16 · 956 阅读 · 0 评论 -
hyperledger fabric0.6 结构分析(二)
版权声明:本文为博主原创文章,未经博主允许不得转载。接着上图分析,经过Consensus Commit流程生成批数据后,是如何送入到ChainCode呢?我们还是以Invoke命令分析。1)在consensus的helper中调用chaincode的ExecuteTransactions 进入transaction处理流程[cpp] view plain copy func转载 2017-06-29 10:13:54 · 723 阅读 · 0 评论 -
ProtoBuf 与 gRPC 你需要知道的知识
ProtoBuf 是一套接口描述语言(IDL)和相关工具集(主要是 protoc,基于 C++ 实现),类似 Apache 的 Thrift)。用户写好 .proto 描述文件,之后使用 protoc 可以很容易编译成众多计算机语言(C++、Java、Python、C#、Golang 等)的接口代码。这些代码可以支持 gRPC,也可以不支持。gRPC 是 Google 开源的 RP转载 2017-06-29 09:58:43 · 1213 阅读 · 0 评论 -
hyperledger fabric-0.6 结构分析(一)
先前分析程序着眼于细节分析,这样没有框架的概念,花了两天时间分析整理了一下hyperledger fabric的架构设计,分析该程序没有参照任何资料,如有错误欢迎指正,共同进步。笔者在详细分析程序前有以下疑问:1)CLI(命令行)客户端如何发送命令给Peer节点2)本Peer节点如何接收其他节点的数据,接收到数据又如何处理,处理的方式和1又有什么区别3)转载 2017-06-29 09:33:33 · 2708 阅读 · 0 评论 -
hyperledger fabric0.6 简析start
以下内容皆为个人理解,并未参照任何文章数据,如有理解错误,欢迎指正。程序入口:peer/main.Go在main.go中主要有四句重要代码, peer/version : peer 版本。node : 涉及本地节点的搭建,以及如何加入到网络,本机IP地址端口号,是VP节点还是NVP节点等。network转载 2017-06-28 17:59:54 · 730 阅读 · 0 评论 -
Hyperledger Fabric V1.0– 开发者快速入门
本文档演示使用Hyperledger Fabric V1.0来部署一个开发者环境并运行一个简单例子。文档包括创建和加入通道(账本)、客户端认证以及部署和调用智能合约。CLI将用于创建和加入通道(账本),NodeJS SDK将用于客户端身份验证和使用账本的智能合约功能。Docker Compose将用于创建包含三个Peer节点的联盟链、一个独立的Orderer和一个证书颁发机构(CA)。为了转载 2017-06-28 16:56:44 · 832 阅读 · 0 评论 -
Protocol Buffer技术详解(语言规范)
该系列Blog的内容主体主要源自于Protocol Buffer的官方文档,而代码示例则抽取于当前正在开发的一个公司内部项目的Demo。这样做的目的主要在于不仅可以保持Google文档的良好风格和系统性,同时再结合一些比较实用和通用的用例,这样就更加便于公司内部的培训,以及和广大网友的技术交流。需要说明的是,Blog的内容并非line by line的翻译,其中包含一些经验性总结,与此同时,对于一转载 2017-02-06 15:15:15 · 953 阅读 · 0 评论 -
chaincode:simpledemo
package mainimport ( "errors" "fmt" "strconv" "github.com/hyperledger/fabric/core/chaincode/shim")type SimpleChaincode struct {}func (t *SimpleChaincode) Init(stub shim.ChaincodeStubInter原创 2016-12-13 03:38:23 · 1833 阅读 · 4 评论 -
chaincode-hellworld
基于hyperledger-fabric 的helloworld版智能合约package mainimport ( "errors" "fmt" "github.com/hyperledger/fabric/core/chaincode/shim")type SimpleChaincode struct {}func main() { err := shim.Start原创 2016-12-12 02:50:33 · 1378 阅读 · 0 评论 -
Hyperledger Fabric1.0架构概览
Hyperledger是被业界非常看到的联盟链的实现,包括IBM、Intel、R3、各个大型商业银行等都参与其中,带给我们关于区块链技术与软件工业、金融、保险、物流等领域碰撞结合的想象空间;在这个联盟中,有超过1/4的成员都来自中国,这更是我们对于它的一举一动都非常关注。很大程度上,Hyperledger和它背后的联盟体系就代表着区块链在产业环境中的未来(仅仅个人观点,欢迎拍砖,呵呵 :-))转载 2017-06-27 18:19:08 · 620 阅读 · 0 评论