区块链中轻节点的数据同步方法、节点、存储介质及设备与流程

文档序号:33637438发布日期:2023-03-29 01:05阅读:86来源:国知局
区块链中轻节点的数据同步方法、节点、存储介质及设备与流程

1.本技术实施例涉及区块链技术领域,特别涉及一种区块链中轻节点的数据同步方法、节点、存储介质及设备。


背景技术:

2.区块链数据为链式账本数据,链上账户的状态是由账本数据(交易数据)执行后的结果所产生,从而导致了链上数据包括区块数据(区块信息和交易信息)以及状态数据(交易执行后的结果),而且随着时间的积累,账本数据会不断的膨胀。同时,由于区块链的状态是由从创世块开始的每个块中的每笔交易执行累加的结果,因此,需要基于完整的账本数据来验证最新的状态,这就要求很多运行中的全节点需要存储全量的账本数据,这对于仅需做查询操作的轻节点来说,存储压力较大。


技术实现要素:

3.本技术实施例提供了一种区块链中轻节点的数据同步方法、节点、存储介质及设备,用于解决区块链的状态不断膨胀,导致轻节点的存储压力不断增加的问题。所述技术方案如下:一方面,提供了一种区块链中轻节点的数据同步方法,所述方法包括:当块高为n-1的轻节点需要同步第n个区块的数据时,向区块链中的全节点获取所述第n个区块的区块信息和默克尔山脉mmr头,所述mmr头包括当前区块的交易根和前一区块的mmr根,所述交易根是根据当前区块内所有交易哈希计算得到的,所述mmr根是根据mmr算法对当前区块的mmr证明进行计算得到的,所述mmr证明包括对所有区块的mmr头进行二叉树排列后,位于所述二叉树中预定位置处的mmr头的哈希,n≥1;获取本地存储的第n-1个区块的mmr根;根据所述第n-1个区块的mmr根、所述第n个区块的区块信息和mmr根进行验证;当验证通过时,将所述第n个区块的mmr头和mmr证明同步至本地。
4.在一种可能的实现方式中,所述根据所述第n-1个区块的mmr根、所述第n个区块的区块信息和mmr根进行验证,包括:从所述第n个区块的区块信息中获取所有交易哈希,根据所有交易哈希计算交易根,验证计算得到的交易根与所述第n个区块的mmr头中的交易根是否一致;验证所述第n个区块的mmr头中的mmr根与本地存储的所述第n-1个区块的mmr根是否一致。
5.在一种可能的实现方式中,所述方法还包括:当所述轻节点的块高与需要同步的区块的块高m不连续时,向区块链中的全节点获取第m个区块的区块信息、mmr头和mmr证明,m≥1;根据所述第m个区块的区块信息、mmr头和mmr证明进行验证;当验证通过时,将所述第m个区块的mmr头和mmr证明同步至本地。
6.在一种可能的实现方式中,所述根据所述第m个区块的区块信息、mmr头和mmr证明进行验证,包括:从所述第m个区块的区块信息中获取所有交易哈希,根据所有交易哈希计算交易根,验证计算得到的交易根与所述第m个区块的mmr头中的交易根是否一致;根据mmr算法对所述mmr证明进行计算,验证计算得到的mmr根与所述第m个区块的mmr头中的mmr根是否一致。
7.在一种可能的实现方式中,所述方法还包括:接收携带有对象标识的查询请求,所述对象标识是交易标识或区块标识;根据所述对象标识向区块链中的全节点查询对象信息;对所述对象信息进行验证;在验证通过后,将所述对象信息同步至本地。
8.在一种可能的实现方式中,当所述对象标识是交易标识时,所述对象信息包括交易信息、交易树的默克尔证明、所述交易所属区块的mmr头和mmr证明,则所述对所述对象信息进行验证,包括:验证所述对象信息中的mmr头与本地存储的mmr头是否一致;根据所述交易信息计算交易哈希,验证计算得到的交易哈希与根据所述默克尔证明得到的交易哈希是否一致;根据所述默克尔证明获取所述交易所属区块的所有交易哈希,根据所有交易哈希计算交易根,验证计算得到的交易根与所述mmr头中的交易根是否一致;根据mmr算法对所述mmr证明进行计算,验证计算得到的mmr根与所述mmr头中的mmr根是否一致。
9.在一种可能的实现方式中,当所述对象标识是区块标识时,所述对象信息包括区块信息、mmr头和mmr证明,则所述对所述对象信息进行验证,包括:验证所述对象信息中的mmr头与本地存储的mmr头是否一致;根据所述区块信息计算区块哈希,验证计算得到的区块哈希与所述mmr头中的区块哈希是否一致;获取所述区块信息中的所有交易哈希,根据所有交易哈希计算交易根,验证计算得到的交易根与所述mmr头中的交易根是否一致;根据mmr算法对所述mmr证明进行计算,验证计算得到的mmr根与所述mmr头中的mmr根是否一致。
10.一方面,提供了一种区块链中的轻节点,所述轻节点包括:获取模块,用于当块高为n-1的轻节点需要同步第n个区块的数据时,向区块链中的全节点获取所述第n个区块的区块信息和默克尔山脉mmr头,所述mmr头包括当前区块的交易根和前一区块的mmr根,所述交易根是根据当前区块内所有交易哈希计算得到的,所述mmr根是根据mmr算法对当前区块的mmr证明进行计算得到的,所述mmr证明包括对所有区块的mmr头进行二叉树排列后,位于所述二叉树中预定位置处的mmr头的哈希,n≥1;所述获取模块,还用于获取本地存储的第n-1个区块的mmr根;验证模块,用于根据所述第n-1个区块的mmr根、所述第n个区块的区块信息和mmr根进行验证;
同步模块,用于当验证通过时,将所述第n个区块的mmr头和mmr证明同步至本地。
11.一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令,所述至少一条指令由处理器加载并执行以实现如上所述的区块链中轻节点的数据同步方法。
12.一方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行以实现如上所述的区块链中轻节点的数据同步方法。
13.本技术实施例提供的技术方案的有益效果至少包括:轻节点只需要同步一个区块的mmr头和mmr证明,相比于需要存储全量的区块头来说,可以减轻轻节点的存储压力。并且,轻节点可以对区块信息和mmr头进行校验,并不会牺牲轻节点同步过程中的安全性。
14.轻节点可以从最新区块开始同步,相比于需要从头开始同步所有区块的区块头来说,可以减轻轻节点的存储压力。
15.轻节点可以针对交易和区块进行存在性证明,可以保证通过轻节点查询到的交易信息和区块信息是真实可靠的。
附图说明
16.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
17.图1是本技术一个实施例提供的链式的数据结构的示意图;图2是本技术一个实施例提供的轻节点的数据同步方法的方法流程图;图3是本技术一个实施例提供的设备的轻节点与可信节点的连接示意图;图4是本技术一个实施例提供的设备的轻节点与共识节点和只读节点的连接示意图;图5是本技术一个实施例提供的区块链中轻节点的数据同步方法的方法流程图;图6是本技术一个实施例提供的存在性证明方法的方法流程图;图7是本技术一个实施例提供的区块链中的轻节点的结构框图;图8是本技术一个实施例提供的区块链中的轻节点的结构框图。
具体实施方式
18.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合附图对本技术实施方式作进一步地详细描述。
19.本实施例中,针对区块链中的所有区块生成链式的数据结构,其中,每个区块对应于数据结构中的一个mmr(merkle mountain ranges,默克尔山脉)头mmr_header。请参考图1,mmr头mmr_header包括区块哈希block_hash、交易根transacton_root、状态根state_root和前一个区块的mmr根pre_mmr_root。下面分别对这四种数据的计算过程进行解释。
20.(1)区块哈希block_hash
区块哈希block_hash是采用哈希算法对区块信息进行计算得到的。即,block_hash=hash(block_bytes),其中,block_bytes表示区块信息,hash()表示哈希算法。
21.(2)交易根transacton_root交易根transacton_root是根据当前区块内所有交易哈希计算得到的。换句话说,交易根是当前区块内所有交易哈希的默克尔树根。即,transacton_root=merkle_tree(tx_hash1, tx_hash2,.....),其中,tx_hash表示交易哈希。
22.(3)状态根state_root状态根state_root是将区块链上的所有交易按照区块顺序以及区块中的排序进行顺序,并顺序执行后得到键-值对(key-value),将所有键-值对按照merkle patricia tries算法求出的根结果。即,state_root=merkle_patricia_tries(kv1, kv2, kv3,...),其中,kv表示键-值对。
23.(4)mmr根mmr_rootmmr根mmr_root是根据mmr算法对区块的mmr证明mmr_proof进行计算得到的,mmr证明mmr_proof包括对所有区块的mmr头mmr_header进行二叉树排列后,位于二叉树中预定位置处的mmr头mmr_header的哈希。即,mmr_root=mmr(mmr_header_hash1, mmr_header_hash2,...),其中,mmr_header_hash表示mmr头哈希。
24.预定位置可以是perk位置,假设position=2
p0
+2
p1
+

