智能合约的实现方法、前置服务器、客户端、设备及介质与流程

文档序号:20151340发布日期:2020-03-24 20:06阅读:329来源:国知局
智能合约的实现方法、前置服务器、客户端、设备及介质与流程

本发明涉及信息技术领域,尤其涉及一种智能合约的实现方法、前置服务器、客户端、设备及存储介质。



背景技术:

在规范化企业中,一笔重要交易,尤其是涉及大量资金的操作,往往需要多个责任人审批、确认后才能执行,以降低误操作的可能性,提高本次操作的正确性。

在区块链行业进入企业以来,由于本身的限制,一笔交易通常只能由单账户发起,容易造成转帐错误而且不能回退。另一方面,若单账户私钥泄露时,也会导致资产完全处于不安全状态。这对于企业级应用来说是最严重的事情,一次资损可能会对企业带来巨大影响。现有的多签钱包通过在交易执行前要求多方达成共识来进一步提高安全性。这在以太坊平台上可通过智能合约轻松地达到,通过智能合约持有资产(例如以太币或者其他代币),一笔交易只有在通过预先钱包设定的验证逻辑合约后才能执行,从而解决了私钥持有账户的单点沦陷问题,有效地避免了私钥丢失或者泄漏可能导致账户中所有的资产的丢失的情况。然而,现有多签钱包的验证逻辑合约各不相同,不同的多签钱包之间无法通用。一旦验证逻辑合约需要改变,那么此钱包将不能使用,需要开发者重新部署新的多签钱包到以太坊网络上,过程繁琐,不灵活。

因此,寻找一种解决现有多签钱包的验证逻辑固定、更新不灵活的方法成为本领域技术人员亟需解决的技术问题。



技术实现要素:

本发明实施例提供了一种智能合约的实现方法、前置服务器、客户端、设备及存储介质,以解决现有多签钱包的验证逻辑固定、更新不灵活的的问题。

一种智能合约的实现方法,包括:

以太坊前置服务器获取验证方案可升级钱包的合约地址,根据所述合约地址生成智能合约部署请求;

所述以太坊前置服务器将所述智能合约部署请求发送至以太坊网络上的以太坊客户端;

所述以太坊客户端接收所述智能合约部署请求,得到所述验证方案可升级钱包的合约地址,将智能合约变量设置为所述合约地址,并将设置结果广播至以太坊网络上;

所述以太坊前置服务器获取验证逻辑地址,根据所述验证逻辑地址生成验证逻辑更新请求;

所述以太坊前置服务器将所述验证逻辑更新请求发送至以太坊网络上的以太坊客户端;

所述以太坊客户端接收所述验证逻辑更新请求,得到验证逻辑地址,将验证方案可升级钱包中的验证逻辑变量更新为所述验证逻辑地址,并向以太坊网络广播所述验证逻辑变量的更新结果。

进一步地,所述方法还包括:

所述以太坊前置服务器获取待执行事件的事件信息,根据所述事件信息生成事件请求;

所述以太坊前置服务器将所述事件请求发送至所述以太坊客户端;

所述以太坊客户端接收所述事件请求,生成事件结构体,并根据所述验证逻辑地址调用验证方案对所述事件结构体进行校验。

进一步地,所述方法还包括:

若所述事件结构体校验成功时,所述以太坊客户端执行所述待执行事件,然后将所述待执行事件的事件信息从以太坊网络中删除;

将所述待执行事件的执行结果发送至所述以太坊前置服务器,以及广播至以太坊网络。

进一步地,所述方法还包括:

若所述事件结构体校验失败时,所述以太坊客户端将所述待执行事件的事件信息从以太坊网络中删除;

将所述待执行事件的执行结果发送至所述以太坊前置服务器,以及广播至以太坊网络。

进一步地,所述事件结构体是指所述以太坊客户端根据待执行事件的事件信息创建的信息体;

所述事件结构体中包括待请求数据、事件名称、赞成人个数、不赞成人个数;所述待请求数据是指所述验证方案可升级钱包的操作指引信息。

一种以太坊前置服务器,包括:

合约地址获取模块,用于获取验证方案可升级钱包的合约地址,根据所述合约地址生成智能合约部署请求;

部署请求模块,用于将所述智能合约部署请求发送至以太坊网络上的以太坊客户端;

验证地址获取模块,用于获取验证逻辑地址,根据所述验证逻辑地址生成验证逻辑更新请求;

