数据转移方法、装置、节点设备及存储介质.pdf

上传人:利贞 文档编号:10642775 上传时间:2021-08-06 格式:PDF 页数:25 大小:725.52KB
收藏 版权申诉 举报 下载
数据转移方法、装置、节点设备及存储介质.pdf_第1页
第1页 / 共25页
数据转移方法、装置、节点设备及存储介质.pdf_第2页
第2页 / 共25页
数据转移方法、装置、节点设备及存储介质.pdf_第3页
第3页 / 共25页
文档描述:

《数据转移方法、装置、节点设备及存储介质.pdf》由会员分享,可在线阅读,更多相关《数据转移方法、装置、节点设备及存储介质.pdf(25页完成版)》请在专利查询网上搜索。

1、(19)中华人民共和国国家知识产权局 (12)发明专利申请 (10)申请公布号 (43)申请公布日 (21)申请号 201911370868.X (22)申请日 2019.12.25 (71)申请人 腾讯科技 (深圳) 有限公司 地址 518057 广东省深圳市南山区高新区 科技中一路腾讯大厦35层 (72)发明人 刘攀 (74)专利代理机构 广州三环专利商标代理有限 公司 44202 代理人 熊永强杜维 (51)Int.Cl. G06Q 20/10(2012.01) G06F 16/27(2019.01) (54)发明名称 数据转移方法、 装置、 节点设备及存储介质 (57)摘要 本发明实施。

2、例公开了一种数据转移方法、 装 置、 节点设备及存储介质, 其中方法应用于区块 链网络, 区块链网络包括多个分片, 方法可包括: 接收数据转移请求, 数据转移请求包括待转移数 据量、 转出方账户和转入方账户, 转出方账户属 于第一分片, 转入方账户属于第二分片, 第二分 片为多个分片中除第一分片之外的任意一个; 根 据数据转移请求从转出方账户中扣除待转移数 据量; 生成跨分片转移请求, 并将跨分片转移请 求发送至第二分片, 以使第二分片根据跨分片转 移请求向转入方账户中增加待转移数据量。 采用 本发明实施例可以提高区块链网络的吞吐量。 权利要求书3页 说明书17页 附图4页 CN 111144。

3、866 A 2020.05.12 CN 111144866 A 1.一种数据转移方法, 其特征在于, 应用于区块链网络, 所述区块链网络包括多个分 片, 每个分片包括至少一个节点, 所述数据转移方法由第一分片包括的任意一个节点执行, 所述第一分片为所述多个分片中的任意一个, 所述方法包括: 接收数据转移请求, 所述数据转移请求包括待转移数据量、 转出方账户和转入方账户, 所述转出方账户属于第一分片, 所述转入方账户属于第二分片, 所述第二分片为所述多个 分片中除所述第一分片之外的任意一个; 根据所述数据转移请求从所述转出方账户中扣除待转移数据量; 生成跨分片转移请求, 并将所述跨分片转移请求发。

4、送至所述第二分片, 以使所述第二 分片根据所述跨分片转移请求向所述转入方账户中增加所述待转移数据量。 2.如权利要求1所述的方法, 其特征在于, 所述区块链网络中包括多个节点和多个账 户, 每个账户对应一个用于存储相应账户的数据的账户地址; 所述区块链网络按照分片划 分规则被划分为多个分片, 每个分片至少包括一个节点; 每个账户对应的账户地址所属分 片是根据相应账户地址和所述多个分片的总数量确定的。 3.如权利要求1所述的方法, 其特征在于, 所述生成跨分片转移请求之前, 所述方法还 包括: 若基于数据转移策略确定转移所述待转移数据量需要支付奖励数据, 则从所述转出方 账户中扣除奖励数据量。 。

5、4.如权利要求1所述的方法, 其特征在于, 所述第一分片包括第一共识节点, 所述从所 述转出方账户扣除所述待转移数据量之前, 所述方法还包括: 控制所述第一共识节点将所述数据转移请求打包到第一区块中, 并对所述第一区块进 行共识认证; 共识认证通过后, 执行从所述转出方账户中扣除所述待转移数据量的步骤。 5.如权利要求4所述的方法, 其特征在于, 所述从所述转出方账户扣除所述待转移数据 量之后, 所述方法还包括: 将从所述转出方账户扣除所述待转移数据量作为所述数据转移请求对应的执行结果, 并将所述执行结果写入所述第一区块; 向所述区块链网络广播所述第一区块, 以使得所述区块链网络中每个分片接收。

