亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于容器的Hyperledger Fabric多機(jī)部署研究

        2022-11-11 11:02:36柴震宇鐘旭楊碩于七龍
        電子技術(shù)與軟件工程 2022年15期
        關(guān)鍵詞:鏈碼容器集群

        柴震宇 鐘旭 楊碩 于七龍

        (東北大學(xué)秦皇島分校 計(jì)算機(jī)與通信工程學(xué)院 河北省秦皇島市 066004)

        1 引言

        Hyperledger Fabric[4]是當(dāng)前流行的企業(yè)級(jí)開源區(qū)塊鏈開發(fā)框架,具備良好的可拓展性,支持在豐富的應(yīng)用場(chǎng)景下提供服務(wù)。在實(shí)際生產(chǎn)環(huán)境中,為提高效率,一般會(huì)根據(jù)應(yīng)用場(chǎng)景將Fabric節(jié)點(diǎn)分散部署在多臺(tái)服務(wù)器中,搭建Fabric區(qū)塊鏈網(wǎng)絡(luò)過程中的復(fù)雜的環(huán)境配置通常是開發(fā)者進(jìn)行快速開發(fā)的瓶頸。針對(duì)此問題,已經(jīng)有一些實(shí)踐方案,2020年,林劍宏[5]提供了單機(jī)部署Fabric網(wǎng)絡(luò)的實(shí)踐方案,但該方案適用于初學(xué)者體驗(yàn)Fabric網(wǎng)絡(luò)系統(tǒng)核心功能,不適用于多機(jī)搭建。此外,方案[6]提出了通過指定節(jié)點(diǎn)IP的方式多機(jī)快速部署Fabric節(jié)點(diǎn),但方案無法多節(jié)點(diǎn)進(jìn)行有效管理。2019年,鐘紹柏[7]提出利用Ubuntu、Docker、Docker Compose搭建Fabric鏈碼運(yùn)行環(huán)境,并進(jìn)行鏈碼調(diào)用測(cè)試,但該方案為討論Fabric多機(jī)部署與管理情況。方案[8]提出了基于Kubernetes的云化部署,該方案管理效率較高,但Kubernetes學(xué)習(xí)難度大,且運(yùn)維成本高。

        針對(duì)管理效率與實(shí)施成本問題,本文提出了基于Docker swarm實(shí)現(xiàn)Hyperledger Fabric的容器化部署與管理。方案具有以下特點(diǎn):

        (1)利用Docker容器技術(shù)部署Fabric節(jié)點(diǎn),實(shí)現(xiàn)Fabric計(jì)算節(jié)點(diǎn)的快速部署;

        (2)利用Docker Swarm管理容器工作負(fù)載與維護(hù)集群狀態(tài),保證系統(tǒng)的高可用性與容錯(cuò)性,因swarm兼容Docker API,使得其學(xué)習(xí)成本低,同時(shí)架構(gòu)簡(jiǎn)單,部署與運(yùn)維成本低,適用于中小規(guī)模的集群管理。本方案配置簡(jiǎn)單且管理效率高效,可直接應(yīng)用于各類生產(chǎn)環(huán)境。

        2 基于Docker Swarm部署Fabric分布式網(wǎng)絡(luò)架構(gòu)

        如圖1所示為基于Docker Swarm部署Fabric分布式網(wǎng)絡(luò)拓?fù)鋱D,網(wǎng)絡(luò)具有5個(gè)排序節(jié)點(diǎn)(Orderer)、6個(gè)組織(Org),每個(gè)組織下有2個(gè)peer節(jié)點(diǎn)。其中,排序節(jié)點(diǎn)通過廣播(broadcast)接口,接收客戶端發(fā)送的交易,并將交易進(jìn)行排序;組織用于維護(hù)與管理peer節(jié)點(diǎn);組織用于管理peer節(jié)點(diǎn),當(dāng)peer節(jié)點(diǎn)較多時(shí),可通過組織統(tǒng)一管理,同時(shí),組織還為同組織內(nèi)peer節(jié)點(diǎn)通信機(jī)密性提供保護(hù);peer節(jié)點(diǎn)包含了賬本和鏈碼,并維護(hù)賬本和鏈碼、處理事務(wù)提案(transaction proposal)及響應(yīng)(proposal response),且通過不間斷申請(qǐng)更新事務(wù)使賬本適中處于最新狀態(tài)。每個(gè)排序節(jié)點(diǎn)間可相互通信,每個(gè)組織內(nèi)部節(jié)點(diǎn)及組織間也可相互通信。

        圖1:基于Docker Swarm部署Fabric分布式網(wǎng)絡(luò)拓?fù)?/p>

        系統(tǒng)中主要將Hyperledger Fabric中的各個(gè)組件不屬于Docker容器中運(yùn)行,并通過Docker Swarm作為容器編排工具實(shí)現(xiàn)集中管理各容器,同時(shí)構(gòu)造一個(gè)自定義的虛擬網(wǎng)絡(luò)實(shí)現(xiàn)內(nèi)部通信,通過docker-compose啟動(dòng)Fabric的相關(guān)組件,對(duì)運(yùn)行中的Fabric組件容器進(jìn)行管理與調(diào)度。

        方案中Docker Swarm內(nèi)置的跨主機(jī)容器通信方案是overlay網(wǎng)絡(luò),overlay通過虛擬出一個(gè)子網(wǎng),讓處于不同主機(jī)的容器能透明地使用該子網(wǎng),所以跨主機(jī)的容器通信就變成了在同一個(gè)子網(wǎng)下的容器通信,邏輯上形成同一主機(jī)下的bridge網(wǎng)絡(luò)通信。構(gòu)建Hyperledger Fabric分布式網(wǎng)絡(luò)的核心在于使各個(gè)節(jié)點(diǎn)都處于同一個(gè)overlay網(wǎng)絡(luò)中,使其中的有關(guān)組件能夠與其他分布式節(jié)點(diǎn)進(jìn)行通信。

        2.3 兩組心率變異性和心率減速力指標(biāo)分析 研究組SDNN、SDANN、RMSSD、LF、HF及心率減速力水平明顯低于對(duì)照組,差異有統(tǒng)計(jì)學(xué)意義(P<0.05),見表3。

        如表1所示為圖1中網(wǎng)絡(luò)節(jié)點(diǎn)地址規(guī)劃,基于Fabric多機(jī)使用環(huán)境,表1中每一個(gè)主機(jī)用于構(gòu)建一個(gè)組織(Org),即每個(gè)組織對(duì)應(yīng)一個(gè)IP地址,組織間可通過物理網(wǎng)絡(luò)通信,組織內(nèi)部的peer節(jié)點(diǎn)通過overlay網(wǎng)絡(luò)相互通信,每個(gè)peer不對(duì)應(yīng)具體IP地址,peer之間通過虛擬內(nèi)網(wǎng)間有效的域名通信。

        表1:網(wǎng)絡(luò)節(jié)點(diǎn)地址

        3 系統(tǒng)實(shí)施

        3.1 實(shí)施流程

        如圖2所示為系統(tǒng)部署流程,主要內(nèi)容有:

        圖2:應(yīng)用部署流程

        (1)安裝Docker并拉取鏡像:安裝Docker及與應(yīng)用有關(guān)依賴軟件、拉取基本鏡像為前置條件,本方案中為Hyperledger Fabric官方鏡像;

        (2)組建Docker Swarm集群:將各個(gè)服務(wù)主機(jī)加入相同的Docker Swarm集群中;

        (3)創(chuàng)建overlay network:各個(gè)節(jié)點(diǎn)所需要共同加入overlay network,以實(shí)現(xiàn)節(jié)點(diǎn)間通信;

        (4)配置Docker-compose文件:該文件定義了需要管理的服務(wù)與相關(guān)環(huán)境,本文中主要為Hyperledger Fabric中的orderer節(jié)點(diǎn)、peer節(jié)點(diǎn)與客戶端(Client)控制臺(tái);

        (5)啟動(dòng)Docker節(jié)點(diǎn):配置完畢后,可用上一步生成的Docker-compose的相關(guān)文件啟動(dòng)Docker容器,容器內(nèi)部運(yùn)行節(jié)點(diǎn)服務(wù);

        (6)應(yīng)用部署:該流程部署相關(guān)的Hyperledger fabric分布式應(yīng)用,到此為止,Hyperledger Fabric的分布式網(wǎng)絡(luò)就構(gòu)建完畢,開發(fā)者可基于此開發(fā)應(yīng)用程序。

        3.2 實(shí)施步驟

        方案測(cè)試環(huán)境采用6臺(tái)虛擬機(jī)用于分布式節(jié)點(diǎn)部署,節(jié)點(diǎn)操作系統(tǒng)為Ubuntu20.04,分配1核(vCPU),2G內(nèi)存,20G硬盤。部署操作主要參考圖2中的核心流程,部署中的核心步驟如下所示:

        (1)環(huán)境安裝與鏡像拉取,在每一個(gè)組織(Org)的主機(jī)中拉取docker、docker swarm鏡像,拉取成功后可驗(yàn)證相關(guān)組件版本信息,如圖3所示為主機(jī)中Docker版本信息,如圖4所示為Docker compose,如圖5所示為Docker images的版本信息,為了保持系統(tǒng)安全性與可擴(kuò)展性,各類基礎(chǔ)組件安裝時(shí)應(yīng)選擇穩(wěn)定版本部署。

        圖3:Docker版本

        圖4:Docker-compose版本

        圖5:Docker images信息

        (2)組建Docker swarm集群。在各個(gè)主機(jī)中分別通過“docker swarm init --advertise-addr <host-1 ip address>”、“docker swarm join-token manager”、“<o(jì)utput from jointoken manager> --advertise-addr <host-2 ip address>”命令構(gòu)建Docker swarm,部署成功可查看部署后的集群。如圖6所示為通過“docker node ls”查看本項(xiàng)目中集群節(jié)點(diǎn)信息,其中,每個(gè)節(jié)點(diǎn)的“Ready”狀態(tài)代表節(jié)點(diǎn)狀態(tài)正常,管理狀態(tài)(MANAGER STATUS)為“Leader”表示該節(jié)點(diǎn)可進(jìn)行集群任務(wù)調(diào)度,當(dāng)Leader節(jié)點(diǎn)發(fā)生故障時(shí),其它主機(jī)將重新推舉產(chǎn)生新的Leader管理集群。

        圖6:Docker swarm集群

        (3)創(chuàng)建overlay network。在主機(jī)中通過“docker network create --attachable --driver overlay basic-network”命令構(gòu)建overlay網(wǎng)絡(luò),如圖7所示為構(gòu)建網(wǎng)絡(luò)完畢后通過“docker network ls”命令查看網(wǎng)絡(luò)信息,其中,DRIVER為“overlay”、SCOPE為“swarm”的網(wǎng)絡(luò)為新建的overlay network。創(chuàng)建overlay network之后,運(yùn)行在多個(gè)節(jié)點(diǎn)(nodes)上的容器(container)可通過內(nèi)部網(wǎng)絡(luò)進(jìn)行通信與訪問。

        圖7:創(chuàng)建overlay network的目錄

        (4)配置Docker-compose文件。如表2所示為各主機(jī)的Docker-compose文件與節(jié)點(diǎn)信息,compose文件是一個(gè)YAML文件,用于定義services、network和volumes等參數(shù)。本方案中有6臺(tái)主機(jī),對(duì)應(yīng)需要配置6臺(tái)主機(jī)的dockercompose文件。配置相關(guān)文件可啟動(dòng)Hyperledger Fabric節(jié)點(diǎn)。

        表2:主機(jī)Docker-compose文件

        (5)啟動(dòng)節(jié)點(diǎn)。在各主機(jī)輸入“docker-compose -f < hostn.yaml> -f <o(jì)rdern.yaml> up -d”命令啟動(dòng)節(jié)點(diǎn),其中“-f”參數(shù)表示指定文件,“-d”參數(shù)表示后臺(tái)啟動(dòng)。如圖8所示,為節(jié)點(diǎn)啟動(dòng)成功后在Host1中通過“docker ps -a”命令查看容器運(yùn)行情況,其中,STATUS為“up”表示節(jié)點(diǎn)正常啟動(dòng)與運(yùn)行。

        圖8:Host 1節(jié)點(diǎn)啟動(dòng)情況

        (6)應(yīng)用部署。根據(jù)Hyperledger Fabric的業(yè)務(wù)流程,首先需要完成加入通道(peer channel join)、更新錨節(jié)點(diǎn)(peer channel update)、安裝鏈碼(install chaincode)、審批鏈碼(approve chaincode)、提交鏈碼(commit chaincode)、初始化鏈碼(init chaincode)等步驟完成之后,才能進(jìn)入業(yè)務(wù)核心流程調(diào)用鏈碼。其中,通道分為系統(tǒng)通道與應(yīng)用通道,分別用于傳輸管理與交易信息;錨節(jié)點(diǎn)是每個(gè)組織中若干個(gè)peer節(jié)點(diǎn)的代表,負(fù)責(zé)與其它組織通信;安裝鏈碼即部署Fabric智能合約,鏈碼被編譯成一個(gè)獨(dú)立的應(yīng)用程序,運(yùn)行于隔離的Docker容器中;審批鏈碼用于允許向通道提交鏈碼,F(xiàn)abric中需要超過一般的組織審批鏈碼后才可向通道提交鏈碼;鏈碼的初始化只需要執(zhí)行一次,在任意節(jié)點(diǎn)上執(zhí)行即可。

        如圖9所示為Fabric多機(jī)部署測(cè)試,部署完畢后,可驗(yàn)證各排序節(jié)點(diǎn)間與組織內(nèi)部節(jié)點(diǎn)間網(wǎng)絡(luò)是否暢通,圖9(a)為驗(yàn)證排序節(jié)點(diǎn)間網(wǎng)絡(luò)連接,圖9(b)為驗(yàn)證組織內(nèi)部節(jié)點(diǎn)間網(wǎng)絡(luò)連接。

        圖9

        以上部署及測(cè)試結(jié)果表明,基于Docker Swarm的Hyperledger Fabric多機(jī)部署具有可行性。因Docker swarm是Docker官方社區(qū)開發(fā)的原生集群管理工具,其使用標(biāo)準(zhǔn)的docker API,使得Docker swarm學(xué)習(xí)成本低,同時(shí)架構(gòu)簡(jiǎn)單,運(yùn)維成本低,有利于快速部署與二次開發(fā)。

        4 結(jié)束語

        本文針對(duì)Fabric多機(jī)的管理效率低與實(shí)施成本高問題,研究了基于容器技術(shù)的Hyperledger Fabric的多機(jī)部署,并通過實(shí)驗(yàn)的方式驗(yàn)證了有關(guān)Hyperledger Fabric節(jié)點(diǎn)在Docker Swarm的容器編排管理的可行性。方案具有可快速部署、易于管理等特點(diǎn),針對(duì)于普通規(guī)模的Fabric集群部署與管理具有一定優(yōu)勢(shì),且可直接應(yīng)用于各類生產(chǎn)環(huán)境。方案未對(duì)部署規(guī)模較大集群效率與性能進(jìn)行測(cè)試,下一步將針對(duì)規(guī)模較大集群時(shí)的精細(xì)管理做出探索。

        猜你喜歡
        鏈碼容器集群
        Different Containers不同的容器
        難以置信的事情
        海上小型無人機(jī)集群的反制裝備需求與應(yīng)對(duì)之策研究
        一種無人機(jī)集群發(fā)射回收裝置的控制系統(tǒng)設(shè)計(jì)
        電子制作(2018年11期)2018-08-04 03:25:40
        一種新壓縮頂點(diǎn)鏈碼
        Python與Spark集群在收費(fèi)數(shù)據(jù)分析中的應(yīng)用
        勤快又呆萌的集群機(jī)器人
        取米
        基于鏈碼特征的幾何圖形快速識(shí)別算法*
        無損鏈碼技術(shù)的分析與比較
        亚洲精品久久久久高潮| 久草青青91在线播放| 国产精品久久久久久一区二区三区| 少妇特黄a一区二区三区| 免费看国产成年无码av| 大屁股流白浆一区二区| 亚洲va视频一区二区三区| 影音先锋男人av鲁色资源网| 天天操夜夜操| 国产人妖xxxx做受视频| 亚洲一区二区在线观看av| 天天爽夜夜爽人人爽| 亚洲一区av无码少妇电影| 久久久久久久久国内精品影视| av中文字幕性女高清在线| 肉色丝袜足j视频国产| 欧美疯狂做受xxxx高潮小说| 国产三级黄色在线观看| 视频一区精品中文字幕| 高h喷水荡肉爽文np肉色学校| 国产成人无码免费看片软件| 99久久精品一区二区三区蜜臀| 亚洲第一大av在线综合| 极品尤物一区二区三区| 成人做爰视频www| 精品三级久久久久久久| 91久久香蕉国产熟女线看| 18精品久久久无码午夜福利| 人妻在卧室被老板疯狂进入国产 | 色综合久久精品中文字幕| 99久久精品无码一区二区毛片| 久久精品无码专区免费青青| 欧美精品日韩一区二区三区| 日本视频在线播放一区二区| 偷国产乱人伦偷精品视频| 亚洲Va欧美va国产综合| 自拍视频在线观看成人| 日韩亚洲精品中文字幕在线观看| 内谢少妇xxxxx8老少交| 99久久久精品免费| 蜜桃视频在线免费视频|