更新请求模块,用于将所述验证逻辑更新请求发送至以太坊网络上的以太坊客户端;

事件获取模块,用于获取待执行事件的事件信息,根据所述事件信息生成事件请求;

事件请求模块,用于将所述事件请求发送至以太坊客户端。

一种以太坊客户端,包括:

部署请求接收模块,用于接收以太坊前置服务器发送的智能合约部署请求,得到验证方案可升级钱包的合约地址;

部署模块,用于将智能合约变量设置为所述合约地址,并将设置结果广播至以太坊网络上;

更新请求接收模块,用于接收所述以太坊前置服务器发送的验证逻辑更新请求,得到验证逻辑地址;

更新模块,用于将所述验证方案可升级钱包中的验证逻辑变量更新为所述验证逻辑地址,并向以太坊网络广播所述验证逻辑变量的更新结果。

进一步地,所述以太坊客户端包括:

校验模块,用于接收以太坊前置服务器发送的待执行事件的事件请求,生成事件结构体,并根据验证逻辑地址调用验证方案对所述事件结构体进行校验。

第一执行模块,用于若所述事件结构体校验成功时,执行所述待执行事件,然后将所述待执行事件的事件信息从以太坊网络中删除;

第二执行模块,用于若所述事件结构体校验失败时,将所述待执行事件的事件信息从以太坊网络中删除;

所述事件请求中包括待执行事件的事件信息。

一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述智能合约的实现方法中以太坊前置服务器或以太坊客户端的步骤。

一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述智能合约的实现方法中以太坊前置服务器或以太坊客户端的步骤。

本发明实施例在创建验证方案可升级钱包以及验证逻辑变量,通过以太坊前置服务器获取验证方案可升级钱包的合约地址,根据所述合约地址生成智能合约部署请求,发送至以太坊网络上的以太坊客户端;以太坊客户端接收所述智能合约部署请求,得到所述验证方案可升级钱包的合约地址,将智能合约变量设置为所述合约地址,从而完成部署验证方案可升级钱包;在进行验证逻辑升级时,以太坊前置服务器获取验证逻辑地址,根据所述验证逻辑地址生成验证逻辑更新请求,发送至以太坊网络上的以太坊客户端;所述以太坊客户端接收所述验证逻辑更新请求,得到验证逻辑地址,将验证方案可升级钱包中的验证逻辑变量更新为所述验证逻辑地址,并向以太坊网络广播验证逻辑变量的更新结果,从而实现更新智能合约中的验证逻辑,无需更换钱包,大大地提高了智能合约的通用性和实用性,即使验证方案需要更新,也无需切换到新的智能合约上。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本发明一实施例中智能合约的实现方法的一流程图;

图2是本发明一实施例中智能合约的实现方法的另一流程图;

图3是本发明一实施例中智能合约的实现方法的另一流程图;

图4是本发明一实施例中智能合约的实现方法的另一流程图;

图5是本发明一实施例中智能合约的实现方法的另一流程图;

图6是本发明一实施例中以太坊前置服务器的一原理框图;

图7是本发明一实施例中以太坊客户端的一原理框图;

图8是本发明一实施例中计算机设备的一示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

以下对本实施例提供的智能合约的实现方法进行详细的描述。在本实施例中,所述智能合约的实现方法应用在由以太坊前置服务器和以太坊客户端组成的系统上。所述以太坊前置服务器和以太坊客户端通过网络连接通信。现有的智能合约中的验证逻辑是固定的,即一种智能合约,或者说一种钱包,对应一种验证逻辑。本发明中的验证方案可升级钱包中的验证逻辑是可以更换的,具体通过在验证方案可升级钱包中增加设置的验证逻辑变量,对所述验证逻辑变量进行赋值来实现更换验证逻辑,从而不需要更换钱包,大大地提高了智能合约的通用性和实用性。在本实施例中,所述智能合约的实现方法包括:部署验证方案可升级钱包、更新验证方案可升级钱包中的验证逻辑合约、使用更新后的验证逻辑合约执行校验三个环节。

如图1所示,所述智能合约的的实现方法包括:

在步骤s101中,以太坊前置服务器获取验证方案可升级钱包的合约地址,根据所述合约地址生成智能合约部署请求。