6、所述第 一区块并将所述第一区块添加至区块链上。 6.如权利要求1所述的方法, 其特征在于, 所述方法还包括: 生成所述跨分片转移请求对应的出块证明; 将所述出块证明携带在所述跨分片转移请求中发送至所述第二分片, 用于指示所述第 二分片基于所述出块证明对所述跨分片转移请求进行验证, 并在验证通过后向所述转入方 账户中增加所述待转移数据量。 7.一种数据转移方法, 其特征在于, 应用于区块链网络中, 所述区块链网络包括多个分 片, 每个分片至少包括一个节点, 所述多个分片中包括第一分片和第二分片, 所述第一分片 包括转出方账户, 所述第二分片包括转入方账户; 所述数据转移方法由所述第二分片包括 的。

7、任意一个节点执行, 所述方法包括: 接收跨分片转移请求, 所述跨分片转移请求包括转入方账户和待转移数据量, 所述跨 分片转移请求是所述第一分片在接收到数据转移请求并根据所述数据转移请求从所述转 权利要求书 1/3 页 2 CN 111144866 A 2 出方账户扣除所述待转移数据量后生成并发送的; 根据所述跨分片转移请求向所述转入方账户中增加所述待转移数据量。 8.如权利要求7所述的方法, 其特征在于, 所述跨分片转移请求包括出块证明, 所述出 块证明包括所述数据转移请求所属第一区块在所述第一分片中的目标高度, 所述根据所述 跨分片转移请求向所述转入方账户中增加所述待转移数据量之前, 所述方。

8、法还包括: 若基于所述出块证明检测已接收到所述第一分片发送的区块高度为所述目标高度的 第一区块, 则执行所述根据所述跨分片转移请求向所述转入方账户中增加所述待转移数据 量的步骤。 9.如权利要求8所述的方法, 其特征在于, 所述出块证明还包括跨分片梅克尔证明, 所 述接收到所述第一分片发送的区块高度为目标高度的第一区块后, 所述跨分片转移请求向 所述转入方账户中增加所述待转移数据量之前, 所述方法还包括: 若基于所述跨分片梅克尔证明验证所述跨分片转移请求合法, 则执行所述根据所述跨 分片转移请求向所述转入方账户中增加所述待转移数据量的步骤。 10.如权利要求7所述的方法, 其特征在于, 所述第。

9、二分片包括第二共识节点, 所述根据 所述跨分片转移请求向所述转入方账户中增加所述待转移数据量之前, 包括: 控制所述第二共识节点将所述数据转移请求打包到第二区块中, 并对所述第二区块进 行共识认证; 共识认证通过后, 执行所述根据所述跨分片转移请求向所述转入方账户中增加所述待 转移数据量的步骤。 11.如权利要求10所述的方法, 其特征在于, 所述根据所述跨分片转移请求向所述转入 方账户中增加所述待转移数据量之后, 所述方法还包括: 将向所述转入方账户中增加所述待转移数据量作为所述跨分片转移请求对应的执行 结果, 并将所述执行结果写入所述第二区块; 向所述区块链网络广播所述第二区块, 以使得所。

10、述区块链网络中每个分片接收所述第 二区块并将所述第二区块添加至区块链上。 12.一种数据转移装置, 其特征在于, 应用于区块链网络, 所述区块链网络包括多个分 片, 每个分片包括至少一个节点, 所述数据转移装置包括: 接收单元, 用于接收数据转移请求, 所述数据转移请求包括待转移数据量、 转出方账户 和转入方账户, 所述转出方账户属于第一分片, 所述转入方账户属于第二分片, 所述第二分 片为所述多个分片中除所述第一分片之外的任意一个; 处理单元, 用于根据所述数据转移请求从所述转出方账户中扣除待转移数据量; 生成单元, 用于生成跨分片转移请求; 发送单元, 用于将所述跨分片转移请求发送至所述第。

11、二分片, 以使所述第二分片根据 所述跨分片转移请求向所述转入方账户中增加所述待转移数据量。 13.一种数据转移装置, 其特征在于, 应用于区块链网络, 所述区块链网络包括多个分 片, 每个分片包括至少一个节点, 所述多个分片中包括第一分片和第二分片, 所述第一分片 包括转出方账户, 所述第二分片包括转入方账户; 所述数据转移装置包括: 接收单元, 用于接收跨分片转移请求, 所述跨分片转移请求包括转入方账户和待转移 数据量, 所述跨分片转移请求是所述第一分片在接收到数据转移请求并根据所述数据转移 权利要求书 2/3 页 3 CN 111144866 A 3 请求从所述转出方账户扣除所述待转移数据。

12、量后生成并发送的; 处理单元, 用于根据所述跨分片转移请求向所述转入方账户中增加所述待转移数据 量。 14.一种节点设备, 其特征在于, 包括: 处理器, 适于实现一条或多条指令; 以及 计算机存储介质所述计算机存储介质存储有一条或多条指令, 所述一条或多条指令适 于由所述处理器加载并执行如权利要求1-6任一项所述的数据转移方法; 或者, 所述一条或 多条指令适于由所述处理器加载并执行如权利要求7-11任一项所述的数据转移方法。 15.一种计算机存储介质, 其特征在于, 所述计算机存储介质中存储有第一计算机程序 指令, 所述第一计算机程序指令被处理器执行时, 用于执行如权利要求1-6任一项所述。

