智能合约的生成方法和装置、电子设备和可读存储介质与流程

文档序号:33186300发布日期:2023-02-04 06:35阅读:56来源:国知局
智能合约的生成方法和装置、电子设备和可读存储介质与流程

1.本技术属于计算机技术领域,具体涉及一种智能合约的生成方法和装置、电子设备和可读存储介质。


背景技术:

2.由于区块链本身的技术复杂性特征,导致区块链开发人员需要掌握大量的技术知识和技术语言才能完成区块链应用的开发,导致区块链开发和交付非常困难。尤其是智能合约部分,由于市场上目前的智能合约编写语言比较小众,如solidity(契约型编程语言),go(google开发的一种编译型、并发型,并具有垃圾回收功能的编程语言)等,市场上只有少部分人员掌握此语言,传统的应用开发人员往往使用java(一门面向对象的编程语言)、python(一种计算机编程语言)等语言。智能合约往往跟业务模型相关联,当业务模型发生变更时,开发人员需要大量的时间来调整智能合约模型,导致区块链应用的开发成本高,而且不同开发人员对智能合约的理解不同,导致开发的区块链应用质量参差不齐。


技术实现要素:

3.本技术实施例的目的是提供一种智能合约的生成方法和装置、电子设备和可读存储介质,能够解决区块链中的智能合约部分对编程语言要求较高,导致编写智能合约困难,开发成本高的问题。
4.第一方面,本技术实施例提供了一种智能合约的生成方法,包括:构建业务表单。选取业务表单中的关键业务字段。基于关键业务字段,构建区块链数据模型。选取合约模板。基于合约模板和区块链数据模型,生成区块链智能合约。
5.第二方面,本技术实施例提供了一种智能合约的生成装置,包括第一构建模块、第一选区模块、第二构建模块、第二选区模块和生成模块。第一构建模块用于构建业务表单。第一选区模块用于选取业务表单中的关键业务字段。第二构建模块用于基于关键业务字段,构建区块链数据模型。第二选区模块用于选取合约模板。生成模块用于基于合约模板和区块链数据模型,生成区块链智能合约。
6.第三方面,本技术实施例提供了一种电子设备,该电子设备包括处理器和存储器,存储器存储可在处理器上运行的程序或指令,程序或指令被处理器执行时实现如第一方面的智能合约的生成方法的步骤。
7.第四方面,本技术实施例提供了一种可读存储介质,可读存储介质上存储程序或指令,程序或指令被处理器执行时实现如第一方面的智能合约的生成方法的步骤。
8.本实施例首先基于低代码平台快速构建业务表单,然后基于绘制的业务表单动态选择上链字段(即关键业务字段),最后通过智能合约模板和上链的业务表单字段,动态生成智能合约。本实施例通过低代码方式生成智能合约,降低对开发人员的编程要求和开发成本,降低智能合约的开发周期和开发的准确度,进而提高了区块链系统的开发效率,保证了经济效益。
附图说明
9.图1示出了本技术实施例提供的智能合约的生成方法的流程示意图;
10.图2示出了本技术实施例提供的智能合约的生成装置的结构框图;
11.图3示出了本技术实施例提供的电子设备的结构框图;
12.图4示出了本技术实施例的一种电子设备的硬件结构示意图;
13.图5示出了本技术实施例提供的智能合约生成过程示意图;
14.图6示出了本技术实施例提供的业务表单示意图;
15.图7示出了本技术实施例提供的上链数据模型示意图;
16.图8示出了本技术实施例提供的智能合约生成过程示意图。
17.其中,图2至图8中附图标记与部件名称之间的对应关系为:
18.100:智能合约的生成装置;110:第一构建模块;120:第一选区模块;130:第二构建模块;140:第二选区模块;150:生成模块;200:表单设计器;202:业务表单;204:区块链数据模型;206:合约模版;208:智能合约;210:a模型;212:b模型;214:c模型;216:合约模版a;218:合约模版b;220:合约模版c;:222业务模型a;224:业务模型b;1000:电子设备;1002:处理器;1004:存储器;1100:电子设备;1101:射频单元;1102:网络模块;1103:音频输出单元;1104:输入单元;11041:图形处理器;11042:麦克风;1105:传感器;1106:显示单元;11061:显示面板;1107:用户输入单元;11071:触控面板;11072:其他输入设备;1108:接口单元;1109:存储器;1110:处理器。
具体实施方式
19.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员获得的所有其他实施例,都属于本技术保护的范围。
20.本技术的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。
21.下面结合附图1至图8,通过具体的实施例及其应用场景对本技术实施例提供的智能合约的生成方法和装置、电子设备和可读存储介质进行详细地说明。
22.在本技术实施例提供了一种智能合约的生成方法,图1示出了本技术实施例提供的智能合约的生成方法的流程示意图之一,如图1所示,智能合约的生成方法包括:
23.步骤102,构建业务表单。
24.步骤104,选取业务表单中的关键业务字段。
25.步骤106,基于关键业务字段,构建区块链数据模型。
26.步骤108,选取合约模板。
27.步骤110,基于合约模板和区块链数据模型,生成区块链智能合约。
28.相关技术中,开发人员在没有掌握特定编程语言如solidity,go等的基础上无法
编写智能合约,本实施例中,首先构建业务表单,业务表单可以通过低代码平台快速构件,不需要掌握特定编程语言,降低了生成智能合约的复杂度和技术难度。
29.本实施例中,通过提取业务表单中核心的关键业务字段作为链上的数据模型,构建区块链数据模型,可以避免开发人员不熟悉区块链模型,导致开发的智能合约质量参差不齐,从而避免程序不严谨及脏数据上链等问题。
30.本实施例中,合约模板需要预先设立,根据业务的具体情况,进行选取,将区域链数据模型中的相关内容,与合约模版进行组合,最终生成区块链智能合约。
31.本实施例中,可以通过任意数据模型模板和合约模板组合,生成智能合约。通过此方式生成的智能合约,既保证了合约的准确性,也大大缩短了合约的开发时间。进而降低区块链应用开发的复杂度和技术难度,提高区块链系统的交付质量和交付效率。
32.本实施例首先基于低代码平台快速构建业务表单,然后基于绘制的业务表单动态选择上链字段即关键业务字段,最后通过智能合约模板和上链的业务表单字段,动态生成智能合约。本实施例通过低代码方式生成智能合约,降低对开发人员的编程要求和开发成本,降低智能合约的开发周期和开发的准确度,进而提高了区块链系统的开发效率,保证了经济效益。
33.在本技术的一些实施例中,构建业务表单,具体包括:
34.采用表单设计器,构建业务表单。
35.本实施例中,业务表单可以通过表单设计器构建,单设计器构建为低代码形式,通过低代码的表单设计器生成业务表单是构建低代码智能合约的基础,为后续构建区块链数据模型提供前置条件。
36.本实施例通过表单设计器和合约模板的方式,可以实现快速构建智能合约,最终实现区块链系统的快速交付。
37.本实施例中,采用表单设计器形式获取业务表单,降低生成智能合约的上手难度,甚至没有编程经验的人,也可以具有生成智能合约的能力。
38.在本技术的一些实施例中,在采用表单设计器,构建业务表单之前,还包括:
39.构建表单设计器,表单设计器中设置有文本框、密码框、隐藏域、多行文本框、复选框、单选框、下拉选择框和/或文件上传框。
40.本实施例中,表单设计器中设有文本框、密码框、隐藏域、多行文本框、复选框、单选框、下拉选择框和/或文件上传框,通过上述方式,将相关内容添加到相应的输入框中,进而可以生成网页形式的业务表单。
41.本实施例中,构建的表单设计器可以降低生成智能合约的技术难度,提高区块链系统的交付质量和交付效率。
42.在本技术的一些实施例中,业务表单包括web业务表单。
43.可以理解的是,业务表单在网页中主要负责数据采集与业务展现功能。举例而言,web业务表单内容可以包括合同名称、甲方、乙方、条款、签字和/或日期。再次举例而言,web业务表单还可以包括捐赠表单、生产表单、采购表单、销售表单等等。
44.本实施例中,通过表单设计器生成的业务表单为web业务表单,可以更加便捷的提取其中的关键业务字段。
45.本实施例中,通过设置web业务表单的具体内容,进而可以实现通过提取业务表单
中核心的关键业务字段作为链上的数据模型,构建区块链数据模型的过程。
46.在本技术的一些实施例中,智能合约的生成方法,还包括:
47.区块链数据模型支持多种模型存储和/或同种模型多种版本储存。
48.可以理解的是,软件系统具有业务多变性,而且随着时间的增长,业务的变化范围也越大越大,此时原有的区块链数据模型已经不能满足现有的业务需求。而智能合约作为区块链数据的入口,掌管着数据模型。针对变更的数据模型,如果通过手工的方式变更,不仅难度大,而且容易出错。
49.为了解决上述问题,本实施例中的链上数据模型可以支持多模型存储和/或同种模型多种版本储存,既支持版本变更与留痕。
50.本实施例通过区块链数据模型支持多种模型存储和/或同种模型多种版本储存,可以在数据模型发生变化时,采用选取不同模型的方式,非手动的方式进行数据模型变更,避免出错。
51.在本技术的一些实施例中,智能合约的生成方法,还包括:
52.在需要对区块链数据模型进行变更时,在多种模型和/或同种模型多种版本中进行选取,替换原有的区块链数据模型,重新生成区块链智能合约。
53.本实施例中,区块链数据模型支持多种模型和/或同种模型多种版本存储,在需要对区块链数据模型进行变更时,可以在多种模型和/或同种模型多种版本中进行选取,替换原有的区块链数据模型,最终,重新生成区块链智能合约。本实施例在业务模型发生变化时,可以快速调整智能合约,缩短区块链应用的开发时间长,降低开发成本。
54.在本技术的一些实施例中,在选取合约模板之前,还包括:
55.根据安全性和业务特性,建立至少一个合约模板。
56.本实施例中,合约模板可以采用某种特定编程语言solidity,go等实现的智能合约中的通用语言部分代码,用户可以合约的安全性、业务特定定义多个不同的合约模板,通过预设专业的合约模板,即便经验不丰富的开发人员也能够编写出质量可靠的高性能智能合约,同时由于支持多个合约模板,可以满足多种不同的使用场景。
57.本技术实施例提供的智能合约的生成方法,执行主体可以为智能合约的生成装置。本技术实施例中以智能合约的生成装置执行智能合约的生成方法为例,说明本技术实施例提供的智能合约的生成装置。
58.在本技术的一些实施例中提供了一种智能合约的生成装置,图2示出了本技术实施例提供的智能合约的生成装置的结构框图,如图2所示,智能合约的生成装置100,包括第一构建模块110、第一选区模块120、第二构建模块130、第二选区模块140和生成模块150。第一构建模块110用于构建业务表单。第一选区模块120用于选取业务表单中的关键业务字段。第二构建模块130用于基于关键业务字段,构建区块链数据模型。第二选区模块140用于选取合约模板。生成模块150用于基于合约模板和区块链数据模型,生成区块链智能合约。
59.本实施例首先基于低代码平台快速构建业务表单,然后基于绘制的业务表单动态选择上链字段(即关键业务字段),最后通过智能合约模板和上链的业务表单字段,动态生成智能合约。本实施例通过低代码方式生成智能合约,降低对开发人员的编程要求和开发成本,降低智能合约的开发周期和开发的准确度,进而提高了区块链系统的开发效率,保证了经济效益。
60.本技术实施例中的智能合约的生成装置可以是电子设备,也可以是电子设备中的部件,例如集成电路或芯片。该电子设备可以是终端,也可以为除终端之外的其他设备。示例性的,电子设备可以为手机、平板电脑、笔记本电脑、掌上电脑、车载电子设备、移动上网装置(mobile internet device,mid)、增强现实(augmented reality,ar)/虚拟现实(virtual reality,vr)设备、机器人、可穿戴设备、超级移动个人计算机(ultra-mobile personal computer,umpc)、上网本或者个人数字助理(personal digital assistant,pda)等,还可以为服务器、网络附属存储器(network attached storage,nas)、个人计算机(personal computer,pc)、电视机(television,tv)、柜员机或者自助机等,本技术实施例不作具体限定。
61.本技术实施例中的智能合约的生成装置可以为具有操作系统的装置。该操作系统可以为安卓(android)操作系统,可以为ios操作系统,还可以为其他可能的操作系统,本技术实施例不作具体限定。
62.本技术实施例提供的智能合约的生成装置能够实现上述方法实施例实现的各个过程,为避免重复,这里不再赘述。
63.可选地,如图3所示,本技术实施例还提供一种电子设备1000,电子设备1000包括处理器1002和存储器1004,存储器1004上存储有可在处理器1002上运行的程序或指令,该程序或指令被处理器1002执行时实现上述方法实施例的各个步骤,且能达到相同的技术效果,为避免重复,这里不再赘述。
64.需要说明的是,本技术实施例中的电子设备包括上述的移动电子设备和非移动电子设备。
65.图4为实现本技术实施例的一种电子设备的硬件结构示意图。
66.该电子设备1100包括但不限于:射频单元1101、网络模块1102、音频输出单元1103、输入单元1104、传感器1105、显示单元1106、用户输入单元1107、接口单元1108、存储器1109、以及处理器1110等部件。
67.本领域技术人员可以理解,电子设备1100还可以包括给各个部件供电的电源(比如电池),电源可以通过电源管理系统与处理器1110逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。图4中示出的电子设备结构并不构成对电子设备的限定,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置,在此不再赘述。
68.其中,处理器1110,用于构建业务表单。
69.处理器1110,用于选取业务表单中的关键业务字段。
70.处理器1110,用于基于关键业务字段,构建区块链数据模型。
71.处理器1110,用于选取合约模板。
72.处理器1110,用于基于合约模板和区块链数据模型,生成区块链智能合约。
73.本实施例首先基于低代码平台快速构建业务表单,然后基于绘制的业务表单动态选择上链字段(即关键业务字段),最后通过智能合约模板和上链的业务表单字段,动态生成智能合约。本实施例通过低代码方式生成智能合约,降低对开发人员的编程要求和开发成本,降低智能合约的开发周期和开发的准确度,进而提高了区块链系统的开发效率,保证了经济效益。
74.应理解的是,本技术实施例中,输入单元1104可以包括图形处理器(graphics processing unit,gpu)11041和麦克风11042,图形处理器11041对在视频捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图片或视频的图像数据进行处理。显示单元1106可包括显示面板11061,可以采用液晶显示器、有机发光二极管等形式来配置显示面板11061。用户输入单元1107包括触控面板11071以及其他输入设备11072中的至少一种。触控面板11071,也称为触摸屏。触控面板11071可包括触摸检测装置和触摸控制器两个部分。其他输入设备11072可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆,在此不再赘述。
75.存储器1109可用于存储软件程序以及各种数据。存储器1109可主要包括存储程序或指令的第一存储区和存储数据的第二存储区,其中,第一存储区可存储操作系统、至少一个功能所需的应用程序或指令(比如声音播放功能、图像播放功能等)等。此外,存储器1109可以包括易失性存储器或非易失性存储器,或者,存储器1109可以包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,rom)、可编程只读存储器(programmable rom,prom)、可擦除可编程只读存储器(erasable prom,eprom)、电可擦除可编程只读存储器(electrically eprom,eeprom)或闪存。易失性存储器可以是随机存取存储器(random access memory,ram),静态随机存取存储器(static ram,sram)、动态随机存取存储器(dynamic ram,dram)、同步动态随机存取存储器(synchronous dram,sdram)、双倍数据速率同步动态随机存取存储器(double data rate sdram,ddrsdram)、增强型同步动态随机存取存储器(enhanced sdram,esdram)、同步连接动态随机存取存储器(synch link dram,sldram)和直接内存总线随机存取存储器(direct rambus ram,drram)。本技术实施例中的存储器1109包括但不限于这些和任意其它适合类型的存储器。
76.处理器1110可包括一个或多个处理单元;可选的,处理器1110集成应用处理器和调制解调处理器,其中,应用处理器主要处理涉及操作系统、用户界面和应用程序等的操作,调制解调处理器主要处理无线通信信号,如基带处理器。可以理解的是,上述调制解调处理器也可以不集成到处理器1110中。
77.本技术实施例还提供一种可读存储介质,可读存储介质上存储有程序或指令,该程序或指令被处理器执行时实现上述智能合约的生成方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
78.其中,处理器为上述实施例中的电子设备中的处理器。可读存储介质,包括计算机可读存储介质,如计算机只读存储器rom、随机存取存储器ram、磁碟或者光盘等。
79.本技术实施例另提供了一种芯片,芯片包括处理器和通信接口,通信接口和处理器耦合,处理器用于运行程序或指令,实现上述智能合约的生成方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
80.应理解,本技术实施例提到的芯片还可以称为系统级芯片、系统芯片、芯片系统或片上系统芯片等。
81.本技术实施例提供一种计算机程序产品,该程序产品被存储在存储介质中,该程序产品被至少一个处理器执行以实现如上述智能合约的生成方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
82.具体实施例:
83.本实施例基于区块链技术采用低代码的形式生成智能合约,首先基于低代码平台快速构建业务表单,然后基于绘制的业务表单动态选择上链字段,最后通过智能合约模板和上链的业务表单字段,动态生成智能合约。
84.本实施例基于表单设计器,业务模型与合约模板两两组合构建多模板多版本的低代码智能合约,如图5所示,通过表单设计器200设计业务表单,得到业务表单202,基于业务表单设计链上数据模型,得到区块链数据模型204,通过链上数据模型和合约模版206生成智能合约208。
85.本本实施例的技术方案具体为:
86.(1)设计业务表单:根据需求通过表单设计器设计web业务表单,业务表单在网页中主要负责数据采集与业务展现功能,表单设计器包含了文本框、密码框、隐藏域、多行文本框、复选框、单选框、下拉选择框和文件上传框等内容。通过低代码的表单设计器生成业务表单是构建低代码智能合约的基础。如图6所示,设计的业务表单可以包括web业务表单,web业务表单内容包括合同名称、甲方、乙方、条款、签字和日期。业务表单还可以有捐赠表单、生产表单、采购表单、销售表单等等。
87.(2)设计链上数据模型(即区块链数据模型):基于低代码设计器生成的业务表单,在其中提取核心的关键业务字段作为链上的数据模型,构建区块链数据模型。
88.本实施例的上链数据模型不仅支持多模型存储,而且也支持版本变更与留痕。如图7所示,支持a模型210、b模型212和c模型214进行存储,a模型210、b模型212和c模型214均为上链数据模型,其中的字段和字段类型不同,每个模型中都可以通过确认按钮选取不同的字段。a模型210包括字段a、字段b和字段c,字段a的字段类型为string,字段b的字段类型为long,字段c的字段类型为integgr。b模型212包括字段a、字段b、字段c和字段d,字段a的字段类型为string,字段b的字段类型为long,字段c的字段类型为integgr,字段d的字段类型为boolean。c模型214包括字段a、字段c和字段d,字段a的字段类型为string,字段c的字段类型为integgr,字段d的字段类型为boolean。
89.(3)定义合约模板,合约模板是采用某种特定编程语言(solidity,go等)实现的智能合约中的通用语言部分代码,用户可以合约的安全性、业务特定定义多个不同的合约模板,通过预设专业的合约模板,即便经验不丰富的开发人员也能够编写出质量可靠的高性能智能合约,同时由于系统支持多个合约模板,可以满足多种不同的使用场景。
90.(4)生成智能合约,通过任意数据模型模板和合约模板组合,可一键生成智能合约。通过此方式生成的智能合约,既保证了合约的准确性,也大大缩短了合约的开发时间。如图8所示,合约模版a216与业务模型a222可以生成智能合约,合约模版b218与业务模型a222可以生成智能合约,合约模版c220与业务模型b224可以生成智能合约。
91.本实施例通过低代码方式生成智能合约,大大降低了开发人员的上手难度,甚至没有编程经验的人,也可以具有生成智能合约的能力。
92.本实施例通过低代码方式生成智能合约,大大降低了智能合约的开发周期。
93.本实施例通过低代码方式生成智能合约,大大提高了智能合约开发的准确度。
94.本实施例通过低代码方式生成智能合约,提高了系统的开发效率,从而提高了经济效益。
95.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排
他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。此外,需要指出的是,本技术实施方式中的方法和装置的范围不限按示出或讨论的顺序来执行功能,还可包括根据所涉及的功能按基本同时的方式或按相反的顺序来执行功能,例如,可以按不同于所描述的次序来执行所描述的方法,并且还可以添加、省去、或组合各种步骤。另外,参照某些示例所描述的特征可在其他示例中被组合。
96.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以计算机软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,或者网络设备等)执行本技术各个实施例的方法。
97.上面结合附图对本技术的实施例进行了描述,但是本技术并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本技术的启示下,在不脱离本技术宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本技术的保护之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1