在本实施例中,所述验证方案可升级钱包是区块链上的一种智能合约。智能合约(smartcontract)是一种旨在以信息化方式传播、验证或执行合同的计算机协议。智能合约允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转,以优化传统合约的安全性,并减少与合约相关的交易成本。在本实施例中,所述验证方案可升级钱包中设置有可修改的验证逻辑变量。在所述验证方案可升级钱包中,验证方案作为钱包中的一个插件模块,部署者可以通过对验证逻辑变量进行赋值来更新所述验证方案。

在部署所述验证方案可升级钱包时,由部署者在所述以太坊前置服务器上编写所述验证方案可升级钱包的实现逻辑,并设置所述验证方案可升级钱包的合约地址。所述合约地址是指验证方案可升级钱包的调用接口。同时,由部署者在所述以太坊前置服务器上将指定责任人为所述验证方案可升级钱包的拥有者。可选地,部署者可以通过调用验证方案可升级钱包中的setowner方法,将其中的参数设置为责任人的以太坊地址,完成对钱包拥有者的设置。

以太坊前置服务器获取所述合约地址,并根据所述合约地址生成智能合约部署请求。

在步骤s102中,以太坊前置服务器将所述智能合约部署请求发送至以太坊网络上的以太坊客户端。

在智能合约部署请求生成后,以太坊前置服务器将所述部署请求发送至以太坊上,以告诉以太坊上的以太坊客户端更新其实现合约。

在步骤s103中,以太坊客户端接收所述智能合约部署请求,得到所述验证方案可升级钱包的合约地址,将智能合约变量设置为所述合约地址,并将设置结果广播至以太坊网络上。

在这里,每一个以太坊客户端上设置有智能合约变量,所述智能合约变量用于以太坊客户端存储智能合约的合约地址,以更新智能合约。因此所述智能合约变量是可变的。在本实施例中,以太坊客户端接收并解析所述智能合约部署请求,获取所述验证方案可升级钱包的合约地址,并将自身的智能合约变量设置为所述合约地址,以完成对智能合约的更新。后续以太坊客户端要使用验证方案可升级钱包进行交易操作时,则通过所述合约地址接入验证方案可升级钱包。

以太坊客户端设置完合约地址后,将所述设置结果广播至以太坊网络上,以告知区块链上的其他以太坊客户端同步将智能合约变量更新为同样的合约地址,并记录下本次智能合约部署操作。

上述步骤s101至步骤s103实现了在以太坊上部署验证方案可升级钱包。所述验证方案可升级钱包中包括验证逻辑变量,部署者可以通过对所述验证逻辑变量进行赋值,来实现对智能合约中的验证方案进行升级。可选地,以下给出更新验证方案可升级钱包中的验证逻辑合约的实现流程。

在步骤s104中,在进行验证逻辑升级时,以太坊前置服务器获取验证逻辑地址,根据所述验证逻辑地址生成验证逻辑更新请求。

如前所述,在所述验证方案可升级钱包中,验证方案作为钱包中的一个插件模块,部署者可以通过所述验证逻辑变量进行赋值来更新所述验证方案。在部署所述验证方案可升级钱包时,由部署者在所述以太坊前置服务器上编写所述验证逻辑,并设置所述验证逻辑对应的验证逻辑地址。所述验证逻辑地址是指验证方案可升级钱包执行验证方案时的入口。

以太坊前置服务器获取所述验证逻辑地址,并根据所述验证逻辑地址生成验证逻辑更新请求。

在步骤s105中,所述以太坊前置服务器将所述验证逻辑更新请求发送至以太坊网络上的以太坊客户端。

在验证逻辑更新请求生成后,以太坊前置服务器将所述更新请求发送至以太坊上,以告诉以太坊客户端更新其验证方案可升级钱包中的验证方案。

在步骤s106中,所述以太坊客户端接收所述验证逻辑更新请求,得到验证逻辑地址,将验证方案可升级钱包中的验证逻辑变量更新为所述验证逻辑地址,并向以太坊网络广播验证逻辑变量的更新结果。

所述验证逻辑变量用于以太坊客户端存储验证逻辑地址,以更新验证逻辑。因此所述验证逻辑变量是可变的。在本实施例中,以太坊客户端接收并解析所述验证逻辑更新请求,获取所述验证逻辑地址,并将自身的验证逻辑变量设置为所述验证逻辑地址,以完成对验证方案的更新。

以太坊客户端设置完验证逻辑地址后,同样也将所述设置结果广播至以太坊网络上,以告知区块链上的其他以太坊客户端同步将验证逻辑变量更新为同样的验证逻辑地址,并记录下本次验证逻辑更新操作,以便于后续追踪。

