前沿资讯网>区块链开发>正文

区块链这个业务应用系统,估算方法以及注意的点

摘要
区块链这个业务应用系统,估算方法以及注意的点,第一个,每条业务 channel 它是有总的大小限制,这个来自于哪里呢?因为刚才讲到每个 channel 它有一套账本,

    区块链这个业务应用系统,估算方法以及注意的点,第一个,每条业务 channel 它是有总的大小限制,这个来自于哪里呢?因为刚才讲到每个 channel 它有一套账本,账本核心是 Block,记录所有的交易数据、交易历史记录,这个 Block 是以一个个 append-only 类型的文件来存储,这些文件大概是有 10 的 6 次方这样的数量上限,每个大小是 64 兆,乘下来,技术上大小上限是 61TB。刚才看到估算的这些值,但是它的上限,比如说每个 Order 或者每个 Peer,它上面的业务数据量是不能超过 block file 的上限的。


区块链业务应用系统,区块链应用系统,区块链系统


    第二个就是我们要注意到底什么东西是适合放在区块链的,这不仅仅是容量规划的问题,而是整个业务场景选择的问题,因为首先区块链的特征是适合保存证据,它不是用来作为原始的数据存储,或大数据存储的基础设施。另外的话,如果你的业务场景,频繁地去更新同一个 Key,比如银行里面转账、支付交易,那么我们就要思考这种是否适合区块链一个特质,因为区块链在业界也有一个不成文的共识,它本身不涉及用于支撑高频交易业务的。


    另外还有 Block 开销,因为刚才讲了 transaction 是封装在 Block 里面的,这个 Block 本身从数据结构上大概有 1.9KB 的基本开销,Block 数量跟 transaction 数量比例是不定的,因为有下面几个原因,看到数字货币像比特币,它的出块是根据矿工挖矿,也就做一系列的穷举计算以及做哈希计算得到一个满足难度条件的随机数等等,这是数字货币出块。但是在 Fabric 里面出块,它只需要满足这样三条标准,比如 Block 里面包含的 transaction 笔数达到上限,它就可以去出一个块。或者是 Block 里面包含的 transaction 总的 byte 字节数达到了上限,或者是从第一条 transaction 进入 Block 之后,等待时间到达上限都可以产生一个块。因为这三条标准导致了 transaction 数量与 Block 数量是没有严格的对应的关系,顺便说一句,这三个标准跟 IBM MQ 做网络批量的高效传输三条标准是基本一致的,业界有很多设计是很巧合的。


    区块链业务应用系统,区块链应用系统,区块链系统a1.jpg


    其他还有一些比较次要的考虑因素,比如说 Fabric 容器镜像开销,Fabric 涉及到容器镜像从三五百兆再到 1.5G,1.3G 都有,假如说所有的镜像单独存成文件,大概是 11G 的开销,当然如果我们把镜像存储在 Docker Registry 里面比如说 Harbor,或者是云上的镜像服务,它占的实际体积会小很多,因为基于 docker image 分层文件系统的技术。


    但是如果对企业来说可能要考虑,我要备份多少套的镜像版本来支撑业务的升级、回滚,或者是开发的需要,这是存储开销。此外还有业务应用跟其他软件的容器镜像、以及数据的存储备份等等这些开销,但这些都是相对次要的一些因素。


    区块链业务应用系统,区块链应用系统,区块链系统a2.jpg


    我们分享完第一个探索经验,下面将从运维角度,怎么对 Hyperledger Fabric 日志来实现企业级的运维分析。


    可能在座的很多同仁会有过使用 Fabric 日志的一些经验,比如说我们可以通过像 Kubernetes 控制台,去查看某一个 Peer 节点、Orderer 节点的日志信息,或者通过命令行运行 kubectl logs 或 docker logs 命令,也可以看到每个节点的容器的日志信息。但问题是这些手段满足不了企业级运维和业务分析的需求,这里所面向的对象很可能是区块链运维系统的团队,甚至某些场合下会涉及到业务相关的团队。


    区块链业务应用系统,区块链应用系统,区块链系统a3.jpg


    那么到底企业级的运维与业务分析需要怎样的 Fabric 日志的工具或者能力呢?其实这种区块链的业务系统可以结合,比如说云平台的日志服务,或者像开源的 ELK 方案去搭建出日志分析系统,去跟区块链整合起来。


    下面举几个例子说明我们需要哪些能力。第一个就是我们希望对区块链业务系统的日志实现实时索引以及动态查询的能力。比如说这个例子里面,我们是用阿里云的区块链解决方案整合了阿里云日志服务来进行示例,这里我们需要对某一个业务 Channel 来进行实时的索引查询,来看这个日志的一些分布,以及跟这个业务 Channel 相关的日志信息,可以通过关键字,以及像一些类 SQL 的查询语句来快速实现查询。


    区块链业务应用系统,区块链应用系统,区块链系统a4.jpg


    第二个例子,对企业来说,可能要对一些比较敏感的,或者是高优先级,或者是对风险有关的一些日志信息,实现自动告警的功能,并且这些告警可以去对接,比如短信,邮件,企业及时通信工具如钉钉等等一些工具。在下面这个示例中,我们就可以去对某一个区块链应用系统来设定一些告警规则,检查在某一个 Peer 节点上是否有运行某个特定,如某个高敏感性 chaincode 应用,设置这样一条规则,在配置好规则以后,后面当我业务系统一旦满足这个条件,那么就会自动通过邮件,以及短信,向用户自动发送告警,并且运维人员在告警记录里面可以看到告警的这个过程。


    区块链业务应用系统,区块链应用系统,区块链系统a5.jpg


    我们企业是希望能够获得一种关于区块链业务系统运行情况的可视化的统计图表,以及报表数据输出。这里我们做了一个图表分析,就是在这几个 Peer 节点上,我们其实是做了几个事情:在一个 Peer 上面调用了 10 次智能合约,在另一个 Peer 上面调用了 100 次智能合约。在我们实际的日志的图表分析里面,就可以看出业务调用情况的体现,因为这里基准的这些日志数量是进行账本数据同步的一些日志,那么额外的这一部分的 Delta 日志数量是对应这 10 次 chaincode 调用的,另外这部分更大的 Delta 日志数量就是在这 Peer 上进行 100 次 chaincode 调用的情况。


    这些日志分析图表可以作为业务团队去分析,比如说在不同业务区域,进入区块链业务系统流量的差别,或者说跟不同企业对接的区块链业务系统,它的流量差异等等,都可以作为一个业务分析的依据,以及说后续可以导出成 Excel 的形式。


    【免责声明】以上文章是今日小编为您介绍区块链业务应用系统的个人观点,请读者仅作参考,投资有风险,入市须谨慎!本站不拥有所有权,不承担相关法律责任。如需了解“区块链系统”请关注:【什么是区块链 http://www.whw999.com/chain/】,如若转载,请注明。


    


