仪表板

HyperledgerCello区块

发布时间:2022/5/11 14:37:39   

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中运行的区块链网络。

Worker

Workers由Master服务管理,并帮助托管区块链。

主机(Hosts)

主机是由同一资源控制器管理的一组资源,可以是本机Docker主机、Swarm群集、Kubernetes群集或当前的某些云。

通常主机有几个属性:

Name:别名,为人类阅读方便。

DaemonURL:Docker/SwarmAccess的URL。

Capacity:主机最多可以拥有的链的数量。

LoggingLevel:此主机上链的默认日志记录级别。

LoggingType:如何处理这些日志消息。

Schedulable:此主机上的链是否可以调度给用户。

Autofill:始终使用链自动填充主机。

链通常是一个区块链集群,例如,Fabric网络。

一个链有几个属性:

Name:为人类阅读准备的别名。

Host:链所在的主机。

Size:链具有的节点数量。

Consensus:链采用什么样的共识,取决于区块链技术。

来源:文江博客(本文仅仅代表作者观点,如有侵权,请联系删除)

预览时标签不可点收录于话题#个上一篇下一篇

转载请注明:http://www.aideyishus.com/lkjg/227.html
------分隔线----------------------------

热点文章

  • 没有热点文章

推荐文章

  • 没有推荐文章