综上所述,本发明实施例通过部署验证方案可升级钱包,所述验证方案可升级钱包中包括验证逻辑变量,通过对所述验证逻辑变量进行赋值来更新验证方案可升级钱包中的验证逻辑,从而实现在不需更换钱包的条件下灵活更新验证逻辑,大大地提高了智能合约的通用性和实用性,即使验证方案需要更新,也无需切换到新的智能合约上。

可选地,在图1实施例的基础上提出本发明的另一个优选示例,如图2所示,以太坊客户端将验证方案可升级钱包中的验证逻辑变量更新为所述验证逻辑地址后,所述方法还包括:

在步骤s107中,所述以太坊客户端将所述更新结果发送至所述以太坊前置服务器。

在这里,以太坊客户端将更新结果,即验证方案可升级钱包中当前的验证逻辑变量的赋值,通知以太坊前置服务器,使得以太坊前置服务器获知验证逻辑地址部署完成,以太坊前置服务器可根据责任人发起操作事件。

可选地,在图1或图2实施例的完成验证方案可升级钱包的部署及更新的基础上,提出本发明的另一个优选示例,使用更新后的验证逻辑合约执行校验。如图3所示,所述智能合约的实现方法还包括:

在步骤s108中,所述以太坊前置服务器获取待执行事件的事件信息,根据所述事件信息生成事件请求。

在完成部署所述验证方案可升级钱包和验证逻辑后,由责任人在所述以太坊前置服务器上发起待执行事件。在这里,所述待执行事件包括但不限于转账、数字货币交易。以太坊前置服务器获取所述事件信息,根据所述事件信息生成事件请求。可选地,所述事件信息包括但不限于责任人的以太坊地址、事件名称。责任人的以太坊地址是责任人在以太坊网络中的账户,是该责任人的唯一标识。通常情况下,一个责任人对应一个以太坊地址。当所述验证方案可升级钱包有多个责任人时,则需要所有的责任人均通过所述以太坊前置服务器发起待执行事件。

示例性地,假设验证方案可升级钱包的责任人有3个,则其中任意一人发起待执行事件后,需要其他人也依次发起待执行事件,直至完成校验。以太坊前置服务器获取每一责任人的事件信息,包括但不限于责任人的以太坊地址、事件名称,并生成事件请求。在这里,所述事件请求与每一个责任人对应,一个责任人对应一个事件请求。

在步骤s109中,所述以太坊前置服务器将所述事件请求发送至以太坊客户端。

每当一个责任人对应的事件请求生成后,以太坊前置服务器将所述事件请求发送至以太坊上,以请求以太坊客户端执行智能合约。

在这里,所述以太坊前置服务器每次接收到一个责任人的事件信息,则生成对应的事件请求发送至以太坊客户端,以请求校验。

在步骤s110中,所述以太坊客户端接收所述事件请求,生成事件结构体,并根据所述验证逻辑地址调用验证方案对所述事件结构体进行校验。

在这里,以太坊网络上的任意以太坊客户端接收到所述事件请求之后,根据事件请求中的事件信息,组装成一个事件结构体,并将所述事件结构体传入验证方案中,通过所述验证方案对本次操作事件执行预设的验证操作。其中,所述事件结构体是指当以太坊客户端接收到一个事件请求时创建的对应的信息体,在所述事件结构体中包括但不限于待请求数据、事件名称、赞成人个数、不赞成人个数。所述待请求数据是指验证方案可升级钱包的操作指引信息,比如交易方式、交易金额、交易双方或多方的账户。

作为本发明的一个优选示例,所述验证方案可以是用于决定所述事件请求是否可以执行,返回true表示执行,返回false则表示不能执行。可选地,所述验证方案可以为2/3责任人同意则返回true,否则false;或者,所述验证方案可以为预先设置每个责任人的权重信息,若同意执行的责任人的权重信息之和达到某个阈值时则返回true,否则返回false。应到理解,上述验证方案仅为本发明的一个具体示例,并不用于限制本发明,在实际应用中,还可以有其他的验证方案。

示例性地,假设存在验证方案可升级钱包z,责任人有三个,分别为责任人a、责任人b、责任人c;所述验证方案为2/3责任人同意则返回true,否则返回false。则:

在责任人a发起待执行事件后,所述以太坊前置服务器根据责任人a发起的待执行事件,获取事件信息,比如向客户xxx网络转账1万人民币以付货款。根据所述事件信息生成事件请求,将所述事件请求发送至以太坊客户端。以太坊客户端根据所述事件信息生成事件结构体,包括:待请求数据为网络转账、1万人民币、财务账号和客户xxx的账号;事件名称为向客户xxx付货款;赞成人个数为1、不赞成人个数为0。然后根据所述验证逻辑地址调用验证方案对所述事件结构体进行校验。

在责任人a发起待执行事件后,责任人c也发起待执行事件,比如不同意向客户xxx网络转账1万人民币以付货款。所述以太坊前置服务器根据责任人c发起的待执行事件,获取事件信息,根据所述事件信息生成事件请求,将所述事件请求发送至以太坊客户端。以太坊客户端根据所述事件信息生成事件结构体,包括:待请求数据为网络转账、1万人民币、财务账号和客户xxx的账号;事件名称为向客户xxx付货款;赞成人个数为1、不赞成人个数为1。然后根据所述验证逻辑地址调用验证方案对所述事件结构体进行校验。

责任人b也发起待执行事件,比如同意向客户xxx网络转账1万人民币以付货款。所述以太坊前置服务器根据责任人b发起的待执行事件,获取事件信息,根据所述事件信息生成事件请求,将所述事件请求发送至以太坊客户端。以太坊客户端根据所述事件信息生成事件结构体,包括:待请求数据为网络转账、1万人民币、财务账号和客户xxx的账号;事件名称为向客户xxx付货款;赞成人个数为2、不赞成人个数为1。然后根据所述验证逻辑地址调用验证方案对所述事件结构体进行校验。

应当说明的是,上述责任人a、责任人b、责任人c发起待执行事件的顺序以及是同意执行还是不同意执行,仅为本发明的一个具体示例,并不用于限制本发明。

可选地,在图3实施例的基础上提出本发明的另一个优选示例,如图4所示,使用更新后的验证逻辑合约执行校验还包括:

在步骤s111中,若所述事件结构体校验成功时,所述以太坊客户端执行所述待执行事件,然后将所述待执行事件的事件信息从以太坊网络中删除。

可选地,由于所述验证方案用于决定所述事件请求是否可以执行,返回true表示执行,返回false则表示不能执行。若经过验证方案对事件结构体的校验,输出true时,则执行所述事件,比如转账。

示例性地,如前述示例中所述的验证方案可升级钱包z,在责任人b发起待执行事件后,以太坊客户端生成的事件结构体中赞成人个人数为2,不赞成人个数为1,经验证方案校验后,有2/3责任人同意,返回true,则所述以太坊客户端执行所述待执行事件,向客户xxx网络转账1万人民币以付货款。

在执行完所述事件后,以太坊客户端将所述事件删除,并将删除结果广播至以太坊网络上,以告知区块链上的以太坊客户端该事件已执行,并同步将所述事件删除,表示所述事件已结束,避免相同事件被多次重复执行。

可选地,在图3实施例的基础上提出本发明的另一个优选示例,如图5所示,使用更新后的验证逻辑合约执行校验还包括:

在步骤s112中,若所述事件结构体校验失败时,所述以太坊客户端将所述待执行事件的事件信息从以太坊网络中删除。

可选地,若经过验证方案对事件结构体的校验,输出false时,则不执行所述事件。

示例性地,如前述示例中所述的验证方案可升级钱包z,若责任人b发起的待执行事件为不同意向客户xxx网络转账1万人民币以付货款。所述以太坊前置服务器根据责任人b发起的待执行事件,获取事件信息,根据所述事件信息生成事件请求,将所述事件请求发送至以太坊客户端。以太坊客户端根据所述事件信息生成事件结构体,包括:待请求数据为网络转账、1万人民币、财务账号和客户xxx的账号;事件名称为向客户xxx付货款;赞成人个数为1、不赞成人个数为2。然后根据所述验证逻辑地址调用验证方案对所述事件结构体进行校验。经验证方案校验后,没有2/3责任人同意,返回false,则所述以太坊客户端不执行所述待执行事件,即不向客户xxx转账1万人民币以付货款,并将所述事件删除,以及将删除结果广播至以太坊网络上,以告知区块链上的以太坊客户端该事件不能执行,同步将所述事件删除,避免事件被执行。

可选地,在图4或图5实施例的基础上提出本发明的另一个优选示例,所述智能合约的实现方法还包括:

将所述待执行事件的执行结果发送至以太坊前置服务器,以及广播至以太坊网络。

