二维码

14.4 使用超级账本Cello搭建区块链服务 - 数据结构 - 机器学习

1758 人阅读 | 时间:2021年01月15日 01:17
14.4 使用超级账本Cello搭建区块链服务 - 数据结构 - 机器学习 #daohang ul li t,.reed .riqi,a.shangg,a.xiatt,a.shangg:hover,a.xiatt:hover,a.shang,a.xiat,a.shang:hover,a.xiat:hover,.reed-pinglun-anniu,span.now-page,#daohangs-around,#caidan-tubiao,#daohangs,#daohangs li,#btnPost{background-color:#D10B04;} .dinglanyou1 h3{border-bottom:3px solid #D10B04;} #dibuer{border-top:2px solid #D10B04;}.cebianlan .rongqi h3{border-bottom:1px solid #D10B04;} #edtSearch{border:1px solid #D10B04;} #daohang .zuo ul li{border-right:1px solid #;} #daohang ul li t a{border-top:1px solid #;border-right:1px solid #D10B04;} #daohang ul li t a:hover{border-right:1px solid #;} #daohang .you ul li a:hover,#daohang .zuo ul li a:hover,.reed-pinglun-anniu:hover{background-color:#;} a:hover,.reed h6 a:hover,#dibuer a:hover,.reed .riqiding,.cebianlan .rongqi li a:hover,#pinglun-liebiao ul.fubens li.depth-1 dl dd span.shu a,#pinglun-liebiao ul.fubens li.depth-1 dl dd span.huifuliuyan a:hover,.reed-biaoti h6 span{color:#D10B04;} .reed .kan a{color:#0A0AF5;}.reed .kan a:hover{color:#D10101;} @media screen and (max-width:1492px){a.shang,a.xiat{background:none;} a.xiat:hover,a.shang:hover{background-color:#f9f9f9;background-image:none;text-decoration:none;}} var _hmt = _hmt || [];(function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?b19db5ba3b437a9e8698d2bc8fc64334"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s);})(); var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?b19db5ba3b437a9e8698d2bc8fc64334"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?2d748c9763cfc72fb7d1ccab29f0770d"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?f6d451f3f1be23f3abf240c64c469c1b"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })();

当前位置:首页 » 区块链精品文章 » 正文