13、的数 据转移方法; 或者, 所述计算机存储介质中存储有第一计算机程序指令, 所述第一计算机程 序指令被处理器执行时, 用于执行如权利要求7-11任一项所述的数据转移方法。 权利要求书 3/3 页 4 CN 111144866 A 4 数据转移方法、 装置、 节点设备及存储介质 技术领域 0001 本申请涉及区块链技术领域, 尤其涉及一种数据转移方法、 装置、 节点设 备及存 储介质。 背景技术 0002 随着区块链技术的发展, 区块链网络得到越来越多的应用。 在区块链网络 中, 任 何一笔交易都是满足原子性的, 以转账交易为例, 比如用户甲向用户乙 转账, 转账数据量 为X, 则该转账交易中包。

14、括两个步骤: 第一步骤是从用户甲 的账户中扣除X个数据量; 第二 步骤是向用户乙的账户中增加X个数据量。 在 上述两个步骤均执行完成后, 该转账交易才 算是被执行完成。 0003 在这种执行交易的方法中, 为了保证转移的安全性, 需要等待第一步骤执 行完成 后, 才启动执行第二步骤。 如此一来, 可能会降低区块链网络执行交易 的效率和区块链网 络的吞吐量。 因此, 在区块链技术领域中, 如何成为当今研 究的热点问题。 发明内容 0004 本发明实施例提供了一种数据转移方法、 装置、 节点设备及存储介质, 可 以提高 区块链网络的吞吐量。 0005 一方面, 本发明实施例提供了一种数据转移方法,。

15、 0006 应用于区块链网络, 所述区块链网络包括多个分片, 每个分片包括至少一 个节 点, 所述数据转移方法由第一分片包括的任意一个节点执行, 所述第一分 片为所述多个分 片中的任意一个, 所述方法包括: 0007 接收数据转移请求, 所述数据转移请求包括待转移数据量、 转出方账户和 转入方 账户, 所述转出方账户属于第一分片, 所述转入方账户属于第二分片, 所述第二分片为所 述多个分片中除所述第一分片之外的任意一个; 0008 根据所述数据转移请求从所述转出方账户中扣除待转移数据量; 0009 生成跨分片转移请求, 并将所述跨分片转移请求发送至所述第二分片, 以 使所述 第二分片根据所述跨。

16、分片转移请求向所述转入方账户中增加所述待转移 数据量。 0010 一方面, 本发明实施例提供了另一种数据转移方法 0011 应用于区块链网络中, 所述区块链网络包括多个分片, 每个分片至少包括 一个节 点, 所述多个分片中包括第一分片和第二分片, 所述第一分片包括转出 方账户, 所述第二 分片包括转入方账户; 所述数据转移方法由所述第二分片包 括的任意一个节点执行, 所述 方法包括: 0012 接收跨分片转移请求, 所述跨分片转移请求包括转入方账户和待转移数据 量, 所 述跨分片转移请求是所述第一分片在接收到数据转移请求并根据所述数 据转移请求从所 述转出方账户扣除所述待转移数据量后生成并发送。

17、的; 0013 根据所述跨分片转移请求向所述转入方账户中增加所述待转移数据量。 说明书 1/17 页 5 CN 111144866 A 5 0014 一方面, 本发明实施例提供了一种数据转移装置, 应用于区块链网络, 所 述区块 链网络包括多个分片, 每个分片包括至少一个节点, 所述数据转移装置 包括: 0015 接收单元, 用于接收数据转移请求, 所述数据转移请求包括待转移数据量、 转出 方账户和转入方账户, 所述转出方账户属于第一分片, 所述转入方账户属 于第二分片, 所 述第二分片为所述多个分片中除所述第一分片之外的任意一个; 0016 处理单元, 用于根据所述数据转移请求从所述转出方账。

18、户中扣除待转移数 据量; 0017 生成单元, 用于生成跨分片转移请求; 0018 发送单元, 用于将所述跨分片转移请求发送至所述第二分片, 以使所述第 二分片 根据所述跨分片转移请求向所述转入方账户中增加所述待转移数据量。 0019 一方面, 本发明实施例还提供了另一种数据转移装置, 应用于区块链网络, 所述 区块链网络包括多个分片, 每个分片包括至少一个节点, 所述多个分片中 包括第一分片和 第二分片, 所述第一分片包括转出方账户, 所述第二分片包括 转入方账户; 所述数据转移 装置包括: 0020 接收单元, 用于接收跨分片转移请求, 所述跨分片转移请求包括转入方账 户和待 转移数据量,。

