Hyperledger--超級(jí)賬本-學(xué)習(xí)報(bào)告17頁(yè)_第1頁(yè)
Hyperledger--超級(jí)賬本-學(xué)習(xí)報(bào)告17頁(yè)_第2頁(yè)
Hyperledger--超級(jí)賬本-學(xué)習(xí)報(bào)告17頁(yè)_第3頁(yè)
Hyperledger--超級(jí)賬本-學(xué)習(xí)報(bào)告17頁(yè)_第4頁(yè)
Hyperledger--超級(jí)賬本-學(xué)習(xí)報(bào)告17頁(yè)_第5頁(yè)
已閱讀5頁(yè),還剩6頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、Hyperledger 超級(jí)賬本學(xué)習(xí)報(bào)告 一、什么是區(qū)塊鏈? 區(qū)塊鏈的基本原理,基本組件包括:交易:對(duì)賬本狀態(tài)的改變;區(qū)塊:記錄交易和狀態(tài),是對(duì)當(dāng)前賬本狀態(tài)的一次確認(rèn);鏈:狀態(tài)變化的日志記錄。把區(qū)塊鏈作為一個(gè)狀態(tài)機(jī),則每次交易就是試圖改變一次狀態(tài),每次生成區(qū)塊就是參與者對(duì)于其中包括的所有交易改變狀態(tài)的結(jié)果確認(rèn)。 目前區(qū)塊鏈的三種發(fā)展項(xiàng)目: 分類:公開(public)鏈:任何人都可以參與使用和維護(hù),典型的如比特幣區(qū)塊鏈,信息是完全公開的。 引入許可機(jī)制后,產(chǎn)生私有(private)鏈和聯(lián)盟鏈(consortium),私有鏈:集中管理者進(jìn)行限制,只能得到內(nèi)部少數(shù)人可以使用,信息不公開。聯(lián)盟鏈:介于

2、公開鏈和私有鏈之間,由若干組織一起合作維護(hù)一條區(qū)塊鏈,該區(qū)塊鏈的使用必須是有權(quán)限的管理,相關(guān)信息會(huì)得到保護(hù),典型如銀聯(lián)組織。 二、什么是hyperledger?2015 年 12 月,Linux 基金 會(huì)牽頭,聯(lián)合 30 家初始成員共同 宣告 了Hyperledger 項(xiàng)目的成立。該項(xiàng)目的出現(xiàn),實(shí)際上宣布區(qū)塊鏈技術(shù)已經(jīng)不單純是一個(gè)開源技術(shù)了,已經(jīng)正式被主流機(jī)構(gòu)和市場(chǎng)認(rèn)可;同時(shí),Hyperledger 首次提出和實(shí)現(xiàn)的完備權(quán)限管理、創(chuàng)新的一致性算法和可拔插的框架,對(duì)于區(qū)塊鏈相關(guān)技術(shù)和產(chǎn)業(yè)的發(fā)展都將產(chǎn)生深遠(yuǎn)的影響。 目前有fabric和sawtooth Lake兩個(gè)子項(xiàng)目。fabric:包括 fa

3、bric 和 fabric-api,目標(biāo)是區(qū)塊鏈的基礎(chǔ)核心平臺(tái),支持 pbft 等新的共識(shí)機(jī)制,支持權(quán)限管理,最早由 IBM 和 DAH 發(fā)起。sawtooth Lake:包括 arcade、core、dev-tools、validator、mktplace 等。是 Intel 主要貢獻(xiàn)和主導(dǎo)的區(qū)塊鏈平臺(tái),支持全新的共識(shí)機(jī)制 Proof of Elapsed Time(PoET)。 三、hyperledger fabric項(xiàng)目的安裝部署。 系統(tǒng):Linux最新版,eg.ubuntu16.04就可以 ,官網(wǎng)可下。安裝dockerubuntu 高級(jí)版本自帶安裝包,執(zhí)行命令# 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 下載相關(guān)docker鏡像,并進(jìn)行配置。鏡像地址當(dāng)然也可以到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 是經(jīng)典的分布式一致性算法,也是 hyperledger目前最推薦的算法,該算法至少需要 4個(gè)節(jié)點(diǎn)。首先,下載 compose 文件。# git clone 此時(shí)目錄下多了一個(gè)docker-compose-files文件夾。 ()采用CLI測(cè)試手動(dòng)啟動(dòng)docker-daemon#service docker stop#sudo docker daemon -api-cors

6、-header=* -H tcp:/:2375 -H unix:/var/run/docker.sock進(jìn)入 hyperledger 項(xiàng)目,啟動(dòng)集群。# cd docker-compose-files/hyperledger# docker-compose up此時(shí)生成四個(gè)節(jié)點(diǎn),vp0,vp1,vp2,vp3。進(jìn)入節(jié)點(diǎn)vp0#docker exec -it vp0 bash部署兩個(gè)賬戶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應(yīng)當(dāng)返回100進(jìn)行交易peer chaincode invoke -n CORE_CHAINCODE_ID

8、_NAME -c Function: invoke, Args: a, b, 10交易進(jìn)行后a減少10,b增加10??稍俅尾樵凃?yàn)證交易結(jié)果。 ()Post rest測(cè)試 注:POST測(cè)試可采用postman谷歌瀏覽器插件或各種在線POST工具進(jìn)行,此處將采用curl工具,在Linux窗口進(jìn)行POST操作。 手動(dòng)啟動(dòng)docker-daemon#service docker stop#sudo docker daemon -api-cors-header=* -H tcp:/:2375 -H unix:/var/run/docker.sock打開hyperledger項(xiàng)目,啟動(dòng)pbf

9、t集群,生成節(jié)點(diǎn)#docker-compose -f docker-compose-with-membersrvc.yml up、進(jìn)行Rest 測(cè)試,登錄用戶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調(diào)用轉(zhuǎn)賬,invoke調(diào)用#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查詢調(diào)用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返回 、區(qū)塊信息查詢 URLGET localhost:5000/chain/blocks/2#curl http:/localhost:5000/chain/blocks/2 ()python客戶端交互利用Python客戶端與hyperledger進(jìn)行交互1、安裝python#pip install hyperledger -upgrade2、進(jìn)入python客戶端#python>>>from hyperledger.client

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論