[go: up one dir, main page]

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 PDF

Info

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
Application number
PCT/KR2021/008741
Other languages
French (fr)
Korean (ko)
Inventor
김판종
박규남
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Medium Inc
Original Assignee
Medium Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from KR1020200127062A external-priority patent/KR102412780B1/en
Application filed by Medium Inc filed Critical Medium Inc
Publication of WO2022010289A1 publication Critical patent/WO2022010289A1/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0842Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing 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/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/22Payment schemes or models
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment 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

The present invention relates to a method for processing block data received in a peer terminal in a Hyperledger Fabric structure. The method for a peer terminal processing received block data, according to one embodiment of the present invention, comprises: a step in which first and second block data are received, and first and second payload blocks are stored in a buffer memory; a first temporary storage step in which a control unit decodes the first payload block and stores first decoding data associated with the first payload block in a cache memory; a first tasking step in which the first decoding data is read, and thus a task for the first block data is carried out; and a step in which the second payload block is decoded before the first tasking step ends, and second decoding data associated with the second payload block is stored in the cache memory, and the second decoding data is read after the first tasking step ends, and thus a task for the second block data is carried out, wherein a blockchain is stored in a storage unit, the blockchain having the first decoding data updated in the blockchain after the first tasking step ends, and, after the second tasking step ends, having the second decoding data updated by means of the second decoding data being connected to the blockchain.

Description

하이퍼레저 패브릭 구조에서 피어 단말기에 수신된 블록 데이터를 처리하는 방법How to process block data received by peer terminals in Hyperledger Fabric architecture

본 발명은 하이퍼레저 패브릭 구조에서 피어 단말기에 수신된 블록 데이터를 처리하는 방법에 관한 것이다.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 client terminal 200, the peer terminal 100, and the orderer terminal 300 shown in FIG. 1 .

도 3은 도 2에서 각 피어 단말기(100)의 일례를 설명하기 위한 도이다.FIG. 3 is a diagram for explaining an example of each peer terminal 100 in FIG. 2 .

도 4는 도 2에서 각 피어 단말기(100)가 오더러 단말기(300)로부터 블록 데이터를 수신한 후, 수신된 블록 데이터를 저장부(150)에 저장하기 위해 커밋(commit)을 수행하는 방법의 일례를 설명하기 위한 도이다.4 is a method in which 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.

이하, 첨부된 도면을 참조하여 본 발명의 실시예들을 상세히 설명한다. 본 발명을 설명하는데 있어서, 해당 분야에 이미 공지된 기술 또는 구성에 대한 구체적인 설명을 부가하는 것이 본 발명의 요지를 불분명하게 할 수 있다고 판단되는 경우에는 상세한 설명에서 이를 일부 생략하도록 한다. 또한, 본 명세서에서 사용되는 용어들은 본 발명의 실시예들을 적절히 표현하기 위해 사용된 용어들로서, 이는 해당 분야의 관련된 사람 또는 관례 등에 따라 달라질 수 있다. 따라서, 본 용어들에 대한 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.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 client terminal 200, a peer terminal 100, and an orderer terminal ( 300) is a diagram for explaining the flow of information.

도 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 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.

클라이언트 단말기(200)는 하이퍼레저 패브릭 네트워크에 접근하기 위해 필요한 노드로, 거래 정보에 대한 내용을 포함하는 트랜잭션(transaction) 정보(Tx)를 생성할 수 있다. 도 1에서는 클라이언트 단말기(200)가 복수 개인 경우를 일례로 도시하였으나, 클라이언트 단말기(200)는 적어도 하나 이상일 수 있고, 클라이언트 단말기(200)가 하나인 경우도 가능하다.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. Although 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.

클라이언트 단말기(200)는 스마트 컨트랙트가 설치되거나 호출될 때, 채널을 생성하거나 특정 피어 단말기(100)를 채널에 참가하게 하는 등 하이퍼레저 패브릭 네트워크에서 비즈니스 로직을 수행하기 위한 요청들에 대한 트랜잭션 정보(Tx)를 생성할 수 있다. When a smart contract is installed or invoked, the client terminal 200 provides transaction information ( Tx) can be created.

