CN112148278A - 可视化的区块链智能合约框架及智能合约开发部署方法 - Google Patents
可视化的区块链智能合约框架及智能合约开发部署方法 Download PDFInfo
- Publication number
- CN112148278A CN112148278A CN202011026506.1A CN202011026506A CN112148278A CN 112148278 A CN112148278 A CN 112148278A CN 202011026506 A CN202011026506 A CN 202011026506A CN 112148278 A CN112148278 A CN 112148278A
- Authority
- CN
- China
- Prior art keywords
- intelligent contract
- user
- data
- program
- visual
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000000007 visual effect Effects 0.000 title claims abstract description 33
- 238000000034 method Methods 0.000 title claims abstract description 31
- 238000011161 development Methods 0.000 title abstract description 15
- 238000013499 data model Methods 0.000 claims abstract description 79
- 238000013507 mapping Methods 0.000 claims abstract description 22
- 238000001514 detection method Methods 0.000 claims description 24
- 238000007726 management method Methods 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 8
- 238000012800 visualization Methods 0.000 claims description 3
- 238000010606 normalization Methods 0.000 abstract description 3
- 239000012141 concentrate Substances 0.000 abstract description 2
- 238000005516 engineering process Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 8
- RTZKZFJDLAIYFH-UHFFFAOYSA-N Diethyl ether Chemical compound CCOCC RTZKZFJDLAIYFH-UHFFFAOYSA-N 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000004744 fabric Substances 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
Abstract
本公开的实施例提供了可视化的区块链智能合约框架、智能合约开发部署方法、设备和计算机可读存储介质。所述方法包括显示可视化智能合约生成器,接收用户通过所述可视化智能合约生成器所添加的数据模型,数据模型的属性、数据、映射关系及逻辑的设置,生成智能合约;对所述可视化智能合约生成器生成的智能合约进行编译;将编译产生的智能合约脚本程序,自动部署到指定的区块链网络中。以此方式,可以保持用户应用程序与智能合约程序的一致性;也保证了智能合约和用户程序的代码规范性;通过图形化的操作,简化了用户的使用难度,提高了用户的入门效率;让用户更加专注于业务层面而非底层程序开发层面。
Description
技术领域
本公开的实施例一般涉及区块链技术领域,并且更具体地,涉及可视化的区块链智能合约框架、智能合约开发部署方法、设备和计算机可读存储介质。
背景技术
区块链技术是分布式账本技术、共识算法、加密算法等计算机技术的新型应用模式。区块链技术的特点是去中心化、公开透明、不可篡改。而对于现代的区块链来说,智能合约的发展可谓区块链技术发展的一个里程碑,提供了更加强大的逻辑功能,可以满足各种领域的业务要求将区块链从最初单一数字货币应用,发展融入到了金融、政务服务、供应链、游戏等各个领域。
智能合约在区块链2.0中起着极为重要的作用,智能合约可以提供强大的可编程能力,从而满足不同行业的业务逻辑。智能合约是用户业务平台与区块链平台交互的纽带。智能合约,即一套以数字形式定义的承诺,包括合约参与方可以在上面执行这些承诺的协议,简单来说,就是一种存储在区块链上,在满足一定条件时,就会由区块链自动执行的计算机程序。它的意义不仅在于将传统的合约电子化,而在于革命性地将传统合约地背书执行由法律替换成了代码,区块链这种去中心化、防篡改的平台,能够确保智能合约一定能够被执行。
智能合约本身是可运行的程序,需要开发人员进行开发才能满足用户的需求。当前智能合约部署较多的区块链平台是比特币、以太坊和超级账本,以以太坊为例,用户需要通过solidity语言开发智能合约,然后编译成字节码并发布到区块链平台,在EVM(以太坊虚拟机)上运行。而目前智能合约的发展还处于早期阶段,相关的配套设施并不完善,用户需要学习较多的概念和知识,包含了包括分布式技术、共识算法、加密算法等在内的多领域技术,掌握众多工具才能进行智能合约的开发、部署、测试和运行,对开发人员的对区块链网络技术的掌握和编程能力的要求较高。并且,由于区块链技术是近几年才兴起的新型技术,具有开发区块链网络的能力的人才储备也很缺乏,需要大量的时间进行培训,这使得区块链网络的创建困难大、耗时长、耗资巨。不同开发人员对于区块链的理解不同,以及其本身的开发能力不同,导致智能合约的功能是否完善。
同时,智能合约之所以能够被用户的应用程序被调用和访问,是因为智能合约需要提供对外可访问的API接口,这个API接口与需要访问的应用程序需要保持严格的对应关系,一旦有所不同,将导致用户的应用程序无法访问区块链的数据。
发明内容
根据本公开的实施例,提供了一种智能合约开发部署方法方案。
在本公开的第一方面,提供了一种可视化的区块链智能合约框架,所述框架包括:可视化智能合约生成器,用于向用户提供图形化界面,以便用户通过可视化操作编写智能合约;智能合约编译器,用于部署不同编译工具链版本,对所编写的智能合约进行编译;区块链部署器,用于将编译生成的智能合约自动部署到指定的区块链中。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述可视化智能合约为图形化编辑器,包括模型管理模块、依赖库模块、代码调用模块、语法检测模块、语义增强模块、逻辑检测模块。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,用户通过可视化操作编写智能合约包括:用户通过所述可视化智能合约生成器添加数据模型,数据模型的属性、数据、映射关系及逻辑,调用相应的编程语言编写代码,进行智能合约编写。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述模型管理模块用于为用户提供数据模型以及数据模型的属性、数据、映射关系设置;所述代码调用模块用于根据用户所添加的数据模型,数据模型的属性、数据、映射关系及逻辑调用相应的编程语言编写代码。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,对所编写的智能合约进行编译包括:产生适用于智能合约的脚本程序,同时产生可被外界程序调用的API接口。
在本公开的第二方面,提供了一种区块链智能合约创建方法,该方法包括:显示可视化智能合约生成器提供的用户界面,接收用户通过所述用户界面所添加的数据模型,数据模型的属性、数据、映射关系及逻辑,生成智能合约;对所述可视化智能合约生成器生成的智能合约进行编译;将编译产生的智能合约脚本程序,自动部署到指定的区块链网络中。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述方法还包括:下载所述可视化的区块链智能合约框架,搭建集成环境。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述方法还包括:用户通过浏览器进行访问所述可视化智能合约生成器,或直接进入所述可视化的区块链智能合约框架的主界面。
在本公开的第三方面,提供了一种电子设备。该电子设备包括:存储器和处理器,所述存储器上存储有计算机程序,所述处理器执行所述程序时实现如以上所述的方法。
在本公开的第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如根据本公开的第一方面的方法。
应当理解,发明内容部分中所描述的内容并非旨在限定本公开的实施例的关键或重要特征,亦非用于限制本公开的范围。本公开的其它特征将通过以下的描述变得容易理解。
附图说明
结合附图并参考以下详细说明,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标记表示相同或相似的元素,其中:
图1示出了本发明实施例一种可视化的区块链智能合约框架的结构示意图;
图2示出了本发明实施例中通过点击或拖动数据模型图标添加数据模型、输入数据模型属性的示意图;
图3示出了本发明实施例中通过工作流创建图标,对于所添加的多个数据模型,建立数据模型之间的映射关系的示意图;
图4示出了基于图1中所示的可视化的区块链智能合约框架的区块链智能合约创建方法的示意图;
图5示出了能够实施本公开的实施例的示例性电子设备的方框图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的全部其他实施例,都属于本公开保护的范围。
另外,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
图1示出了本发明实施例一种可视化的区块链智能合约框架100的结构示意图,包括:
可视化智能合约生成器102,用于向用户提供图形化界面,以便用户通过可视化操作编写智能合约;
智能合约编译器104,用于部署不同编译工具链版本,对所便携的智能合约进行编译;
区块链部署器106,用于将编译生成的智能合约自动部署到指定的区块链中。
在一些实施例中,智能合约开发的基本流程包括合约编写、合约编译、合约部署三个阶段,框架针对各个阶段进行优化,每个阶段通过容器编排技术自动串联,智能合约编译器和区块链测试网络由一个或多个容器组成,相互隔离。框架负责整个可视化智能合约开发和部署系统的集成和搭建,启动该系统后,用户只需要通过系统对外公开的浏览器地址通过浏览器进行访问,或直接进入开发和部署软件的主界面即可实现可视化的区块链智能合约的开发和部署。
在智能合约编写阶段,用户根据业务逻辑,通过可视化智能合约生成器102提供的图形化界面进行智能合约的编写,包括:
如图2所示,通过点击或拖动数据模型图标添加数据模型、输入数据模型属性,包括是否为业务对象、是否为抽象类、是否链上业务、是否工作流、是否持久化对象等;对于需要保存到区块链中的数据,选择是否提供区块链的“增、删、改、查”的智能合约接口;
通过点击或拖动一个或多个数据字段创建图标,添加数据模型中所需要包含的字段,选择是否为主键、普通键、非空、是否附带信息;
如图3所示,通过点击工作流创建图标,对于所添加的多个数据模型,建立模型之间的映射关系,包括“继承、集合、包含、关联、依赖、组合”;通过添加角色、状态、操作等流程信息,形成完整的工作流。对应区块链智能合约,形成对应的程序逻辑判断:哪些角色,在什么状态下,可以对什么数据模型中的什么数据字段,执行什么类型的操作。例如,预先定义了对象A和动作B,当对象A的数据满足特定条件(比如职位为管理员)的时候,允许执行动作B,否则不允许。对应区块链的智能合约中,可以提供所述数据模型的接口API以及所述数据模型之间的正确对应关系。
通过点击执行代码图标,根据所添加的数据模型和数据模型之间的映射关系,生成智能合约的数据对象,通过流程图的绘制(数据模型之间的逻辑关系),实现了智能合约中数据对象的程序逻辑
在一些实施例中,对所生成的智能合约,包括所添加的数据模型和工作流,进行存储;当智能合约脚本程序部署到区块链网络中后,还可能会接收到用户对现有智能合约的重新定义,例如,添加工作流;用户在所述可视化智能合约生成器中加载预先存储的智能合约,对所述预先存储的智能合约对应的数据模型和工作流进行添加和定义,通过执行代码图标,重新生成智能合约;进行编辑和自动部署。
在一些实施例中,可视化智能合约生成器102,根据用户所添加的数据模型,数据模型的属性、数据、映射关系及逻辑,调用相应的编程语言代码,生成智能合约源文件。其中,不同的数据模型,以及数据模型的属性、数据、映射关系都预设了相应的编程语言代码。所述可视化智能合约生成器根据用户的可视化操作生成相对应的智能合约,用户无需手动输入代码,提升了智能合约的编写体验。
可视化智能合约生成器102为图形化编辑器,包括模型管理模块、依赖库模块、代码调用模块、语法检测模块、语义增强模块、逻辑检测模块;其中,模型管理模块主要用于为用户提供数据模型以及数据模型的属性、数据、映射关系设置;依赖库模块主要用于解决合约复用性问题;代码调用模块用于根据用户所添加的数据模型,以及数据模型的属性、数据、映射关系调用相应的编程语言编写代码,并生成完整代码;语法检测模块、语义增强模块和逻辑检测模块主要用于对所生成的完整代码进行错误监测,提前发现智能合约漏洞。
当用户通过可视化智能合约生成器102的模型管理模块添加数据模型,数据模型的属性、数据、映射关系及逻辑,进行智能合约编写过程中,由语法检测模块、语义增强模块、逻辑错误检测模块和依赖库管理模块进行合约校验。语法检测模块主要依赖现有编程语言规范工具进行语法检测,如数据类型声明是否正确等;语义增强模块是对区块链概念的使用检测,如账户,地址等是否被正确使用;代码调用模块主要结合语法检测模块和语义增强模块在编写代码时进行错误提示和自动生成;逻辑错误检测主要通过合约文件的静态分析,避免出现死循环等逻辑错误,以及判断工作流是否正确;依赖库模块则负责根据规则引用工具库中的基础合约,在编译时自动导入,实现智能合约业务的模块化。
在一些实施例中,在合约编译阶段,用户对可视化智能合约生成器102生成的智能合约进行编译,所述智能合约会被自动发送至后端的智能合约编译器104,智能合约编译器104为容器组,容器组中部署了不同的编译工具链的不同版本,避免了开发人员手动进行安装配置的繁琐及工具版本之间的切换。通过编译,产生适用于智能合约的脚本程序,实现预定义的程序逻辑。同时产生可被外界程序调用的API接口。
在一些实施例中,智能合约编译器104可以产生适用于智能合约的脚本程序,实现类的定义、字段的定义,以及类和类之间的关系,同时产生可被外界程序调用的API接口。所述智能合约的脚本程序类型可支持:java、go和Nodejs。
在一些实施例中,可以将所述脚本程序保存到git等代码仓库中。
在一些实施例中,区块链部署器106,将编译产生的智能合约脚本程序,自动部署到指定的区块链网络,例如Hyperledger Fabric网络中。
根据本公开的实施例,实现了以下技术效果:
将保持用户应用程序与智能合约程序的一致性;
也保证了智能合约和用户程序的代码规范性;
通过图形化的操作,简化了用户的使用难度,提高了用户的入门效率。
图4示出了基于图1中所示的可视化的区块链智能合约框架的区块链智能合约创建方法400的示意图。所述区块链智能合约创建方法,包括:
在框410,显示可视化智能合约生成器提供的用户界面,接收用户通过所述用户界面所添加的数据模型,数据模型的属性、数据、映射关系及逻辑,生成智能合约;
在一些实施例中,首先下载所述可视化的区块链智能合约框架,搭建集成环境,例如,对所述框架利用容器编排工具完成相应操作。
在一些实施例中,所述可视化的区块链智能合约框架启动后,用户只需要通过对外公开的浏览器地址通过浏览器进行访问,或直接进入所述可视化的区块链智能合约框架的主界面,即可实现可视化的区块链智能合约的开发和部署。
所述用户界面包括数据模型图标和一个或多个数据字段创建图标;数据模型和字段的属性;工作流创建图标;角色、操作、状态图标和连接图标;
在智能合约编写阶段,用户根据业务逻辑,通过图形化界面设计基于业务需求的业务逻辑,包括:
如图2所示,通过点击或拖动数据模型图标添加数据模型、输入数据模型属性,包括是否为业务对象、是否为抽象类、是否链上业务、是否工作流、是否持久化对象等;
对于需要保存到区块链中的数据,选择是否提供区块链的“增、删、改、查”的智能合约接口;
通过点击或拖动一个或多个数据字段创建图标,添加数据模型中所需要包含的字段,选择是否为主键、普通键、非空、是否附带信息;
如图3所示,通过工作流创建图标,对于所添加的多个数据模型,建立数据模型之间的映射关系,包括“继承、集合、包含、关联、依赖、组合”;通过角色、操作、状态图标和连接图标,通过添加角色、状态、操作等流程信息,形成完整的工作流。对应区块链智能合约,形成对应的程序逻辑判断:哪些角色,在什么状态下,可以对什么数据模型中的什么数据字段,执行什么类型的操作。例如,预先定义了对象A和动作B,当对象A的数据满足特定条件(比如职位为管理员)的时候,允许执行动作B,否则不允许。对应区块链的智能合约中,可以提供所述数据模型的接口API以及所述数据模型之间的正确对应关系。
在一些实施例中,所述数据模型的逻辑为程序逻辑,用户通过所述图形化界面绘制流程图实现数据模型之间的程序逻辑。
通过执行代码图标,根据所添加的数据模型和数据模型之间的映射关系,生成智能合约的数据对象,通过所述流程图的绘制,实现了智能合约中数据对象的程序逻辑。
在一些实施例中,所述可视化智能合约生成器,根据用户所添加的数据模型和数据模型之间的映射关系,形成完整的工作流,使用相应的编程语言编写代码并生成智能合约源文件。所述可视化智能合约生成器根据用户的可视化操作创建相对应的智能合约,提升智能合约的编写体验。
所述可视化智能合约生成器为图形化编辑器,包括模型管理模块、依赖库模块、语法检测模块、语义增强模块、逻辑检测模块和智能提示模块;其中,模型管理模块和依赖库模块主要用于解决合约复用性问题;语法检测模块、语义增强模块和逻辑检测模块主要用于错误监测,提前发现智能合约漏洞;智能提示模块主要用于体验增强,方便用户使用。当用户通过图形化编辑器添加数据模型,以及数据模型的属性、数据、映射关系,形成完整的工作流,进行智能合约编写过程中,由语法检测模块,语义增强模块,智能提示模块,逻辑错误检测模块和依赖库管理模块进行合约校验。语法检测模块主要依赖现有编程语言规范工具进行语法检测,如数据类型声明是否正确等;语义增强模块是对区块链概念的使用检测,如账户,地址等是否被正确使用;智能提示模块主要结合语法检测模块和语义增强模块在用户编写时进行实时提示和自动生成;逻辑错误检测主要通过合约文件的静态分析,避免出现死循环等逻辑错误,以及判断工作流是否正确;依赖库模块则负责根据规则引用工具库中的基础合约,在编译时自动导入,实现智能合约业务的模块化。
在框420,对所述可视化智能合约生成器生成的智能合约进行编译;
所述智能合约被发送至后端的智能合约编译器容器组,所述智能合约编译器容器组中部署了不同的编译工具链的不同版本,避免了开发人员手动进行安装配置的繁琐及工具版本之间的切换。通过编译,产生适用于智能合约的脚本程序,实现预定义的程序逻辑。同时产生可被外界程序调用的API接口。
在一些实施例中,可以产生适用于智能合约的脚本程序,实现类的定义、字段的定义,以及类和类之间的关系,同时产生可被外界程序调用的API接口。所述智能合约的脚本程序类型可支持:java、go和Nodejs。
在一些实施例中,可以将所述脚本程序保存到git等代码仓库中。
在框430,将编译产生的智能合约脚本程序,自动部署到指定的区块链网络中。
在一些实施例中,所述区块链网络为Hyperledger Fabric网络。
在一些实施例中,所述方法还包括框240;
在框440,对现有智能合约进行修改,生成智能合约脚本程序,进行重新部署。
在一些实施例中,当智能合约脚本程序部署到区块链网络中后,还可能会接收到用户对现有工作流的重新定义,例如,添加工作流;用户在所述可视化智能合约生成器中加载预先存储的智能合约,对所述预先存储的智能合约对应的数据模型和工作流进行重新定义,通过执行代码图标,根据重新定义的数据模型和工作流,重新生成智能合约;进行编辑和自动部署。
根据本公开的实施例,实现了以下技术效果:
将保持用户应用程序与智能合约程序的一致性;
也保证了智能合约和用户程序的代码规范性;
通过图形化的操作,简化了用户的使用难度,提高了用户的入门效率;让用户更加专注于业务层面而非底层程序开发层面。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本公开并不受所描述的动作顺序的限制,因为依据本公开,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本公开所必须的。
图5示出了可以用来实施本公开的实施例的电子设备500的示意性框图。设备500可以用于实现图1的消息系统104和消息到达率确定系统106中的至少一个。如图所示,设备500包括中央处理单元(CPU)501,其可以根据存储在只读存储器(ROM)502中的计算机程序指令或者从存储单元508加载到随机访问存储器(RAM)503中的计算机程序指令,来执行各种适当的动作和处理。在RAM 503中,还可以存储设备500操作所需的各种程序和数据。CPU501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
设备500中的多个部件连接至I/O接口505,包括:输入单元506,例如键盘、鼠标等;输出单元507,例如各种类型的显示器、扬声器等;存储单元508,例如磁盘、光盘等;以及通信单元509,例如网卡、调制解调器、无线通信收发机等。通信单元509允许设备500通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理单元501执行上文所描述的各个方法和处理,例如方法400。例如,在一些实施例中,方法400可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元508。在一些实施例中,计算机程序的部分或者全部可以经由ROM 502和/或通信单元509而被载入和/或安装到设备500上。当计算机程序加载到RAM 503并由CPU 501执行时,可以执行上文描述的方法400的一个或多个步骤。备选地,在其他实施例中,CPU 501可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行方法400。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)等等。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
此外,虽然采用特定次序描绘了各操作,但是这应当理解为要求这样操作以所示出的特定次序或以顺序次序执行,或者要求所有图示的操作应被执行以取得期望的结果。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实现中。相反地,在单个实现的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实现中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。
Claims (10)
1.一种可视化的区块链智能合约框架,其特征在于,包括:
可视化智能合约生成器,用于向用户提供图形化界面,以便用户通过可视化操作编写智能合约;
智能合约编译器,用于部署不同编译工具链版本,对所编写的智能合约进行编译;
区块链部署器,用于将编译生成的智能合约自动部署到指定的区块链中。
2.根据权利要求1所述的框架,其特征在于,所述可视化智能合约为图形化编辑器,包括模型管理模块、依赖库模块、代码调用模块、语法检测模块、语义增强模块、逻辑检测模块。
3.根据权利要求2所述的框架,其特征在于,用户通过可视化操作编写智能合约包括:
用户通过所述可视化智能合约生成器添加数据模型,数据模型的属性、数据、映射关系及逻辑,调用相应的编程语言编写代码,进行智能合约编写。
4.根据权利要求2所述的框架,其特征在于,
所述模型管理模块用于为用户提供数据模型以及数据模型的属性、数据、映射关系设置;
所述代码调用模块用于根据用户所添加的数据模型,数据模型的属性、数据、映射关系及逻辑调用相应的编程语言编写代码。
5.根据权利要求2所述的框架,其特征在于,对所编写的智能合约进行编译包括:
产生适用于智能合约的脚本程序,同时产生可被外界程序调用的API接口。
6.根据权利要求1-5任一所述的框架的区块链智能合约创建方法,其特征在于,包括:
显示可视化智能合约生成器提供的用户界面,接收用户通过所述用户界面所添加的数据模型以及数据模型的属性、数据、映射关系以及数据之间的逻辑,生成智能合约;
对所述可视化智能合约生成器生成的智能合约进行编译;
将编译产生的智能合约脚本程序,自动部署到指定的区块链网络中。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
下载所述可视化的区块链智能合约框架,搭建集成环境。
8.根据权利要求6所述的方法,其特征在于,所述方法还包括:
用户通过浏览器进行访问所述可视化智能合约生成器,或直接进入所述可视化的区块链智能合约框架的主界面。
9.一种电子设备,包括存储器和处理器,所述存储器上存储有计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求6~8中任一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求6~8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011026506.1A CN112148278A (zh) | 2020-09-25 | 2020-09-25 | 可视化的区块链智能合约框架及智能合约开发部署方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011026506.1A CN112148278A (zh) | 2020-09-25 | 2020-09-25 | 可视化的区块链智能合约框架及智能合约开发部署方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112148278A true CN112148278A (zh) | 2020-12-29 |
Family
ID=73897489
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011026506.1A Pending CN112148278A (zh) | 2020-09-25 | 2020-09-25 | 可视化的区块链智能合约框架及智能合约开发部署方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112148278A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111427555A (zh) * | 2020-03-30 | 2020-07-17 | 中科全维科技(苏州)有限公司 | 一种轻量化智能合约框架及合约开发方法 |
CN113254054A (zh) * | 2021-06-09 | 2021-08-13 | 上海万向区块链股份公司 | 一种智能合约一站式开发系统及方法 |
CN113312035A (zh) * | 2021-05-17 | 2021-08-27 | 南京大学 | 一种面向Hyperledger Fabric的智能合约开发插件 |
CN113672632A (zh) * | 2021-08-06 | 2021-11-19 | 戈尔特西斯科技(济南)有限公司 | 基于智能合约的链上历史数据变更记录快速查询调用方法 |
CN114265595A (zh) * | 2021-12-24 | 2022-04-01 | 北京航空航天大学云南创新研究院 | 一种基于智能合约的云原生应用开发与部署系统和方法 |
CN114666035A (zh) * | 2022-05-13 | 2022-06-24 | 深圳市赢向量科技有限公司 | 一种基于保密通信的区块链智能合约执行方法及运行系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109375915A (zh) * | 2018-10-26 | 2019-02-22 | 陕西医链区块链集团有限公司 | 一种区块链可视化编程系统及方法 |
WO2019127531A1 (zh) * | 2017-12-29 | 2019-07-04 | 深圳前海达闼云端智能科技有限公司 | 基于区块链的数据处理方法、装置、存储介质及电子设备 |
CN111427555A (zh) * | 2020-03-30 | 2020-07-17 | 中科全维科技(苏州)有限公司 | 一种轻量化智能合约框架及合约开发方法 |
-
2020
- 2020-09-25 CN CN202011026506.1A patent/CN112148278A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019127531A1 (zh) * | 2017-12-29 | 2019-07-04 | 深圳前海达闼云端智能科技有限公司 | 基于区块链的数据处理方法、装置、存储介质及电子设备 |
CN109375915A (zh) * | 2018-10-26 | 2019-02-22 | 陕西医链区块链集团有限公司 | 一种区块链可视化编程系统及方法 |
CN111427555A (zh) * | 2020-03-30 | 2020-07-17 | 中科全维科技(苏州)有限公司 | 一种轻量化智能合约框架及合约开发方法 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111427555A (zh) * | 2020-03-30 | 2020-07-17 | 中科全维科技(苏州)有限公司 | 一种轻量化智能合约框架及合约开发方法 |
CN113312035A (zh) * | 2021-05-17 | 2021-08-27 | 南京大学 | 一种面向Hyperledger Fabric的智能合约开发插件 |
CN113312035B (zh) * | 2021-05-17 | 2023-06-06 | 南京大学 | 一种面向Hyperledger Fabric的智能合约开发插件的实现方法 |
CN113254054A (zh) * | 2021-06-09 | 2021-08-13 | 上海万向区块链股份公司 | 一种智能合约一站式开发系统及方法 |
CN113672632A (zh) * | 2021-08-06 | 2021-11-19 | 戈尔特西斯科技(济南)有限公司 | 基于智能合约的链上历史数据变更记录快速查询调用方法 |
CN114265595A (zh) * | 2021-12-24 | 2022-04-01 | 北京航空航天大学云南创新研究院 | 一种基于智能合约的云原生应用开发与部署系统和方法 |
CN114265595B (zh) * | 2021-12-24 | 2022-09-02 | 北京航空航天大学云南创新研究院 | 一种基于智能合约的云原生应用开发与部署系统和方法 |
CN114666035A (zh) * | 2022-05-13 | 2022-06-24 | 深圳市赢向量科技有限公司 | 一种基于保密通信的区块链智能合约执行方法及运行系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109324791B (zh) | 金融自助终端业务流程开发方法、装置及终端设备 | |
CN112148278A (zh) | 可视化的区块链智能合约框架及智能合约开发部署方法 | |
US8448132B2 (en) | Systems and methods for modifying code generation templates | |
CN105022630B (zh) | 一种组件管理系统及组件管理方法 | |
US9298427B2 (en) | Creating inferred symbols from code usage | |
US20080276221A1 (en) | Method and apparatus for relations planning and validation | |
US10514898B2 (en) | Method and system to develop, deploy, test, and manage platform-independent software | |
US20140229924A1 (en) | Automatic configuration of project system from project capabilities | |
CN110673837B (zh) | 代码修复方法及装置、电子设备、计算机可读存储介质 | |
CN103186463B (zh) | 确定软件的测试范围的方法和系统 | |
US20150160938A1 (en) | Automation in rule engine in an integration development environment | |
CN111752841A (zh) | 单测模拟方法、装置、设备与计算机可读存储介质 | |
CN111159301A (zh) | 一种基于智能合约的数据创建方法、装置、设备及存储介质 | |
CN116974581B (zh) | 代码生成方法、装置、电子设备和存储介质 | |
CN103064783A (zh) | 使用重复利用动态链接库进行功能测试的系统和方法 | |
CN113031964B (zh) | 一种大数据应用的管理方法、装置、设备及存储介质 | |
US20220413843A1 (en) | Combining model-driven applications and canvas-type applications with application lifecycle management | |
CN114911541A (zh) | 配置信息的处理方法、装置、电子设备及存储介质 | |
CN114489704A (zh) | 基于策略的版本编译部署方法及装置 | |
CN115022312A (zh) | 多智能合约引擎的实现方法、装置、电子设备及存储介质 | |
US10657476B2 (en) | Just in time compilation (JIT) for business process execution | |
CN105393216B (zh) | 运行时内存调节 | |
CN111880775A (zh) | 多模块分层架构实现方法、装置、电子设备、存储介质 | |
CN113032004A (zh) | 在开发环境中管理开发作业的方法、设备和程序产品 | |
CN112000366B (zh) | 基于代码生成器的系统参数配置方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20220523 Address after: 100023 Room 802, unit 1, building 5, yard 4, Huangchang Road, Chaoyang District, Beijing Applicant after: Jin Xin Address before: 100101 107, 1st floor, block a, building 1, No.8 Xiaoying Road, Chaoyang District, Beijing Applicant before: Moshi Technology (Beijing) Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20201229 |
|
RJ01 | Rejection of invention patent application after publication |