+2
pk
,p0>p1>

>pk,position为当前区块在mmr_tree中的位置,则perk位置为。
25.请参考图2,下面对轻节点的数据同步方法进行说明。
26.步骤201,当轻节点的块高与需要同步的区块的块高m不连续时,向区块链中的全节点获取第m个区块的区块信息、mmr头和mmr证明。
27.其中,m≥1。
28.当轻节点上线后第一次进行数据同步时,会导致轻节点的块高与需要同步的区块的块高不连续。这里所说的上线可以是第一次上线,也可以是离线之后的再次上线。
29.在轻节点301上线后,可以连接可信节点302,以获取当前最新块高的共识地址和节点列表,如图3所示。其中,轻节点301是指存储敏感型节点,可信节点302是包含全量的区块信息和至少最新的状态数据的全节点,该全节点既包括共识节点也包括非共识节点。
30.请参考图4,在获取到当前最新块高的共识地址和节点列表后,轻节点401可以从其他节点同步数据。具体的,轻节点401尝试对节点列表上的全节点建立连接,轻节点401既可以连接共识节点402,也可以连接只读节点403,共识节点402或只读节点403都可以响应轻节点401的同步请求,并向轻节点401反馈第m个区块的区块信息block、mmr头mmr_header和mmr证明mmr_proof。
31.需要说明的是,根据拜占庭容错(byzantine fault tolerance,bft)共识的特性,外加共识信息签名信息会记录在区块中,可以确保轻节点所收到区块中有满足拜占庭容错共识要求地址签名,以及签名数量满足2f+1的情况。
32.步骤202,根据第m个区块的区块信息、mmr头和mmr证明进行验证。
33.本实施例中,轻节点需要进行两次验证。
34.(1)第一次验证是:轻节点从第m个区块的区块信息中获取所有交易哈希,根据所有交易哈希计算交易根,验证计算得到的交易根与第m个区块的mmr头中的交易根是否一
致。即,mmr_root==mmr_proof_verify(mmr_proof)。若计算得到的交易根与第m个区块的mmr头中的交易根一致,则认为第一次验证通过;若计算得到的交易根与第m个区块的mmr头中的交易根不一致,则认为第一次验证未通过。
35.(2)第二次验证是:轻节点根据mmr算法对mmr证明进行计算,验证计算得到的mmr根与第m个区块的mmr头中的mmr根是否一致。即,transaction_root==merkle_tree(tx_hash1, tx_hash2,.....)。若计算得到的mmr根与第m个区块的mmr头中的mmr根一致,则认为第二次验证通过;若计算得到的mmr根与第m个区块的mmr头中的mmr根不一致,则认为第二次验证未通过。
36.只有两次验证都通过,轻节点才会认为验证通过,执行步骤203;否则,轻节点会认为验证不通过,需要重新进行数据同步。
37.步骤203,当验证通过时,将第m个区块的mmr头和mmr证明同步至本地。
38.轻节点存储第m个区块的mmr头mmr_header以及mmr证明mmr_proof,然后,轻节点可以在第m个区块的基础上继续进行后续区块的数据同步,在这个过程中,区块信息及交易信息都不会被存储在轻节点中。
39.在拜占庭容错算法中,如果由于共识节点的变更而导致上述共识检查在某一块高无法通过时,轻节点需要向上述全节点重新同步该块高下最新的共识节点列表信息,以保证共识检查是正确的。
40.需要说明的是,本实施例中所说的数据同步是指同步一个区块的mmr头mmr_header以及mmr证明mmr_proof,并不是指同步区块的区块头,下文不再赘述。
41.请参考图5,其示出了本技术一个实施例提供的区块链中轻节点的数据同步方法的方法流程图,可以应用于包括图1所示的节点同步系统中。该区块链中轻节点的数据同步方法,可以包括:步骤501,当块高为n-1的轻节点需要同步第n个区块的数据时,向区块链中的全节点获取第n个区块的区块信息和mmr头。
42.其中,mmr头包括当前区块的交易根和前一区块的mmr根,交易根是根据当前区块内所有交易哈希计算得到的,mmr根是根据mmr算法对当前区块的mmr证明进行计算得到的,mmr证明包括对所有区块的mmr头进行二叉树排列后,位于二叉树中预定位置处的mmr头的哈希,n≥1。
43.当块高为n-1的轻节点需要同步第n个区块的数据时,说明轻节点中已经同步有第n-1个区块的数据,再此基础上同步第n个区块的数据。
44.具体的,轻节点向全节点发送同步请求,全节点向轻节点反馈第n个区块的区块信息block和mmr头mmr_header。
45.需要说明的是,根据拜占庭容错(bft)共识的特性,外加共识信息签名信息会记录在区块中,可以确保轻节点所收到区块中有满足拜占庭容错共识要求地址签名,以及签名数量满足2f+1的情况。
46.步骤502,获取本地存储的第n-1个区块的mmr根。
47.轻节点从本地存储的第n-1个区块的mmr头中读取mmr根。
48.步骤503,根据第n-1个区块的mmr根、第n个区块的区块信息和mmr根进行验证。
49.本实施例中,轻节点需要进行两次验证。
50.(1)第一次验证是:轻节点从第n个区块的区块信息中获取所有交易哈希,根据所有交易哈希计算交易根,验证计算得到的交易根与第n个区块的mmr头中的交易根是否一致。即,transaction_root==merkle_tree(tx_hash1, tx_hash2,.....)。若计算得到的交易根与第n个区块的mmr头中的交易根一致,则认为第一次验证通过;若计算得到的交易根与第n个区块的mmr头中的交易根不一致,则认为第一次验证未通过。
51.(2)第二次验证是:轻节点验证第n个区块的mmr头中的mmr根与本地存储的第n-1个区块的mmr根是否一致。即,current_mmr_header.pre_mmr_root==light_node_mmr_root,也就是说轻节点中第n-1个区块的mmr根mmr_root和第n个区块的mmr头mmr_header内的mmr头pre_mmr_root是否一致。若计算得到的mmr根与第n-1个区块的mmr头中的mmr根一致,则认为第二次验证通过;若计算得到的mmr根与第n-1个区块的mmr头中的mmr根不一致,则认为第二次验证未通过。
52.只有两次验证都通过,轻节点才会认为验证通过,执行步骤504;否则,轻节点会认为验证不通过,需要重新进行数据同步。
53.步骤504,当验证通过时,将第n个区块的mmr头和mmr证明同步至本地。
54.轻节点存储第n个区块的mmr头mmr_header以及mmr证明mmr_proof,然后,轻节点可以在第n个区块的基础上继续进行后续区块的数据同步,在这个过程中,区块信息及交易信息都不会被存储在轻节点中。
55.在拜占庭容错算法中,如果由于共识节点的变更而导致上述共识检查在某一块高无法通过时,轻节点需要向上述全节点重新同步该块高下最新的共识节点列表信息,以保证共识检查是正确的。
56.综上所述,本技术实施例提供的区块链中轻节点的数据同步方法,轻节点只需要同步一个区块的mmr头和mmr证明,相比于需要存储全量的区块头来说,可以减轻轻节点的存储压力。并且,轻节点可以对区块信息和mmr头进行校验,并不会牺牲轻节点同步过程中的安全性。
57.轻节点可以从最新区块开始同步,相比于需要从头开始同步所有区块的区块头来说,可以减轻轻节点的存储压力。
58.请参考图6,本实施例提供了一种存在性证明方法,存在性证明后同步的区块或交易被认定为热数据永久存储在轻节点中,供之后的查询使用。
59.步骤601,接收携带有对象标识的查询请求,该对象标识是交易标识或区块标识。
60.当需要查询交易时,查询请求中携带的对象标识为交易标识;当需要查询区块时,查询请求中携带的对象标识为区块标识。
61.步骤602,根据对象标识向区块链中的全节点查询对象信息。
62.当对象标识是交易标识时,对象信息包括交易信息、交易树的默克尔证明、交易所属区块的mmr头和mmr证明;当对象标识是区块标识时,对象信息包括区块信息、mmr头和mmr证明。
63.步骤603,对对象信息进行验证。
64.当对象信息包括交易信息、交易树的默克尔证明、交易所属区块的mmr头和mmr证明时,对对象信息进行验证可以包括四次验证:(1)验证对象信息中的mmr头与本地存储的mmr头是否一致。即,mmr_header==轻节
点已存储的mrr_header。若对象信息中的mmr头与本地存储的mmr头一致,则认为第一次验证通过;若对象信息中的mmr头与本地存储的mmr头不一致,则认为第一次验证未通过。
65.(2)根据交易信息计算交易哈希,验证计算得到的交易哈希与根据默克尔证明得到的交易哈希是否一致。即,hash(交易信息)==transaction_hash。若计算得到的交易哈希与根据默克尔证明得到的交易哈希一致,则认为第二次验证通过;若计算得到的交易哈希与根据默克尔证明得到的交易哈希不一致,则认为第二次验证未通过。
66.(3)根据默克尔证明获取交易所属区块的所有交易哈希,根据所有交易哈希计算交易根,验证计算得到的交易根与mmr头中的交易根是否一致。即,merkle_tree (区块内所有交易信息)==transaction_root。若计算得到的交易根与mmr头中的交易根一致,则认为第三次验证通过;若计算得到的交易根与mmr头中的交易根不一致,则认为第三次验证未通过。
67.(4)根据mmr算法对mmr证明进行计算,验证计算得到的mmr根与mmr头中的mmr根是否一致。即,mmr_root==mmr_proof_verify(mmr_proof)。若计算得到的mmr根与mmr头中的mmr根一致,则认为第四次验证通过;若计算得到的mmr根与mmr头中的mmr根不一致,则认为第四次验证未通过。
68.只有四次验证都通过,轻节点才会认为验证通过,执行步骤604;否则,轻节点会认为验证不通过,需要重新进行交易存在性证明。
69.当对象信息包括区块信息、mmr头和mmr证明时,对对象信息进行验证可以包括四次验证:(1)验证对象信息中的mmr头与本地存储的mmr头是否一致。即,mmr_header==轻节点已存储的mrr_header。若对象信息中的mmr头与本地存储的mmr头一致,则认为第一次验证通过;若对象信息中的mmr头与本地存储的mmr头不一致,则认为第一次验证未通过。
70.(2)根据区块信息计算区块哈希,验证计算得到的区块哈希与mmr头中的区块哈希是否一致。即,hash(区块信息)==mmr_header.block_hash。若计算得到的区块哈希与mmr头中的区块哈希一致,则认为第二次验证通过;若计算得到的区块哈希与mmr头中的区块哈希不一致,则认为第二次验证未通过。
71.(3)获取区块信息中的所有交易哈希,根据所有交易哈希计算交易根,验证计算得到的交易根与mmr头中的交易根是否一致。即,merkle_tree (区块内的所有交易)==mmr_header.transaction_root。若计算得到的交易根与mmr头中的交易根一致,则认为第三次验证通过;若计算得到的交易根与mmr头中的交易根不一致,则认为第三次验证未通过。
72.(4)根据mmr算法对mmr证明进行计算,验证计算得到的mmr根与mmr头中的mmr根是否一致。即,mmr_root==mmr_proof_verify(mmr_proof)。若计算得到的mmr根与mmr头中的mmr根一致,则认为第四次验证通过;若计算得到的mmr根与mmr头中的mmr根不一致,则认为第四次验证未通过。
73.只有四次验证都通过,轻节点才会认为验证通过,执行步骤604;否则,轻节点会认为验证不通过,需要重新进行区块存在性证明。
74.步骤604,在验证通过后,将对象信息同步至本地。
75.在交易存在性验证通过后,轻节点可将交易信息存入数据库。或者,在区块存在性验证通过后,轻节点可将区块信息存入数据库。
76.本实施例中,轻节点可以针对交易和区块进行存在性证明,可以保证通过轻节点查询到的交易信息和区块信息是真实可靠的。
77.请参考图7,其示出了本技术一个实施例提供的区块链中的轻节点的结构框图,该轻节点可以包括:获取模块710,用于当块高为n-1的轻节点需要同步第n个区块的数据时,向区块链中的全节点获取第n个区块的区块信息和mmr头,mmr头包括当前区块的交易根和前一区块的mmr根,交易根是根据当前区块内所有交易哈希计算得到的,mmr根是根据mmr算法对当前区块的mmr证明进行计算得到的,mmr证明包括对所有区块的mmr头进行二叉树排列后,位于二叉树中预定位置处的mmr头的哈希,n≥1;获取模块710,还用于获取本地存储的第n-1个区块的mmr根;验证模块720,用于根据第n-1个区块的mmr根、第n个区块的区块信息和mmr根进行验证;同步模块730,用于当验证通过时,将第n个区块的mmr头和mmr证明同步至本地。
78.在一个可选的实施例中,验证模块720,还用于:从第n个区块的区块信息中获取所有交易哈希,根据所有交易哈希计算交易根,验证计算得到的交易根与第n个区块的mmr头中的交易根是否一致;验证第n个区块的mmr头中的mmr根与本地存储的第n-1个区块的mmr根是否一致。
79.在一个可选的实施例中,获取模块710,还用于当轻节点的块高与需要同步的区块的块高m不连续时,向区块链中的全节点获取第m个区块的区块信息、mmr头和mmr证明,m≥1;验证模块720,还用于根据第m个区块的区块信息、mmr头和mmr证明进行验证;同步模块730,还用于当验证通过时,将第m个区块的mmr头和mmr证明同步至本地。
80.在一个可选的实施例中,验证模块720,还用于:从第m个区块的区块信息中获取所有交易哈希,根据所有交易哈希计算交易根,验证计算得到的交易根与第m个区块的mmr头中的交易根是否一致;根据mmr算法对mmr证明进行计算,验证计算得到的mmr根与第m个区块的mmr头中的mmr根是否一致。
81.请参考图8,在一个可选的实施例中,该装置还包括:接收模块740,用于接收携带有对象标识的查询请求,对象标识是交易标识或区块标识;查询模块750,用于根据对象标识向区块链中的全节点查询对象信息;验证模块720,还用于对对象信息进行验证;同步模块730,还用于在验证通过后,将对象信息同步至本地。
82.在一个可选的实施例中,当对象标识是交易标识时,对象信息包括交易信息、交易树的默克尔证明、交易所属区块的mmr头和mmr证明,则验证模块720,还用于:验证对象信息中的mmr头与本地存储的mmr头是否一致;根据交易信息计算交易哈希,验证计算得到的交易哈希与根据默克尔证明得到的交易哈希是否一致;根据默克尔证明获取交易所属区块的所有交易哈希,根据所有交易哈希计算交易
根,验证计算得到的交易根与mmr头中的交易根是否一致;根据mmr算法对mmr证明进行计算,验证计算得到的mmr根与mmr头中的mmr根是否一致。
83.在一个可选的实施例中,当对象标识是区块标识时,对象信息包括区块信息、mmr头和mmr证明,则验证模块720,还用于:验证对象信息中的mmr头与本地存储的mmr头是否一致;根据区块信息计算区块哈希,验证计算得到的区块哈希与mmr头中的区块哈希是否一致;获取区块信息中的所有交易哈希,根据所有交易哈希计算交易根,验证计算得到的交易根与mmr头中的交易根是否一致;根据mmr算法对mmr证明进行计算,验证计算得到的mmr根与mmr头中的mmr根是否一致。
84.综上所述,本技术实施例提供的区块链中的轻节点,轻节点只需要同步一个区块的mmr头和mmr证明,相比于需要存储全量的区块头来说,可以减轻轻节点的存储压力。并且,轻节点可以对区块信息和mmr头进行校验,并不会牺牲轻节点同步过程中的安全性。
85.轻节点可以从最新区块开始同步,相比于需要从头开始同步所有区块的区块头来说,可以减轻轻节点的存储压力。
86.轻节点可以针对交易和区块进行存在性证明,可以保证通过轻节点查询到的交易信息和区块信息是真实可靠的。
87.本技术一个实施例提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令,所述至少一条指令由处理器加载并执行以实现如上所述的区块链中轻节点的数据同步方法。
88.本技术一个实施例提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行以实现如上所述的区块链中轻节点的数据同步方法。
89.需要说明的是:上述实施例提供的区块链中的轻节点在进行区块链中轻节点的数据同步时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将区块链中的轻节点的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的区块链中的轻节点与区块链中轻节点的数据同步方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
90.本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
91.以上所述并不用以限制本技术实施例,凡在本技术实施例的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术实施例的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1