区块链开发(五)区块链ICO:什么是区块链ICO

区块链开发(五)区块链ICO:什么是区块链ICO,由于区块链不可篡改的特性,在众多区块链组织和公司的共同努力下,互联网将逐步从中心化的信任进化到由算法、

12月12日 18:14

区块链钱包开发,区块链钱包是什么?关于钱包的使用指南

区块链钱包开发,区块链钱包是什么?关于钱包的使用指南,而不论你是价值投资还是投机,只要入场,就一定离不开钱包。

12月11日 16:03

三、区块链技术开发,区块链开发第一个智能合约

三、区块链技术开发,区块链开发第一个智能合约,一、编写智能合约代码HelloWorld.go,go语言实现,代码很简单,每个合约包含两个方法,Init、Invoke。

12月10日 10:48

区块链钱包开发:区块链钱包设计服务流程软件程序

区块链钱包开发:区块链钱包设计服务流程软件程序,账户拥有者有一个私人密钥(秘密号码)通往他们的钱包。 此密钥是访问比特币地址的唯一途径,因此也是接收或发送信用的唯一方式。

12月09日 10:48

区块链技术开发我们的优势_区块链未来展望有哪些

区块链技术开发我们的优势_区块链未来展望有哪些,前沿资讯网打造顶尖的区块链应用开发公司,为客户量身打造区块链项目的应用,我们对于区块链游戏开发,

12月09日 10:30