CN111338608B - 分布式应用开发方法、装置、节点设备及可读存储介质 - Google Patents
分布式应用开发方法、装置、节点设备及可读存储介质 Download PDFInfo
- Publication number
- CN111338608B CN111338608B CN202010133779.XA CN202010133779A CN111338608B CN 111338608 B CN111338608 B CN 111338608B CN 202010133779 A CN202010133779 A CN 202010133779A CN 111338608 B CN111338608 B CN 111338608B
- Authority
- CN
- China
- Prior art keywords
- application
- component
- function
- target
- attribute information
- 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.)
- Active
Links
- 238000011161 development Methods 0.000 title claims abstract description 73
- 238000000034 method Methods 0.000 title claims abstract description 55
- 230000006870 function Effects 0.000 claims abstract description 287
- 238000012545 processing Methods 0.000 claims description 20
- 238000004590 computer program Methods 0.000 claims description 7
- 238000012163 sequencing technique Methods 0.000 claims description 4
- 230000000712 assembly Effects 0.000 claims 1
- 238000000429 assembly Methods 0.000 claims 1
- 238000012544 monitoring process Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000003993 interaction Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000002035 prolonged effect Effects 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/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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/133—Protocols for remote procedure calls [RPC]
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Stored Programmes (AREA)
Abstract
本申请实施例提供了分布式应用开发方法、装置、节点设备及可读存储介质,该分布式应用开发方法包括:接收客户端发送的针对目标分布式应用的应用属性信息,该应用属性信息包括目标分布式应用的应用功能属性和待部署区块链的标识信息;根据该应用功能属性从组件库包括的至少一个分布式应用组件中确定出至少一个目标组件;基于前述应用属性信息以及上述至少一个目标组件,得到目标分布式应用,并将该目标分布式应用部署于前述标识信息对应的待部署区块链中。采用这样的分布式应用开发方法,提升分布式应用开发过程中应用功能的复用性以及便捷性,从而降低了开发成本。
Description
技术领域
本申请涉及计算机领域,尤其涉及一种分布式应用开发方法、装置、节点设备及可读存储介质。
背景技术
随着区块链技术的发展,结合区块链技术的分布式应用(DecentralizedApplication,DApp)已逐渐走入人们的视野。DApp的功能通过部署在区块链网络中的智能合约来实现。在开发多个DApp的时候,就算发现各个DApp的功能有所相同,也需要针对各个DApp重新开发部署,延长了开发周期,增加了开发成本。
可见,如何提供一种DApp的开发方法来提升DApp开发过程的便捷性以及功能的复用性,降低开发成本成为了一个亟待解决的问题。
发明内容
本申请实施例提供了一种分布式应用开发方法、装置、节点设备及可读存储介质,采用这样的分布式应用开发方法,提升了分布式应用开发中功能的复用性和便捷性,从而节省了人力和时间等开发成本。
第一方面,本申请实施例提供了一种分布式应用开发方法,所述方法应用于区块链网络,所述方法包括:
接收客户端发送的针对目标分布式应用的应用属性信息,所述应用属性信息包括所述目标分布式应用的应用功能属性和待部署区块链的标识信息;
根据所述应用功能属性从组件库包括的至少一个分布式应用组件中确定出至少一个目标组件;
基于所述应用属性信息以及所述至少一个目标组件得到所述目标分布式应用,并将所述目标分布式应用部署于所述标识信息对应的所述待部署区块链中。
第二方面,本申请实施例提供了一种分布式应用开发装置,所述装置配置于区块链网络,所述装置包括:
数据获取模块,用于接收客户端发送的针对目标分布式应用的应用属性信息,所述应用属性信息包括所述目标分布式应用的应用功能属性和待部署区块链的标识信息;
数据处理模块,用于根据所述应用功能属性从组件库包括的至少一个分布式应用组件中确定出至少一个目标组件;
所述数据处理模块,还用于基于所述应用属性信息以及所述至少一个目标组件得到所述目标分布式应用,并将所述目标分布式应用部署于所述标识信息对应的所述待部署区块链中。
第三方面,本申请实施例提供了一种节点设备,所述节点设备包括输入设备和输出设备,所述节点设备还包括处理器,适于实现一条或多条指令,所述一条或多条指令适于由所述处理器加载并执行上述第一方面所述的分布式应用开发方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面所述的分布式应用开发方法。
本申请实施例中,节点设备接收客户端发送的携带有目标分布式应用的应用属性信息,其中,该应用属性信息包含有应用功能属性和待部署区块链的标识信息,进一步地,节点设备可以根据该应用功能属性从组件库中确定出至少一个目标组件,并根据前述应用属性信息以及该至少一个目标组件集成得到目标分布式应用。通过调用组件的方法对目标分布式应用进行集成开发,提升了组件功能的复用性,从而增加了开发的便捷度。节点设备再将该目标分布式应用部署于前述标识信息对应的待部署区块链中,完成了分布式应用从开发到部署的过程,节省了开发过程中对人力和时间成本等开发成本。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种分布式应用开发系统的架构示意图;
图2是本申请实施例提供的一种分布式应用开发方法的流程示意图;
图3是本申请实施例提供的另一种分布式应用开发方法的流程示意图;
图4是本申请实施例提供的一种目标组件衔接顺序的示意图;
图5是本申请实施例提供的一种分布式应用开发装置的结构示意图;
图6是本申请实施例提供的一种节点设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
由于对多个DApp进行开发的过程中,未顾及各个DApp功能的复用性问题,导致开发周期过长等开发成本过高的问题,本申请接收针对目标分布式应用的应用属性信息,其中,该应用属性信息中包括有应用功能属性和待部署区块链的标识信息,通过调用组件库的至少一个分布式应用组件,并将这些分布式应用组件组合得到目标分布式应用的开发方法,以组件的形式提升DApp功能的复用性,进而提升分布式应用开发的便捷性,节约时间成本和人力成本等开发成本。
本申请的技术方案可以应用于节点设备,该节点设备可以为终端、服务器等,该节点设备可以为区块链网络中的节点设备,也可以是独立于该区块链网络的设备。例如,开发者(用户)操作的应用开发终端可以是区块链网络中的节点设备,在这样的情况下,应用开发终端接收自身配置的客户端的目标分布式应用的应用属性信息,其中,该应用属性信息包括有目标分布式应用的应用功能属性和待部署区块链的标识信息,进而,应用开发终端可以根据应用功能属性从组件库包括的分布式应用组件中确定出至少一个(一个或对多个)目标组件,并组合这些目标组件得到目标分布式应用。开发者(用户)操作的应用开发终端可以是独立于区块链网络的节点设备,在这样的情况下,该应用开发终端可以与区块链网络进行通信,根据应用功能属性从组件库包括的分布式应用组件中确定出至少一个(一个或对多个)目标组件,并集成这些目标组件得到目标分布式应用。然后,该应用开发终端将目标分布式应用部署于标识信息对应的区块链中。
在本申请中,该组件库可以是存在于区块链网络中的组件库,也可以是独立于区块链网络的指定数据库,在此不做具体限定。并且,本申请涉及的终端如上述的应用开发终端对应的终端具体可以是智能手机、平板电脑、笔记本电脑、台式电脑、车载智能终端等,本申请实施例不做限定。
以节点设备为与区块链网络通信的应用开发终端为例,组件库为独立于区块链网络的指定组件库,请参见图1,是本申请实施例提供的一种分布式应用开发系统的框架图,该分布式应用开发系统包括区块链网络10、应用开发终端11和组件库12。其中:
区块链网络10具体是指进行节点设备与节点设备之间数据共享的网络,区块链网络中可以包括多个节点设备101。每个节点设备101在进行正常工作可以接收到输入信息,并基于接收到的输入信息维护区块链网络内的共享数据(即区块链)。为了保证区块链网络内的信息互通,每个节点设备之间可以存在信息连接,任意两个节点设备之间可以实现点对点(Peer To Peer,P2P)通信,具体可以通过有线通信链路或无线通信链路进行P2P通信。例如,当区块链网络中的任意节点设备接收到输入信息时,其他节点设备便根据共识算法获取该输入信息,将该输入信息作为共享数据中的数据进行存储,使得区块链网络中全部节点设备上存储的数据均一致。
应用开发终端11和组件库12可以接入区块链网络10中,并可以与区块链网络10中的节点设备进行通信。
其中,对于区块链网络中的每个节点设备,均具有与其对应的节点设备标识,而且区块链网络中的每个节点设备均可以存储有区块链网络中其他节点设备的节点设备标识,以便后续根据其他节点设备的节点设备标识,将生成的区块广播至区块链网络中的其他节点设备。每个节点设备中可维护一个如下表所示的节点设备标识列表,将节点设备名称和节点设备标识对应存储至该节点设备标识列表中。其中,节点设备标识可为互联网协议(Internet Protocol,IP)地址以及其他任一种能够用于标识该节点设备的信息,下述表一中仅以IP地址为例进行说明。
表一
节点设备名称 | 节点设备标识 |
节点设备1 | 117.114.151.174 |
节点设备2 | 117.116.189.145 |
… | … |
节点设备N | 119.123.789.258 |
采用这样结合区块链技术在一些可行的实施方式中,应用开发终端11接收自身配置的客户端发送的针对目标DApp的应用属性信息,其中,该应用属性信息包括目标DApp的应用功能属性和待部署区块链的标识信息,进一步地,应用开发终端11可以根据该应用功能属性从组件库12中包括的至少一个DApp组件中确定出至少一个目标组件,进而,应用开发终端基于前述应用属性信息集成这些目标组件得到目标DApp,并将该目标DApp部署于区块链网络10中前述标识信息对应的待部署区块链中。采用这样的DApp开发方法,通过组件的形式提升Dapp的功能的复用性,并通过调用组件集成开发Dapp的方式提升了DApp开发的便捷性,节省了时间成本等开发成本。
请参见图2,是本申请实施例提供的一种DApp开发方法的流程示意图,该DApp开发方法应用于区块链网络,该DApp开发方法包括如下步骤:
S201:节点设备接收客户端发送的针对目标DApp的应用属性信息,该应用属性信息包括目标DApp的应用功能属性和待部署区块链的标识信息。
其中,应用属性信息可以为目标DApp的需求文档或说明书等,在这种情况下,应用功能属性可以为需求文档或说明书指示的目标DApp需要具有的应用功能,例如,投票功能、流量统计功能等。其中,待部署区块链可以为独立的区块链局域网;也可以为多个相对独立的区块链局域网中的某一区块链,在这种情况下,待部署区块链的标识信息可以包含两部分:待部署区块链网络的网络标识信息和待部署区块链的区块链标识信息。其中,网络标识信息可以为在该区块链局域网中唯一标识对应区块链网络的字符串,区块链标识信息可以为在该网络标识信息对应的区块链网中唯一标识对应区块链的字符串。例如,待部署区块链的标识信息为001-002(或001002),则表示该待部署区块链为001区块链网络中的002区块链。可选的,当前述节点设备部署(或通信)于某一区块链网络中,且待部署区块链为该区块链网络中的一区块链时,在这种情况下,待部署区块链的标识信息可以为在该区块链网中区块链对应的区块链标识信息,例如区块链编号001等。可选的,当区块链网络中仅包含有一条区块链时,则待部署区块链的标识信息可以为该区块链网络的网络标识信息或该条区块链对应的区块链标识信息。进一步可选的,该待部署区块链可以是公有链、私有链或是联盟链中的任一种区块链类型。客户端可以是该应用开发终端上配置的客户端,也可以是与该应用开发终端进行通信连接的客户端,本申请对此不做具体限制。
示例性地,在一个应用场景中,用户(或DApp开发人员)通过客户端发送DApp1(即目标DApp)的需求文档,该需求文档中指示了DApp1可以具有流量统计的功能,并且指定DApp1需要部署在区块链局域网中编号为001的区块链中。
在一个实施例中,上述应用属性信息还携带有客户端对应的用户(开发人员)的私钥签名,节点设备接收该应用属性信息之后,从区块链网络中获取该私钥签名对应的公钥,并利用该公钥对应用属性信息进行解签,若解签成功,则对该用户的身份验证成功。采用这种方式,增加DApp在开发过程中的可溯源性。
可选地,区块链网络节点接收用户通过客户端提交注册信息后,对该注册信息验证通过后,生成该用户对应的一对非对称加密的密钥(公钥和私钥),以使得客户端在与节点设备进行数据交互时,可以根据非对称加密技术(私钥签名加密,公钥解密或解签)提升数据的可靠性,防止被篡改。并将该公钥广播存储于区块链网络。其中,注册信息可以包括客户端对应的用户的邮箱信息、手机号或身份信息等能唯一标识用户的信息。
S202:节点设备根据应用功能属性从组件库包括的至少一个DApp组件中确定出至少一个目标组件。
其中,组件库包括的DApp组件的数目和目标组件的数目均为一个和多个,其中目标组件的数目小于或等于组件库中DApp组件的数目。组件库为预先建立的DApp组件库,组件库中包含的DApp组件可以是用户(开发人员)根据DApp中常用的或复用性高的功能预先建立的,也可以是根据前述应用属性信息建立后保存至组件库的,本方案对此不做具体限制。
在一个可行的实施例中,前述DApp组件具有功能属性信息,节点设备可以获取组件库包括的至少一个DApp组件中每个DApp组件对应的功能属性信息,并将每个DApp组件对应的功能属性信息与目标DApp的应用功能属性进行对比。若功能属性信息与目标DApp的应用功能属性匹配(对应),则将该功能属性信息对应的DApp组件确定为目标组件。其中,DApp组件的功能属性信息表明了该DApp组件对应实现的具体应用功能。
示例性地,目标DApp的应用功能属性为流量监控功能、广告插件功能,组件库中包括DApp组件1的功能属性信息为随机抽签功能,DApp组件2的功能属性信息为统计抽签次数功能、DApp组件3的功能属性信息为流量监控功能、DApp组件4的功能属性信息为广告插件功能。节点设备通过将组件库中DApp组件1、DApp组件2、DApp组件3和DApp组件4的功能属性信息与目标DApp的应用功能属性进行对比,将于匹配的流量监控功能对应的DApp组件3和广告插件功能对应的DApp组件4确定为目标组件。
在一个实施例中,应用功能属性包括至少一个(一个或多个)应用功能,在节点设备从组件库中确定出目标组件之前,节点设备可以生成至少一个应用功能中的各个应用功能对应的智能合约,进一步地,可以基于各个应用功能对应的智能合约,分别创建各个应用功能对应的DApp组件,并将该DApp组件存储于组件库中。
示例性地,DApp2的应用功能属性中包括两个应用功能:随机抽签功能和统计抽签次数功能,则节点设备可以生成一个随机抽签功能对应的智能合约1和一个统计抽签次数功能对应的智能合约2,并创建DApp组件1绑定智能合约1以实现随机抽签功能,创建创建DApp组件2绑定智能合约2以实现统计抽签次数功能,并将DApp组件1和DApp组件2存储于组件库中。
可选地,多个应用功能还可以对应一个智能合约,集成于一个DApp组件中。例如,DApp2的应用功能属性中包括随机抽签功能和统计抽签次数功能,则可以根据该随机抽签功能和统计抽签次数功能生成一个智能合约,并创建该智能合约对应的DApp组件3。
可选地,还可以将多个组件的组合为一个功能组件存储于组件库。例如,DApp组件1对应随机抽签功能,DApp组件2对应统计抽签次数功能,则可以将DApp组件1和DApp组件2组合成DApp组件3,DApp组件3用于实现统计随机抽签次数的功能。
S203:节点设备基于该应用属性信息以及上述至少一个目标组件得到目标DApp,并将该目标DApp部署于前述标识信息对应的待部署区块链中。
该应用属性信息中还可以包含指示目标组件的组合规则信息、各个功能的衔接方式、目标组件之间的数据流向等附加信息,节点设备可以根据该应用属性中的附加信息将前述确定的至少一个目标组件进行集成(或组合),得到目标DApp,并将该目标DApp部署于待部署区块链中,完成该目标DApp的开发部署。
本申请实施例中,节点设备接收客户端发送的携带有目标分布式应用的应用属性信息,其中,该应用属性信息包含有应用功能属性和待部署区块链的标识信息,进一步地,节点设备可以根据该应用功能属性从组件库中确定出至少一个目标组件,并根据前述应用属性信息将该至少一个目标组件集成为目标分布式应用。通过调用组件的方法对目标分布式应用进行集成开发,提升了组件功能的复用性,从而增加了开发的便捷度。节点设备再将该目标分布式应用部署于前述标识信息对应的待部署区块链中,完成了分布式应用从开发到部署的过程,节省了开发过程中对人力和时间成本等开发成本。
请参见图3,是本申请实施例提供的另一种DApp开发方法的流程示意图,该DApp开发方法应用于区块链网络,该DApp开发方法包括如下步骤:
S301:节点设备接收客户端发送的针对目标DApp的应用属性信息,该应用属性信息包括目标DApp的应用功能属性和待部署区块链的标识信息。
S302:节点设备根据应用功能属性从组件库包括的至少一个DApp组件中确定出至少一个目标组件。
其中,步骤S301-S302的具体实施方式可以参见前述实施例中步骤S201-S202的具体实施方式,在此不再赘述。
S303:节点设备检测该目标组件的功能属性与前述应用功能属性是否一致。
其中,目标DApp的应用功能属性包括一个或多个应用功能,节点设备可以通过对比该目标组件的功能属性中包括的应用功能与前述应用功能属性,根据对比结果来判断该目标组件的功能属性与前述应用功能属性是否一致,即检验目标DApp的应用属性中的应用功能是否均已实现,若检测到目标DApp的应用属性中的应用功能均可以通过目标DApp组件的功能属性来实现,则表明该目标组件的功能属性与前述应用功能属性一致。若目标DApp的应用属性中的部分或全部应用功能未能从组件库中调用到具有相应功能属性的DApp组件实现,则表明不一致。
S304:若不一致,则节点设备根据应用功能属性与该目标组件的功能属性确定出待添加应用功能。
若不一致,则节点设备可以根据上述该目标组件的功能属性与前述应用功能属性是否一致的检测结果,确定出待添加应用功能。其中,待添加应用功能是指由于组件库中不存在与目标DApp中的应用功能的相应功能属性信息的DApp组件,导致通过调用组件库中已有的DApp组件进行实现的应用功能。示例性地,由于组件库中目前不存在流量监控功能DApp组件,导致DApp1的流量监控功能无法通过调用组件库中已存在的DApp组件实现,则流量监控功能被确定为待添加应用功能。
在一个实施例中,目标DApp的应用功能属性包括至少一个(一个或多个)应用功能,节点设备将至少一个应用功能中的每个应用功能与前述步骤已经确定出的所有目标组件的功能属性信息进行对比,若不匹配,则将与目标组件功能属性信息不匹配的应用功能确定为待添加应用功能。
示例性的,DApp1的应用功能属性包括3个应用功能,即流量监控功能、随机抽签功能和广告功能,从组件库中确定出两个目标组件,其中,目标组件1的功能属性信息为流量监控功能,目标组件2的功能属性信息为随机抽签功能。则可以将DApp的应用功能属性包括的应用功能与确定出的目标组件的功能属性信息进行对比,确定出广告功能为待添加应用功能。
S305:节点设备根据待添加应用功能创建DApp组件,并将该DApp组件存储于组件库。
节点设备根据待添加应用功能生成智能合约,并根据智能合约创建该待添加应用功能对应的DApp组件,并将该DApp组件存储于组件库中,以便后续调用。
S306:节点设备将该DApp组件确定为目标组件,并基于该应用属性信息以及上述至少一个目标组件得到目标DApp,以及将该目标DApp部署于前述标识信息对应的待部署区块链中。
将该待添加功能对应的DApp组件确定为目标组件,并基于应用属性信息将该目标组件与前述已经从组件库中确定的目标组件进行集成(组合)得到目标DApp,进而可以将该目标DApp部署于前述标识信息对应的待部署区块链中。
在一个实施例中,应用属性信息还可以包括至少一个应用功能的衔接顺序,进而,节点设备可以按照该衔接顺序对各个应用功能对应的目标组件进行排序,并根据排序结果,将目标组件进行集成衔接(或组合)得到目标DApp。其中衔接顺序可以是各个功能的执行先后顺序,也可以是根据目标组件之间数据流向而由用户(开发人员)制定的目标组件的衔接顺序。
示例性地,目标DApp为一个户外游戏竞技应用,目标组件包括地图功能对应的DApp组件1、多人对抗功能对应的DApp组件2、单人竞技功能对应的DApp组件3以及计分奖励功能对应的DApp组件4。目标DApp的应用功能衔接顺序是根据目标组件之间数据流向而由用户(开发人员)制定的目标组件的。如图4所述,为示例性的目标组件之间的衔接顺序,其衔接顺序为DApp组件1作为基础支撑优先加载,与分别与DApp组件2和DApp组件3进行数据衔接,最后DApp组件2和DApp组件3分别与DApp组件4进行数据衔接,进行计分奖励。
在一个实施例中,应用属性信息还包括至少一个应用功能的数据属性信息,进而,节点设备可以根据各个应用功能的数据属性信息,向该各个应用功能对应的目标组件添加该应用功能对应的数据属性信息,进一步地,节点设备可以基于目标组件的数据属性信息集成前述目标组件,得到目标DApp。其中,数据属性信息包括实现各个应用功能的数据来源、数据流向、产生数据的统计规则等。
可选的,该数据属性信息还包括了用户(开发人员)根据目标DApp的实际应用场景制定的需要保存至区块链网络的数据,例如竞技类游戏应用的最高分的数值、广告点击次数统计等。采用这样的方法,提升DApp交互数据的可靠性。
在一个实施例中,应用属性信息包括至少一个应用功能的衔接顺序和数据属性信息,在这种情况下,节点设备可以按照该衔接顺序对各个应用功能对应的目标组件进行排序得到排序结果,并根据各个应用功能的数据属性信息,向该各个应用功能对应的目标组件添加该应用功能对应的数据属性信息。进一步地,节点设备可以基于目标组件的排序结果和数据属性信息集成前述目标组件,得到目标DApp。
本申请实施例中,节点设备接收客户端发送的携带有目标分布式应用的应用属性信息,其中,该应用属性信息包含有应用功能属性和待部署区块链的标识信息,进而,节点设备可以根据该应用功能属性从组件库中确定出至少一个目标组件。节点设备还可以检测该目标组件的功能属性与前述应用功能属性是否一致,若不一致,则节点设备根据应用功能属性与该目标组件的功能属性确定出待添加应用功能,并根据待添加应用功能创建DApp组件,并将该DApp组件存储于组件库,进而,节点设备将该DApp组件确定为目标组件,并基于该应用属性信息集成上述至少一个目标组件得到目标DApp,以及将该目标DApp部署于前述标识信息对应的待部署区块链中。采用这样的方式,采用这样的DApp组件化开发方法提升了组件功能的复用性的同时,保证目标DApp的应用功能的完整性。
请参见图5,为本申请实施例提供的一种分布式应用开发装置的结构示意图,所述装置包括:
数据获取模块50,用于接收客户端发送的针对目标分布式应用的应用属性信息,所述应用属性信息包括所述目标分布式应用的应用功能属性和待部署区块链的标识信息;
数据处理模块51,用于根据所述应用功能属性从组件库包括的至少一个分布式应用组件中确定出至少一个目标组件;
所述数据处理模块51,还用于基于所述应用属性信息以及所述至少一个目标组件得到所述目标分布式应用,并将所述目标分布式应用部署于所述标识信息对应的所述待部署区块链中。
在一个实施例中,所述应用功能属性包括至少一个应用功能,所述根据所述应用功能属性从组件库包括的至少一个分布式应用组件中确定出至少一个目标组件之前,所述数据处理模块51,还用于分别生成所述至少一个应用功能中各个应用功能对应的智能合约;基于所述各个应用功能对应的智能合约,分别创建所述各个应用功能对应的分布式应用组件,并将所述分布式应用组件存储于所述组件库中。
在一个实施例中,所述分布式应用组件具有功能属性信息,所述数据处理模块50,还用于获取所述组件库包括的至少一个分布式应用组件中每个分布式应用组件对应的功能属性信息;所述数据处理模块51,还用于对比所述每个分布式应用组件对应的功能属性信息和所述应用功能属性;若所述功能属性信息与所述应用功能属性匹配,则将所述功能属性信息对应的所述分布式应用组件确定为目标组件。
在一个实施例中,所述基于所述应用属性信息以及所述至少一个目标组件得到所述目标分布式应用之前,所述数据处理模块51,还用于检测所述目标组件的功能属性信息与所述应用功能属性是否一致;若不一致,则根据所述应用功能属性与所述目标组件的功能属性信息确定出待添加应用功能;根据所述待添加应用功能创建分布式应用组件,并将所述分布式应用组件存储于所述组件库;将所述分布式应用组件确定为目标组件,并触发执行所述基于所述应用属性信息以及所述至少一个目标组件得到所述目标分布式应用的步骤。
在一个实施例中,所述应用功能属性包括至少一个应用功能,所述数据处理模块51,还用于将所述至少一个应用功能中的每个应用功能与所述目标组件的功能属性信息进行对比;若不匹配,则将与所述目标组件功能属性信息不匹配的应用功能确定为待添加应用功能。
在一个实施例中,所述应用属性信息还包括至少一个应用功能的衔接顺序,所述数据处理模块51,还用于按照所述衔接顺序,对所述各个应用功能对应的所述目标组件进行排序;根据排序结果集成所述至少一个目标组件,得到所述目标分布式应用。
在一个实施例中,所述应用属性信息还包括所述至少一个应用功能的数据属性信息,所述数据处理模块51,还用于根据所述各个应用功能的数据属性信息,分别向所述各个应用功能对应的目标组件添加所述应用功能的数据属性信息;基于所述目标组件的数据属性信息集成所述至少一个目标组件,得到目标分布式应用。
需要说明的是,本申请实施例所描述的分布式应用开发装置的各单元模块的功能可根据图2或图3所述的方法实施例中的方法具体实现,其具体实现过程可以参照图2或图3的方法实施例的相关描述,此处不再赘述。
基于上述方法实施例以及装置项实施例的描述,本申请实施例还提供一种节点设备。请参见图6,该节点设备可至少包括处理器601、输入设备602、输出设备603以及存储器604;其中,处理器601、输入设备602、输出设备603以及存储器604可通过总线或者其它连接方式进行连接。所述存储器604中还可以包括计算机可读存储介质,该计算机可读存储介质用于存储计算机程序,所述计算机程序包括程序指令,所述处理器601用于执行所述存储器604存储的程序指令。处理器601(或称CPU(Central Processing Unit,中央处理器))是节点设备的计算核心以及控制核心,其适于实现一条或多条指令,具体适于加载并执行一条或多条指令从而实现上述数据处理方法实施例中的相应方法流程或相应功能。其中,处理器601被配置调用所述程序指令执行:接收客户端发送的针对目标分布式应用的应用属性信息,所述应用属性信息包括所述目标分布式应用的应用功能属性和待部署区块链的标识信息;根据所述应用功能属性从组件库包括的至少一个分布式应用组件中确定出至少一个目标组件;基于所述应用属性信息以及所述至少一个目标组件得到所述目标分布式应用,并将所述目标分布式应用部署于所述标识信息对应的所述待部署区块链中。
在一个实施例中,所述应用功能属性包括至少一个应用功能,所述根据所述应用功能属性从组件库包括的至少一个分布式应用组件中确定出至少一个目标组件之前,所述处理器601,还用于分别生成所述至少一个应用功能中各个应用功能对应的智能合约;基于所述各个应用功能对应的智能合约,分别创建所述各个应用功能对应的分布式应用组件,并将所述分布式应用组件存储于所述组件库中。
在一个实施例中,所述分布式应用组件具有功能属性信息,所述处理器601,还用于获取所述组件库包括的至少一个分布式应用组件中每个分布式应用组件对应的功能属性信息;对比所述每个分布式应用组件对应的功能属性信息和所述应用功能属性;若所述功能属性信息与所述应用功能属性匹配,则将所述功能属性信息对应的所述分布式应用组件确定为目标组件。
在一个实施例中,所述基于所述应用属性信息以及所述至少一个目标组件得到所述目标分布式应用之前,所述处理器601,还用于检测所述目标组件的功能属性信息与所述应用功能属性是否一致;若不一致,则根据所述应用功能属性与所述目标组件的功能属性信息确定出待添加应用功能;根据所述待添加应用功能创建分布式应用组件,并将所述分布式应用组件存储于所述组件库;将所述分布式应用组件确定为目标组件,并触发执行所述基于所述应用属性信息以及所述至少一个目标组件得到所述目标分布式应用的步骤。
在一个实施例中,所述应用功能属性包括至少一个应用功能,所述处理器601,还用于将所述至少一个应用功能中的每个应用功能与所述目标组件的功能属性信息进行对比;若不匹配,则将与所述目标组件功能属性信息不匹配的应用功能确定为待添加应用功能。
在一个实施例中,所述应用属性信息还包括至少一个应用功能的衔接顺序,所述处理器601,还用于按照所述衔接顺序,对所述各个应用功能对应的所述目标组件进行排序;根据排序结果集成所述至少一个目标组件,得到所述目标分布式应用。
在一个实施例中,所述应用属性信息还包括所述至少一个应用功能的数据属性信息,所述处理器601,还用于根据所述各个应用功能的数据属性信息,分别向所述各个应用功能对应的目标组件添加所述应用功能的数据属性信息;基于所述目标组件的数据属性信息集成所述至少一个目标组件,得到目标分布式应用。
应当理解,在本申请实施例中,所称处理器601可以是中央处理单元(CentralProcessing Unit,CPU),该处理器601还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立a硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
该存储器604可以包括只读存储器和随机存取存储器,并向处理器601提供指令和数据。存储器604的一部分还可以包括非易失性随机存取存储器。例如,存储器604还可以存储设备类型的信息。该输入设备603可以包括触控板、指纹采传感器(用于采集用户的指纹信息)、麦克风、实体键盘等,输出设备603可以包括显示器(LCD等)、扬声器等。
具体实现中,本申请实施例中所描述的处理器601、存储器604、输入设备602和输出设备603可执行本申请实施例提供的图2或图3所述的方法实施例所描述的实现方式,也可执行本申请实施例图5所描述的分布式应用开发装置的实现方法,在此不再赘述。
在本申请的另一实施例中提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器执行时实现本申请实施例提供的图2或图3所述的方法实施所描述的实现方式,所述计算机可读存储介质可以是前述任一实施例所述的节点设备的内部存储单元,例如节点设备的硬盘或内存。所述计算机可读存储介质也可以是所述节点设备的外部存储设备,例如所述节点设备上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述计算机可读存储介质还可以既包括所述节点设备的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述节点设备所需的其他程序和数据。所述计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取可读存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。
其中,所述的可读存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所揭露的仅为本申请的部分实施例而已,当然不能以此来限定本申请之权利范围,本领域普通技术工作人员可以理解实现上述实施例的全部或部分流程,并依本申请权利要求所作的等同变化,仍属于本申请所涵盖的范围。
Claims (7)
1.一种分布式应用开发方法,其特征在于,所述方法应用于区块链网络,所述方法包括:
接收客户端发送的针对目标分布式应用的应用属性信息,所述应用属性信息包括所述目标分布式应用的应用功能属性、所述应用功能属性包括的至少一个应用功能中各个应用功能的数据属性信息和待部署区块链的标识信息,所述数据属性信息包括如下一种或者多种:实现对应应用功能的数据来源,数据流向,产生数据的统计规则;
分别生成所述至少一个应用功能中各个应用功能对应的智能合约;
基于所述各个应用功能对应的智能合约,分别创建所述各个应用功能对应的分布式应用组件,并将所述分布式应用组件存储于组件库中;
根据所述应用功能属性从所述组件库包括的至少一个分布式应用组件中确定出至少一个目标组件;
检测所述至少一个目标组件的功能属性信息与所述应用功能属性是否一致;
若不一致,则根据所述应用功能属性与所述至少一个目标组件的功能属性信息确定出待添加应用功能;
根据所述待添加应用功能生成智能合约,并根据所述智能合约创建分布式应用组件,并将所述分布式应用组件存储于所述组件库;
将所述分布式应用组件添加至所述至少一个目标组件中;
分别向所述各个应用功能对应的目标组件添加所述各个应用功能的数据属性信息;
基于所述至少一个目标组件的数据属性信息集成所述至少一个目标组件,得到目标分布式应用,并将所述目标分布式应用部署于所述标识信息对应的所述待部署区块链中。
2.根据权利要求1所述方法,其特征在于,所述分布式应用组件具有功能属性信息,所述根据所述应用功能属性从组件库包括的至少一个分布式应用组件中确定出至少一个目标组件,包括:
获取所述组件库包括的至少一个分布式应用组件中每个分布式应用组件对应的功能属性信息;
对比所述每个分布式应用组件对应的功能属性信息和所述应用功能属性;
若所述功能属性信息与所述应用功能属性匹配,则将所述功能属性信息对应的所述分布式应用组件确定为目标组件。
3.根据权利要求1所述方法,其特征在于,所述应用功能属性包括至少一个应用功能,所述根据所述应用功能属性与所述至少一个目标组件的功能属性信息确定出待添加应用功能,包括:
将所述至少一个应用功能中的每个应用功能与所述至少一个目标组件的功能属性信息进行对比;
若不匹配,则将与所述至少一个目标组件功能属性信息不匹配的应用功能确定为待添加应用功能。
4.根据权利要求1-3任一所述方法,其特征在于,所述应用属性信息还包括至少一个应用功能的衔接顺序,所述基于所述至少一个目标组件的数据属性信息集成所述至少一个目标组件,得到目标分布式应用,包括:
按照所述衔接顺序,对所述各个应用功能对应的所述目标组件进行排序;
根据排序结果和所述至少一个目标组件的数据属性信息集成所述至少一个目标组件,得到所述目标分布式应用。
5.一种分布式应用开发装置,其特征在于,所述分布式应用开发装置包括:
数据获取模块,用于接收客户端发送的针对目标分布式应用的应用属性信息,所述应用属性信息包括所述目标分布式应用的应用功能属性、所述应用功能属性包括的至少一个应用功能中各个应用功能的数据属性信息和待部署区块链的标识信息,所述数据属性信息包括如下一种或者多种:实现对应应用功能的数据来源,数据流向,产生数据的统计规则;
数据处理模块,用于分别生成所述至少一个应用功能中各个应用功能对应的智能合约;
所述数据处理模块,还用于基于所述各个应用功能对应的智能合约,分别创建所述各个应用功能对应的分布式应用组件,并将所述分布式应用组件存储于组件库中;
所述数据处理模块,还用于根据所述应用功能属性从组件库包括的至少一个分布式应用组件中确定出至少一个目标组件;
所述数据处理模块,还用于检测所述至少一个目标组件的功能属性信息与所述应用功能属性是否一致;
所述数据处理模块,还用于若不一致,则根据所述应用功能属性与所述至少一个目标组件的功能属性信息确定出待添加应用功能;
所述数据处理模块,还用于根据所述待添加应用功能生成智能合约,并根据所述智能合约创建分布式应用组件,并将所述分布式应用组件存储于所述组件库;
所述数据处理模块,还用于将所述分布式应用组件添加至所述至少一个目标组件中;
所述数据处理模块,还用于分别向所述各个应用功能对应的目标组件添加所述各个应用功能的数据属性信息,基于所述至少一个目标组件的数据属性信息集成所述至少一个目标组件,得到目标分布式应用,并将所述目标分布式应用部署于所述标识信息对应的所述待部署区块链中。
6.一种节点设备,其特征在于,包括处理器和存储器,所述处理器和所述存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行权利要求1-4任一项所述方法。
7.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储计算机程序,所述计算机程序被处理器执行以实现权利要求1-4任意一项所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010133779.XA CN111338608B (zh) | 2020-02-28 | 2020-02-28 | 分布式应用开发方法、装置、节点设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010133779.XA CN111338608B (zh) | 2020-02-28 | 2020-02-28 | 分布式应用开发方法、装置、节点设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111338608A CN111338608A (zh) | 2020-06-26 |
CN111338608B true CN111338608B (zh) | 2022-03-04 |
Family
ID=71184013
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010133779.XA Active CN111338608B (zh) | 2020-02-28 | 2020-02-28 | 分布式应用开发方法、装置、节点设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111338608B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112068877A (zh) * | 2020-08-14 | 2020-12-11 | 深圳市卓智荟教育科技有限公司 | 教育数字化应用的配置方法、装置和可读存储介质 |
CN112565340B (zh) * | 2020-11-12 | 2023-04-07 | 北京京东振世信息技术有限公司 | 分布式应用的服务调度方法、装置、计算机系统及介质 |
CN112434818B (zh) * | 2020-11-19 | 2023-09-26 | 脸萌有限公司 | 模型构建方法、装置、介质及电子设备 |
CN113259464B (zh) * | 2021-06-02 | 2021-11-02 | 支付宝(杭州)信息技术有限公司 | 组建区块链子网的方法和区块链系统 |
CN114860349B (zh) * | 2022-07-06 | 2022-11-08 | 深圳华锐分布式技术股份有限公司 | 数据加载方法、装置、设备及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019082100A1 (en) * | 2017-10-24 | 2019-05-02 | Tata Consultancy Services Limited | SYSTEM AND METHOD FOR GENERATING A BLOCK CHAIN APPLICATION FOR DIFFERENT BLOCK CHAIN TECHNOLOGIES |
CN110427179A (zh) * | 2019-06-26 | 2019-11-08 | 西安电子科技大学 | 面向智能合约语言的msvl程序自动生成方法及系统 |
CN110580147A (zh) * | 2018-06-07 | 2019-12-17 | 阿里巴巴集团控股有限公司 | 一种应用程序的开发方法和装置 |
CN110609679A (zh) * | 2019-09-17 | 2019-12-24 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、计算机可读存储介质和计算机设备 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102245990B1 (ko) * | 2018-02-27 | 2021-04-29 | 주식회사 오에스씨코리아 | 암호 화폐의 가치 안정성을 보장하기 위한 방법 |
CN108153520B (zh) * | 2018-03-20 | 2020-10-27 | 上海屹通信息科技发展有限公司 | 软件开发方法及装置 |
CN109710214A (zh) * | 2018-08-17 | 2019-05-03 | 深圳壹账通智能科技有限公司 | 电子签约软件的组建方法、装置、终端设备及存储介质 |
CN109683869A (zh) * | 2018-12-29 | 2019-04-26 | 北京阿斯特时代科技有限公司 | Dapp的开发方法和装置 |
CN109871208B (zh) * | 2019-01-04 | 2023-10-17 | 平安科技(深圳)有限公司 | 软件系统生成方法、装置、计算机可读存储介质及服务器 |
-
2020
- 2020-02-28 CN CN202010133779.XA patent/CN111338608B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019082100A1 (en) * | 2017-10-24 | 2019-05-02 | Tata Consultancy Services Limited | SYSTEM AND METHOD FOR GENERATING A BLOCK CHAIN APPLICATION FOR DIFFERENT BLOCK CHAIN TECHNOLOGIES |
CN110580147A (zh) * | 2018-06-07 | 2019-12-17 | 阿里巴巴集团控股有限公司 | 一种应用程序的开发方法和装置 |
CN110427179A (zh) * | 2019-06-26 | 2019-11-08 | 西安电子科技大学 | 面向智能合约语言的msvl程序自动生成方法及系统 |
CN110609679A (zh) * | 2019-09-17 | 2019-12-24 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、计算机可读存储介质和计算机设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111338608A (zh) | 2020-06-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111338608B (zh) | 分布式应用开发方法、装置、节点设备及可读存储介质 | |
JP6975332B2 (ja) | ブロックチェーンベースのスマートコントラクト呼び出し方法および装置、および電子デバイス | |
CN107566124B (zh) | 基于哈希运算的共识建立方法、区块链系统及存储介质 | |
CN109492378B (zh) | 一种基于设备识别码的身份验证方法、服务器及介质 | |
CN107579848B (zh) | 实用拜占庭容错共识机制中动态更改共识节点的方法 | |
US10073916B2 (en) | Method and system for facilitating terminal identifiers | |
CN112287034B (zh) | 一种数据同步方法、设备以及计算机可读存储介质 | |
CN110851879A (zh) | 一种基于存证区块链的侵权存证方法、装置及设备 | |
CN112966311B (zh) | 智能合约校验方法及装置和电子设备 | |
CN110060155B (zh) | 区块链的智能合约执行方法及装置和电子设备 | |
CN110570196A (zh) | 交易数据处理方法、装置、终端设备以及存储介质 | |
EP3779756A1 (en) | Information processing device, information processing method, and program | |
CN112883117B (zh) | 一种数据同步方法、设备以及计算机可读存储介质 | |
CN112714158A (zh) | 事务处理方法、中继网络、跨链网关、系统、介质和设备 | |
CN109886695A (zh) | 不同区块链之间的信息共享方法及装置和电子设备 | |
CN113763211A (zh) | 基于区块链的侵权检测方法及装置和电子设备 | |
CN112200680B (zh) | 区块链节点管理方法、装置、计算机以及可读存储介质 | |
CN111339551B (zh) | 数据的验证方法及相关装置、设备 | |
CN115131022A (zh) | 基于区块链的数字资产交易方法、装置、设备及介质 | |
CN113890739A (zh) | 跨区块链的认证方法、装置、电子设备及介质 | |
CN108632348B (zh) | 一种业务校验方法和装置 | |
CN113986760A (zh) | 微服务Mock测试方法、装置、计算机设备及存储介质 | |
CN114677138A (zh) | 一种数据处理方法、设备以及计算机可读存储介质 | |
CN112583798B (zh) | 从区块链系统中筛选共识节点的方法、装置及相关产品 | |
CN112149173A (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 |