CN111459504A - 智能合约的处理方法、装置、设备和存储介质 - Google Patents

智能合约的处理方法、装置、设备和存储介质 Download PDF

Info

Publication number
CN111459504A
CN111459504A CN202010238485.3A CN202010238485A CN111459504A CN 111459504 A CN111459504 A CN 111459504A CN 202010238485 A CN202010238485 A CN 202010238485A CN 111459504 A CN111459504 A CN 111459504A
Authority
CN
China
Prior art keywords
contract
template
contract template
target
user
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.)
Granted
Application number
CN202010238485.3A
Other languages
English (en)
Other versions
CN111459504B (zh
Inventor
王玉操
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Baidu International Technology Shenzhen Co ltd
Original Assignee
Baidu International Technology Shenzhen Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Baidu International Technology Shenzhen Co ltd filed Critical Baidu International Technology Shenzhen Co ltd
Priority to CN202010238485.3A priority Critical patent/CN111459504B/zh
Publication of CN111459504A publication Critical patent/CN111459504A/zh
Application granted granted Critical
Publication of CN111459504B publication Critical patent/CN111459504B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请公开了一种智能合约的处理方法、装置、设备和存储介质,涉及区块链技术领。具体实现方案为:响应于开发者的模板发布请求,接收设施开发者待发布的合约模板;通过区块链测试网络,对所述合约模板进行验证;若所述合约模板验证通过,则基于平台发布所述合约模板。不仅能够为开发者提供模板的测试依据,有利于开发者高效准确的模板开发,而且能够将有效的合约模板通过平台提供给用户,避免基于问题模板而部署了错误的智能合约,提高了合约模板的可复用性以及区块链系统的易用性,进一步提高智能合约的开发效率和准确性。

Description

智能合约的处理方法、装置、设备和存储介质
技术领域
本申请实施例涉及计算机技术领域,尤其涉及区块链技术领域,具体涉及一种智能合约的处理方法、装置、设备和存储介质。
背景技术
随着区块链技术的快速发展,社会各行各业对接入区块链的需求越来越强,智能合约的开发和部署尤为重要。然而,智能合约的开发具有一定的入门门槛,即使基于现有的模板普通用户也难以直接使用,降低智能合约开发的效率和准确性。
发明内容
提供了一种智能合约的处理方法、装置、设备和存储介质,能够提高智能合约的开发效率和准确性。
根据第一方面,提供了一种智能合约的处理方法,包括:
响应于开发者的模板发布请求,接收所述开发者待发布的合约模板;
通过区块链测试网络,对所述合约模板进行验证;
若所述合约模板验证通过,则基于平台发布所述合约模板。
根据第二方面,提供了一种智能合约的处理装置,包括:
合约模板管理模块,用于响应于开发者的模板发布请求,接收所述开发者待发布的合约模板;
合约模板验证模块,用于通过区块链测试网络,对所述合约模板进行验证;
合约模板发布模块,用于若所述合约模板验证通过,则基于平台发布所述合约模板。
根据第三方面,提供了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本申请任意实施例所述的智能合约的处理方法。
根据第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行本申请任意实施例所述的智能合约的处理方法。
根据本申请的技术,不仅能够为开发者提供模板的测试依据,有利于开发者高效准确的模板开发,而且能够将有效的合约模板通过平台提供给用户,避免基于问题模板而部署了错误的智能合约,提高了合约模板的可复用性以及区块链系统的易用性,进一步提高智能合约的开发效率和准确性。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1是根据本申请第一实施例的一种智能合约的处理方法的流程图;
图2是根据本申请第二实施例的一种智能合约的处理方法的流程图;
图3是根据本申请第三实施例的一种智能合约的处理方法的流程图;
图4是根据本申请第四实施例的一种智能合约的处理方法的流程图;
图5是根据本申请第四实施例的基于平台的合约模板交易示例图;
图6是根据本申请第五实施例的一种智能合约的处理装置的结构示意图;
图7是用来实现本申请实施例的智能合约的处理方法的电子设备的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
第一实施例
图1是根据本申请第一实施例的一种智能合约的处理方法的流程图,本实施例可适用于通过平台对开发者待发布的合约模板进行验证并发布的情况,该方法可由一种智能合约的处理装置来执行,该装置采用软件和/或硬件的方式实现,优选是配置于电子设备中,例如合约市场服务平台的客户端或服务器中。如图1所示,该方法具体包括如下:
S110、响应于开发者的模板发布请求,接收开发者待发布的合约模板。
在本申请具体实施例中,合约模板是指智能合约代码逻辑已编写完成的区块链智能合约框架,用于用户基于合约模板填充具体参数配置信息,以构建生成区块链智能合约。合约模板中可以包括合约模板代码以及相关文档信息,相关文档信息包括但不局限于是否对外公开合约源代码、合约功能介绍、接口函数功能和参数说明等。相应的,用户根据合约模板并结合所需业务,可以在无需了解如何编写区块链智能合约的情况下,就可以通过选择合适的合约模板生成智能合约,以向区块链网络进行部署。
本实施例中,开发者是指任何能够开发合约模板的程序员、工作人员或普通用户等。模板发布请求是指由开发者向平台发起的,用于发布合约模板的请求。模板发布请求中可以包括合约模板中的合约模板代码以及相关文档信息,还可以包括开发者个人信息以及开发者对于合约模板的定价信息等。
本实施例中,可以通过提供一种中心化的合约市场服务平台,为开发者提供合约模板的管理服务,以此来接收并管理合约模板。具体的,开发者在本地进行合约模板的开发和测试,生成合约模板。通过平台的合约提交页面,向平台提交合约模板相关的一切信息。其中,开发者所提交的合约模板仅限于提交阶段,尚未发布于平台中,因此该阶段的合约模板称为待发布的合约模板。也就是说,开发者以外的其他用户,尚不能通过平台浏览或检索到刚被提交但未发布的合约模板。
S120、通过区块链测试网络,对合约模板进行验证。
在本申请具体实施例中,区块链测试网络是指专用于对合约模板进行验证的区块链网络。平台中可以嵌入有区块链客户端,从而通过区块链客户端与区块链测试网络等区块链网络进行交互。
本实施例中,对合约模板的验证是指以平台的角度,通过对合约模板的形式和实施等多方面进行测试,以验证待发布的合约模板是否为行之有效的合约模板。其验证手段包括但不局限于可用性验证、功能能验证以及安全性验证等。
具体的,平台可以对合约模板代码进行编译,若编译通过,则根据待发布的合约模板生成智能合约用例。通过平台中嵌入的区块链客户端,向区块链测试网络发起合约部署事务,以使区块链测试网络中的区块链节点进行智能合约用例的部署。若部署成功,则可用性验证通过。
此外,在区块链测试网络中部署智能合约用例的基础上,平台还可以对合约模板进行自动化或人工的功能性验证。具体的,平台可以根据合约模板的合约接口和参数说明等信息中规定的参数数量和类型,随机生成输入测试参数,并发起对区块链测试网络上智能合约用例的调用。若能够接收到智能合约用例返回的结果,则自动化的功能性验证通过。或者,人工对合约模板声明的每个函数接口构造具有针对性的输入参数,并事先确定输入参数对应的正确返回结果,从而根据输入参数发起对链上智能合约用例的调用。若接收到的智能合约用例返回的结果与正确返回结果相同,则人工的功能性验证通过。其中,相对于自动化的功能性验证,人工的功能性验证可以验证调用结果的正确性,提高验证的准确性。
此外,平台还可以借助代码静态分析工具、运行时检测工具等外部工具,以从形式上检查合约模板代码是否存在恶意代码或者安全漏洞,实现安全性验证。
S130、若合约模板验证通过,则基于平台发布合约模板。
在本申请具体实施例中,若开发者通过平台所选择的所有的合约模板验证方式均通过,则可以视为合约模板验证通过,此时的合约模板才具有发布上线的权限。相应的,平台将验证通过的合约模板添加在合约数据库中。并根据合约模板的相关文档信息,将合约模板发布到平台页面中,以供用户浏览或检索。例如,若相关文档信息中开发者不对外公开合约模板源代码,则在合约模板发布时,只公开合约功能介绍、接口函数功能和参数说明等。
此外,平台还可以为用户提供合约模板的选择和验证、智能合约的生成和部署等服务,以此辅助用户在无需编写智能合约的基础上,即可将智能合约部署在指定的区块链网络上。
本实施例的技术方案,提出了一种合约市场服务平台,在接收开发者上传的待发布的合约模板之后,可以基于区块链测试网络,对合约模板进行验证,从而在验证通过时,将合约模板发布到平台中,以供用户通过平台选择合约模板进行智能合约的部署。本申请实施例通过平台对开发者待发布的合约模板进行验证,不仅能够为开发者提供模板的测试依据,有利于开发者高效准确的模板开发,而且能够将有效的合约模板通过平台提供给用户,避免基于问题模板而部署了错误的智能合约,提高了合约模板的可复用性以及区块链系统的易用性,进一步提高智能合约的开发效率和准确性。
第二实施例
图2是根据本申请第二实施例的一种智能合约的处理方法的流程图,本实施例在上述第一实施例的基础上,进一步对通过区块链测试网络,对合约模板进行验证进行解释说明,能够通过将基于合约模板生成的智能合约用例部署到区块链测试网络上,根据区块链测试网络上的智能合约用例,对合约模板进行验证。如图2所示,该方法具体包括如下:
S210、响应于开发者的模板发布请求,接收开发者待发布的合约模板。
S220、根据合约模板,生成智能合约用例。
在本申请具体实施例中,智能合约用例是指基于待发布的合约模板所构建的区块链智能合约样例,通过对智能合约用例的验证来验证合约模板的有效性。
具体的,平台可以对合约模板代码进行编译,若编译通过,则说明合约模板代码的逻辑无误。并根据合约模板相关文档信息中的合约功能介绍等信息,为合约模板填充必要的配置信息,随机生成合约模板的智能合约用例。
S230、向区块链测试网络发起智能合约用例的合约部署事务。
在本申请具体实施例中,合约部署事务是由平台向区块链测试网络发起的事务,用于指示区块链测试网络中的区块链节点执行智能合约的部署。其中,合约部署事务中可以包括待部署的智能合约用例。具体的,平台通过其中嵌入的区块链客户端,向区块链测试网络发起智能合约用例的合约部署事务。
S240、若智能合约用例部署成功,则根据区块链测试网络上部署的智能合约用例,对合约模板进行功能性验证。
在本申请具体实施例中,若检测到区块链测试网络上智能合约用例部署成功,则确定合约模板的可用性验证通过。从而在区块链测试网络中部署有智能合约用例的基础上,平台还可以对合约模板进行自动化或人工的功能性验证。
可选的,根据合约模板的合约接口和参数说明,生成输入测试参数;根据输入测试参数,发起对区块链测试网络上智能合约用例的调用;若接收到智能合约用例的返回结果,则确定合约模板的功能性验证通过。
本实施例中,平台可以根据合约模板的合约接口和参数说明等信息中规定的参数数量和类型,随机生成输入测试参数。平台通过其中嵌入的区块链客户端,将输入测试参数输入至区块链测试网络中,以发起对区块链测试网络上智能合约用例的调用,并等待接收区块链测试网络中智能合约用例的返回结果。若能够接收到智能合约用例返回的结果,则确定自动化的功能性验证通过。此时,并没有验证返回结果的正确性。
其中,通过平台对合约模板的自动化功能性验证,不仅节省了开发者等人员对于合约模板的人工验证成本,提高了模板的验证效率,而且基于区块链测试网络的实际场景验证,避免了人工验证的局限性,保障了合约模板在实际场景的行之有效性。
本实施例中,若为了提高功能性验证的准确性,验证返回结果的正确性,可以采用人工方式进行功能性验证,具体的,人工对合约模板声明的每个函数接口构造具有针对性的输入参数,并事先确定输入参数对应的正确返回结果,从而根据输入参数发起对链上智能合约用例的调用。若接收到智能合约用例返回的结果与正确返回结果相同,则确定人工的功能性验证通过。
此外,平台还可以借助代码静态分析工具、运行时检测工具等外部工具,以从形式上检查合约模板代码是否存在恶意代码或者安全漏洞,实现安全性验证。
本实施例中平台基于区块链测试网络对合约模板的验证方式不局限于此,任何能够对合约模板进行验证的方式都可以应用于本实施例中。其中,开发者可以通过平台选择合约模板的验证的方式,优选的,可用性验证、自动化的功能性验证以及安全性验证是必选的,而人工的功能性验证是可选的。任意一种验证方式的验证结果可以通过平台的页面反馈给开发者,以告知开发者待发布的合约模板的有效性。通过平台对开发者待发布的合约模板进行验证,在检测到任意一种验证不通过时,开发者可以根据验证结果对合约模板进行及时地修改和重新提交,为开发者提供模板的测试依据,保障了待发布的合约模板在形式上和实施上等方面均有效,提高了合约模板的开发效率和准确性。
S250、若合约模板验证通过,则基于平台发布合约模板。
本实施例的技术方案,平台根据开发者上传的待发布的合约模板生成智能合约用例,并将智能合约用例部署在区块链测试网络中,从而基于区块链测试网络对合约模板进行可用性和功能性等验证,将验证通过的合约模板发布到平台中,以供用户通过平台选择合约模板进行智能合约的部署。本申请实施例通过平台对开发者待发布的合约模板进行验证,不仅能够为开发者提供模板的测试依据,保障了合约模板在形式上和实施上等方面均有效,提高了合约模板的开发效率和准确性,而且能够将有效的合约模板通过平台提供给用户,避免基于问题模板而部署了错误的智能合约,提高了合约模板的可复用性以及区块链系统的易用性,进一步提高智能合约的开发效率和准确性。
第三实施例
图3是根据本申请第三实施例的一种智能合约的处理方法的流程图,本实施例在上述第一实施例的基础上,进一步对用户基于平台中发布的合约模板进行智能合约部署的流程进行解释说明,能够为用户选择验证有效的目标合约模板,并基于目标合约模板将生成的目标智能合约部署到目标区块链网络上。如图3所示,该方法具体包括如下:
S310、响应于开发者的模板发布请求,接收开发者待发布的合约模板。
S320、通过区块链测试网络,对合约模板进行验证。
S330、若合约模板验证通过,则基于平台发布合约模板。
S340、响应于用户的合约部署请求,确定用户选择的目标合约模板。
在本申请具体实施例中,用户是指通过平台浏览、检索或购买合约模板的用户,以及基于合约模板构建和部署智能合约的用户。用户可以是程序员、工作人员或普通用户,甚至可以是不了解如何编写区块链智能合约的任何用户。
本实施例中,合约部署请求是指用户向平台发起的请求。根据用户的不同需求,合约部署请求可以用于从平台的合约数据库中检索得到符合用户需求的目标合约模板,还可以用于基于目标合约模板构建目标智能合约,还可以用于将目标智能合约部署到目标区块链网络上。合约部署请求中可以包括用户的功能需求信息等检索条件。
本实施例中,目标合约模板是指平台为用户提供的最终的合约模板。目标合约模板可以是用户通过平台直接选择的,也可以是平台通过检索为用户选择的。其中,基于区块链测试网络中已部署的各个合约模板的智能合约用例,还可以为用户提供合约模板的在线的功能性测试接口,以便为用户选择更加准确的合约模板。
具体的,目标合约模板的选择流程具体可以如下所示:
A、获取用户选择的候选合约模板。
本实施例中,候选合约模板是指用户通过平台,从平台发布的合约模板中初始选择的多个合约模板。候选合约模板可以是用户通过平台页面直接浏览各个合约模板的相关文档信息所选择的多个合约模板,还可以是平台响应用户的合约部署请求所检索得到的多个合约模板。
B、根据用户的输入参数,发起对区块链测试网络上候选合约模板的候选智能合约用例的调用。
本实施例中,为了提高用户所获取的合约模板的准确性,还可以基于合约模板发布阶段,区块链测试网络中已部署的各个合约模板的智能合约用例,为用户提供在线的功能性测试的接口。相应的,候选智能合约用例是指候选合约模板对应的区块链智能合约样例。
具体的,用户根据候选合约模板中的相关文档信息,并结合自身的业务需求,制定输入参数,并事先确定输入参数对应的正确返回结果,从而根据输入参数发起对链上候选智能合约用例的调用。
C、根据候选智能合约用例的调用结果,以及用户的预设结果,从候选合约模板中选择目标合约模板。
本实施例中,预设结果是指用户事先确定的输入参数对应的正确返回结果。具体的,鉴于在合约模板的发布阶段,候选智能合约用例是通过平台验证的,进而候选智能合约用例在调用后,必然会返回结果。因此用户可以通过平台页面获得候选智能合约用例的调用结果,由用户将调用结果与预设结果进行比对。或者,用户在发起调用之前,可以将预设结果输入值平台中,从而平台将调用结果与预设结果进行比对。若调用结果与预设结果比对一致,则将符合用户的业务需求的候选合约模板确定为目标合约模板。用户可以通过平台发起对目标合约模板的购买。
其中,在用户基于平台选择目标合约模板的阶段,通过为用户提供在线的功能性验证接口,避免了用户由于购买了错误的合约模板而反复盲目的选择和无效模板的购买,提高了用户对于目标合约模板的选择效率和准确性,降低用户的购买成本。
S350、向目标区块链网络部署基于目标合约模板生成的目标智能合约。
在本申请具体实施例中,在用户选择并购买了目标合约模板之后,目标合约模板可以保存在平台的用户账户中,从而用户可以对目标合约模板进行自由的使用。其中,由于不同的合约模板代码具有公开性或不公开性,因此合约模板的使用优选只有在平台中才有效,即合约模板并不能脱离平台在平台的无监管情况下非法使用。
本实施例中,目标区块链网络是指用户指定的区块链网络。目标智能合约是指基于目标合约模板而生成的符合用户自身业务需求的区块链智能合约。其中,用户可以通过平台根据目标合约模板生成目标智能合约,即无需用户任何的智能合约编写操作。目标智能合约可以脱离平台而使用,即用户可以从平台中下载目标智能合约进行线上或线下的使用。或者,用户还可以通过平台,将目标智能合约部署于目标区块链网络中。
具体的,目标智能合约的部署流程具体可以如下所示:
A、基于目标合约模板,根据用户输入的配置信息,生成目标智能合约。
本实施例中,用户可以结合自身的业务需求,根据目标合约模板的功能介绍等相关文档信息,向平台输入目标合约模板的具体配置信息。平台将配置信息添加至模板合约模板中,以生成目标智能合约。
B、向用户指定的目标区块链网络发起合约部署事务,以向目标区块链网络部署目标智能合约。
本实施例中,合约部署事务是由平台向用户指定的目标区块链网络发起的事务,用于指示目标区块链网络中的区块链节点执行智能合约的部署。其中,合约部署事务中可以包括待部署的目标智能合约以及目标区块链网络信息。具体的,平台通过其中嵌入的区块链客户端,向目标区块链网络发起目标智能合约的合约部署事务,实现智能合约由生成到部署的一条龙服务。
其中,通过平台生成并部署智能合约,大幅度降低了用户对于区块链系统中智能合约部署的技术要求,用户可以在合约模板的基础上,结合不同的业务需求而生成不同的智能合约,提高了合约模板的复用性以及智能合约的生成效率和准确性。
本实施例的技术方案,通过平台为开发者和用户提供了合约模板的交易渠道,不仅为开发者带来了收益,而且为用户降低了用户部署智能合约的技术要求,用户甚至无需了解如何编写区块链智能合约就可以通过选择合适的合约模板将现有业务接入区块链,提高了合约模板的可复用性以及区块链系统的易用性。
第四实施例
图4是根据本申请第四实施例的一种智能合约的处理方法的流程图,本实施例在上述第一实施例的基础上,进一步对基于中心化的合约市场服务平台,为开发者提供合约模板验证和发布的服务,为用户提供合约模板的选择和验证的服务,以及为用户提供智能合约生成和部署的服务进行解释说明。如图4所示,该方法具体包括如下:
S410、响应于开发者的模板发布请求,接收开发者待发布的合约模板。
S420、根据合约模板,生成智能合约用例;向区块链测试网络发起智能合约用例的合约部署事务。
S430、若智能合约用例部署成功,则确定合约模板的可用性验证通过,并根据区块链测试网络上部署的智能合约用例,对合约模板进行功能性验证。
S440、若合约模板验证通过,则基于平台发布合约模板。
S450、响应于用户的合约部署请求,获取用户选择的候选合约模板。
S460、根据用户的输入参数,发起对区块链测试网络上候选合约模板的候选智能合约用例的调用;根据候选智能合约用例的调用结果,以及用户的预设结果,从候选合约模板中选择目标合约模板。
S470、基于目标合约模板,根据用户输入的配置信息,生成目标智能合约;向用户指定的目标区块链网络发起合约部署事务,以向目标区块链网络部署目标智能合约。
示例性的,图5为基于平台的合约模板交易示例图。如图5所示,开发者向平台提交合约模板,平台通过其中嵌入的区块链客户端,对合约模板进行链上验证和安全性验证,并将通过验证的合约模板发布到平台中。相应的,用户从平台上进行合约模板浏览,基于平台与区块链网络之间的交互,对合约模板进行链上测试,从而购买测试符合用户需求的合约模板,并通过平台进行智能合约的生成和区块链的部署。
本实施例的技术方案,通过平台对开发者待发布的合约模板进行验证,不仅能够为开发者提供模板的测试依据,有利于开发者高效准确的模板开发,而且能够将有效的合约模板通过平台提供给用户,避免基于问题模板而部署了错误的智能合约,提高了合约模板的可复用性以及区块链系统的易用性,进一步提高智能合约的开发效率和准确性。
第五实施例
图6是根据本申请第五实施例的一种智能合约的处理装置的结构示意图,本实施例可适用于通过平台对开发者待发布的合约模板进行验证并发布的情况,该装置可实现本申请任意实施例所述的智能合约的处理方法。
该装置600具体包括如下:
合约模板管理模块610,用于响应于开发者的模板发布请求,接收所述开发者待发布的合约模板;
合约模板验证模块620,用于通过区块链测试网络,对所述合约模板进行验证;
合约模板发布模块630,用于若所述合约模板验证通过,则基于平台发布所述合约模板。
可选的,所述合约模板验证模块620具体用于:
根据所述合约模板,生成智能合约用例;
向区块链测试网络发起所述智能合约用例的合约部署事务;
若所述智能合约用例部署成功,则根据所述区块链测试网络上部署的所述智能合约用例,对所述合约模板进行功能性验证。
可选的,所述合约模板验证模块620具体还用于:
根据所述合约模板的合约接口和参数说明,生成输入测试参数;
根据所述输入测试参数,发起对所述区块链测试网络上智能合约用例的调用;
若接收到所述智能合约用例的返回结果,则确定所述合约模板的功能性验证通过。
进一步的,所述装置600还包括合约部署模块640,包括:
合约模板选择单元6401,用于在所述基于平台发布所述合约模板之后,响应于用户的合约部署请求,确定所述用户选择的目标合约模板;
智能合约部署单元6402,用于向目标区块链网络部署基于所述目标合约模板生成的目标智能合约。
可选的,所述智能合约部署单元6402具体用于:
基于所述目标合约模板,根据所述用户输入的配置信息,生成目标智能合约;
向所述用户指定的目标区块链网络发起合约部署事务,以向所述目标区块链网络部署所述目标智能合约。
可选的,所述合约模板选择单元6401具体用于:
获取用户选择的候选合约模板;
根据所述用户的输入参数,发起对区块链测试网络上所述候选合约模板的候选智能合约用例的调用;
根据所述候选智能合约用例的调用结果,以及所述用户的预设结果,从所述候选合约模板中选择目标合约模板。
本实施例的技术方案,通过各个功能模块之间的相互配合,实现了开发者的响应、合约模板的接收、合约模板的智能合约用例的部署、合约模板的验证、合约模板的发布、用户的响应、目标合约模板的选择、模板合约模板的验证、智能合约的生成和部署等功能。本申请实施例通过平台对开发者待发布的合约模板进行验证,不仅能够为开发者提供模板的测试依据,有利于开发者高效准确的模板开发,而且能够将有效的合约模板通过平台提供给用户,避免基于问题模板而部署了错误的智能合约,提高了合约模板的可复用性以及区块链系统的易用性,进一步提高智能合约的开发效率和准确性。
第六实施例
根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。
如图7所示,是根据本申请实施例的智能合约的处理方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图7所示,该电子设备包括:一个或多个处理器701、存储器702,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示图形用户界面(Graphical User Interface,GUI)的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图7中以一个处理器701为例。
存储器702即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的智能合约的处理方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的智能合约的处理方法。
存储器702作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的智能合约的处理方法对应的程序指令/模块(例如,附图6所示的合约模板管理模块610、合约模板验证模块620、合约模板发布模块630和合约部署模块640)。处理器701通过运行存储在存储器702中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的智能合约的处理方法。
存储器702可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据智能合约的处理方法的电子设备的使用所创建的数据等。此外,存储器702可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器702可选包括相对于处理器701远程设置的存储器,这些远程存储器可以通过网络连接至智能合约的处理方法的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
智能合约的处理方法的电子设备还可以包括:输入装置703和输出装置704。处理器701、存储器702、输入装置703和输出装置704可以通过总线或者其他方式连接,图7中以通过总线连接为例。
输入装置703可接收输入的数字或字符信息,以及产生与智能合约的处理方法的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置704可以包括显示设备、辅助照明装置(例如,发光二极管(Light Emitting Diode,LED))和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(Liquid CrystalDisplay,LCD)、LED显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用集成电路(Application Specific Integrated Circuit,ASIC)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(Programmable Logic Device,PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,阴极射线管(Cathode Ray Tube,CRT)或者LCD监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(Local Area Network,LAN)、广域网(Wide Area Network,WAN)、互联网和区块链网络。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
根据本申请实施例的技术方案,通过平台对开发者待发布的合约模板进行验证,不仅能够为开发者提供模板的测试依据,有利于开发者高效准确的模板开发,而且能够将有效的合约模板通过平台提供给用户,避免基于问题模板而部署了错误的智能合约,提高了合约模板的可复用性以及区块链系统的易用性,进一步提高智能合约的开发效率和准确性。
另外,上述申请中的一个实施例具有如下优点或有益效果:通过平台对开发者待发布的合约模板进行验证,在检测到任意一种验证不通过时,开发者可以根据验证结果对合约模板进行及时地修改和重新提交,为开发者提供模板的测试依据,保障了待发布的合约模板在形式上和实施上等方面均有效,提高了合约模板的开发效率和准确性。
另外,上述申请中的一个实施例具有如下优点或有益效果:通过平台对合约模板的自动化功能性验证,不仅节省了开发者等人员对于合约模板的人工验证成本,提高了模板的验证效率,而且基于区块链测试网络的实际场景验证,避免了人工验证的局限性,保障了合约模板在实际场景的行之有效性。
另外,上述申请中的一个实施例具有如下优点或有益效果:通过平台为开发者和用户提供了合约模板的交易渠道,不仅为开发者带来了收益,而且为用户降低了用户部署智能合约的技术要求,用户甚至无需了解如何编写区块链智能合约就可以通过选择合适的合约模板将现有业务接入区块链,提高了合约模板的可复用性以及区块链系统的易用性。
另外,上述申请中的一个实施例具有如下优点或有益效果:通过平台生成并部署智能合约,大幅度降低了用户对于区块链系统中智能合约部署的技术要求,用户可以在合约模板的基础上,结合不同的业务需求而生成不同的智能合约,提高了合约模板的复用性以及智能合约的生成效率和准确性。
另外,上述申请中的一个实施例具有如下优点或有益效果:在用户基于平台选择目标合约模板的阶段,通过为用户提供在线的功能性验证接口,避免了用户由于购买了错误的合约模板而反复盲目的选择和无效模板的购买,提高了用户对于目标合约模板的选择效率和准确性,降低用户的购买成本。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。

Claims (14)

1.一种智能合约的处理方法,其特征在于,包括:
响应于开发者的模板发布请求,接收所述开发者待发布的合约模板;
通过区块链测试网络,对所述合约模板进行验证;
若所述合约模板验证通过,则基于平台发布所述合约模板。
2.根据权利要求1所述的方法,其特征在于,所述通过区块链测试网络,对所述合约模板进行验证,包括:
根据所述合约模板,生成智能合约用例;
向区块链测试网络发起所述智能合约用例的合约部署事务;
若所述智能合约用例部署成功,则根据所述区块链测试网络上部署的所述智能合约用例,对所述合约模板进行功能性验证。
3.根据权利要求2所述的方法,其特征在于,所述根据所述区块链测试网络上部署的所述智能合约用例,对所述合约模板进行功能性验证,包括:
根据所述合约模板的合约接口和参数说明,生成输入测试参数;
根据所述输入测试参数,发起对所述区块链测试网络上智能合约用例的调用;
若接收到所述智能合约用例的返回结果,则确定所述合约模板的功能性验证通过。
4.根据权利要求1所述的方法,其特征在于,在所述基于平台发布所述合约模板之后,还包括:
响应于用户的合约部署请求,确定所述用户选择的目标合约模板;
向目标区块链网络部署基于所述目标合约模板生成的目标智能合约。
5.根据权利要求4所述的方法,其特征在于,所述向目标区块链网络部署基于所述目标合约模板生成的目标智能合约,包括:
基于所述目标合约模板,根据所述用户输入的配置信息,生成目标智能合约;
向所述用户指定的目标区块链网络发起合约部署事务,以向所述目标区块链网络部署所述目标智能合约。
6.根据权利要求4所述的方法,其特征在于,所述确定所述用户选择的目标合约模板,包括:
获取用户选择的候选合约模板;
根据所述用户的输入参数,发起对区块链测试网络上所述候选合约模板的候选智能合约用例的调用;
根据所述候选智能合约用例的调用结果,以及所述用户的预设结果,从所述候选合约模板中选择目标合约模板。
7.一种智能合约的处理装置,其特征在于,包括:
合约模板管理模块,用于响应于开发者的模板发布请求,接收所述开发者待发布的合约模板;
合约模板验证模块,用于通过区块链测试网络,对所述合约模板进行验证;
合约模板发布模块,用于若所述合约模板验证通过,则基于平台发布所述合约模板。
8.根据权利要求7所述的装置,其特征在于,所述合约模板验证模块具体用于:
根据所述合约模板,生成智能合约用例;
向区块链测试网络发起所述智能合约用例的合约部署事务;
若所述智能合约用例部署成功,则根据所述区块链测试网络上部署的所述智能合约用例,对所述合约模板进行功能性验证。
9.根据权利要求8所述的装置,其特征在于,所述合约模板验证模块具体还用于:
根据所述合约模板的合约接口和参数说明,生成输入测试参数;
根据所述输入测试参数,发起对所述区块链测试网络上智能合约用例的调用;
若接收到所述智能合约用例的返回结果,则确定所述合约模板的功能性验证通过。
10.根据权利要求7所述的装置,其特征在于,所述装置还包括合约部署模块,包括:
合约模板选择单元,用于在所述基于平台发布所述合约模板之后,响应于用户的合约部署请求,确定所述用户选择的目标合约模板;
智能合约部署单元,用于向目标区块链网络部署基于所述目标合约模板生成的目标智能合约。
11.根据权利要求10所述的装置,其特征在于,所述智能合约部署单元具体用于:
基于所述目标合约模板,根据所述用户输入的配置信息,生成目标智能合约;
向所述用户指定的目标区块链网络发起合约部署事务,以向所述目标区块链网络部署所述目标智能合约。
12.根据权利要求10所述的装置,其特征在于,所述合约模板选择单元具体用于:
获取用户选择的候选合约模板;
根据所述用户的输入参数,发起对区块链测试网络上所述候选合约模板的候选智能合约用例的调用;
根据所述候选智能合约用例的调用结果,以及所述用户的预设结果,从所述候选合约模板中选择目标合约模板。
13.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-6中任一项所述的智能合约的处理方法。
14.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行权利要求1-6中任一项所述的智能合约的处理方法。
CN202010238485.3A 2020-03-30 2020-03-30 智能合约的处理方法、装置、设备和存储介质 Active CN111459504B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010238485.3A CN111459504B (zh) 2020-03-30 2020-03-30 智能合约的处理方法、装置、设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010238485.3A CN111459504B (zh) 2020-03-30 2020-03-30 智能合约的处理方法、装置、设备和存储介质

Publications (2)

Publication Number Publication Date
CN111459504A true CN111459504A (zh) 2020-07-28
CN111459504B CN111459504B (zh) 2023-07-04

Family

ID=71682417

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010238485.3A Active CN111459504B (zh) 2020-03-30 2020-03-30 智能合约的处理方法、装置、设备和存储介质

Country Status (1)

Country Link
CN (1) CN111459504B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112015399A (zh) * 2020-08-31 2020-12-01 京东数字科技控股股份有限公司 一种生成智能合约的数据处理方法及装置
CN112202633A (zh) * 2020-09-24 2021-01-08 成都质数斯达克科技有限公司 区块链网络的测试方法、装置、电子设备及可读存储介质
CN113222766A (zh) * 2021-05-13 2021-08-06 杭州趣链科技有限公司 金融产品的信息监管方法、装置、计算机设备及介质
WO2024187848A1 (zh) * 2023-03-10 2024-09-19 广电运通集团股份有限公司 智能合约服务平台及区块链系统

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190034402A1 (en) * 2017-07-28 2019-01-31 International Business Machines Corporation Cognitive mediator for generating blockchain smart contracts
CN109408373A (zh) * 2018-09-26 2019-03-01 深圳壹账通智能科技有限公司 智能合约的测试方法、计算机可读存储介质及测试终端
CN109542421A (zh) * 2018-11-12 2019-03-29 夸克链科技(深圳)有限公司 一种模块化区块链智能合约
CN109670951A (zh) * 2018-11-19 2019-04-23 苏宁易购集团股份有限公司 一种区块链智能合约调试发布方法及系统
CN109710243A (zh) * 2018-12-29 2019-05-03 百度在线网络技术(北京)有限公司 基于可视化平台的区块链开发方法、装置、服务器及介质
CN110175032A (zh) * 2019-01-17 2019-08-27 杭州趣链科技有限公司 一种高可用区块链开放平台及应用发布方法
CN110428232A (zh) * 2019-08-08 2019-11-08 北京芯际科技有限公司 一种面向多任务的智能合约模板的方法
CN110933163A (zh) * 2019-11-27 2020-03-27 腾讯科技(深圳)有限公司 区块链合约部署方法、装置、设备以及存储介质

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190034402A1 (en) * 2017-07-28 2019-01-31 International Business Machines Corporation Cognitive mediator for generating blockchain smart contracts
CN109408373A (zh) * 2018-09-26 2019-03-01 深圳壹账通智能科技有限公司 智能合约的测试方法、计算机可读存储介质及测试终端
CN109542421A (zh) * 2018-11-12 2019-03-29 夸克链科技(深圳)有限公司 一种模块化区块链智能合约
CN109670951A (zh) * 2018-11-19 2019-04-23 苏宁易购集团股份有限公司 一种区块链智能合约调试发布方法及系统
CN109710243A (zh) * 2018-12-29 2019-05-03 百度在线网络技术(北京)有限公司 基于可视化平台的区块链开发方法、装置、服务器及介质
CN110175032A (zh) * 2019-01-17 2019-08-27 杭州趣链科技有限公司 一种高可用区块链开放平台及应用发布方法
CN110428232A (zh) * 2019-08-08 2019-11-08 北京芯际科技有限公司 一种面向多任务的智能合约模板的方法
CN110933163A (zh) * 2019-11-27 2020-03-27 腾讯科技(深圳)有限公司 区块链合约部署方法、装置、设备以及存储介质

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
DIANHUI MAO: "Visual and User-Defined Smart Contract Designing System Based on Automatic Coding", 《IEEE ACCESS》, vol. 7, pages 1 - 13 *
T. TATEISHI: "Automatic smart contract generation using controlled natural language and template", 《IBM JOURNAL OF RESEARCH AND DEVELOPMENT》, vol. 63, pages 1 - 12 *
胡凯: "智能合约的形式化验证方法", 《信息安全研究》, vol. 2, no. 12, pages 1 - 10 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112015399A (zh) * 2020-08-31 2020-12-01 京东数字科技控股股份有限公司 一种生成智能合约的数据处理方法及装置
CN112202633A (zh) * 2020-09-24 2021-01-08 成都质数斯达克科技有限公司 区块链网络的测试方法、装置、电子设备及可读存储介质
CN112202633B (zh) * 2020-09-24 2022-07-12 成都质数斯达克科技有限公司 区块链网络的测试方法、装置、电子设备及可读存储介质
CN113222766A (zh) * 2021-05-13 2021-08-06 杭州趣链科技有限公司 金融产品的信息监管方法、装置、计算机设备及介质
CN113222766B (zh) * 2021-05-13 2023-02-07 杭州趣链科技有限公司 金融产品的信息监管方法、装置、计算机设备及介质
WO2024187848A1 (zh) * 2023-03-10 2024-09-19 广电运通集团股份有限公司 智能合约服务平台及区块链系统

Also Published As

Publication number Publication date
CN111459504B (zh) 2023-07-04

Similar Documents

Publication Publication Date Title
CN111459504B (zh) 智能合约的处理方法、装置、设备和存储介质
US8589884B2 (en) Method and system for identifying regression test cases for a software
US8640096B2 (en) Configuration of componentized software applications
CN108319575B (zh) 一种页面组件的校验方法、装置、服务器和存储介质
US11481200B1 (en) Checking source code validity at time of code update
CN111913998B (zh) 数据处理方法、装置、设备和存储介质
US20200050540A1 (en) Interactive automation test
US9582270B2 (en) Effective feature location in large legacy systems
CN111538659B (zh) 业务场景的接口测试方法、系统、电子设备和存储介质
CN109977012B (zh) 系统的联调测试方法、装置、设备及计算机可读存储介质
CN111459813B (zh) 测试处理方法及装置
CN108111364B (zh) 一种业务系统的测试方法及装置
CN106557878B (zh) 开发项目管理方法及装置
CN111240955A (zh) Http接口自动化测试方法及装置、存储介质、电子设备
WO2012052215A1 (en) Software development
CN112148278A (zh) 可视化的区块链智能合约框架及智能合约开发部署方法
CN110727575A (zh) 一种信息处理方法、系统、装置、以及存储介质
CN106484389B (zh) 动作流分段管理
CN111061522A (zh) 基于后端生成前端卡片组件的方法、装置、设备及存储介质
CN116795378B (zh) 基于代码动态编译的流程编排执行方法及装置
US9396239B2 (en) Compiling method, storage medium and compiling apparatus
CN112988578A (zh) 一种自动化测试方法和装置
US12093686B2 (en) Code maintenance system
US20230153723A1 (en) Workflow manager
CN115269285A (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
GR01 Patent grant
GR01 Patent grant