이와 같이 클라이언트 단말기(200)는 트랜잭션 정보(Tx)를 생성하여, 복수의 피어 단말기(100) 각각에 전송할 수 있다. 클라이언트 단말기(200)가 복수의 피어 단말기(100)로부터 트랜잭션 정보(Tx)를 인증한 서명 정보를 받으면, 각 트랜잭션 정보(Tx)와 서명 정보를 결합하여 오더러 단말기(300)로 전송할 수 있다.In this way, the client terminal 200 may generate the transaction information Tx and transmit it to each of the plurality of peer terminals 100 . When the client terminal 200 receives signature information that authenticates the transaction information Tx from the plurality of peer terminals 100 , each transaction information Tx and signature information may be combined and transmitted to the orderer terminal 300 .

복수의 피어 단말기(100) 각각은 하이퍼레저 패브릭 구조에서 가장 기본이 되는 노드로, 피어 단말기(100) 내에 원장(ledger)를 가지며, 체인코드(smart contract)를 구비할 수 있다. 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).

이와 같은 복수의 피어 단말기(100) 각각은 수신된 트랜잭션 정보(Tx)를 검증하고 전파할 수 있으며, 오더러 단말기(300)로부터 트랜잭션 정보(Tx)가 블록화된 블록 데이터를 수신하면, 피어 단말기(100)는 블록 체인 형태로 저장된 원장을 업데이트할 수 있다. 이후 블록 체인이 업데이트되면, 피어 단말기(100)는 블록 체인이 업데이트되었다는 정보를 클라이언트 단말기(200)로 전송할 수 있다.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 .

오더러 단말기(300)는 도 1에서는 오더러 단말기(300)가 하나인 경우를 일례로 도시하였으나, 오더러 단말기(300)는 반드시 이에 한정되는 것은 아니고, 적어도 하나 이상일 수 있다. Although one 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 .

만약, 오더러 단말기(300)는 복수 개인 경우, 복수의 오더러 단말기(300)가 마치 하나의 서비스 노드처럼 동작될 수도 있다. 일례로 오더러 단말기(300)가 OSN(Ordering Service Node) 형태로 구비될 수 있다.If there are a plurality of orderer terminals 300 , the plurality of orderer terminals 300 may operate as if one service node. For example, the orderer terminal 300 may be provided in the form of an ordering service node (OSN).

이와 같은 오더러 단말기(300)는 검증된 트랜잭션 정보(Tx)들을 이용하여, 트랜잭션 정보(Tx)들이 블록화된 블록 데이터를 생성할 수 있다. 즉, 오더러 단말기(300)는 클라이언트들로부터 전송되는 복수의 트랜잭션 정보(Tx)들을 순서화하여, 블록 데이터를 생성할 수 있다. 이와 같이, 오더러 단말기(300)에서 생성된 블록 데이터는 복수의 피어 단말기(100) 각각으로 전송되어, 각 피어 단말기(100)에 구비된 블록 체인에 업데이트될 수 있다.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 .

본 발명의 일례에 따른 하이퍼레저 패브릭 구조(Hyperledger fabric Architecture)에서 적어도 하나의 클라이언트 단말기(200), 복수의 피어 단말기(100) 및 적어도 하나의 오더러 단말기(300)가 동작되는 방법의 일례에 대해 설명하면 다음과 같다.An example of a method in which at least one client terminal 200, a plurality of peer terminals 100 and at least one orderer terminal 300 are operated in a Hyperledger fabric architecture according to an example of the present invention The explanation is as follows.

먼저, 적어도 하나의 클라이언트 단말기(200)는 트랜잭션 정보(Tx)를 생성(S1)하여, 생성된 트랜잭션 정보(Tx)를 복수의 피어 단말기(100)로 전송(S2)하여 트랜잭션 정보(Tx)에 대한 인증을 요청할 수 있다. First, 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.

복수의 피어 단말기(100) 각각이 적어도 하나의 클라이언트(client) 단말기(200)에서 생성되는 각각의 트랜잭션 정보(Tx)에 대한 인증 요청을 수신받으면, 복수의 피어 단말기(100)는 적어도 하나의 클라이언트 단말기(200)로부터 전송된 트랜잭션 정보(Tx)를 확인하고 검증하여, 수신된 트랜잭션 정보(Tx)를 인증하는 서명 정보를 생성(S3)하고, 적어도 하나의 클라이언트 단말기(200)의 인증 요청에 대한 응답(Response)으로, 서명 정보를 전송(S4)할 수 있다. When 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).

이에 따라, 클라이언트 단말기(200)는 각 트랜잭션 정보(Tx)에 대해 복수의 피어 단말기(100)의 개수만큼의 서명 정보를 전송받을 수 있다.Accordingly, 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.

