WO2022010289A1 - Method for processing block data received in peer terminal in hyperledger fabric structure - Google Patents
Method for processing block data received in peer terminal in hyperledger fabric structure Download PDFInfo
- Publication number
- WO2022010289A1 WO2022010289A1 PCT/KR2021/008741 KR2021008741W WO2022010289A1 WO 2022010289 A1 WO2022010289 A1 WO 2022010289A1 KR 2021008741 W KR2021008741 W KR 2021008741W WO 2022010289 A1 WO2022010289 A1 WO 2022010289A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- block
- data
- task
- block data
- terminal
- 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.)
- Ceased
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0842—Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/22—Payment schemes or models
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
Definitions
- the present invention relates to a method for processing block data received by a peer terminal in a Hyperledger Fabric architecture.
- a block chain can be divided into a public block chain where anyone can participate in the network, and a private block chain where only authorized people can participate in the network.
- Hyperledger Fabric has the form of a permissioned private blockchain, and unlike a public blockchain where anyone can freely participate, only users who have been downgraded by the authentication management system can participate in the blockchain network.
- Hyperledger Fabric can be more secure than other public blockchains, and nodes participating in the Hyperledger Fabric network can be seen as trusted nodes that have already been authorized by the system, and malicious malicious actors used in the public blockchain It does not require a complex consensus algorithm to verify the in-node, but it is sufficient to verify whether the user who wants to access the ledger is an authorized node, has such authority, and whether the transaction is properly structured.
- all nodes can share information with the same ledger stored in the form of a block chain, and it is also possible to create a separate ledger by creating a separate channel between nodes to be shared for business purposes. do.
- Such a Hyperledger Fabric network may include a client terminal, a peer terminal, and an orderer terminal, and the peer terminals form each node of the network and are authenticated in the Hyperledger Fabric network, It may be a terminal that is allowed to participate.
- the client terminal generates transaction information including the transaction details and transmits it to each peer terminal in the network.
- Each peer terminal generates signature information that authenticates the transaction information of the client terminal, and the client terminal receives each transaction information
- the signature information of the peer terminals may be combined and transmitted to the orderer terminal.
- the orderer terminal may block a plurality of transaction information transmitted from the client terminal to generate block data, and transmit the generated block data to each peer terminal.
- the block data transmitted from the orderer terminal can be committed and verified, and then stored in the storage unit in the form of a block chain.
- An object of the present invention is to provide a method for processing block data received by a peer terminal in a Hyperledger Fabric architecture.
- At least one client terminal generating transaction information, generating signature information for authenticating transaction information, a communication unit, a buffer memory (buffer) memory), a cache memory, a storage unit and a control unit, and at least one of the transaction information and the signature information of the plurality of peer terminals to block the first and second block data.
- a buffer memory buffer memory
- a hyperledger fabric structure including a generating orderer terminal, in the plurality of peer terminals, the communication unit receives the first block data from the orderer terminal, a first receiving step of storing one payload block in the buffer memory; a second receiving step of the communication unit storing a second payload block of the second block data in the buffer memory; a first temporary storage step of the controller decoding a first payload block and storing first decoded data for the first payload block in the cache memory; a first tasking step in which the controller reads the first decoded data and performs at least one task on the first block data; a second temporary storage step in which the controller decodes the second payload block and stores second decoded data for the second payload block in the cache memory before the end of the first tasking step; and a second tasking step in which the controller reads the second decoded data and performs at least one task on the second block data after the end of the first tasking step, wherein the storage The block chain stores the block chain, and after the first task
- At least one task for the first block data in the first tasking step includes a plurality of tasks including first and second tasks, and when the first task is performed in the first tasking step , the controller reads the first decoded data from the cache memory to perform the first task, and when performing the second task in the first tasking step, the controller is configured to perform the first decoding from the cache memory
- the second task may be performed by reading data.
- At least one task for the first block data in the first tasking step includes a storage task, and when the storage task is performed, the first decoded data is marshaled and updated in the storage unit.
- the storage unit may be at least one of a solid state drive (SSD) and a hard disk drive (HDD).
- SSD solid state drive
- HDD hard disk drive
- Each of the first and second block data stored in the buffer memory may have a data type of a protocol buffer (Protobuf) type.
- Protobuf protocol buffer
- the at least one transaction information includes content about transaction information
- the method may further include generating signature information for authenticating the received transaction information and transmitting the generated signature information to the at least one client terminal.
- the at least one client terminal After the authentication information transmission step, the at least one client terminal combines a plurality of signature information transmitted from the plurality of peer terminals with respect to each of the transaction information and transmits the combination to the orderer terminal. ; may be further included.
- the orderer terminal orders each transaction information in which the plurality of signature information transmitted from the at least one client terminal are combined to obtain the first block data creating a; and transmitting the first block data to the plurality of peer terminals.
- a peer terminal having a hyperledger fabric structure In a peer terminal having a hyperledger fabric structure according to an example of the present invention, at least one transaction information transmitted from an orderer terminal and a plurality of signature information for authenticating each of the at least one transaction information are blocked first and second a communication unit for receiving block data; a buffer memory for storing first and second payload blocks of the received first and second blocks of data, respectively; a cache memory for temporarily storing first and second decoded data obtained by decoding the first and second payload blocks; and a controller for decoding the first and second payload blocks to convert the first and second decoded data into the first and second decoded data, and reading the first and second decoded data to perform at least one task on the first and second block data; wherein the control unit decodes the first payload block and stores the first decoded data for the first payload block in a cache memory, and then reads the first decoded data, A first tasking step of performing at least one task on the first block data is performed, and before the
- the storage unit further includes a storage unit storing a block chain, wherein after at least one task for the first block data is completed, the first decoded data is connected to the block chain of the storage unit is updated, and after at least one task for the second block data is completed, the second decoded data may be connected to the block chain of the storage unit and updated.
- the at least one task for the first block data includes a plurality of tasks including first and second tasks, and when the controller performs the first task, the first task is performed by reading the cache memory and, when performing the second task, the second task may be performed by reading the cache memory.
- the controller may unmarshal the first and second payload blocks stored in the buffer memory and store the first and second decoded data in the cache memory.
- the control unit may marshal each of the first and second decoded data and connect them to the block chain of the storage unit to update them.
- the storage unit may be at least one of a solid state drive (SSD) and a hard disk drive (HDD).
- SSD solid state drive
- HDD hard disk drive
- Each of the first and second block data stored in the buffer memory may have a data type of a protocol buffer (Protobuf) type.
- Protobuf protocol buffer
- the at least one transaction information includes the transaction information, and the control unit authenticates the authentication request for the transaction information generated and received by the client terminal before the first and second block data are received. signature information can be generated and transmitted to the client terminal.
- the control unit decodes the current payload block in advance and stores it in the cache memory, When performing a commit to verify the payload block of , it is possible to further simplify the processing step of the commit by utilizing the payload stored in the cache memory, and to further improve the processing speed of the peer terminal.
- FIG. 1 is a diagram for explaining an example of a terminal constituting a hyperledger fabric structure according to an example of the present invention.
- FIG. 2 is a diagram for explaining information flow between the client terminal 200, the peer terminal 100, and the orderer terminal 300 shown in FIG. 1 .
- FIG. 3 is a diagram for explaining an example of each peer terminal 100 in FIG. 2 .
- each peer terminal 100 receives block data from the orderer terminal 300 in FIG. 2 and then performs a commit to store the received block data in the storage unit 150. It is a figure for demonstrating an example.
- FIG. 1 is a diagram for explaining an example of a terminal constituting a hyperledger fabric structure according to an example of the present invention
- FIG. 2 is a client terminal 200, a peer terminal 100, and an orderer terminal ( 300) is a diagram for explaining the flow of information.
- the terminals constituting the Hyperledger fabric architecture are a client terminal 200, a peer terminal 100, and an orderer (Orderer). ) may include a terminal 300 .
- Such a client terminal 200, peer terminal 100, orderer terminal 300 may configure each node of the Hyperledger Fabric network.
- the client terminal 200 is a node required to access the Hyperledger Fabric network, and may generate transaction information Tx including the contents of the transaction information.
- FIG. 1 illustrates a case in which there are a plurality of client terminals 200 as an example, there may be at least one client terminal 200 , and a case in which there is one client terminal 200 is also possible.
- the client terminal 200 When a smart contract is installed or invoked, the client terminal 200 provides transaction information ( Tx) can be created.
- the client terminal 200 may generate the transaction information Tx and transmit it to each of the plurality of peer terminals 100 .
- each transaction information Tx and signature information may be combined and transmitted to the orderer terminal 300 .
- Each of the plurality of peer terminals 100 is the most basic node in the Hyperledger Fabric structure, has a ledger in the peer terminal 100, and may include a chaincode (smart contract).
- Each of the plurality of peer terminals 100 can verify and propagate the received transaction information Tx, and when receiving block data in which the transaction information Tx is blocked from the orderer terminal 300, the peer terminal ( 100) can update the stored ledger in the form of a block chain. Thereafter, when the block chain is updated, the peer terminal 100 may transmit information indicating that the block chain is updated to the client terminal 200 .
- orderer terminal 300 is illustrated in FIG. 1 as an example, the orderer terminal 300 is not necessarily limited thereto, and there may be at least one orderer terminal 300 .
- the plurality of orderer terminals 300 may operate as if one service node.
- the orderer terminal 300 may be provided in the form of an ordering service node (OSN).
- OSN ordering service node
- the orderer terminal 300 may generate block data in which the transaction information Tx is blocked by using the verified transaction information Tx. That is, the orderer terminal 300 may generate block data by sequencing a plurality of transaction information Tx transmitted from clients. In this way, the block data generated by the orderer terminal 300 may be transmitted to each of the plurality of peer terminals 100 and updated in the block chain provided in each peer terminal 100 .
- At least one client terminal 200 generates transaction information Tx (S1), transmits the generated transaction information Tx to a plurality of peer terminals 100 (S2), and includes the transaction information Tx. You can request certification.
- each of the plurality of peer terminals 100 receives an authentication request for each transaction information Tx generated by at least one client terminal 200
- the plurality of peer terminals 100 receive at least one client terminal 200 .
- Check and verify the transaction information (Tx) transmitted from the terminal 200 generate signature information for authenticating the received transaction information (Tx) (S3), and at least one client terminal 200 for the authentication request As a response, signature information may be transmitted (S4).
- the client terminal 200 may receive as many signature information as the number of the plurality of peer terminals 100 for each transaction information Tx.
- the client terminal 200 combines the plurality of signature information received from the plurality of peer terminals 100 with each transaction information Tx (S5), and records the transaction information Tx together with the plurality of signature information into at least one false message. Some may be transmitted to the terminal 300 (S6).
- At least one orderer terminal 300 receives a plurality of signature information and transaction information Tx received from the client terminal 200, and receives a predetermined number of transaction information Tx from the client terminal 200. , it is possible to sort and order the received plurality of transaction information (Tx), and block the received plurality of transaction information (Tx) by an algorithm agreed upon on the network of the Hyperledger Fabric structure to generate block data (S7) have.
- the orderer terminal 300 may transmit the generated block data to each of the plurality of peer terminals 100 (S8).
- each of the plurality of peer terminals 100 When each of the plurality of peer terminals 100 receives block data from at least one orderer terminal 300 , it performs a commit of confirming and verifying the block data ( S9 ), and blocks in the peer terminal 100 .
- the block chain can be updated by connecting to a ledger that is stored in the form of a chain, and the update of the block chain can be transmitted to the client terminal 200 .
- each of the plurality of peer terminals 100 may transmit the block data to the client terminal 200 ( S12 ).
- each of the plurality of peer terminals 100 performs a pre-processing step on the block data received from the orderer terminal 300 in advance and stores it in the cache memory, and then uses the block data stored in the cache memory to Commit can be performed.
- FIG. 3 is a diagram for explaining an example of each peer terminal 100 in FIG. 2
- FIG. 4 is a block data received after each peer terminal 100 receives block data from the orderer terminal 300 in FIG. 2 . It is a diagram for explaining an example of a method of performing a commit to store block data in the storage unit 150 .
- each of the plurality of peer terminals 100 includes a communication unit 110 , a control unit 120 , a buffer memory 130 , and a cache memory 140 . and a storage unit 150 .
- the communication unit 110 may communicate with the client terminal 200 , the orderer terminal 300 , and other peer terminals 100 . Such a communication unit 110 may receive the transaction information (Tx) from the client terminal 200, and block data in which at least one transaction information (Tx) and a plurality of signature information are blocked from the orderer terminal 300 . If the ledger stored in the form of a block chain in the storage unit 150 of the peer is updated, the update event may be transmitted to the client terminal 200 .
- the controller 120 may include an endor 121 and a committer 123 .
- the endor 121 may generate signature information for each transaction information Tx by checking and authenticating each transaction information Tx generated in the client terminal 200 . For example, the endor 121 determines whether a transaction is appropriate through chain code simulation for each transaction information (Tx) transmitted from the client terminal 200, and when it is determined as a normal transaction, the corresponding transaction information (Tx) It is possible to generate signature information for authenticating the , and transmit it to the client terminal 200 through the communication unit 110 .
- the committer 123 verifies the block data received from the orderer terminal 300, performs a plurality of tasks for determining validity, performs a commit, and when it is determined as valid block data , the block data may be updated by chaining the ledger provided in the form of a block chain in the storage unit 150 .
- control unit 120 receives a request from the client terminal 200 for specific block data or specific transaction information (Tx), accesses the block chain stored in the storage unit 150, reads the block chain, and the client It can be controlled to transmit to the terminal.
- Tx specific block data or specific transaction information
- the buffer memory 130 may store a payload block of block data received by the communication unit 110 from the client terminal 200 .
- the orderer terminal 300 may transmit block data in a protocol buffer (protobuf) type, which is serialized data in order to increase the transmission speed of the block data, and the buffer memory 130 is a protocol buffer (protobuf) type.
- a payload block in which a header and metadata are excluded from block data may be stored in a protocol buffer type.
- the cache memory 140 may temporarily store decoded data obtained by decoding a payload block of block data.
- the payload block received in the buffer memory 130 may be decoded by being unmarshalled, and unmarshalted decoded data may be temporarily stored in the cache memory 140 .
- the committer 123 may perform a plurality of tasks of confirming and verifying each of a plurality of transaction information Tx included in each block by using the decoded data stored in the cache memory 140 as described above. .
- the decoded data temporarily stored in the cache memory 140 may be deleted.
- the storage unit 150 may be provided in the form of at least one of a solid state drive (SSD) and a hard disk drive (HDD), and a ledger may be stored in the storage unit 150 in the form of a block chain. Accordingly, when the verification task for the decoded data stored in the cache memory 140 is completed, the decoded data is encoded and chain-connected to the block chain, so that the block chain can be updated.
- the decoded data stored in the cache memory 140 may be encoded by being marshaled, and the decoded data in the storage unit 150 is chain-connected to the block chain in the form of marshaled data and updated.
- each peer terminal 100 receives block data BL from the orderer terminal 300 and then commits to store the received block data BL in the storage unit 150 .
- the method of performing (commit) may include first and second receiving steps (S110A, S110B), first and second temporary storage steps (S120A, S120B), and first and second tasking steps (S130A, S130B). .
- each of the plurality of peer terminals 100 may receive the first and second block data BL1 and BL2 from the orderer terminal 300 .
- the communication unit 110 of each of the plurality of peer terminals 100 performs the first receiving step S110A, the orderer terminal.
- the first payload block PLB1 of the first block data BL1 received from 300 is stored in the buffer memory 130, and the first payload block PLB1 received from the orderer terminal 300 in the second receiving step S110B
- the second payload block PLB2 of the two-block data BL2 may be stored in the buffer memory 130 .
- Each of the first and second block data BL1 and BL2 stored in the buffer memory 130 in the first and second receiving steps S110A and S110B may have a protocol buffer type data type.
- the orderer terminal 300 may transmit the first and second block data BL1 and BL2 to each of the plurality of peer terminals 100 in the form of protocol buffer (Protobuf) type data, and each peer terminal 100 ), the first and second payload blocks PLB1 and PLB2, which are actual data of the first and second block data BL1 and BL2, are removed by removing the header and metadata from the protocol buffer type data form. It may be stored in the buffer memory 130 .
- protocol buffer Protobuf
- the controller 120 decodes the first payload block PLB1 and stores the first decoded data DD1 for the first payload block PLB1 in the cache memory 140 .
- the first temporary storage step S120A is not limited to storing the first decoded data DD1 from which the first payload block PLB1 is decoded in the cache memory 140 , but the first payload block It is also possible that (PLB1) is lightly encoded and stored in the cache memory 140 .
- the encoded level of the first payload block PLB1 stored in the cache memory 140 is the encoded level when the first payload block PLB1 is stored in the storage unit 150 in the form of a block chain.
- This first temporary storage step S120A may be a pre-processing process for the committer 123 to commit the first block data BL1, for example.
- the first payload block PLB1 may be decoded by the controller 120 unmarshalling the first payload block PLB1 in the first temporary storage step S120A.
- the present invention is not necessarily limited to Unmarshal.
- the first tasking step S130A may be performed after the decoding operation on the first payload block PLB1 in the cache memory 140 is completed, and in the first tasking step S130A, the controller 120 controls the cache At least one task on the first block data BL1 may be performed by reading the first decoded data DD1 stored in the memory 140 .
- At least one task for the first block data BL1 in the first tasking step S130A may include a plurality of tasks including first and second tasks Task 1 and Task2. .
- the first and second tasks Task 1 and Task2 may include confirmation and verification tasks for each transaction information Tx included in the first block data BL1 .
- Such a first tasking step (S130A) may be performed by the committer 123 included in the control unit 120 .
- the controller 120 When performing the first task Task1 in the first tasking step S130A, the controller 120 reads the first decoded data DD1 from the cache memory 140 to perform the first task Task1, When performing the second task Task2 in the first tasking step S130A, the controller 120 reads the first decoded data DD1 from the cache memory 140 to perform the second task Task1 have.
- the committer 123 reads the first decoded data DD1 from the cache memory 140 and reads the plurality of tasks Task1 ⁇ Task5) can be performed.
- At least one task for the first block data BL1 may include a storage task, and when the storage task is performed, the first decoded data DD1 is Marshal. ) and may be updated in the storage unit 150 .
- Such a storage task may be the last task that the committer 123 performs on the first block data BL1.
- the first block data B1 in which the first decoded data DD1 stored in the cache memory 140 is encoded is connected to the existing block chain and updated.
- the control unit 120 decodes the second payload block PLB2 to obtain the second payload block PLB2
- the decoded data DD2 may be stored in the cache memory 140 .
- the second temporary storage step S120B is not limited to storing the second decoded data DD2 from which the second payload block PLB2 is decoded in the cache memory 140 , but the second payload block It is also possible that (PLB2) is lightly encoded and stored in the cache memory 140 .
- the encoded level of the second payload block PLB2 stored in the cache memory 140 is the encoded level when the second payload block PLB2 is stored in the storage unit 150 in the form of a block chain. It may be at a lower level.
- the second temporary storage step S120B may be a pre-processing process for the committer 123 to commit the second block data BL2, and the first tasking step S130A It may be executed by the control unit 120 in the middle of the execution. Also in this second temporary storage step (S120B), the controller 120 unmarshals the second payload block PLB2, so that the second payload block PLB2 is decoded, and the decoded second decoded data DD2 may be stored in the cache memory 140 .
- the controller 120 controls the second temporary storage step ( S120B). ) to perform pre-processing of the second payload block PLB2 of the second block data BL2 to decode the second decoded data ( DD2) may be stored in the cache memory 140 .
- the second temporary storage step S120B may be performed in advance before the plurality of tasks Task1 to Task5 of the first tasking step S130A ends.
- the controller 120 sequentially reads the second decoded data DD2 stored in the cache memory 140 after the end of the first tasking step S130A, and the second block data ( At least one task for BL2) may be performed.
- 4 illustrates an example in which three tasks (Task1 to Task3) are performed in the second tasking step (S130B).
- the second block data B2 in which the second decoded data DD2 is encoded is connected to the block chain including the first block data B1 and is in an updated state.
- the payload data is decoded from the buffer memory 130 and stored in the cache memory 140 each time (Pre-processing). -processing) process is not performed, but the entire payload block to be committed is decoded and stored in the cache memory 140 in advance and all pre-processing processes are performed in advance.
- each technical feature will be mainly described, but unless the technical features are incompatible with each other, they may be merged and applied.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Accounting & Taxation (AREA)
- General Engineering & Computer Science (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Finance (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
본 발명은 하이퍼레저 패브릭 구조에서 피어 단말기에 수신된 블록 데이터를 처리하는 방법에 관한 것이다.The present invention relates to a method for processing block data received by a peer terminal in a Hyperledger Fabric architecture.
블록 체인은 누구나 네크워크에 참여할 수 있는 퍼블릭(Public) 블록 체인과, 허락된 대상만 네크워크에 참여할 수 있는 프라이빗(Private) 블록 체인으로 구별될 수 있다. A block chain can be divided into a public block chain where anyone can participate in the network, and a private block chain where only authorized people can participate in the network.
하이퍼레저 패브릭은 허가형 프라이빗 블록체인(Permissioned Private Blockchain)의 형태를 가지며, 누구나 자유롭게 참여 가능한 퍼블릭 블록체인과 달리, 인증 관리 시스템에 의해 하락된 사용자만이 블록 체인 네트워크에 참여할 수 있다.Hyperledger Fabric has the form of a permissioned private blockchain, and unlike a public blockchain where anyone can freely participate, only users who have been downgraded by the authentication management system can participate in the blockchain network.
따라서, 하이퍼레저 패브릭은 다른 퍼블릭 블록 체인보다 보안성이 뛰어 날 수 있으며, 하이퍼레저 패브릭 네크워크에 참여한 노드들은 이미 시스템에 의해 허가된, 신뢰를 가진 노드로 볼 수 있고, 퍼블릭 블록체인에서 사용하는 악의적인 노드를 검증하기 위한 복잡한 합의 알고리즘 등을 필요로 하지 않고, 단지 원장에 접근하려는 사용자가 허가된 노드인가, 그러한 권한이 있는가, 트랜잭션이 제대로 구성되어 있는가를 검증하는 정도로 충분하다. Therefore, Hyperledger Fabric can be more secure than other public blockchains, and nodes participating in the Hyperledger Fabric network can be seen as trusted nodes that have already been authorized by the system, and malicious malicious actors used in the public blockchain It does not require a complex consensus algorithm to verify the in-node, but it is sufficient to verify whether the user who wants to access the ledger is an authorized node, has such authority, and whether the transaction is properly structured.
이와 같은 하이퍼레저 패브릭 네크워크 구조에서는 모든 노드가 블록체인 형태로 저장되는 동일한 원장으로 정보를 공유할 수 있고, 비즈니스 목적에 맞게 공유하고자 하는 노드 간에 별도의 채널을 생성하여 별도의 원장을 생성하는 것도 가능하다.In such a Hyperledger Fabric network structure, all nodes can share information with the same ledger stored in the form of a block chain, and it is also possible to create a separate ledger by creating a separate channel between nodes to be shared for business purposes. do.
이와 같은 하이퍼레저 패브릭 네트워크는 클라이언트(Client) 단말기, 피어(Peer) 단말기 및 오더러(Orderer) 단말기를 포함할 수 있으며, 피어 단말기는 네트워크의 각 노드를 형성하며, 하이퍼레저 패브릭 네트워크에서 인증되고, 참여가 허락된 단말기일 수 있다.Such a Hyperledger Fabric network may include a client terminal, a peer terminal, and an orderer terminal, and the peer terminals form each node of the network and are authenticated in the Hyperledger Fabric network, It may be a terminal that is allowed to participate.
클라이언트 단말기에서는 거래 내용이 포함되는 트랜잭션 정보를 생성하여, 네트워크의 각 피어 단말기로 전송하고, 각 피어 단말기에서는 클라이언트 단말기의 트랜잭션 정보를 인증한 서명 정보를 생성하고, 클라이언트 단말기는 각 트랜잭션 정보에 대한 각 피어 단말기들의 서명 정보를 결합하여 오더러 단말기로 전송할 수 있다.The client terminal generates transaction information including the transaction details and transmits it to each peer terminal in the network. Each peer terminal generates signature information that authenticates the transaction information of the client terminal, and the client terminal receives each transaction information The signature information of the peer terminals may be combined and transmitted to the orderer terminal.
오더러 단말기에서는 클라이언트 단말기로부터 전송되는 복수의 트랜잭션 정보를 블록화하여 블록 데이터를 생성하고, 생성된 블록 데이터를 각 피어 단말기로 전송할 수 있다.The orderer terminal may block a plurality of transaction information transmitted from the client terminal to generate block data, and transmit the generated block data to each peer terminal.
각 피어 단말기에서는 오더러 단말기로부터 전송되는 블록 데이터를 커밋(Commit)하여 검증한 후, 저장부에 블록 체인 형태로 저장할 수 있다.In each peer terminal, the block data transmitted from the orderer terminal can be committed and verified, and then stored in the storage unit in the form of a block chain.
본 발명은 하이퍼레저 패브릭 구조에서 피어 단말기에 수신된 블록 데이터를 처리하는 방법을 제공하는데, 그 목적이 있다.An object of the present invention is to provide a method for processing block data received by a peer terminal in a Hyperledger Fabric architecture.
본 발명의 일례에 따른 피어 단말기가 수신된 블록 데이터를 처리하는 방법은, 트랜잭션 정보를 생성하는 적어도 하나의 클라이언트(Client) 단말기, 트랜잭션 정보를 인증하는 서명 정보를 생성하고, 통신부, 버퍼 메모리(buffer memory), 캐시 메모리(Cache memory), 저장부 및 제어부를 포함하는 복수의 피어(Peer) 단말기 및 적어도 하나의 상기 트랜잭션 정보와 상기 복수의 피어 단말기의 서명 정보를 블록화하여 제1, 2 블록 데이터를 생성하는 오더러(Orderer) 단말기를 포함하는 하이퍼레저 패브릭 구조에서, 상기 복수의 피어(Peer) 단말기에서 상기 통신부가 상기 제1 블록 데이터를 상기 오더러 단말기로부터 수신하여, 상기 제1 블록 데이터의 제1 페이로드(Payload) 블록을 상기 버퍼 메모리에 저장하는 제1 수신 단계; 상기 통신부가 상기 제2 블록 데이터의 제2 페이로드 블록을 상기 버퍼 메모리에 저장하는 제2 수신 단계; 상기 제어부가 제1 페이로드 블록을 디코딩하여 상기 제1 페이로드 블록에 대한 제1 디코딩 데이터를 상기 캐시 메모리에 저장하는 제1 임시 저장 단계; 상기 제어부가 상기 제1 디코딩 데이터를 읽어서, 상기 제1 블록 데이터에 대한 적어도 하나의 테스크(Task)를 수행하는 제1 테스킹 단계; 상기 제어부가 상기 제1 테스킹 단계의 종료 전에, 상기 제2 페이로드 블록을 디코딩하여, 상기 제2 페이로드 블록에 대한 제2 디코딩 데이터를 상기 캐시 메모리에 저장하는 제2 임시 저장 단계; 및 상기 제어부가 상기 제1 테스킹 단계의 종료 후에, 상기 제2 디코딩 데이터를 읽어서, 상기 제2 블록 데이터에 대한 적어도 하나의 테스크(Task)를 수행하는 제2 테스킹 단계를 포함하고, 상기 저장부는 블록 체인을 저장하고, 상기 블록 체인은 상기 제1 테스킹 단계가 종료된 이후, 상기 제1 디코딩 데이터가 인코딩되어 상기 블록 체인에 연결되어 업데이트되고, 상기 블록 체인은 상기 제2 테스킹 단계가 종료된 이후, 상기 제2 디코딩 데이터가 인코딩되어 상기 블록 체인에 연결되어 업데이트된다.In a method for a peer terminal to process received block data according to an example of the present invention, at least one client terminal generating transaction information, generating signature information for authenticating transaction information, a communication unit, a buffer memory (buffer) memory), a cache memory, a storage unit and a control unit, and at least one of the transaction information and the signature information of the plurality of peer terminals to block the first and second block data. In a hyperledger fabric structure including a generating orderer terminal, in the plurality of peer terminals, the communication unit receives the first block data from the orderer terminal, a first receiving step of storing one payload block in the buffer memory; a second receiving step of the communication unit storing a second payload block of the second block data in the buffer memory; a first temporary storage step of the controller decoding a first payload block and storing first decoded data for the first payload block in the cache memory; a first tasking step in which the controller reads the first decoded data and performs at least one task on the first block data; a second temporary storage step in which the controller decodes the second payload block and stores second decoded data for the second payload block in the cache memory before the end of the first tasking step; and a second tasking step in which the controller reads the second decoded data and performs at least one task on the second block data after the end of the first tasking step, wherein the storage The block chain stores the block chain, and after the first tasking step is finished, the first decoded data is encoded and connected to the block chain and updated, and the block chain is updated when the second tasking step is completed After completion, the second decoded data is encoded and updated by being connected to the block chain.
상기 제1 테스킹 단계에서의 상기 제1 블록 데이터에 대한 적어도 하나의 테스크는 제1, 2 테스크를 포함하는 복수의 테스크를 포함하고, 상기 제1 테스킹 단계에서 상기 제1 테스크를 수행할 때, 상기 제어부는 상기 캐시 메모리로부터 상기 제1 디코딩 데이터를 읽어서 상기 제1 테스크를 수행하고, 상기 제1 테스킹 단계에서 상기 제2 테스크를 수행할 때, 상기 제어부는 상기 캐시 메모리로부터 상기 제1 디코딩 데이터를 읽어서 상기 제2 테스크를 수행할 수 있다.At least one task for the first block data in the first tasking step includes a plurality of tasks including first and second tasks, and when the first task is performed in the first tasking step , the controller reads the first decoded data from the cache memory to perform the first task, and when performing the second task in the first tasking step, the controller is configured to perform the first decoding from the cache memory The second task may be performed by reading data.
상기 제1 테스킹 단계에서의 상기 제1 블록 데이터에 대한 적어도 하나의 테스크는 저장 테스크를 포함하고, 상기 저장 테스크가 수행되면, 상기 제1 디코딩 데이터는 마샬(Marshal)되어 상기 저장부에 업데이트될 수 있다.At least one task for the first block data in the first tasking step includes a storage task, and when the storage task is performed, the first decoded data is marshaled and updated in the storage unit. can
상기 저장부는 SSD(Solid State Drive) 및 HDD(Hard Disk Drive) 중 적어도 하나일 수 있다.The storage unit may be at least one of a solid state drive (SSD) and a hard disk drive (HDD).
상기 버퍼 메모리에 저장되는 상기 제1, 2 블록 데이터 각각은 프로토콜 버퍼(Protobuf) 타입의 데이터 형태를 가질 수 있다.Each of the first and second block data stored in the buffer memory may have a data type of a protocol buffer (Protobuf) type.
상기 적어도 하나의 트랜잭션 정보는 거래 정보에 대한 내용을 포함하고, The at least one transaction information includes content about transaction information,
상기 제1, 2 수신 단계 이전에, Before the first and second receiving steps,
상기 복수의 피어 단말기 각각이 적어도 하나의 클라이언트(Client) 단말기에서 생성되는 각각의 트랜잭션 정보에 대한 인증 요청을 수신받는 단계; 및receiving, by each of the plurality of peer terminals, an authentication request for each transaction information generated by at least one client terminal; and
상기 수신된 트랜잭션 정보에 대해 인증하는 서명 정보를 생성하여 상기 적어도 하나의 클라이언트 단말기로 전송하는 단계를 더 포함할 수 있다.The method may further include generating signature information for authenticating the received transaction information and transmitting the generated signature information to the at least one client terminal.
상기 인증정보 전송 단계 이후, 상기 적어도 하나의 클라이언트 단말기가 상기 각각의 트랜잭션 정보에 대해 상기 복수의 피어 단말기로부터 전송되는 복수의 서명 정보를 결합하여 상기 오더러(orderer) 단말기로 전송하는 오더러 전송 단계;를 더 포함할 수 있다.After the authentication information transmission step, the at least one client terminal combines a plurality of signature information transmitted from the plurality of peer terminals with respect to each of the transaction information and transmits the combination to the orderer terminal. ; may be further included.
상기 오더러 전송 단계 이후 상기 제1, 2 수신 단계 이전에, 상기 오더러 단말기가 상기 적어도 하나의 클라이언트 단말기로부터 전송되는 상기 복수의 서명 정보가 결합된 각각의 트랜잭션 정보를 순서화하여 상기 제1 블록 데이터를 생성하는 단계; 및 상기 제1 블록 데이터를 상기 복수의 피어 단말기로 전송하는 단계;를 더 포함할 수 있다.After the orderer transmitting step and before the first and second receiving steps, the orderer terminal orders each transaction information in which the plurality of signature information transmitted from the at least one client terminal are combined to obtain the first block data creating a; and transmitting the first block data to the plurality of peer terminals.
본 발명의 일례에 따른 하이퍼레저 패브릭 구조의 피어 단말기는 오더러(Orderer) 단말기로부터 전송되는 적어도 하나의 트랜잭션 정보와 상기 적어도 하나의 트랜잭션 정보 각각을 인증하는 복수의 서명 정보가 블록화된 제1, 2 블록 데이터를 수신하는 통신부; 수신되는 상기 제1, 2 블록 데이터 각각의 제1, 2 페이로드 블록을 저장하는 버퍼 메모리; 상기 제1, 2 페이로드 블록이 디코딩된 제1, 2 디코딩 데이터가 임시 저장되는 캐시 메모리; 및 상기 제1, 2 페이로드 블록을 디코딩하여 상기 제1, 2 디코딩 데이터로 변환하고, 상기 제1, 2 디코딩 데이터를 읽어서 상기 제1, 2 블록 데이터에 대한 적어도 하나의 테스크를 수행하는 제어부;를 포함하고, 상기 제어부는 상기 제1 페이로드 블록을 디코딩하여 상기 제1 페이로드 블록에 대한 제1 디코딩 데이터를 캐시 메모리(Cache memory)에 저장하는 한 후, 상기 제1 디코딩 데이터를 읽어서, 상기 제1 블록 데이터에 대한 적어도 하나의 테스크(Task)를 수행하는 제1 테스킹 단계를 수행하되, 상기 제1 테스킹 단계의 종료 전에, 상기 제2 페이로드 블록을 디코딩하여, 상기 제2 페이로드 블록에 대한 제2 디코딩 데이터를 상기 캐시 메모리에 저장하고, 상기 제1 테스킹 단계의 종료 후에, 상기 제2 디코딩 데이터를 읽어서, 상기 제2 블록 데이터에 대한 적어도 하나의 테스크(Task)를 수행한다.In a peer terminal having a hyperledger fabric structure according to an example of the present invention, at least one transaction information transmitted from an orderer terminal and a plurality of signature information for authenticating each of the at least one transaction information are blocked first and second a communication unit for receiving block data; a buffer memory for storing first and second payload blocks of the received first and second blocks of data, respectively; a cache memory for temporarily storing first and second decoded data obtained by decoding the first and second payload blocks; and a controller for decoding the first and second payload blocks to convert the first and second decoded data into the first and second decoded data, and reading the first and second decoded data to perform at least one task on the first and second block data; wherein the control unit decodes the first payload block and stores the first decoded data for the first payload block in a cache memory, and then reads the first decoded data, A first tasking step of performing at least one task on the first block data is performed, and before the end of the first tasking step, by decoding the second payload block, the second payload Storing second decoded data for a block in the cache memory, and reading the second decoded data after completion of the first tasking step to perform at least one task on the second block data .
블록 체인이 저장되는 저장부;를 더 포함하되, 상기 저장부에는 상기 제1 블록 데이터에 대한 적어도 하나의 테스크(Task)가 종료된 이후, 상기 제1 디코딩 데이터가 상기 저장부의 상기 블록 체인에 연결되어 업데이트되고, 상기 제2 블록 데이터에 대한 적어도 하나의 테스크(Task)가 종료된 이후, 상기 제2 디코딩 데이터가 상기 저장부의 상기 블록 체인에 연결되어 업데이트될 수 있다.The storage unit further includes a storage unit storing a block chain, wherein after at least one task for the first block data is completed, the first decoded data is connected to the block chain of the storage unit is updated, and after at least one task for the second block data is completed, the second decoded data may be connected to the block chain of the storage unit and updated.
상기 제1 블록 데이터에 대한 적어도 하나의 테스크는 제1, 2 테스크를 포함하는 복수의 테스크를 포함하고, 상기 제어부가 상기 제1 테스크를 수행할 때, 상기 캐시 메모리를 읽어서 상기 제1 테스크를 수행하고, 상기 제2 테스크를 수행할 때, 상기 캐시 메모리를 읽어서 상기 제2 테스크를 수행할 수 있다.The at least one task for the first block data includes a plurality of tasks including first and second tasks, and when the controller performs the first task, the first task is performed by reading the cache memory and, when performing the second task, the second task may be performed by reading the cache memory.
상기 제어부는 상기 버퍼 메모리에 저장된 상기 제1, 2 페이로드 블록을 언마샬(Unmarshal)하여 상기 캐시 메모리에 제1, 2 디코딩 데이터로 저장할 수 있다.The controller may unmarshal the first and second payload blocks stored in the buffer memory and store the first and second decoded data in the cache memory.
상기 제어부는 상기 제1, 2 디코딩 데이터 각각을 마샬(Marshal)하여 상기 저장부의 블록 체인에 연결하여 업데이트할 수 있다.The control unit may marshal each of the first and second decoded data and connect them to the block chain of the storage unit to update them.
상기 저장부는 SSD(Solid State Drive) 및 HDD(Hard Disk Drive) 중 적어도 하나일 수 있다.The storage unit may be at least one of a solid state drive (SSD) and a hard disk drive (HDD).
상기 버퍼 메모리에 저장되는 상기 제1, 2 블록 데이터 각각은 프로토콜 버퍼(Protobuf) 타입의 데이터 형태를 가질 수 있다.Each of the first and second block data stored in the buffer memory may have a data type of a protocol buffer (Protobuf) type.
상기 적어도 하나의 트랜잭션 정보는 거래 정보에 대한 내용을 포함하고, 제어부는 상기 제1, 2 블록 데이터가 수신되기 이전에, 클라이언트(Client) 단말기에서 생성되어 수신되는 트랜잭션 정보에 대한 인증 요청에 대해 인증하는 서명 정보를 생성하여 클라이언트 단말기로 전송할 수 있다. The at least one transaction information includes the transaction information, and the control unit authenticates the authentication request for the transaction information generated and received by the client terminal before the first and second block data are received. signature information can be generated and transmitted to the client terminal.
본 발명의 일례에 따른 하이퍼레저 패브릭 구조에서 피어 단말기에 수신된 블록 데이터를 처리하는 방법은 이전의 테스킹 단계 종료 전에, 제어부가 현재의 페이로드 블록을 미리 디코딩하여 케시 메모리에 저장하도록 하고, 현재의 페이로드 블록을 검증하기 위해 커밋(Commit)을 수행할 때, 캐시 메모리에 저장된 페이로드를 활용하도록 하여 커밋의 처리 단계를 보다 단순화할 수 있고, 피어 단말기의 처리 속도를 보다 향상시킬 수 있다.In the method for processing block data received from a peer terminal in a hyperledger fabric structure according to an example of the present invention, before the previous tasking step is completed, the control unit decodes the current payload block in advance and stores it in the cache memory, When performing a commit to verify the payload block of , it is possible to further simplify the processing step of the commit by utilizing the payload stored in the cache memory, and to further improve the processing speed of the peer terminal.
도 1은 본 발명의 일례에 따른 하이퍼레저 패브릭 구조를 구성하는 단말기의 일례를 설명하기 위한 도이다.1 is a diagram for explaining an example of a terminal constituting a hyperledger fabric structure according to an example of the present invention.
도 2는 도 1에 도시된 클라이언트 단말기(200), 피어 단말기(100) 및 오더러 단말기(300) 사이의 정보 흐름을 설명하기 위한 도이다.FIG. 2 is a diagram for explaining information flow between the
도 3은 도 2에서 각 피어 단말기(100)의 일례를 설명하기 위한 도이다.FIG. 3 is a diagram for explaining an example of each
도 4는 도 2에서 각 피어 단말기(100)가 오더러 단말기(300)로부터 블록 데이터를 수신한 후, 수신된 블록 데이터를 저장부(150)에 저장하기 위해 커밋(commit)을 수행하는 방법의 일례를 설명하기 위한 도이다.4 is a method in which each
이하, 첨부된 도면을 참조하여 본 발명의 실시예들을 상세히 설명한다. 본 발명을 설명하는데 있어서, 해당 분야에 이미 공지된 기술 또는 구성에 대한 구체적인 설명을 부가하는 것이 본 발명의 요지를 불분명하게 할 수 있다고 판단되는 경우에는 상세한 설명에서 이를 일부 생략하도록 한다. 또한, 본 명세서에서 사용되는 용어들은 본 발명의 실시예들을 적절히 표현하기 위해 사용된 용어들로서, 이는 해당 분야의 관련된 사람 또는 관례 등에 따라 달라질 수 있다. 따라서, 본 용어들에 대한 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. In describing the present invention, if it is determined that adding a detailed description of a technique or configuration already known in the field may make the gist of the present invention unclear, some of it will be omitted from the detailed description. In addition, the terms used in this specification are terms used to properly express embodiments of the present invention, which may vary according to a person or custom in the relevant field. Accordingly, definitions of these terms should be made based on the content throughout this specification.
여기서 사용되는 전문용어는 단지 특정 실시예를 언급하기 위한 것이며, 본 발명을 한정하는 것을 의도하지 않는다. 여기서 사용되는 단수 형태들은 문구들이 이와 명백히 반대의 의미를 나타내지 않는 한 복수 형태들도 포함한다. 명세서에서 사용되는 ‘포함하는’의 의미는 특정 특성, 영역, 정수, 단계, 동작, 요소 및/또는 성분을 구체화하며, 다른 특정 특성, 영역, 정수, 단계, 동작, 요소, 성분 및/또는 군의 존재나 부가를 제외시키는 것은 아니다.The terminology used herein is for the purpose of referring to specific embodiments only, and is not intended to limit the invention. As used herein, the singular forms also include the plural forms unless the phrases clearly indicate the opposite. As used herein, the meaning of 'comprising' specifies a particular characteristic, region, integer, step, operation, element and/or component, and other specific characteristic, region, integer, step, operation, element, component, and/or group. It does not exclude the existence or addition of
이하, 첨부된 도면들을 참조하여 본 발명에 대해 설명한다.Hereinafter, the present invention will be described with reference to the accompanying drawings.
도 1은 본 발명의 일례에 따른 하이퍼레저 패브릭 구조를 구성하는 단말기의 일례를 설명하기 위한 도이고, 도 2는 도 1에 도시된 클라이언트 단말기(200), 피어 단말기(100) 및 오더러 단말기(300) 사이의 정보 흐름을 설명하기 위한 도이다.1 is a diagram for explaining an example of a terminal constituting a hyperledger fabric structure according to an example of the present invention, and FIG. 2 is a
도 1에 도시된 바와 같이, 본 발명의 일례에 따른 하이퍼레저 패브릭 구조(Hyperledger fabric Architecture)를 구성하는 단말기는 클라이언트(client) 단말기(200), 피어(Peer) 단말기(100) 및 오더러(Orderer) 단말기(300)를 포함할 수 있다. 이와 같은 클라이언트 단말기(200), 피어 단말기(100) 오더러 단말기(300)는 하이퍼레저 패브릭 네트워크의 각 노드(node)를 구성할 수 있다.1, the terminals constituting the Hyperledger fabric architecture according to an example of the present invention are a
클라이언트 단말기(200)는 하이퍼레저 패브릭 네트워크에 접근하기 위해 필요한 노드로, 거래 정보에 대한 내용을 포함하는 트랜잭션(transaction) 정보(Tx)를 생성할 수 있다. 도 1에서는 클라이언트 단말기(200)가 복수 개인 경우를 일례로 도시하였으나, 클라이언트 단말기(200)는 적어도 하나 이상일 수 있고, 클라이언트 단말기(200)가 하나인 경우도 가능하다.The
클라이언트 단말기(200)는 스마트 컨트랙트가 설치되거나 호출될 때, 채널을 생성하거나 특정 피어 단말기(100)를 채널에 참가하게 하는 등 하이퍼레저 패브릭 네트워크에서 비즈니스 로직을 수행하기 위한 요청들에 대한 트랜잭션 정보(Tx)를 생성할 수 있다. When a smart contract is installed or invoked, the
이와 같이 클라이언트 단말기(200)는 트랜잭션 정보(Tx)를 생성하여, 복수의 피어 단말기(100) 각각에 전송할 수 있다. 클라이언트 단말기(200)가 복수의 피어 단말기(100)로부터 트랜잭션 정보(Tx)를 인증한 서명 정보를 받으면, 각 트랜잭션 정보(Tx)와 서명 정보를 결합하여 오더러 단말기(300)로 전송할 수 있다.In this way, the
복수의 피어 단말기(100) 각각은 하이퍼레저 패브릭 구조에서 가장 기본이 되는 노드로, 피어 단말기(100) 내에 원장(ledger)를 가지며, 체인코드(smart contract)를 구비할 수 있다. Each of the plurality of
이와 같은 복수의 피어 단말기(100) 각각은 수신된 트랜잭션 정보(Tx)를 검증하고 전파할 수 있으며, 오더러 단말기(300)로부터 트랜잭션 정보(Tx)가 블록화된 블록 데이터를 수신하면, 피어 단말기(100)는 블록 체인 형태로 저장된 원장을 업데이트할 수 있다. 이후 블록 체인이 업데이트되면, 피어 단말기(100)는 블록 체인이 업데이트되었다는 정보를 클라이언트 단말기(200)로 전송할 수 있다.Each of the plurality of
오더러 단말기(300)는 도 1에서는 오더러 단말기(300)가 하나인 경우를 일례로 도시하였으나, 오더러 단말기(300)는 반드시 이에 한정되는 것은 아니고, 적어도 하나 이상일 수 있다. Although one
만약, 오더러 단말기(300)는 복수 개인 경우, 복수의 오더러 단말기(300)가 마치 하나의 서비스 노드처럼 동작될 수도 있다. 일례로 오더러 단말기(300)가 OSN(Ordering Service Node) 형태로 구비될 수 있다.If there are a plurality of
이와 같은 오더러 단말기(300)는 검증된 트랜잭션 정보(Tx)들을 이용하여, 트랜잭션 정보(Tx)들이 블록화된 블록 데이터를 생성할 수 있다. 즉, 오더러 단말기(300)는 클라이언트들로부터 전송되는 복수의 트랜잭션 정보(Tx)들을 순서화하여, 블록 데이터를 생성할 수 있다. 이와 같이, 오더러 단말기(300)에서 생성된 블록 데이터는 복수의 피어 단말기(100) 각각으로 전송되어, 각 피어 단말기(100)에 구비된 블록 체인에 업데이트될 수 있다.The
본 발명의 일례에 따른 하이퍼레저 패브릭 구조(Hyperledger fabric Architecture)에서 적어도 하나의 클라이언트 단말기(200), 복수의 피어 단말기(100) 및 적어도 하나의 오더러 단말기(300)가 동작되는 방법의 일례에 대해 설명하면 다음과 같다.An example of a method in which at least one
먼저, 적어도 하나의 클라이언트 단말기(200)는 트랜잭션 정보(Tx)를 생성(S1)하여, 생성된 트랜잭션 정보(Tx)를 복수의 피어 단말기(100)로 전송(S2)하여 트랜잭션 정보(Tx)에 대한 인증을 요청할 수 있다. First, at least one
복수의 피어 단말기(100) 각각이 적어도 하나의 클라이언트(client) 단말기(200)에서 생성되는 각각의 트랜잭션 정보(Tx)에 대한 인증 요청을 수신받으면, 복수의 피어 단말기(100)는 적어도 하나의 클라이언트 단말기(200)로부터 전송된 트랜잭션 정보(Tx)를 확인하고 검증하여, 수신된 트랜잭션 정보(Tx)를 인증하는 서명 정보를 생성(S3)하고, 적어도 하나의 클라이언트 단말기(200)의 인증 요청에 대한 응답(Response)으로, 서명 정보를 전송(S4)할 수 있다. When each of the plurality of
이에 따라, 클라이언트 단말기(200)는 각 트랜잭션 정보(Tx)에 대해 복수의 피어 단말기(100)의 개수만큼의 서명 정보를 전송받을 수 있다.Accordingly, the
클라이언트 단말기(200)는 복수의 피어 단말기(100)로부터 받은 복수의 서명 정보를 각각의 트랜잭션 정보(Tx)에 결합(S5)하여, 복수의 서명 정보와 함께 트랜잭션 정보(Tx)를 적어도 하나의 오더러 단말기(300)로 전송(S6)할 수 있다.The
적어도 하나의 오더러 단말기(300)는 클라이언트 단말기(200)로부터 수신받은 복수의 서명 정보와 트랜잭션 정보(Tx)를 전송받되, 트랜잭션 정보(Tx)를 미리 정해진 개수만큼 클라이언트 단말기(200)로부터 수신 받으면, 수신받은 복수의 트랜잭션 정보(Tx)들을 정렬 및 순서화하고, 하이퍼레저 패브릭 구조의 네트워크 상에서 합의된 알고리즘에 의해, 수신받은 복수의 트랜잭션 정보(Tx)들을 블록화하여 블록 데이터를 생성(S7)할 수 있다. 오더러 단말기(300)는 생성된 블록 데이터를 복수의 피어 단말기(100) 각각으로 전송(S8)할 수 있다.At least one
복수의 피어 단말기(100) 각각은 적어도 하나의 오더러 단말기(300)로부터 블록 데이터를 전송받으면, 블록 데이터를 확인 및 검증(S9)하는 커밋(Commit)을 수행하고, 피어 단말기(100) 내에 블록 체인 형태로 저장되는 원장(Ledger)에 연결하여 블록 체인을 업데이트할 수 있고, 블록 체인이 업데이트되었음을 클라이언트 단말기(200)로 전송할 수 있다.When each of the plurality of
아울러, 이후에, 복수의 피어 단말기(100) 각각은 클라이언트 단말기(200)로부터 블록 데이터에 대한 요청이 수신(S11)되면, 클라이언트 단말기(200)로 블록 데이터를 전송(S12)할 수 있다.In addition, thereafter, when a request for block data is received from the client terminal 200 ( S11 ), each of the plurality of
한편, 본 발명에서는, 복수의 피어 단말기(100) 각각은 오더러 단말기(300)로부터 수신받은 블록 데이터에 대해 미리 전처리 단계를 수행하여 캐시 메모리에 저장한 이후, 캐시 메모리에 저장된 블록 데이터를 이용하여 커밋(Commit)을 수행할 수 있다.Meanwhile, in the present invention, each of the plurality of
이에 대해, 보다 구체적으로 다음의 도 3 및 도 4를 참조하여 보다 구체적으로 설명한다.This will be described in more detail with reference to FIGS. 3 and 4 below.
도 3은 도 2에서 각 피어 단말기(100)의 일례를 설명하기 위한 도이고, 도 4는 도 2에서 각 피어 단말기(100)가 오더러 단말기(300)로부터 블록 데이터를 수신한 후, 수신된 블록 데이터를 저장부(150)에 저장하기 위해 커밋(commit)을 수행하는 방법의 일례를 설명하기 위한 도이다.3 is a diagram for explaining an example of each
본 발명의 일례에 따른 복수의 피어 단말기(100) 각각은 도 3에 도시된 바와 같이, 통신부(110), 제어부(120), 버퍼 메모리(buffer memory, 130), 캐시 메모리(cache memory, 140) 및 저장부(150)를 포함할 수 있다. As shown in FIG. 3 , each of the plurality of
통신부(110)는 클라이언트 단말기(200), 오더러 단말기(300) 및 다른 피어 단말기(100)와 통신을 수행할 수 있다. 이와 같은 통신부(110)는 클라이언트 단말기(200)로부터 트랜잭션 정보(Tx)를 수신할 수 있으며, 오더러 단말기(300)로부터 적어도 하나의 트랜잭션 정보(Tx)와 복수의 서명 정보가 블록화된 블록 데이터를 수신받을 수 있으며, 피어의 저장부(150)에 블록 체인 형태로 저장되는 원장(ledger)이 업데이트되면, 업데이트 이벤트를 클라이언트 단말기(200)로 전송할 수 있다.The
제어부(120)는 엔도저(Endorser, 121) 및 커미터(Committer, 123)를 포함할 수 있다. The
엔도저(121)는 클라이언트 단말기(200)에서 생성된 각 트랜잭션 정보(Tx)를 확인하고 인증하여, 각 트랜잭션 정보(Tx)에 대한 서명 정보를 생성할 수 있다. 일례로, 엔도저(121)는 클라이언트 단말기(200)로부터 전송된 각 트랜잭션 정보(Tx)에 대해 체인코드 시뮬레이션을 통해 트랜잭션이 적절한지 판단한 후, 정상적인 트랜잭션으로 판단된 경우, 해당 트랜잭션 정보(Tx)에 대해 인증하는 서명 정보를 생성하여, 통신부(110)를 통하여 클라이언트 단말기(200)로 전송할 수 있다.The
커미터(123)는 오더러 단말기(300)로부터 수신받은 블록 데이터를 검증하고, 유효성을 판단하기 위한 복수의 테스크(task)를 수행하여 커밋(commit)을 수행한 후, 유효한 블록 데이터로 판단되는 경우, 블록 데이터를 저장부(150)에 블록 체인 형태로 구비된 원장(Ledger)에 체인 연결하여 업데이트할 수 있다.The
아울러, 제어부(120)는 특정 블록 데이터 또는 특정 트랜잭션 정보(Tx)에 대해 클라이언트 단말기(200)로부터 요청을 받으며, 저장부(150)에 저장된 블록 체인에 접근하여, 해당 블록 체인을 읽어, 클라이넌트 단말기로 전송하도록 제어할 수 있다.In addition, the
버퍼 메모리(130)는 통신부(110)가 클라이언트 단말기(200)로부터 수신받은 블록 데이터의 페이로드(Payload) 블록을 저장할 수 있다. 일례로, 오더러 단말기(300)는 블록 데이터를 전송 속도를 높이기 위하여 직렬화된 데이터 형태인 프로토콜 버퍼(protobuf) 타입으로 블록 데이터를 전송할 수 있으며, 버퍼 메모리(130)는 프로토콜 버퍼(protobuf) 타입의 블록 데이터로부터 헤더와 메타데이터 등이 제외된 페이로드 블록이 프로토콜 버퍼(protobuf) 타입으로 저장될 수 있다.The
캐시 메모리(140)는 블록 데이터의 페이로드 블록이 디코딩된 디코딩 데이터가 임시 저장될 수 있다. 일례로, 버퍼 메모리(130)에 수신된 페이로드 블록은 언마샬(Unmarshal)됨으로써 디코딩될 수 있고, 언마샬(Unmarshal)된 디코딩 데이터가 캐시 메모리(140)에 임시 저장될 수 있다.The
커미터(123)는 이와 같은 캐시 메모리(140)에 저장된 디코딩 데이터를 이용하여, 각 블록에 포함되는 복수의 트랜잭션 정보(Tx) 각각에 대해 확인하고 검증하는 복수의 테스크(task)를 수행할 수 있다. The
캐시 메모리(140)에 저장된 각 블록 데이터에 대한 디코딩 데이터의 검증이 완료되어, 블록 체인이 업데이트되면, 캐시 메모리(140)에 임시 저장되었던, 디코딩 데이터는 삭제될 수 있다. When the verification of the decoded data for each block data stored in the
저장부(150)는 SSD(Solid State Drive) 및 HDD(Hard Disk Drive) 중 적어도 하나의 형태로 구비될 수 있으며, 저장부(150)에는 원장(ledger)이 블록 체인 형태로 저장될 수 있다. 따라서, 캐시 메모리(140)에 저장되었던 디코딩 데이터에 대한 검증 작업(Task)이 완료되면, 디코딩 데이터가 인코딩되고 블록 체인에 체인 연결됨으로써, 블록 체인이 업데이트될 수 있다. 여기서, 일례로, 캐시 메모리(140)에 저장되었던 디코딩 데이터는 마샬(Marshal)됨으로써 인코딩될 수 있고, 저장부(150)에는 디코딩 데이터가 마샬(Marshal)된 데이터 형태로 블록 체인에 체인 연결되어 업데이트될 수 있다.The
도 4에 도시된 바와 같이, 각 피어 단말기(100)가 오더러 단말기(300)로부터 블록 데이터(BL)를 수신한 후, 수신된 블록 데이터(BL)를 저장부(150)에 저장하기 위해 커밋(commit)을 수행하는 방법은 제1, 2 수신 단계(S110A, S110B), 제1, 2 임시 저장 단계(S120A, S120B), 제1, 2 테스킹 단계(S130A, S130B)를 포함할 수 있다.As shown in FIG. 4 , each
일례로, 복수의 피어 단말기(100) 각각은 오더러 단말기(300)로부터 제1, 2 블록 데이터(BL1, BL2)를 수신받을 수 있다.For example, each of the plurality of
복수의 피어 단말기(100) 각각이 제1, 2 블록 데이터(BL1, BL2)를 수신받으면, 복수의 피어 단말기(100) 각각의 통신부(110)는 제1 수신 단계(S110A)에서, 오더러 단말기(300)로부터 수신된 제1 블록 데이터(BL1)의 제1 페이로드 블록(PLB1)을 버퍼 메모리(130)에 저장하고, 제2 수신 단계(S110B)에서 오더러 단말기(300)로부터 수신된 제2 블록 데이터(BL2)의 제2 페이로드 블록(PLB2)을 버퍼 메모리(130)에 저장할 수 있다.When each of the plurality of
이와 같은 제1, 2 수신 단계(S110A, S110B)에서 버퍼 메모리(130)에 저장되는 제1, 2 블록 데이터(BL1, BL2) 각각은 프로토콜 버퍼(Protobuf) 타입의 데이터 형태를 가질 수 있다.Each of the first and second block data BL1 and BL2 stored in the
일례로, 오더러 단말기(300)는 복수의 피어 단말기(100) 각각으로 제1, 2 블록 데이터(BL1, BL2)를 프로토콜 버퍼(Protobuf) 타입의 데이터 형태로 전송할 수 있으며, 각 피어 단말기(100) 각각은 프로토콜 버퍼(Protobuf) 타입의 데이터 형태에서 헤더와 메타데이터 등을 제거하여, 제1, 2 블록 데이터(BL1, BL2)의 실질적인 데이터인 제1, 2 페이로드 블록(PLB1, PLB2)이 버퍼 메모리(130)에 저장될 수 있다. For example, the
제1 임시 저장 단계(S120A)에서는 제어부(120)가 제1 페이로드 블록(PLB1)을 디코딩하여 제1 페이로드 블록(PLB1)에 대한 제1 디코딩 데이터(DD1)를 캐시 메모리(140)에 저장할 수 있다. In the first temporary storage step S120A, the
이와 같은 제1 임시 저장 단계(S120A)가 제1 페이로드 블록(PLB1)이 디코딩된 제1 디코딩 데이터(DD1)가 캐시 메모리(140)에 저장되는 것에만 한정되는 것은 아니고, 제1 페이로드 블록(PLB1)이 가볍게 인코딩되어 캐시 메모리(140)에 저장되는 것도 가능하다. 이와 같은 경우, 캐시 메모리(140)에 저장된 제1 페이로드 블록(PLB1)이 인코딩된 수준은 제1 페이로드 블록(PLB1)이 저장부(150)에 블록 체인 형태로 저장될 때, 인코딩된 수준보다 낮은 수준일 수 있다.이와 같은 제1 임시 저장 단계(S120A)는 커미터(123)가 제1 블록 데이터(BL1)를 커밋(commit)하기 위한 전처리(Pre-processing) 과정일 수 있으며, 일례로, 제1 임시 저장 단계(S120A)에서는 제어부(120)가 제1 페이로드 블록(PLB1)을 언마샬(Unmarshal)함으로써, 제1 페이로드 블록(PLB1)이 디코딩될 수 있다. 그러나, 본 발명이 반드시 언마샬(Unmarshal)에만 한정되는 것은 아니다.The first temporary storage step S120A is not limited to storing the first decoded data DD1 from which the first payload block PLB1 is decoded in the
제1 테스킹 단계(S130A)는 캐시 메모리(140)에 제1 페이로드 블록(PLB1)에 대한 디코딩 작업이 완료된 이후 수행될 수 있으며, 제1 테스킹 단계(S130A)에서는 제어부(120)가 캐시 메모리(140)에 저장된 제1 디코딩 데이터(DD1)를 읽어서, 제1 블록 데이터(BL1)에 대한 적어도 하나의 테스크(Task)를 수행할 수 있다. The first tasking step S130A may be performed after the decoding operation on the first payload block PLB1 in the
예를 들어, 제1 테스킹 단계(S130A)에서의 제1 블록 데이터(BL1)에 대한 적어도 하나의 테스크는 제1, 2 테스크(Task 1, Task2)를 포함하는 복수의 테스크를 포함할 수 있다. 예를 들어, 제1, 2 테스크(Task 1, Task2)는 제1 블록 데이터(BL1)에 포함되는 각 트랜잭션 정보(Tx)에 대한 확인 및 검증 작업 등을 포함할 수 있다. 이와 같은 제1 테스킹 단계(S130A)는 제어부(120)에 포함된 커미터(123)에 의해 수행될 수 있다.For example, at least one task for the first block data BL1 in the first tasking step S130A may include a plurality of tasks including first and
제1 테스킹 단계(S130A)에서 제1 테스크(Task1)를 수행할 때, 제어부(120)는 캐시 메모리(140)로부터 제1 디코딩 데이터(DD1)를 읽어서 제1 테스크(Task1)를 수행하고, 제1 테스킹 단계(S130A)에서 제2 테스크(Task2)를 수행할 때, 제어부(120)는 캐시 메모리(140)로부터 제1 디코딩 데이터(DD1)를 읽어서 제2 테스크(Task1)를 수행할 수 있다. When performing the first task Task1 in the first tasking step S130A, the
이와 같이, 제1 테스킹 단계(S130A)에서 복수의 테스크(Task1 ~ Task5)가 수행될 때, 커미터(123)는 캐시 메모리(140)로부터 제1 디코딩 데이터(DD1)를 읽어서 복수의 테스크(Task1 ~ Task5)를 수행할 수 있다.As such, when the plurality of tasks Task1 to Task5 are performed in the first tasking step S130A, the
이와 같은 제1 테스킹 단계(S130A)는 제1 블록 데이터(BL1)에 대한 적어도 하나의 테스크는 저장 테스크를 포함할 수 있으며, 저장 테스크가 수행되면, 제1 디코딩 데이터(DD1)는 마샬(Marshal)되어 저장부(150)에 업데이트될 수 있다. 이와 같은 저장 테스크는 커미터(123)가 제1 블록 데이터(BL1)에 대해 수행하는 마지막 테스크일 수 있다.In the first tasking step S130A, at least one task for the first block data BL1 may include a storage task, and when the storage task is performed, the first decoded data DD1 is Marshal. ) and may be updated in the
이에 따라, 제1 테스킹 단계(S130A)가 종료되면, 캐시 메모리(140)에 저장된 제1 디코딩 데이터(DD1)가 인코딩된 제1 블록 데이터(B1)가 기존의 블록 체인에 연결되어 업데이트된 상태일 수 있다.Accordingly, when the first tasking step S130A is finished, the first block data B1 in which the first decoded data DD1 stored in the
제2 임시 저장 단계(S120B)에서는 제어부(120)가 제1 테스킹 단계(S130A)의 종료 전에, 제2 페이로드 블록(PLB2)을 디코딩하여, 제2 페이로드 블록(PLB2)에 대한 제2 디코딩 데이터(DD2)를 캐시 메모리(140)에 저장할 수 있다.In the second temporary storage step S120B, before the end of the first tasking step S130A, the
이와 같은 제2 임시 저장 단계(S120B)가 제2 페이로드 블록(PLB2)이 디코딩된 제2 디코딩 데이터(DD2)가 캐시 메모리(140)에 저장되는 것에만 한정되는 것은 아니고, 제2 페이로드 블록(PLB2)이 가볍게 인코딩되어 캐시 메모리(140)에 저장되는 것도 가능하다. 이와 같은 경우, 캐시 메모리(140)에 저장된 제2 페이로드 블록(PLB2)이 인코딩된 수준은 제2 페이로드 블록(PLB2)이 저장부(150)에 블록 체인 형태로 저장될 때, 인코딩된 수준보다 낮은 수준일 수 있다.The second temporary storage step S120B is not limited to storing the second decoded data DD2 from which the second payload block PLB2 is decoded in the
즉, 제2 임시 저장 단계(S120B)는 커미터(123)가 제2 블록 데이터(BL2)를 커밋(commit)하기 위한 전처리(Pre-processing) 과정일 수 있으며, 제1 테스킹 단계(S130A)가 수행되는 중간에 제어부(120)에 의해 실행될 수 있다. 이와 같은 제2 임시 저장 단계(S120B)도 제어부(120)가 제2 페이로드 블록(PLB2)을 언마샬(Unmarshal)함으로써, 제2 페이로드 블록(PLB2)이 디코딩되어, 디코딩된 제2 디코딩 데이터(DD2)가 캐시 메모리(140)에 저장될 수 있다.That is, the second temporary storage step S120B may be a pre-processing process for the
일례로, 제1 테스킹 단계(S130A)에서, 커미터(123)가 제1 테스크(Task1) 내지 제5 테스트(Task 5)를 수행하는 중간에, 제어부(120)가 제2 임시 저장 단계(S120B)를 수행하여, 제2 블록 데이터(BL2)의 제2 페이로드 블록(PLB2)에 대한 전처리(Pre-processing)를 수행하여, 제2 페이로드 블록(PLB2) 전체가 디코딩된 제2 디코딩 데이터(DD2)를 캐시 메모리(140)에 저장할 수 있다.For example, in the first tasking step ( S130A ), in the middle of the
이에 따라, 제2 임시 저장 단계(S120B)는 제1 테스킹 단계(S130A)의 복수의 테스크(Task1~Task5)가 종료하기 전에 미리 수행될 수 있다.Accordingly, the second temporary storage step S120B may be performed in advance before the plurality of tasks Task1 to Task5 of the first tasking step S130A ends.
제2 테스킹 단계(S130B)에서는 제어부(120)가 제1 테스킹 단계(S130A)의 종료 후에, 순차적으로 캐시 메모리(140)에 저장된 제2 디코딩 데이터(DD2)를 읽어서, 제2 블록 데이터(BL2)에 대한 적어도 하나의 테스크(Task)를 수행할 수 있다. 도 4에서는 제2 테스킹 단계(S130B)에서 3개의 테스크(Task1 ~ Task3)가 수행되는 경우를 일례로 도시하였다.In the second tasking step S130B, the
제2 테스킹 단계(S130B)가 종료되면, 제2 디코딩 데이터(DD2)가 인코딩된 제2 블록 데이터(B2)가 제1 블록 데이터(B1)를 포함하는 블록 체인에 연결되어 업데이트된 상태일 수 있다.When the second tasking step S130B is finished, the second block data B2 in which the second decoded data DD2 is encoded is connected to the block chain including the first block data B1 and is in an updated state. have.
이와 같이, 본 발명은 커미터(123)가 커밋을 수행하기 위해 복수의 테스크 각각을 수행할 때마다, 매번 버퍼 메모리(130)로부터 페이로드 데이터를 디코딩하여 캐시 메모리(140)에 저장하는 전처리(Pre-processing) 과정을 수행하는 것이 아니라, 커밋할 페이로드 블록 전체를 캐시 메모리(140)에 디코딩하여 미리 저장하여 전처리(Pre-processing) 과정을 모두 미리 수행한 이후, 커미터(123)가 캐시 메모리(140)에 저장된 디코딩 데이터를 이용하여 복수의 테스크를 수행하도록 함으로써, 커미터(123)가 블록 데이터를 확인하거나 검증하는 복수의 테스크를 수행할 때, 매번 페이로드 블록을 디코딩할 필요가 없어, 피어 단말기(100)의 처리 속도를 보다 향상시킬 수 있다.As described above, according to the present invention, whenever the
본 발명의 각 실시예에 개시된 기술적 특징들은 해당 실시예에만 한정되는 것은 아니고, 서로 양립 불가능하지 않은 이상, 각 실시예에 개시된 기술적 특징들은 서로 다른 실시예에 병합되어 적용될 수 있다.The technical features disclosed in each embodiment of the present invention are not limited only to the embodiment, and unless they are mutually incompatible, the technical features disclosed in each embodiment may be combined and applied to different embodiments.
따라서, 각 실시예에서는 각각의 기술적 특징을 위주로 설명하지만, 각 기술적 특징이 서로 양립 불가능하지 않은 이상, 서로 병합되어 적용될 수 있다.Accordingly, in each embodiment, each technical feature will be mainly described, but unless the technical features are incompatible with each other, they may be merged and applied.
본 발명은 상술한 실시예 및 첨부한 도면에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자의 관점에서 다양한 수정 및 변형이 가능할 것이다. 따라서 본 발명의 범위는 본 명세서의 청구범위뿐만 아니라 이 청구범위와 균등한 것들에 의해 정해져야 한다.The present invention is not limited to the above-described embodiments and the accompanying drawings, and various modifications and variations will be possible from the point of view of those of ordinary skill in the art to which the present invention pertains. Accordingly, the scope of the present invention should be defined not only by the claims of the present specification, but also by those claims and their equivalents.
Claims (16)
Applications Claiming Priority (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR10-2020-0085735 | 2020-07-10 | ||
| KR20200085735 | 2020-07-10 | ||
| KR1020200127062A KR102412780B1 (en) | 2020-07-10 | 2020-09-29 | Method for processing a received block data at a peer terminal of Hyperledger Fabric Architecture |
| KR10-2020-0127062 | 2020-09-29 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2022010289A1 true WO2022010289A1 (en) | 2022-01-13 |
Family
ID=79553471
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/KR2021/008741 Ceased WO2022010289A1 (en) | 2020-07-10 | 2021-07-08 | Method for processing block data received in peer terminal in hyperledger fabric structure |
Country Status (1)
| Country | Link |
|---|---|
| WO (1) | WO2022010289A1 (en) |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20180374086A1 (en) * | 2017-06-26 | 2018-12-27 | International Business Machines Corporation | Blockchain transaction commitment ordering |
| KR20190118630A (en) * | 2017-03-24 | 2019-10-18 | 알리바바 그룹 홀딩 리미티드 | Method and apparatus for consensus verification |
| US20190354397A1 (en) * | 2018-05-15 | 2019-11-21 | International Business Machines Corporation | Prioritization in a permissioned blockchain |
| WO2020035092A2 (en) * | 2019-11-13 | 2020-02-20 | Alipay (Hangzhou) Information Technology Co., Ltd. | Blockchain data storage based on error correction code for permissioned blockchain network |
| KR102118586B1 (en) * | 2019-11-20 | 2020-06-03 | 한국건설기술연구원 | System for transmitting bim data using block chain technology and method thereof |
-
2021
- 2021-07-08 WO PCT/KR2021/008741 patent/WO2022010289A1/en not_active Ceased
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20190118630A (en) * | 2017-03-24 | 2019-10-18 | 알리바바 그룹 홀딩 리미티드 | Method and apparatus for consensus verification |
| US20180374086A1 (en) * | 2017-06-26 | 2018-12-27 | International Business Machines Corporation | Blockchain transaction commitment ordering |
| US20190354397A1 (en) * | 2018-05-15 | 2019-11-21 | International Business Machines Corporation | Prioritization in a permissioned blockchain |
| WO2020035092A2 (en) * | 2019-11-13 | 2020-02-20 | Alipay (Hangzhou) Information Technology Co., Ltd. | Blockchain data storage based on error correction code for permissioned blockchain network |
| KR102118586B1 (en) * | 2019-11-20 | 2020-06-03 | 한국건설기술연구원 | System for transmitting bim data using block chain technology and method thereof |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6438550B1 (en) | Method and apparatus for client authentication and application configuration via smart cards | |
| WO2018155822A1 (en) | Method for providing simplified account registration service and user authentication service, and authentication server using same | |
| WO2018124857A1 (en) | Blockchain database-based method and terminal for authenticating user non-face-to-face by utilizing mobile id, and server utilizing method and terminal | |
| WO2018194378A1 (en) | Method for approving use of card by using blockchain-based token id and server using method | |
| WO2021150032A1 (en) | Method for providing authentication service by using decentralized identity and server using the same | |
| WO2018043865A2 (en) | Blockchain-based file management/search system and file management/search method | |
| WO2018030707A1 (en) | Authentication system and method, and user equipment, authentication server, and service server for performing same method | |
| WO2017116019A1 (en) | Method and server for authenticating and verifying file | |
| WO2017111383A1 (en) | Biometric data-based authentication device, control server linked to same, and biometric data-based login method for same | |
| WO2017116062A1 (en) | Method and server for authenticating and verifying file | |
| WO2018124856A1 (en) | Method and terminal for authenticating user by utilizing mobile id by means of blockchain database, and server utilizing method and terminal | |
| WO2021137396A1 (en) | Zero-knowledge proof-based certificate service method using blockchain network, certification support server using same, and user terminal using same | |
| WO2020149586A1 (en) | Method and device for providing service in which single service is provided by determining whether plurality of users are in agreement | |
| WO2014003362A1 (en) | Otp-based authentication system and method | |
| WO2021145555A1 (en) | Blockchain-based multinode authentication method and apparatus therefor | |
| WO2022045419A1 (en) | Blockchain-network-based driver license authentication service method using decentralized id, and user terminal for performing driver license authentication service | |
| WO2019125041A1 (en) | Authentication system using separation, then distributed storage of personal information using blockchain | |
| WO2023277532A1 (en) | Method for using service by means of token issued on blockchain network, and system using same | |
| WO2018026109A1 (en) | Method, server and computer-readable recording medium for deciding on gate access permission by means of network | |
| WO2023149660A1 (en) | Group signature-based federated learning method and system, and recording medium for performing same | |
| WO2022240268A1 (en) | Middle block system for integrally connecting plurality of blockchain networks | |
| WO2019125069A1 (en) | Authentication system using separation, then combination of personal information using blockchain | |
| WO2022010289A1 (en) | Method for processing block data received in peer terminal in hyperledger fabric structure | |
| WO2023127977A1 (en) | Blockchain-based authentication and transaction system | |
| WO2021206289A1 (en) | User authentication method, device and program |
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: 21837921 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 32PN | Ep: public notification in the ep bulletin as address of the adressee cannot be established |
Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 22.06.2023) |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 21837921 Country of ref document: EP Kind code of ref document: A1 |