19、 所述跨分片转移请求是所述第一分片在接收到数据转移请 求并根据所述数 据转移请求从所述转出方账户扣除所述待转移数据量后生成并 发送的; 0021 处理单元, 用于根据所述跨分片转移请求向所述转入方账户中增加所述待 转移 数据量。 0022 一方面, 本发明实施例提供了一种节点设备, 所述节点包括: 0023 处理器, 适于实现一条或多条指令; 以及, 0024 计算机存储介质, 所述计算机存储介质存储有一条或多条指令, 所述一条 或多条 指令适于由所述处理器加载并执行如下步骤: 0025 接收数据转移请求, 所述数据转移请求包括待转移数据量、 转出方账户和 转入方 账户, 所述转出方账户属于第。

20、一分片, 所述转入方账户属于第二分片, 所述第二分片为所 述多个分片中除所述第一分片之外的任意一个; 0026 根据所述数据转移请求从所述转出方账户中扣除待转移数据量; 0027 生成跨分片转移请求, 并将所述跨分片转移请求发送至所述第二分片, 以 使所述 第二分片根据所述跨分片转移请求向所述转入方账户中增加所述待转移 数据量。 0028 或者, 所述一条或多条指令适于由所述处理器加载并执行如下步骤: 0029 接收跨分片转移请求, 所述跨分片转移请求包括转入方账户和待转移数据 量, 所 述跨分片转移请求是所述第一分片在接收到数据转移请求并根据所述数 据转移请求从所 述转出方账户扣除所述待转移。

21、数据量后生成并发送的; 0030 根据所述跨分片转移请求向所述转入方账户中增加所述待转移数据量。 0031 一方面, 本发明实施例提供了一种计算机存储介质, 其特征在于, 所述计 算机存 储介质中存储有计算机程序指令, 所述计算机程序指令被处理器执行时, 用于执行如上述 的任意一种数据转移方法。 0032 本发明实施例中, 将区块链网络划分为多个分片, 每个分片之间相互联系 并且独 立工作, 如果区块链网络的多个分片包括第一分片和第二分片, 第一分 片中包括转出方账 户, 第二分片中包括转入方账户。 当第一分片接收到数据转 移请求时, 根据数据转移请求 说明书 2/17 页 6 CN 1111。

22、44866 A 6 从转出方账户中扣除待转移数据量; 并生成跨分 片转移请求, 将跨分片转移请求发送至第 二分片, 以指示第二分片基于跨分片 转移请求向转入方账户增加待转移数据量。 在上述数 据转移过程中, 由于第一 分片中只包括转出方账户不包括转入方账户, 因此, 第一分片只 执行扣除待转 移数据量的步骤, 由第二分片执行向转入方账户增加待转移数据量的步骤, 可 见, 数据量转出和转入是由两个分片分开的异步执行的, 如此一来第一分片不 必等待 第二分片执行了数据转入的步骤之后再处理新的数据转出的步骤, 第一 分片可以不断处 理数据量转出的步骤, 增加了区块链网络的吞吐量。 附图说明 0033。

23、 为了更清楚地说明本发明实施例技术方案, 下面将对实施例描述中所需要 使用 的附图作简单地介绍, 显而易见地, 下面描述中的附图是本发明的一些实 施例, 对于本领 域普通技术人员来讲, 在不付出创造性劳动的前提下, 还可以 根据这些附图获得其他的附 图。 0034 图1是本发明实施例提供的一种数据转移系统的结构示意图; 0035 图2是本发明实施例提供的一种数据转移方法的流程示意图; 0036 图3是本发明实施例提供的一种数据转移方法的流程示意图; 0037 图4是本发明实施例提供的一种数据转移方法的流程示意图; 0038 图5是本发明实施例提供的一种跨分片数据转移的示意图; 0039 图6是。

24、本发明实施例提供的一种数据转移装置的结构示意图; 0040 图7是本发明实施例提供的一种数据转移装置的结构示意图; 0041 图8是本发明实施例提供的一种节点设备的结构示意图。 具体实施方式 0042 下面将结合本发明实施例中的附图, 对本发明实施例中的技术方案进行清 楚、 完 整地描述。 0043 本发明实施例提供了一种数据转移方案, 可以实现将区块链网络中的数据 转移 交易的转出操作和转入操作异步执行, 有效了增加了区块链网络的吞吐量。 所述数据转移 方案应用于区块链网络中, 所述区块链网络被划分为多个分片, 每个分片至少包括一个节 点, 每个分片之间保持并且独立工作, 在相同时间内, 多。

25、个分片可以同时并行执行交易, 提 高了区块链网络的交易执行效率。 具体实 现中, 本发明实施例提供的数据转移方案可如 下: 假设区块链网络的多个分片 中包括第一分片和第二分片, 转出方账户属于第一分片, 转入方账户属于第二 分片; 第一分片接收数据转移请求后, 执行转出操作, 也即根据数据 转移请求 从转出方账户中扣除待转移数据量; 然后, 第一分片通知第二分片执行转入操 作, 由第二分片向转入方账户中增加待转移数据量。 0044 基于上述的数据转移方案, 本发明实施例提供了一种数据转移系统。 参考 图1所 示, 为本发明实施例提供的一种数据转移系统的结构示意图, 图1所述 的数据转移系统中 。

