CN113966602B - 区块链中区块的分布式存储 - Google Patents
区块链中区块的分布式存储 Download PDFInfo
- Publication number
- CN113966602B CN113966602B CN201980097202.3A CN201980097202A CN113966602B CN 113966602 B CN113966602 B CN 113966602B CN 201980097202 A CN201980097202 A CN 201980097202A CN 113966602 B CN113966602 B CN 113966602B
- Authority
- CN
- China
- Prior art keywords
- block
- node
- blockchain
- nodes
- subset
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2379—Updates performed during online database operations; commit processing
-
- 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/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- 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/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
Abstract
一种方法,包括:由第二节点接收要被记录到区块链中的区块的新交易(510);由第二节点基于区块的标识确定第二节点是区块链中用于存储区块的区块管理器的子集中的一个(520);响应于该确定,将区块添加到区块链(530);以及发送区块列表,其中区块列表包括关于区块的信息(540)。
Description
技术领域
本发明涉及区块链,并且更具体地,涉及区块链中区块的分布式存储。
背景技术
区块链已经在各种不同的应用中被利用,并且区块链的使用预计在不久的将来还会增长。区块链可以被视为具有区块的链的公共分类帐,每个区块由几个委托的交易组成,并且当向其追加新的区块时,其可以按时间顺序不断增长。区块链的核心优势是去中心化、透明化、可追溯性、以及防篡改。因此,区块链可以应用于许多领域,诸如金融服务、医疗、物联网(IoT)、软件工程、电子政务和公共服务。
区块链通常提供完全可审计的日志,其包括区块链网络中所完成的每一笔交易,这在许多用例中非常有用。然而,由于这种性质,区块链的可扩展性受到其不断增长的大小的影响。因此,需要改进的方法、装置和计算机程序来利用区块链。
发明内容
根据一些方面,提供了独立权利要求的主题。在从属权利要求中定义了一些实施例。
根据第一方面,提供了一种第一方法,包括:由第二节点接收要被记录到区块链中的区块的新交易;由第二节点基于区块的标识确定第二节点是区块链中用于存储区块的区块管理器的子集中的一个;响应于确定,将区块添加到区块链;以及发送区块列表,其中区块列表包括关于区块的信息。
根据第一方面,第一方法还可以包括从第一节点接收针对区块的副本的请求,以及响应于请求发送区块的副本。
根据第二方面,提供了一种第二方法,包括:由第一节点接收区块列表,区块列表包括关于区块链中的区块的信息;由第一节点基于区块的标识确定第二节点是区块链中存储区块的区块管理器的子集中的一个;以及向第二节点发送针对区块的副本的请求。
根据第一或第二方面,关于区块的信息可以包括区块的标识。
根据第一或第二方面,关于区块的信息可以包括在区块被创建时的节点总数和/或存储区块的区块管理器的数量。
根据第一或第二方面,确定第二节点是区块管理器的子集中的一个还可以基于区块被创建时的节点总数。
根据第一或第二方面,确定第二节点是区块管理器的子集中的一个还可以基于存储区块的区块管理器的数量。
根据第一或第二方面,确定第二节点是区块管理器的子集中的一个可以是使用映射函数来完成的。在一些实施例中,映射函数可以是N_IDi=B_IDk(mod nc-nm)+h,1≤h≤nm,其中N_IDi可以是第i个节点的标识,B_IDk可以是区块的标识,nc可以是区块被创建时的节点总数,并且nm可以是存储区块的区块管理器的数量。
根据本发明的第三方面,提供了一种装置,包括:至少一个处理核、包括计算机程序代码的至少一个存储器,至少一个存储器和计算机程序代码被配置为,利用至少一个处理核,使装置至少执行第一方法。
根据本发明的第四方面,提供了一种装置,包括:至少一个处理核、包括计算机程序代码的至少一个存储器,至少一个存储器和计算机程序代码被配置为,利用至少一个处理核,使装置至少执行第二方法。
根据本发明的第五方面,提供了一种装置,包括用于执行第一方法的部件。根据本发明的第六方面,提供了一种装置,包括用于执行第二方法的部件。
根据本发明的第七方面,提供了一种其上存储有一组计算机可读指令的非瞬态计算机可读介质,该计算机可读指令在由至少一个处理器执行时,使装置至少执行第一方法。
根据本发明的第八方面,提供了一种其上存储有一组计算机可读指令的非瞬态计算机可读介质,该计算机可读指令在由至少一个处理器执行时,使装置至少执行第二方法。
根据本发明的第九方面,提供了一种被配置为执行第一方法的计算机程序。根据本发明的第十方面,提供了一种被配置为执行第二方法的计算机程序。
附图说明
图1示出了根据本发明的至少一些实施例的区块链的示例性架构;
图2示出了根据本发明的至少一些实施例的区块列表的示例;
图3示出了能够支持本发明的至少一些实施例的示例装置;
图4示出了根据本发明的至少一些实施例的示例性过程;
图5示出了根据本发明的至少一些实施例的第一方法的流程图;
图6示出了根据本发明的至少一些实施例的第二方法的流程图。
具体实施方式
区块链的使用可以通过本文描述的过程来改进。更具体地,本发明的实施例提供了用于区块链中区块的分布式存储的过程。例如,区块管理器的子集(但不是全部)可以存储一个区块。所讨论的区块的区块管理器的子集可以基于区块的标识来被标识或定位。此外,还可以利用区块被创建时的节点总数和/或存储区块的区块管理器的数量来标识或定位区块管理器的子集。在本发明的一些实施例中,映射函数可以用于此目的。
区块链越来越多地应用于记录交易,而不依赖于中央实体。区块链网络中资源所有权的改变采取由强密码术保证的区块链交易的形式。响应于相应区块链交易的验证,在区块链交易中提供的信息可以作为新区块存储在区块链中。由节点共享的区块链状态信息可以存储区块链网络中执行的所有交易和历史。区块链技术和分类账的应用使追溯网络中各个节点的独特交易历史成为可能。
可以执行以下步骤以在区块链网络中创建新区块。首先,新交易可以被生成并将其广播到区块链网络中的所有节点。然后,每个节点可以将新交易收集到区块中。可以利用共识机制来选择一个节点,并且当使用共识机制选择节点来创建区块时,所选择的节点可以创建区块并将所创建的区块广播到区块链网络中的所有节点。当接收到所创建的区块时,仅在所创建的区块中的所有交易都是有效的并且尚未作废的情况下,所有节点才可以接受所创建的区块。所有节点可以通过致力于创建区块链中的下一个区块来表达或确认它们对所创建的区块的接受。被接受的所创建区块的散列可用于下一区块。
在本发明的一些实施例中,区块链网络可以包括轻量级节点(诸如,钱包)和完全节点。轻量级节点可以仅保留区块的头部,而不是整个区块。区块的头部可以包括例如前一区块的散列、时间戳、随机数和默克尔(Merkle)根。在本发明的一些实施例中,完全节点可以被称为区块管理器。也就是说,完全节点可能能够存储区块的完整且最新的副本,即,规范区块链可以由完全节点本地存储。
对于轻量级节点,可能难以验证区块中包含的交易。例如,在一些区块链应用中,区块链可以用作存储由区块链网络生成的数据的数据库。然而,轻量级节点维护分布式数据库即使不是不可能,也可能是困难的。另一方面,完全节点可能能够在没有外部引用的情况下自主地验证区块中包含的交易。尽管如此,完全节点(即区块管理器)的硬盘容量可能是有限的,因此一旦区块链的所有区块的大小大于硬盘容量,则完全节点可能无法存储新区块。也就是说,在这种情况下,所讨论的完全节点可能无法向区块链添加新区块。因此,由于完全节点的硬盘容量有限,区块链的发展可能受到限制。
因此,本发明的一些实施例实现了以分布式方式存储区块,以实现负载的分布。因此,本发明的实施例提供了针对各种应用的改进以用于不同领域,诸如金融服务、医学、物联网(IoT)、软件工程、电子政务和公共服务等。
此外,本发明的一些实施例提供了一种用于在存储区块的完全节点(即,区块管理器)之间分配新区块的机制。此外,本发明的一些实施例提供了一种用于轻量级节点的机制,用于确定哪些完全节点存储了感兴趣的特定区块,使得轻量级节点可以标识存储该区块的完全节点,并请求所标识的完全节点中的至少一个节点来提供该区块的副本。因此,仅区块管理器的子集可以存储一个区块,而不必所有区块管理器都存储每个区块。
因此,根据本发明的一些实施例,可以在区块链中采用分布式区块存储方案。分布式区块存储方案可以指其中区块管理器的子集存储特定区块而不是所有区块的方案。分布式区块存储方案还可以采用区块列表。区块列表可以被分布至所有节点,即区块链中的每个节点可以具有区块列表的最新更新版本。区块列表可用于保存关于整个区块链的最新信息,并且每个节点可以使用区块列表来维护区块链的单链结构。因此,区块列表可用于快速查找区块链的区块。
图1示出了根据本发明的至少一些实施例的区块链的示例性架构。在图1中,区块链的第一节点由110表示,区块链的第二节点由120表示,区块链的第三节点由130表示,并且区块链的第四节点由140表示。例如,第一节点110和第三节点130可以是不存储或不能存储区块链的区块的轻量级节点,而第二节点120和第四节点140可以是完全节点,即区块管理器。因此,第二节点120和第四节点140可以存储区块链的区块。然而,应当注意,在本发明的一些实施例中,如果所有节点110、120、130和140都是完全节点,即区块管理器,则可以实现完全分布式区块链网络。
一般而言,节点110、120、130和140可以包括公司、机构和/或用户设备,诸如服务器、台式/平板/膝上型计算机、智能电话、机顶盒或任何其他合适的电子设备。此外,系统可以包括管理员或管理节点、集线器、中继器或其他类型的中间设备,用于将节点110、120、130和140连接到另外的网络或服务,诸如另一分布式或集中式计算系统或云服务。节点110、120、130和140可以以适合的方式相互寻址,例如,它们可以使用网际协议(IP)进行通信。释放到IP网络中、具有接收者地址的消息可以由网络路由到由接收者地址标识的接收者节点。也可以使用其他协议进行通信,因此IP不是可以使用的唯一合适的通信协议。例如,其他点对点网络模型也是合适的。
第二节点120和第四节点140可以包括或连接到区块管理器150。区块管理器150还可以包括或连接到本地区块数据库155。也就是说,例如第二节点120可以包括或连接到本地数据库155。此外,当第二节点120被标识为所讨论的区块的区块管理器时,本地数据库155可以存储该区块。此外,区块列表由160表示。例如,在向区块链添加新区块之后,区块列表160可以被分布至区块链的所有节点。因此,区块链的每个节点都有关于整个区块链的最新信息。也就是说,所有节点110、120、130和140可以具有区块列表160,或者至少可以访问区块列表160。
图2示出了根据本发明的至少一些实施例的区块列表的示例。图2的区块列表260可以对应于图1的区块列表160。区块列表260可以包括与并非整个区块的区块相关的信息,即参数。例如,区块列表260可以包括第一区块头部2201。第一区块头部2201可以与第一区块2101相关联,即,第一区块头部2201可以是第一区块2101的头部。区块列表260还可以包括更多区块头部,例如第k个区块头部220K。区块头部220K可以与第k个区块210K相关联,即,第k个区块头部220K可以是第k个区块210K的头部。
区块头部可以包括关于区块链的区块的信息。因此,区块列表260还可以包括关于区块链的区块的信息。例如,第k个区块头部220K可以包括区块K的标识。区块K的标识可以通过创建顺序来编号,即,在区块K之后添加的新区块的标识可以是K+1。另外地,或者备选地,第k个区块头部220K可以包括在区块K被创建时的节点的总数和/或存储区块K的区块管理器(诸如第二节点120和第四节点140)的数量。
当新区块被添加到区块链时,关于新区块的信息可以被添加到新区块的头部,并且可以通过将新区块的头部添加到区块列表260来更新区块列表260。然后,更新后的区块列表可以被分布至区块链中的所有节点。因此,区块列表260可以有助于维护区块链的单通道结构,从而实现去中心化、透明性、可追溯性和防篡改。
在某些情况下,例如由于硬盘容量有限,区块链的所有节点可能无法存储区块链的所有区块。因此,在本发明的一些实施例中,区块管理器(诸如第二节点120)可以成为某些区块(但不是全部区块)的区块管理器。
在本发明的一些实施例中,可以使用区块K的唯一标识来标识或定位用于区块K的区块管理器的子集。也就是说,可以基于区块K的标识来标识或定位用于区块K的区块管理器的子集。此外,可以基于在区块K被创建时的节点总数和/或存储区块K的区块管理器的数量来标识或定位用于区块K的区块管理器的子集。存储区块K的区块管理器的数量可以对应于存储区块K的区块管理器的子集的大小。
例如,可以利用示例性映射函数。在本发明的一些实施例中,示例性映射函数可以被如下定义。以区块K为例,可以使用示例性映射函数来标识或定位存储区块K的区块管理器的子集
N_IDi=B_IDk(mod nc-nm)+h,1≤h≤nm (1)
其中,N_IDi是参与区块链的第i个节点的标识,B_IDk是区块K的标识,nc是区块K被创建时的节点总数,并且nm是存储区块K的区块管理器的数量。参与区块链的第i个节点的标识N_IDi可以表示参与区块链的所有节点中的第i个节点的流水号。
示例性映射函数提供了各种好处。例如,不管B_IDk有多大,示例性映射函数确保N_IDi≤nc-nm,即,所定位的或所标识的区块管理器的标识总是落入节点的范围内。
此外,示例性映射函数使得区块K的所有区块管理器可以具有不同的标识。由于B_IDk(mod nc-nm)是唯一值,所以针对存储区块nm的区块管理器的数量存在不同的N_IDi值,并且可以通过从1到nm来调整h,来定位或标识区块管理器的子集。例如,如果我们假设B_IDk=1650,nc=60 and nm=8,则示例性映射函数给出子集N_IDi={N39,N40,N41,N42,N43,N44,N45,N46}作为针对区块K的区块管理器的定位或标识的结果。
此外,示例性映射函数使得可能针对区块链的所有节点快速定位或标识针对特定区块(诸如区块K)的区块管理器的子集,从而节省资源,因为节点无需存储这些区块管理器的标识。
图3示出了能够支持本发明的至少一些实施例的示例装置。所图示的是设备300,其可以包括例如,图1的第一节点110或第二节点120。在设备300中包括处理器310,其可以包括例如,单核或多核处理器,其中单核处理器包括一个处理核,而多核处理器包括一个以上的处理核。处理器310通常可以包括控制设备。处理器310可以包括一个以上的处理器。处理核可以包括例如,由ARM控股公司(ARM Holdings)制造的Cortex-A8处理核或由先进微设备公司(Advanced Micro Devices Corporation)生产的Steamroller处理核。处理器310可以包括至少一个高通骁龙(Qualcomm Snapdragon)和/或英特尔原子(Intel Atom)处理器。处理器310可以包括至少一个专用集成电路(ASIC)。处理器310可以包括至少一个现场可编程门阵列(FPGA)。处理器310可以是用于执行设备300中的方法步骤的部件。处理器310可以至少部分地由计算机指令配置以执行动作。
处理器可以包括电路,或者可以被构成为一个或多个电路,该一个或多个电路被配置为执行根据本文描述的实施例的方法的各个阶段。如在本申请中使用的,术语“电路”可以指以下中的一项或多项或所有:(a)仅硬件电路实现方式,诸如仅在模拟和/或数字电路中的实现方式;以及(b)硬件电路和软件的组合,诸如(如果适用的话):(i)(多个)模拟和/或数字硬件电路与软件/固件的组合,以及(ii)具有软件的(多个)硬件处理器的任何部分(包括(多个)数字信号处理器、软件和(多个)存储器,它们一起工作以使装置(诸如,移动电话或服务器)执行各种功能);以及(c)(多个)硬件电路或(多个)处理器,诸如(多个)微处理器或(多个)微处理器的一部分,其需要软件(例如,固件)以供操作,但当不需要其以供操作时,软件可以不存在。
电路的该定义适用于本申请中该术语的所有使用,包括在任何权利要求中。作为另一示例,如本申请中使用的,术语电路还将涵盖仅硬件电路或处理器(或多个处理器),或硬件电路或处理器的一部分,及它的(或它们的)附带软件和/或固件的实现方式。例如并且如果适用于特定权利要求元件,则术语电路还将涵盖用于移动设备的基带集成电路或应用处理器集成电路,或服务器、蜂窝网络设备或另一计算或网络设备中的类似集成电路。
设备300可以包括存储器320。存储器320可以包括随机存取存储器和/或永久存储器。存储器320可以包括至少一个RAM芯片。例如,存储器320可以包括固态、磁、光和/或全息存储器。存储器320可以至少部分地可由处理器310访问。存储器320可以至少部分地包括在处理器310中。存储器320可以是用于存储信息的部件。存储器320可以包括处理器310被配置为执行的计算机指令。当被配置为使处理器310执行某些动作的计算机指令被存储在存储器320中,并且设备300整体被配置为使用来自存储器320的计算机指令在处理器310的指导下运行时,处理器310和/或其至少一个处理核可以被认为被配置为执行所述特定动作。存储器320可以至少部分地包括在处理器310中。存储器320可以至少部分地在设备300外部但可由设备300访问。
设备300可以包括发送器330。设备300可以包括接收器340。发送器330和接收器340可以被配置为分别根据至少一个蜂窝或非蜂窝标准来发送和接收信息。发送器330可以包括一个以上的发送器。接收器340可以包括一个以上的接收器。发送器330和/或接收器340可以被配置为根据如下标准来操作:例如,全球移动通信系统(GSM)、宽带码分多址(WCDMA)、5G、长期演进(LTE)、IS-95、无线局域网(WLAN)、以太网和/或微波接入全球互操作性(WiMAX)。
设备300可以包括近场通信(NFC)收发器350。NFC收发器350可以支持至少一种NFC技术,诸如NFC、蓝牙、Wibree或类似技术。
设备300可以包括用户界面(UI)360。UI 360可以包括显示器、键盘、触摸屏、被布置为通过使设备300振动来向用户发信号的振动器、扬声器和麦克风中的至少一个。用户能够经由UI 360操作设备300,例如接受呼入电话呼叫、发起电话呼叫或视频呼叫、浏览互联网、管理存储在存储器320中或存储在经由发送器330和接收器340或经由NFC收发器350可访问的云上的数字文件,和/或玩游戏。
设备300可以包括或被布置为接受用户标识模块370。用户标识模块370可以包括例如,可安装在设备300中的订户标识模块(SIM)卡。用户标识模块370可以包括标识设备300的用户的订阅的信息。用户标识模块370可以包括密码信息,该密码信息可用于验证设备300的用户的标识和/或促进加密所传送的信息和针对经由设备300实现的通信对设备300的用户进行计费。
处理器310可以配备有发送器,该发送器被布置为经由设备300内部的电导线将信息从处理器310输出到设备300中包括的其他设备。这样的发送器可以包括串行总线发送器,该串行总线发送器被布置为例如经由至少一条电导线将信息输出到存储器320以在其中存储。作为串行总线的备选,发送器可以包括并行总线发送器。同样,处理器310可以包括接收器,该接收器被布置为在处理器310中经由设备300内部的电导线从在设备300中包括的其他设备接收信息。这样的接收器可以包括串行总线接收器,该串行总线接收器被布置为例如,经由至少一个电导线从接收器340接收信息以在处理器310中处理。作为串行总线的备选,接收器可以包括并行总线接收器。
设备300可以包括图3中未示出的其他设备。例如,在设备300包括智能手机的情况下,它可以包括至少一个数码相机。一些设备300可以包括后置相机和前置相机,其中后置相机可用于数字摄影,而前置相机用于视频电话。设备300可以包括被布置为至少部分地认证设备300的用户的指纹传感器。在一些实施例中,设备300缺少上述至少一个设备。例如,一些设备300可以缺少NFC收发器350和/或用户标识模块370。
处理器310、存储器320、发送器330、接收器340、NFC收发器350、UI 360和/或用户标识模块370可以通过设备300内部的电导线以多种不同方式互连。例如,前述设备中的每一个设备可以单独连接到设备300内部的主总线,以允许设备交换信息。然而,如本领域技术人员所理解的,这只是一个示例,并且根据实施例,在不脱离本发明的范围的情况下,可以选择互连至少两个前述设备的各种方式。
图4示出了根据本发明的至少一些实施例的示例性过程。在垂直轴上从左到右布置图1的第一节点110、第二节点120和第三节点130。第一节点110、第二节点120和第三节点130可以是区块链中的参与者。时间从顶部向底部推进。
在示例性过程开始时,在步骤410,第三节点130可以确定存在要被记录到区块链的新交易。在步骤420,第三节点130可以向区块链发送关于新交易的信息,并且因此第二节点120可以接收关于新交易的信息。自然,参与区块链的任何其他节点(诸如第一节点110或第二节点120)也可以执行步骤410和420。
响应于接收到关于要被记录到区块链中的区块的新交易的信息,第二节点120可以在步骤430,基于该区块的标识确定第二节点120是区块链中存储该区块的区块管理器的子集中的一个。区块管理器的子集可以包括存储该区块的区块链的所有区块管理器。因此例如,如果图1的第四节点140(图4中未示出)是可以存储该区块的区块管理器的子集中的一个,则它也可以执行步骤430。
在本发明的一些实施例中,在步骤430的所述确定还可以包括基于区块被创建时的节点总数来确定第二节点120是区块管理器的子集中的一个。备选地或另外地,所述确定第二节点是区块管理器的子集中的一个还可以基于存储区块的区块管理器的数量。例如,在步骤430的所述确定可以包括使用映射函数确定第二节点是区块管理器的子集中的一个。在本发明的一些实施例中,可以使用根据公式(1)的映射函数。
在本发明的一些实施例中,区块K被创建时的节点总数(由nc表示)可以记录在区块链中,或者记录在区块的头部中,因此第二节点120可以取回nc。例如,当新区块被创建时,nc可以从刚刚创建的前一区块或前一区块的头部中找到。由于没有中央机构,加入网络的新节点可以向整个网络广播消息,以通知其他节点该新节点已经加入网络或即将加入网络。因此,在本发明的一些实施例中,区块K被创建时的节点总数可以根据前一nc,即根据刚刚创建的前一区块或前一区块的头部以及在前一区块创建之后加入的节点数量来确定。
此外,在本发明的一些实施例中,存储区块K的区块管理器的数量(nm)可以例如基于节点的总数(nc)来预定义。例如,可以将存储区块K的区块管理器的数量(nm)设置为节点总数(nc)的10%。
如果第二节点120在步骤430确定其属于区块链中应当存储所讨论的区块的区块管理器的子集,并且第二节点120被选择用于使用共识机制创建区块,则第二节点120可以创建包括新交易的新区块。
在步骤440,第二节点120可以响应于该确定将新区块存储(即添加)到区块链。例如,可以将包括新区块的更新后的区块链存储到本地区块数据库155。在步骤440,第二节点120还可以将关于新区块的信息添加到区块列表,诸如区块列表160/260。在一些实施例中,区块列表160/260也可以存储在本地区块数据库155中。
在一些实施例中,关于新区块的信息可以包括新区块的标识。此外,在一些实施例中,关于新区块的信息可以包括新区块被创建时的节点总数和/或存储新区块的区块管理器的数量,即,区块管理器的子集的大小。
在步骤450,第二节点120可以向区块链发送区块列表,该区块列表包括关于新区块的信息。因此,在步骤450,第一节点110和第三节点130可以接收已经由第二节点120更新的区块列表。
在步骤450之后的某个点,第一节点110可以确定它想要具有由第二节点120创建的新区块的副本。第一节点110可以是轻量级节点,因此它可能不具有整个区块链,即,它可能没有关于新区块的信息,但是它可以具有由第二节点120提供的区块列表。备选地,第一节点110可以是完全节点,即区块管理器,但它可以不属于存储了区块的区块管理器的子集。
因此,第一节点110可以在步骤460基于新区块的标识,确定第二节点120是存储新区块的区块链中的区块管理器的子集中的一个。区块管理器的子集可以包括存储区块的区块链的所有区块管理器。也就是说,在步骤460的所述确定可以基于在步骤450接收的区块列表。
在本发明的一些实施例中,在步骤460的所述确定还可以包括基于新区块被创建时的节点总数来确定第二节点120是区块管理器的子集中的一个。备选地或另外地,所述确定第二节点是区块管理器的子集中的一个还可以基于存储新区块的区块管理器的数量,即区块管理器的子集的大小。
例如,在步骤460的所述确定可以包括使用映射函数来确定第二节点120是区块管理器的子集中的一个。在本发明的一些实施例中,可以使用根据公式(1)的映射函数。
在确定第二节点120是存储新区块的区块管理器的子集中的一个之后,第一节点110可以在步骤470发送针对新区块的副本的请求。因此,在步骤470,第二节点120可以接收该请求,并且响应于该请求,在步骤480将新区块的副本发送到第一节点110。因此,第一节点110可以在步骤480接收新区块的副本,从而结束图4的示例性过程。
图5示出了根据至少一些实施例的第一方法的流程图。所图示的第一方法的各阶段可以由第二节点120执行,或者由被配置为控制其功能的控制设备执行,可能当安装在其中时。
第一方法可以包括,在步骤510,由第二节点120接收要被记录到区块链中的区块的新交易。第一方法还可以包括,在步骤520,由第二节点120基于区块的标识,确定第二节点120是区块链中存储区块的区块管理器的子集中的一个。此外,第一方法可以包括,在步骤530,响应于该确定,将区块添加到区块链。最后,第一方法可以包括,在步骤540,发送区块列表,其中区块列表包括关于区块的信息。
图6示出了根据至少一些实施例的第二方法的流程图。所图示的第二方法的各阶段可以由第一节点110执行,或者由被配置为控制其功能的控制设备执行,可能当安装在其中时。
第二方法可以包括,在步骤610,由第一节点110接收区块列表,其中区块列表包括关于区块链中的区块的信息。第二方法还可以包括,在步骤620,由第一节点110基于区块的标识确定第二节点120是存储区块的区块链中的区块管理器的子集中的一个。最后,第二方法可以包括,在步骤630,向第二节点120发送针对区块的副本的请求。
应理解,所公开的本发明的示例实施例不限于本文公开的特定结构、工艺步骤或材料,而是扩展到相关领域的普通技术人员将认识到的其等同形式。还应理解,本文采用的术语仅用于描述特定示例实施例的目的,并不意图是限制性的。
贯穿本说明书,提及一个示例实施例或示例实施例意味着结合示例实施例描述的特定特征、结构或特性被包括在本发明的至少一个示例实施例中。因此,在本说明书的各个地方出现的短语“在一个示例实施例中”或“在示例实施例中”不一定都指代相同的示例实施例。在使用诸如大约或基本上的术语来引用数值的情况下,还公开了确切的数值。
如本文所使用的,为方便起见,可以在公共列表中呈现多个物品、结构元素、组成元素和/或材料。然而,这些列表应被解释为好像列表的每个成员被单独标识为单独且唯一的成员。因此,在没有相反指示的情况下,这种列表的任何个别成员都不应仅基于其在共同组中的呈现而被解释为同一列表的任何其他成员的事实上的等同形式。此外,本发明的各种示例实施例和示例在此可以连同其各种组件的备选方案一起被引用。应理解,这样的示例实施例、示例和备选方案不应被解释为彼此事实上的等同形式,而应被视为本发明的单独的和自主的表示。
在示例性示例实施例中,诸如第一节点110或第二节点120的装置可以包括用于执行上述示例实施例及其任意组合的部件。
在示例性示例实施例中,计算机程序可以被配置为导致根据上述示例实施例及其任意组合的方法。在示例性示例实施例中,实施在非瞬态计算机可读介质上的计算机程序产品可以被配置为控制处理器执行包括上述示例实施例及其任意组合的过程。
在示例性示例实施例中,诸如第一节点110或第二节点120的装置可以包括至少一个处理器和包括计算机程序代码的至少一个存储器,其中至少一个存储器和计算机程序代码被配置为,利用至少一个处理器,使装置至少执行上述示例实施例及其任意组合。
此外,在一个或多个示例实施例中,可以以任何合适的方式组合所描述的特征、结构或特性。在前面的描述中,提供了许多具体细节,诸如长度、宽度、形状等的示例,以提供对本发明的示例实施例的透彻理解。然而,相关领域的技术人员将认识到,本发明可以在没有一个或多个具体细节的情况下实施,或者利用其他方法、组件、材料等。在其他情况下,未详细示出或描述公知的结构、材料或操作,以避免混淆本发明的各方面。
虽然上述示例在一个或多个特定应用中示出了本发明的原理,但是对于本领域的普通技术人员而言显而易见的是,在形式、使用和实现细节上可以进行大量修改,而不需要运用发明能力,并且不背离本发明的原理和概念。因此,不意图限制本发明,除非由所附权利要求限制。
在本文档中,动词“包括”和“包含”作为开放式限制使用,其既不排除也不要求存在同样未记载的特征。除非另有明确说明,否则从属权利要求中所记载的特征可以相互自由组合。此外,应理解,在整个文档中,使用“一”或“一个”(即单数形式)并不排除复数。
工业适用性
本发明的至少一些示例实施例在区块链应用中得到工业应用,其中期望实现区块的分布式存储。
缩略语列表
ASIC 专用集成电路
FPGA 现场可编程门阵列
GSM 全球移动通信系统
IC 集成电路
IP 互联网协议
IoT 物联网
LTE 长期演进
M2M 机器对机器
NFC 近场通信
UI 用户界面
WCDMA 宽带码分多址
WLAN 无线局域网参考符号列表
110,120,130,140 | 节点 |
150 | 区块管理器 |
155 | 本地区块数据库 |
160,260 | 区块列表 |
115,125,135 | 接口 |
210 | 区块 |
220 | 区块头部 |
300–370 | 图3的装置的结构 |
410–480 | 图4中的示例性过程的各阶段 |
510–540 | 图5中的第一方法的步骤 |
610–630 | 图6中的第二方法的步骤 |
Claims (24)
1.一种用于访问区块链的方法,包括:
-由区块链的第二节点接收要被记录到所述区块链中的区块的新交易;
-由所述第二节点基于所述区块的标识确定所述第二节点是所述区块链中用于存储所述区块的区块管理器的子集中的一个;
-响应于所述确定,将所述区块添加到所述区块链;以及
-由所述第二节点向所述区块链的其他节点发送区块列表,其中所述区块列表包括关于所述区块的信息,所述其他节点包括所述区块链的第一节点。
2.根据权利要求1所述的方法,还包括:
-从所述第一节点接收针对所述区块的副本的请求;以及
-响应于所述请求发送所述区块的所述副本。
3.根据权利要求1或权利要求2所述的方法,其中关于所述区块的所述信息包括所述区块的标识。
4.根据权利要求1或权利要求2所述的方法,其中关于所述区块的所述信息包括在所述区块被创建时的节点总数和/或存储所述区块的区块管理器的数量。
5.根据权利要求1或权利要求2所述的方法,其中所述确定所述第二节点是所述区块管理器的子集中的一个还基于所述区块被创建时的节点总数。
6.根据权利要求1或权利要求2所述的方法,其中所述确定所述第二节点是所述区块管理器的子集中的一个还基于存储所述区块的区块管理器的数量。
7.根据权利要求1或权利要求2所述的方法,其中所述确定所述第二节点是所述区块管理器的子集中的一个是使用映射函数实现的。
8.根据权利要求7所述的方法,其中所述映射函数是N_IDi=B_IDk(mod nc-nm)+h,1≤h≤nm,其中N_IDi是第i个节点的标识,B_IDk是所述区块的所述标识,nc是所述区块被创建时的节点总数,并且nm是存储所述区块的区块管理器的数量。
9.一种用于访问区块链的方法,包括:
-由区块链的第一节点接收区块列表,所述区块列表包括关于所述区块链中的区块的信息;
-由所述第一节点基于所述区块的标识确定所述区块链的第二节点是所述区块链中存储所述区块的区块管理器的子集中的一个;以及
-由所述第一节点向所述第二节点发送针对所述区块的副本的请求。
10.根据权利要求9所述的方法,其中关于所述区块的所述信息包括所述区块的标识。
11.根据权利要求9或权利要求10所述的方法,其中关于所述区块的所述信息包括在所述区块被创建时的节点总数和/或存储所述区块的区块管理器的数量。
12.根据权利要求9或权利要求10所述的方法,其中所述确定所述第二节点是所述区块管理器的子集中的一个还基于所述区块被创建时的节点总数。
13.根据权利要求9或权利要求10所述的方法,其中所述确定所述第二节点是所述区块管理器的子集中的一个还基于存储所述区块的区块管理器的数量。
14.根据权利要求9或权利要求10所述的方法,其中所述确定第二节点是区块管理器的子集中的一个是使用映射函数实现的。
15.根据权利要求14所述的方法,其中所述映射函数是N_IDi=B_IDk(mod nc-nm)+h,1≤h≤nm,其中N_IDi是第i个节点的标识,B_IDk是所述区块的所述标识,nc是所述区块被创建时的节点总数,并且nm是存储所述区块的区块管理器的数量。
16.一种用于访问区块链的装置,包括至少一个处理核、至少一个存储器,所述至少一个存储器包括计算机程序代码,所述至少一个存储器和所述计算机程序代码被配置为,利用所述至少一个处理核,使所述装置至少执行:
-由区块链的第二节点接收要被记录到所述区块链中的区块的新交易;
-由所述第二节点基于所述区块的标识确定所述第二节点是所述区块链中用于存储所述区块的区块管理器的子集中的一个;
-响应于所述确定,将所述区块添加到所述区块链;以及
-由所述第二节点向所述区块链的其他节点发送区块列表,其中所述区块列表包括关于所述区块的信息,所述其他节点包括所述区块链的第一节点。
17.根据权利要求16所述的装置,其中所述至少一个存储器和所述计算机程序代码还被配置为,利用所述至少一个处理核,使所述装置至少执行根据权利要求2-8中任一项所述的方法。
18.一种用于访问区块链的装置,包括至少一个处理核、至少一个存储器,所述至少一个存储器包括计算机程序代码,所述至少一个存储器和所述计算机程序代码被配置为,利用所述至少一个处理核,使所述装置至少执行:
-由区块链的第一节点接收区块列表,所述区块列表包括关于所述区块链中的区块的信息;
-由所述第一节点基于所述区块的标识确定所述区块链的第二节点是所述区块链中存储所述区块的区块管理器的子集中的一个;以及
-由所述第一节点向所述第二节点发送针对所述区块的副本的请求。
19.根据权利要求18所述的装置,其中所述至少一个存储器和所述计算机程序代码还被配置为,利用所述至少一个处理核,使所述装置至少执行根据权利要求10-15中任一项所述的方法。
20.一种用于访问区块链的装置,包括:
-用于由区块链的第二节点接收要被记录到所述区块链中的区块的新交易的部件;
-用于由所述第二节点基于所述区块的所述标识确定所述第二节点是所述区块链中用于存储所述区块的区块管理器的子集中的一个的部件;
-用于响应于所述确定、将所述区块添加到所述区块链的部件;以及
-用于由所述第二节点向所述区块链的其他节点发送区块列表的部件,其中所述区块列表包括关于所述区块的信息,所述其他节点包括所述区块链的第一节点。
21.根据权利要求20的装置,还包括用于执行根据权利要求2-8中任一项的方法的部件。
22.一种用于访问区块链的装置,包括:
-用于由区块链的第一节点接收区块列表的部件,所述区块列表包括关于所述区块链中的区块的信息;
-用于由所述第一节点基于所述区块的标识确定所述区块链的第二节点是所述区块链中存储所述区块的区块管理器的子集中的一个的部件;以及
-用于由所述第一节点向所述第二节点发送针对所述区块的副本的请求的部件。
23.根据权利要求22的装置,还包括用于执行根据权利要求10-15中任一项的方法的部件。
24.一种非瞬态计算机可读介质,其上存储有一组计算机可读指令,所述一组计算机可读指令在由至少一个处理器执行时,使装置至少执行根据权利要求1-8或9-15中任一项所述的方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2019/083452 WO2020211078A1 (en) | 2019-04-19 | 2019-04-19 | Distributed storage of blocks in blockchains |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113966602A CN113966602A (zh) | 2022-01-21 |
CN113966602B true CN113966602B (zh) | 2023-10-20 |
Family
ID=72837986
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980097202.3A Active CN113966602B (zh) | 2019-04-19 | 2019-04-19 | 区块链中区块的分布式存储 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20220215038A1 (zh) |
EP (1) | EP3957054A4 (zh) |
CN (1) | CN113966602B (zh) |
WO (1) | WO2020211078A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220188295A1 (en) * | 2020-12-14 | 2022-06-16 | International Business Machines Corporation | Dynamic management of blockchain resources |
CN113364769B (zh) * | 2021-06-03 | 2022-04-15 | 浙江大学 | 一种区块链网络中的隐蔽信道构造方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107122477A (zh) * | 2017-05-02 | 2017-09-01 | 成都中远信电子科技有限公司 | 一种区块链存储系统 |
CN108259622A (zh) * | 2018-02-07 | 2018-07-06 | 福建南威软件有限公司 | 一种电子证照数据的跨区域共享方法 |
CN108352014A (zh) * | 2015-07-09 | 2018-07-31 | 里奎德市场集团公司 | 使用区块链技术交易、清算和结算证券交易的系统和方法 |
CN108769142A (zh) * | 2018-05-11 | 2018-11-06 | 中国联合网络通信集团有限公司 | 交易信息处理方法及区块生成节点 |
CN109559117A (zh) * | 2018-11-14 | 2019-04-02 | 北京科技大学 | 基于属性基加密的区块链合约隐私保护方法与系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10097344B2 (en) * | 2016-07-15 | 2018-10-09 | Mastercard International Incorporated | Method and system for partitioned blockchains and enhanced privacy for permissioned blockchains |
US11556521B2 (en) * | 2017-09-29 | 2023-01-17 | Oracle International Corporation | System and method for providing an interface for a blockchain cloud service |
US10498808B2 (en) * | 2018-03-28 | 2019-12-03 | Bank Of America Corporation | Blockchain-based property management |
CN109271283A (zh) * | 2018-09-06 | 2019-01-25 | 北京云测信息技术有限公司 | 一种基于区块链的数据备份方法 |
-
2019
- 2019-04-19 US US17/604,222 patent/US20220215038A1/en active Pending
- 2019-04-19 EP EP19924983.0A patent/EP3957054A4/en active Pending
- 2019-04-19 WO PCT/CN2019/083452 patent/WO2020211078A1/en active Application Filing
- 2019-04-19 CN CN201980097202.3A patent/CN113966602B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108352014A (zh) * | 2015-07-09 | 2018-07-31 | 里奎德市场集团公司 | 使用区块链技术交易、清算和结算证券交易的系统和方法 |
CN107122477A (zh) * | 2017-05-02 | 2017-09-01 | 成都中远信电子科技有限公司 | 一种区块链存储系统 |
CN108259622A (zh) * | 2018-02-07 | 2018-07-06 | 福建南威软件有限公司 | 一种电子证照数据的跨区域共享方法 |
CN108769142A (zh) * | 2018-05-11 | 2018-11-06 | 中国联合网络通信集团有限公司 | 交易信息处理方法及区块生成节点 |
CN109559117A (zh) * | 2018-11-14 | 2019-04-02 | 北京科技大学 | 基于属性基加密的区块链合约隐私保护方法与系统 |
Also Published As
Publication number | Publication date |
---|---|
US20220215038A1 (en) | 2022-07-07 |
EP3957054A1 (en) | 2022-02-23 |
WO2020211078A1 (en) | 2020-10-22 |
CN113966602A (zh) | 2022-01-21 |
EP3957054A4 (en) | 2022-11-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10581848B2 (en) | Establishing trust between two devices | |
US11411963B2 (en) | Network access sharing | |
CN109845303B (zh) | 网络切片的管理方法及管理单元 | |
US20190139047A1 (en) | Block chain based resource management | |
US20160164963A1 (en) | Method, system, and device for managing server hardware resources in a cloud scheduling environment | |
CN111163130B (zh) | 一种网络服务系统及其数据传输方法 | |
CN104683422A (zh) | 数据传输方法及装置 | |
CN111786998A (zh) | 基于微服务调用的权限管理方法、装置及存储介质 | |
US10652380B1 (en) | Techniques to manage contact records | |
CN113966602B (zh) | 区块链中区块的分布式存储 | |
EP3598333A1 (en) | Electronic device update management | |
CN115767523A (zh) | 用于多代理消息传送的方法和装置 | |
WO2021047403A1 (zh) | 一种多个nrf场景下的授权方法及装置 | |
CN113079139B (zh) | 基于区块链的共识组主节点确定方法、装置及系统 | |
CN114500082A (zh) | 接入认证方法及装置、设备、服务器、存储介质和系统 | |
US10268532B2 (en) | Application message processing system, method, and application device | |
CN104079325B (zh) | 一种信息共享的方法和电子设备 | |
US11231920B2 (en) | Electronic device management | |
CN107277640A (zh) | 基于直播平台的互动方法、装置和存储介质 | |
CN116806038A (zh) | 一种去中心化的计算机数据共享方法及装置 | |
CN116055403A (zh) | 报文数据的传输方法、装置和服务器 | |
CN103326892B (zh) | Web接口的操作方法及装置 | |
WO2017215265A1 (zh) | 一种垂直行业用户系统、设备以及分发身份识别号的方法 | |
CN111385262A (zh) | 一种控制权限的方法及网络设备 | |
CN104753969A (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 |