클라이언트 단말기(200)는 복수의 피어 단말기(100)로부터 받은 복수의 서명 정보를 각각의 트랜잭션 정보(Tx)에 결합(S5)하여, 복수의 서명 정보와 함께 트랜잭션 정보(Tx)를 적어도 하나의 오더러 단말기(300)로 전송(S6)할 수 있다.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).

적어도 하나의 오더러 단말기(300)는 클라이언트 단말기(200)로부터 수신받은 복수의 서명 정보와 트랜잭션 정보(Tx)를 전송받되, 트랜잭션 정보(Tx)를 미리 정해진 개수만큼 클라이언트 단말기(200)로부터 수신 받으면, 수신받은 복수의 트랜잭션 정보(Tx)들을 정렬 및 순서화하고, 하이퍼레저 패브릭 구조의 네트워크 상에서 합의된 알고리즘에 의해, 수신받은 복수의 트랜잭션 정보(Tx)들을 블록화하여 블록 데이터를 생성(S7)할 수 있다. 오더러 단말기(300)는 생성된 블록 데이터를 복수의 피어 단말기(100) 각각으로 전송(S8)할 수 있다.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).

복수의 피어 단말기(100) 각각은 적어도 하나의 오더러 단말기(300)로부터 블록 데이터를 전송받으면, 블록 데이터를 확인 및 검증(S9)하는 커밋(Commit)을 수행하고, 피어 단말기(100) 내에 블록 체인 형태로 저장되는 원장(Ledger)에 연결하여 블록 체인을 업데이트할 수 있고, 블록 체인이 업데이트되었음을 클라이언트 단말기(200)로 전송할 수 있다.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 .