26、可包括区块链网络101和至少一个用户终端102, 所述用户终 端102是区块链网络的用户所 使用的终端设备, 可以用于与区块链进行交互的 终端设备, 或者用户终端102也可以是区 块链网络中的节点设备(在图1中未 示出)区块链网络101中至少包括一个节点设备103。 说明书 3/17 页 7 CN 111144866 A 7 0045 在一个实施例中, 区块链网络101可以理解为一个数据共享系统, 可以用 于进行 节点设备之间数据共享, 区块链网络101中包括的多个节点设备在进行 正常工作时可以接 收到交易数据, 并基于接收到的交易数据维护区块链10网络 1内的共享数据。 为了保证区 块链网络。

27、内节点设备之间互通, 每个节点设备之间 可以存在连接, 节点设备之间通过该连 接进行数据传输。 例如, 当区块链网络 101中的任意节点设备接收到交易数据时, 区块链网 络101中的其他节点设备便 根据共识算法获取该交易数据, 将该交易数据作为共享数据中 的数据进行存储, 使得区块链网络中全部节点设备存储的数据均一致。 0046 区块链网络101中的每个节点设备均存储一条相同的区块链, 区块链由多 个区块 组成, 每个区块中可包括区块头和区块主体, 区块头中存储有交易数据 特征值、 版本号、 时 间戳和难度值等, 区块主体中存储交易数据。 当区块链网 络中的任意一个节点设备接收到 交易数据时,。

28、 对交易数据进行验证, 验证完成 后将该交易数据存入交易池中。 当生成区块 时, 从交易池中选择一定数量的交 易数据进行打包、 经过其他节点设备对新生成区块进行 验证后, 将该新生成区 块添加至区块链中。 0047 应当理解的, 由于区块链网络中每秒处理的交易数量是有限的, 通常情况 下, 可 以通过对区块链网络进行扩容来提高区块链网络的吞吐量。 所谓扩容, 本意是可以通过将 数据库拆开小段, 改变网络内容各步骤之间的验证方式实现 分片, 达到增加吞吐量的目 的。 目前分片技术是实现扩容的常用技术之一。 0048 所谓分片, 是一种基于数据库分成若干片段的传统概念扩容技术, 它将数 据库分 割。

29、成多个碎片并将这些碎片放置在不同的服务器器上。 在区块链网络中, 所述分片是指将 区块链网络分成多个子网络, 每个子网络称为一个分片。 区块 链网络进行分片后, 区块链 网络中的交易将被分成不同的碎片, 由不同分片执 行。 因此, 每个分片只需要处理一小部 分输入的交易, 并且通过与区块链网络 上的其他分片并行处理就能完成大量的验证工作。 基于此, 将区块链网络划分 为多个分片会使得更多的交易同时被处理和验证, 从而提高了 区块链网络的吞 吐量。 0049 在图1所示的数据转移系统中, 区块链网络101可以被划分为多个分片如 图1中区 块链网络101可包括分片0到分片n-1, n为大于1的正整。

30、数。 每个分 片中可包括至少一个节 点, 每个分片之间保持并独立工作, 相同时间内, 多个 分片同时并行执行交易, 可以提高区 块链网络的吞吐量。 0050 应当理解的, 区块链网络101中可包括多个账户, 每个账户对应一个用于 存储相 应账户的数据的账户地址, 此处所谓账户的数据可以包括账户的电子资 源数据等。 由于区 块链网络101被划分为多个分片, 区块链网络101中的账户 地址也需要划分到相应的分片 中。 账户地址是基于每个账户所用于的公钥和私 钥生成的, 账户地址具有固定长度, 通常 是32字节, 比如账户地址可以为 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfN。

31、a。 可选的, 将每个 账户地址划分到不 同分片的实施方式可以为: 将账户地址的前预设数量个字节对区块链 网络101 中分片总数量进行取模运算, 根据运算结果确定账户地址所属的分片。 其中, 预 设数量可以为1,2或者其他任意数, 在不同的区块链网络中, 所述预设数量可 以依据不同 的分片总数量取不同的值, 本发明实施例中不做具体限定。 0051 账户地址被划分到相应的分片也即账户被换划分到相应的分片, 如此一来, 将会 出现数据转移交易被跨分片执行的情况。 假设在一笔数据转移交易中, 转 出方账户A向转 说明书 4/17 页 8 CN 111144866 A 8 入方账户B支付一笔数额为x的。

