CN109683869A - Dapp的开发方法和装置 - Google Patents
Dapp的开发方法和装置 Download PDFInfo
- Publication number
- CN109683869A CN109683869A CN201811639920.2A CN201811639920A CN109683869A CN 109683869 A CN109683869 A CN 109683869A CN 201811639920 A CN201811639920 A CN 201811639920A CN 109683869 A CN109683869 A CN 109683869A
- Authority
- CN
- China
- Prior art keywords
- intelligent contract
- chain
- block chain
- designated blocks
- contract
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请公开了一种DAPP开发方法和装置。该方法包括:接收客户端发送的第一调用请求,其中,第一调用请求包括第一调用标识和合约信息;查找出第一调用标识对应的第一调用接口模块;当接收到客户端发送的包含有指定区块链的网络标识的第一部署请求时,第一调用接口模块基于网络标识确定对应指定区块链的智能合约模板,并将合约信息映射到智能合约模板,生成用于在指定区块链上部署的智能合约;将包含有智能合约的第二部署请求发送给指定区块链,以使指定区块链对智能合约进行部署。本申请可以解决了相关技术中DAPP在开发过程中需要在不同区块链上重复开发的技术问题。
Description
技术领域
本申请涉及区块链技术领域,具体而言,涉及一种DAPP的开发方法和装置。
背景技术
随着区块链技术的发展,越来越多的场景开始植入区块链技术,区块链的功能输出主要通过DAPP(Decentralized Application,分布式应用)来实现,而DAPP在区块链上的核心功能主要通过智能合约来实现。
相关技术中,绝大多数区块链都只能支持自己链上的智能合约和数字资产,不同区块链的开发语言也不尽相同,导致相同功能的DAPP需要在不同区块链上重复开发不同的版本(包括不同版本智能合约的编写),从而导致了DAPP在开发过程中需要在不同区块链上重复开发。
针对相关技术中DAPP在开发过程中需要在不同区块链上重复开发的问题,目前尚未提出有效的解决方案。
发明内容
本申请的主要目的在于提供一种DAPP的开发方法和装置,以解决相关技术中DAPP在开发过程中需要在不同区块链上重复开发的问题。
为了实现上述目的,第一方面,本申请提供了一种DAPP的开发方法,该方法应用于服务器,服务器包括多个第一调用接口模块,且每个第一调用接口模块中包括至少一个与指定区块链相对应的智能合约模板,该方法包括:
接收客户端发送的第一调用请求,其中,第一调用请求包括第一调用标识和合约信息;
查找出第一调用标识对应的第一调用接口模块;
当接收到客户端发送的包含有指定区块链的网络标识的第一部署请求时,第一调用接口模块基于网络标识确定对应指定区块链的智能合约模板,并将合约信息映射到智能合约模板,生成用于在指定区块链上部署的智能合约;
将包含有智能合约的第二部署请求发送给指定区块链,以使指定区块链对智能合约进行部署。
可选地,每个第一调用接口模块中还包括至少一个与验证区块链相对应的智能合约模板,在查找第一调用标识对应的第一调用接口模块之后,以及在接收客户端发送的第一部署请求之前,该方法还包括:
第一调用接口模块将合约信息录入对应验证区块链的智能合约模板,生成用于在验证区块链上部署的智能合约;
将包含有用于在验证区块链上部署的智能合约的第三部署请求发送给验证区块链,以使验证区块链对该智能合约进行部署,并反馈该智能合约的运行信息;
将运行信息生成第一验证信息,并将第一验证信息发送给客户端。
可选地,将合约信息映射到智能合约模板,生成用于在指定区块链上部署的智能合约,包括:
第一调用接口模块将用于在验证区块链上部署的智能合约中包括的合约信息映射到对应指定区块链的智能合约模板,生成用于在指定区块链上部署的智能合约。
可选地,第一调用请求还包括用户标识,该方法还包括:
基于第一调用请求包括的用户标识,获取对应验证区块链的私钥;
基于验证区块链的私钥对第三部署请求进行签名,以执行将包含有用于在验证区块链上部署的智能合约的第三部署请求发送给验证区块链的步骤。
可选地,第一部署请求还包括用户标识,该方法包括:
基于第一部署请求包括的用户标识,获取对应指定区块链的私钥;
基于指定区块链的私钥对第二部署请求进行签名,以执行将包含有智能合约的第二部署请求发送给指定区块链的步骤。
可选地,服务器还包括私钥托管模块,该方法包括:
私钥托管模块响应于第一调用请求包括的用户标识,获取验证区块链的私钥;和/或
私钥托管模块响应于第一部署请求包括的用户标识,获取指定区块链的私钥。
可选地,服务器还包括多个第二调用接口模块,该方法包括:
接收客户端发送的第二调用请求,其中,第二调用请求包括第二调用标识和事务信息;
查找第二调用标识对应的第二调用接口模块,以使该第二调用接口模块将事务信息生成符合验证区块链格式的事务请求;
将事务请求发送给验证区块链,以使验证区块链对事务请求进行响应,并反馈响应信息;
将响应信息生成第二验证信息,并将第二验证信息发送给客户端。
第二方面,本申请实施例还提供了一种DAPP的开发装置,该装置应用于服务器,该装置包括:
第一接收模块,用于接收客户端发送的第一调用请求,其中,第一调用请求包括第一调用标识和合约信息;
第一查找模块,用于在多个第一调用接口模块中查找出对应的第一调用标识第一调用接口模块,其中,每个第一调用接口模块中包括至少一个与指定区块链相对应的智能合约模板;
第一调用接口模块,用于当接收到客户端发送的包含有指定区块链的网络标识的第一部署请求时,基于网络标识确定对应指定区块链的智能合约模板,并将合约信息映射到智能合约模板,生成用于在指定区块链上部署的智能合约;
第一发送模块,用于将包含有智能合约的第二部署请求发送给指定区块链,以使指定区块链对智能合约进行部署。
可选地,每个第一调用接口模块中还包括至少一个与验证区块链相对应的智能合约模板,该装置还包括第二发送模块和第三发送模块;
第一调用接口模块,用于将合约信息录入对应验证区块链的智能合约模板,生成用于在验证区块链上部署的智能合约;
第二发送模块,用于将包含有用于在验证区块链上部署的智能合约的第三部署请求发送给验证区块链,以使验证区块链对该智能合约进行部署,并反馈该智能合约的运行信息;
第三发送模块,用于将运行信息生成第一验证信息,并将第一验证信息发送给客户端。
第三方面,本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机代码,当计算机代码被执行时,上述的DAPP的开发方法被执行。
在本申请提供的DAPP的开发方法中,通过接收客户端发送的第一调用请求,其中,第一调用请求包括第一调用标识和合约信息;查找出第一调用标识对应的第一调用接口模块;当接收到客户端发送的包含有指定区块链的网络标识的第一部署请求时,第一调用接口模块基于网络标识确定对应指定区块链的智能合约模板,并将合约信息映射到智能合约模板,生成用于在指定区块链上部署的智能合约;将包含有智能合约的第二部署请求发送给指定区块链,以使指定区块链对智能合约进行部署。通过上述方法,基于用户需求构建的智能合约,通过客户端向服务器发送调用包含有该智能合约模板的第一调用接口模块的第一调用请求,再用户需求部署的至少一个指定区块链,对于每个指定区块链,基于第一调用接口模块确定对应该指定区块链的智能合约模板对客户端发送的合约信息进行处理,生成用户需求构建的智能合约,将该智能合约部署该指定区块链上,这样,实现了在DAPP在开发过程中通过对智能合约模板的调用,将一个合约信息分别部署在一个或或多个不同的用户指定区块链上的目的,进而解决了相关技术中DAPP在开发过程中需要在不同区块链上重复开发的技术问题。
附图说明
构成本申请的一部分的附图用来提供对本申请的进一步理解,使得本申请的其它特征、目的和优点变得更明显。本申请的示意性实施例附图及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是本申请实施例提供的一种DAPP的开发方法的流程示意图;
图2是本申请实施例提供的另一种DAPP的开发方法的流程示意图;
图3是本申请实施例提供的一种***的结构示意图;
图4是本申请实施例提供的一种溯源DAPP的开发方法的流程示意图;
图5是本申请实施例提供的一种DAPP的开发装置的结构示意图;
图6是本申请实施例提供的另一种DAPP的开发装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
根据本申请的一个方面,本申请实施例提供了一种DAPP的开发方法,该方法可以应用于服务器中,该服务器包括多个第一调用接口模块,且每个第一调用接口模块中包括至少一个与指定区块链相对应的智能合约模板,图1是本申请实施例提供的一种DAPP的开发方法的流程示意图,如图1所示,该方法包括如下的步骤100至步骤400:
100,接收客户端发送的第一调用请求,其中,第一调用请求包括第一调用标识和合约信息。
具体地,客户端是用户操作端,客户端可以预先在服务器中完成注册,完成客户端与服务器之间的通讯连接,在客户端中显示有每个第一调用接口模块,以及对应第一调用接口模块所需的合约内容(即合约信息),用户先基于DAPP的功能需求,确认需要构建的智能合约(例如,智能合约可以包括选举智能合约、溯源智能合约、权限控制智能合约等等),再确定该智能合约对应的包含有该智能合约模板的第一调用接口模块,进而确定该第一调用接口模块的第一调度标识(例如,第一调度标识为每个第一调用接口模块的编号),确定该第一调用接口模块所需的合约内容,通过在客户端输入合约信息,进而生成第一调用请求,并发送给服务器。
200,查找出第一调用标识对应的第一调用接口模块。
具体地,每个第一调用标识仅对应唯一一个第一调用接口模块,这样,根据第一调用请求中包括的第一调用标识可以直接在多个第一调用接口模块确定用户需求调用的第一调用接口模块。
300,当接收到客户端发送的包含有指定区块链的网络标识的第一部署请求时,第一调用接口模块基于网络标识确定对应指定区块链的智能合约模板,并将合约信息映射到智能合约模板,生成用于在指定区块链上部署的智能合约。
具体地,当用户通过至少一个第一调用接口模块以完成一个或多个智能合约的开发后,完成了整个DAPP的程序开发,需要将该DAPP部署在一个或多个指定区块链(例如,以太坊、比特网等区块链网络)上,进而用户通过客户端向服务器发送第一部署请求,用于将DAPP中涉及智能合约的应用部署到指定区块链上,当服务器接收到该第一部署请求时,可以基于第一部署请求中包括的网络标识(网络标识可以是指定区块链网络ID)可以指定区块链,进而通过第一调用接口模块调取符合该指定区块链的智能合约模板,再将对应的合约信息映射到该智能合约模板中,从而得到符合该指定区块链的智能合约。
400,将包含有智能合约的第二部署请求发送给指定区块链,以使指定区块链对智能合约进行部署。
具体地,在每个第一调用接口模块生成用于在指定区块链上部署的智能合约后,生成包含有智能合约的第二部署请求,并将第二部署请求发送给指定区块链,指定区块链接收到该第二部署请求,对该第二部署请求中包括的智能合约进行部署,从而完成DAPP的开发。
因此,在本实施例中,通过上述步骤100至步骤400,基于用户需求构建的智能合约,通过客户端向服务器发送调用包含有该智能合约模板的第一调用接口模块的第一调用请求,再用户需求部署的至少一个指定区块链,对于每个指定区块链,基于第一调用接口模块确定对应该指定区块链的智能合约模板对客户端发送的合约信息进行处理,生成用户需求构建的智能合约,将该智能合约部署该指定区块链上。
在一个可行的实施方式中,每个第一调用接口模块中还包括至少一个与验证区块链相对应的智能合约模板,图2是本申请实施例提供的另一种DAPP的开发方法的流程示意图,如图2所示,在步骤200,查找第一调用标识对应的第一调用接口模块之后,以及在步骤300之前,该方法还包括如下的步骤210至步骤230:
210,第一调用接口模块将合约信息录入对应验证区块链的智能合约模板,生成用于在验证区块链上部署的智能合约;
220,将包含有用于在验证区块链上部署的智能合约的第三部署请求发送给验证区块链,以使验证区块链对该智能合约进行部署,并反馈该智能合约的运行信息;
230,将运行信息生成第一验证信息,并将第一验证信息发送给客户端。
具体地,在步骤200之后,即基于第一调用请求中包含的第一调用标识查找出对应的第一调用接口模块之后,第一调用接口模块将第一调用请求中包含的合约信息录入对应验证区块链的智能合约模板,生成用于在验证区块链上部署的智能合约,再生成包含有用于在验证区块链上部署的智能合约的第三部署请求,并将第三部署请求发送给验证区块链,验证区块链响应于该第三部署请求,对该智能合约进行部署,验证区块链根据该智能合约部署过程和运行过程生成对应该智能合约的运行信息(例如,智能合约是否在验证区块链中运行等信息),并向服务器反馈该运行信息,服务器对该运行信息进行判断生成第一验证信息,或者,服务器将运行信息作为第一验证信息,再将该第一验证信息发送给客户端,以向客户端反馈对应的第一调用请求是否响应完成,或者,提醒客户端第一调用请求存在错误,以使用户及时获知第一调用请求的响应情况。
在一个可行的实施方式中,步骤300,将合约信息映射到智能合约模板,生成用于在指定区块链上部署的智能合约,具体为:
第一调用接口模块将用于在验证区块链上部署的智能合约中包括的合约信息映射到对应指定区块链的智能合约模板,生成用于在指定区块链上部署的智能合约。
具体地,当用户需要将开发的智能合约部署在用户需求的指定区块链上时,用户通过客户端向服务器发送第一部署请求,用于将DAPP中涉及智能合约的应用部署到指定区块链上,当服务器接收到该第一部署请求时,可以基于第一部署请求中包括的网络标识(网络标识可以是指定区块链网络ID)可以指定区块链,进而通过第一调用接口模块调取符合该指定区块链的智能合约模板,再提取用于在验证区块链上部署的智能合约中包括的合约信息,并将该合约信息录入符合该指定区块链的智能合约模板中,进而生成符合该指定区块链的智能合约(能够在在指定区块链上进行部署的智能合约)。
在一个可行的实施方式中,第一调用请求还包括用户标识,本DAPP的开发方法还包括如下步骤:
基于第一调用请求包括的用户标识,获取对应验证区块链的私钥;
基于验证区块链的私钥对第三部署请求进行签名,以执行步骤230,将包含有用于在验证区块链上部署的智能合约的第三部署请求发送给验证区块链。
具体地,服务器基于第一调用请求中包括用户标识,获取对应验证区块链的私钥,再通过该验证区块链的私钥对第三部署请求进行签名,将第三部署请求发送给验证区块链,验证区块链基于公钥对第三部署请求的签名进行验证,验证区块链对签名验证后,将第三部署请求包括的智能合约进行部署。
在一个可行的实施方式中,第一部署请求还包括用户标识本DAPP的开发方法还包括如下步骤:
基于第一部署请求包括的用户标识,获取对应指定区块链的私钥;
基于指定区块链的私钥对第二部署请求进行签名,以步骤400,将包含有智能合约的第二部署请求发送给指定区块链,。
具体地,服务器基于第一部署请求中包括的用户标识,获取对应指定区块链的私钥,再通过该指定区块链的私钥对第二部署请求进行签名,将第二部署请求发送给指定区块链,指定区块链基于公钥对第二部署请求的签名进行验证,指定区块链对签名验证后,将第二部署请求包括的智能合约进行部署。
在一个可行的实施方式中,服务器还包括私钥托管模块,本DAPP的开发方法还包括如下:
私钥托管模块响应于第一调用请求包括的用户标识,获取验证区块链的私钥;和/或
私钥托管模块响应于第一部署请求包括的用户标识,获取指定区块链的私钥。
具体地,用户的客户端预先在私钥托管模块中完成注册,获得对应客户端的用户标识(例如,DAPP ID),当私钥托管模块响应于第一调用请求或第一部署请求时,私钥托管模块在数据包中获取验证区块链的私钥或指定区块链的私钥,这样,通过服务器获取用户需要的区块链的私钥,避免了用户在客户端需要逐一地输入区块链的私钥。
在一个可行的实施方式中,服务器还包括多个第二调用接口模块,本DAPP的开发方法还包括如下:
接收客户端发送的第二调用请求,其中,第二调用请求包括第二调用标识和事务信息;
查找第二调用标识对应的第二调用接口模块,以使该第二调用接口模块将事务信息生成符合验证区块链格式的事务请求;
将事务请求发送给验证区块链,以使验证区块链对事务请求进行响应,并反馈响应信息;
将响应信息生成第二验证信息,并将第二验证信息发送给客户端。
其中,事务是指区块链中记录数据或信息的基本单位,也是DAPP进行信息处理的基本单元,例如,实现电子货币功能的区块链网络中,一条交易记录就是一个事务,DAPP的基本功能也就处理不同用户之间的交易。
具体地,用户在DAPP的开发过程中,可能需要对已经部署在验证区块链中的智能合约进行功能验证或者对DAPP的一些功能进行验证,进而通过客户端向服务器发送第二调用请求,该第二调用请求中包括有事务信息和第二调用标识,服务器包括多个基于不同事务类型的第二调用接口模块,每个第二调用标识仅对应唯一一个第二调用接口模块,这样,服务器基于第二调用标识查找出对应的第二调用接口模块,以通过该第二调用接口模块将事务信息生成符合验证区块链格式的事务请求,并将该事务请求发送给验证区块链,验证区块链对事务请求进行响应,并反馈响应信息,服务器对响应信息进行处理生成第二验证信息或者服务器将响应信息作为第二验证信息,服务器再将第二验证信息发送给客户端,以完成对已经部署在验证区块链中的智能合约进行功能验证或者对DAPP的一些功能进行验证。
在本实施例中,本DAPP的开发方法可以实施在如图3所示的***中,该***包括客户端、服务器、验证区块链和至少一个指定区块链,用户通过客户端进行DAPP的逻辑开发,通过服务器的第一调用接口模块进行调用智能合约模板,智能合约模板包括特定功能智能合约模板(溯源智能合约模板和选举智能合约等)和通用功能智能合约模板(权限控制智能合约模板和角色智能合约模板等),并通过发送模块将已生成的智能合约部署到验证区块链和至少一个指定区块链上。另外,对于本DAPP的开发方法举例说明,图4是本申请实施例提供的一种溯源DAPP的开发方法的流程示意图,如图4所示,用户需要开发一种溯源DAPP,进而通过私钥托管模块注册获取DAPP ID,设置各角色以及生成对应各区块链的私钥,以便于各第一调用接口模块通过私钥托管模块获取区块链的私钥,各第一调用接口模块通过调取对应的智能合约模板生成各智能合约(例如身份合约、权限管理合约和溯源合约等),并通过发送模块将携带有各区块链的私钥的智能合约部署请求发送给各区块链,以使区块链将各智能合约进行部署。
在本申请提供的DAPP的开发方法中,通过步骤100,接收客户端发送的第一调用请求,其中,第一调用请求包括第一调用标识和合约信息;步骤200,查找出第一调用标识对应的第一调用接口模块;步骤300,当接收到客户端发送的包含有指定区块链的网络标识的第一部署请求时,第一调用接口模块基于网络标识确定对应指定区块链的智能合约模板,并将合约信息映射到智能合约模板,生成用于在指定区块链上部署的智能合约;步骤400,将包含有智能合约的第二部署请求发送给指定区块链,以使指定区块链对智能合约进行部署。通过上述方法,基于用户需求构建的智能合约,通过客户端向服务器发送调用包含有该智能合约模板的第一调用接口模块的第一调用请求,再用户需求部署的至少一个指定区块链,对于每个指定区块链,基于第一调用接口模块确定对应该指定区块链的智能合约模板对客户端发送的合约信息进行处理,生成用户需求构建的智能合约,将该智能合约部署该指定区块链上,这样,实现了在DAPP在开发过程中通过对智能合约模板的调用,将一个合约信息分别部署在一个或或多个不同的用户指定区块链上的目的,进而解决了相关技术中DAPP在开发过程中需要在不同区块链上重复开发的技术问题。
基于相同的技术构思,本申请实施例还提供了一种DAPP的开发装置,该装置应用于服务器,图5是本申请实施例提供的一种DAPP的开发装置的结构示意图,如图5所示,该装置包括:
第一接收模块10,用于接收客户端发送的第一调用请求,其中,第一调用请求包括第一调用标识和合约信息;
第一查找模块20,用于在多个第一调用接口模块中查找出对应的第一调用标识第一调用接口模块,其中,每个第一调用接口模块中包括至少一个与指定区块链相对应的智能合约模板;
第一调用接口模块30,用于当接收到客户端发送的包含有指定区块链的网络标识的第一部署请求时,基于网络标识确定对应指定区块链的智能合约模板,并将合约信息映射到智能合约模板,生成用于在指定区块链上部署的智能合约;
第一发送模块40,用于将包含有智能合约的第二部署请求发送给指定区块链,以使指定区块链对智能合约进行部署。
具体的,本申请实施例的装置中各模块实现其功能的具体过程可参见方法实施例中的相关描述,此处不再赘述。
可选地,每个第一调用接口模块中还包括至少一个与验证区块链相对应的智能合约模板,图6是本申请实施例提供的另一种DAPP的开发装置的结构示意图,如图6所示,该装置还包括第二发送模块50和第三发送模块60;
第一调用接口模块30,用于将合约信息录入对应验证区块链的智能合约模板,生成用于在验证区块链上部署的智能合约;
第二发送模块50,用于将包含有用于在验证区块链上部署的智能合约的第三部署请求发送给验证区块链,以使验证区块链对该智能合约进行部署,并反馈该智能合约的运行信息;
第三发送模块60,用于将运行信息生成第一验证信息,并将第一验证信息发送给客户端。
可选地,第一调用接口模块30,用于:
将用于在验证区块链上部署的智能合约中包括的合约信息映射到对应指定区块链的智能合约模板,生成用于在指定区块链上部署的智能合约。
可选地,第一调用请求还包括用户标识,本DAPP的开发装置还包括:
第一获取模块,用于基于第一调用请求包括的用户标识,获取对应验证区块链的私钥;
第一签名模块,用于基于验证区块链的私钥对第三部署请求进行签名,以执行将包含有用于在验证区块链上部署的智能合约的第三部署请求发送给验证区块链的步骤。
可选地,第一部署请求还包括用户标识,本DAPP的开发装置还包括:
第二获取模块,用于基于第一部署请求包括的用户标识,获取对应指定区块链的私钥;
第二签名模块,用于基于指定区块链的私钥对第二部署请求进行签名,以执行将包含有智能合约的第二部署请求发送给指定区块链的步骤。
可选地,该装置还包括私钥托管模块;
私钥托管模块,用于响应于第一调用请求包括的用户标识,获取验证区块链的私钥;和/或
私钥托管模块,用于响应于第一部署请求包括的用户标识,获取指定区块链的私钥。
可选地,该装置还包括第二接收模块、第二查找模块、第四发送模块、第五发送模块和多个第二调用接口模块;
第二接收模块,用于接收客户端发送的第二调用请求,其中,第二调用请求包括第二调用标识和事务信息;
第二查找模块,用于查找第二调用标识对应的第二调用接口模块;
第二调用接口模块,用于将事务信息生成符合验证区块链格式的事务请求;
第四发送模块,用于将事务请求发送给验证区块链,以使验证区块链对事务请求进行响应,并反馈响应信息;
第五发送模块,用于将响应信息生成第二验证信息,并将第二验证信息发送给客户端。
在本申请提供的DAPP的开发装置中,通过第一接收模块10,用于接收客户端发送的第一调用请求,其中,第一调用请求包括第一调用标识和合约信息;第一查找模块20,用于在多个第一调用接口模块中查找出对应的第一调用标识第一调用接口模块,其中,每个第一调用接口模块中包括至少一个与指定区块链相对应的智能合约模板;第一调用接口模块30,用于当接收到客户端发送的包含有指定区块链的网络标识的第一部署请求时,基于网络标识确定对应指定区块链的智能合约模板,并将合约信息映射到智能合约模板,生成用于在指定区块链上部署的智能合约;第一发送模块40,用于将包含有智能合约的第二部署请求发送给指定区块链,以使指定区块链对智能合约进行部署。这样,基于用户需求构建的智能合约,通过客户端向服务器发送调用包含有该智能合约模板的第一调用接口模块的第一调用请求,再用户需求部署的至少一个指定区块链,对于每个指定区块链,基于第一调用接口模块确定对应该指定区块链的智能合约模板对客户端发送的合约信息进行处理,生成用户需求构建的智能合约,将该智能合约部署该指定区块链上,这样,实现了在DAPP在开发过程中通过对智能合约模板的调用,将一个合约信息分别部署在一个或或多个不同的用户指定区块链上的目的,进而解决了相关技术中DAPP在开发过程中需要在不同区块链上重复开发的技术问题。
基于相同的技术构思,本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机代码,当计算机代码被执行时,上述的DAPP的开发方法被执行。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
本申请所涉及的计算机程序可以存储于计算机可读存储介质中,所述计算机可读存储介质可以包括:能够携带计算机程序代码的任何实体装置、虚拟装置、优盘、移动硬盘、磁碟、光盘、计算机存储器、只读计算机存储器(Read-Only Memory,ROM)、随机存取计算机存储器(Random Access Memory,RAM)、电载波信号、电信信号以及其他软件分发介质等。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种分布式应用DAPP的开发方法,其特征在于,该方法应用于服务器,所述服务器包括多个第一调用接口模块,且每个所述第一调用接口模块中包括至少一个与指定区块链相对应的智能合约模板,该方法包括:
接收客户端发送的第一调用请求,其中,所述第一调用请求包括第一调用标识和合约信息;
查找出所述第一调用标识对应的所述第一调用接口模块;
当接收到所述客户端发送的包含有所述指定区块链的网络标识的第一部署请求时,所述第一调用接口模块基于所述网络标识确定对应所述指定区块链的所述智能合约模板,并将所述合约信息映射到所述智能合约模板,生成用于在所述指定区块链上部署的智能合约;
将包含有所述智能合约的第二部署请求发送给所述指定区块链,以使所述指定区块链对所述智能合约进行部署。
2.根据权利要求1所述的DAPP的开发方法,其特征在于,每个所述第一调用接口模块中还包括至少一个与验证区块链相对应的智能合约模板,在所述查找所述第一调用标识对应的所述第一调用接口模块之后,以及在接收所述客户端发送的第一部署请求之前,该方法还包括:
所述第一调用接口模块将所述合约信息录入对应所述验证区块链的所述智能合约模板,生成用于在所述验证区块链上部署的智能合约;
将包含有用于在所述验证区块链上部署的智能合约的第三部署请求发送给所述验证区块链,以使所述验证区块链对该智能合约进行部署,并反馈该智能合约的运行信息;
将所述运行信息生成第一验证信息,并将所述第一验证信息发送给所述客户端。
3.根据权利要求2所述的DAPP的开发方法,其特征在于,所述将所述合约信息映射到所述智能合约模板,生成用于在所述指定区块链上部署的智能合约,包括:
所述第一调用接口模块将用于在所述验证区块链上部署的智能合约中包括的合约信息映射到对应所述指定区块链的所述智能合约模板,生成用于在所述指定区块链上部署的智能合约。
4.根据权利要求2所述的DAPP的开发方法,其特征在于,所述第一调用请求还包括用户标识,该方法还包括:
基于所述第一调用请求包括的用户标识,获取对应所述验证区块链的私钥;
基于所述验证区块链的私钥对所述第三部署请求进行签名,以执行所述将包含有用于在所述验证区块链上部署的智能合约的第三部署请求发送给所述验证区块链的步骤。
5.根据权利要求4所述的DAPP的开发方法,其特征在于,所述第一部署请求还包括用户标识,该方法包括:
基于所述第一部署请求包括的用户标识,获取对应所述指定区块链的私钥;
基于所述指定区块链的私钥对所述第二部署请求进行签名,以执行所述将包含有所述智能合约的第二部署请求发送给所述指定区块链的步骤。
6.根据权利要求4或5所述的DAPP的开发方法,其特征在于,所述服务器还包括私钥托管模块,该方法包括:
所述私钥托管模块响应于所述第一调用请求包括的用户标识,获取所述验证区块链的私钥;和/或
所述私钥托管模块响应于所述第一部署请求包括的用户标识,获取所述指定区块链的私钥。
7.根据权利要求1所述的DAPP的开发方法,其特征在于,所述服务器还包括多个第二调用接口模块,该方法包括:
接收客户端发送的第二调用请求,其中,所述第二调用请求包括第二调用标识和事务信息;
查找所述第二调用标识对应的所述第二调用接口模块,以使该第二调用接口模块将事务信息生成符合所述验证区块链格式的事务请求;
将所述事务请求发送给所述验证区块链,以使所述验证区块链对所述事务请求进行响应,并反馈响应信息;
将所述响应信息生成第二验证信息,并将所述第二验证信息发送给所述客户端。
8.一种DAPP的开发装置,其特征在于,该装置应用于服务器,该装置包括:
第一接收模块,用于接收客户端发送的第一调用请求,其中,所述第一调用请求包括第一调用标识和合约信息;
第一查找模块,用于在多个第一调用接口模块中查找出对应的所述第一调用标识所述第一调用接口模块,其中,每个所述第一调用接口模块中包括至少一个与指定区块链相对应的智能合约模板;
所述第一调用接口模块,用于当接收到所述客户端发送的包含有所述指定区块链的网络标识的第一部署请求时,基于所述网络标识确定对应所述指定区块链的所述智能合约模板,并将所述合约信息映射到所述智能合约模板,生成用于在所述指定区块链上部署的智能合约;
第一发送模块,用于将包含有所述智能合约的第二部署请求发送给所述指定区块链,以使所述指定区块链对所述智能合约进行部署。
9.根据权利要求8所述的DAPP的开发装置,其特征在于,每个所述第一调用接口模块中还包括至少一个与验证区块链相对应的智能合约模板,该装置还包括第二发送模块和第三发送模块;
所述第一调用接口模块,用于将所述合约信息录入对应所述验证区块链的所述智能合约模板,生成用于在所述验证区块链上部署的智能合约;
所述第二发送模块,用于将包含有用于在所述验证区块链上部署的智能合约的第三部署请求发送给所述验证区块链,以使所述验证区块链对该智能合约进行部署,并反馈该智能合约的运行信息;
所述第三发送模块,用于将所述运行信息生成第一验证信息,并将所述第一验证信息发送给所述客户端。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机代码,当所述计算机代码被执行时,如权利要求1-7任一项所述的DAPP的开发方法被执行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811639920.2A CN109683869A (zh) | 2018-12-29 | 2018-12-29 | Dapp的开发方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811639920.2A CN109683869A (zh) | 2018-12-29 | 2018-12-29 | Dapp的开发方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109683869A true CN109683869A (zh) | 2019-04-26 |
Family
ID=66190352
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811639920.2A Pending CN109683869A (zh) | 2018-12-29 | 2018-12-29 | Dapp的开发方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109683869A (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110262777A (zh) * | 2019-05-21 | 2019-09-20 | 阿里巴巴集团控股有限公司 | 一种区块链应用框架 |
CN110348202A (zh) * | 2019-07-12 | 2019-10-18 | 北京物资学院 | 一种基于区块链智能合约的角色访问控制***及方法 |
CN110502218A (zh) * | 2019-08-26 | 2019-11-26 | 深圳前海环融联易信息科技服务有限公司 | 智能合约开发方法、装置、计算机设备及存储介质 |
CN110532115A (zh) * | 2019-09-04 | 2019-12-03 | 北京海益同展信息科技有限公司 | 用于开发智能合约的***、方法和装置 |
CN110933163A (zh) * | 2019-11-27 | 2020-03-27 | 腾讯科技(深圳)有限公司 | 区块链合约部署方法、装置、设备以及存储介质 |
CN111026982A (zh) * | 2019-10-15 | 2020-04-17 | 深圳壹账通智能科技有限公司 | 智能合约处理方法、计算机设备及存储介质 |
CN111338608A (zh) * | 2020-02-28 | 2020-06-26 | 腾讯科技(深圳)有限公司 | 分布式应用开发方法、装置、节点设备及可读存储介质 |
CN111352706A (zh) * | 2020-02-28 | 2020-06-30 | 百度在线网络技术(北京)有限公司 | 一种数据访问方法、装置、设备及存储介质 |
CN111386523A (zh) * | 2019-11-08 | 2020-07-07 | 支付宝(杭州)信息技术有限公司 | 用于基于区块链的去中心化应用开发的***和方法 |
CN111597269A (zh) * | 2020-05-21 | 2020-08-28 | 昆明大棒客科技有限公司 | 一种基于区块链的合约实现方法、装置及设备 |
CN112270160A (zh) * | 2020-10-10 | 2021-01-26 | 中国信息通信研究院 | 一种基于智能合约分配标识符的方法及装置 |
CN112418874A (zh) * | 2020-06-10 | 2021-02-26 | 上海哔哩哔哩科技有限公司 | 数据追溯方法、装置及计算机设备 |
CN112685016A (zh) * | 2020-12-31 | 2021-04-20 | 北京存金所贵金属有限公司 | 区块链应用的开发方法、装置和设备 |
CN112947984A (zh) * | 2020-09-29 | 2021-06-11 | 深圳市明源云科技有限公司 | 应用程序开发方法及装置 |
CN113162848A (zh) * | 2020-01-22 | 2021-07-23 | 北京百度网讯科技有限公司 | 一种区块链网关的实现方法、装置、网关和介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170344988A1 (en) * | 2016-05-24 | 2017-11-30 | Ubs Ag | System and method for facilitating blockchain-based validation |
CN108769751A (zh) * | 2018-05-02 | 2018-11-06 | 中广热点云科技有限公司 | 一种基于智能合约的网络视听管理支撑*** |
CN108830606A (zh) * | 2018-05-30 | 2018-11-16 | 阿里巴巴集团控股有限公司 | 智能合约的部署、调用、执行方法和装置 |
CN109040195A (zh) * | 2018-07-11 | 2018-12-18 | 北京欧链科技有限公司 | Dapp服务数据的处理方法、装置及电子设备 |
-
2018
- 2018-12-29 CN CN201811639920.2A patent/CN109683869A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170344988A1 (en) * | 2016-05-24 | 2017-11-30 | Ubs Ag | System and method for facilitating blockchain-based validation |
CN108769751A (zh) * | 2018-05-02 | 2018-11-06 | 中广热点云科技有限公司 | 一种基于智能合约的网络视听管理支撑*** |
CN108830606A (zh) * | 2018-05-30 | 2018-11-16 | 阿里巴巴集团控股有限公司 | 智能合约的部署、调用、执行方法和装置 |
CN109040195A (zh) * | 2018-07-11 | 2018-12-18 | 北京欧链科技有限公司 | Dapp服务数据的处理方法、装置及电子设备 |
Cited By (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110262777A (zh) * | 2019-05-21 | 2019-09-20 | 阿里巴巴集团控股有限公司 | 一种区块链应用框架 |
CN110262777B (zh) * | 2019-05-21 | 2023-12-01 | 创新先进技术有限公司 | 一种区块链应用框架 |
CN110348202A (zh) * | 2019-07-12 | 2019-10-18 | 北京物资学院 | 一种基于区块链智能合约的角色访问控制***及方法 |
CN110502218A (zh) * | 2019-08-26 | 2019-11-26 | 深圳前海环融联易信息科技服务有限公司 | 智能合约开发方法、装置、计算机设备及存储介质 |
CN110502218B (zh) * | 2019-08-26 | 2023-05-19 | 深圳前海环融联易信息科技服务有限公司 | 智能合约开发方法、装置、计算机设备及存储介质 |
CN110532115B (zh) * | 2019-09-04 | 2021-03-05 | 北京海益同展信息科技有限公司 | 用于开发智能合约的***、方法和装置 |
CN110532115A (zh) * | 2019-09-04 | 2019-12-03 | 北京海益同展信息科技有限公司 | 用于开发智能合约的***、方法和装置 |
EP4027242A4 (en) * | 2019-09-04 | 2023-09-20 | Jingdong Technology Information Technology Co., Ltd. | SYSTEM, METHOD AND APPARATUS FOR DEVELOPING INTELLIGENT CONTRACTS |
CN111026982A (zh) * | 2019-10-15 | 2020-04-17 | 深圳壹账通智能科技有限公司 | 智能合约处理方法、计算机设备及存储介质 |
CN111386523B (zh) * | 2019-11-08 | 2023-10-17 | 支付宝(杭州)信息技术有限公司 | 用于基于区块链的去中心化应用开发的***和方法 |
CN111386523A (zh) * | 2019-11-08 | 2020-07-07 | 支付宝(杭州)信息技术有限公司 | 用于基于区块链的去中心化应用开发的***和方法 |
CN110933163A (zh) * | 2019-11-27 | 2020-03-27 | 腾讯科技(深圳)有限公司 | 区块链合约部署方法、装置、设备以及存储介质 |
CN110933163B (zh) * | 2019-11-27 | 2021-08-24 | 腾讯科技(深圳)有限公司 | 区块链合约部署方法、装置、设备以及存储介质 |
CN113162848A (zh) * | 2020-01-22 | 2021-07-23 | 北京百度网讯科技有限公司 | 一种区块链网关的实现方法、装置、网关和介质 |
CN113162848B (zh) * | 2020-01-22 | 2022-11-01 | 北京百度网讯科技有限公司 | 一种区块链网关的实现方法、装置、网关和介质 |
CN111338608A (zh) * | 2020-02-28 | 2020-06-26 | 腾讯科技(深圳)有限公司 | 分布式应用开发方法、装置、节点设备及可读存储介质 |
CN111352706A (zh) * | 2020-02-28 | 2020-06-30 | 百度在线网络技术(北京)有限公司 | 一种数据访问方法、装置、设备及存储介质 |
CN111352706B (zh) * | 2020-02-28 | 2023-09-15 | 百度在线网络技术(北京)有限公司 | 一种数据访问方法、装置、设备及存储介质 |
CN111597269A (zh) * | 2020-05-21 | 2020-08-28 | 昆明大棒客科技有限公司 | 一种基于区块链的合约实现方法、装置及设备 |
CN112418874A (zh) * | 2020-06-10 | 2021-02-26 | 上海哔哩哔哩科技有限公司 | 数据追溯方法、装置及计算机设备 |
CN112947984A (zh) * | 2020-09-29 | 2021-06-11 | 深圳市明源云科技有限公司 | 应用程序开发方法及装置 |
CN112947984B (zh) * | 2020-09-29 | 2024-05-14 | 深圳市明源云科技有限公司 | 应用程序开发方法及装置 |
CN112270160A (zh) * | 2020-10-10 | 2021-01-26 | 中国信息通信研究院 | 一种基于智能合约分配标识符的方法及装置 |
CN112685016A (zh) * | 2020-12-31 | 2021-04-20 | 北京存金所贵金属有限公司 | 区块链应用的开发方法、装置和设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109683869A (zh) | Dapp的开发方法和装置 | |
CN107317672A (zh) | 一种轻量终端机区块链*** | |
CN109146679A (zh) | 基于区块链的智能合约调用方法及装置、电子设备 | |
CN110493007A (zh) | 一种基于区块链的信息验证方法、装置、设备及存储介质 | |
CN107301536A (zh) | 资源转移方法及装置 | |
CN110070359A (zh) | 基于区块链的数据核对***、方法、计算设备及存储介质 | |
KR101876674B1 (ko) | 블록 체인을 이용한 공동 계좌 관리 방법 및 이를 실행하는 시스템 | |
CN110430235B (zh) | 跨链发送可认证消息的方法、装置、存储介质和计算设备 | |
CN104363072A (zh) | 一种错误信息传递转义方法、装置和*** | |
CN110990879B (zh) | 一种基于区块链的数据存证方法 | |
CN108985930A (zh) | 信息处理方法及装置、区块链节点及存储介质 | |
CN107809332A (zh) | 复合接口配置及复合接口调用方法、装置 | |
CN107886006A (zh) | 数据操作方法、装置及电子设备 | |
CN107067559A (zh) | 一种实现充电桩互联充电的方法和装置 | |
CN107734498A (zh) | SIM卡向eSIM卡的数据迁移方法及装置 | |
CN110163634A (zh) | 基于区块链的退款方法和装置、电子设备 | |
CN108966226A (zh) | 基于身份信息的业务处理方法及装置 | |
CN106952081A (zh) | 一种权限分级业务的流程实例化方法及设备 | |
CN111338645B (zh) | ***合约的创建方法及装置 | |
CN102194292B (zh) | 开票服务器、抄税***和抄税方法 | |
CN112685792A (zh) | 一种模型验证方法、装置及电子设备 | |
CN106572095A (zh) | 帐号注册方法、装置及*** | |
CN107590682A (zh) | 广告投放方法、服务器、热点设备和*** | |
CN113111125A (zh) | 一种基于区块链的业务存证方法 | |
CN105227599B (zh) | Web应用的识别方法和装置 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190426 |
|
RJ01 | Rejection of invention patent application after publication |