区块链应用开发框架的设计
2022-11-17范玉才牛立强
张 鹏 范玉才 牛立强
中博信息技术研究院有限公司
0 引言
区块链技术正处于高速发展的阶段,2020年区块链技术以新技术基础设施的身份纳入到“新基建”中,区块链技术上升到国家战略。
目前区块链平台层出不穷,同一平台快速迭代,基于区块链平台的应用面临着因选型平台的淘汰或迭代而导致重构甚至重新开发的风险。加之区块链技术体系复杂,学习门槛较高,开发人员如何减少学习成本并高效应用区块链技术也成为行业新课题。因此,本文设计与实现一个面向不同区块链平台的通用开发框架(Block Chain Development Framework,BCF),在应用与区块链平台之间增加技术封装和应用框架层,实现应用与区块链平台解耦,开发人员无需再关注区块链技术细节及区块链平台间的差异。
1 总体设计
BCF框架将应用与区块链平台解耦,适配具体的区块链平台,抽象其能力,为应用提供统一的标准功能、一致的访问接口,框架还具备提供开发和管理扩展功能的能力。
为了方便开发人员及运维人员基于BCF框架开发应用,管理应用及BCF框架自身,配套设计和实现通用的区块链即服务(Blockchain as a service,BaaS)应用,提供系统级管理、监控、运维等通用能力。
1.1 分层设计
BCF框架作为中间框架层介于上层应用层和下层区块链层之间。应用层对区块链平台能力的调用通过框架层来完成,不直接与区块链平台进行交互。如图1所示。
为此,在上述零件配套最优生产问题中,可设第i类生产设备在一个工作日内用于生产第j种零件的时间为xij(i=1,2,…,n;j=1,2,…,m,下同),则对每一类生产设备,被分配用于生产全部零件的时间总和必为1(即一个工作日),于是有约束条件:
图1 分层设计
(1)应用层
应用层的应用系统有两种类型,一种是基于区块链底层技术的业务应用系统,另一种是BCF框架提供的配套通用BaaS管理平台。
应用层通过调用框架层中的统一接口层来实现对区块链能力的调用,不与具体区块链平台进行交互,从而达到与区块链平台解耦的目的。
(2)框架层
框架层作为中间层,同时要与应用层和区块链层进行交互,在整个场景中承上启下,在应用层与区块链层的隔离中起到至关重要的作用。
对于表面人工湿地结构进行研究时不难发现,接近水面部分为好氧层,底部部分为厌氧层。考虑到湿地植物对阳光有所遮挡,这样就不会存在藻类大量滋生的可能。可以种植芦苇、水葱、香蒲、灯芯草等挺水植物,凤眼莲、浮萍、睡莲等浮水植物,以及伊乐藻、茨藻、金鱼藻、黑藻等沉水植物。还可以种植慈姑、雨久花、玉蝉花、千屈菜、黄菖蒲、泽泻等水生花卉类的观赏植物,既可以处理污水,也可以美化环境。
安全性除了提供区块链平台本身需要的密码学需求外,还需要满足国家密码局对相关安全的标准和监管机构审计的要求。
向下通过驱动适配层与区块链层进行交互,通过对具体区块链平台SDK的封装以及功能的扩展来实现框架层的标准能力。
(3)区块链层
区块链层为各种区块链平台,为了便于升级维护,该层对区块链平台不做任何改动和封装,所提供能力均为原生区块链平台的能力。
(1)区块链管理监控系统
该层只为框架层中驱动适配层提供服务,不和其他的层进行交互。
1.2 总体架构设计
根据分层模型的设计规划,框架层即为本文要设计的BCF框架。BCF框架的总体架构设计图如下图2所示:
图2 总体架构设计
应用层中BaaS管理平台也是基于BCF框架进行研发的特殊应用系统,为所有基于BCF框架开发的业务应用系统提供标准和统一的部署、运维、监控等管理能力。
本项目随机选择多发、单发内膜下、肌层及浆膜下子宫肌瘤病例150例,同时取对应的子宫肌层组织作为对照,所有标本均采用4%甲醛固定,石蜡包埋、HE染色。采用免疫组化法(SP),切片厚 4 μm,切白片 3张,高温修复或酶消化,4℃冰箱过夜,以PBS缓冲液代替第一抗体作为阴性对照,已知的阳性组织作为阳性对照。免疫组化试剂ER、PR、WT-1及SP试剂盒购自迈新公司,操作按试剂盒说明书要求进行。
统一接口层包括面向开发的功能接口和面向运维的运维接口。
内核层通过功能标准、管理标准和数据标准对区块链平台的通用能力和交互协议进行了定义和实现,实现CA支持、国密支持和安全审计对区块链平台的安全要求和监管要求。
功能接口是对区块链标准功能和扩展功能进行封装,提供统一的API接口,应用对功能接口的调用,由BCF框架经内核层后调用驱动适配层来最终调用具体的区块链平台的原生能力或适配层基于区块链平台智能合约等机制扩展的功能。
2 功能设计
BCF框架主要包括统一接口层、内核层、驱动适配层以及BaaS管理平台(区块链管理监控系统、区块链浏览器、开发运维工具包)。
2.1 接口层设计
接口层主要是将对外的接口进行统一,提供一致的规范化接口。BCF框架根据不同的功能用途进一步划分为功能接口和运维接口两大类。
每类中再次按照功能用途划分具体的小类,具体功能设计如下图3所示:
图3 接口层设计
(1)功能接口
驱动适配层是框架层与具体区块链平台的连接层,针对底层具体的区块链平台提供对应的驱动适配,实现框架核心标准和设计在区块链平台上的落地。
根据内核层的功能规划,功能接口按照同样的分类形式对外提供接口,主要包含合约管理类、账户管理类、节点管理类、权限管理类、区块管理类和工具类。
(2)运维接口
由于运维的特殊性,部分操作需要对区块链平台拥有较高的权限甚至是管理员的权限,因此,将运维相关接口独立出来,在安全性及外部可访问性上需要严格的设计来保证底层区块链平台的安全。
学生可以自主选择实验内容(背景图),可以平面密铺,也可以立体架构。学生从“智慧珠”的不同研究兴趣出发,自主选择实验内容结伴研究,从而形成个性化的实验结果。通过合作交流、动手实践、思维碰撞后,感悟得出属于个人的见解。数学实验的主要价值在于促进学生数学活动经验的累积,让学生在“做中学”,通过实物操作培养学生的多种能力。任务是真实而复杂的,需要学生付出努力,自我反思,需要不断地尝试、判断、调整。在操作过程中,学生的分析、实践、创新思维都得到了锻炼,高阶思维在动手操作中得以提升。
根据内核层的功能规划,运维接口层主要包含配置管理、安装部署、备份恢复、日志审计及运维监控等功能。运维接口层对应用系统相关查询类权限接口,同时为区块链管理监控系统和开发运维工具包提供管理类权限接口。
2.2 内核层设计
对主流区块链平台的设计思路和功能模块进行分析,结合实际业务项目的需求和系统设计的经验,定义BCF框架的区块链标准能力,由此设计并实现内核层。
内核层中区块链标准能力主要从标准和支持两大类来进行划分,标准类主要分为功能标准、管理标准和数据标准。支持类主要是安全支持。具体功能设计如图4所示。
图4 内核层设计
(1)功能标准
功能标准主要用于提供区块链应有的功能性标准能力,作用于链上的数据对象类。主要包括账本管理和合约管理。
账本管理用于对链上账本信息的管理,从业务的角度对账本数据进行管理,包括账本查询、账本信息获取、交易提交、交易查看和交易校验等功能。
文献[14]根据地下水资源系统数值模拟模型,利用历史系列观测资料,反求出了河南省安阳市平原地区的4个县的降水入渗补给系数值;当降水量PN在(500 mm
堤身为第四系人工堆积素填土土体呈棕黄~黄褐色,干燥~稍湿,多呈硬塑~坚硬状态,局部散体状,土质较杂,岩性主要为壤土、砂壤土、粉土,局部夹粉质黏土。
(2)管理标准
管理标准主要用于提供区块链的管理性标准能力,作用于对链的结构、链上数据对象及对象所属、支撑运行环境和授权鉴权类的管理。包括节点管理、权限控制、区块管理和账户管理。
合约管理用于对运行在区块链平台中的智能合约进行全生命周期的管理,包括合约的部署、合约升级、合约停用、合约查询、智能合约地址的命名解析服务(Contract Name Service,CNS)即合约CNS和合约执行等功能。
节点管理用于对支撑区块链平台运行的物理节点进行管理,包括节点增加、节点查询、节点退出、节点分类和节点配置管理等功能。
权限控制用于在角色权限管理机制的控制下提供授权和鉴权功能,主要包括合约权限、账本权限、节点权限和账户权限。
区块管理用于采用链式结构的形式对数据的查看,包括链信息、区块信息和交易信息等查看。
总体来说,鄂尔多斯市乡村旅游的类型较为丰富,目前已初步形成了以中、低档发展为主的层次结构,基本能够满足游客食住行游购娱等方面的需求。
账户管理用于对区块链中参与记账及账本主体进行标识,每个参与者都是一个账户,包括账户创建、账户查询和账户停用等功能。
(3)数据标准
一是绿色项目标准有待统一。我国绿色债券的监管部门包括中国人民银行、发改委和证监会等部门,各部门意见中绿色项目标准尚未统一,导致在实际操作过程中无法准确界定债券的绿色属性。二是环境信息披露制度不健全。我国已发行的绿色债券超过半数没有进行环境信息披露。环境信息披露制度不健全,投资者缺乏环保信息了解渠道,极大降低其参与绿色债券的积极性。三是第三方评估体系有待完善。我国绿色债券尚处于起步阶段,专业的绿色债券评估机构数量较少,没有一套统一、可行的第三方评估标准。部分不良发行者通过“漂绿”等行为进行政策套利,极大影响我国绿色债券市场健康发展。
数据标准主要设计数据交互结构和账本记录结构。
数据交互结构用于对跨层、跨系统间的数据交互协议格式进行标准化。包括消息头和数据体,消息头用来传递状态和控制信息,数据体则用来承载业务数据信息。
账本记录结构用于对应用系统数据参与区块链的数据结构进行规范化。鉴于区块链的可信是基于链上的数据是经过多方共识,而现实数据隐私和安全的需求又限制数据上链。因此,设计账本记录结构包括数据体(标识出上链数据)和记录摘要,通过指定上链数据及全量数据的记录摘要,保证了数据的有效性和防篡改性。
(4)安全支持
向上通过统一接口层与应用层进行交互,对外提供一致的区块链能力,为应用层提供统一的访问接口。
安全支持主要分为CA支持、国密支持和审计支持。
CA支持保证了所有参与底层区块链的节点都是经过同一个的根CA机构背书的。同时为账户管理提供证书颁发和撤销等功能。
国密支持则为了满足国家密码局的要求,提供对国密中SM2、SM3、SM4等支持。此功能需要底层区块链平台原生支持国密。
审计支持则为了满足国家监管机构的审计要求,按照国家相关法律法规及政策要求,对运行的区块链平台提供合法合规的监管支持。
2.3 驱动适配层设计
BCF框架设计驱动适配层为具体区块链平台开发适配组件,作为具体区块链平台在BCF框架中的代理。因此,需要为每个支持的区块链平台对应开发或配置一个适配组件,不同的区块链平台提供的原生能力不尽相同,适配组件需要按照框架层设计要求提供所需的区块链能力,对于缺少原生能力的需要在适配组件中进行适配开发。
区块链平台原生能力与BCF框架制定的标准能力之间存在差异,因此,BCF框架制定的标准能力需具备兼容并扩展主流的区块链平台的能力。BCF框架驱动适配层设计时遵循以下原则:第一,必须是具备区块链技术去中心化、不可篡改、可追溯性特征的产品;第二,必须支持智能合约功能,且拥有图灵完备的合约编程语言;第三,必须原生支持国密需求或提供插件接口来实现国密需求;第四,尽可能地利用区块链平台的原生能力,减少适配开发的工作量;第五,兼容位列市场占有率排名前五的区块链平台。
双十一到来前,韩莎早早把要买的东西放进了购物车,杜飞帮她算了好几遍,可以最大限度地利用满减优惠,就等着零点一到血拼一回。
2.4 BaaS管理平台设计
BCF框架对各种底层区块链平台进行抽象和适配,形成标准能力和统一接口,因而可建立通用的BaaS管理平台,为基于BCF框架的应用系统及BCF框架自身提供强大而灵活的部署、运维、监控等管理能力,主要包括区块链管理监控系统、区块链浏览器和开发运维工具包。
经过一段时间准备,2014年5月份,宁波市卫计委正式发文,要求全市148家基层医疗机构要完成一轮培训,每家机构一轮至少要派出一位医生参加培训。而且,学员主要来自社区心内科、神经内科、内分泌,以及疾控中心和120院前急救,重点关注慢病管理。
1.3.5 细胞侵袭能力测定 接种hucMSCs后,按实验分组干预24 h。胰酶消化细胞后,用无血清培养基调整细胞密度为1×105/mL,取200 μL细胞悬液加入40 μL基质胶(Matrigel,1∶3稀释)包被的Transwell小室(8 μm滤膜微孔)上层,下层加入600 μL含10%FBS的DMEM/F-12培养基,常规培养24 h后取出Transwell小室,置于正置显微镜下随机选取5个视野拍照并计数。
基于BCF框架实现的区块链管理监控系统对所有支持的具体区块链平台拥有通用的管理和监控的能力。
在管理方面,以友好的Web界面管理区块链平台的节点、智能合约、配置参数、数据和权限等。节点管理包括节点的动态注册、下线、身份变更等;智能合约管理包括在线编译、在线部署、合约安装、合约升级等以及智能合约CNS服务;配置参数管理包括区块链平台参数和应用系统参数的在线查看、修改、备份和恢复等,支持实时生效;权限控制是基于角色的权限控制机制,包括对功能、查看和区块链相关信息的授权等。
在监控方面,能够监管节点资源、交易性能数据、应用系统运行状态等,通过可配置的预警规则可对风险进行预判,支持账本数据在线备份、转储和恢复。
所谓就业观,具体就是学生在参加工作选择某一职业时所表现出的一种态度和观念,它是学生对自己就业的一种反应性倾向,由行为倾向、情感倾向和认知倾向三大要素组成。对大学生而言,就业并不意味着就是简单地找一份工作,还与学生后期的人生发展与职业理想有着密不可分的必然联系。因此,学生在校期间,形成一种良好的就业观是其人生观、价值观和世界观的重要体现,对大学生未来职业发展的理想以及就业认知和就业心态及其后期在职场上所体现出的态度和修养也发挥着决定性作用。
(2)区块链浏览器
区块链浏览器主要提供区块、智能合约、节点和账户等信息查询和查看功能。按照链式数据结构的特性,涉及到块、链、交易等参与对象的查询与查看。通过多种查询方式快速定位到链中特定的块,可以查看块的相关元数据信息、交易列表及钻取查看交易详情。在智能合约方面,区块链浏览器支持智能合约的查询及元数据的查看,基于区块链管理系统的授权后,可以查看权限范围内合约详细信息。获取授权后可以查看节点信息、账户信息等敏感数据。
(3)开发运维工具包
针对开发和运维工程师提供辅助工具包,以及Maven、IDE等插件,支持快速开发、测试、安装、部署等能力,提供节点相关的基础配置、系统上线的初始化、一键转移等功能。
综上所述,加强教育专项资金的管理能够为教育改革深化发展、全面实施素质教育提供重要资金保障。为此,文章结合当前加强教育专项资金管理存在的问题,从思想重视、多渠道筹集资金、完善管理制度、严格规范预算审批、强化监督等方面思考怎样更好的规划资金的使用,旨在能够更好的促进教育事业发展。
3 应用案例
2021年我们使用区块链、OFD、电子签名等技术自主研发出可信交易链应用系统。该应用系统设计之初,考虑到未来需要满足不同企业私有化部署场景,选择BCF作为与不同区块链平台对接的框架。
可信交易链应用系统默认选择BCF框架、BCF-Fabric适配器和Hyperledger Fabric区块链平台,应用系统涉及与区块链相关上链、对账、存证等功能均调用BCF框架提供的SDK,无需关心具体区块链平台,SDK通过BCF-Fabric适配器实现对Hyperledger Fabric区块链平台能力的调用。
可信交易链应用系统在推广过程中,有客户要求应用系统部署在FISCO-BCOS区块链平台上。我们在设计BCF框架时调研过FISCO-BCOS,对其有一定的了解,三名开发人员五天内快速开发出BCF-FISCO适配器,可信交易链应用代码无需修改仍可正常运行,完成区块链平台的替换。
4 结束语
本文重点介绍了BCF框架的分层设计思路、各层具体功能设计,并简述基于BCF框架的BaaS管理平台的设计。BCF框架设计时主要参考Hyperledger Fabric和FISCO-BCOS两个开源平台,结合以太坊、CITA和XuperChain等开源平台,下一步将继续研究更多更新的区块链平台,并收集BCF框架使用者的反馈意见,计划建立开发者社区、开放BCF框架的源代码,以持续对BCF框架进行迭代升级,使之成为一个标准、稳定、高效的框架产品。