32、资产, 如果转出方账户A所属 分片为第一分片, 转入方账户B 所属分片为第二分片, 第一分片和第二分片为 区块链网络101中的任意两个不同分片, 这 样就涉及到跨分片交易的问题。 首 先, 需要在第一分片中完成从转出方账户A扣款的操作, 然后再携带一个扣款 完成的证明指示第二分片进行向转入方账户B增加x的操作。 0052 在图1所示的数据转移系统中, 区块链网络中101的第一分片和第二分片 可用于 执行上述数据转移方案, 以实现区块链网络中的数据转移交易的转出操 作和转入操作异 步执行, 有效了增加了区块链网络的吞吐量。 具体的执行流程 将在后面的实施例中详细描 述。 0053 基于上述的数据。

33、转移系统, 本发明实施例提供了一种数据转移方法, 参考 图2, 为 本发明实施例提供的一种数据转移方法的流程示意图。 图2所示的数据 转移方法可以应用 于区块链网络中, 所述区块链网络被划分为多个分片, 每个 分片可至少包括一个节点, 多 个分片中可包括第一分片和第二分片, 所述第一 分片和所述第二分片可以是多个分片中 的任意两个不相同的分片, 第一分片中 包括转出方账户, 第二分片中包括转入方账户。 图2 所示的数据转移方法可由 第一分片中的任意一个节点设备执行, 图2所示的数据转移方法 可包括如下步 骤: 0054 步骤S201、 接收数据转移请求, 数据转移请求包括待转移数据量、 转出方。

34、 账户和 转入方账户。 0055 由前述可知, 为了使得区块链网络能够处理更多的交易, 将区块链网络划 分为多 个分片, 这些分片中包括的节点数量可以相同也可以不同。 可选的, 可 以依据分片划分规 则对区块链网络进行划分处理得到多个分片。 0056 在一个实施例中, 所述分片划分规则可以包括网络分片。 所谓网络分片是 最基础 的一种分片方式, 就是将整个区块链网络划分成多个区块链子网络, 每 个区块链子网络就 是一个分片。 可选的, 在网络分片机制下, 由于将区块链网 络分片后, 多个分片并行处理交 易, 提高了区块链网络的并发度。 每个分片处 理的交易之间没有冗余或者只有较少的冗 余, 这。

35、样一来, 很可能出现一个分片 中的处理结果将决定整个区块链网络的最终处理结 果。 因此, 如果一个分片中 的大量节点被一些人控制, 那么这些被控制的大量节点便可以 左右这个分片的 处理结果, 从而威胁到整个区块链网络的安全性。 基于此, 在网络分片机 制下, 需要确定将哪些节点划分到一个分片中, 从而避免上述情况出现。 0057 作为一种可行的实施方式, 在网络分片机制下, 可以利用可验证随机函数 随机选 取区块链网络中的哪些节点组成一个分片, 从而得到区块链网络的多个 分片。 其中, 所述 可验证随机函数可以包括一种非对称加密算法中的哈希函数。 在其他可选的方式中, 也可 以采用其他方式从区。

36、块链网络中随机选取节点划分 分片, 本发明实施例中不做具体限定。 0058 作为一种可行的实施方式, 在网络分片机制下, 还可以依据等分规则将区 块链网 络划分为多个分片。 具体实现中, 获取区块链网络包括的节点总数量; 依据等分规则将区 块链网络中的节点进行划分处理, 得到n个分片(n为大于1 的整数), 每个分片中包括的节 点数量相同。 例如, 区块链网络中的节点总数量 为30, 则按照数据分片划分规则, 可以包括 以下几种分片方案: 将30个节点划 分得到6个分片, 每个分片中包括5个节点; 或者, 将30个 节点划分得到5个 分片, 每个分片中包括6个节点; 再或者, 将30个节点划分。

37、得到3个分片, 每 个分片包括10个节点。 由前述可知, 每个分片中包括的节点数量越多, 分片中 数据被篡 说明书 5/17 页 9 CN 111144866 A 9 改的可能性越小, 区块链网络也就越安全。 因此, 在实际应用中, 在 按照上述分片划分规则 对区块链网络进行分片划分时, 可以选择划分后每个分 片包括的节点数量最多的分片方 案作为最优的分片方案。 0059 一个实施例中, 所述分片划分机制还可以包括交易分片。 交易分片是在网 络分片 的基础上进行的, 也即交易分片的前提是先进行网络分片, 交易分片涉 及到的问题是哪些 交易应该按照特定的是属性被分配到哪些分片中。 对于交易 分片。

38、可采用一些常用的交易 分片方法比如基于账户系统进行交易分片、 基于 UTXO的账本系统进行交易分片等等, 具体 实施方式本发明实施例中不再赘述。 0060 在其他实施例中, 所述分片划分机制还可以包括状态分片。 状态分片的关 键是将 区块链网络的整个存储区分开, 让不同的分片存储不同的部分, 每个节 点只负责托管自己 所在分片的数据, 而不是存储完整的区块链状态。 0061 由前述可知, 在基于上述的分片划分规则将区块链网络划分为多个分片后, 还可 以将每个节点对应账户的账户地址进行分片, 也就是说将区块链网络中的 多个账户地址 划分到不同的分片中。 可选的, 对账户地址进行分片的实施方式 可。

