WO2024096420A1 - Système et procédé de distribution de nœuds dans un réseau de chaîne de blocs - Google Patents
Système et procédé de distribution de nœuds dans un réseau de chaîne de blocs Download PDFInfo
- Publication number
- WO2024096420A1 WO2024096420A1 PCT/KR2023/016521 KR2023016521W WO2024096420A1 WO 2024096420 A1 WO2024096420 A1 WO 2024096420A1 KR 2023016521 W KR2023016521 W KR 2023016521W WO 2024096420 A1 WO2024096420 A1 WO 2024096420A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- shard
- split
- nodes
- node
- equation
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 56
- 238000005192 partition Methods 0.000 claims description 57
- 230000005484 gravity Effects 0.000 claims description 27
- 238000009795 derivation Methods 0.000 claims description 8
- 238000012790 confirmation Methods 0.000 claims description 5
- 238000004364 calculation method Methods 0.000 abstract description 8
- 238000004891 communication Methods 0.000 description 35
- 238000012545 processing Methods 0.000 description 22
- 238000010586 diagram Methods 0.000 description 15
- 230000008569 process Effects 0.000 description 15
- 230000008859 change Effects 0.000 description 14
- 238000004422 calculation algorithm Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 8
- 238000007726 management method Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 7
- 230000014509 gene expression Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000000638 solvent extraction Methods 0.000 description 4
- 241000544061 Cuculus canorus Species 0.000 description 3
- 239000008186 active pharmaceutical agent Substances 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 241000699670 Mus sp. Species 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- 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
- H04L67/1044—Group management mechanisms
-
- 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/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
- G06F16/278—Data partitioning, e.g. horizontal or vertical partitioning
-
- 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
- H04L67/1042—Peer-to-peer [P2P] networks using topology management mechanisms
Definitions
- the present invention relates to a system and method for fairly distributing nodes belonging to a divided shard into two shards during dynamic sharding, which divides a shard into two in a blockchain network.
- Blockchain is a decentralized, distributed transaction management technology that emerged to break away from the centralized method in which existing centralized institutions store transaction details in a single point.
- Blockchain is a distributed ledger system in a P2P (Peer-to-Peer) communication network where all participants own a shared ledger determined through a consensus algorithm, making forgery and alteration of records impossible.
- P2P Peer-to-Peer
- a distributed ledger system is a system in which each node synchronizes and maintains a database called the ledger in a distributed environment without the control of a central administrator.
- a sharding method has been used to distribute multiple nodes into multiple shards (shard groups) and split multiple transactions into each distributed shard to process them in parallel.
- Sharding divides transactions and blocks that occur in a blockchain network into small groups of shards, so the nodes in each shard only process the transactions and blocks of the shard they belong to without having to process transactions and blocks of other shards, thus processing the entire network. It is a method of reducing transaction throughput and the size of the distributed ledger.
- a verification committee that includes multiple nodes basically verifies blocks through the consensus of the majority of the committee, and blocks that do not reach consensus are excluded from selection and separated from the chain. In order to reach consensus on a specific block, a certain number of nodes above a threshold among all nodes constituting the network must agree.
- the applicant of the present invention proposes a technology that increases the number of shards according to the traffic volume of the blockchain network as dynamic sharding technology.
- Dynamic sharding means dividing one shard into two, and dividing one shard into two means dividing and distributing the nodes belonging to the shard into two shards. Therefore, a technology is needed to relatively fairly distribute the nodes belonging to the shard (hereinafter referred to as split shard) divided into two during dynamic sharding.
- the purpose of the present invention is to meet the above-mentioned need.
- dynamic sharding which splits one shard into two and adds a new shard in a blockchain network
- the nodes belonging to the split shard are distributed fairly into two shards. It is intended to provide a system and method.
- the present invention can be implemented in various ways, including a device (system), a method, a computer program stored in a computer-readable medium, or a computer-readable medium on which the computer program is stored.
- a node distribution system running on split shard nodes constituting a blockchain network includes a node placement unit that virtually arranges split shard nodes on the surface of an n-dimensional (n is the number of split parameters) sphere.
- a center of gravity derivation unit that derives n center points in an n-dimensional sphere using the split parameter characteristic values of each split shard node for each split parameter;
- a partition equation deriving unit that derives a partition equation passing through n center points of gravity;
- a post-split shard allocation unit that assigns shards after the split of the split shard nodes based on the split equation;
- a partition equation sharing unit that shares the partition equation and information for arranging the partitioned shard nodes on the surface of the n-dimensional sphere with the non-partitioned shard nodes.
- the node placement unit derives a pseudo-random value based on the address information and seed value of the split shard nodes, uses the derived pseudo-random value to calculate the position on the surface of the n-dimensional sphere, and places the split shard nodes.
- the partitioning equation sharing unit shares the seed value with the non-partitioning shard nodes.
- the splitting parameters include stake amount and boat count.
- the partition equation is at least one equation among n-1-dimensional straight lines, planes, and hyperplanes that pass through all n center points.
- the shard allocation unit after splitting divides the split shard nodes placed on the surface of the n-dimensional sphere into two groups using a splitting equation, and assigns each split group to an old shard or a new shard.
- the partition equation sharing unit shares the coefficient values and constant values of the variable terms of the partition equation to the non-partition shard nodes.
- a node distribution system running on non-split shard nodes constituting a blockchain network places split shard nodes from split shard nodes on the surface of an n-dimensional (n is the number of split parameters) sphere.
- a division equation sharing unit that receives information and division equations;
- a node placement unit that virtually arranges split shard nodes on the surface of an n-dimensional (n is the number of split parameters) sphere;
- a partition equation application unit that applies the partition equation to an n-dimensional sphere to split the split shard nodes into two groups; and a shard allocation confirmation unit that checks the shards assigned after splitting for each of the two groups of split shard nodes.
- the partition equation sharing unit receives the coefficient values and constant values of the variable terms of the partition equation.
- the information for placing split shard nodes on the surface of an n-dimensional (n is the number of split parameters) sphere is a seed value
- the node placement unit derives a pseudo-random value based on the address information and seed value of the split shard nodes. Then, the location on the surface of the n-dimensional sphere is calculated using the derived pseudo-random value, and the split shard nodes are placed.
- the node distribution method implemented by at least one processor in the split shard node constituting the blockchain network is a split shard node that divides the split shard nodes into n-dimension (n is the number of split parameters) Virtually placing on the surface of a sphere; A split shard node deriving n centers of gravity in an n-dimensional sphere using split parameter characteristic values of each split shard node for each split parameter; Deriving a split equation in which the split shard node passes through n center points; A step of allocating shards after the split shard node splits the split shard nodes based on the split equation; and a step where the split shard node shares the information for placing the split shard nodes on the surface of the n-dimensional sphere and the split equation to the non-split shard node.
- the step of the split shard node virtually arranging the split shard nodes on the surface of an n-dimensional (n is the number of split parameters) sphere includes deriving a pseudo-random value based on the address information and seed value of the split shard nodes, and , It includes the step of calculating the position on the surface of the n-dimensional sphere using the derived pseudo-random value and arranging the split shard nodes.
- the split shard node shares the seed value with the non-split shard node.
- the splitting parameters include stake amount and boat count.
- the partition equation is at least one equation among n-1-dimensional straight lines, planes, and hyperplanes that pass through all n center points.
- the step of assigning shards after the split shard nodes are divided based on the split equation is to divide the split shard nodes placed on the surface of the n-dimensional sphere into two groups using the split equation, and divide each divided group into two groups. It includes the step of assigning to old shards or new shards.
- the split shard node includes the step of sharing the coefficient value and constant value of the variable term of the split equation with the non-split shard node.
- the node distribution method implemented by at least one processor in the non-split shard node constituting the blockchain network is where the non-split shard node divides the split shard nodes from the split shard node into n dimensions (n is Number of division parameters) sharing information and division equations for placement on the surface of the sphere; A non-split shard node virtually arranging the split shard nodes on the surface of an n-dimensional (n is the number of partition parameters) sphere; A non-split shard node applying a partition equation to an n-dimensional sphere such that the split shard nodes are split into two groups; and a step where the non-split shard node checks the shards assigned after splitting for each of the two groups of split shard nodes.
- the non-partitioned shard node includes the step of receiving the coefficient value and constant value of the variable term of the partition equation.
- the information for placing the split shard nodes on the surface of an n-dimensional (n is the number of split parameters) sphere is a seed value
- the non-split shard node is a pseudo-random value based on the address information and seed value of the split shard nodes. It includes the step of deriving and calculating the position on the surface of the n-dimensional sphere using the derived pseudo-random value and arranging the split shard nodes.
- the present invention divides the blockchain network into shards to process transactions and blocks, thereby reducing transaction throughput and the size of the distributed ledger, thereby increasing the scalability of the blockchain network.
- the present invention distributes nodes by adding shards according to the traffic volume of the blockchain network, and allows multiple transactions to be processed in parallel in each distributed shard, thereby reducing the transaction throughput of the entire network and the size of the distributed ledger.
- the present invention creates a new shard by dividing the existing shard without creating a blank shard, and ensures the continuity of information and the stability of the new shard by assigning nodes relatively evenly to the new shard. It can be.
- the node information assigned to each of the two shards can be calculated using the node address and the splitting equation, so the shard information of the node after splitting can be calculated. The amount of information required to share can be minimized.
- Figure 1 is a conceptual diagram of a blockchain network divided into three shards of the present invention.
- Figure 2 is a block diagram showing an exemplary configuration of a node including the dynamic sharding system of the present invention.
- Figure 3 is a diagram showing information stored in a data storage in the blockchain network of the present invention.
- Figure 4 is a configuration diagram showing a node distribution system running on split shard nodes according to an embodiment of the present invention.
- Figure 5 is a configuration diagram illustrating a node distribution system running on non-partitioned shard nodes according to an embodiment of the present invention.
- Figure 6 is an operation flowchart showing a node distribution method in a split shard node during dynamic sharding according to an embodiment of the present invention.
- Figure 7 is an exemplary diagram illustrating a process of dividing split shard nodes into two groups in a split shard node according to an embodiment of the present invention.
- Figure 8 is an operation flowchart showing a node distribution method in a non-split shard node during dynamic sharding according to an embodiment of the present invention.
- Figure 9 is an example diagram illustrating a process of dividing split shard nodes into two groups in a non-split shard node according to an embodiment of the present invention.
- the term “technique” may refer to a system, method, computer-readable instructions, module, algorithm, hardware logic, and/or operation as permitted by the context described above and throughout the document.
- terms such as 'comprise', 'comprising', etc. may indicate the presence of features, steps, operations, elements and/or components, but may indicate that such terms include one or more other functions, This does not preclude the addition of steps, operations, elements, components and/or combinations thereof.
- a specific component when referred to as being 'coupled', 'combinated', 'connected', 'connected', or 'reacting' to any other component, the specific component is directly bound to the other component. , may be combined, connected and/or associated, or react, but is not limited thereto. For example, one or more intermediate components may exist between a particular component and another component. Additionally, in the present invention, “and/or” may include each of one or more listed items or a combination of at least a portion of one or more items.
- 'first' and 'second' are used to distinguish specific components from other components, and the above-described components are not limited by these terms.
- a 'first' component may be used to refer to an element of the same or similar form as the 'second' component.
- a 'blockchain network' is a collection of several computers (nodes) that participate in a blockchain system and communicate peer-to-peer with each other through the Internet, etc.
- a 'node' may be a computer participating in a blockchain network.
- a computer encompasses all devices with CPU, memory, communication, and input/output functions, and may specifically include server computers, personal computers (PCs), mobile phone terminals, and small home appliances.
- Nodes can share and spread information through the blockchain network.
- a node manages at least one user account. Accounts managed by a node may include the node owner's account (hereinafter referred to as a host account) and an account entrusted with management by another user (hereinafter referred to as a guest account).
- a node stores all information about the host accounts and guest accounts it manages and transmits it to other nodes on the blockchain network, and can receive the latest information about the host accounts and guest accounts managed by each node from other nodes. You can.
- 'account' refers to a user account participating in a blockchain and may be a data structure representing one user.
- An account can add information to the blockchain system by issuing transactions, and can be a linked list of transactions issued by a user.
- a transaction can be a unit of data that a user adds to the system.
- An account can own a node and directly manage its own transaction information, and this account can be called a host account.
- the account can entrust transaction information to another user's node for management.
- This account can be called a guest account, and the node entrusted with account management can be called a entrusted node.
- the identity of the node and account can be verified using an encryption key, and transactions can be signed with the same encryption key.
- a guest account can operate a node on its own and become a host account or change the entrusted node.
- a host account can also select a entrusted node and become a guest account.
- a 'transaction' is a unit of information added to the blockchain, and can be issued independently by one account.
- the content of a transaction is nominally random information provided by the user, but may actually be a meaningful message within the system.
- the transaction may include messages such as 'Account A sent 100 coins to Account B', 'Account B received 100 coins from Account A', etc.
- the serial number of the transaction starts from 0. As a positive integer, it increases by 1 for each transaction, and the technology for Account-Wise Transaction Chain (AWTC), which manages the ledger for each account, is a Korean open patent. It can be understood by referring to the contents described in No. 2021-0015196.
- AWTC Account-Wise Transaction Chain
- a 'block' may be a signed list of transactions added to a shard or blockchain network during a specific period of time.
- Blocks can be created by signing the transaction list generated through the consensus algorithm. Only one block can be created at a time, and a blockchain can be formed by adding new blocks to the existing block list.
- a 'shard' may be a collection of nodes participating in a blockchain network.
- the entire blockchain network can be divided into at least two or more shards. If there is no division, all nodes are considered to participate in one shard, and each shard has a unique address.
- a blockchain network that applies the sharding technique performs peer-to-peer communication between nodes belonging to the same shard, and shares the account-specific transaction chain (AWTC) of all accounts belonging to the same shard.
- AWTC account-specific transaction chain
- every account can have one working shard and one home shard.
- the working shard and home shard of any account may be the same or different.
- the 'home shard' of an account can be calculated based on a function that uses the address of the account and the total number of shards as parameters.
- the 'working shard' of an account is a shard to which the account currently operates and may be a typical shard. In other words, in a blockchain network that applies the typical shard technique, shards communicate peer-to-peer with each other between the same nodes, and the ledger of all accounts belonging to the same shard is shared.
- working shards communicate peer-to-peer with each other between the same nodes, and the account-specific transaction chain (AWTC) of all accounts belonging to the same working shard can be shared.
- AWTC account-specific transaction chain
- the nodes that have the shard as a working shard are split into two. That is, some nodes remain in the shard before the split, but other nodes move to the new shard.
- the working shards of all accounts (host account and guest account) managed by each node are moved simultaneously.
- Each shard can have a set of accounts that have the shard as a home shard and a set of accounts that have the shard as a working shard.
- the accounts that make up the blockchain network must each belong to one home shard and one working shard.
- Home shards and working shards may be the same or different.
- a node can change its working shard from one working shard to another, and when a node changes a working shard, the host account and guest account managed by the node can change the working shard at the same time.
- all nodes belonging to the blockchain network include the dynamic sharding system, shard splitting conditions, the address of the new shard (hereinafter referred to as new shard), the address of the split shard (hereinafter referred to as split shard), and the existing shard.
- new shard the address of the new shard
- split shard the address of the split shard
- the existing shard Nodes remaining in a shard and nodes moving to a new shard can be calculated.
- nodes belonging to a split shard are split into two. One of the shards divided into two maintains the same address as the split shard (this is called an old shard), and the other shard is a new shard and can be given a new address.
- Nodes belonging to a split shard are divided into nodes that remain in the old shard and nodes that move to the new shard.
- a split account refers to an account that has a split shard as a working shard
- a split shard node refers to a node that belongs to a split shard and manages the split account.
- the node is divided into two based on the split nodes, and the accounts managed by the node are split all at once. After shard splitting, the working shard of the split account may be maintained as an old shard or changed to a new shard.
- an account whose working shard has been changed to a new shard is called a new shard account
- a node whose working shard has been changed to a new shard among split shard nodes is called a new shard node.
- the account whose working shard remains in the old shard is called an old shard account
- the node whose working shard remains in the old shard is called an old shard node.
- the old shard node deletes the account-specific transaction chain (AWTC) of the new shard account and only manages information about the old shard account
- the new shard node deletes the account-specific transaction chain (AWTC) of the old shard account and manages information about the old shard account.
- AWTC account-specific transaction chain
- Manage information about a node belonging to the home shard of the new shard account (hereinafter referred to as the home shard node of the new shard account) can change the working shard information of the new shard account stored in the account directory from old shard to new shard.
- all shards that make up the blockchain network can have addresses.
- the address of a shard may be a value given in the order in which the shard was created in the network.
- the highest value of the shard address that makes up the blockchain network may be a value based on the total number of shards.
- the address of the new shard may be ‘highest value of the shard address in the current network + 1’.
- shard division is not a physical division, but may mean an operation of making some of the nodes belonging to the divided shard belong to the old shard and the rest to belong to the new shard.
- all nodes belonging to the split shard communicate peer-to-peer and share the account-specific transaction chain (AWTC) of all accounts belonging to the split shard.
- AWTC account-specific transaction chain
- the split shard is divided into old shards and new shards, only the nodes assigned to the old shard share the account-specific transaction chain (nodes assigned to the old shard share the account-specific transaction chain of the nodes assigned to the new shard). does not share), and only the nodes assigned to the new shard share the account-specific transaction chain (nodes assigned to the new shard do not share the account-specific transaction chain of the nodes assigned to the old shard).
- 'peer-to-peer communication' in blockchain networks and shards means that when a random node receives some information, it copies the received information and transmits it to other nodes, and the received node also copies the information to other nodes. This may mean that all nodes belonging to the blockchain network and shard share the information after a sufficient period of time by repeating the process of transmitting to the nodes.
- 'round' may be a unit of time of the sum.
- a transaction shared in a previous round may be the subject of agreement in the current round.
- the 'neighbor shard' of any shard may be a shard with an address whose bit distance from the address of the corresponding shard is 1.
- a bit distance of 1 means that only one digit value is different when comparing two arbitrary binary values digit by digit. For example, for the binary value '0101', the binary value that differs only in the 1st digit is '0100', the binary value that differs only in the 2nd digit is '0111', the binary value that differs in only the 3rd digit is '0001', and 4 The binary value that differs only in the second digit is '1101'.
- the binary value '0101', the binary value '0100', the binary value '0111', the binary value '0001', and the binary value '1101' are all binary values that differ by only one place value.
- a binary value that differs by only one place value from a random binary value is defined as having a bit distance of 1
- a shard having an address with a bit distance of 1 from the address of a random shard is defined as a neighboring shard.
- the old shard and the new shard divided from the split shard may be neighboring shards whose addresses have a bit distance of 1.
- Figure 1 is a conceptual diagram of a blockchain network divided into three shards of the present invention.
- the multiple nodes that make up the blockchain network can be divided into three shards (110, 120, and 130), but it is not limited to this.
- the number of shards can increase as the number of nodes and accounts that make up the blockchain network increases, and in this case, one shard can be split into two.
- Each shard (110, 120, 130) may be a working shard of nodes currently belonging to the shard. Currently, all nodes belonging to a working shard can share the same information.
- Each node has an intra-shard communication node list that stores information on P2P communication targets (intra-shard communication nodes) among nodes within the working shard, and an inter-shard that stores information on peer-to-peer communication targets (inter-shard communication nodes) among nodes outside the working shard. May include a communication node list.
- the intra-shard communication node that is the communication target within the working shard of each node can be determined according to kademlia rules.
- the inter-shard communication node that is the communication target can be randomly determined to be some of the nodes belonging to neighboring shards.
- Intra-shard communication nodes and inter-shard communication nodes included in the intra-shard communication node list and inter-shard communication node list assigned to each node can be randomly reconfigured.
- nodes 111, 121, and 131 that communicate with nodes within the working shard are indicated as unhatched circles, and nodes 112, 122, and 132 that communicate with nodes other than the working shard are hatched. It is indicated by a circular shape.
- Nodes 112, 122, and 132 that communicate with nodes other than the working shard can communicate with nodes belonging to neighboring shards based on the inter-shard communication node list.
- the neighboring shard may be a shard whose bit distance of the shard address is 1.
- a bit distance of 1 may mean that the shard address differs by only one bit value. That is, addresses with a bit distance of 1 from address '00' can be '01' and '10'.
- the first shard 130 is The addresses of (110) and the second shard (120) are '00' and '01', respectively, with a bit distance of 1, and the addresses of the first shard (110) and the third shard (130) are '00' and '01', respectively.
- the bit distance is 10', but the addresses of the second shard 110 and the third shard 130 are '01' and '10', respectively, and the bit distance is not 1 because the two place values are different.
- the first shard 110 and the second shard 120 are neighboring shards
- the first shard 110 and the third shard 130 are neighboring shards and can communicate directly.
- the second shard 120 and the third shard 130 cannot communicate directly because they are not neighboring shards, and can communicate through the first shard 110, which is a neighboring shard.
- Each node in Figure 1 includes a shard rebalancing algorithm, and the shard rebalancing algorithm can be executed according to preset conditions.
- the shard rebalancing algorithm may use the Bounded Cuckoo algorithm, but is not limited to this.
- the Bounded Cuckoo algorithm is described in detail in the RapidChain introduction material (see RapidChain: Scaling Blockchain via Full Sharding, https :/ eprint . iacr . org /2018/460. pdf ).
- the present invention calculates the health index of the shards based on the Bounded Cuckoo algorithm, classifies them into strong shards and weak shards, and periodically extracts some nodes randomly from the strong shards to determine the weak shards. It can be moved to .
- nodes to change working shards are randomly selected, and the working shards of the nodes may be reallocated and changed.
- the working shard can be randomly changed to a split shard among nodes belonging to shards other than the split shard.
- the node can perform the working shard change procedure for all host accounts and guest accounts it manages.
- nodes can also perform individual working shard change procedures for host accounts and guest accounts that they manage. For example, if a guest account that the node manages changes the entrusted node, and the changed entrusted node belongs to a different working shard, the node can perform the working shard change procedure for the guest account. Alternatively, when a third account managed by a node belonging to another working shard is newly entrusted to be managed, the working shard change procedure for the third account can be performed.
- FIG. 2 is a block diagram showing an exemplary configuration of a node 200 including the dynamic sharding system of the present invention.
- Each node may be implemented as a computer device.
- the various devices and/or components of node 200 may include distributed computer resources 250 that can communicate with each other and external devices over one or more networks 260.
- distributed computer resources 250 may include devices 250(1) - 250(N).
- Embodiments of the present invention allow distributed computer resources 250 to operate in a cluster or other grouped configuration, which may include one or more computer devices to share resources, distribute load, increase performance, or for other purposes. Supports scenarios.
- Distributed computer resources 250 may fall into various categories, such as traditional server-like devices, desktop computer-like devices, mobile devices, special-purpose devices, embedded devices, and/or wearable devices. Accordingly, although illustrated as desktop and laptop computers, distributed computer resources 250 may include a variety of device types and are not limited to a particular type of device. Distributed computer resources 250 may include desktop computers, server computers, web server computers, personal computers, mobile computers, laptop computers, tablet computers, wearable computers, implantable computers, communication devices, automotive computers, network-enabled televisions, thin clients, and terminals. , may be an integrated component for inclusion in a PDA, game console, gaming device, workstation, media player, personal video recorder (PVR), set-top box, camera, or computer device.
- PDA personal video recorder
- Node 200 may be a single computer device that is a distributed computer resource 250.
- Node 200 may include any type of computer device having one or more processing units 202 operably coupled to a computer readable media (CRM) 204 via bus 240; , and in some cases may include one or more of these.
- These buses 240 may include system buses, data buses, address buses, PCI buses, mini PCI buses, and various local, peripheral, and/or independent buses.
- processing unit 202 may be, for example, a CPU-type processing unit, a GPU-type processing unit, a field programmable gate array (FPGA), a digital signal processor (DSP), or other hardware that may be driven by a CPU. It may include a processing unit 202 representing logic components.
- FPGA field programmable gate array
- DSP digital signal processor
- these hardware logic components include application-specific integrated circuits (ASICs), application-specific standard products (ASPs), system-on-a-chip (SOC) systems, and complex programmable logic devices (CPLDs). It can be included.
- the CRM 204 includes an external processing unit 208 such as an external CPU type processing unit 206, an external GPU type processing unit 208, and/or an FPGA type accelerator 210(1), a DSP type accelerator ( Commands executable by an external accelerator 210, such as 210(2)) or other accelerator 210(N), may be stored.
- CRM 204 described herein may include computer storage media and/or communication media.
- Computer storage media refers to types of memory, such as volatile memory, non-volatile memory, and/or other permanent or secondary computer storage media implemented in any method or technology for storage of information such as computer-readable instructions, data structures, program modules, or other data. storage units, and may include removable and non-removable computer storage media.
- Computer storage media includes RAM, static RAM (SRAM), dynamic RAM (DRAM), phase-change memory (PRAM), read-only memory (ROM), erasable programmable read-only memory (EPROM), and electrically erasable programmable read-only memory. It may be memory (EEPROM), flash memory, DVD, optical storage media, magnetic cassette, magnetic tape, solid state memory (SSD), etc.
- Executable instructions stored in CRM 204 may include operating system 220 and other modules, programs, or applications that are loadable and executable by processing unit 202.
- the functionality described herein may be performed, at least in part, by one or more hardware logic components, such as an accelerator.
- example types of hardware logic components include Field-programmable Gate Arrays (FPGAs), Application-Specific Integrated Circuits (ASICs), Application-Specific Standard Products (ASSPs), and System-on-a chip systems. (SOC), Complex Programmable Logic Device (CPLD), etc.
- the accelerator could be a hybrid device from XILINX or ALTERA that includes a CPU embedded in an FPGA fabric.
- CRM 204 may also include data store 212.
- data store 212 may include a data store, such as a database, data warehouse, or other type of structured or unstructured data store.
- data store 212 may include one or more hypertext markup language (HTML) tables, resource description framework (RDF) tables, Web Ontology Language (OWL) tables, and/or Extensible Markup (XML) tables. It may include a corpus and/or relational database with one or more tables, indexes, stored procedures, etc. that enable data access, such as web tables containing Language) tables.
- HTML hypertext markup language
- RDF resource description framework
- OWL Web Ontology Language
- XML Extensible Markup
- It may include a corpus and/or relational database with one or more tables, indexes, stored procedures, etc. that enable data access, such as web tables containing Language) tables.
- data store 212 may store data and/or instructions for the operation of processes, applications, components and/or modules stored in CRM 204 and executed by processing unit 202.
- the node 200 may further include one or more input/output (I/O) interfaces 216, where the node 200 can connect peripheral input devices (e.g. For example, it can communicate with user input devices, including keyboards, mice, pens, game controllers, voice input devices, touch input devices, gesture input devices, cameras, etc., and peripheral output devices (e.g. displays, printers, etc.). It may be an I/O interface 216 that allows communication with an input/output device.
- I/O interface 216 that allows communication with an input/output device.
- node 200 may be a node in a blockchain network and one or more input/output (I/O) networks that enable node 200 to communicate with other nodes in the blockchain network via network 260. It may further include an interface 218.
- I/O input/output
- Such input/output (I/O) network interface 218 may include one or more network interface controllers (NICs) or other types of transceiver devices for transmitting and receiving data over network 260.
- NICs network interface controllers
- Network 260 may include a public network such as the Internet, a private network such as an institutional and/or private intranet, or some combination of private and public networks.
- Network 260 may include any type of wired and/or wireless network, including, but not limited to, a local area network (LAN), a wide area network (WAN), a satellite network, a cable network, a Wi-Fi network, and a WiMax network. It may include a mobile communication network (e.g., 3G, 4G, 5G, etc.) or any combination thereof.
- Network 260 may utilize communication protocols, including packet-based and/or datagram-based protocols, such as Internet Protocol (IP), Transmission Control Protocol (TCP), User Datagram Protocol (UDP), or other types of protocols. there is.
- IP Internet Protocol
- TCP Transmission Control Protocol
- UDP User Datagram Protocol
- network 260 may include a number of devices that facilitate network communications or form the hardware infrastructure for the network, such as switches, routers, gateways, access points, firewalls, base stations, repeaters, and backbone devices.
- network 260 may further include devices that enable connection to a wireless network, such as a wireless access point (WAP).
- WAP wireless access point
- Embodiments according to the present invention include WAPs that support the Institute of Electrical and Electronics Engineers (IEEE) 802.11 standard (e.g., 802.11g, 802.11n, etc.) via various electromagnetic frequencies (e.g., radio frequencies). It can support connection through WAP for sending and receiving data.
- IEEE Institute of Electrical and Electronics Engineers
- CRM 204 may include an operating system 220 and a dynamic sharding system 222.
- Dynamic sharding system 222 may include one or more modules and/or APIs shown as blocks 224, 226, 228, 230, and 232, but these are examples only and the number may be more or less.
- the functions described with respect to each block 224, 226, 228, 230, 232 may be combined to be performed by fewer modules and/or APIs or may be performed by a larger number of modules and/or APIs. It can be divided and performed by.
- some or all of the operating system, data stored in the data store, and the dynamic sharding system may include memory 214 on the processing unit 202, memory 236(1) on the CPU-type processing unit 206, and GPU-type memory 214 on the processing unit 206.
- Memory 236(2) on processing unit 208, memory 236(3) on FPGA-type accelerator 210(1), memory 236(4) on DSP-type accelerator 210(2), and /or may be stored in a separate memory 236, such as memory 236(M) on another accelerator 210(N).
- the dynamic sharding system 222 may include a shard addition determination module 224, a new shard address calculation module 226, a split shard calculation module 228, a node distribution module 230, and an account processing module 232. there is.
- the node distribution system of the present invention may refer to the node distribution module 230. All nodes that make up the blockchain network include a dynamic sharding system.
- the dynamic sharding system to which the present invention is applied can be understood by referring to Republic of Korea Application No. 2022-0102456, 'Dynamic sharding system and method in a blockchain network' filed by the applicant of the present invention.
- the shard addition determination module 224 may compare the traffic volume of the blockchain network or affiliated working shard with a preset standard value, and determine that a shard should be added if the traffic volume exceeds the standard value. The shard addition determination module 224 can determine whether to add a shard based on the number of nodes belonging to the shard and the number of accounts.
- the new shard address calculation module 226 can calculate the address of a new shard based on the number of shards currently included in the network.
- the new shard address may be ‘the highest value of the shard address in the current network + 1’. All nodes included in the network can calculate new shard address information by running the new shard address calculation module 226.
- the split shard calculation module 228 can calculate the split shard address divided into new shards based on the new shard address. New shards and split shards can be neighboring shards with a bit distance of 1. The split shard calculation module 228 can calculate the split shard address by replacing the 1 of the most significant set bit (MSSB) set to 0 in the binary value of the new shard address with 0.
- MSSB most significant set bit
- the node distribution module 230 may assign some of the nodes that have split shards as working shards to old shards, and assign the rest to new shards.
- the node distribution module 230 may assign nodes to each shard so that the stake, number of nodes, and vote count of the two shards are similar after shard division.
- the node distribution module 230 included in the split shard node belonging to the split shard virtually arranges the split shard nodes in an n-dimensional sphere (n is the number of partition parameters), and divides the split shard nodes placed in the n-dimensional sphere into 2
- the partitioning equation for separation into groups is derived, and the information for placing the split shard nodes in an n-dimensional sphere and the partitioning equation information are shared with nodes belonging to the non-partitioned shard (hereinafter referred to as non-partitioned shard nodes).
- the node distribution module 230 included in the non-split shard node divides the old shard nodes and new shards assigned to the old shard among the split shard nodes based on the information for placing the split shard nodes in an n-dimensional sphere and the partition equation information. New shard nodes assigned to can be calculated.
- the account processing module 232 manages the transaction chain and account directory for each account managed by the node according to the node's shard allocation results. For example, old shard nodes delete the account-specific transaction chain (AWTC) of the new shard account, new shard nodes delete the account-specific transaction chain (AWTC) of the old shard account, and home shard nodes of the new shard account delete the account transaction chain (AWTC). In the directory, change the working shard information of the split account from split shard (old shard) to new shard.
- AWTC account-specific transaction chain
- AWTC account-specific transaction chain
- Figure 3 is a diagram showing information stored in the data storage 300 in the blockchain network of the present invention.
- the account-specific transaction chain (AWTC) (302, 304, 306, 308) of all accounts belonging to the node's working shard, and the working shard history of accounts that have the node's working shard as their home shard.
- AWTC account-specific transaction chain
- An account directory 310 that stores information
- a round state chain 312 that combines account-specific transactions of all accounts belonging to the working shard and stores the round state block agreed upon among all nodes belonging to the working shard as a chain
- a block World Round State Chain (314) which combines all Round State blocks belonging to the chain network and stores the agreed upon World Round State blocks as a chain
- Intra-Shard Communication Node List (316) which stores communication target node information within the node's working shard.
- an inter-shard communication node list 318 that stores communication target node information other than the node's working shard may be stored.
- the account directory 310 stores working shard history information of accounts that have a node's working shard as their home shard.
- each node manages only one account, that is, the host account. Therefore, in this example, node may have the same concept as account.
- the account directories of node 121 and node 122 with the second shard 120 as the working shard First shard 110 information is stored as working shard information of the node 111 management account. Meanwhile, in the example of FIG.
- the node is registered in the account directories of node 131 and node 132 with the third shard as the working shard.
- the first shard (110) information is stored as the working shard information of the management account.
- nodes and accounts can change working shards.
- the working shard change module is run, and the changed working shard information can be updated in the nodes belonging to the home shard of the corresponding account.
- the latest working shard address of the account is updated in the account directory of the nodes belonging to the home shard of any account by the working shard change module.
- Figure 4 is a configuration diagram illustrating a node distribution system 400 running on split shard nodes according to an embodiment of the present invention.
- the node distribution system 400 running on these split shard nodes may be implemented by the node's computer system and may be part of the node distribution module 230 of FIG. 2.
- the node distribution system 400 which runs on the split shard nodes of the present invention, determines the split parameters and seed values and divides the split shard nodes into n dimensions (n is the split parameter) based on the address information and seed values of the split shard nodes.
- a node placement unit 402 that virtually arranges on the surface of the sphere, and a center of gravity derivation unit (402) that derives n center of gravity points in an n-dimensional sphere by applying the split parameter characteristic values of each split shard node for each split parameter ( 404), a partition equation derivation unit 406 that derives a partition equation including n center points, and a post-split shard allocation unit 408 that allocates shards after the split shard nodes based on the partition equation, It includes a split equation sharing unit 410 that shares seed values and split equations.
- the node placement unit 402 may derive a pseudo-random value based on the address information and seed value of the split shard nodes, and virtually arrange the split shard nodes on the surface of the n-dimensional sphere based on the derived pseudo-random value.
- Splitting parameters may include stake and vote count, and other splitting parameters may further include the number of nodes. Splitting parameters may have different values for each split shard node. If the splitting parameters are stake amount and vote count, n is 2, and if the splitting parameters include the number of nodes, n is 3.
- the split shard nodes can be placed on the surface (i.e., circumference) of a two-dimensional sphere (i.e., a circle), and when the splitting parameter is three, the split shard nodes can be placed on the surface (i.e., circumference) of a three-dimensional sphere (i.e., a sphere).
- Split shard nodes can be placed on the sphere surface.
- the node arrangement unit 402 can determine the location on the surface of the n-dimensional sphere using the result obtained by multiplying the addresses of the split shard nodes and the seed value. For example, if the split parameter is 2, the split shard nodes are placed on the surface (circumference) of a two-dimensional sphere (circle), which corresponds to a one-dimensional line space of 0 degrees to 360 degrees. Therefore, by using some bit values of the pseudo-random value derived by multiplying the address of the split shard node and the seed value, the location of the corresponding split shard node on the circumference can be determined.
- the splitting parameter is 3
- the split shard nodes are placed on the surface of a 3-dimensional sphere, which corresponds to a 2-dimensional flat space. Therefore, by using the two groups of bit values selected from the pseudo-random values derived by multiplying the address of the split shard node and the seed value as the latitude and longitude values, the location of the split shard node on the surface of the three-dimensional sphere can be determined.
- the seed value is a value for randomly arranging split shard nodes on the surface of an n-dimensional sphere, and can be determined randomly. This seed value may be changed to another value depending on the distribution of n center points, which will be described later.
- the center of gravity derivation unit 404 applies the split parameter value of each split shard node to obtain the center of gravity in the n-dimensional sphere.
- split shard nodes are placed on the circumference of a two-dimensional sphere (circle).
- the stake amount and vote count value of each split shard node may be different as characteristic values of each split shard node.
- the center of gravity in the two-dimensional sphere (circle) is obtained based on the stake amount of the split shard nodes, and the center of gravity in the two-dimensional sphere (circle) is obtained based on the boat count values of the split shard nodes. In this way, two center points of gravity can be obtained from a two-dimensional sphere (circle) based on the division parameter values. If the two centers of gravity coincide, the arrangement of the split shard nodes can be changed by changing the seed value.
- the center of gravity derivation unit 404 can derive three center of gravity points, one for each division parameter.
- the partition equation deriving unit 406 derives a partition equation passing through n center points.
- the division equation can use the equation of a straight line, plane, or hyperplane passing through n centers of gravity. For example, if there are two division parameters, two center of gravity points are derived within a two-dimensional sphere (circle), and the equation of a one-dimensional straight line passing through the two center points can be derived and used as the division equation.
- the shard allocation unit 408 divides the divided shard nodes arranged on the surface of the n-dimensional sphere using a division equation and assigns each divided group to an old shard or a new shard.
- split shard nodes are assigned to old shards or new shards, all accounts managed by the split shard nodes are assigned to the same shard.
- one random bit value (highest level) of the pseudo-random value derived from the address and seed value of the split shard node Bit or least significant bit) can be used to assign shards after division.
- the partition equation sharing unit 410 shares the seed value for arranging the partitioned shard nodes on the surface of the n-dimensional sphere and the coefficient and constant values of the variable terms of the partition equation with the non-partitioned shard nodes.
- the account processing module 232 running on the old shard node processes the account-specific transaction chain (AWTC) of the new shard account managed by the new shard node. Delete and manage only the account-specific transaction chain (AWTC) of the old shard account. Additionally, the account processing module 232 running on the new shard node deletes the account-specific transaction chain (AWTC) of the old shard account managed by the old shard node and manages only the account-specific transaction chain (AWTC) of the new shard account.
- AWTC account-specific transaction chain
- Figure 5 is a configuration diagram illustrating a node distribution system 500 running on non-partitioned shard nodes according to an embodiment of the present invention.
- the node distribution system 500 running on these non-split shard nodes may be implemented by the node's computer system and may be part of the node distribution module 230 of FIG. 2.
- This non-split shard node may include a node belonging to the home shard of the new shard account (home shard node of the new shard account).
- the node distribution system 500 which runs on the non-split shard nodes of the present invention, shares the seed value for placing the split shard nodes on the surface of the n-dimensional sphere from the split shard node, and the coefficient value and constant value of the variable term of the partition equation.
- a split equation sharing unit 502 that receives the split shard nodes, a node placement unit 504 that virtually arranges the split shard nodes on the surface of the n-dimensional sphere based on the address information and seed values of the split shard nodes, and a split equation on the n-dimensional sphere. It includes a partition equation application unit 506 that applies the split shard nodes to be split into two groups, and a shard allocation confirmation unit 508 that checks the shards assigned to the two groups of split shard nodes.
- the split equation sharing unit 502 receives a seed value for arranging split shard nodes on the surface of an n-dimensional sphere, and the coefficient and constant values of the variable terms of the split equation from the split shard node.
- a seed value for arranging split shard nodes on the surface of an n-dimensional sphere and the coefficient and constant values of the variable terms of the split equation from the split shard node.
- the node placement unit 504 may derive a pseudo-random value based on the address information and seed value of the split shard nodes, and virtually place the split shard nodes on the surface of the n-dimensional sphere based on the derived pseudo-random value.
- the node arrangement unit 504 may be the same as the node arrangement unit 402 performed in the split shard node of FIG. 4. In other words, the location on the surface of the n-dimensional sphere can be determined using the result obtained by multiplying the addresses of the split shard nodes and the seed value.
- split shard nodes can be placed on the surface (circumference) of a 2-dimensional sphere (circle), and if the split parameter is 3, split shard nodes can be placed on the surface of a 3-dimensional sphere. .
- the split equation application unit 506 splits the n-dimensional sphere using the split equation so that the split shard nodes placed on the surface of the n-dimensional sphere are separated into two groups by the split equation.
- the shard assignment confirmation unit 508 checks the results of assignment of split shard nodes in two groups to old shards or new shards for each group. When split shard nodes are assigned to old shards or new shards, all accounts managed by the split shard nodes are assigned to the same shard.
- one random bit value (highest level) of the pseudo-random value derived from the address and seed value of the split shard node bit or least significant bit) can be used to allocate shards after splitting, and the shard allocation confirmation unit 508 can check the shard allocation result after splitting of the split shard node in the splitting equation based on preset rules.
- the account processing module 232 performed on the home shard node of the new shard account divides the working shard information of the new shard account stored in the account directory into a split shard (old shard). Change the address to New Shard address.
- FIG. 6 is an operation flowchart illustrating a node distribution method in a split shard node during dynamic sharding according to an embodiment of the present invention
- FIG. 7 is a flowchart of dividing the split shard nodes into two groups in a split shard node according to an embodiment of the present invention. This is an example diagram showing the division process.
- Figure 7 shows the process of dividing split shard nodes into two groups when the split parameter is two.
- a process is depicted as a logical flow of blocks, each block representing one or more operations that may be implemented in hardware, software, or a combination thereof.
- operations represent computer-executable instructions stored on one or more computer-readable media that, when executed by one or more processors, enable one or more processors to perform the recited operations.
- computer executable instructions include routines, programs, objects, modules, components, data structures, things that perform a particular function or implement a particular abstract data type.
- the order in which operations are described should not be construed as limiting, and the number of operations described may be performed in any order, subdivided into multiple sub-operations, or executed in parallel.
- the split shard node derives a pseudo-random value based on the address information and seed value of the split shard nodes, and divides the shard on the surface 700 of an n-dimensional sphere (n is 2, a circle) based on the derived pseudo-random value.
- Nodes 702 may be placed (S602).
- Splitting parameters may include stake and vote count.
- the seed value is a value for randomly arranging split shard nodes on the surface of an n-dimensional sphere, and can be determined randomly.
- the split shard node applies the split parameter value of each split shard node to obtain the center of gravity in the n-dimensional sphere (S604).
- Figure 7(b) shows the first center of gravity 704 derived based on the characteristic values of the first division parameters of each divided shard node.
- the size of the circle in (b) of FIG. 7 means the size of the first split parameter characteristic value of each split shard node.
- Figure 7(c) shows the second center of gravity 706 derived based on the characteristic values of the second split parameters of each split shard node.
- the split shard node calculates a split equation 708 that passes through all n center points 704 and 706 (S606).
- a split equation 708 that passes through all n center points 704 and 706 (S606).
- two center of gravity points are derived within a two-dimensional sphere (circle), and the division equation of a one-dimensional straight line passing through the two center points can be derived.
- the partition equation 708 of a one - dimensional straight line in two-dimensional XY space can be expressed as A 1
- three center of gravity points can be derived within a three-dimensional sphere, and a division equation for a two-dimensional plane passing through the three center points can be derived.
- the partition equation of a two - dimensional plane in three -dimensional XYZ space can be expressed as A 1 You can.
- the split shard node divides the split shard nodes placed on the surface of the n-dimensional sphere using a split equation and assigns each divided group to an old shard or a new shard (S608).
- S608 a new shard
- the split shard node shares the seed value for arranging the split shard nodes on the surface of the n-dimensional sphere and the coefficient and constant values of the variable terms of the split equation with the non-split shard node (S610).
- FIG. 8 is an operation flowchart showing a node distribution method in a non-split shard node during dynamic sharding according to an embodiment of the present invention
- FIG. 9 is an operation flowchart showing a method of distributing nodes in a non-split shard node according to an embodiment of the present invention.
- This is an example diagram showing the process of dividing into two groups.
- Figure 9 shows the process of dividing split shard nodes into two groups when there are two split parameters as shown in Figure 7.
- the non-split shard node shares the seed value for placing the split shard nodes on the surface of the n-dimensional sphere and the coefficient value and constant value of the variable term of the partition equation from the split shard node (S802).
- the non-split shard node derives a pseudo-random value based on the address information and seed value of the split shard nodes, and divides the shard nodes on the surface 900 of an n-dimensional sphere (2-dimensional circle) based on the derived pseudo-random value. (902) can be placed virtually (S804). If the split parameter is 2, split shard nodes can be placed on the surface (circumference) of a 2-dimensional sphere (circle), and if the split parameter is 3, split shard nodes can be placed on the surface of a 3-dimensional sphere.
- the non-split shard node divides the n-dimensional sphere by the partition equation 904 so that the split shard nodes placed on the surface of the n-dimensional sphere are separated into two groups by the partition equation 904 (S806).
- the non-split shard node checks the results of the split shard nodes in the two groups being assigned to old shards or new shards for each group (S808). When split shard nodes are assigned to old shards or new shards, all accounts managed by the split shard nodes are assigned to the same shard.
- Embodiments according to the present invention described above may be implemented in the form of program instructions that can be executed through various computer components and recorded on a computer-readable recording medium.
- a computer-readable recording medium may include program instructions, data files, data structures, etc., singly or in combination.
- Program instructions recorded on a computer-readable recording medium may be specially designed and configured for the present invention or may be known and usable by those skilled in the computer software field.
- Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks and magnetic tapes, optical recording media such as CD-ROMs and DVDs, and magneto-optical media such as floptical disks. media), and hardware devices specifically configured to store and perform program instructions, such as ROM, RAM, flash memory, etc.
- Examples of program instructions include not only machine language code such as that created by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like.
- the hardware device may be configured to operate as one or more software modules to perform processing according to the invention and vice versa.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mathematical Physics (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
La présente invention concerne un système et un procédé de partitionnement dynamique, de nouvelles partitions étant ajoutées dans un réseau de chaîne de blocs par division d'une partition unique en deux. Un système de partitionnement dynamique s'exécutant sur des nœuds constituant un réseau de chaîne de blocs, selon un mode de réalisation de la présente invention, comprend : un module de détermination d'ajout de partitions qui détermine s'il est nécessaire d'ajouter des partitions ; un module de calcul de nouvelles adresses de partitions qui calcule de nouvelles adresses de partitions sur la base du nombre de partitions actuellement incluses dans le réseau de chaîne de blocs ; un module de calcul de partitions divisées qui calcule des partitions divisées qui sont divisées en nouvelles partitions sur la base des nouvelles adresses de partitions ; et un module d'attribution de partitions qui attribue certains des nœuds appartenant aux partitions divisées à des partitions anciennes et le reste aux nouvelles partitions.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220145427A KR102682674B1 (ko) | 2022-11-03 | 2022-11-03 | 블록체인 네트워크에서 노드 분배 시스템 및 방법 |
KR10-2022-0145427 | 2022-11-03 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2024096420A1 true WO2024096420A1 (fr) | 2024-05-10 |
Family
ID=90930909
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2023/016521 WO2024096420A1 (fr) | 2022-11-03 | 2023-10-24 | Système et procédé de distribution de nœuds dans un réseau de chaîne de blocs |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR102682674B1 (fr) |
WO (1) | WO2024096420A1 (fr) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200096045A (ko) * | 2019-02-01 | 2020-08-11 | 한국전자통신연구원 | 블록체인 생성 장치, 그것의 블록체인을 샤딩하는 방법 및 그것을 포함하는 시스템 |
KR102260093B1 (ko) * | 2019-08-30 | 2021-06-02 | 연세대학교 산학협력단 | 내결함성 블록체인 네트워크의 신뢰도 기반 샤드 분배 장치 및 방법 |
US20210243007A1 (en) * | 2018-04-27 | 2021-08-05 | nChain Holdings Limited | Maintaining blocks of a blockchain in a partitioned blockchain network |
KR102337760B1 (ko) * | 2020-08-27 | 2021-12-08 | 연세대학교 산학협력단 | 심층강화학습 기반 적응적 샤드 블록체인 네트워크 관리 장치 및 방법 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102240888B1 (ko) * | 2019-11-01 | 2021-04-15 | (주)엔터랩 | 전문가에 의해 생성되는 프로젝트 결과물을 블록체인에 저장된 빅데이터 기반으로 관리하는 방법 및 시스템 |
KR20220089383A (ko) * | 2020-12-21 | 2022-06-28 | 서강대학교산학협력단 | 이더리움 샤딩 환경에서의 트랜잭션 수행 시간을 기반으로 한 부하 분산 방법 및 이더리움 샤딩 시스템 |
-
2022
- 2022-11-03 KR KR1020220145427A patent/KR102682674B1/ko active IP Right Grant
-
2023
- 2023-10-24 WO PCT/KR2023/016521 patent/WO2024096420A1/fr unknown
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210243007A1 (en) * | 2018-04-27 | 2021-08-05 | nChain Holdings Limited | Maintaining blocks of a blockchain in a partitioned blockchain network |
KR20200096045A (ko) * | 2019-02-01 | 2020-08-11 | 한국전자통신연구원 | 블록체인 생성 장치, 그것의 블록체인을 샤딩하는 방법 및 그것을 포함하는 시스템 |
KR102260093B1 (ko) * | 2019-08-30 | 2021-06-02 | 연세대학교 산학협력단 | 내결함성 블록체인 네트워크의 신뢰도 기반 샤드 분배 장치 및 방법 |
KR102337760B1 (ko) * | 2020-08-27 | 2021-12-08 | 연세대학교 산학협력단 | 심층강화학습 기반 적응적 샤드 블록체인 네트워크 관리 장치 및 방법 |
Non-Patent Citations (1)
Title |
---|
ZHANG, JIANTING: "SkyChain: A Deep Reinforcement Learning-Empowered Dynamic Blockchain Sharding System.", ICPP '20: PROCEEDINGS OF THE 49TH INTERNATIONAL CONFERENCE ON PARALLEL PROCESSING., vol. 3, 17 August 2020 (2020-08-17), pages 1 - 11, XP058885834, DOI: 10.1145/3404397.3404460 * |
Also Published As
Publication number | Publication date |
---|---|
KR20240063615A (ko) | 2024-05-10 |
KR102682674B1 (ko) | 2024-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021002692A1 (fr) | Procédé de fourniture de service d'actifs virtuels sur la base d'un identifiant décentralisé et serveur de fourniture de service d'actifs virtuels les utilisant | |
WO2020022760A1 (fr) | Système de réseau distribué pour groupe fonctionnel pour des noeuds contenus dans un système | |
CN110771091B (zh) | 用于网络连接式装置的安全的系统和方法 | |
WO2011046356A2 (fr) | Procédé de fourniture d'un service anti-programme malveillant | |
WO2023234526A1 (fr) | Système et procédé de transaction inter-fragment dans un réseau de chaîne de blocs | |
WO2019231185A1 (fr) | Procédé permettant de calculer un paramètre de fiabilité entre des nœuds dans un réseau sans fil, et procédé et dispositif permettant de configurer un chemin de routage à l'aide d'un paramètre de fiabilité | |
WO2020114184A1 (fr) | Procédé, appareil et dispositif de modélisation conjointe, et support de stockage lisible par ordinateur | |
WO2021125502A1 (fr) | Système de fourniture de service en nuage basé sur des conteneurs et procédé associé | |
WO2019182377A1 (fr) | Procédé, dispositif électronique et support d'enregistrement lisible par ordinateur permettant de générer des informations d'adresse utilisées pour une transaction de cryptomonnaie à base de chaîne de blocs | |
WO2024096420A1 (fr) | Système et procédé de distribution de nœuds dans un réseau de chaîne de blocs | |
WO2011090284A2 (fr) | Système d'interfonctionnement d'une pluralité de mondes virtuels distribués utilisant un identificateur d'objet distribué universellement unique, et procédé s'y rapportant | |
TW202218392A (zh) | 建立應用程式白名單之方法與系統 | |
WO2024039129A1 (fr) | Système et procédé de fragmentation dynamique dans un réseau à chaîne de blocs | |
WO2024063400A1 (fr) | Système et procédé de changement de répertoire de compte dans un réseau de chaîne de blocs | |
US11356448B1 (en) | Device and method for tracking unique device and user network access across multiple security appliances | |
WO2024090906A1 (fr) | Système et procédé de génération de compte dans un réseau de chaîne de blocs | |
WO2021194114A1 (fr) | Porte-monnaie électronique et procédé d'échange atomique de deux jetons de blockchain différents à l'aide d'un porte-monnaie électronique | |
WO2023243881A1 (fr) | Système et procédé permettant de changer la partition de travail d'un compte dans un réseau de chaîne de blocs | |
WO2020159269A1 (fr) | Traitement de modèles de calcul en parallèle | |
WO2023132597A1 (fr) | Système d'apprentissage fédéré basé sur un groupe local et procédé de commande d'apprentissage fédéré | |
Poltavtseva et al. | High-performance NIDS architecture for enterprise networking | |
WO2023149660A1 (fr) | Procédé et système d'apprentissage fédéré basé sur une signature de groupe, et support d'enregistrement pour la mise en œuvre de ceux-ci | |
WO2024058489A1 (fr) | Système et procédé de consensus de chaîne de blocs | |
Bousselmi et al. | Towards a massively distributed IaaS operating system: Composition and evaluation of OpenStack | |
WO2024014718A1 (fr) | Système de transaction entre fragments et procédé permettant d'effectuer une vérification dans un réseau de chaîne de blocs |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 23886116 Country of ref document: EP Kind code of ref document: A1 |