아울러, 이후에, 복수의 피어 단말기(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 peer terminals 100 may transmit the block data to the client terminal 200 ( S12 ).

한편, 본 발명에서는, 복수의 피어 단말기(100) 각각은 오더러 단말기(300)로부터 수신받은 블록 데이터에 대해 미리 전처리 단계를 수행하여 캐시 메모리에 저장한 이후, 캐시 메모리에 저장된 블록 데이터를 이용하여 커밋(Commit)을 수행할 수 있다.Meanwhile, in the present invention, 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.

이에 대해, 보다 구체적으로 다음의 도 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 peer terminal 100 in FIG. 2 , and 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 .

본 발명의 일례에 따른 복수의 피어 단말기(100) 각각은 도 3에 도시된 바와 같이, 통신부(110), 제어부(120), 버퍼 메모리(buffer memory, 130), 캐시 메모리(cache memory, 140) 및 저장부(150)를 포함할 수 있다. As shown in FIG. 3 , each of the plurality of peer terminals 100 according to an example of the present invention includes a communication unit 110 , a control unit 120 , a buffer memory 130 , and a cache memory 140 . and a storage unit 150 .

통신부(110)는 클라이언트 단말기(200), 오더러 단말기(300) 및 다른 피어 단말기(100)와 통신을 수행할 수 있다. 이와 같은 통신부(110)는 클라이언트 단말기(200)로부터 트랜잭션 정보(Tx)를 수신할 수 있으며, 오더러 단말기(300)로부터 적어도 하나의 트랜잭션 정보(Tx)와 복수의 서명 정보가 블록화된 블록 데이터를 수신받을 수 있으며, 피어의 저장부(150)에 블록 체인 형태로 저장되는 원장(ledger)이 업데이트되면, 업데이트 이벤트를 클라이언트 단말기(200)로 전송할 수 있다.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 .

제어부(120)는 엔도저(Endorser, 121) 및 커미터(Committer, 123)를 포함할 수 있다. The controller 120 may include an endor 121 and a committer 123 .

엔도저(121)는 클라이언트 단말기(200)에서 생성된 각 트랜잭션 정보(Tx)를 확인하고 인증하여, 각 트랜잭션 정보(Tx)에 대한 서명 정보를 생성할 수 있다. 일례로, 엔도저(121)는 클라이언트 단말기(200)로부터 전송된 각 트랜잭션 정보(Tx)에 대해 체인코드 시뮬레이션을 통해 트랜잭션이 적절한지 판단한 후, 정상적인 트랜잭션으로 판단된 경우, 해당 트랜잭션 정보(Tx)에 대해 인증하는 서명 정보를 생성하여, 통신부(110)를 통하여 클라이언트 단말기(200)로 전송할 수 있다.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 .

커미터(123)는 오더러 단말기(300)로부터 수신받은 블록 데이터를 검증하고, 유효성을 판단하기 위한 복수의 테스크(task)를 수행하여 커밋(commit)을 수행한 후, 유효한 블록 데이터로 판단되는 경우, 블록 데이터를 저장부(150)에 블록 체인 형태로 구비된 원장(Ledger)에 체인 연결하여 업데이트할 수 있다.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 .

아울러, 제어부(120)는 특정 블록 데이터 또는 특정 트랜잭션 정보(Tx)에 대해 클라이언트 단말기(200)로부터 요청을 받으며, 저장부(150)에 저장된 블록 체인에 접근하여, 해당 블록 체인을 읽어, 클라이넌트 단말기로 전송하도록 제어할 수 있다.In addition, the 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.

버퍼 메모리(130)는 통신부(110)가 클라이언트 단말기(200)로부터 수신받은 블록 데이터의 페이로드(Payload) 블록을 저장할 수 있다. 일례로, 오더러 단말기(300)는 블록 데이터를 전송 속도를 높이기 위하여 직렬화된 데이터 형태인 프로토콜 버퍼(protobuf) 타입으로 블록 데이터를 전송할 수 있으며, 버퍼 메모리(130)는 프로토콜 버퍼(protobuf) 타입의 블록 데이터로부터 헤더와 메타데이터 등이 제외된 페이로드 블록이 프로토콜 버퍼(protobuf) 타입으로 저장될 수 있다.The buffer memory 130 may store a payload block of block data received by the communication unit 110 from the client terminal 200 . For example, 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.

캐시 메모리(140)는 블록 데이터의 페이로드 블록이 디코딩된 디코딩 데이터가 임시 저장될 수 있다. 일례로, 버퍼 메모리(130)에 수신된 페이로드 블록은 언마샬(Unmarshal)됨으로써 디코딩될 수 있고, 언마샬(Unmarshal)된 디코딩 데이터가 캐시 메모리(140)에 임시 저장될 수 있다.The cache memory 140 may temporarily store decoded data obtained by decoding a payload block of block data. For example, 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 .

커미터(123)는 이와 같은 캐시 메모리(140)에 저장된 디코딩 데이터를 이용하여, 각 블록에 포함되는 복수의 트랜잭션 정보(Tx) 각각에 대해 확인하고 검증하는 복수의 테스크(task)를 수행할 수 있다. 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. .

캐시 메모리(140)에 저장된 각 블록 데이터에 대한 디코딩 데이터의 검증이 완료되어, 블록 체인이 업데이트되면, 캐시 메모리(140)에 임시 저장되었던, 디코딩 데이터는 삭제될 수 있다. When the verification of the decoded data for each block data stored in the cache memory 140 is completed and the block chain is updated, the decoded data temporarily stored in the cache memory 140 may be deleted.

저장부(150)는 SSD(Solid State Drive) 및 HDD(Hard Disk Drive) 중 적어도 하나의 형태로 구비될 수 있으며, 저장부(150)에는 원장(ledger)이 블록 체인 형태로 저장될 수 있다. 따라서, 캐시 메모리(140)에 저장되었던 디코딩 데이터에 대한 검증 작업(Task)이 완료되면, 디코딩 데이터가 인코딩되고 블록 체인에 체인 연결됨으로써, 블록 체인이 업데이트될 수 있다. 여기서, 일례로, 캐시 메모리(140)에 저장되었던 디코딩 데이터는 마샬(Marshal)됨으로써 인코딩될 수 있고, 저장부(150)에는 디코딩 데이터가 마샬(Marshal)된 데이터 형태로 블록 체인에 체인 연결되어 업데이트될 수 있다.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. Here, as an example, 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. can be

도 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 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). .

일례로, 복수의 피어 단말기(100) 각각은 오더러 단말기(300)로부터 제1, 2 블록 데이터(BL1, BL2)를 수신받을 수 있다.For example, each of the plurality of peer terminals 100 may receive the first and second block data BL1 and BL2 from the orderer terminal 300 .