39、以为: 将账户地址的前 预设数量个字节对分片总数量进行取模运算, 根据运 算结果确定该账户地址所属分片。 0062 在一个实施例中, 在将区块链网络节点和账户地址进行分片后, 每个节点 可以获 取该节点对应账户的账户地址所属分片, 并给每个可以向该节点对应账 号发送所属分片 的通知信息, 以通知该节点对应的账户其账户地址被划分为属 于哪个分片中。 举例来说, 假设区块链中节点A对应账户为账户A, 账户A对 应的账户地址为账户地址A, 经过对区块链 网络进行上述分片处理后, 节点A 被划分到第一分片, 账户A对应的账户地址被划分到第二 分片; 节点A可以向 账户A输出一个通知信息以通知账户A他的。

40、账户地址A被划分为第二分 片, 后 续账户A可以通过向第二分片提交转账请求来执行转账交易。 0063 在其他实施例中, 在将区块链网络节点和账户地址进行分片后, 也可以在 区块链 网络中设置一个中转分片或者中转节点, 该中转分片中存储了每个账户 地址所属的分片, 当节点到任意一个账户在区块链网络提交的转账请求后, 区 块链网络中的任意一个节点 将转账请求发送至中转分片或者中转节点, 由中转 节点或者中转分片中的任意一个节点 将转账请求提交至该账户对应的账户地址 所属的分片, 以便于后续执行转账交易。 0064 基于上述, 在步骤S201中所述第一分片接收到的数据转移请求可以是账户 直接 发送的。

41、第一分片中的, 也可以是区块链网络中中转分片或者中转节点发送 到第一分片中 的。 0065 在一个实施例中, 步骤S201中所述数据转移请求中可包括转出方账户、 转 入方账 户以及待转移数据量, 该数据转移请求是用于指示从转出方账户中扣除 待转移数据量, 并 向转入方账户中增加所述待转移数据量。 0066 步骤S202、 根据数据转移请求从转出方账户中扣除待转移数据量。 0067 应当理解的, 如果一个用户想要在区块链网络中进行数据转移, 需要预先 在区块 链网络中创建一个账户; 区块链网络可以为用户分配一个私钥和公钥, 并且可以根据为每 个账户生成的公钥和私钥生成账户地址; 用户保存私钥, 。

42、区 块链网络保存用户的私钥对应 的公钥。 在数据转移过程中, 用户可以采用私钥 对其发送到区块链网络的请求进行数字签 名, 区块链网络采用该用户对应的公 钥对数据签名进行验证, 验证通过后区块链网络执行 说明书 6/17 页 10 CN 111144866 A 10 相应的请求。 其中, 采用 私钥对请求进行数据签名的方式可以是: 采用数字摘要技术将请 求变成规定长 度的字符串(也称为数字摘要), 然后采用用户的私钥对数字摘要进行加密 处理 得到数字签名。 0068 基于上述描述, 为了保证数据转移的安全性, 步骤S201中发送数据转移请 求的用 户也可以采用其对应的私钥对数据转移请求进行数据。

43、签名, 如此一来, 当第一分片接收到 数据转移请求之后, 执行步骤S202之前, 还需要: 对数据转 移请求进行数字签名验证; 如果 验证通过, 则执行步骤S202; 如果验证不通过, 则可以不执行步骤S202, 并可以返回数字签 名错误的结果。 0069 在区块链网络中, 每个账户对应的账户地址中存储了该账户所拥有数据资 产, 在 步骤S202中对数据转移请求验证通过后, 从转出方账户所拥有的数据资 产中扣除待转移 数据量。 0070 应当理解的, 在区块链网络中有些数据转移需要收取一定的奖励数据量或 称为 手续费, 但是有些数据转移不需要收取奖励数据量, 因此, 本发明实施例 中第一分片还。

44、可 以执行: 根据数据转移策略判断转移所述待转移数据量是否需 要支付奖励数据; 若需要, 则从转出方账户中扣除所述奖励数据量。 在一个实 施例中, 数据转移策略可以是依据数据 转移请求中的转出方账户和转入方账户 是否属于同一分片确定的, 比如数据转移策略可 以为: 在同一个分片中进行数 据转移不需要收取奖励数据。 比如数据转移请求中包括的转 出方账户和转入方 账户所属分片相同, 则此次转移待转移数据量时不需要支付奖励数据。 0071 在其他实施例中, 数据转移策略可以是依据待转移数据量的多少确定的, 比如数 据转移策略可以为: 如果需要转移的待转移数据量小于数据量阈值, 则 不收取奖励数据。 。

