当前位置: 仪表板 >> 仪表板市场 >> HyperledgerCello区块
HyperledgerCello是一个区块链模块工具包,也是Linux基金会托管的Hyperledger项目之一。HyperledgerCello旨在为区块链生态系统提供按需“即服务”部署模型,以减少创建、管理和终止区块链所需的工作量。它在各种基础设施(例如,裸机、虚拟机和多个容器平台)之上高效且自动地提供多租户区块链服务。HyperledgerCello最初由IBM提供,赞助商来自Soramitsu、华为和英特尔。
HyperledgerCello(HLC)是一种区块链配置和操作系统,可帮助人们以更有效的方式使用和管理区块链。
基于先进的区块链技术和现代PaaS工具,Cello提供以下主要功能:
管理区块链网络的生命周期,例如,create/start/stop/delete/keephealth自动化。
支持定制的区块链网络配置,例如网络规模、共识类型。
支持多个底层基础设施,包括裸机、虚拟机、vSphere、本机Docker主机、swarm和Kubernetes。更多支持还在开发中。
通过与现有工具(如ElasticStack)集成,扩展了监控、日志记录、运行状况和分析功能等高级功能。
使用Cello,区块链开发人员可以:
从头开始快速构建区块链即服务(BaaS)平台。
立即提供可自定义的区块链,例如Hyperledgerfabricv1.x网络。
检查系统状态并管理区块链,通过仪表板上传智能合约并测试等。
在裸机、虚拟机云(例如,虚拟机、vsphere云)、容器集群(例如,Docker、Swarm、Kubernetes)之上维护一个运行中的区块链网络池。
教程基本概念先看看术语先了解基本概念。
安装一个Cello群集按照安装指南启动一个Cello群集。
之后,操作员可以通过操作员仪表板与Cello进行交互。
默认情况下,操作员仪表板将侦听主节点上的端口,默认管理员帐户为admin:pass。
添加主机第一次打开操作员仪表板时,将没有主机。有两种方法可以将更多主机添加到池中。
通过Overview页面:点击WorkingHosts后的+按钮;
通过Hosts页面:点击右上角的AddHost按钮。
然后,您将看到一个跳出的对话框,根据所选类型输入设置信息。
假设要导入本机Docker服务器,您可能需要输入这些字段
名称:docker_host
守护进程URL:(..7.:用您的docker主机地址替换它)
容量(该主机上的最大链数):5
日志记录级别:默认是DEBUG,你可以改变成INFO,NOTICE,WARNING,ERROR,CRITICAL
日志类型:默认为LOCAL
可以为群集请求调度:True或False。如果设置成True,它将安排一个链请求到该主机,这在维护主机时很有用
保持充满集群:True或False。如果设置为True,它将使用链将主机自动填充到其容量。
成功添加后,您可以在主机页面上找到docker_host,显示为0链和容量是5。
如果要创建vSphere类型主机,可以执行vSphere类型主机创建指南中的步骤。
如果要创建Kubernetes类型主机,可以执行Kubernetes类型主机创建指南中的步骤。
创建一个链现在我们在池中有了空闲主机,可以创建新链。
打开ActiveChain页面,它现在应该是空的,单击右上角的AddChain按钮,输入以下字段:
名称:test_chain
并选择主机docker_host。
单击“创建”按钮会将名称为test_chain的新链添加到池中。
然后,您可以在ActiveChain页面上看到它。
启用自动模式如果要手动创建多个链,将会很困难。Cello提供自动化方式来节省时间。
使用主机操作下拉菜单:Fillup按钮将使用链填充主机,直到其容量,而Clean按钮将清除主机中所有未使用的链。
使用“自动填充”复选框:在主机配置中,您可以找到一个保持充满集群复选框,该复选框将自动监视主机并使用链将其保持为满容量。
根据您的喜好尝试这些方法。
申请区块链默认情况下,用户仪表板将侦听主节点上的端口,操作员可以使用默认admin:pass凭据登录。或者您可以转到“注册”以创建新帐户。
点击“立即申请”以申请一个新的区块链。填写“Name”字段作为链名称,并为链类型选择“Fabric”。然后将显示一个Fabric-AdvanceConfigforconfigurations,继续选择默认配置,然后单击提交按钮以请求新的区块链。
添加智能合约默认情况下,有两个智能合约示例可用。您可以通过上传本地智能合约文件来添加新的智能合约。
mapexample
这个链代码实现了一个存储在状态中的简单映射。
以下是可用的调用函数。
put-需要两个参数,一个键和一个值,并将它们存储在状态中
remove-需要一个键并将其从状态中删除
get-需要一个参数,一个键,并返回一个值
keys-不需要参数,返回所有键
一个查询函数:
query-需要一个参数,一个键,并返回一个值
fabric-example02example
在此示例中,我们使用Init来配置账本上的变量的初始状态。该示例接受4个参数作为输入,并在账本上写入验证值。
第一个帐户名称
第一个帐户中的初始金额(整数)
第二个帐户名称
第二个帐户中的初始金额(整数)
可以使用以下操作。
Invoke-需要两个参数,一个键和一个值,并将它们存储在状态中
Query-需要一个密钥并将其从状态中删除
安装/部署智能合约单击“fabric-chaincode_example02”智能合约的“...”,然后选择“安装”。在弹出窗口中,选择要安装智能合约的链。
安装智能合约后,单击“实例化”以部署智能合约。在弹出窗口中,选择要实例化智能合约的链。然后单击“新参数”以添加四个参数,例如:“a”,“”,“b”,“”。
调用/查询智能合约在“调用”页面中,您可以按以下方式执行合约调用。
智能合约:fabric-example02
函数名称:invoke
参数:a,b,
方法:Invoke
然后我们查询当前的值a,现在应该是
操作员仪表板如果您想了解更高级的操作技能,请继续阅读操作员仪表板。
用户的仪表板如果您想了解链和智能合约的更多用法,请继续访问用户仪表板。
架构设计在这里,我们讨论主节点上管理服务的体系结构设计。
哲学和原则该架构将遵循以下原则:
微服务:意味着我们将各种功能解耦为多个独立微服务。无论服务做什么,都不会影响其他服务。
故障恢复:意味着服务应该容忍故障,例如数据库崩溃。
可伸缩性:尽量分布服务,以减轻集中化瓶颈。
功能层遵循松耦合设计,Cello中有3层。
访问层:包括用户操作的WebUI仪表板。
业务流程层:接收请求表单的Access层,并调用正确的代理来操作区块链资源。
代理层:与Docker,Swarm,K8等基础设施交互的真正workers。
每层应为上层维护稳定的API,以实现可插拔性而无需更改上层代码。
代理层API主机管理:创建、查询/列表、更新、删除、填充、清理、重置
集群管理:创建、查询/列表、启动/停止/重启、删除、重置
组件operatordashboard:为池管理员提供仪表板,也是自动维护所有内容的核心引擎。
engine:为其他系统提供restfulapi以安装/发布/列出链。
watchdog:及时检查系统状态,保持一切健康和清洁。
实现restful的相关实现基于Flask,这是一个基于Werkzeug的Web服务微框架。
选择它的原因包括:
轻量级
性能足够好
灵活扩展
代码稳定
操作员仪表板默认情况下,操作员仪表板将侦听主节点上的端口,操作员可以使用默认admin:pass凭据登录。
左边的面板使您能够快速跳转到各种功能,包括overview,systemstatus,Hosts,ActiveClusters,InusedClusters和About。
概览默认概览页面显示系统的总体状态,例如,系统中部署的主机数量、这些主机上运行的群集数量。并且主机和集群都有状态编号。
系统状态页面系统状态页面显示系统中主机和群集统计信息,如类型、活动/非活动。
主机在“主机”页面中,您可以管理池中的所有现有主机,并添加新主机。主机显示它的Type(例如,用SINGLE表示NativeDocker,或用SWARM表示DockerSwarm的),Status(活动或非活动),Chains(在主机中运行了多少个链),Cap(容量)和LogConfig(级别,接收器)。那些不可调度的主机将具有灰线
在Action下拉菜单中,您可以
填充:用链填充主机直到它达到capacity。
清除:清除主机上所有未使用的链。
配置:设置主机的配置,例如,name或capacity。
重置:重置主机上的所有内容,当您在主机上运行链遇到问题时非常有用。请注意,主机reset只有在链未使用时才能使用。
删除:从池中删除主机,然后系统将不关心它。
添加主机您可以单击该AddHost按钮将更多主机添加到池中。
活动的链该ActiveChains页面显示系统中所有运行中的链,包括其名称、类型、状态、运行状况、大小和主机。那些已使用的链会有一条灰线。
在Action下拉菜单中,您可以
开始:启动未运行的链。
停止:停止运行中的链到停止状态。
重启:重启链。
删除:删除链。
发布:将用户占用的链释放回池中,稍后将删除该池。
AddChain如果存在非充满的主机,则可以单击该按钮将更多链添加到池中。
已使用的链条过滤掉用户占用的那些正在运行的链。
用户仪表板默认情况下,用户仪表板将侦听主节点上的端口,操作员可以使用默认admin:pass凭据登录。
左边的面板使您能够快速跳转到各种功能,包括Chain,Invoke,SmartContract。
用户仪表板,安装和使用链用户可以登录用户仪表板,并安装和使用链。
链列表页面在此页面中将按用户显示所有安装的链。
链明细页面在此页面中将显示链的基本信息,例如(块高度、通道数、已安装/实例化的链码数、最近的区块/交易)、操作历史。
智能合约模板列表页面在此页面中将列出用户所有上传的智能合约模板,并支持智能合约的多版本。
智能合约模板明细信息页面在此页面中将显示智能合约模板的详细信息,包括(多版本、已部署的智能合约、部署操作)
智能合约操作页面在此页面中,用户可以调用/查询已部署的智能合约。
运行中的智能合约列表页面在此页面中将列出所有已部署的智能合约,包括(成功/失败)。
术语概述在多个服务器上部署Cello,建议至少有1个Master+N(N=1)Worker。
Master:运行Cello服务的管理节点。
Worker:用于托管区块链的平台(例如,Docker,Swarm,Kubernetes,vSphereCloud)。Worker由Master管理。
Host:典型worker的资源将由一个唯一的平台管理。通常它可以是本地的Docker主机、Swarm集群、Kubernetesclsuter或其他裸机/虚拟/容器集群。
Chain(Cluster):区块链网络,包括一定数量的peer+order节点。例如,HyperledgerFabric网络、SawthoothLake或Iroha链。
Master该Master会包含主要的Cello服务。
这是整个Cello服务的控制面板,大部分管理工作都应该在这里处理。
Master将管理在Workers中运行的区块链网络。
WorkerWorkers由Master服务管理,并帮助托管区块链。
主机(Hosts)主机是由同一资源控制器管理的一组资源,可以是本机Docker主机、Swarm群集、Kubernetes群集或当前的某些云。
通常主机有几个属性:
Name:别名,为人类阅读方便。
DaemonURL:Docker/SwarmAccess的URL。
Capacity:主机最多可以拥有的链的数量。
LoggingLevel:此主机上链的默认日志记录级别。
LoggingType:如何处理这些日志消息。
Schedulable:此主机上的链是否可以调度给用户。
Autofill:始终使用链自动填充主机。
链链通常是一个区块链集群,例如,Fabric网络。
一个链有几个属性:
Name:为人类阅读准备的别名。
Host:链所在的主机。
Size:链具有的节点数量。
Consensus:链采用什么样的共识,取决于区块链技术。
来源:文江博客(本文仅仅代表作者观点,如有侵权,请联系删除)
预览时标签不可点收录于话题#个上一篇下一篇