복수의 피어 단말기(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 peer terminals 100 receives the first and second block data BL1 and BL2, 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 .

이와 같은 제1, 2 수신 단계(S110A, S110B)에서 버퍼 메모리(130)에 저장되는 제1, 2 블록 데이터(BL1, BL2) 각각은 프로토콜 버퍼(Protobuf) 타입의 데이터 형태를 가질 수 있다.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.

일례로, 오더러 단말기(300)는 복수의 피어 단말기(100) 각각으로 제1, 2 블록 데이터(BL1, BL2)를 프로토콜 버퍼(Protobuf) 타입의 데이터 형태로 전송할 수 있으며, 각 피어 단말기(100) 각각은 프로토콜 버퍼(Protobuf) 타입의 데이터 형태에서 헤더와 메타데이터 등을 제거하여, 제1, 2 블록 데이터(BL1, BL2)의 실질적인 데이터인 제1, 2 페이로드 블록(PLB1, PLB2)이 버퍼 메모리(130)에 저장될 수 있다. For example, 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 .

제1 임시 저장 단계(S120A)에서는 제어부(120)가 제1 페이로드 블록(PLB1)을 디코딩하여 제1 페이로드 블록(PLB1)에 대한 제1 디코딩 데이터(DD1)를 캐시 메모리(140)에 저장할 수 있다. In the first temporary storage step S120A, 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 . can

이와 같은 제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 cache memory 140 , but the first payload block It is also possible that (PLB1) is lightly encoded and stored in the cache memory 140 . In this case, 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. However, the present invention is not necessarily limited to Unmarshal.

제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 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 .

예를 들어, 제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 second tasks Task 1 and Task2. . For example, 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 .

제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 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.

이와 같이, 제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 committer 123 reads the first decoded data DD1 from the cache memory 140 and reads the plurality of tasks Task1 ~ Task5) can be performed.

이와 같은 제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 storage unit 150 . Such a storage task may be the last task that the committer 123 performs on the first block data BL1.

이에 따라, 제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 cache memory 140 is encoded is connected to the existing block chain and updated. can be

제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 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 .

이와 같은 제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 cache memory 140 , but the second payload block It is also possible that (PLB2) is lightly encoded and stored in the cache memory 140 . In this case, 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.

즉, 제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 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 .

일례로, 제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 committer 123 performing the first tasks ( Task1 ) to the fifth tests ( Task 5 ), 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 .

이에 따라, 제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 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).

제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 committer 123 performs each of a plurality of tasks to perform a commit, 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. By performing a plurality of tasks using the decoded data stored in 140), when the committer 123 performs a plurality of tasks of confirming or verifying the block data, there is no need to decode the payload block each time, so that the peer terminal The processing speed of (100) can be improved more.

본 발명의 각 실시예에 개시된 기술적 특징들은 해당 실시예에만 한정되는 것은 아니고, 서로 양립 불가능하지 않은 이상, 각 실시예에 개시된 기술적 특징들은 서로 다른 실시예에 병합되어 적용될 수 있다.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)