45、所述数据量阈值可以是区块链网络设置的, 可以为任意数值。 应当理解的, 上述只是本发 明实施例列举的两种确定数据转移策略的可行方式, 在实际应用中, 可以根据是需求依据 其他方式设置数据转移策略, 比如依据待 转移数据所述的数据类型; 或者依据发起所述数 据转移请求的账户等等。 0072 步骤S203、 生成跨分片转移请求, 并将跨分片转移请求发送至第二分片, 以使得 第二分片根据跨分片转移请求向转入方账户中增加待转移数据量。 0073 基于前述可知, 由于转出方账户属于第一分片, 转入方账户属于第二分片, 所以 从转出方账户扣除待转移数据量的操作应该由第一分片执行, 具体可由第 一分片中的任。

46、 意一个节点设备执行; 而向转入方账户中增加待转移数据量的操 作应该由第二分片执行, 具体可由第二分片中的任意一个节点设备执行。 因此, 在第一分片完成了扣除待转移数据 量的操作后, 应该通知第二分片可以执行向 转入方账户中增加待转移数据量的操作。 0074 可选的, 第一分片可以生成跨分片转移请求, 并将跨分片转移请求发送至 第二分 片, 以使得第二分片根据跨分片转移请求向转入方账户中增加转移数据 量。 0075 在一个实施例中, 第一分片中可包括第一共识节点, 第一分片执行步骤S202 之 前, 还可以执行: 控制所述第一共识节点将所述数据转移请求打包到第一区 块中, 并对所 述第一区块进。

47、行共识认证; 在检测到对所述第一区块的共识认证 通过后, 执行从所述转出 方账户中扣除所述待转移数据量的步骤。 其中, 第一 共识节点对第一区块进行共识认证的 方式与现有的区块链网络中共识节点对区 块进行验证的方法相同, 在此不再赘述。 0076 在一个实施例中, 在第一分片执行了步骤S202之后, 可以将从所述转出方 账户扣 说明书 7/17 页 11 CN 111144866 A 11 除所述待转移数据量作为数据转移请求对应的执行结果, 并将执行结果 写入第一区块中; 第一区块区块链网络广播第一区块, 以使得区块链网络中每 个分片都接收到第一区块并 将第一区块添加至区块链中。 0077 在。

48、一个实施例中, 第二分片在接收到跨分片转移请求后, 需要对跨分片转 移请求 验证, 以确定是否第一分片真的已经完成了从转出方账户扣除待转移数 据量的步骤; 如果 验证通过, 则表明第一分片确实已经完成了上述步骤, 第二 分片可以执行向转入方账户增 加待转移数据量的步骤; 如果验证不通过, 则可 能表明第一分片并未完成上述步骤, 则第 二分片可不执行向转入方账户增加转 移数据量的步骤。 0078 可选的, 为了第二分片方便对第一分片是否真的已经完成了从转出方账户 扣除 待转移数据量的步骤, 第一分片可以在跨分片转移请求中携带一些用于证 明已执行扣除 待转移数据量的操作的证明数据, 比如所述证明数。

49、据可以是数据 转移请求所在第一区块 的出块证明。 具体实现中: 第一分片生成所述跨分片转 移请求对应的出块证明; 将所述出 块证明携带在所述跨分片转移请求中发送至 所述第二分片, 用于指示所述第二分片基于 所述出块证明对所述跨分片转移请 求进行验证, 并在验证通过后向所述转入方账户中增 加所述待转移数据量。 0079 应当理解的, 在区块链网络中一笔交易被打包进区块并且该区块被添加到 区块 链中之后, 表明该交易被执行并且该交易不会被篡改。 基于此, 第二分片 如果基于出块证 明对跨分片转移请求验证通过, 则可以执行向转入方账户中增 加待转移数据量的步骤。 0080 本发明实施例中, 将区块链。

50、网络划分为多个分片, 每个分片之间相互联系 并且独 立工作, 如果区块链网络的多个分片包括第一分片和第二分片, 第一分 片中包括转出方账 户, 第二分片中包括转入方账户。 当第一分片接收到数据转 移请求时, 根据数据转移请求 从转出方账户中扣除待转移数据量; 并生成跨分 片转移请求, 将跨分片转移请求发送至第 二分片, 以指示第二分片基于跨分片 转移请求向转入方账户增加待转移数据量。 在上述数 据转移过程中, 由于第一 分片中只包括转出方账户不包括转入方账户, 因此, 第一分片只 负责执行扣除 待转移数据量的步骤, 由第二分片负责执行向转入方账户增加待转移数据 量的 步骤。 可见, 待数据量转。

展开阅读全文
内容关键字: 数据 转移 方法 装置 节点 设备 存储 介质
关于本文
本文标题:数据转移方法、装置、节点设备及存储介质.pdf
链接地址:https://www.zhuanlichaxun.net/pdf/10642775.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1