(function() { var s = "_" + Math.random().toString(36).slice(2); document.write('
'); (window.slotbydup = window.slotbydup || []).push({ id: "u3646201", container: s }); })();
(function() { var s = "_" + Math.random().toString(36).slice(2); document.write('
'); (window.slotbydup = window.slotbydup || []).push({ id: "u3646162", container: s }); })();

14.4 使用超级账本Cello搭建区块链服务

1653 人参与  2018年09月29日 10:51  分类 : 区块链精品文章  评论

从前面的讲解中可以看到,区块链服务平台能够有效加速对区块链技术的应用,解决企业和开发者进行手动运营管理的负担。但是这些方案都是商业用途,并且只能在线使用。

超级账本的Cello项目为本地搭建区块链服务管理平台提供了开源的解决方案,可以实现在多种类型的物理资源上实现区块链网络的生命周期管理。

正如Cello的名字所蕴意,它就像一把精巧的大提琴,以区块链为琴弦,可以奏出更加动人的乐章。

14.4.1 基本架构和特性

Cello项目由笔者领导的IBM技术团队于2017年1月贡献到超级账本社区,主要基于Python和 Javascript语言编写。该项目的定位为区块链管理平台,支持部署、运行时管理和数据分析等功能,可以实现一套完整的BaaS系统的快速搭建。其基 本架构如图14-10所示。

14.4 使用超级账本Cello搭建区块链服务 - 数据结构 - 机器学习

图14-10 Cello基本架构

在实现区块链环境快速部署的同时,Cello也提供了不少对区块链平台进行运行时管理的特性,这些特性总结如下:

·管理区块链的全生命周期,包括创建、配置、使用、健康检查、删除等;

·支持多种基础架构作为底层资源池,包括裸机、虚拟机、容器云(Docker、Swarm、Kubernetes)等;

·支持多种区块链平台及自定义配置(目前以支持超级账本Fabric为主);

·支持监控和分析功能,实现对区块链网络和智能合约的运行状况分析;

·提供可插拔的框架设计,包括区块链平台、资源调度、监控、驱动代理等都很容易引入第三方实现。

下面具体介绍如何以Docker主机为资源池,用Cello快速搭建一个区块链服务平台。

14.4.2 环境准备

Cello采用了典型的主从(Master-Worker)架构。用户可以自行准备一个Master物理节点和若干个 Worker节点。其中,Master节点负责管理(例如,创建和删除)Worker节点中的区块链集群,通过8080端口对外提供网页 Dashboard,通过80端口对外提供RESTful API。Worker节点负责提供区块链集群的物理资源,例如基于Docker主机或Swarm的方式启动多个集群,作为提供给用户可选的多个区块链网络 环境。

图14-11展示了一个典型的Cello部署拓扑。每个节点默认为Linux(如Ubuntu16.04)服务器或虚拟机。

14.4 使用超级账本Cello搭建区块链服务 - 数据结构 - 机器学习

图14-11 Cello部署拓扑示例

为了支持区块链网络,Worker和Master节点需要配备足够的物理资源。例如,如果希望在一个Worker节点上能够启动至少10个区块链集群,则建议节点配置至少为8 CPU、16G内存、100G硬盘容量。

14.4.3 下载Cello源码

Cello代码的官方仓库在社区的Gerrit上,并实时同步到GitHub仓库中,读者可以从任一仓库中获取代码。例如通过如下命令从官方仓库下载Cello源码:


$ git clone http://gerrit.hyperledger.org/r/cello && cd cello


14.4.4 配置Worker节点

1.安装和配置Docker服务

首先安装Docker,推荐使用1.12或者更新的版本。可通过如下命令快速安装Docker:


$ curl -fsSL https://get.docker.com/ | sh


安装成功后,修改Docker服务配置。对于Ubuntu 16.04,更新/lib/systemd/system/docker.service文件如下:


[Service]
DOCKER_OPTS="$DOCKER_OPTS -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
   --api-cors-header='*' --default-ulimit=nofile=8192:16384 --default-ulimit=
   nproc=8192:16384"
EnvironmentFile=-/etc/default/docker
ExecStart=
ExecStart=/usr/bin/dockerd -H fd:// $DOCKER_OPTS


修改后,需要通过如下命令重启Docker服务:


$ sudo systemctl daemon-reload
$ sudo systemctl restart docker.service


2.下载Docker镜像

对于超级账本Fabric v1.0集群所需的镜像,可以使用如下命令进行自动下载:


$ cd scripts/worker_node_setup && bash download_images.sh


3.防火墙配置

为了确保Worker上的容器可以正常访问,通过如下命令确保主机开启IP转发:


$ sysctl -w net.ipv4.ip_forward=1


同时检查主机的iptables设置,确保必要的端口被打开(如2375、7050~10000等)。

14.4.5 配置Master节点

1.下载Docker镜像

使用如下命令下载运行服务所必要的Docker镜像。其中,python:3.5镜像是运行Cello核心组件的基础镜 像;mongo:3.2提供了数据库服务;yeasy/nginx:latest提供了Nginx转发功能;mongo-express:0.30镜像是 为了调试数据库,可以选择性安装:


$ docker pull python:3.5 \
   && docker pull mongo:3.2 \
   && docker pull yeasy/nginx:latest \
   && docker pull mongo-express:0.30


2.安装Cello服务

首次运行时,可以通过如下命令对Master节点进行快速配置,包括安装Docker环境、创建本地数据库目录、安装依赖软件包等:


$ make setup


如果安装过程没有提示出现问题,则说明当前环境满足了运行条件。如果出现问题,可通过查看日志信息进行定位。

3.管理Cello服务

可以通过运行如下命令来快速启动Cello相关的组件服务(包括dashboard、restserver、watchdog、mongo、nginx等):


$ make start


类似地,运行make stop或make restart可以停止或重启全部服务。

若希望重新部署某个特定服务(如dashboard),可运行如下命令:


$ make redeploy service=dashboard


运行如下命令可以实时查看所有服务的日志信息:


$ make logs


若希望查看某个特定服务的日志,可运行如下命令进行过滤,如只查看watchdog组件的日志:


$ make log service=watchdog


14.4.6 使用Cello管理区块链

Cello服务启动后,管理员可以通过Cello的Dashboard页面管理区块链。

默认情况下,可通过Master节点的8080端口访问Dashboard。默认的登录用户名和密码为admin:pass。

如图14-12所示,Dashboard有多个页面,各页面的功能如表14-1所示。

14.4 使用超级账本Cello搭建区块链服务 - 数据结构 - 机器学习

图14-12 Cello Dashboard

表14-1 Dashboard各页面的功能

14.4 使用超级账本Cello搭建区块链服务 - 数据结构 - 机器学习

1.Hosts页面

在Hosts页面,管理员可以管理所有资源池中已存在的主机,或添加新主机。表格中会显示主机的类型、状态、正在运行的区块链数量、区块链数量上限等。所有设定为non-schedulable(不会自动分配给用户)的主机会用灰色背景标识,如图14-13所示。

14.4 使用超级账本Cello搭建区块链服务 - 数据结构 - 机器学习

图14-13 Hosts页面

点击一个主机的Action下拉菜单,有如下选项可供操作该主机:

·Fillup:将主机运行的区块链数添加至上限;

·Clean:清理主机中所有未被用户占用的链;

·Config:更改主机配置,如名称和链数量上限;

·Reset:重置该主机,只有当该主机没有用户占用的链时可以使用;

·Delete:从资源池中删除该主机。

点击Hosts页面的Add Host按钮,可以向资源池中添加主机。需要设定该主机的名称、Daemon URL地址(例如,Worker节点的docker daemon监听地址和端口)、链数量上限、日志配置、是否启动区块链至数量上限、是否可向用户自动分配,如图14-14所示。

14.4 使用超级账本Cello搭建区块链服务 - 数据结构 - 机器学习

图14-14 添加主机

2.Active Chains页面

Active Chains页面会显示所有正在运行的链,包括链的名称、类型、状态、健康状况、规模、所属主机等信息。正在被用户占用的链会用灰色背景标识,如图14-15所示。

14.4 使用超级账本Cello搭建区块链服务 - 数据结构 - 机器学习

图14-15 Active Chains页面

点击一条链的Actions下拉菜单,有如下选项可供操作该链:

·Start:如果这条链处于停止状态,则启动;

·Stop:停止运行中的链;

·Restart:重新启动这条链;

·Delete:删除这条链;

·Release:将占用的链释放,随后会被删除。

点击Active Chains页面的Add Chain按钮,可以向资源池中添加更多链(如果还有未被占满的主机),如图14-16所示。

14.4 使用超级账本Cello搭建区块链服务 - 数据结构 - 机器学习

图14-16 添加链

14.4.7 基于Cello进行功能扩展

Cello已经提供了完整的区块链管理功能,并提供了图形界面和API。

用户可以通过向Cello的Master节点(默认为80端口)发送RESTful API来申请、释放区块链,或查看区块链相关信息,如其对外开放的接口,可供用户进行远程交互。RESTful API的说明可在Cello的文档中查阅。

对于区块链服务提供者,可以利用这些API为用户呈现友好的区块链申请和操作界面,在Cello的基础之上构建和实现更多功能。


来源:我是码农,转载请保留出处和链接!

本文链接:http://www.54manong.com/?id=885

(function() { var s = "_" + Math.random().toString(36).slice(2); document.write('
'); (window.slotbydup = window.slotbydup || []).push({ id: "u3646208", container: s }); })();
(function() { var s = "_" + Math.random().toString(36).slice(2); document.write('
'); (window.slotbydup = window.slotbydup || []).push({ id: "u3646147", container: s }); })();
window._bd_share_config={"common":{"bdSnsKey":{},"bdText":"","bdMini":"2","bdPic":"","bdStyle":"0","bdSize":"16"},"share":{},"image":{"viewList":["qzone","tsina","tqq","renren","weixin"],"viewText":"分享到:","viewSize":"16"},"selectShare":{"bdContainerClass":null,"bdSelectMiniList":["qzone","tsina","tqq","renren","weixin"]}};with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion='+~(-new Date()/36e5)];
区块链是什么  

微信号:qq444848023    QQ号:444848023

加入【我是码农】QQ群:864689844(加群验证:我是码农)

<< 上一篇 下一篇 >>
(function() { var s = "_" + Math.random().toString(36).slice(2); document.write('
'); (window.slotbydup = window.slotbydup || []).push({ id: "u3646186", container: s }); })();
(function() { var s = "_" + Math.random().toString(36).slice(2); document.write('
'); (window.slotbydup = window.slotbydup || []).push({ id: "u3646175", container: s }); })();
搜索

网站分类

标签列表

最近发表

    (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https'){ bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else{ bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();

全站首页 | 数据结构 | 区块链| 大数据 | 机器学习 | 物联网和云计算 | 面试笔试

var cnzz_protocol = (("https:" == document.location.protocol) ? "https://" : "http://");document.write(unescape("%3Cspan id='cnzz_stat_icon_1276413723'%3E%3C/span%3E%3Cscript src='" + cnzz_protocol + "s23.cnzz.com/z_stat.php%3Fid%3D1276413723%26show%3Dpic1' type='text/javascript'%3E%3C/script%3E"));本站资源大部分来自互联网,版权归原作者所有!

jQuery(document).ready(function($){ /* prepend menu icon */ $('#daohangs-around').prepend('
'); /* toggle nav */ $("#caidan-tubiao").on("click", function(){ $("#daohangs").slideToggle(); $(this).toggleClass("active"); }); });

©著作权归作者所有:来自ZhiKuGroup博客作者没文化的原创作品,如需转载,请注明出处,否则将追究法律责任 来源:ZhiKuGroup博客,欢迎分享。

评论专区
  • 昵 称必填
  • 邮 箱选填
  • 网 址选填
◎已有 0 人评论
搜索
作者介绍
30天热门
×
×
本站会员尊享VIP特权,现在就加入我们吧!登录注册×
»
会员登录
新用户注册
×
会员注册
已有账号登录
×