CN111144866A - 数据转移方法、装置、节点设备及存储介质 - Google Patents

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

Info

Publication number
CN111144866A
CN111144866A CN201911370868.XA CN201911370868A CN111144866A CN 111144866 A CN111144866 A CN 111144866A CN 201911370868 A CN201911370868 A CN 201911370868A CN 111144866 A CN111144866 A CN 111144866A
Authority
CN
China
Prior art keywords
fragment
transfer
account
data
transfer request
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.)
Granted
Application number
CN201911370868.XA
Other languages
English (en)
Other versions
CN111144866B (zh
Inventor
刘攀
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201911370868.XA priority Critical patent/CN111144866B/zh
Publication of CN111144866A publication Critical patent/CN111144866A/zh
Application granted granted Critical
Publication of CN111144866B publication Critical patent/CN111144866B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/08Payment architectures
    • G06Q20/10Payment architectures specially adapted for electronic funds transfer [EFT] systems; specially adapted for home banking systems
    • G06Q20/102Bill distribution or payments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/278Data partitioning, e.g. horizontal or vertical partitioning

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Theoretical Computer Science (AREA)
  • Finance (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

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

Description

数据转移方法、装置、节点设备及存储介质
技术领域
本申请涉及区块链技术领域,尤其涉及一种数据转移方法、装置、节点设 备及存储介质。
背景技术
随着区块链技术的发展,区块链网络得到越来越多的应用。在区块链网络 中,任何一笔交易都是满足原子性的,以转账交易为例,比如用户甲向用户乙 转账,转账数据量为X,则该转账交易中包括两个步骤:第一步骤是从用户甲 的账户中扣除X个数据量;第二步骤是向用户乙的账户中增加X个数据量。在 上述两个步骤均执行完成后,该转账交易才算是被执行完成。
在这种执行交易的方法中,为了保证转移的安全性,需要等待第一步骤执 行完成后,才启动执行第二步骤。如此一来,可能会降低区块链网络执行交易 的效率和区块链网络的吞吐量。因此,在区块链技术领域中,如何成为当今研 究的热点问题。
发明内容
本发明实施例提供了一种数据转移方法、装置、节点设备及存储介质,可 以提高区块链网络的吞吐量。
一方面,本发明实施例提供了一种数据转移方法,
应用于区块链网络,所述区块链网络包括多个分片,每个分片包括至少一 个节点,所述数据转移方法由第一分片包括的任意一个节点执行,所述第一分 片为所述多个分片中的任意一个,所述方法包括:
接收数据转移请求,所述数据转移请求包括待转移数据量、转出方账户和 转入方账户,所述转出方账户属于第一分片,所述转入方账户属于第二分片, 所述第二分片为所述多个分片中除所述第一分片之外的任意一个;
根据所述数据转移请求从所述转出方账户中扣除待转移数据量;
生成跨分片转移请求,并将所述跨分片转移请求发送至所述第二分片,以 使所述第二分片根据所述跨分片转移请求向所述转入方账户中增加所述待转移 数据量。
一方面,本发明实施例提供了另一种数据转移方法
应用于区块链网络中,所述区块链网络包括多个分片,每个分片至少包括 一个节点,所述多个分片中包括第一分片和第二分片,所述第一分片包括转出 方账户,所述第二分片包括转入方账户;所述数据转移方法由所述第二分片包 括的任意一个节点执行,所述方法包括:
接收跨分片转移请求,所述跨分片转移请求包括转入方账户和待转移数据 量,所述跨分片转移请求是所述第一分片在接收到数据转移请求并根据所述数 据转移请求从所述转出方账户扣除所述待转移数据量后生成并发送的;
根据所述跨分片转移请求向所述转入方账户中增加所述待转移数据量。
一方面,本发明实施例提供了一种数据转移装置,应用于区块链网络,所 述区块链网络包括多个分片,每个分片包括至少一个节点,所述数据转移装置 包括:
接收单元,用于接收数据转移请求,所述数据转移请求包括待转移数据量、 转出方账户和转入方账户,所述转出方账户属于第一分片,所述转入方账户属 于第二分片,所述第二分片为所述多个分片中除所述第一分片之外的任意一个;
处理单元,用于根据所述数据转移请求从所述转出方账户中扣除待转移数 据量;
生成单元,用于生成跨分片转移请求;
发送单元,用于将所述跨分片转移请求发送至所述第二分片,以使所述第 二分片根据所述跨分片转移请求向所述转入方账户中增加所述待转移数据量。
一方面,本发明实施例还提供了另一种数据转移装置,应用于区块链网络, 所述区块链网络包括多个分片,每个分片包括至少一个节点,所述多个分片中 包括第一分片和第二分片,所述第一分片包括转出方账户,所述第二分片包括 转入方账户;所述数据转移装置包括:
接收单元,用于接收跨分片转移请求,所述跨分片转移请求包括转入方账 户和待转移数据量,所述跨分片转移请求是所述第一分片在接收到数据转移请 求并根据所述数据转移请求从所述转出方账户扣除所述待转移数据量后生成并 发送的;
处理单元,用于根据所述跨分片转移请求向所述转入方账户中增加所述待 转移数据量。
一方面,本发明实施例提供了一种节点设备,所述节点包括:
处理器,适于实现一条或多条指令;以及,
计算机存储介质,所述计算机存储介质存储有一条或多条指令,所述一条 或多条指令适于由所述处理器加载并执行如下步骤:
接收数据转移请求,所述数据转移请求包括待转移数据量、转出方账户和 转入方账户,所述转出方账户属于第一分片,所述转入方账户属于第二分片, 所述第二分片为所述多个分片中除所述第一分片之外的任意一个;
根据所述数据转移请求从所述转出方账户中扣除待转移数据量;
生成跨分片转移请求,并将所述跨分片转移请求发送至所述第二分片,以 使所述第二分片根据所述跨分片转移请求向所述转入方账户中增加所述待转移 数据量。
或者,所述一条或多条指令适于由所述处理器加载并执行如下步骤:
接收跨分片转移请求,所述跨分片转移请求包括转入方账户和待转移数据 量,所述跨分片转移请求是所述第一分片在接收到数据转移请求并根据所述数 据转移请求从所述转出方账户扣除所述待转移数据量后生成并发送的;
根据所述跨分片转移请求向所述转入方账户中增加所述待转移数据量。
一方面,本发明实施例提供了一种计算机存储介质,其特征在于,所述计 算机存储介质中存储有计算机程序指令,所述计算机程序指令被处理器执行时, 用于执行如上述的任意一种数据转移方法。
本发明实施例中,将区块链网络划分为多个分片,每个分片之间相互联系 并且独立工作,如果区块链网络的多个分片包括第一分片和第二分片,第一分 片中包括转出方账户,第二分片中包括转入方账户。当第一分片接收到数据转 移请求时,根据数据转移请求从转出方账户中扣除待转移数据量;并生成跨分 片转移请求,将跨分片转移请求发送至第二分片,以指示第二分片基于跨分片 转移请求向转入方账户增加待转移数据量。在上述数据转移过程中,由于第一 分片中只包括转出方账户不包括转入方账户,因此,第一分片只执行扣除待转 移数据量的步骤,由第二分片执行向转入方账户增加待转移数据量的步骤,可 见,数据量转出和转入是由两个分片分开的异步执行的,如此一来第一分片不 必等待第二分片执行了数据转入的步骤之后再处理新的数据转出的步骤,第一 分片可以不断处理数据量转出的步骤,增加了区块链网络的吞吐量。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要 使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实 施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以 根据这些附图获得其他的附图。
图1是本发明实施例提供的一种数据转移系统的结构示意图;
图2是本发明实施例提供的一种数据转移方法的流程示意图;
图3是本发明实施例提供的一种数据转移方法的流程示意图;
图4是本发明实施例提供的一种数据转移方法的流程示意图;
图5是本发明实施例提供的一种跨分片数据转移的示意图;
图6是本发明实施例提供的一种数据转移装置的结构示意图;
图7是本发明实施例提供的一种数据转移装置的结构示意图;
图8是本发明实施例提供的一种节点设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清 楚、完整地描述。
本发明实施例提供了一种数据转移方案,可以实现将区块链网络中的数据 转移交易的转出操作和转入操作异步执行,有效了增加了区块链网络的吞吐量。 所述数据转移方案应用于区块链网络中,所述区块链网络被划分为多个分片, 每个分片至少包括一个节点,每个分片之间保持并且独立工作,在相同时间内, 多个分片可以同时并行执行交易,提高了区块链网络的交易执行效率。具体实 现中,本发明实施例提供的数据转移方案可如下:假设区块链网络的多个分片 中包括第一分片和第二分片,转出方账户属于第一分片,转入方账户属于第二 分片;第一分片接收数据转移请求后,执行转出操作,也即根据数据转移请求 从转出方账户中扣除待转移数据量;然后,第一分片通知第二分片执行转入操作,由第二分片向转入方账户中增加待转移数据量。
基于上述的数据转移方案,本发明实施例提供了一种数据转移系统。参考 图1所示,为本发明实施例提供的一种数据转移系统的结构示意图,图1所述 的数据转移系统中可包括区块链网络101和至少一个用户终端102,所述用户终 端102是区块链网络的用户所使用的终端设备,可以用于与区块链进行交互的 终端设备,或者用户终端102也可以是区块链网络中的节点设备(在图1中未 示出)区块链网络101中至少包括一个节点设备103。
在一个实施例中,区块链网络101可以理解为一个数据共享系统,可以用 于进行节点设备之间数据共享,区块链网络101中包括的多个节点设备在进行 正常工作时可以接收到交易数据,并基于接收到的交易数据维护区块链10网络 1内的共享数据。为了保证区块链网络内节点设备之间互通,每个节点设备之间 可以存在连接,节点设备之间通过该连接进行数据传输。例如,当区块链网络 101中的任意节点设备接收到交易数据时,区块链网络101中的其他节点设备便 根据共识算法获取该交易数据,将该交易数据作为共享数据中的数据进行存储, 使得区块链网络中全部节点设备存储的数据均一致。
区块链网络101中的每个节点设备均存储一条相同的区块链,区块链由多 个区块组成,每个区块中可包括区块头和区块主体,区块头中存储有交易数据 特征值、版本号、时间戳和难度值等,区块主体中存储交易数据。当区块链网 络中的任意一个节点设备接收到交易数据时,对交易数据进行验证,验证完成 后将该交易数据存入交易池中。当生成区块时,从交易池中选择一定数量的交 易数据进行打包、经过其他节点设备对新生成区块进行验证后,将该新生成区 块添加至区块链中。
应当理解的,由于区块链网络中每秒处理的交易数量是有限的,通常情况 下,可以通过对区块链网络进行扩容来提高区块链网络的吞吐量。所谓扩容, 本意是可以通过将数据库拆开小段,改变网络内容各步骤之间的验证方式实现 分片,达到增加吞吐量的目的。目前分片技术是实现扩容的常用技术之一。
所谓分片,是一种基于数据库分成若干片段的传统概念扩容技术,它将数 据库分割成多个碎片并将这些碎片放置在不同的服务器器上。在区块链网络中, 所述分片是指将区块链网络分成多个子网络,每个子网络称为一个分片。区块 链网络进行分片后,区块链网络中的交易将被分成不同的碎片,由不同分片执 行。因此,每个分片只需要处理一小部分输入的交易,并且通过与区块链网络 上的其他分片并行处理就能完成大量的验证工作。基于此,将区块链网络划分 为多个分片会使得更多的交易同时被处理和验证,从而提高了区块链网络的吞 吐量。
在图1所示的数据转移系统中,区块链网络101可以被划分为多个分片如 图1中区块链网络101可包括分片0到分片n-1,n为大于1的正整数。每个分 片中可包括至少一个节点,每个分片之间保持并独立工作,相同时间内,多个 分片同时并行执行交易,可以提高区块链网络的吞吐量。
应当理解的,区块链网络101中可包括多个账户,每个账户对应一个用于 存储相应账户的数据的账户地址,此处所谓账户的数据可以包括账户的电子资 源数据等。由于区块链网络101被划分为多个分片,区块链网络101中的账户 地址也需要划分到相应的分片中。账户地址是基于每个账户所用于的公钥和私 钥生成的,账户地址具有固定长度,通常是32字节,比如账户地址可以为 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa。可选的,将每个账户地址划分到不 同分片的实施方式可以为:将账户地址的前预设数量个字节对区块链网络101 中分片总数量进行取模运算,根据运算结果确定账户地址所属的分片。其中, 预设数量可以为1,2或者其他任意数,在不同的区块链网络中,所述预设数量可 以依据不同的分片总数量取不同的值,本发明实施例中不做具体限定。
账户地址被划分到相应的分片也即账户被换划分到相应的分片,如此一来, 将会出现数据转移交易被跨分片执行的情况。假设在一笔数据转移交易中,转 出方账户A向转入方账户B支付一笔数额为x的资产,如果转出方账户A所属 分片为第一分片,转入方账户B所属分片为第二分片,第一分片和第二分片为 区块链网络101中的任意两个不同分片,这样就涉及到跨分片交易的问题。首 先,需要在第一分片中完成从转出方账户A扣款的操作,然后再携带一个扣款 完成的证明指示第二分片进行向转入方账户B增加x的操作。
在图1所示的数据转移系统中,区块链网络中101的第一分片和第二分片 可用于执行上述数据转移方案,以实现区块链网络中的数据转移交易的转出操 作和转入操作异步执行,有效了增加了区块链网络的吞吐量。具体的执行流程 将在后面的实施例中详细描述。
基于上述的数据转移系统,本发明实施例提供了一种数据转移方法,参考 图2,为本发明实施例提供的一种数据转移方法的流程示意图。图2所示的数据 转移方法可以应用于区块链网络中,所述区块链网络被划分为多个分片,每个 分片可至少包括一个节点,多个分片中可包括第一分片和第二分片,所述第一 分片和所述第二分片可以是多个分片中的任意两个不相同的分片,第一分片中 包括转出方账户,第二分片中包括转入方账户。图2所示的数据转移方法可由 第一分片中的任意一个节点设备执行,图2所示的数据转移方法可包括如下步 骤:
步骤S201、接收数据转移请求,数据转移请求包括待转移数据量、转出方 账户和转入方账户。
由前述可知,为了使得区块链网络能够处理更多的交易,将区块链网络划 分为多个分片,这些分片中包括的节点数量可以相同也可以不同。可选的,可 以依据分片划分规则对区块链网络进行划分处理得到多个分片。
在一个实施例中,所述分片划分规则可以包括网络分片。所谓网络分片是 最基础的一种分片方式,就是将整个区块链网络划分成多个区块链子网络,每 个区块链子网络就是一个分片。可选的,在网络分片机制下,由于将区块链网 络分片后,多个分片并行处理交易,提高了区块链网络的并发度。每个分片处 理的交易之间没有冗余或者只有较少的冗余,这样一来,很可能出现一个分片 中的处理结果将决定整个区块链网络的最终处理结果。因此,如果一个分片中 的大量节点被一些人控制,那么这些被控制的大量节点便可以左右这个分片的 处理结果,从而威胁到整个区块链网络的安全性。基于此,在网络分片机制下, 需要确定将哪些节点划分到一个分片中,从而避免上述情况出现。
作为一种可行的实施方式,在网络分片机制下,可以利用可验证随机函数 随机选取区块链网络中的哪些节点组成一个分片,从而得到区块链网络的多个 分片。其中,所述可验证随机函数可以包括一种非对称加密算法中的哈希函数。 在其他可选的方式中,也可以采用其他方式从区块链网络中随机选取节点划分 分片,本发明实施例中不做具体限定。
作为一种可行的实施方式,在网络分片机制下,还可以依据等分规则将区 块链网络划分为多个分片。具体实现中,获取区块链网络包括的节点总数量; 依据等分规则将区块链网络中的节点进行划分处理,得到n个分片(n为大于1 的整数),每个分片中包括的节点数量相同。例如,区块链网络中的节点总数量 为30,则按照数据分片划分规则,可以包括以下几种分片方案:将30个节点划 分得到6个分片,每个分片中包括5个节点;或者,将30个节点划分得到5个 分片,每个分片中包括6个节点;再或者,将30个节点划分得到3个分片,每 个分片包括10个节点。由前述可知,每个分片中包括的节点数量越多,分片中 数据被篡改的可能性越小,区块链网络也就越安全。因此,在实际应用中,在 按照上述分片划分规则对区块链网络进行分片划分时,可以选择划分后每个分 片包括的节点数量最多的分片方案作为最优的分片方案。
一个实施例中,所述分片划分机制还可以包括交易分片。交易分片是在网 络分片的基础上进行的,也即交易分片的前提是先进行网络分片,交易分片涉 及到的问题是哪些交易应该按照特定的是属性被分配到哪些分片中。对于交易 分片可采用一些常用的交易分片方法比如基于账户系统进行交易分片、基于 UTXO的账本系统进行交易分片等等,具体实施方式本发明实施例中不再赘述。
在其他实施例中,所述分片划分机制还可以包括状态分片。状态分片的关 键是将区块链网络的整个存储区分开,让不同的分片存储不同的部分,每个节 点只负责托管自己所在分片的数据,而不是存储完整的区块链状态。
由前述可知,在基于上述的分片划分规则将区块链网络划分为多个分片后, 还可以将每个节点对应账户的账户地址进行分片,也就是说将区块链网络中的 多个账户地址划分到不同的分片中。可选的,对账户地址进行分片的实施方式 可以为:将账户地址的前预设数量个字节对分片总数量进行取模运算,根据运 算结果确定该账户地址所属分片。
在一个实施例中,在将区块链网络节点和账户地址进行分片后,每个节点 可以获取该节点对应账户的账户地址所属分片,并给每个可以向该节点对应账 号发送所属分片的通知信息,以通知该节点对应的账户其账户地址被划分为属 于哪个分片中。举例来说,假设区块链中节点A对应账户为账户A,账户A对 应的账户地址为账户地址A,经过对区块链网络进行上述分片处理后,节点A 被划分到第一分片,账户A对应的账户地址被划分到第二分片;节点A可以向 账户A输出一个通知信息以通知账户A他的账户地址A被划分为第二分片,后 续账户A可以通过向第二分片提交转账请求来执行转账交易。
在其他实施例中,在将区块链网络节点和账户地址进行分片后,也可以在 区块链网络中设置一个中转分片或者中转节点,该中转分片中存储了每个账户 地址所属的分片,当节点到任意一个账户在区块链网络提交的转账请求后,区 块链网络中的任意一个节点将转账请求发送至中转分片或者中转节点,由中转 节点或者中转分片中的任意一个节点将转账请求提交至该账户对应的账户地址 所属的分片,以便于后续执行转账交易。
基于上述,在步骤S201中所述第一分片接收到的数据转移请求可以是账户 直接发送的第一分片中的,也可以是区块链网络中中转分片或者中转节点发送 到第一分片中的。
在一个实施例中,步骤S201中所述数据转移请求中可包括转出方账户、转 入方账户以及待转移数据量,该数据转移请求是用于指示从转出方账户中扣除 待转移数据量,并向转入方账户中增加所述待转移数据量。
步骤S202、根据数据转移请求从转出方账户中扣除待转移数据量。
应当理解的,如果一个用户想要在区块链网络中进行数据转移,需要预先 在区块链网络中创建一个账户;区块链网络可以为用户分配一个私钥和公钥, 并且可以根据为每个账户生成的公钥和私钥生成账户地址;用户保存私钥,区 块链网络保存用户的私钥对应的公钥。在数据转移过程中,用户可以采用私钥 对其发送到区块链网络的请求进行数字签名,区块链网络采用该用户对应的公 钥对数据签名进行验证,验证通过后区块链网络执行相应的请求。其中,采用 私钥对请求进行数据签名的方式可以是:采用数字摘要技术将请求变成规定长 度的字符串(也称为数字摘要),然后采用用户的私钥对数字摘要进行加密处理 得到数字签名。
基于上述描述,为了保证数据转移的安全性,步骤S201中发送数据转移请 求的用户也可以采用其对应的私钥对数据转移请求进行数据签名,如此一来, 当第一分片接收到数据转移请求之后,执行步骤S202之前,还需要:对数据转 移请求进行数字签名验证;如果验证通过,则执行步骤S202;如果验证不通过, 则可以不执行步骤S202,并可以返回数字签名错误的结果。
在区块链网络中,每个账户对应的账户地址中存储了该账户所拥有数据资 产,在步骤S202中对数据转移请求验证通过后,从转出方账户所拥有的数据资 产中扣除待转移数据量。
应当理解的,在区块链网络中有些数据转移需要收取一定的奖励数据量或 称为手续费,但是有些数据转移不需要收取奖励数据量,因此,本发明实施例 中第一分片还可以执行:根据数据转移策略判断转移所述待转移数据量是否需 要支付奖励数据;若需要,则从转出方账户中扣除所述奖励数据量。在一个实 施例中,数据转移策略可以是依据数据转移请求中的转出方账户和转入方账户 是否属于同一分片确定的,比如数据转移策略可以为:在同一个分片中进行数 据转移不需要收取奖励数据。比如数据转移请求中包括的转出方账户和转入方 账户所属分片相同,则此次转移待转移数据量时不需要支付奖励数据。
在其他实施例中,数据转移策略可以是依据待转移数据量的多少确定的, 比如数据转移策略可以为:如果需要转移的待转移数据量小于数据量阈值,则 不收取奖励数据。所述数据量阈值可以是区块链网络设置的,可以为任意数值。 应当理解的,上述只是本发明实施例列举的两种确定数据转移策略的可行方式, 在实际应用中,可以根据是需求依据其他方式设置数据转移策略,比如依据待 转移数据所述的数据类型;或者依据发起所述数据转移请求的账户等等。
步骤S203、生成跨分片转移请求,并将跨分片转移请求发送至第二分片, 以使得第二分片根据跨分片转移请求向转入方账户中增加待转移数据量。
基于前述可知,由于转出方账户属于第一分片,转入方账户属于第二分片, 所以从转出方账户扣除待转移数据量的操作应该由第一分片执行,具体可由第 一分片中的任意一个节点设备执行;而向转入方账户中增加待转移数据量的操 作应该由第二分片执行,具体可由第二分片中的任意一个节点设备执行。因此, 在第一分片完成了扣除待转移数据量的操作后,应该通知第二分片可以执行向 转入方账户中增加待转移数据量的操作。
可选的,第一分片可以生成跨分片转移请求,并将跨分片转移请求发送至 第二分片,以使得第二分片根据跨分片转移请求向转入方账户中增加转移数据 量。
在一个实施例中,第一分片中可包括第一共识节点,第一分片执行步骤S202 之前,还可以执行:控制所述第一共识节点将所述数据转移请求打包到第一区 块中,并对所述第一区块进行共识认证;在检测到对所述第一区块的共识认证 通过后,执行从所述转出方账户中扣除所述待转移数据量的步骤。其中,第一 共识节点对第一区块进行共识认证的方式与现有的区块链网络中共识节点对区 块进行验证的方法相同,在此不再赘述。
在一个实施例中,在第一分片执行了步骤S202之后,可以将从所述转出方 账户扣除所述待转移数据量作为数据转移请求对应的执行结果,并将执行结果 写入第一区块中;第一区块区块链网络广播第一区块,以使得区块链网络中每 个分片都接收到第一区块并将第一区块添加至区块链中。
在一个实施例中,第二分片在接收到跨分片转移请求后,需要对跨分片转 移请求验证,以确定是否第一分片真的已经完成了从转出方账户扣除待转移数 据量的步骤;如果验证通过,则表明第一分片确实已经完成了上述步骤,第二 分片可以执行向转入方账户增加待转移数据量的步骤;如果验证不通过,则可 能表明第一分片并未完成上述步骤,则第二分片可不执行向转入方账户增加转 移数据量的步骤。
可选的,为了第二分片方便对第一分片是否真的已经完成了从转出方账户 扣除待转移数据量的步骤,第一分片可以在跨分片转移请求中携带一些用于证 明已执行扣除待转移数据量的操作的证明数据,比如所述证明数据可以是数据 转移请求所在第一区块的出块证明。具体实现中:第一分片生成所述跨分片转 移请求对应的出块证明;将所述出块证明携带在所述跨分片转移请求中发送至 所述第二分片,用于指示所述第二分片基于所述出块证明对所述跨分片转移请 求进行验证,并在验证通过后向所述转入方账户中增加所述待转移数据量。
应当理解的,在区块链网络中一笔交易被打包进区块并且该区块被添加到 区块链中之后,表明该交易被执行并且该交易不会被篡改。基于此,第二分片 如果基于出块证明对跨分片转移请求验证通过,则可以执行向转入方账户中增 加待转移数据量的步骤。
本发明实施例中,将区块链网络划分为多个分片,每个分片之间相互联系 并且独立工作,如果区块链网络的多个分片包括第一分片和第二分片,第一分 片中包括转出方账户,第二分片中包括转入方账户。当第一分片接收到数据转 移请求时,根据数据转移请求从转出方账户中扣除待转移数据量;并生成跨分 片转移请求,将跨分片转移请求发送至第二分片,以指示第二分片基于跨分片 转移请求向转入方账户增加待转移数据量。在上述数据转移过程中,由于第一 分片中只包括转出方账户不包括转入方账户,因此,第一分片只负责执行扣除 待转移数据量的步骤,由第二分片负责执行向转入方账户增加待转移数据量的 步骤。可见,待数据量转出和转入是由两个分片分开的异步执行的,如此一来 第一分片不必等待第二分片执行了数据转入的步骤之后再处理新的数据转出的 步骤,第一分片可以不断处理数据量转出的步骤,增加了区块链网络的吞吐量。
基于上述的数据转移方法,本发明实施例还提供了另一种数据转移方法, 参考图3,为本发明实施例提供的另一种数据转移方法的流程示意图。图3所示 的数据转移方法可应用于区块链网络中,所述区块链网络被划分为多个分片, 每个分片可至少包括一个节点,多个分片中可包括第一分片和第二分片,所述 第一分片和所述第二分片可以是多个分片中的任意两个不相同的分片,第一分 片中包括转出方账户,第二分片中包括转入方账户。图3所示的数据转移方法 可由第二分片中的任意一个节点设备执行,图3所示的数据转移方法可包括如 下步骤:
步骤S301、接收跨分片转移请求,跨分片转移请求包括转入方账户和待转 移数据量。
其中,所述跨分片转移请求可以是第一分片发送的,具体地,所述跨分片 转移请求可以是所述第一分片在接收到数据转移请求后并根据数据转移请求从 转出方账户扣除待转移数据量后生成并发送的。可选的,该跨分片转移请求用 于指示第二分片向转入方账户中增加待转移数据量。
在一个实施例中,所述跨分片转移请求中还包括出块证明,所述出块证明 中可以包括数据转移请求所属第一区块在所述第一分片中的目标高度,第二分 片还可以执行:检测是否接收到所述第一分片发送的区块高度为目标高度的第 一区块;若接收到所述第一分片发送的区块高度为目标高度的第一区块,则确 定对所述转移请求验证通过。其中,若第二分片未接收到第一分片发送的区块 高度为目标高度的第一区块,可能表明第一分片还未执行从转出方账户中扣除 待转移数据量的步骤,或者已经执行了从转出方账户中扣除待转移数据量的步 骤的,但是还为向区块链网络广播第一区块,此时为了保证数据转移的安全性, 第二分片可判断该种情况为对所述跨分片转移请求验证不通过,可选择不执行步骤S302。相反地,如果接收到第一分片发送的区块高度为目标高度的第一区 块,则可确定验证通过并执行步骤S302。
在一个实施例中,所述出块证明中除了包括数据转移请求所属第一区块在 所述第一分片中的目标高度外,还可以包括第一分片的标识、区块链网络中分 片的总数量、跨分片转移请求在区块链网络的跨分片转移请求列表中的索引位 置以及梅克尔证明。其中,第一分片的标识用于通知第二分片该跨分片交易是 由哪个分片发送过来的,所述梅克尔证明用于证明第一分片从转出方账户中扣 除了待转移数据量,并该执行结果已被添加至区块中,且这些步骤的完成均是 经过区块链网络认证的,均为合法的。
由前述可知,由于区块链网络中的多个分片可以并行执行多个交易,这样 每个分片不必等待其他分片中与该交易相关的交易执行结束后才执行新的交易, 而是可以不断地处理该分片接收到的交易,由此可知,第一分片在接收到数据 转移请求之前,第一分片或者其他分片可能已经执行完成了多个数据转移请求, 也可能生成了多个跨分片请求。因此,为了第二分片准确地定位到第一分片针 对当前的数据转移请求生成的跨分片请求可以将跨分片请求在跨分片请求列表 中的索引位置携带在出块证明中。并且,第二分片可以根据出块证明中包括的 跨分片转移请求在跨分片请求列表中的索引位置对接收到第一分片的跨分片转 移请求进行验证。具体实现中,可以验证上述两个跨分片转移请求是否相同, 如果相同则表明验证通过可继续执行后续步骤;如果验证不通过,则表明第一 分片发送过来的跨分片转移请求有误或者出块证明有误,可不执行后续步骤。
在一个实施例中,出块证明可以表示为〈s,k,t,p,{hq}>,其中,s表示第一分 片的标识,k表示区块链网络中分片的总数量,t表示第一区块在第一分片中的 目标高度,p表示跨分片转移请求在跨分片转移请求列表中的索引位置,{hq}表 示梅克尔证明。
步骤S302、根据跨分片转移请求向转入方账户中增加待转移数据量。
在一个实施例中,第二分片在接收到第一分片发送的区块高度为目标高度 的第一区块后,第二分片还可以执行:基于所述跨分片梅克尔证明验证所述跨 分片转移请求是否合法;若验证所述跨分片转移请求合法,则执行所述根据所 述跨分片转移请求向所述转入方账户中增加所述待转移数据量的步骤。应当理 解的,基于区块高度和梅克尔证明对跨分片转移请求进行双重验证,可以更为 准确的保证数据转移的安全性。
在一个实施例中,第二分片包括第二共识节点,第二分片基于区块高度和 梅克尔证明对跨分片转移请求验证后,执行步骤S302之前,第二分片还执行: 控制所述第二共识节点将所述数据转移请求打包到第二区块中,并对所述第二 区块进行共识认证;共识认证通过后,向所述转入方账户中增加所述待转移数 据量。
可选的,向所述转入方账户中增加所述待转移数据量之后,可以将所述转 入方账户中增加所述待转移数据量作为所述跨分片转移请求对应的执行结果, 并将所述执行结果写入所述第二区块;向所述区块链网络广播所述第二区块, 以使得所述区块链网络中每个分片接收所述第二区块并将所述第二区块添加至 区块链上。
本发明实施例中,将区块链网络划分为多个分片,每个分片之间相互联系 并且独立工作,如果区块链网络的多个分片包括第一分片和第二分片,第一分 片中包括转出方账户,第二分片中包括转入方账户。当第二分片接收到第一分 片发送的跨分片转移请求时,对跨分片转移请求进行验证,并在验证通过后向 转入方账户中增加待转移数据量,在上述数据转移过程中,跨分片转移请求是 第一分片针对数据转移请求执行了从转出方账户中扣除待转移数据量后发送的, 可见第一分片只负责执行扣除待转移数据量的步骤,由第二分片负责执行向转 入方账户增加待转移数据量的步骤。待数据量转出和转入是由两个分片分开的 异步执行的,如此一来第一分片不必等待第二分片执行了数据转入的步骤之后再处理新的数据转出的步骤,第一分片可以不断处理数据量转出的步骤,增加 了区块链网络的吞吐量。
基于上述的数据转移方法,本发明实施例还提供一种数据转移方法的应用 场景实施例,参考图4,为本发明实施例提供的一种数据转移方法应用的流程示 意图。在图4所示的数据转移应用中假设发起数据转移请求的用户为转账方A, 转出方账户为账户A,账户A对应转出方地址A,数据转移请求为转账交易请 求。图4所示的数据转移方法应用具体可包括如下步骤:
步骤S401、转账方A通过钱包向分片a提交转账交易请求,转账交易包括 转账金额、转出方账户地址A和转入方账户地址;其中钱包可以是安装在转账 方终端中的一个应用,通过该应用转账方可以向区块链网络发起交易请求;
步骤S402、分片a收到转账交易请求后,校验转账交易请求的数据签名是 偶发正确,如果正确,则执行步骤S43;如果不正确,则返回数字签名错误的提 示信息;
步骤S403、分片a校验转账请求交易中包括的转账方地址A是否属于分片 a;如果是,则执行步骤S404;如果不是,则返回转账方地址错误的提示信息;
步骤S404、如果根据数据转移策略判断转移转账金额需要支付手续费,则 分片a校验转账方地址A中的余额是否足够扣除转账金额和手续费。如果足够 扣除,则执行步骤S405;如果不够,则可返回转账方地址余额不足的提示信息;
步骤S405、分片a中共识节点将转账交易请求打包进区块并进行共识;
步骤S406、达成共识后,执行转账交易请求,也即从转账方地址A中扣除 转账金额和手续费;进一步判断转入方地址是否属于分片a;如果是,则向转入 方地址中增加转账金额;如果不是,则执行步骤S407;
步骤S407、分片a将执行结果写入第一区块中并在区块链全网广播;
步骤S408、生成跨分片转账交易请求和出块证明,将出块证明携带在跨分 片转账交易请求中发送给分片b;
步骤S409、分片b接收到跨分片转账请求后,基于出块证明检测是否接收 到分片a中高度为t的区块,如果没有,则将跨分片转账请求放入未验证的缓存 区;如果有,则执行步骤S4010;
步骤S4010、基于出块证明中的梅克尔证明验证跨分片转账请求的合法性如 果校验失败,则丢弃该跨分片转账交易请求;如果校验成功,则执行步骤S4011;
步骤S4011、分片b的共识节点将跨分片转账交易请求打包进第二区块,并 进行共识;
步骤S4012、达成共识后,检查转入方账户地址是否属于分片b,如果不属 于在,则返回执行失败的提示信息;如果属于,则向转入方账户地址中增加转 账金额;
步骤S4013、分片b将执行结果写入区块,并将区块在区块链全网中广播。
经过上述步骤之后,完成了从转出方账户向转入方账户转入转账金额,转 账方A可以通过钱包定期查询区块链分片a和分片b中的转账结果。
在一个实施例中,本发明实施例提供了图5来描述图4所示的转账过程, 在图5中假设上述图4中分片a执行的从转出方账户地址A中扣除转账金额的 操作称为扣款交易,分片b执行的向转入方账户地址中转入转账金额的操作称 为入账交易。也即跨分片转账交易可以包括扣款交易和入账交易两部分来完成, 其中,假设转出方账户地址A属于分片a,转入方账户地址B属于分片b,则转 账交易请求在分片a中执行且执行完成后生成第一区块;跨分片转账交易请求 是分片a生成并发送给分片b,在分片b中执行且执行完成后生成第二区块。
由上述的实施例可知,本发明实施例中跨分片转账的完成是不及时的,是 异步的,处于两个不同的分片的交易地址需要依次完成扣款操作和入账操作, 才算完成完整的交易,这就叫做最终原子性。基于最终原子性,分片a可以不 断地处理交易,不需要等待分片b完成后续的操作,无需任何的同步和锁定, 从而提高区块链网络的吞吐量。
基于上述方法实施例,本发明实施例提供了一种数据转移装置,参考图6, 为本发明实施例提供的一种数据转移装置的结构示意图。图6所述的数据转移 装置可应用于区块链网络中所述区块链网络包括多个分片,每个分片包括至少 一个节点。所述数据转移装置可以是运行于节点设备中的一个计算机程序(包 括程序代码),例如该数据转移装置为一个应用软件;该数据转移装置可以用于 执行本申请实施例提供的方法中的相应步骤。所述数据转移装置运行如下单元:
接收单元601,用于接收数据转移请求,所述数据转移请求包括待转移数据 量、转出方账户和转入方账户,所述转出方账户属于第一分片,所述转入方账 户属于第二分片,所述第二分片为所述多个分片中除所述第一分片之外的任意 一个;
处理单元602,用于根据所述数据转移请求从所述转出方账户中扣除待转移 数据量;
生成单元603,用于生成跨分片转移请求;
发送单元604,用于将所述跨分片转移请求发送至所述第二分片,以使所述 第二分片根据所述跨分片转移请求向所述转入方账户中增加所述待转移数据量。
在一个实施例中,所述区块链网络中包括多个节点和多个账户,每个账户 对应一个用于存储相应账户的数据的账户地址;所述区块链网络按照分片划分 规则被划分为多个分片,每个分片至少包括一个节点;每个账户对应的账户地 址所属分片是根据相应账户地址和所述多个分片的总数量确定的。
在一个实施例中,所述处理单元602还用于:若基于数据转移策略确定转 移所述待转移数据量需要支付奖励数据,则从所述转出方账户中扣除奖励数据 量。
在一个实施例中,所述第一分片包括第一共识节点,所述处理单元602还 用于:控制所述第一共识节点将所述数据转移请求打包到第一区块中,并对所 述第一区块进行共识认证;共识认证通过后,执行从所述转出方账户中扣除所 述待转移数据量的步骤。
在一个实施例中,所述处理单元602还用于:将从所述转出方账户扣除所 述待转移数据量作为所述数据转移请求对应的执行结果,并将所述执行结果写 入所述第一区块;向所述区块链网络广播所述第一区块,以使得所述区块链网 络中每个分片接收所述第一区块并将所述第一区块添加至区块链上。
在一个实施例中,所述生成单元603还用于生成所述跨分片转移请求对应 的出块证明;所述发送单元604还用于将所述出块证明携带在所述跨分片转移 请求中发送至所述第二分片,用于指示所述第二分片基于所述出块证明对所述 跨分片转移请求进行验证,并在验证通过后向所述转入方账户中增加所述待转 移数据量。
根据本发明的一个实施例,图2所示的数据转移方法所涉及各个步骤可以 是由图6所示的数据转移装置中的各个单元来执行的。例如,图2所述的步骤 S201可由图6中所述的数据转移装置中的接收单元601来执行,步骤S202可由 图6中所述的数据转移装置中处理单元602来执行,步骤S203可由图6所示的 数据转移装置中的生成单元603和发送单元604来执行。
根据本发明的另一个实施例,图6示的数据转移装置中的各个单元可以分 别或全部合并为一个或若干个另外的单元来构成,或者其中的某个(些)单元 还可以再拆分为功能上更小的多个单元来构成,这可以实现同样的操作,而不 影响本发明的实施例的技术效果的实现。上述单元是基于逻辑功能划分的,在 实际应用中,一个单元的功能也可以由多个单元来实现,或者多个单元的功能 由一个单元实现。在本发明的其它实施例中,基于数据转移装置也可以包括其 它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多 个单元协作实现。
根据本发明的另一个实施例,可以通过在包括中央处理单元(CPU)、随机 存取存储介质(RAM)、只读存储介质(ROM)等处理元件和存储元件的例如 计算机的通用计算设备上运行能够执行如图2中所示的相应方法所涉及的各步 骤的计算机程序(包括程序代码),来构造如图6中所示的数据转移装置,以及 来实现本发明实施例数据转移方法。所述计算机程序可以记载于例如计算机可 读存储介质上,并通过计算机可读存储介质装载于上述计算设备中,并在其中 运行。
本发明实施例中,将区块链网络划分为多个分片,每个分片之间相互联系 并且独立工作,如果区块链网络的多个分片包括第一分片和第二分片,第一分 片中包括转出方账户,第二分片中包括转入方账户。当第一分片接收到数据转 移请求时,根据数据转移请求从转出方账户中扣除待转移数据量;并生成跨分 片转移请求,将跨分片转移请求发送至第二分片,以指示第二分片基于跨分片 转移请求向转入方账户增加待转移数据量。在上述数据转移过程中,由于第一 分片中只包括转出方账户不包括转入方账户,因此,第一分片只负责执行扣除 待转移数据量的步骤,由第二分片负责执行向转入方账户增加待转移数据量的 步骤。可见,待数据量转出和转入是由两个分片分开的异步执行的,如此一来 第一分片不必等待第二分片执行了数据转入的步骤之后再处理新的数据转出的 步骤,第一分片可以不断处理数据量转出的步骤,增加了区块链网络的吞吐量。
参考图7,为本发明实施例提供的另一种数据转移装置的结构示意图,图7 所示的数据转移装置可应用于区块链网络,所述区块链网络包括多个分片,每 个分片包括至少一个节点,所述多个分片中包括第一分片和第二分片,所述第 一分片包括转出方账户,所述第二分片包括转入方账户。所述数据转移装置可 以是运行于节点设备中的一个计算机程序(包括程序代码),例如该数据转移装 置为一个应用软件;该数据转移装置可以用于执行本申请实施例提供的方法中 的相应步骤。所述数据转移装置运行如下单元:
接收单元701,用于接收跨分片转移请求,所述跨分片转移请求包括转入方 账户和待转移数据量,所述跨分片转移请求是所述第一分片在接收到数据转移 请求并根据所述数据转移请求从所述转出方账户扣除所述待转移数据量后生成 并发送的;
处理单元702,用于根据所述跨分片转移请求向所述转入方账户中增加所述 待转移数据量。
在一个实施例中,所述跨分片转移请求包括出块证明,所述出块证明包括 所述数据转移请求所属第一区块在所述第一分片中的目标高度,所述处理单元 702还用于:若基于所述出块证明检测已接收到所述第一分片发送的区块高度为 目标高度的第一区块,则执行所述根据所述跨分片转移请求向所述转入方账户 中增加所述待转移数据量的步骤。
在一个实施例中,所述出块证明还包括跨分片梅克尔证明,所述接收到所 述第一分片发送的区块高度为目标高度的第一区块后,所述处理单元702还用 于:若基于所述跨分片梅克尔证明验证所述跨分片转移请求合法,则执行所述 根据所述跨分片转移请求向所述转入方账户中增加所述待转移数据量的步骤。
在一个实施例中,所述第二分片包括第二共识节点,所述根据所述跨分片 转移请求向所述转入方账户中增加所述待转移数据量之前,所述处理单元702 还用于:控制所述第二共识节点将所述数据转移请求打包到第二区块中,并对 所述第二区块进行共识认证;共识认证通过后,执行所述根据所述跨分片转移 请求向所述转入方账户中增加所述待转移数据量的步骤。
在一个实施例中,所述根据所述跨分片转移请求向所述转入方账户中增加 所述待转移数据量之后,所述处理单元702还用于:将向所述转入方账户中增 加所述待转移数据量作为所述跨分片转移请求对应的执行结果,并将所述执行 结果写入所述第二区块;向所述区块链网络广播所述第二区块,以使得所述区 块链网络中每个分片接收所述第二区块并将所述第二区块添加至区块链上。
根据本发明的一个实施例,图3所示的数据转移方法所涉及各个步骤可以 是由图7所示的数据转移装置中的各个单元来执行的。例如,图3所述的步骤 S301可由图7中所述的数据转移装置中的接收单元701来执行,步骤S302可由 图7中所述的数据转移装置中处理单元702来执行。
根据本发明的另一个实施例,图7示的数据转移装置中的各个单元可以分 别或全部合并为一个或若干个另外的单元来构成,或者其中的某个(些)单元 还可以再拆分为功能上更小的多个单元来构成,这可以实现同样的操作,而不 影响本发明的实施例的技术效果的实现。上述单元是基于逻辑功能划分的,在 实际应用中,一个单元的功能也可以由多个单元来实现,或者多个单元的功能 由一个单元实现。在本发明的其它实施例中,基于数据转移装置也可以包括其 它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多 个单元协作实现。
根据本发明的另一个实施例,可以通过在包括中央处理单元(CPU)、随机 存取存储介质(RAM)、只读存储介质(ROM)等处理元件和存储元件的例如 计算机的通用计算设备上运行能够执行如图3中所示的相应方法所涉及的各步 骤的计算机程序(包括程序代码),来构造如图7中所示的数据转移装置,以及 来实现本发明实施例数据转移方法。所述计算机程序可以记载于例如计算机可 读存储介质上,并通过计算机可读存储介质装载于上述计算设备中,并在其中 运行。
本发明实施例中,将区块链网络划分为多个分片,每个分片之间相互联系 并且独立工作,如果区块链网络的多个分片包括第一分片和第二分片,第一分 片中包括转出方账户,第二分片中包括转入方账户。当第二分片接收到第一分 片发送的跨分片转移请求时,对跨分片转移请求进行验证,并在验证通过后向 转入方账户中增加待转移数据量,在上述数据转移过程中,跨分片转移请求是 第一分片针对数据转移请求执行了从转出方账户中扣除待转移数据量后发送的, 可见第一分片只负责执行扣除待转移数据量的步骤,由第二分片负责执行向转 入方账户增加待转移数据量的步骤。待数据量转出和转入是由两个分片分开的 异步执行的,如此一来第一分片不必等待第二分片执行了数据转入的步骤之后再处理新的数据转出的步骤,第一分片可以不断处理数据量转出的步骤,增加 了区块链网络的吞吐量。
基于上述的方法实施例以及装置实施例,本发明实施例还提供了一种节点 设备,该节点设备可以是区块链网络中的任意一个节点设备。参考图8,为本发 明实施例提供的一种节点设备的结构示意图,图8所述的节点设备中可至少包 括处理器801、输入接口802、输出接口803以及计算机存储介质804。其中, 处理器801、输入接口802、输出接口803以及计算机存储介质804可通过总线 或其他方式连接。
计算机存储介质804可以存储在节点设备的存储器中,所述计算机存储介 质804用于存储计算机程序,所述计算机程序包括程序指令,所述处理器801 用于执行所述计算机存储介质804存储的程序指令。处理器801(或称CPU (Central Processing Unit,中央处理器))是终端的计算核心以及控制核心,其 适于实现一条或多条指令,具体适于加载并执行一条或多条指令从而实现相应 方法流程或相应功能;在一个实施例中,本发明实施例所述的处理器801可用 于执行:接收数据转移请求,所述数据转移请求包括待转移数据量、转出方账 户和转入方账户,所述转出方账户属于第一分片,所述转入方账户属于第二分 片,所述第二分片为所述多个分片中除所述第一分片之外的任意一个;根据所 述数据转移请求从所述转出方账户中扣除待转移数据量;生成跨分片转移请求, 并将所述跨分片转移请求发送至所述第二分片,以使所述第二分片根据所述跨 分片转移请求向所述转入方账户中增加所述待转移数据量。
在其他实施例中,本发明实施例的所述处理器801还可用于执行:接收跨 分片转移请求,所述跨分片转移请求包括转入方账户和待转移数据量,所述跨 分片转移请求是所述第一分片在接收到数据转移请求并根据所述数据转移请求 从所述转出方账户扣除所述待转移数据量后生成并发送的;根据所述跨分片转 移请求向所述转入方账户中增加所述待转移数据量。
本发明实施例还提供了一种计算机存储介质(Memory),所述计算机存储 介质是节点设备中的记忆设备,用于存放程序和数据。可以理解的是,此处的 计算机存储介质既可以包括终端中的内置存储介质,当然也可以包括终端所支 持的扩展存储介质。计算机存储介质提供存储空间,该存储空间存储了终端的 操作系统。并且,在该存储空间中还存放了适于被处理器801加载并执行的一 条或多条的指令,这些指令可以是一个或一个以上的计算机程序(包括程序代 码)。需要说明的是,此处的计算机存储介质可以是高速RAM存储器,也可以 是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器;可选的 还可以是至少一个位于远离前述处理器的计算机存储介质。
在一个实施例中,可由处理器801加载并执行计算机存储介质中存放的一 条或多条指令,以实现上述有关图2所述的数据转移方法实施例中的方法的相 应步骤,具体实现中,计算机存储介质中的一条或多条指令由处理器801加载 并执行如下步骤:接收数据转移请求,所述数据转移请求包括待转移数据量、 转出方账户和转入方账户,所述转出方账户属于第一分片,所述转入方账户属 于第二分片,所述第二分片为所述多个分片中除所述第一分片之外的任意一个; 根据所述数据转移请求从所述转出方账户中扣除待转移数据量;生成跨分片转 移请求,并将所述跨分片转移请求发送至所述第二分片,以使所述第二分片根 据所述跨分片转移请求向所述转入方账户中增加所述待转移数据量。
在一个实施例中,所述区块链网络中包括多个节点和多个账户,每个账户 对应一个用于存储相应账户的数据的账户地址;所述区块链网络按照分片划分 规则被划分为多个分片,每个分片至少包括一个节点;每个账户对应的账户地 址所属分片是根据相应账户地址和所述多个分片的总数量确定的。
在一个实施例中,所述处理器801还用于执行:若基于数据转移策略确定 转移所述待转移数据量需要支付奖励数据,则从所述转出方账户中扣除奖励数 据量。
在一个实施例中,所述第一分片包括第一共识节点,所述从所述转出方账 户扣除所述待转移数据量之前,所述处理器801还用于执行:控制所述第一共 识节点将所述数据转移请求打包到第一区块中,并对所述第一区块进行共识认 证;共识认证通过后,执行从所述转出方账户中扣除所述待转移数据量的步骤。
在一个实施例中,所述从所述转出方账户扣除所述待转移数据量之后,所 述处理器801还用于执行:将从所述转出方账户扣除所述待转移数据量作为所 述数据转移请求对应的执行结果,并将所述执行结果写入所述第一区块;向所 述区块链网络广播所述第一区块,以使得所述区块链网络中每个分片接收所述 第一区块并将所述第一区块添加至区块链上。
在一个实施例中,所述处理器801还用于执行:生成所述跨分片转移请求 对应的出块证明;将所述出块证明携带在所述跨分片转移请求中发送至所述第 二分片,用于指示所述第二分片基于所述出块证明对所述跨分片转移请求进行 验证,并在验证通过后向所述转入方账户中增加所述待转移数据量。
本发明实施例中,将区块链网络划分为多个分片,每个分片之间相互联系 并且独立工作,如果区块链网络的多个分片包括第一分片和第二分片,第一分 片中包括转出方账户,第二分片中包括转入方账户。当第一分片接收到数据转 移请求时,根据数据转移请求从转出方账户中扣除待转移数据量;并生成跨分 片转移请求,将跨分片转移请求发送至第二分片,以指示第二分片基于跨分片 转移请求向转入方账户增加待转移数据量。在上述数据转移过程中,由于第一 分片中只包括转出方账户不包括转入方账户,因此,第一分片只负责执行扣除 待转移数据量的步骤,由第二分片负责执行向转入方账户增加待转移数据量的 步骤。可见,待数据量转出和转入是由两个分片分开的异步执行的,如此一来 第一分片不必等待第二分片执行了数据转入的步骤之后再处理新的数据转出的 步骤,第一分片可以不断处理数据量转出的步骤,增加了区块链网络的吞吐量。
在其他实施例中,上述计算机存储介质可由处理器801加载并执行计算机 存储介质中存放的一条或多条指令,以实现上述有关图3所述的数据转移方法 实施例中的方法的相应步骤,具体实现中,计算机存储介质中的一条或多条指 令由处理器801加载并执行如下步骤:接收跨分片转移请求,所述跨分片转移 请求包括转入方账户和待转移数据量,所述跨分片转移请求是所述第一分片在 接收到数据转移请求并根据所述数据转移请求从所述转出方账户扣除所述待转 移数据量后生成并发送的;根据所述跨分片转移请求向所述转入方账户中增加 所述待转移数据量。
在一个实施例中,所述跨分片转移请求包括出块证明,所述出块证明包括 所述数据转移请求所属第一区块在所述第一分片中的目标高度,所述处理器801 还用于执行:若基于所述出块证明检测已接收到所述第一分片发送的区块高度 为目标高度的第一区块,则执行所述根据所述跨分片转移请求向所述转入方账 户中增加所述待转移数据量的步骤。
在一个实施例中,所述出块证明还包括跨分片梅克尔证明,所述接收到所 述第一分片发送的区块高度为目标高度的第一区块后,所述处理器801还用于 执行:若基于所述跨分片梅克尔证明验证所述跨分片转移请求合法,则执行所 述根据所述跨分片转移请求向所述转入方账户中增加所述待转移数据量的步骤。
在一个实施例中,所述第二分片包括第二共识节点,所述根据所述跨分片 转移请求向所述转入方账户中增加所述待转移数据量之前,所述处理器801还 用于执行:控制所述第二共识节点将所述数据转移请求打包到第二区块中,并 对所述第二区块进行共识认证;共识认证通过后,执行所述根据所述跨分片转 移请求向所述转入方账户中增加所述待转移数据量的步骤。
在一个实施例中,所述根据所述跨分片转移请求向所述转入方账户中增加 所述待转移数据量之后,所述处理器801还用于执行:将向所述转入方账户中 增加所述待转移数据量作为所述跨分片转移请求对应的执行结果,并将所述执 行结果写入所述第二区块;向所述区块链网络广播所述第二区块,以使得所述 区块链网络中每个分片接收所述第二区块并将所述第二区块添加至区块链上。
本发明实施例中,将区块链网络划分为多个分片,每个分片之间相互联系 并且独立工作,如果区块链网络的多个分片包括第一分片和第二分片,第一分 片中包括转出方账户,第二分片中包括转入方账户。当第二分片接收到第一分 片发送的跨分片转移请求时,对跨分片转移请求进行验证,并在验证通过后向 转入方账户中增加待转移数据量,在上述数据转移过程中,跨分片转移请求是 第一分片针对数据转移请求执行了从转出方账户中扣除待转移数据量后发送的, 可见第一分片只负责执行扣除待转移数据量的步骤,由第二分片负责执行向转 入方账户增加待转移数据量的步骤。待数据量转出和转入是由两个分片分开的 异步执行的,如此一来第一分片不必等待第二分片执行了数据转入的步骤之后再处理新的数据转出的步骤,第一分片可以不断处理数据量转出的步骤,增加 了区块链网络的吞吐量。
以上所揭露的仅为本发明部分实施例而已,当然不能以此来限定本发明之 权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。

Claims (15)

1.一种数据转移方法,其特征在于,应用于区块链网络,所述区块链网络包括多个分片,每个分片包括至少一个节点,所述数据转移方法由第一分片包括的任意一个节点执行,所述第一分片为所述多个分片中的任意一个,所述方法包括:
接收数据转移请求,所述数据转移请求包括待转移数据量、转出方账户和转入方账户,所述转出方账户属于第一分片,所述转入方账户属于第二分片,所述第二分片为所述多个分片中除所述第一分片之外的任意一个;
根据所述数据转移请求从所述转出方账户中扣除待转移数据量;
生成跨分片转移请求,并将所述跨分片转移请求发送至所述第二分片,以使所述第二分片根据所述跨分片转移请求向所述转入方账户中增加所述待转移数据量。
2.如权利要求1所述的方法,其特征在于,所述区块链网络中包括多个节点和多个账户,每个账户对应一个用于存储相应账户的数据的账户地址;所述区块链网络按照分片划分规则被划分为多个分片,每个分片至少包括一个节点;每个账户对应的账户地址所属分片是根据相应账户地址和所述多个分片的总数量确定的。
3.如权利要求1所述的方法,其特征在于,所述生成跨分片转移请求之前,所述方法还包括:
若基于数据转移策略确定转移所述待转移数据量需要支付奖励数据,则从所述转出方账户中扣除奖励数据量。
4.如权利要求1所述的方法,其特征在于,所述第一分片包括第一共识节点,所述从所述转出方账户扣除所述待转移数据量之前,所述方法还包括:
控制所述第一共识节点将所述数据转移请求打包到第一区块中,并对所述第一区块进行共识认证;
共识认证通过后,执行从所述转出方账户中扣除所述待转移数据量的步骤。
5.如权利要求4所述的方法,其特征在于,所述从所述转出方账户扣除所述待转移数据量之后,所述方法还包括:
将从所述转出方账户扣除所述待转移数据量作为所述数据转移请求对应的执行结果,并将所述执行结果写入所述第一区块;
向所述区块链网络广播所述第一区块,以使得所述区块链网络中每个分片接收所述第一区块并将所述第一区块添加至区块链上。
6.如权利要求1所述的方法,其特征在于,所述方法还包括:
生成所述跨分片转移请求对应的出块证明;
将所述出块证明携带在所述跨分片转移请求中发送至所述第二分片,用于指示所述第二分片基于所述出块证明对所述跨分片转移请求进行验证,并在验证通过后向所述转入方账户中增加所述待转移数据量。
7.一种数据转移方法,其特征在于,应用于区块链网络中,所述区块链网络包括多个分片,每个分片至少包括一个节点,所述多个分片中包括第一分片和第二分片,所述第一分片包括转出方账户,所述第二分片包括转入方账户;所述数据转移方法由所述第二分片包括的任意一个节点执行,所述方法包括:
接收跨分片转移请求,所述跨分片转移请求包括转入方账户和待转移数据量,所述跨分片转移请求是所述第一分片在接收到数据转移请求并根据所述数据转移请求从所述转出方账户扣除所述待转移数据量后生成并发送的;
根据所述跨分片转移请求向所述转入方账户中增加所述待转移数据量。
8.如权利要求7所述的方法,其特征在于,所述跨分片转移请求包括出块证明,所述出块证明包括所述数据转移请求所属第一区块在所述第一分片中的目标高度,所述根据所述跨分片转移请求向所述转入方账户中增加所述待转移数据量之前,所述方法还包括:
若基于所述出块证明检测已接收到所述第一分片发送的区块高度为所述目标高度的第一区块,则执行所述根据所述跨分片转移请求向所述转入方账户中增加所述待转移数据量的步骤。
9.如权利要求8所述的方法,其特征在于,所述出块证明还包括跨分片梅克尔证明,所述接收到所述第一分片发送的区块高度为目标高度的第一区块后,所述跨分片转移请求向所述转入方账户中增加所述待转移数据量之前,所述方法还包括:
若基于所述跨分片梅克尔证明验证所述跨分片转移请求合法,则执行所述根据所述跨分片转移请求向所述转入方账户中增加所述待转移数据量的步骤。
10.如权利要求7所述的方法,其特征在于,所述第二分片包括第二共识节点,所述根据所述跨分片转移请求向所述转入方账户中增加所述待转移数据量之前,包括:
控制所述第二共识节点将所述数据转移请求打包到第二区块中,并对所述第二区块进行共识认证;
共识认证通过后,执行所述根据所述跨分片转移请求向所述转入方账户中增加所述待转移数据量的步骤。
11.如权利要求10所述的方法,其特征在于,所述根据所述跨分片转移请求向所述转入方账户中增加所述待转移数据量之后,所述方法还包括:
将向所述转入方账户中增加所述待转移数据量作为所述跨分片转移请求对应的执行结果,并将所述执行结果写入所述第二区块;
向所述区块链网络广播所述第二区块,以使得所述区块链网络中每个分片接收所述第二区块并将所述第二区块添加至区块链上。
12.一种数据转移装置,其特征在于,应用于区块链网络,所述区块链网络包括多个分片,每个分片包括至少一个节点,所述数据转移装置包括:
接收单元,用于接收数据转移请求,所述数据转移请求包括待转移数据量、转出方账户和转入方账户,所述转出方账户属于第一分片,所述转入方账户属于第二分片,所述第二分片为所述多个分片中除所述第一分片之外的任意一个;
处理单元,用于根据所述数据转移请求从所述转出方账户中扣除待转移数据量;
生成单元,用于生成跨分片转移请求;
发送单元,用于将所述跨分片转移请求发送至所述第二分片,以使所述第二分片根据所述跨分片转移请求向所述转入方账户中增加所述待转移数据量。
13.一种数据转移装置,其特征在于,应用于区块链网络,所述区块链网络包括多个分片,每个分片包括至少一个节点,所述多个分片中包括第一分片和第二分片,所述第一分片包括转出方账户,所述第二分片包括转入方账户;所述数据转移装置包括:
接收单元,用于接收跨分片转移请求,所述跨分片转移请求包括转入方账户和待转移数据量,所述跨分片转移请求是所述第一分片在接收到数据转移请求并根据所述数据转移请求从所述转出方账户扣除所述待转移数据量后生成并发送的;
处理单元,用于根据所述跨分片转移请求向所述转入方账户中增加所述待转移数据量。
14.一种节点设备,其特征在于,包括:
处理器,适于实现一条或多条指令;以及
计算机存储介质所述计算机存储介质存储有一条或多条指令,所述一条或多条指令适于由所述处理器加载并执行如权利要求1-6任一项所述的数据转移方法;或者,所述一条或多条指令适于由所述处理器加载并执行如权利要求7-11任一项所述的数据转移方法。
15.一种计算机存储介质,其特征在于,所述计算机存储介质中存储有第一计算机程序指令,所述第一计算机程序指令被处理器执行时,用于执行如权利要求1-6任一项所述的数据转移方法;或者,所述计算机存储介质中存储有第一计算机程序指令,所述第一计算机程序指令被处理器执行时,用于执行如权利要求7-11任一项所述的数据转移方法。
CN201911370868.XA 2019-12-25 2019-12-25 数据转移方法、装置、节点设备及存储介质 Active CN111144866B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911370868.XA CN111144866B (zh) 2019-12-25 2019-12-25 数据转移方法、装置、节点设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911370868.XA CN111144866B (zh) 2019-12-25 2019-12-25 数据转移方法、装置、节点设备及存储介质

Publications (2)

Publication Number Publication Date
CN111144866A true CN111144866A (zh) 2020-05-12
CN111144866B CN111144866B (zh) 2021-04-30

Family

ID=70520595

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911370868.XA Active CN111144866B (zh) 2019-12-25 2019-12-25 数据转移方法、装置、节点设备及存储介质

Country Status (1)

Country Link
CN (1) CN111144866B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109711192A (zh) * 2018-12-24 2019-05-03 众安信息技术服务有限公司 区块链系统构建方法、节点间交易方法及系统
CN112001160A (zh) * 2020-08-27 2020-11-27 中国平安财产保险股份有限公司 数据处理方法、装置、设备及存储介质
CN112184226A (zh) * 2020-09-30 2021-01-05 中国科学院计算技术研究所 一种区块链动态分片方法及系统
CN112235382A (zh) * 2020-09-30 2021-01-15 苏州讯如电子科技有限公司 一种基于区块链分片的交易管理系统及方法
CN112261163A (zh) * 2020-12-21 2021-01-22 支付宝(杭州)信息技术有限公司 一种区块链系统中的状态存储方法及区块链系统、节点
CN112287032A (zh) * 2020-12-21 2021-01-29 支付宝(杭州)信息技术有限公司 一种区块链数据存储方法、装置及区块链节点

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170046526A1 (en) * 2015-08-13 2017-02-16 TD Bank Group System and Method for Implementing Hybrid Public-Private Block-Chain Ledgers
CN108399572A (zh) * 2018-03-22 2018-08-14 深圳市网心科技有限公司 区块链交易处理方法、装置及存储介质
CN108985742A (zh) * 2018-07-19 2018-12-11 深圳市网心科技有限公司 交易处理方法、装置及区块链系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170046526A1 (en) * 2015-08-13 2017-02-16 TD Bank Group System and Method for Implementing Hybrid Public-Private Block-Chain Ledgers
CN108399572A (zh) * 2018-03-22 2018-08-14 深圳市网心科技有限公司 区块链交易处理方法、装置及存储介质
CN108985742A (zh) * 2018-07-19 2018-12-11 深圳市网心科技有限公司 交易处理方法、装置及区块链系统

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109711192A (zh) * 2018-12-24 2019-05-03 众安信息技术服务有限公司 区块链系统构建方法、节点间交易方法及系统
CN112001160A (zh) * 2020-08-27 2020-11-27 中国平安财产保险股份有限公司 数据处理方法、装置、设备及存储介质
CN112001160B (zh) * 2020-08-27 2023-07-28 中国平安财产保险股份有限公司 数据处理方法、装置、设备及存储介质
CN112184226A (zh) * 2020-09-30 2021-01-05 中国科学院计算技术研究所 一种区块链动态分片方法及系统
CN112235382A (zh) * 2020-09-30 2021-01-15 苏州讯如电子科技有限公司 一种基于区块链分片的交易管理系统及方法
CN112235382B (zh) * 2020-09-30 2021-09-10 厦门攸基数据科技有限公司 一种基于区块链分片的交易管理系统及方法
CN112184226B (zh) * 2020-09-30 2023-09-12 中国科学院计算技术研究所 一种区块链动态分片方法及系统
CN112261163A (zh) * 2020-12-21 2021-01-22 支付宝(杭州)信息技术有限公司 一种区块链系统中的状态存储方法及区块链系统、节点
CN112287032A (zh) * 2020-12-21 2021-01-29 支付宝(杭州)信息技术有限公司 一种区块链数据存储方法、装置及区块链节点
CN112261163B (zh) * 2020-12-21 2021-03-12 支付宝(杭州)信息技术有限公司 一种区块链系统中的状态存储方法及区块链系统、节点
CN112287032B (zh) * 2020-12-21 2021-04-20 支付宝(杭州)信息技术有限公司 一种区块链数据存储方法、装置及区块链节点

Also Published As

Publication number Publication date
CN111144866B (zh) 2021-04-30

Similar Documents

Publication Publication Date Title
CN111144866B (zh) 数据转移方法、装置、节点设备及存储介质
US11095432B2 (en) System for processing data based on blockchain and operating method thereof
CN107807951B (zh) 一种区块链生成方法、数据验证方法、节点及系统
CN107657438B (zh) 一种区块链生成方法、数据验证方法、节点及系统
US11228439B2 (en) Scale out blockchain with asynchronized consensus zones
CN108596588B (zh) 一种区块数据的处理方法、装置、计算设备和存储介质
US10067810B2 (en) Performing transactions between application containers
EP3726804A2 (en) Device authentication method, service access control method, device, and non-transitory computer-readable recording medium
WO2018059334A1 (zh) 区块链网络、分支节点、区块链网络应用方法及存储介质
WO2020143431A1 (zh) 记账方法、矿池服务器、终端设备、挖矿节点及矿池
KR20180113140A (ko) 블록체인 기반의 데이터 처리 시스템 및 그 동작 방법
CN112041872A (zh) 在分区区块链网络中维护区块链的区块
KR20200099149A (ko) 낮은 엔트로피 패스워드로 블록체인 트랜잭션을 승인하기 위한 컴퓨터 구현 시스템 및 방법
EP3739538A1 (en) System and method of supporting reflection of transactions between blockchain networks
CN112887160B (zh) 区块链一体机及其多节点部署方法、装置、存储介质
CN110177124B (zh) 基于区块链的身份认证方法及相关设备
CN111143378A (zh) 处理数据的方法及实现该方法的装置
US11791984B2 (en) Local ledger block chain for secure updates
WO2019242508A1 (zh) 区块链系统和应用于区块链系统的路由节点的路由方法
KR102407187B1 (ko) 블록체인 기반 전자 화폐 자동 충전 방법 및 그 시스템
CN112039860B (zh) 一种在联盟链中实现联合共识分片的方法和装置
CN111429122A (zh) 基于dag区块链的数据验证方法、装置和计算机设备
CN113841359A (zh) 用于在区块链网络中传播区块的方法和装置
CN108400875B (zh) 基于键值的授权认证方法、系统、电子设备、存储介质
CN111314066B (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