任务计算方法、装置、节点设备和计算机可读存储介质与流程
未命名
09-22
阅读:38
评论:0
1.本发明涉及区块链技术领域,具体而言,涉及一种任务计算方法、装置、节点设备和计算机可读存储介质。
背景技术:
2.目前在区块链中进行任务计算时,往往是由主计算节点分发计算任务给多个从属计算节点,多个从属计算节点计算后,主计算节点可获得多个从属计算节点计算得到的计算结果,并对其进行合并以获得最终计算结果。
3.但该方法中,由于主计算节点为关键节点,掌握着全部的计算任务数据、过程数据以及最终的计算结果,因此若主节点受到攻击产生数据泄露问题,则意味着所有的数据都将被窃取,从而存在任务计算的安全性较低的问题。
技术实现要素:
4.有鉴于此,本发明的目的在于提供一种任务计算方法、装置、节点设备和计算机可读存储介质,以解决现有技术中存在的任务计算安全性较低的问题。
5.为了实现上述目的,本发明实施例采用的技术方案如下:
6.第一方面,本发明提供一种任务计算方法,应用于区块链网络中的任一节点设备,所述方法包括:
7.接收通信节点发送的任务数据包;所述任务数据包中包括待计算数据、运算程序以及任务编号;
8.其中,所述通信节点为所述区块链网络中与用户进行通信的节点,接收所述任务数据包的节点为所述区块链网络中的计算节点;所述通信节点用于将待计算任务对应的多个任务数据包分别转发至不同的计算节点,每个所述计算节点接收的任务数据包不同;
9.根据所述任务编号确定是否满足预设合并条件;
10.若满足所述预设合并条件,则根据所述任务编号执行数据处理结果合并操作;所述数据处理结果合并操作包括根据所述任务编号计算待合并任务编号,将所述任务编号对应的数据处理结果和所述待合并任务编号对应的数据处理结果进行合并,得到第一合并结果;所述数据处理结果为根据所述运算程序对所述待计算数据进行运算得到的计算结果,或者基于所述计算结果进行至少一次合并得到的第二合并结果;
11.对所述任务编号进行更新,根据更新后的任务编号确定是否满足所述预设合并条件,并在满足所述预设合并条件的情况下,根据所述更新后的任务编号执行所述数据处理结果合并操作,直到根据所述更新后的任务编号确定不满足所述预设合并条件;
12.若不满足所述预设合并条件,则将所述任务编号和所述任务编号对应的计算结果,或者,所述更新后的任务编号和所述更新后的任务编号对应的第一合并结果上传至区块链网络,以便所述区块链网络中的其他计算节点获得所述任务编号对应的计算结果或者所述更新后的任务编号对应的第一合并结果。
13.在可选的实施方式中,所述任务编号包括第一任务编号和第二任务编号,所述第一任务编号表征当前数据处理次数,所述第二任务编号根据所述当前数据处理次数与接收所述任务数据包的计算节点的节点编号得到;
14.所述根据所述任务编号确定是否满足预设合并条件,包括:
15.若所述第二任务编号为偶数,则确定满足所述预设合并条件。
16.在可选的实施方式中,所述待合并任务编号的待合并第一任务编号与所述第一任务编号相同,所述待合并任务编号的待合并第二任务编号为所述第二任务编号减1的值;
17.所述对所述任务编号进行更新,包括:
18.对所述第一任务编号加1以获得新的第一任务编号,对所述第二任务编号除以2以获得新的第二任务编号,根据所述新的第一任务编号和所述新的第二任务编号获得新的任务编号。
19.在可选的实施方式中,所述方法还包括:
20.在接收到用户发送的任务信息的情况下,根据所述任务信息确定多个所述计算节点,分别对各个所述计算节点进行编号,并将各个所述计算节点对应的节点编号和节点信息发送给所述用户;
21.接收所述用户根据所述待计算任务发送的多个任务数据包,并根据各个所述任务数据包中的节点编号,将各个所述任务数据包转发至对应的计算节点。
22.在可选的实施方式中,所述任务信息包括分片数组信息以及任务数量,所述根据所述任务信息确定多个所述计算节点,包括:
23.根据所述任务数量确定计算节点数量;所述计算节点数量大于等于所述任务数量,且为2的指数;
24.根据所述计算节点数量以及所述分片数组信息,确定多个所述计算节点。
25.在可选的实施方式中,所述分片数组信息包括至少一个分片数组的信息;所述根据所述计算节点数量以及所述分片数组信息,确定多个所述计算节点,包括:
26.根据所述分片数组的数量以及所述计算节点数量,计算各个所述分片数组对应的子计算节点数量;其中,各个所述分片数组对应的子计算节点数量相等;
27.分别根据各个所述分片数组对应的子计算节点数量,在各个所述分片数组中随机选择所述子计算节点数量个节点作为所述计算节点。
28.在可选的实施方式中,所述根据各个所述任务数据包中的节点编号,将各个所述任务数据包转发至对应的计算节点,包括:
29.若所述计算节点数量等于所述任务数量,则根据各个所述任务数据包中的节点编号,将各个所述任务数据包转发至对应的计算节点;
30.若所述计算节点数量大于所述任务数量,则根据各个所述任务数据包中的节点编号,将各个所述任务数据包转发至对应的计算节点,并为剩余计算节点分配零值计算任务;所述零值计算任务表征所述剩余计算节点不参与任务计算;
31.所述方法还包括:
32.根据所述任务信息中的任务数量,计算目标任务编号;所述目标任务编号与所述待计算任务对应的任务计算结果对应;
33.每间隔预设时长从所述区块链网络中查询是否存在所述目标任务编号对应的任
务计算结果;
34.若存在,则将所述任务计算结果发送给所述用户。
35.第二方面,本发明提供一种任务计算装置,应用于区块链网络中的任一节点设备,所述装置包括:
36.接收模块,用于接收通信节点发送的任务数据包;所述任务数据包中包括待计算数据、运算程序以及任务编号;
37.其中,所述通信节点为所述区块链网络中与用户进行通信的节点,接收所述任务数据包的节点为所述区块链网络中的计算节点;所述通信节点用于将待计算任务对应的多个任务数据包分别转发至不同的计算节点,每个所述计算节点接收的任务数据包不同;
38.确定模块,用于根据所述任务编号确定是否满足预设合并条件;
39.所述确定模块,还用于若满足所述预设合并条件,则根据所述任务编号执行数据处理结果合并操作;所述数据处理结果合并操作包括根据所述任务编号计算待合并任务编号,将所述任务编号对应的数据处理结果和所述待合并任务编号对应的数据处理结果进行合并,得到第一合并结果;所述数据处理结果为根据所述运算程序对所述待计算数据进行运算得到的计算结果,或者基于所述计算结果进行至少一次合并得到的第二合并结果;
40.所述确定模块,还用于对所述任务编号进行更新,根据更新后的任务编号确定是否满足所述预设合并条件,并在满足所述预设合并条件的情况下,根据所述更新后的任务编号执行所述数据处理结果合并操作,直到根据所述更新后的任务编号确定不满足所述预设合并条件;
41.所述确定模块,还用于若不满足所述预设合并条件,则将所述任务编号和所述任务编号对应的计算结果,或者,所述更新后的任务编号和所述更新后的任务编号对应的第一合并结果上传至区块链网络,以便所述区块链网络中的其他计算节点获得所述任务编号对应的计算结果或者所述更新后的任务编号对应的第一合并结果。
42.第三方面,本发明提供一种节点设备,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的计算机程序,所述处理器可执行所述计算机程序以实现前述实施方式任一所述的方法。
43.第四方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如前述实施方式任一所述的方法。
44.本发明实施例提供的任务计算方法、装置、节点设备和计算机可读存储介质,计算节点可以接收通信节点发送的任务数据包,根据任务数据包中的任务编号确定是否满足预设合并条件,在满足预设合并条件时执行数据处理结果合并操作,即将任务编号对应的数据处理结果与待合并任务编号对应的数据处理结果进行合并,获得第一合并结果,并对该任务编号进行更新,根据更新后的任务编号确定是否满足预设合并条件,并在满足预设合并条件的情况下,根据更新后的任务编号执行数据处理结果合并操作,直到根据更新后的任务编号确定不满足预设合并条件,而若不满足预设合并条件,则将任务编号和任务编号对应的计算结果,或者更新后的任务编号与更新后的任务编号对应的第一合并结果上传至区块链网络,由区块链网络中的其他计算节点获得该计算结果或第一合并结果。通过本方案,在进行任务计算时无论是通信节点还是任意计算节点,均无法同时持有任务计算过程中的全部数据,因此即使某个节点受到攻击,也不会导致所有的数据都被窃取,因此可提高
区块链网络中任务计算的安全性。
45.为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
46.为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
47.图1示出了本发明实施例提供的节点设备的方框示意图;
48.图2示出了本发明实施例提供的任务计算方法的一种流程示意图;
49.图3示出了计算节点的计算过程示例图;
50.图4示出了本发明实施例提供的任务计算方法的另一种流程示意图;
51.图5示出了本发明实施例提供的任务计算装置的一种功能模块图;
52.图6示出了本发明实施例提供的任务计算装置的另一种功能模块图。
53.图标:10-节点设备;100-存储器;110-处理器;120-通信模块;200-接收模块;210-确定模块;220-发送模块。
具体实施方式
54.下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
55.因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
56.需要说明的是,术语“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
57.区块链是一种去中心化的分布式数据库技术,它可以记录交易、事件或数据,同时确保这些记录是不可篡改和透明的。
58.区块链的核心思想是通过使用密码学技术和分布式共识算法来确保交易和数据的安全性和可靠性,而无需依赖于集中式机构或第三方中介。区块链的基本组成部分是“区块”,每个区块包含一些交易或数据,以及一些元数据,例如时间戳和前一个区块的哈希值。这些区块被链接在一起形成一个不断增长的链,因此得名“区块链”。
59.目前,在区块链中往往需要进行任务计算,例如隐私计算。
60.隐私计算是一种计算方法,旨在保护个人数据的隐私和机密性,同时允许在数据处理过程中进行有意义的计算和分析。隐私计算的目标是在不泄露个人数据的情况下,仍能够从中获取有用的信息。
61.隐私计算包括多种技术和协议,例如安全多方计算(secure multi-party computation,smpc)、同态加密(homomorphic encryption)、差分隐私(differential privacy)等。这些技术可以在不暴露敏感数据的情况下,允许多个参与方进行计算和数据分析,同时保护数据的隐私和机密性。
62.现有技术中,在进行任务计算时,往往是由主计算节点分发计算任务给多个从属计算节点,多个从属计算节点计算后,主计算节点可获得多个从属计算节点计算得到的计算结果,并对其进行合并以获得最终计算结果。
63.但该方法中,由于主计算节点为关键节点,掌握着全部的计算任务数据、过程数据以及最终的计算结果,因此若主节点受到攻击产生数据泄露问题,则意味着所有的数据都将被窃取,从而存在任务计算的安全性较低的问题。
64.基于此,本技术实施例提供一种任务计算方法,以解决以上问题。
65.图1为本技术实施例提供的节点设备10的方框示意图,请参见图1,节点设备10包括存储器100、处理器110及通信模块120。存储器100、处理器110以及通信模块120各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。
66.其中,存储器100用于存储程序或者数据。存储器100可以是,但不限于,随机存取存储器(random access memory,ram),只读存储器(read only memory,rom),可编程只读存储器(programmable read-only memory,prom),可擦除只读存储器(erasable programmable read-only memory,eprom),电可擦除只读存储器(electric erasable programmable read-only memory,eeprom)等。
67.处理器110用于读/写存储器中存储的数据或程序,并执行相应地功能。
68.通信模块120用于通过网络建立节点设备与其它通信终端之间的通信连接,并用于通过网络收发数据。
69.可选地,区块链网络中包括多个节点设备,该节点设备可以是服务器。
70.应当理解的是,图1所示的结构仅为节点设备10的结构示意图,节点设备10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。图1中所示的各组件可以采用硬件、软件或其组合实现。
71.接下来以上述图1中的节点设备10为执行主体,结合流程示意图对本技术实施例提供的任务计算方法进行示例性介绍。具体地,图2为本技术实施例提供的任务计算方法的一种流程示意图,请参见图2,该方法包括:
72.步骤s20,接收通信节点发送的任务数据包;
73.其中,任务数据包中包括待计算数据、运算程序以及任务编号;
74.其中,通信节点为区块链网络中与用户进行通信的节点,接收任务数据包的节点为区块链网络中的计算节点;通信节点用于将待计算任务对应的多个任务数据包分别转发至不同的计算节点,每个计算节点接收的任务数据包不同;
75.可选地,该通信节点为该区块链网络中接收用户发送的信息的节点。
76.可选地,若节点设备接收到通信节点发送的任务数据包,则可确定该节点设备为计算节点。
77.在本实施例中,通信节点可以接收用户发送的待计算任务对应的多个任务数据包,并将该多个任务数据包转发至不同的计算节点,以使每个计算节点基于不同的任务数据包执行任务计算操作。
78.可以理解的,每个计算节点接收到的任务数据包中的任务编号均不同,而待计算数据和运算程序可能均不同,也可能其中一个存在不同,具体取决于具体的计算需求。
79.步骤s21,根据任务编号确定是否满足预设合并条件;
80.步骤s22,若满足预设合并条件,则根据任务编号执行数据处理结果合并操作;
81.其中,数据处理结果合并操作包括根据任务编号计算待合并任务编号,将任务编号对应的数据处理结果和待合并任务编号对应的数据处理结果进行合并,得到第一合并结果;数据处理结果为根据运算程序对待计算数据进行运算得到的计算结果,或者基于计算结果进行至少一次合并得到的第二合并结果;
82.步骤s23,对任务编号进行更新,根据更新后的任务编号确定是否满足预设合并条件,并在满足预设合并条件的情况下,根据更新后的任务编号执行数据处理结果合并操作,直到根据更新后的任务编号确定不满足预设合并条件;
83.在本实施例中,计算节点可以在任务编号满足预设合并条件的情况下,根据任务编号计算待合并任务编号,并将该待合并任务编号对应的数据处理结果与任务编号对应的数据处理结果进行合并,获得第一合并结果。
84.可以理解的,计算节点在根据任务编号确定满足预设合并条件的情况下,会对自己获得的数据处理结果和另一个计算节点获得的数据处理结果进行合并。
85.可选地,该数据处理结果指的是当前需要进行合并的数据。
86.在本实施例中,计算节点可以在获得第一合并结果后,对任务编号进行更新,从而根据更新后的任务编号再次确定是否满足预设合并条件。
87.可选地,当计算节点接收到任务数据包后,可进行第一次数据处理,即根据任务数据包中的运算程序对待计算数据进行运算,从而获得计算结果。
88.可以理解的,若根据任务编号确定满足预设合并条件,则计算节点可以将任务编号对应的计算结果,即自己计算得到的计算结果和待合并任务编号计算得到的计算结果进行合并,获得第一合并结果,并对任务编号进行更新。
89.可选地,计算节点可以根据该更新后的任务编号再次确定是否满足预设合并条件,若满足,则该计算节点可根据更新后的任务编号确定新的待合并任务编号,将上述第一合并结果作为第二合并结果进行第二次数据处理,即将更新后的任务编号对应的第二合并结果,和新的待合并任务编号对应的第二合并结果进行合并,获得新的第一合并结果,以此类推,直到根据更新后的任务编号确定不满足预设合并条件。
90.步骤s24,若不满足预设合并条件,则将任务编号和任务编号对应的计算结果,或者,更新后的任务编号和更新后的任务编号对应的第一合并结果上传至区块链网络,以便区块链网络中的其他计算节点获得任务编号对应的计算结果或者更新后的任务编号对应的第一合并结果。
91.可选地,计算节点可在获得接收到任务数据包后进行第一次数据处理,获得计算
结果,此时若根据任务编号确定不满足预设合并条件,则计算节点可直接将该任务编号以及其对应的计算结果上传至区块链网络,由其他确定满足预设合并条件的计算节点从区块链网络中获取该计算结果进行合并。可选地,若计算节点根据更新后的任务编号确定不满足预设合并条件,则可将该更新后的任务编号及其对应的第一合并结果上传至区块链网络,由其他确定满足预设合并条件的计算节点从区块链网络中获取该第一合并结果,并将其作为第二合并结果进行合并。
92.可以理解的,在本实施例中,对于任一计算节点而言,由于其接收到的任务数据包为待计算任务对应的多个任务数据包中的一个,且每个计算节点接收的任务数据包不同,因此每个计算节点只能获得部分待计算任务。而为了对一个待计算任务进行计算,需要各个计算节点先根据任务数据包中的运算程序对待计算数据进行运算从而获得计算结果,之后需要基于多个计算结果进行至少一轮的合并处理,才能获得最终的任务计算结果。
93.显然的,在这个过程中,由于每次合并仅由确定满足预设合并条件的计算节点执行数据处理结果的合并,每个确定满足预设合并条件的计算节点也只对两个数据处理结果进行合并,因此,在整个任务计算过程中,没有一个计算节点能够同时获得完整的待计算任务的数据以及完整的计算过程数据,而通信节点虽然能获得待计算任务的全部数据,但无法获得计算过程数据。
94.因此,不论是通信节点被攻击还是任意计算节点被攻击,均不会导致所有的数据都被泄露,从而可提高区块链网络中任务计算的安全性。
95.本发明实施例提供的任务计算方法,计算节点可以接收通信节点发送的任务数据包,根据任务数据包中的任务编号确定是否满足预设合并条件,在满足预设合并条件时执行数据处理结果合并操作,即将任务编号对应的数据处理结果与待合并任务编号对应的数据处理结果进行合并,获得第一合并结果,并对该任务编号进行更新,根据更新后的任务编号确定是否满足预设合并条件,并在满足预设合并条件的情况下,根据更新后的任务编号执行数据处理结果合并操作,直到根据更新后的任务编号确定不满足预设合并条件,而若不满足预设合并条件,则将任务编号和任务编号对应的计算结果,或者更新后的任务编号与更新后的任务编号对应的第一合并结果上传至区块链网络,由区块链网络中的其他计算节点获得该计算结果或第一合并结果。通过本方案,在进行任务计算时无论是通信节点还是任意计算节点,均无法同时持有任务计算过程中的全部数据,因此即使某个节点受到攻击,也不会导致所有的数据都被窃取,因此可提高区块链网络中任务计算的安全性。
96.可选地,该任务编号可以包括第一任务编号以及第二任务编号,表征为(第一任务编号,第二任务编号),其中,该第一任务编号可以表征当前数据处理次数,第二任务编号可以根据该当前数据处理次数和接收该任务数据包的计算节点的节点编号计算得到。
97.可选地,该节点编号可以是从1开始递增的正整数,在进行第一次数据处理时,该第二任务编号可以与节点编号一致。
98.在此情况下,若该第二任务编号为偶数,则可确定满足预设合并条件。
99.例如,若任务编号为(2,2),则可确定当前数据处理次数为两次,且满足预设合并条件。
100.可选地,对于满足预设合并条件的计算节点而言,其可以对相邻任务编号对应的数据处理结果和该计算节点计算得到的数据处理结果进行合并,即,待合并任务编号的待
合并第一任务编号与第一任务编号相同,待合并任务编号的待合并第二任务编号为第二任务编号减1的值。
101.在一个示例中,若第一计算节点的此时的任务编号为(2,1),第二计算节点此时的任务编号为(2,2),则第一计算节点可根据任务编号(2,1)确定不满足预设合并条件,第二计算节点可根据任务编号(2,2)确定满足预设合并条件,且待合并任务编号为(2,1)。
102.在本实施例中,计算节点可在确定待合并任务编号后,从区块链网络中获取其对应的数据处理结果,与自己计算得到的数据处理结果进行合并,并更新任务编号。
103.可选地,计算节点可以通过对第一任务编号加1,对第二任务编号除以2的方式获得新的第一任务编号和新的第二任务编号,从而根据新的第一任务编号和新的第二任务编号获得新的任务编号。
104.可以理解的,由于此时又进行了一次数据处理,因此可对第一任务编号加1以表征当前任务次数多了一次。
105.可选地,对于第二任务编号,其可以根据如下公式计算得到:
106.rank=x
×2y-1
;y∈[1,h],x∈[1,2
h-1
]
[0107]
其中,rank表征接收任务数据包的计算节点的节点编号,x表征第二任务编号,y表征当前数据处理次数(第一任务编号),h表征数据处理的总次数。
[0108]
可选地,在进行第一次数据处理时,各个任务编号可以设置为(1,rank),即,将第二任务编号设置为接收该任务数据包的计算节点的节点编号。
[0109]
接下来结合图3对计算节点的计算过程进行举例说明,在一个示例中,请参见图3,若区块链网络此时存在4个计算节点,且这4个计算节点的节点编号rank分别为1、2、3、4,通信节点获得了四个任务数据包,且这四个任务数据包中的任务编号分别为(1,1)、(1,2)、(1,3)、(1,4),则通信节点。
[0110]
在本示例中,通信节点可将任务编号为(1,1)的任务数据包发送给rank为1的计算节点,将任务编号为(1,2)的任务数据包发送给rank为2的计算节点,将任务编号为(1,3)的任务数据包发送给rank为3的计算节点,将任务编号为(1,4)的任务数据包发送给rank为4的计算节点。
[0111]
在本示例中,各个计算节点可以在接收到任务数据包后,根据任务数据包中的运算程序对待计算数据进行运算,从而得到4个计算结果,之后根据任务编号确定是否满足预设合并条件。
[0112]
由于预设合并条件为第二任务编号为偶数,因此可以确定,rank为2的计算节点和rank为4的计算节点均满足预设合并条件,可执行数据处理结果合并操作,而rank为1的计算节点和rank为3的计算节点均不满足预设合并条件,因此需要将任务编号及计算结果上传至区块链网络。在本示例中,rank为2的计算节点可根据任务编号(1,2)确定待合并任务编号为(1,1),rank为4的计算节点可根据任务编号(1,4)确定待合并任务编号为(1,3),则rank为2的计算节点和rank为4的计算节点可分别从区块链网络中获取(1,1)对应的计算结果和(1,3)对应的计算结果。
[0113]
在本示例中,rank为2的计算节点可以对(1,1)对应的计算结果和(1,2)对应的计算结果进行合并,获得第一合并结果;rank为4的计算节点可以对(1,3)对应的计算结果和(1,4)对应的计算结果进行合并,获得第一合并结果。
[0114]
可以理解的,此时为第二次数据处理,rank为2的计算节点和rank为4的计算节点还需要对任务编号进行更新,rank为2的计算节点对应的更新后的任务编号为(2,1),而rank为4的计算节点对应的更新后的任务编号为(2,2)。
[0115]
在本示例中,此时rank为4的计算节点满足预设合并条件,而rank为2的计算节点不满足预设合并条件,因此rank为2的计算节点需要将任务编号(2,1)及第一合并结果上传至区块链网络,而rank为4的计算节点则根据任务编号(2,2)确定待合并任务编号。
[0116]
在本示例中,rank为4的计算节点根据任务编号(2,2)确定的待合并任务编号为(2,1),因此rank为4的计算节点可从区块链网络中获取(2,1)对应的第一合并结果,并将该第一合并结果作为待合并任务编号对应的第二合并结果,将任务编号(2,2)对应的第一合并结果作为第二合并结果,对二者进行合并获得第一合并结果,同时,此时为第三次数据处理,因此rank为4的计算节点可将任务编号(2,2)进行更新,获得更新后的任务编号(3,1)。
[0117]
可以理解的,此时rank为4的计算节点也不满足预设合并条件,因此可将(3,1)与对应的第一合并结果上传至区块链网络。
[0118]
可选地,为了便于用户查询过程数据,计算节点还可以在确定满足预设合并条件的情况下,也将任务编号和任务编号对应的计算结果,或者,更新后的任务编号和更新后的任务编号对应的第一合并结果上传至区块链网络。
[0119]
例如,rank为2的计算节点也可以将任务编号(1,2)及其对应的计算结果上传至区块链网络。
[0120]
可选地,区块链中的任一节点设备还可能会作为通信节点参与任务计算,具体地,在图2的基础上,图4为本技术实施例提供的任务计算方法的另一种流程示意图,请参见图4,该方法还包括:
[0121]
步骤s10,在接收到用户发送的任务信息的情况下,根据任务信息确定多个计算节点,分别对各个计算节点进行编号,并将各个计算节点对应的节点编号和节点信息发送给用户。
[0122]
在本实施例中,若节点设备接收到用户发送的任务信息,则可确定其为通信节点。
[0123]
可选地,用户可以通过客户端的软件向通信节点发送任务信息。
[0124]
在一种可能实现的方式中,该软件可以是sdk(software development kit,软件开发工具包)。
[0125]
可选地,通信节点可根据用户发送的任务信息确定多个计算节点,并分别对计算节点进行编号,之后将各个计算节点对应的节点编号和节点信息发送给客户。
[0126]
可选地,该节点信息可以包括但不限于计算节点在区块链网络中的id、ip地址等信息。
[0127]
可选地,用户在接收到节点编号和节点信息后,可根据待计算任务设置多个任务数据包,并通过客户端软件发送至通信节点。
[0128]
步骤s11,接收用户根据待计算任务发送的多个任务数据包,并根据各个任务数据包中的节点编号,将各个任务数据包转发至对应的计算节点。
[0129]
可选地,该任务数据包中除了包含有待计算数据、运算程序以及任务编号,还包括有节点编号。
[0130]
可以理解的,通信节点可以基于该任务数据包中的节点编号将该任务数据包发送
至对应的计算节点。
[0131]
可选地,为了保证计算的可靠性,用户可以指定至少一个分片数组进行任务计算,基于此,该任务信息包括分片数组信息以及任务数量。
[0132]
可选地,区块链网络中包括多个公司设置的节点设备,每个公司的节点设备可构成一个分片数组。
[0133]
在此基础上,该节点可以通过如下步骤实现上述步骤s10中的根据任务信息确定多个计算节点:
[0134]
根据任务数量确定计算节点数量;计算节点数量大于等于任务数量,且为2的指数;根据计算节点数量以及分片数组信息,确定多个计算节点。
[0135]
可选地,通信节点可以通过如下公式确定计算节点数量:
[0136][0137]
m=2n[0138]
其中,n表征任务数量,m表征计算节点数量。
[0139]
可选地,n可以反映总共经过了多少次数据处理结果的合并。
[0140]
可以理解的,n为正整数,即若log2n为小数,则需要通过向上取整的方式计算n。
[0141]
在一个示例中,若n=7,则n需要取3,m=8,即此时计算节点数量大于任务数量。
[0142]
在本实施例中,通信节点需要选择2的指数个计算节点,以保证合并过程顺利执行。
[0143]
在本实施例中,通信节点可以在计算得到计算节点数量后,根据该计算节点数量以及分片数组信息确定多个计算节点。
[0144]
具体地,该分片数组信息包括至少一个分片数组的信息,则通信节点可以根据分片数组的数量以及计算节点数量,计算各个分片数组对应的子计算节点数量;其中,各个分片数组对应的子计算节点数量相等;分别根据各个分片数组对应的子计算节点数量,在各个分片数组中随机选择子计算节点数量个节点作为计算节点。
[0145]
可选地,通信节点可以将计算节点数量按照分片数组的数量进行平均计算,从而确定各个分片数组对应的子计算节点数量。
[0146]
可以理解的,各个分片数组对应的子计算节点数量相等。
[0147]
可选地,考虑到可能存在无法完全平均分配的问题,则此时需要保证大部分分片数组对应的子计算节点数量相等。
[0148]
例如,若计算节点数量为8个,分片数组的数量为3个,则这三个分片数组分别对应的子节点数量可以为3、3、2。
[0149]
在本实施例中,通信节点可以在各个分片数组中随机选择子计算节点数量个节点作为计算节点。
[0150]
可选地,在确定了计算节点后,该节点设备即可根据各个任务数据包中的节点编号,将各个任务数据包转发至对应的计算节点。
[0151]
在一种可能实现的方式中,若计算节点数量等于任务数量,则该节点设备可以直接根据各个任务数据包中的节点编号,将各个任务数据包转发至对应的计算节点。
[0152]
可以理解的,在这种情况下,各个计算节点均可接收到待计算任务对应的一个任务数据包。
[0153]
在另一种可能实现的方式中,若计算节点数量大于任务数量,则根据各个任务数据包中的节点编号,将各个任务数据包转发至对应的计算节点,并为剩余计算节点分配零值计算任务;零值计算任务表征剩余计算节点不参与任务计算。
[0154]
可以理解的,在这种情况下,一些计算节点可接收到待计算任务对应的一个任务数据包,剩余的计算节点只能接收到零值计算任务。
[0155]
可选地,该零值计算任务中也设置有任务编号。
[0156]
可选地,接收到零值计算任务的剩余计算节点不参与任务计算,即不会在第一次数据处理时获得计算结果,但该剩余计算节点需要根据任务编号确定是否满足预设合并条件,并在满足预设合并条件的情况下,根据任务编号执行数据处理结果合并操作。
[0157]
可选地,通信节点还需要将待计算任务对应的最终的任务计算结果发送给用户,由于各个计算节点会将自己计算的结果上传到区块链网络中,因此该通信节点可从区块链网络中获取最终的任务计算结果。
[0158]
具体地,通信节点可根据任务信息中的任务数量,计算目标任务编号;目标任务编号为与待计算任务对应的任务计算结果对应;
[0159]
可选地,该任务计算结果即是待计算任务对应的最终计算结果。
[0160]
可选地,目标任务编号中的第二目标任务编号应当为1,因此需要确定目标任务编号中的第一目标任务编号。
[0161]
可以理解的,该第一目标任务编号应当为数据处理的总次数h。
[0162]
可选地,可以通过如下公式计算第一目标任务编号h:
[0163][0164]
h=n+1
[0165]
其中,n表征任务数量。
[0166]
每间隔预设时长从区块链网络中查询是否存在目标任务编号对应的任务计算结果;若存在,则将任务计算结果发送给用户。
[0167]
可选地,通信节点可以每间隔预设时长就从区块链网络中查询此时是否已经有计算节点上传目标任务编号及对应的任务计算结果。
[0168]
可选地,该预设时长可以根据实际应用情况设置。
[0169]
在一种可能实现的方式中,若通信节点在区块链网络中查询到了目标任务编号对应的任务计算结果,则可将该任务计算结果发送给用户。
[0170]
在另一种可能实现的方式中,通信节点也可以在区块链网络中查询到目标任务编号对应的任务计算结果的情况下,通知用户已经计算完成,由用户自行查询任务计算结果。
[0171]
可选地,为了使计算节点获知此时计算得到的数据是否为最终的任务计算结果,因此发送给计算节点的任务数据包中还可以包括计算节点数量或者任务数量,则计算节点也可以根据该计算节点数量或者任务数量计算目标任务编号。
[0172]
可以理解的,若计算节点获得的更新后的任务编号为目标任务编号,则该计算节点可以确定当前计算得到的第一合并结果为待计算任务对应的任务计算结果。
[0173]
为了执行上述实施例及各个可能的方式中的相应步骤,下面给出一种任务计算装置的实现方式。进一步地,请参阅图5,图5为本发明实施例提供的任务计算装置的一种功能模块图。需要说明的是,本实施例所提供的任务计算装置,其基本原理及产生的技术效果和
上述实施例相同,为简要描述,本实施例部分未提及之处,可参考上述的实施例中相应内容。该任务计算装置包括:接收模块200以及确定模块210。
[0174]
该接收模块200,用于接收通信节点发送的任务数据包;任务数据包中包括待计算数据、运算程序以及任务编号;其中,通信节点为区块链网络中与用户进行通信的节点,接收任务数据包的节点为区块链网络中的计算节点;通信节点用于将待计算任务对应的多个任务数据包分别转发至不同的计算节点,每个计算节点接收的任务数据包不同;
[0175]
可以理解的,该接收模块200还可以用于执行上述步骤s20。
[0176]
该确定模块210,用于根据任务编号确定是否满足预设合并条件;
[0177]
可以理解的,该确定模块210还可以用于执行上述步骤s21。
[0178]
该确定模块210,还用于若满足预设合并条件,则根据任务编号执行数据处理结果合并操作;数据处理结果合并操作包括根据任务编号计算待合并任务编号,将任务编号对应的数据处理结果和待合并任务编号对应的数据处理结果进行合并,得到第一合并结果;数据处理结果为根据运算程序对待计算数据进行运算得到的计算结果,或者基于计算结果进行至少一次合并得到的第二合并结果;
[0179]
可以理解的,该确定模块210还可以用于执行上述步骤s22。
[0180]
该确定模块210,还用于对任务编号进行更新,根据更新后的任务编号确定是否满足预设合并条件,并在满足预设合并条件的情况下,根据更新后的任务编号执行数据处理结果合并操作,直到根据更新后的任务编号确定不满足预设合并条件;
[0181]
可以理解的,该确定模块210还可以用于执行上述步骤s23。
[0182]
该确定模块210,还用于若不满足预设合并条件,则将任务编号和任务编号对应的计算结果,或者,更新后的任务编号和更新后的任务编号对应的第一合并结果上传至区块链网络,以便区块链网络中的其他计算节点获得任务编号对应的计算结果或者更新后的任务编号对应的第一合并结果。
[0183]
可以理解的,该确定模块210还可以用于执行上述步骤s24。
[0184]
可选地,任务编号包括第一任务编号和第二任务编号,第一任务编号表征当前数据处理次数,第二任务编号根据当前数据处理次数与接收任务数据包的计算节点的节点编号得到,该确定模块210,还用于若第二任务编号为偶数,则确定满足预设合并条件。
[0185]
可选地,待合并任务编号的待合并第一任务编号与第一任务编号相同,待合并任务编号的待合并第二任务编号为第二任务编号减1的值;该确定模块210,还用于对第一任务编号加1以获得新的第一任务编号,对第二任务编号除以2以获得新的第二任务编号,根据新的第一任务编号和新的第二任务编号获得新的任务编号。
[0186]
可选地,在图5的基础上,图6为本发明实施例提供的任务计算装置的另一种功能模块图,请参见图6,该任务计算装置还包括发送模块220。
[0187]
该发送模块220,用于在接收到用户发送的任务信息的情况下,根据任务信息确定多个计算节点,分别对各个计算节点进行编号,并将各个计算节点对应的节点编号和节点信息发送给用户;接收用户根据待计算任务发送的多个任务数据包,并根据各个任务数据包中的节点编号,将各个任务数据包转发至对应的计算节点。
[0188]
可以理解的,该发送模块220还可以用于执行上述步骤s10~步骤s11。
[0189]
可选地,任务信息包括分片数组信息以及任务数量,该发送模块220,还用于根据
任务数量确定计算节点数量;计算节点数量大于等于任务数量,且为2的指数;根据计算节点数量以及分片数组信息,确定多个计算节点。
[0190]
可选地,分片数组信息包括至少一个分片数组的信息;该发送模块220,还用于根据分片数组的数量以及计算节点数量,计算各个分片数组对应的子计算节点数量;其中,各个分片数组对应的子计算节点数量相等;分别根据各个分片数组对应的子计算节点数量,在各个分片数组中随机选择子计算节点数量个节点作为计算节点。
[0191]
可选地,该发送模块220,还用于若计算节点数量等于任务数量,则根据各个任务数据包中的节点编号,将各个任务数据包转发至对应的计算节点;若计算节点数量大于任务数量,则根据各个任务数据包中的节点编号,将各个任务数据包转发至对应的计算节点,并为剩余计算节点分配零值计算任务;零值计算任务表征剩余计算节点不参与任务计算。
[0192]
可选地,该发送模块220,还用于根据任务信息中的任务数量,计算目标任务编号;目标任务编号与待计算任务对应的任务计算结果对应;每间隔预设时长从区块链网络中查询是否存在目标任务编号对应的任务计算结果;若存在,则将任务计算结果发送给用户。
[0193]
本技术实施例提供的任务计算装置,通过接收模块接收通信节点发送的任务数据包;任务数据包中包括待计算数据、运算程序以及任务编号;其中,通信节点为区块链网络中与用户进行通信的节点,接收任务数据包的节点为区块链网络中的计算节点;通信节点用于将待计算任务对应的多个任务数据包分别转发至不同的计算节点,每个计算节点接收的任务数据包不同;通过确定模块根据任务编号确定是否满足预设合并条件;若满足预设合并条件,则根据任务编号执行数据处理结果合并操作;数据处理结果合并操作包括根据任务编号计算待合并任务编号,将任务编号对应的数据处理结果和待合并任务编号对应的数据处理结果进行合并,得到第一合并结果;数据处理结果为根据运算程序对待计算数据进行运算得到的计算结果,或者基于计算结果进行至少一次合并得到的第二合并结果;对任务编号进行更新,根据更新后的任务编号确定是否满足预设合并条件,并在满足预设合并条件的情况下,根据更新后的任务编号执行数据处理结果合并操作,直到根据更新后的任务编号确定不满足预设合并条件;若不满足预设合并条件,则将任务编号和任务编号对应的计算结果,或者,更新后的任务编号和更新后的任务编号对应的第一合并结果上传至区块链网络,以便区块链网络中的其他计算节点获得任务编号对应的计算结果或者更新后的任务编号对应的第一合并结果。该装置可提高区块链网络中任务计算的安全性。
[0194]
可选地,上述模块可以软件或固件(firmware)的形式存储于图1所示的存储器中或固化于该节点设备的操作系统(operating system,os)中,并可由图1中的处理器执行。同时,执行上述模块所需的数据、程序的代码等可以存储在存储器中。
[0195]
本技术实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时可实现本技术实施例提供的任务计算方法。
[0196]
在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于
附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0197]
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
[0198]
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0199]
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
技术特征:
1.一种任务计算方法,其特征在于,应用于区块链网络中的任一节点设备,所述方法包括:接收通信节点发送的任务数据包;所述任务数据包中包括待计算数据、运算程序以及任务编号;其中,所述通信节点为所述区块链网络中与用户进行通信的节点,接收所述任务数据包的节点为所述区块链网络中的计算节点;所述通信节点用于将待计算任务对应的多个任务数据包分别转发至不同的计算节点,每个所述计算节点接收的任务数据包不同;根据所述任务编号确定是否满足预设合并条件;若满足所述预设合并条件,则根据所述任务编号执行数据处理结果合并操作;所述数据处理结果合并操作包括根据所述任务编号计算待合并任务编号,将所述任务编号对应的数据处理结果和所述待合并任务编号对应的数据处理结果进行合并,得到第一合并结果;所述数据处理结果为根据所述运算程序对所述待计算数据进行运算得到的计算结果,或者基于所述计算结果进行至少一次合并得到的第二合并结果;对所述任务编号进行更新,根据更新后的任务编号确定是否满足所述预设合并条件,并在满足所述预设合并条件的情况下,根据所述更新后的任务编号执行所述数据处理结果合并操作,直到根据所述更新后的任务编号确定不满足所述预设合并条件;若不满足所述预设合并条件,则将所述任务编号和所述任务编号对应的计算结果,或者,所述更新后的任务编号和所述更新后的任务编号对应的第一合并结果上传至区块链网络,以便所述区块链网络中的其他计算节点获得所述任务编号对应的计算结果或者所述更新后的任务编号对应的第一合并结果。2.根据权利要求1所述的方法,其特征在于,所述任务编号包括第一任务编号和第二任务编号,所述第一任务编号表征当前数据处理次数,所述第二任务编号根据所述当前数据处理次数与接收所述任务数据包的计算节点的节点编号得到;所述根据所述任务编号确定是否满足预设合并条件,包括:若所述第二任务编号为偶数,则确定满足所述预设合并条件。3.根据权利要求2所述的方法,其特征在于,所述待合并任务编号的待合并第一任务编号与所述第一任务编号相同,所述待合并任务编号的待合并第二任务编号为所述第二任务编号减1的值;所述对所述任务编号进行更新,包括:对所述第一任务编号加1以获得新的第一任务编号,对所述第二任务编号除以2以获得新的第二任务编号,根据所述新的第一任务编号和所述新的第二任务编号获得新的任务编号。4.根据权利要求1所述的方法,其特征在于,所述方法还包括:在接收到用户发送的任务信息的情况下,根据所述任务信息确定多个所述计算节点,分别对各个所述计算节点进行编号,并将各个所述计算节点对应的节点编号和节点信息发送给所述用户;接收所述用户根据所述待计算任务发送的多个任务数据包,并根据各个所述任务数据包中的节点编号,将各个所述任务数据包转发至对应的计算节点。5.根据权利要求4所述的方法,其特征在于,所述任务信息包括分片数组信息以及任务
数量,所述根据所述任务信息确定多个所述计算节点,包括:根据所述任务数量确定计算节点数量;所述计算节点数量大于等于所述任务数量,且为2的指数;根据所述计算节点数量以及所述分片数组信息,确定多个所述计算节点。6.根据权利要求5所述的方法,其特征在于,所述分片数组信息包括至少一个分片数组的信息;所述根据所述计算节点数量以及所述分片数组信息,确定多个所述计算节点,包括:根据所述分片数组的数量以及所述计算节点数量,计算各个所述分片数组对应的子计算节点数量;其中,各个所述分片数组对应的子计算节点数量相等;分别根据各个所述分片数组对应的子计算节点数量,在各个所述分片数组中随机选择所述子计算节点数量个节点作为所述计算节点。7.根据权利要求5所述的方法,其特征在于,所述根据各个所述任务数据包中的节点编号,将各个所述任务数据包转发至对应的计算节点,包括:若所述计算节点数量等于所述任务数量,则根据各个所述任务数据包中的节点编号,将各个所述任务数据包转发至对应的计算节点;若所述计算节点数量大于所述任务数量,则根据各个所述任务数据包中的节点编号,将各个所述任务数据包转发至对应的计算节点,并为剩余计算节点分配零值计算任务;所述零值计算任务表征所述剩余计算节点不参与任务计算;所述方法还包括:根据所述任务信息中的任务数量,计算目标任务编号;所述目标任务编号与所述待计算任务对应的任务计算结果对应;每间隔预设时长从所述区块链网络中查询是否存在所述目标任务编号对应的任务计算结果;若存在,则将所述任务计算结果发送给所述用户。8.一种任务计算装置,其特征在于,应用于区块链网络中的任一节点设备,所述装置包括:接收模块,用于接收通信节点发送的任务数据包;所述任务数据包中包括待计算数据、运算程序以及任务编号;其中,所述通信节点为所述区块链网络中与用户进行通信的节点,接收所述任务数据包的节点为所述区块链网络中的计算节点;所述通信节点用于将待计算任务对应的多个任务数据包分别转发至不同的计算节点,每个所述计算节点接收的任务数据包不同;确定模块,用于根据所述任务编号确定是否满足预设合并条件;所述确定模块,还用于若满足所述预设合并条件,则根据所述任务编号执行数据处理结果合并操作;所述数据处理结果合并操作包括根据所述任务编号计算待合并任务编号,将所述任务编号对应的数据处理结果和所述待合并任务编号对应的数据处理结果进行合并,得到第一合并结果;所述数据处理结果为根据所述运算程序对所述待计算数据进行运算得到的计算结果,或者基于所述计算结果进行至少一次合并得到的第二合并结果;所述确定模块,还用于对所述任务编号进行更新,根据更新后的任务编号确定是否满足所述预设合并条件,并在满足所述预设合并条件的情况下,根据所述更新后的任务编号
执行所述数据处理结果合并操作,直到根据所述更新后的任务编号确定不满足所述预设合并条件;所述确定模块,还用于若不满足所述预设合并条件,则将所述任务编号和所述任务编号对应的计算结果,或者,所述更新后的任务编号和所述更新后的任务编号对应的第一合并结果上传至区块链网络,以便所述区块链网络中的其他计算节点获得所述任务编号对应的计算结果或者所述更新后的任务编号对应的第一合并结果。9.一种节点设备,其特征在于,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的计算机程序,所述处理器可执行所述计算机程序以实现权利要求1-7任一所述的方法。10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-7任一所述的方法。
技术总结
本发明实施例提出一种任务计算方法、装置、节点设备和计算机可读存储介质,涉及区块链技术领域。接收通信节点发送的任务数据包;若根据任务编号确定满足预设合并条件,则根据任务编号执行数据处理结果合并操作;对任务编号进行更新,根据更新后的任务编号确定是否满足预设合并条件,并在满足预设合并条件的情况下,根据更新后的任务编号执行数据处理结果合并操作,直到根据更新后的任务编号确定不满足预设合并条件;若根据任务编号确定不满足预设合并条件,则将任务编号和任务编号对应的计算结果,或者,更新后的任务编号和更新后的任务编号对应的第一合并结果上传至区块链网络。该方法可提高区块链网络中任务计算的安全性。方法可提高区块链网络中任务计算的安全性。方法可提高区块链网络中任务计算的安全性。
技术研发人员:叶亚芳 黎学浪 邓伊雯 张宝帅 刘天福
受保护的技术使用者:广州蚁比特区块链科技有限公司
技术研发日:2023.07.14
技术公布日:2023/9/20
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/