트랜잭션 정보를 생성하는 적어도 하나의 클라이언트(Client) 단말기, 트랜잭션 정보를 인증하는 서명 정보를 생성하고, 통신부, 버퍼 메모리(buffer memory), 캐시 메모리(Cache memory), 저장부 및 제어부를 포함하는 복수의 피어(Peer) 단말기 및 적어도 하나의 상기 트랜잭션 정보와 상기 복수의 피어 단말기의 서명 정보를 블록화하여 제1, 2 블록 데이터를 생성하는 오더러(Orderer) 단말기를 포함하는 하이퍼레저 패브릭 구조에서 상기 피어 단말기가 수신된 블록 데이터를 처리하는 방법에 있어서,At least one client terminal that generates transaction information, generates signature information for authenticating transaction information, and includes a communication unit, a buffer memory, a cache memory, a storage unit, and a control unit. The peer terminal in a hyperledger fabric structure including a peer terminal and an orderer terminal for generating first and second block data by blocking the at least one piece of transaction information and the signature information of the plurality of peer terminals In the method of processing the received block data, 상기 복수의 피어(Peer) 단말기에서 상기 통신부가 상기 제1 블록 데이터를 상기 오더러 단말기로부터 수신하여, 상기 제1 블록 데이터의 제1 페이로드(Payload) 블록을 상기 버퍼 메모리에 저장하는 제1 수신 단계;A first reception in which the communication unit receives the first block data from the orderer terminal in the plurality of peer terminals and stores a first payload block of the first block data in the buffer memory step; 상기 통신부가 상기 제2 블록 데이터의 제2 페이로드 블록을 상기 버퍼 메모리에 저장하는 제2 수신 단계;a second receiving step of the communication unit storing a second payload block of the second block data in the buffer memory; 상기 제어부가 제1 페이로드 블록을 디코딩하여 상기 제1 페이로드 블록에 대한 제1 디코딩 데이터를 상기 캐시 메모리에 저장하는 제1 임시 저장 단계;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; 상기 제어부가 상기 제1 디코딩 데이터를 읽어서, 상기 제1 블록 데이터에 대한 적어도 하나의 테스크(Task)를 수행하는 제1 테스킹 단계;a first tasking step in which the controller reads the first decoded data and performs at least one task on the first block data; 상기 제어부가 상기 제1 테스킹 단계의 종료 전에, 상기 제2 페이로드 블록을 디코딩하여, 상기 제2 페이로드 블록에 대한 제2 디코딩 데이터를 상기 캐시 메모리에 저장하는 제2 임시 저장 단계; 및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 상기 제어부가 상기 제1 테스킹 단계의 종료 후에, 상기 제2 디코딩 데이터를 읽어서, 상기 제2 블록 데이터에 대한 적어도 하나의 테스크(Task)를 수행하는 제2 테스킹 단계를 포함하고,a second tasking step in which the controller reads the second decoded data after the end of the first tasking step and performs at least one task on the second block data; 상기 저장부는 블록 체인을 저장하고,The storage unit stores the block chain, 상기 블록 체인은 상기 제1 테스킹 단계가 종료된 이후, 상기 제1 디코딩 데이터가 인코딩되어 상기 블록 체인에 연결되어 업데이트되고,In the block chain, after the first tasking step is finished, the first decoded data is encoded and connected to the block chain and updated; 상기 블록 체인은 상기 제2 테스킹 단계가 종료된 이후, 상기 제2 디코딩 데이터가 인코딩되어 상기 블록 체인에 연결되어 업데이트되는In the block chain, after the second tasking step is finished, the second decoded data is encoded and connected to the block chain to be updated. 하이퍼레저 패브릭 구조에서 피어 단말기에 수신된 블록 데이터를 처리하는 방법.A method of processing block data received by a peer terminal in a Hyperledger Fabric architecture. 제1 항에 있어서,According to claim 1, 상기 제1 테스킹 단계에서의 상기 제1 블록 데이터에 대한 적어도 하나의 테스크는 제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, 상기 제1 테스킹 단계에서 상기 제1 테스크를 수행할 때, 상기 제어부는 상기 캐시 메모리로부터 상기 제1 디코딩 데이터를 읽어서 상기 제1 테스크를 수행하고,When performing the first task in the first tasking step, the control unit reads the first decoded data from the cache memory and performs the first task, 상기 제1 테스킹 단계에서 상기 제2 테스크를 수행할 때, 상기 제어부는 상기 캐시 메모리로부터 상기 제1 디코딩 데이터를 읽어서 상기 제2 테스크를 수행하는 When performing the second task in the first tasking step, the controller reads the first decoded data from the cache memory to perform the second task 하이퍼레저 패브릭 구조에서 피어 단말기에 수신된 블록 데이터를 처리하는 방법.A method of processing block data received by a peer terminal in a Hyperledger Fabric architecture. 제1 항에 있어서,According to claim 1, 상기 제1 테스킹 단계에서의 상기 제1 블록 데이터에 대한 적어도 하나의 테스크는 저장 테스크를 포함하고,At least one task for the first block data in the first tasking step includes a storage task, 상기 저장 테스크가 수행되면, 상기 제1 디코딩 데이터는 마샬(Marshal)되어 상기 저장부에 업데이트되는 When the storage task is performed, the first decoded data is marshaled and updated in the storage unit. 하이퍼레저 패브릭 구조에서 피어 단말기에 수신된 블록 데이터를 처리하는 방법.A method of processing block data received by a peer terminal in a Hyperledger Fabric architecture. 제1 항에 있어서,According to claim 1, 상기 저장부는 SSD(Solid State Drive) 및 HDD(Hard Disk Drive) 중 적어도 하나인 The storage unit is at least one of a solid state drive (SSD) and a hard disk drive (HDD). 하이퍼레저 패브릭 구조에서 피어 단말기에 수신된 블록 데이터를 처리하는 방법.A method of processing block data received by a peer terminal in a Hyperledger Fabric architecture. 제1 항에 있어서,According to claim 1, 상기 버퍼 메모리에 저장되는 상기 제1, 2 블록 데이터 각각은 프로토콜 버퍼(Protobuf) 타입의 데이터 형태를 갖는 Each of the first and second block data stored in the buffer memory has a data type of a protocol buffer (Protobuf) type. 하이퍼레저 패브릭 구조에서 피어 단말기에 수신된 블록 데이터를 처리하는 방법.A method of processing block data received by a peer terminal in a Hyperledger Fabric architecture. 제1 항에 있어서,According to claim 1, 상기 적어도 하나의 트랜잭션 정보는 거래 정보에 대한 내용을 포함하고, 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 상기 수신된 트랜잭션 정보에 대해 인증하는 서명 정보를 생성하여 상기 적어도 하나의 클라이언트 단말기로 전송하는 단계를 더 포함하는 Generating signature information for authenticating the received transaction information and transmitting it to the at least one client terminal 하이퍼레저 패브릭 구조에서 피어 단말기에 수신된 블록 데이터를 처리하는 방법.A method of processing block data received by a peer terminal in a Hyperledger Fabric architecture. 제6 항에 있어서,7. The method of claim 6, 상기 인증정보 전송 단계 이후, 상기 적어도 하나의 클라이언트 단말기가 상기 각각의 트랜잭션 정보에 대해 상기 복수의 피어 단말기로부터 전송되는 복수의 서명 정보를 결합하여 상기 오더러(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. further containing ; 하이퍼레저 패브릭 구조에서 피어 단말기에 수신된 블록 데이터를 처리하는 방법.A method of processing block data received by a peer terminal in a Hyperledger Fabric architecture. 제1 항에 있어서,According to claim 1, 상기 오더러 전송 단계 이후 상기 제1, 2 수신 단계 이전에,After the orderer transmission step and before the first and second reception steps, 상기 오더러 단말기가 상기 적어도 하나의 클라이언트 단말기로부터 전송되는 상기 복수의 서명 정보가 결합된 각각의 트랜잭션 정보를 순서화하여 상기 제1 블록 데이터를 생성하는 단계; 및generating, by the orderer terminal, the first block data by sequencing each transaction information in which the plurality of signature information transmitted from the at least one client terminal are combined; and 상기 제1 블록 데이터를 상기 복수의 피어 단말기로 전송하는 단계;를 더 포함하는 Transmitting the first block data to the plurality of peer terminals; further comprising 하이퍼레저 패브릭 구조에서 피어 단말기에 수신된 블록 데이터를 처리하는 방법.A method of processing block data received by a peer terminal in a Hyperledger Fabric architecture. 오더러(Orderer) 단말기로부터 전송되는 적어도 하나의 트랜잭션 정보와 상기 적어도 하나의 트랜잭션 정보 각각을 인증하는 복수의 서명 정보가 블록화된 제1, 2 블록 데이터를 수신하는 통신부;a communication unit configured to receive first and second block data in which at least one piece of 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; 수신되는 상기 제1, 2 블록 데이터 각각의 제1, 2 페이로드 블록을 저장하는 버퍼 메모리;a buffer memory for storing first and second payload blocks of the received first and second blocks of data, respectively; 상기 제1, 2 페이로드 블록이 디코딩된 제1, 2 디코딩 데이터가 임시 저장되는 캐시 메모리; 및a cache memory for temporarily storing first and second decoded data obtained by decoding the first and second payload blocks; and 상기 제1, 2 페이로드 블록을 디코딩하여 상기 제1, 2 디코딩 데이터로 변환하고, 상기 제1, 2 디코딩 데이터를 읽어서 상기 제1, 2 블록 데이터에 대한 적어도 하나의 테스크를 수행하는 제어부;를 포함하고, a control unit that decodes the first and second payload blocks, converts them into the first and second decoded data, reads the first and second decoded data, and performs at least one task on the first and second block data; including, 상기 제어부는 the control unit 상기 제1 페이로드 블록을 디코딩하여 상기 제1 페이로드 블록에 대한 제1 디코딩 데이터를 캐시 메모리(Cache memory)에 저장하는 한 후, 상기 제1 디코딩 데이터를 읽어서, 상기 제1 블록 데이터에 대한 적어도 하나의 테스크(Task)를 수행하는 제1 테스킹 단계를 수행하되,After decoding the first payload block and storing the first decoded data for the first payload block in a cache memory, the first decoded data is read, at least for the first block data Perform a first tasking step of performing one task, 상기 제1 테스킹 단계의 종료 전에, 상기 제2 페이로드 블록을 디코딩하여, 상기 제2 페이로드 블록에 대한 제2 디코딩 데이터를 상기 캐시 메모리에 저장하고, before the end of the first tasking step, decoding the second payload block, and storing second decoded data for the second payload block in the cache memory; 상기 제1 테스킹 단계의 종료 후에, 상기 제2 디코딩 데이터를 읽어서, 상기 제2 블록 데이터에 대한 적어도 하나의 테스크(Task)를 수행하는 After completion of the first tasking step, reading the second decoded data to perform at least one task on the second block data 하이퍼레저 패브릭 구조의 피어 단말기.Peer terminals with Hyperledger Fabric architecture. 제9 항에 있어서,10. The method of claim 9, 블록 체인이 저장되는 저장부;를 더 포함하되,A storage unit in which the block chain is stored; further including, 상기 저장부에는 In the storage 상기 제1 블록 데이터에 대한 적어도 하나의 테스크(Task)가 종료된 이후, 상기 제1 디코딩 데이터가 상기 저장부의 상기 블록 체인에 연결되어 업데이트되고, After at least one task for the first block data is finished, the first decoded data is connected to the block chain of the storage unit and updated; 상기 제2 블록 데이터에 대한 적어도 하나의 테스크(Task)가 종료된 이후, 상기 제2 디코딩 데이터가 상기 저장부의 상기 블록 체인에 연결되어 업데이트되는 After at least one task for the second block data is finished, the second decoded data is connected to the block chain of the storage unit and updated 하이퍼레저 패브릭 구조의 피어 단말기. Peer terminals with Hyperledger Fabric architecture. 제10 항에 있어서,11. The method of claim 10, 상기 제1 블록 데이터에 대한 적어도 하나의 테스크는 제1, 2 테스크를 포함하는 복수의 테스크를 포함하고,The at least one task for the first block data includes a plurality of tasks including first and second tasks, 상기 제어부가 the control unit 상기 제1 테스크를 수행할 때, 상기 캐시 메모리를 읽어서 상기 제1 테스크를 수행하고,When performing the first task, the first task is performed by reading the cache memory; 상기 제2 테스크를 수행할 때, 상기 캐시 메모리를 읽어서 상기 제2 테스크를 수행하는 When performing the second task, reading the cache memory to perform the second task 하이퍼레저 패브릭 구조의 피어 단말기.Peer terminals with Hyperledger Fabric architecture. 제10 항에 있어서,11. The method of claim 10, 상기 제어부는 the control unit 상기 버퍼 메모리에 저장된 상기 제1, 2 페이로드 블록을 언마샬(Unmarshal)하여 상기 캐시 메모리에 제1, 2 디코딩 데이터로 저장하는 unmarshalling the first and second payload blocks stored in the buffer memory and storing the first and second decoded data in the cache memory; 하이퍼레저 패브릭 구조의 피어 단말기.Peer terminals with Hyperledger Fabric architecture. 제10 항에 있어서,11. The method of claim 10, 상기 제어부는 상기 제1, 2 디코딩 데이터 각각을 마샬(Marshal)하여 상기 저장부의 블록 체인에 연결하여 업데이트하는 The control unit Marshals each of the first and second decoded data and connects to the block chain of the storage unit to update 하이퍼레저 패브릭 구조의 피어 단말기.Peer terminals with Hyperledger Fabric architecture. 제10 항에 있어서,11. The method of claim 10, 상기 저장부는 SSD(Solid State Drive) 및 HDD(Hard Disk Drive) 중 적어도 하나인 The storage unit is at least one of a solid state drive (SSD) and a hard disk drive (HDD). 하이퍼레저 패브릭 구조의 피어 단말기.Peer terminals with Hyperledger Fabric architecture. 제9 항에 있어서,10. The method of claim 9, 상기 버퍼 메모리에 저장되는 상기 제1, 2 블록 데이터 각각은 프로토콜 버퍼(Protobuf) 타입의 데이터 형태를 갖는 Each of the first and second block data stored in the buffer memory has a data type of a protocol buffer (Protobuf) type. 하이퍼레저 패브릭 구조의 피어 단말기.Peer terminals with Hyperledger Fabric architecture. 제9 항에 있어서,10. The method of claim 9, 상기 적어도 하나의 트랜잭션 정보는 거래 정보에 대한 내용을 포함하고, The at least one transaction information includes content about transaction information, 제어부는 상기 제1, 2 블록 데이터가 수신되기 이전에, Before the first and second block data is received, the control unit 클라이언트(Client) 단말기에서 생성되어 수신되는 트랜잭션 정보에 대한 인증 요청에 대해 인증하는 서명 정보를 생성하여 클라이언트 단말기로 전송하는 It generates and transmits signature information to the client terminal to authenticate the authentication request for the transaction information generated and received in the client terminal. 하이퍼레저 패브릭 구조의 피어 단말기.Peer terminals with Hyperledger Fabric architecture.
PCT/KR2021/008741 2020-07-10 2021-07-08 Method for processing block data received in peer terminal in hyperledger fabric structure Ceased WO2022010289A1 (en)

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)

* Cited by examiner, † Cited by third party
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

Patent Citations (5)

* Cited by examiner, † Cited by third party
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