在这里,以太坊客户端将执行结果,即责任人发起的操作已执行还是不能执行的消息,通知以太坊前置服务器,使得以太坊前置服务器输出所述操作事件执行结果以告知责任人。

上述实施例实现基于验证方案可升级钱包完成待执行事件,通过所述验证逻辑地址调用验证方案对所述事件结构体进行校验即可实现智能合约;由于所述验证方案是可以修改的,即使改变责任人的人数或者更新决定所述事件请求是否可以执行的人数比例,也不需要更换钱包,通过对所述验证逻辑变量进行赋值来更新验证方案可升级钱包中的验证逻辑,从而实现在不需更换钱包的条件下灵活更新验证逻辑,大大地提高了智能合约的通用性和实用性,即使验证方案需要更新,也无需切换到新的智能合约上。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

在一实施例中,提供一种以太坊前置服务器,该以太坊前置服务器与上述实施例中智能合约的实现方法中的以太坊前置服务器一一对应。如图6所示,该以太坊前置服务器包括合约地址获取模块61、部署请求模块62、验证地址获取模块63、更新请求模块64、事件获取模块65、事件请求模块66。各功能模块详细说明如下:

合约地址获取模块61,用于获取验证方案可升级钱包的合约地址,根据所述合约地址生成智能合约部署请求;

部署请求模块62,用于将所述智能合约部署请求发送至以太坊网络上的以太坊客户端;

验证地址获取模块63,用于获取验证逻辑地址,根据所述验证逻辑地址生成验证逻辑更新请求;

更新请求模块64,用于将所述验证逻辑更新请求发送至以太坊网络上的以太坊客户端;

事件获取模块65,用于获取待执行事件的事件信息,根据所述事件信息生成事件请求;

事件请求模块66,用于将所述事件请求发送至以太坊客户端。

关于以太坊前置服务器的具体限定可以参见上文中对于智能合约的实现方法的限定,在此不再赘述。上述以太坊前置服务器中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一实施例中,提供一种太坊客户端,该太坊客户端与上述实施例中智能合约的实现方法中的太坊客户端一一对应。如图7所示,该太坊客户端包括部署请求接收模块71、部署模块72、更新请求接收模块73、更新模块74。各功能模块详细说明如下:

部署请求接收模块71,用于接收以太坊前置服务器发送的智能合约部署请求,得到验证方案可升级钱包的合约地址;

部署模块72,用于将智能合约变量设置为所述合约地址,并将设置结果广播至以太坊网络上;

更新请求接收模块73,用于接收所述以太坊前置服务器发送的验证逻辑更新请求,得到验证逻辑地址;

更新模块74,用于将所述验证方案可升级钱包中的验证逻辑变量更新为所述验证逻辑地址,并向以太坊网络广播所述验证逻辑变量的更新结果。

可选地,所述以太坊客户端包括:

校验模块75,用于接收所述以太坊前置服务器发送的待执行事件的事件请求,生成事件结构体,并根据所述验证逻辑地址调用验证方案对所述事件结构体进行校验。

第一执行模块76,用于若所述事件结构体校验成功时,执行所述待执行事件,然后将所述待执行事件的事件信息从以太坊网络中删除;

第二执行模块77,用于若所述事件结构体校验失败时,将所述待执行事件的事件信息从以太坊网络中删除。

所述事件请求中包括待执行事件的事件信息。所述校验模块75根据事件请求中的事件信息生成事件结构体。其中,所述事件结构体是指以太坊客户端根据待执行事件的事件信息创建的信息体;所述事件结构体中包括待请求数据、事件名称、赞成人个数、不赞成人个数;所述待请求数据是指验证方案可升级钱包的操作指引信息。然后根据验证逻辑地址调用验证方案,对所述事件结构体进行校验,以实现对待执行事件的校验。

可选地,所述以太坊客户端包括:

执行结果发送模块78,用于将所述待执行事件的执行结果发送至以太坊前置服务器,以及广播至以太坊网络。

关于以太坊客户端的具体限定可以参见上文中对于智能合约的实现方法的限定,在此不再赘述。上述以太坊客户端中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图8所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种智能合约的实现方法中以太坊前置服务器和以太坊客户端的功能。

在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现一种智能合约的实现方法中以太坊前置服务器或以太坊客户端执行的步骤。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时一种智能合约的实现方法中以太坊前置服务器或以太坊客户端执行的步骤。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。

以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1