WO2022010297A1 - Method for transmitting, by peer terminal, block data to client terminal in hyperledger fabric structure - Google Patents
Method for transmitting, by peer terminal, block data to client terminal in hyperledger fabric structure Download PDFInfo
- Publication number
- WO2022010297A1 WO2022010297A1 PCT/KR2021/008762 KR2021008762W WO2022010297A1 WO 2022010297 A1 WO2022010297 A1 WO 2022010297A1 KR 2021008762 W KR2021008762 W KR 2021008762W WO 2022010297 A1 WO2022010297 A1 WO 2022010297A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- block data
- terminal
- cache memory
- stored
- transmission
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0842—Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/22—Payment schemes or models
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
Definitions
- the present invention relates to a method for a peer terminal to transmit block data to a client 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 a peer terminal to transmit block data to a client terminal in a Hyperledger Fabric architecture.
- the control unit transmits first block data from each of the first and second client terminals a request information storage step of storing first and second request information for ; an update step of receiving the first and second block data from the orderer terminal and storing the first and second block data in the storage unit in the form of the block chain; a first temporary storage step of reading the first block data from the storage unit and storing the first block data in the cache memory in response to the first and second request information; a first transmission step of reading the first block data from the cache memory, encoding the first block data into transmission data of a transmission type, and transmitting the first block data to the first client terminal; and a second transmission step of reading the first block data from the cache memory, encoding the first block data into the transmission data, and transmitting the first block data to the second client terminal.
- the control unit stores the third information request information for the second block data from the third client terminal, and before the end of the second transmission step, in response to the third request information, the storage a second temporary storage step of reading second block data from the unit and storing the second block data in the cache memory; and a third transmission step of reading the second block data from the cache memory, encoding the second block data into transmission type transmission data, and transmitting the data to the third client terminal after the second transmission step is completed.
- each of the first and second block data may be decoded and stored in the cache memory.
- Each of the first and second block data stored in the cache memory may have a binary data form.
- each of the first and second block data may be unmarshalted and stored in the cache memory.
- each of the first and second block data may be encoded and stored in the cache memory.
- the transmission data may have a protocol buffer type data type.
- the first and second block data stored in the storage unit may be stored in a marshaled state.
- 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
- a peer terminal having a hyperledger fabric structure includes a request information storage module for storing first, second, and third request information for block data requested from each of first, second, and third client terminals; a storage unit in which the first and second block data are stored in the form of a block chain; a cache memory in which the first and second block data read from the storage unit are temporarily stored to transmit the first and second block data; a buffer memory in which the first and second block data stored in the cache memory are encoded and stored in an encoded transmission type transmission data form; and in response to the plurality of first, second, and third request information, read the storage unit, store the first and second block data in the cache memory, and transmit the first and second block data stored in the cache memory to a transmission type a control unit for converting and transmitting the transmission data of read the first block data, encode it into transmission data of a transmission type, transmit it to the first client terminal, read the first block data from the cache memory, encode the first block data into the transmission data, and control to transmit it to
- the control unit controls to read the second block data from the storage unit and store it in the cache memory in response to the third request information; After the transmission of the first block data to the second client terminal is completed, the control unit reads the second block data from the cache memory, encodes the second block data into transmission type transmission data, and transmits it to the third client terminal. can be controlled
- 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
- a peer terminal to transmit block data to a client terminal in a hyperledger fabric structure according to an example of the present invention
- the block data is stored in the cache memory in advance, and the transmission performance of the peer terminal can be further improved.
- 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 .
- 3 to 6 are diagrams for explaining an example of a method in which each peer terminal 100 receives block data from the orderer terminal 300 in FIG. 2 and then transmits block data requested from a plurality of client terminals to be.
- 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 .
- the client terminal 200 , the peer terminal 100 , and the 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 .
- the plurality of client terminals 200 generate transaction information Tx (S1), and transmit the generated transaction information Tx to the plurality of peer terminals 100 (S2) for transaction information Tx. You can request authentication.
- each of the plurality of peer terminals 100 receives an authentication request for each transaction information Tx generated by the plurality of client terminals 200 , the plurality of peer terminals 100 transmits the plurality of client terminals ( 200 ), by verifying and verifying the transmitted transaction information Tx, generating signature information for authenticating the received transaction information Tx ( S3 ), and responding to the authentication request of the plurality of client terminals 200 . ), it is possible to transmit the signature information (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).
- the client terminal 200 may request that the peer terminal 100 transmit block data received from the orderer terminal 300 to each peer terminal 100 .
- 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 (S12) newly updated block data in the block chain to each client terminal 200 to respond.
- the corresponding block data is stored in the cache memory in advance. , it is possible to read the cache memory, convert it into a transmission type data form, and transmit it to each of the plurality of client terminals.
- FIG. 3 to 6 show a method of transmitting block data requested from a plurality of client terminals 200a, 200b, and 200c after each peer terminal 100 receives block data from the orderer terminal 300 in FIG. 3 is a diagram for explaining an example of the peer terminal 100 according to an example of the present invention
- FIG. 4 is a view for explaining an example of a plurality of client terminals 200a, 200b, and 200c of each peer terminal. This is an example for explaining the concept of requesting block data to (100), and each peer terminal 100 transmitting block data to a plurality of client terminals 200a, 200b, and 200c to respond.
- An example in which block request storage information is stored in the request information storage module 160 of each peer terminal 100 when a plurality of client terminals 200a, 200b, and 200c requests block data from each peer terminal 100 6 is a diagram for explaining an example of a method in which each peer terminal 100 transmits block data stored in the block chain of the storage unit 150 to each client terminal 200a, 200b, and 200c to be.
- each of a plurality of peer terminals 100 includes a communication unit 110 , a control unit 120 , a buffer memory 130 , and a cache memory 140 .
- cache memory, 140 and may include a storage unit (150).
- the communication unit 110 may communicate with the client terminals 200a , 200b , and 200c , the orderer terminal 300 , and other peer terminals 100 .
- the communication unit 110 may receive the transaction information Tx from the client terminals 200a, 200b, and 200c, and at least one transaction information Tx and a plurality of signature information are blocked from the orderer terminal 300 .
- block data can be received, and when the ledger stored in the block chain form in the storage unit 150 of the peer terminal 100 is updated, the control unit 120 sends an update event to the client terminals 200a and 200b , 200c).
- the control unit 120 may serve to authenticate the transaction information generated by the client terminals 200a, 200b, and 200c, verify the block data received from the orderer terminal 300, and store it in the block chain, To this end, it may include an endorser (121) and a committer (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 terminals 200a, 200b, and 200c 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 .
- 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. have. Block data stored in the block chain of the storage unit 150 may be stored in a marshaled state.
- SSD solid state drive
- HDD hard disk drive
- control unit 120 accesses the block chain stored in the storage unit 150 and stores the block chain. It can be read and controlled to be transmitted to the client terminals 200a, 200b, and 200c.
- the controller 120 reads the storage unit 150 and stores the block data in the cache memory 140 in response to the request information for the block data received from the client terminals 200a, 200b, and 200c, and caches the block data. It is possible to control block data stored in the memory 140 to be transmitted by converting it into transmission type transmission data.
- each peer terminal 100 may receive a request for first block data from the first and second client terminals 200a, 200b, and 200c, and may receive a second block data request from the third client terminal. Data may be requested.
- request information for block data requested from the plurality of client terminals 200a, 200b, and 200c may be stored in the request information storage module 160 .
- the request information storage module 160 is provided in each peer terminal 100, and when each peer terminal 100 receives a request for block data, it transmits the block requested by each of the client terminals 200a, 200b, and 200c therein.
- the request can be saved.
- the request information storage module 160 provides the first and second client terminals 200a, The first block transmission request information of 200b) and the second block transmission request information of the third client terminal 200c may be stored.
- the request information storage module 160 includes a RAM memory, a buffer memory (which may be a buffer memory different from a buffer memory in which block data is temporarily stored), a cache memory (block data) provided in each peer terminal 100 . may be a cache memory different from the cache memory in which it is temporarily stored) or the storage unit 150 .
- the controller 120 may read block data stored in the block chain of the storage 150 and store it in the cache memory 140 according to the request information stored in the request information storage module 160 .
- the cache memory 140 may temporarily store block data by the controller 120 in order to transmit the block data stored in the storage unit 150 to the client terminal 200 .
- the block data temporarily stored in the cache memory 140 may be stored in a marshaled or unmarshalled state, and may be temporarily stored in the form of binary data.
- the level of security is weaker than that of block data stored in a marshaled state in the storage unit 150 , but the level of security is higher than that of block data stored in the buffer memory 130 . It is also possible to be encoded and stored as a state.
- block data stored in the cache memory 140 may be encoded and stored in the form of encoded transmission type transmission data. As described above, the block data stored in the transmission type transmission data form stored in the buffer memory 130 may be transmitted to each of the plurality of client terminals 200a, 200b, and 200c by the communication unit.
- the transmission data type stored in the buffer memory 130 may have a protocol buffer type data type advantageous for transmission, different from the data type stored in the cache memory 140 .
- the control unit 120 reads the storage unit 150 in response to the block data transmission request information for each client stored in the request information storage module 160 , stores the block data in the cache memory 140 , and stores the block data in the cache memory 140 .
- the communication unit may control the transmission to the plurality of client terminals 200a, 200b, and 200c.
- the controller 120 reads the corresponding block data from the storage 150 for each client terminal 200a and 200b each time and caches it. Rather than storing the block data stored in the memory 140 and converting the block data stored in the cache memory 140 into transmission data form and transmitting the same block data, the block data is read from the storage unit 150 only once for the same block data to be transmitted to the cache memory 140 . and may be transmitted to each of the client terminals 200a and 200b using the corresponding block data stored in the cache memory 140 .
- the transmission performance of the peer terminal 100 can be further improved. This will be described with reference to FIG. 6 as follows.
- the method in which the peer terminal 100 transmits block data stored in the storage unit 150 in the form of a block chain to the plurality of client terminals 200a, 200b, and 200c according to an example of the present invention includes a request information storage step (not shown) , update step (S10 in Fig. 2), first temporary storage step (S110A), first transmission step (S120A1), second temporary storage step (S110B), second transmission step (S120A2) and third transmission step (S120B1) ) may be included.
- the first block data B1 transmitted from each of the first and second client terminals 200a and 200b , 2 request information 161, 162 may be stored. That is, when the block chain is updated to the peer terminal 100 in the plurality of client terminals 200a, 200b, and 200c, as in step S11 of FIG. 2 , the peer terminal 100 blocks information about the updated block data. Data can be requested in advance before updating to the blockchain.
- the first and second client terminals 200a and 200b may request the first block data B1 and the third client terminal 200c may request the second block data B2 from the peer terminal 100 .
- the first client terminal 200a may be the first client terminal 200a to transmit the first block data B1 among the plurality of client terminals 200a, 200b, and 200c
- the second client terminal 200b It may be the last client terminal 200b to transmit the first block data B1 among the plurality of client terminals 200a, 200b, and 200c
- the third client terminal 200c is the first client terminal 200c to transmit the second block data B2 after the transmission of the first block data B1 is completed among the plurality of client terminals 200a, 200b, and 200c.
- the peer terminal 100 performs the first, second, 3
- a transmission request for block data requested to be transmitted from the client terminals 200a, 200b, and 200c may be stored in the request information storage module 160 .
- the first client terminal 200a receives information for requesting the first block data B1
- the first request information 161 receives information for requesting the first block data B1
- the second client terminal 200b receives information for requesting the first block data B1.
- the second request information 162 and information that the third client terminal 200c requests the second block data B2 may be referred to as third request information 163 .
- the peer terminal 100 receives the first and second block data B1 and B2 from the orderer terminal 300 and updates the storage unit 150 in the form of a block chain. Accordingly, the first and second block data B1 and B2 may be marshaled and stored in the storage unit 150 .
- the control unit 120 first and second request information for the first block data B1 of the first and second client terminals 200a and 200b stored in the block fairy storage module According to steps 161 and 162 , the first block data B1 may be read from the storage 150 and stored in the cache memory 140 .
- the first block data B1 stored in the cache memory 140 may be in a marshaled state or an unmarshalled state, and may be temporarily stored in the form of binary data.
- the level of security is weaker than that of block data stored in a marshaled state in the storage unit 150 , but the level of security is higher than that of block data stored in the buffer memory 130 . It is also possible to be encoded and stored as a state.
- the controller 120 reads the first block data B1 from the cache memory 140 and encodes the first block data B1 into transmission type transmission data, and the first block data PB1 in the transmission data form. may be controlled to be transmitted to the first client terminal 200a.
- the controller 120 reads the first block data B1 from the cache memory 140 and encodes the first block data B1 into transmission type transmission data, and the first block data PB1 in the transmission data form. may be controlled to be transmitted to the second client terminal 200b.
- the first block data B1 is converted into a protocol buffer (Protobuf) type data type, which is a transmission data type, and temporarily stored in the buffer memory 130 , and then the first and second block data B1 are temporarily stored in the buffer memory 130 It may be transmitted to a plurality of client terminals 200a to 200b including the client terminal.
- a protocol buffer Protobuf
- the controller 120 controls the first block data B1 after storing in the cache memory 140 , the plurality of client terminals 200a to 200b including the first and second client terminals 200a and 200b using the first block data B1 stored in the cache memory 140 . ), the block data transmission speed of the peer terminal 100 can be further improved.
- the controller 120 controls the third client terminal 200c )
- the third request information 163 for the second block data B2 may be stored in the request information storage module 160 as shown in FIG. 5 .
- the control unit 120 in response to the third request information 163, the storage unit ( A second temporary storage step S110B of reading the second block data B2 from 150 , and storing the second block data B2 in the cache memory 140 may be performed.
- the third transmission step S120B1 reads the second block data B2 from the cache memory 140 after the end of the second transmission step S120A2 to transmit data of a transmission type, for example, a protocol buffer ( Protobuf) type data may be encoded, and the second block data PB2 in the form of transmission data may be transmitted to the third client terminal 200c.
- a transmission type for example, a protocol buffer ( Protobuf) type data may be encoded, and the second block data PB2 in the form of transmission data may be transmitted to the third client terminal 200c.
- the control unit 120 controls the second block from the storage unit 150 .
- the data B2 is read and stored in the cache memory 140 in advance, and after the second transmission step S120A2 is finished, the third transmission step S120B1 is performed, thereby improving the transmission performance of the peer terminal 100 can be improved
- 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)
- General Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- General Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Finance (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
Description
본 발명은 하이퍼레저 패브릭 구조에서 피어 단말기가 블록 데이터를 클라이언트 단말기로 전송하는 방법에 관한 것이다.The present invention relates to a method for a peer terminal to transmit block data to a client 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 a peer terminal to transmit block data to a client terminal in a Hyperledger Fabric architecture.
본 발명의 일례에 따라, 하이퍼레저 패브릭 구조에서 피어 단말기에 저장된 블록 데이터를 복수의 클라이언트 단말기로 전송하는 방법은 상기 피어 단말기에서, 상기 제어부가 제1, 2 클라이언트 단말기 각각으로부터 전송된 제1 블록 데이터에 대한 제1, 2 요청 정보를 저장하는 요청 정보 저장 단계; 상기 오더러 단말기로부터 제1, 2 블록 데이터를 수신받아, 상기 블록 체인 형태로 상기 저장부에 저장하는 업데이트 단계; 상기 제1, 2 요청 정보에 대응하여, 상기 저장부로부터 상기 제1 블록 데이터를 읽어 상기 캐시 메모리에 저장하는 제1 임시 저장 단계; 상기 캐시 메모리로부터 상기 제1 블록 데이터를 읽어 전송 타입의 전송 데이터로 인코딩하고 상기 제1 클라이언트 단말기로 전송하는 제1 전송 단계; 및 상기 캐시 메모리로부터 상기 제1 블록 데이터를 읽어 상기 전송 데이터로 인코딩하고 상기 제2 클라이언트 단말기로 전송하는 제2 전송 단계;를 포함한다.According to an example of the present invention, in a method of transmitting block data stored in a peer terminal to a plurality of client terminals in a hyperledger fabric structure, in the peer terminal, the control unit transmits first block data from each of the first and second client terminals a request information storage step of storing first and second request information for ; an update step of receiving the first and second block data from the orderer terminal and storing the first and second block data in the storage unit in the form of the block chain; a first temporary storage step of reading the first block data from the storage unit and storing the first block data in the cache memory in response to the first and second request information; a first transmission step of reading the first block data from the cache memory, encoding the first block data into transmission data of a transmission type, and transmitting the first block data to the first client terminal; and a second transmission step of reading the first block data from the cache memory, encoding the first block data into the transmission data, and transmitting the first block data to the second client terminal.
상기 요청 정보 저장 단계에서, 상기 제어부가 제3 클라이언트 단말기로부터 제2 블록 데이터에 대한 제3 정보 요청 정보를 저장하고, 상기 제2 전송 단계의 종료 전에, 상기 제3 요청 정보에 대응하여, 상기 저장부로부터 제2 블록 데이터를 읽어 상기 캐시 메모리에 저장하는 제2 임시 저장 단계; 및 상기 제2 전송 단계의 종료 이후에, 상기 캐시 메모리로부터 상기 제2 블록 데이터를 읽어 전송 타입의 전송 데이터로 인코딩하고, 상기 제3 클라이언트 단말기로 전송하는 제3 전송 단계;를 더 포함할 수 있다.In the request information storage step, the control unit stores the third information request information for the second block data from the third client terminal, and before the end of the second transmission step, in response to the third request information, the storage a second temporary storage step of reading second block data from the unit and storing the second block data in the cache memory; and a third transmission step of reading the second block data from the cache memory, encoding the second block data into transmission type transmission data, and transmitting the data to the third client terminal after the second transmission step is completed. .
상기 제1, 2 임시 저장 단계 각각에서, 상기 제1, 2 블록 데이터 각각은 상기 캐시 메모리에 디코딩되어 저장될 수 있다.In each of the first and second temporary storage steps, each of the first and second block data may be decoded and stored in the cache memory.
상기 캐시 메모리에 저장되는 제1, 2 블록 데이터 각각은 이진(binary) 데이터 형태를 가질 수 있다.Each of the first and second block data stored in the cache memory may have a binary data form.
상기 제1, 2 임시 저장 단계 각각에서, 상기 제1, 2 블록 데이터 각각은 상기 캐시 메모리에 언마샬(Unmarshal)되어 저장될 수 있다.In each of the first and second temporary storage steps, each of the first and second block data may be unmarshalted and stored in the cache memory.
상기 제1, 2 임시 저장 단계 각각에서, 상기 제1, 2 블록 데이터 각각은 상기 캐시 메모리에 인코딩되어 저장될 수 있다.In each of the first and second temporary storage steps, each of the first and second block data may be encoded and stored in the cache memory.
상기 전송 데이터는 프로토콜 버퍼(Protobuf) 타입의 데이터 형태를 가질 수 있다.The transmission data may have a protocol buffer type data type.
상기 저장부에 저장된 상기 제1, 2 블록 데이터는 마샬(Marshal)된 상태로 저장되어 있을 수 있다.The first and second block data stored in the storage unit may be stored in a marshaled state.
상기 저장부는 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, 3 클라이언트 단말기 각각으로부터 요청된 블록 데이터에 대한 제1, 2, 3 요청 정보가 저장되는 요청 정보 저장 모듈; 제1, 2 블록 데이터이 블록 체인 형태로 저장되는 저장부; 상기 제1, 2 블록 데이터의 전송을 위해, 상기 저장부로부터 읽힌 상기 제1, 2 블록 데이터가 임시 저장되는 캐시 메모리; 상기 캐시 메모리에 저장된 상기 제1, 2 블록 데이터가 인코딩된 전송 타입의 전송 데이터 형태로 인코딩되어 저장되는 버퍼 메모리; 및 상기 복수의 제1, 2, 3 요청 정보에 대응하여, 상기 저장부를 읽어 상기 제1, 2 블록 데이터를 상기 캐시 메모리에 저장하고, 상기 캐시 메모리에 저장된 상기 제1, 2 블록 데이터를 전송 타입의 전송 데이터로 변환하여 전송하는 제어부;를 포함하고, 상기 제어부는 상기 복수의 제1, 2 요청 정보에 대응하여, 상기 캐시 메모리에 상기 제1 블록 데이터를 저장하도록 제어하고, 상기 캐시 메모리로부터 상기 제1 블록 데이터를 읽어 전송 타입의 전송 데이터로 인코딩하고 상기 제1 클라이언트 단말기로 전송하고, 상기 캐시 메모리로부터 상기 제1 블록 데이터를 읽어 상기 전송 데이터로 인코딩하고 상기 제2 클라이언트 단말기로 전송하도록 제어한다.A peer terminal having a hyperledger fabric structure according to an example of the present invention includes a request information storage module for storing first, second, and third request information for block data requested from each of first, second, and third client terminals; a storage unit in which the first and second block data are stored in the form of a block chain; a cache memory in which the first and second block data read from the storage unit are temporarily stored to transmit the first and second block data; a buffer memory in which the first and second block data stored in the cache memory are encoded and stored in an encoded transmission type transmission data form; and in response to the plurality of first, second, and third request information, read the storage unit, store the first and second block data in the cache memory, and transmit the first and second block data stored in the cache memory to a transmission type a control unit for converting and transmitting the transmission data of read the first block data, encode it into transmission data of a transmission type, transmit it to the first client terminal, read the first block data from the cache memory, encode the first block data into the transmission data, and control to transmit it to the second client terminal .
상기 제1 블록 데이터가 상기 제2 클라이언트 단말기로의 전송 완료되기 이전에, 상기 제어부는 상기 제3 요청 정보에 대응하여, 상기 저장부로부터 제2 블록 데이터를 읽어 상기 캐시 메모리에 저장하도록 제어하고, 상기 제1 블록 데이터가 상기 제2 클라이언트 단말기로의 전송이 완료된 이후에, 상기 제어부는 상기 캐시 메모리로부터 상기 제2 블록 데이터를 읽어 전송 타입의 전송 데이터로 인코딩하고, 상기 제3 클라이언트 단말기로 전송하도록 제어할 수 있다.Before the transmission of the first block data to the second client terminal is completed, the control unit controls to read the second block data from the storage unit and store it in the cache memory in response to the third request information; After the transmission of the first block data to the second client terminal is completed, the control unit reads the second block data from the cache memory, encodes the second block data into transmission type transmission data, and transmits it to the third client terminal. can be controlled
상기 저장부는 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).
본 발명의 일례에 따른 하이퍼레저 패브릭 구조에서 피어 단말기가 블록 데이터를 클라이언트 단말기로 전송하는 방법은 동일한 블록 데이터를 복수의 클라이언트 단말기로 전송할 때, 해당 블록 데이터를 미리 캐시 메모리에 저장한 상태에서, 캐시 메모리에 저장된 해당 블록 데이터가 복수의 클라이언트 단말기로 전송되도록 함으로써, 피어 단말기의 전송 성능을 보다 향상시킬 수 있다.In a method for a peer terminal to transmit block data to a client terminal in a hyperledger fabric structure according to an example of the present invention, when the same block data is transmitted to a plurality of client terminals, the block data is stored in the cache memory in advance, and the By allowing the corresponding block data stored in the memory to be transmitted to a plurality of client terminals, the transmission performance of the peer terminal can be further improved.
도 1은 본 발명의 일례에 따른 하이퍼레저 패브릭 구조를 구성하는 단말기의 일례를 설명하기 위한 도이다.1 is a diagram for explaining an example of a terminal constituting a hyperledger fabric structure according to an example of the present invention.
도 2는 도 1에 도시된 클라이언트 단말기(200), 피어 단말기(100) 및 오더러 단말기(300) 사이의 정보 흐름을 설명하기 위한 도이다.FIG. 2 is a diagram for explaining information flow between the
도 3 내지 도 6은 도 2에서 각 피어 단말기(100)가 오더러 단말기(300)로부터 블록 데이터를 수신한 후, 복수의 클라이언트 단말기로부터 요청받은 블록 데이터를 전송하는 방법의 일례를 설명하기 위한 도이다.3 to 6 are diagrams for explaining an example of a method in which each
이하, 첨부된 도면을 참조하여 본 발명의 실시예들을 상세히 설명한다. 본 발명을 설명하는데 있어서, 해당 분야에 이미 공지된 기술 또는 구성에 대한 구체적인 설명을 부가하는 것이 본 발명의 요지를 불분명하게 할 수 있다고 판단되는 경우에는 상세한 설명에서 이를 일부 생략하도록 한다. 또한, 본 명세서에서 사용되는 용어들은 본 발명의 실시예들을 적절히 표현하기 위해 사용된 용어들로서, 이는 해당 분야의 관련된 사람 또는 관례 등에 따라 달라질 수 있다. 따라서, 본 용어들에 대한 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. In describing the present invention, if it is determined that adding a detailed description of a technique or configuration already known in the field may make the gist of the present invention unclear, some of it will be omitted from the detailed description. In addition, the terms used in this specification are terms used to properly express embodiments of the present invention, which may vary according to a person or custom in the relevant field. Accordingly, definitions of these terms should be made based on the content throughout this specification.
여기서 사용되는 전문용어는 단지 특정 실시예를 언급하기 위한 것이며, 본 발명을 한정하는 것을 의도하지 않는다. 여기서 사용되는 단수 형태들은 문구들이 이와 명백히 반대의 의미를 나타내지 않는 한 복수 형태들도 포함한다. 명세서에서 사용되는 ‘포함하는’의 의미는 특정 특성, 영역, 정수, 단계, 동작, 요소 및/또는 성분을 구체화하며, 다른 특정 특성, 영역, 정수, 단계, 동작, 요소, 성분 및/또는 군의 존재나 부가를 제외시키는 것은 아니다.The terminology used herein is for the purpose of referring to specific embodiments only, and is not intended to limit the invention. As used herein, the singular forms also include the plural forms unless the phrases clearly indicate the opposite. As used herein, the meaning of 'comprising' specifies a particular characteristic, region, integer, step, operation, element and/or component, and other specific characteristic, region, integer, step, operation, element, component, and/or group. It does not exclude the existence or addition of
이하, 첨부된 도면들을 참조하여 본 발명에 대해 설명한다.Hereinafter, the present invention will be described with reference to the accompanying drawings.
도 1은 본 발명의 일례에 따른 하이퍼레저 패브릭 구조를 구성하는 단말기의 일례를 설명하기 위한 도이고, 도 2는 도 1에 도시된 클라이언트 단말기(200), 피어 단말기(100) 및 오더러 단말기(300) 사이의 정보 흐름을 설명하기 위한 도이다.1 is a diagram for explaining an example of a terminal constituting a hyperledger fabric structure according to an example of the present invention, and FIG. 2 is a
도 1에 도시된 바와 같이, 본 발명의 일례에 따른 하이퍼레저 패브릭 구조(Hyperledger fabric Architecture)를 구성하는 단말기는 클라이언트(client) 단말기(200), 피어(Peer) 단말기(100) 및 오더러(Orderer) 단말기(300)를 포함할 수 있다. 이와 같은 클라이언트 단말기(200), 피어 단말기(100), 오더러 단말기(300)는 하이퍼레저 패브릭 네트워크의 각 노드(node)를 구성할 수 있다.1, the terminals constituting the Hyperledger fabric architecture according to an example of the present invention are a
클라이언트 단말기(200)는 하이퍼레저 패브릭 네트워크에 접근하기 위해 필요한 노드로, 거래 정보에 대한 내용을 포함하는 트랜잭션(transaction) 정보(Tx)를 생성할 수 있다. 도 1에서는 클라이언트 단말기(200)가 복수 개인 경우를 일례로 도시하였으나, 클라이언트 단말기(200)는 적어도 하나 이상일 수 있고, 클라이언트 단말기(200)가 하나인 경우도 가능하다.The
클라이언트 단말기(200)는 스마트 컨트랙트가 설치되거나 호출될 때, 채널을 생성하거나 특정 피어 단말기(100)를 채널에 참가하게 하는 등 하이퍼레저 패브릭 네트워크에서 비즈니스 로직을 수행하기 위한 요청들에 대한 트랜잭션 정보(Tx)를 생성할 수 있다. When a smart contract is installed or invoked, the
이와 같이 클라이언트 단말기(200)는 트랜잭션 정보(Tx)를 생성하여, 복수의 피어 단말기(100) 각각에 전송할 수 있다. 클라이언트 단말기(200)가 복수의 피어 단말기(100)로부터 트랜잭션 정보(Tx)를 인증한 서명 정보를 받으면, 각 트랜잭션 정보(Tx)와 서명 정보를 결합하여 오더러 단말기(300)로 전송할 수 있다.In this way, the
복수의 피어 단말기(100) 각각은 하이퍼레저 패브릭 구조에서 가장 기본이 되는 노드로, 피어 단말기(100) 내에 원장(ledger)를 가지며, 체인코드(smart contract)를 구비할 수 있다. Each of the plurality of
이와 같은 복수의 피어 단말기(100) 각각은 수신된 트랜잭션 정보(Tx)를 검증하고 전파할 수 있으며, 오더러 단말기(300)로부터 트랜잭션 정보(Tx)가 블록화된 블록 데이터를 수신하면, 피어 단말기(100)는 블록 체인 형태로 저장된 원장을 업데이트할 수 있다. 이후 블록 체인이 업데이트되면, 피어 단말기(100)는 블록 체인이 업데이트되었다는 정보를 클라이언트 단말기(200)로 전송할 수 있다.Each of the plurality of
오더러 단말기(300)는 도 1에서는 오더러 단말기(300)가 하나인 경우를 일례로 도시하였으나, 오더러 단말기(300)는 반드시 이에 한정되는 것은 아니고, 적어도 하나 이상일 수 있다. Although one
만약, 오더러 단말기(300)는 복수 개인 경우, 복수의 오더러 단말기(300)가 마치 하나의 서비스 노드처럼 동작될 수도 있다. 일례로 오더러 단말기(300)가 OSN(Ordering Service Node) 형태로 구비될 수 있다.If there are a plurality of
이와 같은 오더러 단말기(300)는 검증된 트랜잭션 정보(Tx)들을 이용하여, 트랜잭션 정보(Tx)들이 블록화된 블록 데이터를 생성할 수 있다. 즉, 오더러 단말기(300)는 클라이언트들로부터 전송되는 복수의 트랜잭션 정보(Tx)들을 순서화하여, 블록 데이터를 생성할 수 있다. 이와 같이, 오더러 단말기(300)에서 생성된 블록 데이터는 복수의 피어 단말기(100) 각각으로 전송되어, 각 피어 단말기(100)에 구비된 블록 체인에 업데이트될 수 있다.The
본 발명의 일례에 따른 하이퍼레저 패브릭 구조(Hyperledger fabric Architecture)에서 복수의 클라이언트 단말기(200), 복수의 피어 단말기(100) 및 적어도 하나의 오더러 단말기(300)가 동작되는 방법의 일례에 대해 설명하면 다음과 같다.An example of a method in which a plurality of
먼저, 복수의 클라이언트 단말기(200)는 트랜잭션 정보(Tx)를 생성(S1)하여, 생성된 트랜잭션 정보(Tx)를 복수의 피어 단말기(100)로 전송(S2)하여 트랜잭션 정보(Tx)에 대한 인증을 요청할 수 있다. First, the plurality of
복수의 피어 단말기(100) 각각이 복수의 클라이언트(client) 단말기(200)에서 생성되는 각각의 트랜잭션 정보(Tx)에 대한 인증 요청을 수신받으면, 복수의 피어 단말기(100)는 복수의 클라이언트 단말기(200)로부터 전송된 트랜잭션 정보(Tx)를 확인하고 검증하여, 수신된 트랜잭션 정보(Tx)를 인증하는 서명 정보를 생성(S3)하고, 복수의 클라이언트 단말기(200)의 인증 요청에 대한 응답(Response)으로, 서명 정보를 전송(S4)할 수 있다. When each of the plurality of
이에 따라, 클라이언트 단말기(200)는 각 트랜잭션 정보(Tx)에 대해 복수의 피어 단말기(100)의 개수만큼의 서명 정보를 전송받을 수 있다.Accordingly, the
클라이언트 단말기(200)는 복수의 피어 단말기(100)로부터 받은 복수의 서명 정보를 각각의 트랜잭션 정보(Tx)에 결합(S5)하여, 복수의 서명 정보와 함께 트랜잭션 정보(Tx)를 적어도 하나의 오더러 단말기(300)로 전송(S6)할 수 있다.The
아울러, 클라이언트 단말기(200)는 피어 단말기(100)가 오더러 단말기(300)로부터 수신받는 블록 데이터를 블록 데이터를 전송할 것을 각 피어 단말기(100)로 요청할 수 있다.In addition, the
적어도 하나의 오더러 단말기(300)는 클라이언트 단말기(200)로부터 수신받은 복수의 서명 정보와 트랜잭션 정보(Tx)를 전송받되, 트랜잭션 정보(Tx)를 미리 정해진 개수만큼 클라이언트 단말기(200)로부터 수신 받으면, 수신받은 복수의 트랜잭션 정보(Tx)들을 정렬 및 순서화하고, 하이퍼레저 패브릭 구조의 네트워크 상에서 합의된 알고리즘에 의해, 수신받은 복수의 트랜잭션 정보(Tx)들을 블록화하여 블록 데이터를 생성(S7)할 수 있다. 오더러 단말기(300)는 생성된 블록 데이터를 복수의 피어 단말기(100) 각각으로 전송(S8)할 수 있다.At least one
복수의 피어 단말기(100) 각각은 적어도 하나의 오더러 단말기(300)로부터 블록 데이터를 전송받으면, 블록 데이터를 확인 및 검증(S9)하는 커밋(Commit)을 수행하고, 피어 단말기(100) 내에 블록 체인 형태로 저장되는 원장(Ledger)에 연결하여 블록 체인을 업데이트할 수 있고, 블록 체인이 업데이트되었음을 클라이언트 단말기(200)로 전송할 수 있다.When each of the plurality of
아울러, 이후에, 복수의 피어 단말기(100) 각각은 블록 체인에 새로 업데이트된 블록 데이터를 각 클라이언트 단말기(200)로 전송(S12)하여 리스펀스(Response)할 수 있다.In addition, thereafter, each of the plurality of
한편, 본 발명에서는, 복수의 피어 단말기(100) 각각은 클라이언트 단말기의 블록 데이터 요청에 대한 회신(Respose)으로 복수의 클라이언트 단말기로 블록 데이터를 전송할 때, 해당 블록 데이터를 미리 캐시 메모리에 저장한 이후, 캐시 메모리를 읽어 전송 타입의 데이터 형태로 변환하여 복수의 클라이언트 단말기 각각으로 전송할 수 있다.Meanwhile, in the present invention, when each of the plurality of
이에 대해, 보다 구체적으로 다음의 도 3 내지 도 6을 참조하여 보다 구체적으로 설명한다.This will be described in more detail with reference to FIGS. 3 to 6 below.
도 3 내지 도 6은 도 2에서 각 피어 단말기(100)가 오더러 단말기(300)로부터 블록 데이터를 수신한 후, 복수의 클라이언트 단말기(200a, 200b, 200c)로부터 요청받은 블록 데이터를 전송하는 방법의 일례를 설명하기 위한 도로서, 도 3은 본 발명의 일례에 따른 피어 단말기(100)의 일례를 설명하기 위한 도이고, 도 4는 복수의 클라이언트 단말기(200a, 200b, 200c)가 각 피어 단말기(100)로 블록 데이터를 요청하고, 각 피어 단말기(100)가 복수의 클라이언트 단말기(200a, 200b, 200c)로 블록 데이터를 전송하여 리스펀스(Response)하는 개념을 설명하기 위한 일례이고, 도 5는 복수의 클라이언트 단말기(200a, 200b, 200c)가 각 피어 단말기(100)로 블록 데이터를 요청했을 때, 각 피어 단말기(100)의 요청 정보 저장 모듈(160)에 블록 요청 저장 정보가 저장되는 일례를 설명하기 위한 도이고, 도 6은 각 피어 단말기(100)가 저장부(150)의 블록 체인에 저장된 블록 데이터를 각 클라이언트 단말기(200a, 200b, 200c)로 전송하는 방법의 일례를 설명하기 위한 도이다.3 to 6 show a method of transmitting block data requested from a plurality of
본 발명의 일례에 따른 복수의 피어 단말기(100) 각각은 도 3에 도시된 바와 같이, 통신부(110), 제어부(120), 버퍼 메모리(130)(buffer memory, 130), 캐시 메모리(140)(cache memory, 140) 및 저장부(150)를 포함할 수 있다. As shown in FIG. 3 , each of a plurality of
통신부(110)는 클라이언트 단말기(200a, 200b, 200c), 오더러 단말기(300) 및 다른 피어 단말기(100)와 통신을 수행할 수 있다. 이와 같은 통신부(110)는 클라이언트 단말기(200a, 200b, 200c)로부터 트랜잭션 정보(Tx)를 수신할 수 있으며, 오더러 단말기(300)로부터 적어도 하나의 트랜잭션 정보(Tx)와 복수의 서명 정보가 블록화된 블록 데이터를 수신받을 수 있으며, 피어 단말기(100)의 저장부(150)에 블록 체인 형태로 저장되는 원장(ledger)이 업데이트되면, 제어부(120)에 의해 업데이트 이벤트를 클라이언트 단말기(200a, 200b, 200c)로 전송할 수 있다.The
제어부(120)는 클라이언트 단말기(200a, 200b, 200c)가 생성한 트랜잭션 정보를 인증하고, 오더러 단말기(300)로부터 수신된 블록 데이터를 검증하여, 블록 체인에 저장하는 역할을 수행할 수 있으며, 이를 위해, 엔도저(Endorser, 121) 및 커미터(Committer, 123)를 포함할 수 있다. The
엔도저(121)는 클라이언트 단말기(200)에서 생성된 각 트랜잭션 정보(Tx)를 확인하고 인증하여, 각 트랜잭션 정보(Tx)에 대한 서명 정보를 생성할 수 있다. 일례로, 엔도저(121)는 클라이언트 단말기(200)로부터 전송된 각 트랜잭션 정보(Tx)에 대해 체인코드 시뮬레이션을 통해 트랜잭션이 적절한지 판단한 후, 정상적인 트랜잭션으로 판단된 경우, 해당 트랜잭션 정보(Tx)에 대해 인증하는 서명 정보를 생성하여, 통신부(110)를 통하여 클라이언트 단말기(200a, 200b, 200c)로 전송할 수 있다.The
커미터(123)는 오더러 단말기(300)로부터 수신받은 블록 데이터를 검증하고, 유효성을 판단하기 위한 복수의 테스크(task)를 수행하여 커밋(commit)을 수행한 후, 유효한 블록 데이터로 판단되는 경우, 블록 데이터를 저장부(150)에 블록 체인 형태로 구비된 원장(Ledger)에 체인 연결하여 업데이트할 수 있다. The
여기서, 저장부(150)는 SSD(Solid State Drive) 및 HDD(Hard Disk Drive) 중 적어도 하나의 형태로 구비될 수 있으며, 저장부(150)에는 원장(ledger)이 블록 체인 형태로 저장될 수 있다. 저장부(150)의 블록 체인에 저장되는 블록 데이터는 마샬(Marshal)된 상태로 저장될 수 있다.Here, the
아울러, 제어부(120)는 특정 블록 데이터 또는 특정 트랜잭션 정보(Tx)에 대해 클라이언트 단말기(200a, 200b, 200c)로부터 요청을 받으면, 저장부(150)에 저장된 블록 체인에 접근하여, 해당 블록 체인을 읽어, 클라이언트 단말기(200a, 200b, 200c)로 전송하도록 제어할 수 있다.In addition, when receiving a request from the
이를 위해, 제어부(120)는 클라이언트 단말기(200a, 200b, 200c)로부터 수신된 블록 데이터에 대한 요청 정보에 대응하여, 저장부(150)를 읽어 블록 데이터를 캐시 메모리(140)에 저장하고, 캐시 메모리(140)에 저장된 블록 데이터를 전송 타입의 전송 데이터로 변환하여 전송하도록 제어할 수 있다.To this end, the
예를 들어, 복수의 피어 단말기(100) 각각이 오더러 단말기(300)로부터 제1 블록 데이터와 제2 블록 데이터를 수신하여, 내부에 구비된 저장부(150)의 블록 체인을 업데이트 한 경우, 도 4에 도시된 바와 같이, 각 피어 단말기(100)는, 제1, 2 클라이언트 단말기(200a, 200b, 200c)로부터 제1 블록 데이터를 요청받을 수 있으며, 제3 클라이던트 단말기로부터 제2 블록 데이터를 요청받을 수 있다. 이와 같이, 복수의 클라이언트 단말기(200a, 200b, 200c)로부터 요청받은 블록 데이터에 대한 요청 정보는 요청 정보 저장 모듈(160)에 저장될 수 있다. For example, when each of the plurality of
요청 정보 저장 모듈(160)은 각 피어 단말기(100) 내에 구비되어, 각 피어 단말기(100)가 블록 데이터에 대한 요청을 수신받으면, 내부에 각 클라이언트 단말기(200a, 200b, 200c)가 요청한 블록 전송 요청을 저장할 수 있다. 일례로 도 4와 같이, 복수의 클라이언트 단말기(200a, 200b, 200c)로부터 블록 데이터 전송 요청을 받은 경우, 도 5에 도시된 바와 요청 정보 저장 모듈(160)은 제1, 2 클라이언트 단말기(200a, 200b)의 제1 블록 전송 요청 정보와 제3 클라이언트 단말기(200c)의 제2 블록 전송 요청 정보를 저장할 수 있다. The request
이와 같은 요청 정보 저장 모듈(160)은 각 피어 단말기(100)에 구비된 램(Ram) 메모리, 버퍼 메모리(블록 데이터가 임시 저장되는 버퍼 메모리와 다른 버퍼 메모리일 수 있음), 캐시 메모리(블록 데이터가 임시 저장되는 캐시 메모리와 다른 캐시 메모리일 수 있음) 또는 저장부(150) 중 어느 하나에 구비될 수 있다.The request
제어부(120)는 이와 같은 요청 정보 저장 모듈(160)에 저장된 요청 정보에 따라, 저장부(150)의 블록 체인에 저장된 블록 데이터를 읽어 캐시 메모리(140)에 저장할 수 있다.The
캐시 메모리(140)는 저장부(150)에 저장된 블록 데이터를 클라이언트 단말기(200)로 전송하기 위해, 제어부(120)에 의해 블록 데이터가 임시 저장될 수 있다. 이와 같은 캐시 메모리(140)에 임시 저장되는 블록 데이터는 마샬(Marshal)된 상태이거나 언마샬(Unmarshal)된 상태로 저장되어, 이진(binary) 데이터 형태로 임시 저장될 수 있다. 그러나, 이와 다르게, 보안을 위해, 저장부(150)에 마샬(Marshal)된 상태로 저장되는 블록 데이터보다 보안의 수준이 약하지만, 버퍼 메모리(130)에 저장되는 블록 데이터보다 보안의 수준이 높은 상태로 인코딩되어 저장되는 것도 가능하다.The
버퍼 메모리(130)는 캐시 메모리(140)에 저장된 블록 데이터가 인코딩된 전송 타입의 전송 데이터 형태로 인코딩되어 저장될 수 있다. 이와 같이 버퍼 메모리(130)에 저장된 전송 타입의 전송 데이터 형태로 저장된 블록 데이터는 통신부에 의해 복수의 클라이언트 단말기(200a, 200b, 200c) 각각으로 전송될 수 있다. In the
이와 같은 버퍼 메모리(130)에 저장되는 전송 데이터 형태는 캐시 메모리(140)에 저장되는 데이터 형태와 다르게, 전송에 유리한 전송 타입의 프로토콜 버퍼(Protobuf) 타입의 데이터 형태를 가질 수 있다.The transmission data type stored in the
제어부(120)는 요청 정보 저장 모듈(160)에 저장된 클라이언트별 블록 데이터 전송 요청 정보에 대응하여, 저장부(150)를 읽어 블록 데이터를 캐시 메모리(140)에 저장하고, 캐시 메모리(140)에 저장된 블록 데이터를 전송 데이터 형태로 변환하여 통신부가 복수의 클라이언트 단말기(200a, 200b, 200c)로 전송하도록 제어할 수 있다.The
이때, 제어부(120)는 복수의 클라이언트 단말기(200a, 200b)가 동일한 블록 데이터에 대해 전송 요청을 하는 경우, 각 클라이언트 단말기(200a, 200b)별로 매번 저장부(150)로부터 해당 블록 데이터를 읽어서 캐시 메모리(140)에 저장하고, 캐시 메모리(140)에 저장된 블록 데이터를 전송 데이터 형태로 변환하여 전송하는 것이 아니라, 동일한 블록 데이터에 대해서는 저장부(150)로부터 한번만 블록 데이터를 읽어 캐시 메모리(140)에 저장하고, 캐시 메모리(140)에 저장된 해당 블록 데이터를 이용하여 각 클라이언트 단말기(200a, 200b)로 전송할 수 있다.At this time, when a plurality of
이에 따라, 피어 단말기(100)의 전송 성능을 보다 향상시킬 수 있다. 이에 대해, 도 6을 참조하여 설명하면 다음과 같다.Accordingly, the transmission performance of the
본 발명의 일례에 따른 피어 단말기(100)가 저장부(150)에 블록 체인 형태로 저장된 블록 데이터를 복수의 클라이언트 단말기(200a, 200b, 200c)로 전송하는 방법은 요청 정보 저장 단계(미도시), 업데이트 단계(도 2의 S10), 제1 임시 저장 단계(S110A), 제1 전송 단계(S120A1), 제2 임시 저장 단계(S110B), 제2 전송 단계(S120A2) 및 제3 전송 단계(S120B1)를 포함할 수 있다.The method in which the
요청 정보 저장 단계(미도시)에서는 앞선 도 2, 도 4 및 도 5에 도시된 바와 같이, 제1, 2 클라이언트 단말기(200a, 200b) 각각으로부터 전송된 제1 블록 데이터(B1)에 대한 제1, 2 요청 정보(161, 162)를 저장할 수 있다. 즉, 복수의 클라이언트 단말기(200a, 200b, 200c)는 피어 단말기(100)로 블록 체인이 업데이트될 때, 도 2의 S11 단계와 같이, 업데이트된 블록 데이터에 대한 정보를 피어 단말기(100)가 블록 데이터를 블록 체인에 업데이트 하기 전에 미리 요청할 수 있다.In the request information storage step (not shown), as shown in FIGS. 2, 4 and 5 above, the first block data B1 transmitted from each of the first and
이때, 일례로, 피어 단말기(100)가 제1, 2 블록 데이터(B1, B2)가 순차적으로 커밋(commit)된 경우, 도 4에 도시된 바와 같이, 제1, 2 클라이언트 단말기(200a, 200b)는 제1 블록 데이터(B1)를, 제3 클라이언트 단말기(200c)는 제2 블록 데이터(B2)를 피어 단말기(100)로 요청할 수 있다.At this time, as an example, when the first and second block data B1 and B2 are sequentially committed by the
여기서, 제1 클라이언트 단말기(200a)는 복수의 클라이언트 단말기(200a, 200b, 200c) 중 제1 블록 데이터(B1)를 전송할 첫 번째 클라이언트 단말기(200a)일 수 있으며, 제2 클라이언트 단말기(200b)는 복수의 클라이언트 단말기(200a, 200b, 200c)기 중 제1 블록 데이터(B1)를 전송할 마지막 클라이언트 단말기(200b)일 수 있다. 아울러, 제3 클라이언트 단말기(200c)는 복수의 클라이언트 단말기(200a, 200b, 200c) 중, 제1 블록 데이터(B1)의 전송 종료 이후, 제2 블록 데이터(B2)를 전송할 첫 번째 클라이언트 단말기(200c)일 수 있다.Here, the
이와 같이, 복수의 클라이언트 단말기(200a, 200b, 200c)로부터 블록 데이터에 대한 전송 요청이 수신되면, 요청 정보 저장 단계에서, 피어 단말기(100)는 도 5에 도시된 바와 같이, 제1, 2, 3 클라이언트 단말기(200a, 200b, 200c)로부터 전송 요청된 블록 데이터에 대한 전송 요청을 요청 정보 저장 모듈(160)에 저장할 수 있다.In this way, when a transmission request for block data is received from the plurality of
여기서, 제1 클라이언트 단말기(200a)가 제1 블록 데이터(B1)를 요청하는 정보를 제1 요청 정보(161), 제2 클라이언트 단말기(200b)가 제1 블록 데이터(B1)를 요청하는 정보를 제2 요청 정보(162), 제3 클라이언트 단말기(200c)가 제2 블록 데이터(B2)를 요청하는 정보를 제3 요청 정보(163)라고 할 수 있다. Here, the
이후, 업데이트 단계(도 2의 S10)에서는 피어 단말기(100)가 오더러 단말기(300)로부터 제1, 2 블록 데이터(B1, B2)를 수신받아, 블록 체인 형태로 저장부(150)에 업데이트하여, 제1, 2 블록 데이터(B1, B2)를 저장부(150)에 마샬(Marshal)하여 저장할 수 있다.Thereafter, in the update step (S10 of FIG. 2 ), the
이후, 제1 임시 저장 단계(S110A)에서, 제어부(120)는 블록 요정 저장 모듈에 저장된 제1, 2 클라이언트 단말기(200a, 200b)의 제1 블록 데이터(B1)에 대한 제1, 2 요청 정보(161, 162)에 따라, 저장부(150)에서 제1 블록 데이터(B1)를 읽고, 캐시 메모리(140)에 저장할 수 있다.Then, in the first temporary storage step (S110A), the
여기서, 캐시 메모리(140)에 저장되는 제1 블록 데이터(B1)는 마샬(Marshal)된 상태이거나 언마샬(Unmarshal)된 상태일 수 있으며, 이진(binary) 데이터 형태로 임시 저장될 수 있다. 그러나, 이와 다르게, 보안을 위해, 저장부(150)에 마샬(Marshal)된 상태로 저장되는 블록 데이터보다 보안의 수준이 약하지만, 버퍼 메모리(130)에 저장되는 블록 데이터보다 보안의 수준이 높은 상태로 인코딩되어 저장되는 것도 가능하다.Here, the first block data B1 stored in the
이후, 제1 전송 단계(S120A1)에서는 제어부(120)가 캐시 메모리(140)로부터 제1 블록 데이터(B1)를 읽어 전송 타입의 전송 데이터로 인코딩하고, 전송 데이터 형태의 제1 블록 데이터(PB1)를 제1 클라이언트 단말기(200a)로 전송하도록 제어할 수 있다.Thereafter, in the first transmission step S120A1 , the
아울러, 제2 전송 단계(S120A2)에서는 제어부(120)가 캐시 메모리(140)로부터 제1 블록 데이터(B1)를 읽어 전송 타입의 전송 데이터로 인코딩하고, 전송 데이터 형태의 제1 블록 데이터(PB1)를 제2 클라이언트 단말기(200b)로 전송하도록 제어할 수 있다.In addition, in the second transmission step S120A2 , the
이와 같은 제1, 2 전송 단계에서는 제1 블록 데이터(B1)가 전송 데이터 형태인 프로토콜 버퍼(Protobuf) 타입의 데이터 형태로 변환되어 버퍼 메모리(130)에 임시 저장된 이후, 통신부에 의해 제1, 2 클라이언트 단말기를 포함한 복수의 클라이언트 단말기(200a ~ 200b)로 전송될 수 있다.In the first and second transmission steps, the first block data B1 is converted into a protocol buffer (Protobuf) type data type, which is a transmission data type, and temporarily stored in the
이와 같이, 본 발명은 피어 단말기(100)가 동일한 제1 블록 데이터(B1)에 대한 정보를 복수의 클라이언트 단말기(200a ~ 200b)로 전송하는 경우, 제어부(120)가 제1 블록 데이터(B1)를 캐시 메모리(140)에 저장한 이후, 캐시 메모리(140)에 저장된 제1 블록 데이터(B1)를 이용하여 제1, 2 클라이언트 단말기(200a, 200b)를 포함하는 복수의 클라이언트 단말기(200a ~ 200b)로 전송하도록 제어함으로써, 피어 단말기(100)의 블록 데이터 전송 속도를 보다 향상시킬 수 있다.As described above, in the present invention, when the
아울러, 복수의 클라이언트 단말기 중에서 제3 클라이언트 단말기(200c)가 제2 블록 데이터(B2)를 요청한 경우, 본 발명은 요청 정보 저장 단계(미도시)에서, 제어부(120)가 제3 클라이언트 단말기(200c)로부터 제2 블록 데이터(B2)에 대한 제3 요청 정보(163)를 도 5와 같이, 요청 정보 저장 모듈(160)에 저장할 수 있다.In addition, when the
이후, 제2 임시 저장 단계(S110B)에서, 도 6에 도시된 바와 같이, 제어부(120)가 제2 전송 단계(S120A2)의 종료 전에, 제3 요청 정보(163)에 대응하여, 저장부(150)로부터 제2 블록 데이터(B2)를 읽어 캐시 메모리(140)에 저장하는 제2 임시 저장 단계(S110B)를 수행할 수 있다.Then, in the second temporary storage step (S110B), as shown in FIG. 6, before the end of the second transmission step (S120A2), the
이후, 제3 전송 단계(S120B1)는 제2 전송 단계(S120A2)의 종료 이후에, 캐시 메모리(140)로부터 제2 블록 데이터(B2)를 읽어 전송 타입의 전송 데이터, 예를 들어, 프로토콜 버퍼(Protobuf) 타입의 데이터 형태로 인코딩하고, 전송 데이터 형태의 제2 블록 데이터(PB2)를 제3 클라이언트 단말기(200c)로 전송할 수 있다.Thereafter, the third transmission step S120B1 reads the second block data B2 from the
이와 같이, 본 발명에 따른 피어 단말기(100)는 제1 블록 데이터(B1)를 마지막으로 전송하는 제2 전송 단계(S120A2)가 종료되기 전에 제어부(120)가 저장부(150)로부터 제2 블록 데이터(B2)를 읽어 캐시 메모리(140)에 미리 저장하고, 제2 전송 단계(S120A2)가 종료된 이후, 제3 전송 단계(S120B1)가 수행되도록 함으로써, 피어 단말기(100)의 전송 성능을 보다 향상시킬 수 있다.As described above, in the
본 발명의 각 실시예에 개시된 기술적 특징들은 해당 실시예에만 한정되는 것은 아니고, 서로 양립 불가능하지 않은 이상, 각 실시예에 개시된 기술적 특징들은 서로 다른 실시예에 병합되어 적용될 수 있다.The technical features disclosed in each embodiment of the present invention are not limited only to the embodiment, and unless they are mutually incompatible, the technical features disclosed in each embodiment may be combined and applied to different embodiments.
따라서, 각 실시예에서는 각각의 기술적 특징을 위주로 설명하지만, 각 기술적 특징이 서로 양립 불가능하지 않은 이상, 서로 병합되어 적용될 수 있다.Accordingly, in each embodiment, each technical feature will be mainly described, but unless the technical features are incompatible with each other, they may be merged and applied.
본 발명은 상술한 실시예 및 첨부한 도면에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자의 관점에서 다양한 수정 및 변형이 가능할 것이다. 따라서 본 발명의 범위는 본 명세서의 청구범위뿐만 아니라 이 청구범위와 균등한 것들에 의해 정해져야 한다.The present invention is not limited to the above-described embodiments and the accompanying drawings, and various modifications and variations will be possible from the point of view of those of ordinary skill in the art to which the present invention pertains. Accordingly, the scope of the present invention should be defined not only by the claims of the present specification, but also by those claims and their equivalents.
Claims (12)
Applications Claiming Priority (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR20200085736 | 2020-07-10 | ||
| KR10-2020-0085736 | 2020-07-10 | ||
| KR1020200127064A KR102392150B1 (en) | 2020-07-10 | 2020-09-29 | Method for a peer terminal to transmit block data to a client terminal in Hyperledger Fabric Architecture |
| KR10-2020-0127064 | 2020-09-29 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2022010297A1 true WO2022010297A1 (en) | 2022-01-13 |
Family
ID=79553413
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/KR2021/008762 Ceased WO2022010297A1 (en) | 2020-07-10 | 2021-07-09 | Method for transmitting, by peer terminal, block data to client terminal in hyperledger fabric structure |
Country Status (1)
| Country | Link |
|---|---|
| WO (1) | WO2022010297A1 (en) |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20190128590A (en) * | 2018-05-08 | 2019-11-18 | 오라클 인터내셔날 코포레이션 | Integrating a blockchain ledger with an application external to the blockchain ledger |
| US20190354397A1 (en) * | 2018-05-15 | 2019-11-21 | International Business Machines Corporation | Prioritization in a permissioned blockchain |
| US20190363874A1 (en) * | 2018-05-24 | 2019-11-28 | Dapper Labs Inc. | Decentralized computation system architecture based on node specialization |
| US20200174937A1 (en) * | 2019-08-30 | 2020-06-04 | Alibaba Group Holding Limited | Deploying a smart contract |
| KR20200077366A (en) * | 2018-12-20 | 2020-06-30 | 공주대학교 산학협력단 | Privacy-preserving Data Analysis Method on Permissioned Blockchain System |
-
2021
- 2021-07-09 WO PCT/KR2021/008762 patent/WO2022010297A1/en not_active Ceased
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20190128590A (en) * | 2018-05-08 | 2019-11-18 | 오라클 인터내셔날 코포레이션 | Integrating a blockchain ledger with an application external to the blockchain ledger |
| US20190354397A1 (en) * | 2018-05-15 | 2019-11-21 | International Business Machines Corporation | Prioritization in a permissioned blockchain |
| US20190363874A1 (en) * | 2018-05-24 | 2019-11-28 | Dapper Labs Inc. | Decentralized computation system architecture based on node specialization |
| KR20200077366A (en) * | 2018-12-20 | 2020-06-30 | 공주대학교 산학협력단 | Privacy-preserving Data Analysis Method on Permissioned Blockchain System |
| US20200174937A1 (en) * | 2019-08-30 | 2020-06-04 | Alibaba Group Holding Limited | Deploying a smart contract |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| WO2018155822A1 (en) | Method for providing simplified account registration service and user authentication service, and authentication server using same | |
| WO2022203328A1 (en) | Smart locking device, locking management system including same device, and locking management method using same system | |
| JP2019185775A (en) | Authority authentication method for block chain infrastructure, terminal, and server using the same | |
| WO2021137396A1 (en) | Zero-knowledge proof-based certificate service method using blockchain network, certification support server using same, and user terminal using same | |
| WO2020138525A1 (en) | Method for distributed authentication of device in internet-of-things blockchain environment, and system for distributed authentication of device using same | |
| WO2017116019A1 (en) | Method and server for authenticating and verifying file | |
| WO2017116062A1 (en) | Method and server for authenticating and verifying file | |
| WO2020138532A1 (en) | Dynamic blind voting-based blockchain consensus method for internet of things environment | |
| WO2013085217A1 (en) | Security management system having multiple relay servers, and security management method | |
| WO2021145555A1 (en) | Blockchain-based multinode authentication method and apparatus therefor | |
| WO2019184155A1 (en) | Blockchain node authority control method, blockchain system and storage medium | |
| WO2022045419A1 (en) | Blockchain-network-based driver license authentication service method using decentralized id, and user terminal for performing driver license authentication service | |
| WO2023277532A1 (en) | Method for using service by means of token issued on blockchain network, and system using same | |
| WO2021096001A1 (en) | Private blockchain-based mobile device management method and system | |
| WO2023149660A1 (en) | Group signature-based federated learning method and system, and recording medium for performing same | |
| WO2015178597A1 (en) | System and method for updating secret key using puf | |
| WO2022240026A1 (en) | Method and apparatus for providing api service with one middle block by integrating plurality of blockchains, and identity verification method using same | |
| WO2022010297A1 (en) | Method for transmitting, by peer terminal, block data to client terminal in hyperledger fabric structure | |
| WO2023127977A1 (en) | Blockchain-based authentication and transaction system | |
| WO2013100636A1 (en) | Master tsm | |
| WO2021206289A1 (en) | User authentication method, device and program | |
| WO2024090845A1 (en) | Method for authenticating ownership of blockchain wallet without signature function, and system using same | |
| WO2022010289A1 (en) | Method for processing block data received in peer terminal in hyperledger fabric structure | |
| WO2024005565A1 (en) | Method, system, and non-transitory computer-readable recording medium for providing messenger service | |
| WO2023286900A1 (en) | User authentication system and transfer system using blockchain authentication based on real-time proof of location |
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: 21837013 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: 21837013 Country of ref document: EP Kind code of ref document: A1 |