Hyperledger--超级账本-学习报告17页_第1页
Hyperledger--超级账本-学习报告17页_第2页
Hyperledger--超级账本-学习报告17页_第3页
Hyperledger--超级账本-学习报告17页_第4页
Hyperledger--超级账本-学习报告17页_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Hyperledger 超级账本学习报告 一、什么是区块链? 区块链的基本原理,基本组件包括:交易:对账本状态的改变;区块:记录交易和状态,是对当前账本状态的一次确认;链:状态变化的日志记录。把区块链作为一个状态机,则每次交易就是试图改变一次状态,每次生成区块就是参与者对于其中包括的所有交易改变状态的结果确认。 目前区块链的三种发展项目: 分类:公开(public)链:任何人都可以参与使用和维护,典型的如比特币区块链,信息是完全公开的。 引入许可机制后,产生私有(private)链和联盟链(consortium),私有链:集中管理者进行限制,只能得到内部少数人可以使用,信息不公开。联盟链:介于

2、公开链和私有链之间,由若干组织一起合作维护一条区块链,该区块链的使用必须是有权限的管理,相关信息会得到保护,典型如银联组织。 二、什么是hyperledger?2015 年 12 月,Linux 基金 会牵头,联合 30 家初始成员共同 宣告 了Hyperledger 项目的成立。该项目的出现,实际上宣布区块链技术已经不单纯是一个开源技术了,已经正式被主流机构和市场认可;同时,Hyperledger 首次提出和实现的完备权限管理、创新的一致性算法和可拔插的框架,对于区块链相关技术和产业的发展都将产生深远的影响。 目前有fabric和sawtooth Lake两个子项目。fabric:包括 fa

3、bric 和 fabric-api,目标是区块链的基础核心平台,支持 pbft 等新的共识机制,支持权限管理,最早由 IBM 和 DAH 发起。sawtooth Lake:包括 arcade、core、dev-tools、validator、mktplace 等。是 Intel 主要贡献和主导的区块链平台,支持全新的共识机制 Proof of Elapsed Time(PoET)。 三、hyperledger fabric项目的安装部署。 系统:Linux最新版,eg.ubuntu16.04就可以 ,官网可下。安装dockerubuntu 高级版本自带安装包,执行命令# apt-get -y

4、install docker.io#sudo docker version /查看版本 安装docker-compose首先,安装 pip# sudo aptitude install python-pip安装 docker-compose# sudo pip install docker-compose 下载相关docker镜像,并进行配置。镜像地址当然也可以到Github官方下载。# docker pull yeasy/hyperledger:latest# docker tag yeasy/hyperledger:latest hyperledger/fabric-baseimage:l

5、atest# docker pull yeasy/hyperledger-peer:latest# docker pull yeasy/hyperledger-membersrvc:latest 使用 PBFT 模式PBFT 是经典的分布式一致性算法,也是 hyperledger目前最推荐的算法,该算法至少需要 4个节点。首先,下载 compose 文件。# git clone 此时目录下多了一个docker-compose-files文件夹。 ()采用CLI测试手动启动docker-daemon#service docker stop#sudo docker daemon -api-cors

6、-header=* -H tcp:/:2375 -H unix:/var/run/docker.sock进入 hyperledger 项目,启动集群。# cd docker-compose-files/hyperledger# docker-compose up此时生成四个节点,vp0,vp1,vp2,vp3。进入节点vp0#docker exec -it vp0 bash部署两个账户a,b分别分配100和200.#peer chaincode deploy -p chaincode_example02 -c Function:init, Args: a,100, b, 200

7、返回CORE_CHAINCODE_ID_NAME(一串地址),以如下形式:a5389f7dfb9efae379900a41db1503fea2199fe400272b61ac5fe7bd0c6b97cf10ce3aa8dd00cd7626ce02f18accc7e5f2059dae6eb0786838042958352b89fb 查询账户余额#peer chaincode query -n CORE_CHAINCODE_ID_NAME -c Function: query, Args: a应当返回100进行交易peer chaincode invoke -n CORE_CHAINCODE_ID

8、_NAME -c Function: invoke, Args: a, b, 10交易进行后a减少10,b增加10。可再次查询验证交易结果。 ()Post rest测试 注:POST测试可采用postman谷歌浏览器插件或各种在线POST工具进行,此处将采用curl工具,在Linux窗口进行POST操作。 手动启动docker-daemon#service docker stop#sudo docker daemon -api-cors-header=* -H tcp:/:2375 -H unix:/var/run/docker.sock打开hyperledger项目,启动pbf

9、t集群,生成节点#docker-compose -f docker-compose-with-membersrvc.yml up、进行Rest 测试,登录用户Jim#curl -H Content-Type: application/json -X POST -data enrollId: jim,enrollSecret: 6avZQLwcUe9b http:/localhost:5000/registrar显示如下 、chaincode部署curl -H Content-Type: application/json -X POST -data jsonrpc: 2.0,method: de

10、ploy,params: type: 1,chaincodeID:path:,ctorMsg: function:init,args:a, 1000, b, 2000,secureContext: jim,id: 1 http:/localhost:5000/chaincodeResponse如下jsonrpc: 2.0,result: status: OK,message: 28bb2b2316171a706bb2810ec35d095f430877bf443f1061ef0f60bbe753ed440700a5312c16390d3b30199fe9465c3b75d5944358caae

11、01ca81ef28128a1bfb,id: 1、chaincode调用转账,invoke调用#curl -H Content-Type: application/json -X POST -data jsonrpc: 2.0,method: invoke,params: type: 1,chaincodeID:name:28bb2b2316171a706bb2810ec35d095f430877bf443f1061ef0f60bbe753ed440700a5312c16390d3b30199fe9465c3b75d5944358caae01ca81ef28128a1bfb,ctorMsg:

12、function:invoke,args:a, b, 100,secureContext: jim,id: 3 http:/localhost:5000/chaincode Response如下:jsonrpc: 2.0,result: status: OK,message: 509b7500-96da-4411-8464-e24c61d5477d,id: 3、chaincode查询调用querycurl -H Content-Type: application/json -X POST -data jsonrpc: 2.0,method: query,params: type: 1,chai

13、ncodeID:name:28bb2b2316171a706bb2810ec35d095f430877bf443f1061ef0f60bbe753ed440700a5312c16390d3b30199fe9465c3b75d5944358caae01ca81ef28128a1bfb,ctorMsg: function:query,args:a,secureContext: jim,id: 5 http:/localhost:5000/chaincode返回 、区块信息查询 URLGET localhost:5000/chain/blocks/2#curl http:/localhost:5000/chain/blocks/2 ()python客户端交互利用Python客户端与hyperledger进行交互1、安装python#pip install hyperledger -upgrade2、进入python客户端#python>>>from hyperledger.client

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论