KR102447289B1 - Peer terminal and method for processing a block data at a peer terminal - Google Patents
Peer terminal and method for processing a block data at a peer terminal Download PDFInfo
- Publication number
- KR102447289B1 KR102447289B1 KR1020200127066A KR20200127066A KR102447289B1 KR 102447289 B1 KR102447289 B1 KR 102447289B1 KR 1020200127066 A KR1020200127066 A KR 1020200127066A KR 20200127066 A KR20200127066 A KR 20200127066A KR 102447289 B1 KR102447289 B1 KR 102447289B1
- Authority
- KR
- South Korea
- Prior art keywords
- block data
- information
- processing
- transaction information
- processing operation
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 57
- 238000007781 pre-processing Methods 0.000 claims abstract description 88
- 238000004891 communication Methods 0.000 claims description 8
- 239000004744 fabric Substances 0.000 abstract description 16
- 230000006870 function Effects 0.000 description 22
- 238000010586 diagram Methods 0.000 description 13
- 230000000052 comparative effect Effects 0.000 description 6
- 230000004044 response Effects 0.000 description 4
- 230000003111 delayed effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/22—Microcontrol or microprogram arrangements
- G06F9/28—Enhancement of operational speed, e.g. by using several microcontrol devices operating in parallel
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/161—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3802—Instruction prefetching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
- G06Q20/223—Payment schemes or models based on the use of peer-to-peer networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3825—Use of electronic signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
Abstract
본 발명은 하이퍼레저 패브릭 구조에서 피어 단말기 및 피어 단말기가 블록 데이터를 처리하는 방법에 관한 것이다.
본 발명의 일례에 따라, 제1 프로세싱 기능을 수행하는 제1 기능 부분 및 상기 제1 프로세싱과 다른 제2 프로세싱 기능을 수행하는 제2 기능 부분을 포함하는 프로세서를 포함하는 피어 단말기가 블록 데이터를 처리하는 방법은 상기 피어 단말기가 복수의 트랜잭션 정보를 포함하는 블록 데이터를 수신하는 블록 데이터 수신 단계; 상기 제1 기능 부분이 상기 복수의 트랜잭션 정보의 인덱스 정보를 수집하고, 인덱스 데이터 베이스에 저장하는 전처리 작업 단계; 및 상기 제2 기능 부분이 상기 복수의 트랜잭션 정보의 내용 정보를 검증하여, 블록 체인 저장부에 저장하는 본처리 작업 단계;를 포함하고, 상기 전처리 작업 단계와 상기 본처리 작업 단계는 동시에 수행된다.The present invention relates to a peer terminal and a method for processing block data by a peer terminal in a Hyperledger Fabric architecture.
According to an example of the present invention, a peer terminal including a processor including a first functional part for performing a first processing function and a second functional part for performing a second processing function different from the first processing function processes block data The method comprising: receiving, by the peer terminal, block data including a plurality of transaction information; a pre-processing operation step of collecting, by the first functional part, index information of the plurality of transaction information and storing it in an index database; and a main processing operation step in which the second function part verifies the content information of the plurality of transaction information and stores it in a block chain storage unit, wherein the pre-processing operation step and the main processing operation step are performed simultaneously.
Description
본 발명은 하이퍼레저 패브릭 구조에서 피어 단말기 및 피어 단말기가 블록 데이터를 처리하는 방법에 관한 것이다.The present invention relates to a peer terminal and a method for processing block data 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 public blockchains 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 that 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 may 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 peer terminal and a method for the peer terminal to process block data.
본 발명의 일례에 따라, 제1 프로세싱 기능을 수행하는 제1 기능 부분 및 상기 제1 프로세싱과 다른 제2 프로세싱 기능을 수행하는 제2 기능 부분을 포함하는 프로세서를 포함하는 피어 단말기가 블록 데이터를 처리하는 방법은 상기 피어 단말기가 복수의 트랜잭션 정보를 포함하는 블록 데이터를 수신하는 블록 데이터 수신 단계; 상기 제1 기능 부분이 상기 복수의 트랜잭션 정보의 인덱스 정보를 수집하고, 인덱스 데이터 베이스에 저장하는 전처리 작업 단계; 및 상기 제2 기능 부분이 상기 복수의 트랜잭션 정보의 내용 정보를 검증하여, 블록 체인 저장부에 저장하는 본처리 작업 단계;를 포함하고, 상기 전처리 작업 단계와 상기 본처리 작업 단계는 동시에 수행된다.According to an example of the present invention, a peer terminal including a processor including a first functional part for performing a first processing function and a second functional part for performing a second processing function different from the first processing function processes block data The method comprising: receiving, by the peer terminal, block data including a plurality of transaction information; a pre-processing operation step of collecting, by the first functional part, index information of the plurality of transaction information and storing it in an index database; and a main processing operation step in which the second function part verifies the content information of the plurality of transaction information and stores it in a block chain storage unit, wherein the pre-processing operation step and the main processing operation step are performed simultaneously.
상기 전처리 작업 단계에서, 상기 제1 기능 부분은 상기 복수의 트랜잭션 정보의 인덱스 정보를 미리 정해진 순서에 따라 수집하고 저장할 수 있다.In the pre-processing step, the first function part may collect and store index information of the plurality of transaction information according to a predetermined order.
상기 본처리 작업 단계에서, 상기 제2 기능 부분이 상기 복수의 트랜잭션 정보의 내용 정보를 미리 정해진 순서에 따라 검증하여 저장할 수 있다.In the main processing operation step, the second function part may verify and store the content information of the plurality of transaction information according to a predetermined order.
상기 제1 기능 부분이 상기 복수의 트랜잭션 정보로부터 히스토리 정보를 수집하여, 히스토리 데이터 베이스에 저장하는 단계를 더 포함할 수 있다.The method may further include, by the first function part, collecting history information from the plurality of transaction information and storing the history information in a history database.
상기 히스토리 데이터 베이스에 저장하는 단계는 상기 전처리 작업 단계가 종료된 이후에 수행할 수 있다.The storing in the history database may be performed after the pre-processing step is finished.
상기 제1 기능 부분이 상기 전처리 작업 단계를 완료한 이후에는, 상기 제1 기능 부분이 상기 본처리 작업 단계를 수행하는데 사용될 수 있다.After the first functional part completes the pre-processing operation step, the first functional part may be used to perform the main processing operation step.
상기 제1 기능 부분은 상기 블록 데이터를 저장하기 위해 전처리(preprocessing) 작업을 수행하는 전처리부이고, 상기 제2 기능 부분은 상기 블록 데이터를 저장하기 위해, 상기 복수의 트랜잭션 정보의 내용 정보를 검증하여 커밋(commit)하는 본처리부일 수 있다.The first functional part is a preprocessing part that performs a preprocessing operation to store the block data, and the second functional part verifies the content information of the plurality of transaction information to store the block data. It may be a main processing unit that commits.
상기 블록 데이터에 대한 상기 인덱스 정보 및 상기 내용 정보를 저장하는 작업 이외에 추가로 수행해야할 작업에 대해서는 상기 전처리 작업 단계와 상기 본처리 작업 단계로 분류하여 수행할 수 있다. In addition to the operation of storing the index information and the content information for the block data, an operation to be additionally performed may be classified into the pre-processing operation step and the main processing operation step and performed.
여기서, 상기 추가로 수행해야할 작업에 대한 상기 전처리 작업 단계와 상기 본처리 작업 단계는 동시에 수행될 수 있다.Here, the pre-processing operation step and the main processing operation step for the additionally to be performed may be performed simultaneously.
본 발명의 일례에 따른 피어 단말기는 복수의 트랜잭션 정보를 포함하는 블록 데이터를 수신하는 통신부; 및 상기 블록 데이터를 저장하는 프로세서;를 포함하고, 상기 프로세서는 상기 블록 데이터를 저장하기 위한 제1 프로세싱 기능을 수행하는 제1 기능 부분; 및 상기 블록 데이터를 저장하기 위한 제2 프로세싱 기능을 수행하는 제2 기능 부분;을 포함하되, 상기 제1 기능 부분은 상기 복수의 트랜잭션 정보의 인덱스 정보를 수집하고, 인덱스 데이터 베이스에 저장하는 전처리 작업(Task)을 수행하고, 상기 제2 기능 부분이 상기 복수의 트랜잭션 정보의 내용 정보를 검증하여, 블록 체인 저장부에 저장하는 본처리 작업을 수행하되, 상기 전처리 작업과 상기 본처리 작업은 동시에 수행될 수 있다.A peer terminal according to an example of the present invention includes: a communication unit for receiving block data including a plurality of transaction information; and a processor configured to store the block data, wherein the processor includes: a first functional portion configured to perform a first processing function for storing the block data; and a second functional part for performing a second processing function for storing the block data, wherein the first functional part collects index information of the plurality of transaction information and stores it in an index database. (Task), the second function part verifies the content information of the plurality of transaction information, and performs the main processing operation of storing it in the block chain storage unit, but the pre-processing operation and the main processing operation are performed at the same time can be
상기 제1 기능 부분은 상기 전처리 작업에 대해 상기 복수의 트랜잭션 정보의 인덱스 정보를 미리 정해진 순서에 따라 수집하고 저장하고, 상기 제2 기능 부분이 상기 본처리 작업에 대해 상기 복수의 트랜잭션 정보의 내용 정보를 미리 정해진 순서에 따라 검증하여 저장할 수 있다.The first functional part collects and stores index information of the plurality of transaction information for the pre-processing job in a predetermined order, and the second functional part collects and stores the index information of the plurality of transaction information for the main processing job can be verified and stored in a predetermined order.
상기 제1 기능 부분은 상기 복수의 트랜잭션 정보로부터 히스토리 정보를 수집하여, 히스토리 데이터 베이스에 저장하는 히스토리 저장 작업을 더 수행할 수 있다.The first function part may further perform a history storage operation of collecting history information from the plurality of transaction information and storing the history information in a history database.
여기서, 상기 히스토리 저장 작업은 상기 전처리 작업이 종료된 이후에 수행될 수 있다.Here, the history storage operation may be performed after the pre-processing operation is finished.
상기 제1 기능 부분이 상기 전처리 작업을 완료한 이후에는, 상기 제1 기능 부분이 상기 본처리 작업을 수행하는데 사용될 수 있다.After the first functional part completes the pre-processing operation, the first functional part may be used to perform the main processing operation.
상기 제1 기능 부분은 상기 블록 데이터를 저장하기 위해 전처리(preprocessing)하는 전처리부이고, 상기 제2 기능 부분은 상기 블록 데이터를 저장하기 위해, 상기 복수의 트랜잭션 정보의 내용 정보를 검증하여 커밋(commit)하는 본처리부일 수 있다.The first functional part is a preprocessing part that preprocesses to store the block data, and the second functional part verifies the content information of the plurality of transaction information and commits to store the block data. ) may be the main processing unit.
상기 프로세서는 상기 블록 데이터에 대한 상기 인덱스 정보 및 상기 내용 정보를 저장하는 작업 이외에 추가로 수행해야할 작업에 대해서는 상기 전처리 작업과 상기 본처리 작업으로 분류하여 수행할 수 있다.The processor may classify and perform a task to be additionally performed in addition to the task of storing the index information and the content information for the block data into the pre-processing task and the main processing task.
상기 추가로 수행해야할 작업에 대한 상기 전처리 작업과 상기 본처리 작업은 동시에 수행될 수 있다.The pre-processing operation and the main processing operation for the additionally to be performed may be simultaneously performed.
본 발명의 일례에 따른 피어 단말기 및 피어 단말기가 블록 데이터를 처리하는 방법은 복수의 트랜잭션 정보의 인덱스 정보를 저장하는 전처리 작업 단계와 복수의 트랜잭션 정보의 내용 정보를 저장하는 본처리 작업 단계가 동시에 수행되도록 함으로써, 피어 단말기의 처리 속도를 향상시킬 수 있다.A peer terminal and a method for the peer terminal to process block data according to an example of the present invention include a pre-processing step of storing index information of a plurality of transaction information and a main processing step of storing content information of a plurality of transaction information are performed at the same time By doing so, the processing speed of the peer terminal can be improved.
도 1은 본 발명의 일례에 따른 하이퍼레저 패브릭 구조를 구성하는 단말기의 일례를 설명하기 위한 도이다.
도 2는 도 1에 도시된 클라이언트 단말기(200), 피어 단말기(100) 및 오더러 단말기(300) 사이의 정보 흐름을 설명하기 위한 도이다.
도 3은 도 2에서 도시된 피어 단말기(100)의 일례를 설명하기 위한 도이다.
도 4는 본 발명의 일례에 따른 피어 단말기가 블록 데이터를 처리하기 위해 전처리 작업과 본처리 작업을 비동기 방식으로 처리하는 방법의 일례를 설명하기 위한 도이다.
도 5는 본 발명의 일례에 따른 피어 단말기가 전처리 작업과 본처리 작업을 병렬 처리 대상과 직렬 처리 대상으로 구분하여 처리하는 방법의 일례를 설명하기 위한 도이다.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
FIG. 3 is a diagram for explaining an example of the
4 is a diagram for explaining an example of a method in which a peer terminal processes a pre-processing operation and a main processing operation in an asynchronous manner in order to process block data according to an example of the present invention.
5 is a diagram for explaining an example of a method in which a peer terminal divides a pre-processing task and a main-processing task into a parallel processing target and a serial processing target according to an example of the present invention.
이하, 첨부된 도면을 참조하여 본 발명의 실시예들을 상세히 설명한다. 본 발명을 설명하는데 있어서, 해당 분야에 이미 공지된 기술 또는 구성에 대한 구체적인 설명을 부가하는 것이 본 발명의 요지를 불분명하게 할 수 있다고 판단되는 경우에는 상세한 설명에서 이를 일부 생략하도록 한다. 또한, 본 명세서에서 사용되는 용어들은 본 발명의 실시예들을 적절히 표현하기 위해 사용된 용어들로서, 이는 해당 분야의 관련된 사람 또는 관례 등에 따라 달라질 수 있다. 따라서, 본 용어들에 대한 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.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 relevant field may obscure the gist of the present invention, it will be partially omitted from the detailed description. In addition, the terms used in this specification are terms used to properly express the 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)를 구성할 수 있다.As shown in Fig. 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)로 전송할 수 있다.As described above, the
복수의 피어 단말기(100) 각각은 하이퍼레저 패브릭 구조에서 가장 기본이 되는 노드로, 피어 단말기(100) 내에 원장(ledger)를 가지며, 체인코드(smart contract)를 구비할 수 있다. Each of the plurality of
이와 같은 복수의 피어 단말기(100) 각각은 수신된 트랜잭션 정보(Tx)를 검증하고 전파할 수 있으며, 오더러 단말기(300)로부터 트랜잭션 정보(Tx)가 블록화된 블록 데이터를 수신하면, 피어 단말기(100)는 블록 체인 형태로 저장된 원장을 업데이트할 수 있다. 이후 블록 체인이 업데이트되면, 피어 단말기(100)는 블록 체인이 업데이트되었다는 정보를 클라이언트 단말기(200)로 전송할 수 있다.Each of the plurality of
오더러 단말기(300)는 도 1에서는 오더러 단말기(300)가 하나인 경우를 일례로 도시하였으나, 오더러 단말기(300)는 반드시 이에 한정되는 것은 아니고, 적어도 하나 이상일 수 있다. Although one
만약, 오더러 단말기(300)는 복수 개인 경우, 복수의 오더러 단말기(300)가 마치 하나의 서비스 노드처럼 동작될 수도 있다. 일례로 오더러 단말기(300)가 OSN(Ordering Service Node) 형태로 구비될 수 있다.If there are a plurality of
이와 같은 오더러 단말기(300)는 검증된 트랜잭션 정보(Tx)들을 이용하여, 트랜잭션 정보(Tx)들이 블록화된 블록 데이터를 생성할 수 있다. 즉, 오더러 단말기(300)는 클라이언트들로부터 전송되는 복수의 트랜잭션 정보(Tx)들을 순서화하여, 블록 데이터를 생성할 수 있다. 이와 같이, 오더러 단말기(300)에서 생성된 블록 데이터는 복수의 피어 단말기(100) 각각으로 전송되어, 각 피어 단말기(100)에 구비된 블록 체인에 업데이트될 수 있다.The
본 발명의 일례에 따른 하이퍼레저 패브릭 구조(Hyperledger fabric Architecture)에서 적어도 하나의 클라이언트 단말기(200), 복수의 피어 단말기(100) 및 적어도 하나의 오더러 단말기(300)가 동작되는 방법의 일례에 대해 설명하면 다음과 같다.An example of a method in which at least one
먼저, 적어도 하나의 클라이언트 단말기(200)는 트랜잭션 정보(Tx)를 생성(S1)하여, 생성된 트랜잭션 정보(Tx)를 복수의 피어 단말기(100)로 전송(S2)하여 트랜잭션 정보(Tx)에 대한 인증을 요청할 수 있다. First, at least one
복수의 피어 단말기(100) 각각이 적어도 하나의 클라이언트(client) 단말기(200)에서 생성되는 각각의 트랜잭션 정보(Tx)에 대한 인증 요청을 수신받으면, 복수의 피어 단말기(100)는 적어도 하나의 클라이언트 단말기(200)로부터 전송된 트랜잭션 정보(Tx)를 확인하고 검증하여, 수신된 트랜잭션 정보(Tx)를 인증하는 서명 정보를 생성(S3)하고, 적어도 하나의 클라이언트 단말기(200)의 인증 요청에 대한 응답(Response)으로, 서명 정보를 전송(S4)할 수 있다. When each of the plurality of
이에 따라, 클라이언트 단말기(200)는 각 트랜잭션 정보(Tx)에 대해 복수의 피어 단말기(100)의 개수만큼의 서명 정보를 전송받을 수 있다.Accordingly, the
클라이언트 단말기(200)는 복수의 피어 단말기(100)로부터 받은 복수의 서명 정보를 각각의 트랜잭션 정보(Tx)에 결합(S5)하여, 복수의 서명 정보와 함께 트랜잭션 정보(Tx)를 적어도 하나의 오더러 단말기(300)로 전송(S6)할 수 있다.The
적어도 하나의 오더러 단말기(300)는 클라이언트 단말기(200)로부터 수신받은 복수의 서명 정보와 트랜잭션 정보(Tx)를 전송받되, 트랜잭션 정보(Tx)를 미리 정해진 개수만큼 클라이언트 단말기(200)로부터 수신 받으면, 수신받은 복수의 트랜잭션 정보(Tx)들을 정렬 및 순서화하고, 하이퍼레저 패브릭 구조의 네트워크 상에서 합의된 알고리즘에 의해, 수신받은 복수의 트랜잭션 정보(Tx)들을 블록화하여 블록 데이터를 생성(S7)할 수 있다. 오더러 단말기(300)는 생성된 블록 데이터를 복수의 피어 단말기(100) 각각으로 전송(S8)할 수 있다.At least one
복수의 피어 단말기(100) 각각은 적어도 하나의 오더러 단말기(300)로부터 블록 데이터를 전송받으면, 블록 데이터를 확인 및 검증(S9)하는 커밋(Commit)을 수행하고, 피어 단말기(100) 내에 블록 체인 형태로 저장되는 원장(Ledger)에 연결하여 블록 체인을 업데이트할 수 있고, 블록 체인이 업데이트되었음을 클라이언트 단말기(200)로 전송할 수 있다.When each of the plurality of
아울러, 이후에, 복수의 피어 단말기(100) 각각은 클라이언트 단말기(200)로부터 블록 데이터에 대한 요청이 수신(S11)되면, 클라이언트 단말기(200)로 블록 데이터를 전송(S12)할 수 있다.In addition, thereafter, when a request for block data is received from the client terminal 200 ( S11 ), each of the plurality of
한편, 본 발명에서는, 복수의 피어 단말기(100) 각각은 오더러 단말기(300)로부터 수신받은 블록 데이터를 원장이 저장되는 블록체인 저장부에 저장하기 위해, 전처리 작업과 본처리 작업이 수행될 수 있다.Meanwhile, in the present invention, each of the plurality of
전처리 작업에서는 블록 데이터에 포함되는 복수의 트랜잭션 정보의 인덱스 정보를 저장할 수 있으며, 본처리 작업에서는 블록 데이터에 포함되는 복수의 트랜잭션 정보의 내용 정보를 저장할 수 있다.In the pre-processing operation, index information of a plurality of transaction information included in block data may be stored, and in the main processing operation, content information of a plurality of transaction information included in the block data may be stored.
이와 같이, 본 발명의 일례에 따른 피어 단말기는 전처리 작업과 본처리 작업을 수행하여 블록 데이터를 저장할 수 있으며, 이를 위하여, 다음과 같은 구조를 구비할 수 있다.As described above, the peer terminal according to an example of the present invention may store block data by performing a pre-processing operation and a main processing operation. For this, the peer terminal may have the following structure.
도 3은 본 발명의 일례에 따른 피어 단말기(100)의 일례를 설명하기 위한 도이다.3 is a diagram for explaining an example of the
본 발명의 일례에 따른 복수의 피어 단말기(100)은 도 3에 도시된 바와 같이, 통신부(110), 프로세서(120), 인덱스 데이터 베이스(130), 히스토리 데이터 베이스(140) 및 블록체인 저장부(150)를 포함할 수 있다. As shown in FIG. 3 , the plurality of
통신부(110)는 클라이언트 단말기(200), 오더러 단말기(300) 및 다른 피어 단말기(100)와 통신을 수행할 수 있다. 이와 같은 통신부(110)는 클라이언트 단말기(200)로부터 트랜잭션 정보(Tx)를 수신할 수 있으며, 오더러 단말기(300)로부터 복수의 트랜잭션 정보(Tx)와 복수의 서명 정보가 블록화된 블록 데이터를 수신받을 수 있으며, 피어 단말기(100)의 저장부(150)에 블록 체인 형태로 저장되는 원장(ledger)이 업데이트되면, 업데이트 이벤트를 클라이언트 단말기(200)로 전송할 수 있다.The
오더러 단말기(300)로부터 수신되는 블록 데이터에는 전술한 복수의 트랜잭션 정보(Tx)에 대한 인덱스 정보가 더 포함될 수 있으며, 경우에 따라 선택적으로 복수의 트랜잭션 정보에 대한 히스토리 정보도 포함될 수 있다.The block data received from the
프로세서(120)는 통신부를 통해 수신받은 블록 데이터를 검증하여 블록체인 저장부(150)에 저장할 수 있다. 프로세서(120)가 블록 데이터를 저장하기 위해, 제1 프로세싱 기능을 수행하는 제1 기능 부분(121)과, 제2 프로세싱 기능을 수행하는 제2 기능 부분(123)을 포함할 수 있다.The
제1 기능 부분(121)은 복수의 트랜잭션 정보의 인덱스 정보를 수집하고, 인덱스 데이터 베이스(130)에 저장하는 전처리 작업(Task)을 수행할 수 있다. 이와 같이, 제1 기능 부분(121)이 전처리 작업에 대해 수행할 때, 복수의 트랜잭션 정보의 인덱스 정보를 미리 정해진 순서에 따라 수집하고 저장할 수 있다.The
일례로, 프로세서(120)의 제1 기능 부분(121)은 수신받은 블록 데이터에 포함된 복수의 트랜잭션 정보에 대해, 처리 순서가 정해져 있는 경우, 제1 기능 부분(121)은 각 트랜잭션 정보에 대해 정해진 처리 순서에 따라 각 트랜잭션 정보에 대한 인덱스 정보를 수집하고 인덱스 데이터 베이스(130)에 저장할 수 있다.For example, when the processing order is determined for a plurality of transaction information included in the received block data, the first
이와 같은 제1 기능 부분(121)은 블록 데이터를 저장하기 위해 전처리(preprocessing) 작업을 수행하는 전처리부일 수 있다.The first
아울러, 제1 기능 부분(121)은 전술한 전처리 작업 중 일례로 설명한 인덱스 정보 수집 및 저장 기능 이외에 블록 데이터에 포함된 복수의 트랜잭션 정보로부터, 다른 전처리 작업인 히스토리 정보를 수집하여, 히스토리 데이터 베이스(140)에 저장할 수 있다. In addition, the
제1 기능 부분(121)이 히스토리 정보를 수집 및 저장하는 기능은 전처리 작업이 종료된 이후에 수행될 수 있다.The function of collecting and storing the history information of the
제2 기능 부분(123)은 복수의 트랜잭션 정보의 내용 정보를 검증하여, 블록 체인 저장부에 저장하는 본처리 작업을 수행할 수 있다. 제2 기능 부분(123)이 본처리 작업에 대해 복수의 트랜잭션 정보의 내용 정보를 미리 정해진 순서에 따라 검증하여 저장할 수 있다.The second
아울러, 프로세서(120)의 제2 기능 부분(123)은 수신받은 블록 데이터에 포함된 복수의 트랜잭션 정보에 대해, 처리 순서가 정해져 있는 경우, 제2 기능 부분(123)은 각 트랜잭션 정보에 대해 정해진 처리 순서에 따라 각 트랜잭션 정보의 내용 정보를 검증하고 블록체인 저장부(150)에 저장할 수 있다.In addition, when a processing order is determined for a plurality of transaction information included in the received block data, the second
이와 같은 제2 기능 부분(123)은 블록 데이터를 저장하기 위해, 복수의 트랜잭션 정보의 내용 정보를 검증하여 커밋(commit)하는 본처리부일 수 있다.The second
이와 같이, 제1 기능 부분(121)이 전처리 작업을 수행하고, 제2 기능 부분(123)이 본처리 작업을 수행하는데 있어서, 전처리 작업과 본처리 작업이 동시에 수행되도록 할 수 있다. As such, when the first
즉, 본 발명의 프로세서(120)는 전처리 작업과 본처리 작업을 비동기(Async) 방식으로 수행할 수 있다. 즉, 본 발명의 프로세서(120)가 전처리 작업을 수행하거나 본처리 작업을 수행할 때에, 프로세서(120)의 제1 기능 부분(121)과 제2 기능 부분(123)을 통하여 전처리 작업과 본처리 작업을 함께 수행할 수 있다. 이에 대한 보다 상세한 설명은 도 4를 참조하여 후술한다.That is, the
아울러, 제1 기능 부분(121)이 수행하는 전처리 작업은 데이터 처리량이 제1 기능 부분(121)이 수행하는 본처리 작업에 비하여 상대적으로 데이터 처리량이 작을 수 있다. 이에 따라, 하나의 블록 데이터에 대해 제1 기능 부분(121)이 처리하는 전처리 작업 시간은 제2 기능 부분(123)이 처리하는 본처리 작업 시간보다 상대적으로 짧을 수 있고, 제1 기능 부분(121)의 전처리 작업은 제2 기능 부분(123)의 본처리 작업보다 상대적으로 일찍 종료될 수 있다.In addition, in the pre-processing operation performed by the first
이에 따라, 제1 기능 부분(121)이 전처리 작업을 완료한 이후에는, 제1 기능 부분(121)이 본처리 작업 단계를 수행하는데 사용될 수도 있다.Accordingly, after the first
아울러, 프로세서(120)는 블록 데이터에 대한 인덱스 정보 및 내용 정보를 저장하는 작업 이외에 추가로 수행해야할 작업에 대해서는 전처리 작업과 본처리 작업으로 분류하여 수행할 수 있다.In addition, the
인덱스 데이터 베이스(130)는 메모리를 포함할 수 있으며, 프로세서(120)의 제1 기능 부분(121)에 의해 전처리 작업이 수행되어, 블록 데이터로부터 수집된 트랜잭션 정보의 인덱스 정보가 저장될 수 있다. The
히스토리 데이터 베이스(140)는 메모리를 포함할 수 있으며, 프로세서(120)의 제1 기능 부분(121)에 의해 전처리 작업이 수행되어, 블록 데이터로부터 수집된 트랜잭션 정보의 히스토리 정보가 저장될 수 있다.The
블록체인 저장부(150)(150)는 SSD(Solid State Drive) 및 HDD(Hard Disk Drive) 중 적어도 하나의 형태로 구비될 수 있으며, 블록 데이터의 트랜잭션 정보의 내용 정보가 블록 체인 형태로 저장되는 원장(ledger)을 포함할 수 있다. 따라서, 블록체인 저장부(150)에는 프로세서(120)의 제2 기능 부분(123)이 본처리 작업을 수행하여, 검증된 트랜잭션 정보의 내용 정보가 블록 체인 형태로 저장될 수 있다.The block
한편, 본 발명에 따른 프로세서(120)는 제1 기능 부분(121)과 제2 기능 부분(123)으로 분류되어 블록 데이터에 대한 전처리 작업과 본처리 작업이 동시에 수행될 수 있으며, 블록 데이터에 대한 전처리 작업과 본처리 작업시 직렬적으로 작업을 처리하는 것이 아니라, 전처리 작업과 본처리 작업을 병렬적으로 처리할 수 있는 대상과 직렬적으로 처리할 수 있는 작업으로 구분하여, 프로세서(120)의 작업 처리 속도가 빨라지도록 할 수 있다.On the other hand, the
이에 대해 다음의 도 4 및 도 5를 통하여 보다 구체적으로 설명한다.This will be described in more detail with reference to FIGS. 4 and 5 below.
도 4는 본 발명의 일례에 따른 피어 단말기의 프로세서(120)가 블록 데이터를 처리하기 위해 전처리 작업과 본처리 작업을 비동기 방식으로 처리하는 방법의 일례를 설명하기 위한 도이다.4 is a diagram for explaining an example of a method in which the
도 4의 (a)는 비교예에 따른 피어 단말기가 블록 데이터를 처리하기 위해 전처리 작업과 본처리 작업을 처리하는 방법을 설명하기 위한 도이고, 도 4의 (b)는 본 발명에 따른 피어 단말기가 블록 데이터를 처리하기 위해 전처리 작업과 본처리 작업을 비동기 방식으로 처리하는 방법의 일례를 설명하기 위한 도이다.Fig. 4 (a) is a diagram for explaining a method for a peer terminal according to a comparative example to process a pre-processing operation and a main processing operation to process block data, and Fig. 4 (b) is a peer terminal according to the present invention. It is a diagram for explaining an example of a method of processing a pre-processing operation and a main processing operation in an asynchronous manner in order to process block data.
먼저, 비교예에 따른 피어 단말기의 프로세서(120)는 도 4의 (a)와 같이, 블록 데이터에 포함된 복수의 트랜잭션 졍보를 처리하기 위해, 전처리 작업과 본처리 작업을 수행함에 있어, 동기화된 방식을 사용한다.First, the
구체적으로, 비교예에서는, 제1 트랜잭션 정보를 처리하기 위해, 블록 데이터로부터 제1 트랜잭션 정보의 인덱스 정보를 수집하여 인덱스 데이터 베이스(130)에 저장하는 전처리 작업을 수행하고, 제1 트랜잭션 정보에 대한 전처리 작업이 완료될 때까지 프로세서(120)는 제1 트랜잭션 정보의 내용 정보를 저장하지 않고 대기 상태에 있다가, 제1 트랜잭션 정보의 인덱스 정보의 저장이 완료된 이후 제1 트랜잭션 정보의 내용 정보를 저장하는 본처리 작업을 수행하였다.Specifically, in the comparative example, in order to process the first transaction information, a pre-processing operation for collecting index information of the first transaction information from block data and storing it in the
이후, 제1 트랜잭션 정보의 본처리 작업이 완료될 때까지 프로세서(120)는 대기하고 있다가. 제1 트랜잭션 정보의 본처리 작업이 완료된 이후 제2 트랜잭션 정보의 인덱스 정보를 저장하는 전처리 작업을 수행하고, 제2 트랜잭션 정보의 전처리 작업이 완료될 때까지 대기 상태에 있다가, 제2 트랜잭션 정보의 전처리 작업이 완료된 이후, 제2 트랜잭션 정보의 내용 정보를 저장하는 본처리 작업을 수행하였다.Thereafter, the
이와 같이, 비교예에 따른 프로세서(120)는 블록 데이터에 포함된 복수의 트랜잭션 정보를 처리함에 있어, 정해진 순서에 따라, 복수의 트랜잭션 정보 각각에 대한 전처리 작업과 본처리 작업을 순차적으로 수행함에 있어, 어느 하나의 전처리 작업 또는 본처리 작업이 완료될 때까지 다른 작업을 수행하지 않고 대기 상태에 있다가, 해당 작업이 완료된 이후 다음 작업을 수행하였다.As such, in processing the plurality of transaction information included in the block data, the
이와 같은 비교예의 경우, 어느 하나의 전처리 작업 또는 본처리 작업이 종료될 때까지, 프로세서(120)는 동작을 정지하고 대기를 해야하므로, 프로세서(120)의 응답 처리 속도가 지연되어, 블록 데이터를 처리함에 있어서 병목 현상이 발생하는 문제점이 있었다.In the case of this comparative example, the
그러나, 본 발명의 일례에 따른 피어 단말기가 블록 데이터를 처리하기 위해 전처리 작업과 본처리 작업을 수행하는 방법은 도 4의 (b)와 같이, 각 트랜잭션에 대한 전처리 작업과 본처리 작업을 비동기(Async)화 하여 수행하므로, 전술한 바와 같은 병목 현상을 최소화할 수 있다.However, in the method for the peer terminal according to an example of the present invention to perform a pre-processing operation and a main processing operation in order to process block data, the pre-processing operation and the main processing operation for each transaction are asynchronously ( Async), so that the bottleneck as described above can be minimized.
보다 구체적으로, 본 발명의 일례에 따른 피어 단말기는 프로세서(120)가 제1 기능 부분(121)과 제2 기능 부분(123)을 구비하여, 제1 기능 부분(121)이 복수의 트랜잭션 정보의 인덱스 정보를 수집하고, 인덱스 데이터 베이스(130)에 저장하는 전처리 작업 단계를 수행하고, 제2 기능 부분(123)이 복수의 트랜잭션 정보의 내용 정보를 검증하여, 블록 체인 저장부에 저장하는 본처리 작업 단계를 수행하되, 도 4의 (b)와 같이, 전처리 작업 단계와 본처리 작업 단계는 동시에 수행되도록 할 수 있다.More specifically, in the peer terminal according to an example of the present invention, the
보다 구체적으로, 도 4의 (b)와 같이, 프로세서(120)의 제1 기능 부분(121)이 복수의 트랜잭션 정보(일례로, Tx1 내지 Tx5)에 대한 전처리 작업을 수행함에 있어, 각 트랜잭션 정보에 대해 미리 정해진 순서에 따라 해당 트랜잭션 정보의 인덱스 정보를 수집하고 저장할 수 있고, 프로세선의 제2 기능 부분(123)이 복수의 트랜잭션 정보(일례로, Tx1 내지 Tx5)에 대한 본처리 작업을 수행함에 있어, 각 트랜잭션 정보에 대해 미리 정해진 순서에 따라 해당 트랜잭션 정보의 내용 정보를 수집하고 저장할 수 있다.More specifically, as shown in FIG. 4B , when the first
이때, 프로세서(120)의 제1 기능 부분(121)과 제2 기능 부분(123)은 서로 독립적으로 해당 트랜잭션 정보에 대한 전처리 작업과 본처리 작업을 동시에 수행할 수 있다.In this case, the first
이에 따라, 일례로, 제2 트랜잭션 정보의 전처리 작업은 제1 트랜잭션 정보의 본처리 작업이 종료되기까지 대기하지 않고, 제1 트랜잭션 정보의 본처리 작업이 시작 또는 종료되기 전에 미리 수행될 수 있다.Accordingly, as an example, the pre-processing operation of the second transaction information may be performed in advance before the main processing operation of the first transaction information starts or ends, without waiting until the main processing operation of the first transaction information is finished.
이와 같이, 본 발명에 따른 피어 단말기가 블록 데이터를 처리하는 방법은 블록 데이터에 대한 전처리 작업과 본처리 작업을 프로세서(120)가 비동기 방식으로 수행하도록 함으로써, 프로세서(120)의 응답 처리 속도를 보다 향상시킬 수 있다.As described above, the method for the peer terminal to process block data according to the present invention allows the
아울러, 블록 데이터에 대한 전처리 작업에 트랜잭션 정보의 히스토리 정보에 대한 처리가 포함되는 경우, 프로세서(120)의 제1 기능 부분(121)이 히스토리 정보에 대한 전처리 작업을 수행함에 있어, 트랜잭션 정보에 대한 본처리 작업이 완료될 때까지 대기하지 않고, 제2 기능 부분(123)과 독립적으로 작업을 처리하도록 함으로써, 프로세서(120)의 응답 처리 속도를 보다 향상시킬 수 있다.In addition, when the processing of history information of transaction information is included in the pre-processing operation for block data, when the first
아울러, 본 발명에 따른 프로세서(120)에서는 제1 기능 부분(121)이 반드시 전처리 작업만 수행하는 것으로 한정하지 않고, 제1 기능 부분(121)이 블록 데이터에 포함된 복수의 트랜잭션 정보에 대한 전처리 작업을 완료한 이후에는 제2 기능 부분(123)이 수행하는 본처리 작업을 수행하도록 할 수 있다. 이에 따라 본 발명은 블록 데이터에 대한 처리 속도를 더욱 향상시킬 수 있다.In addition, in the
아울러, 도 4의 (b)에서는 프로세서(120)가 수신된 블록 데이터를 저장하는 쓰기 기능을 수행하는 경우를 일례로 설명하였으나, 이와 다르게 클라이언트 단말기로 블록 데이터에 대한 정보를 전송하기 위해 프로세서(120)가 인덱스 데이터 베이스(130) 및 블록체인 저장부(150)로부터 트랜잭션 정보를 읽을 때에도, 프로세서(120)의 제1 기능 부분(121)과 제2 기능 부분(123)이 동시에 인덱스 데이터 베이스(130) 및 블록체인 저장부(150)로부터 비동기 방식으로 인덱스 정보와 트랜잭션 정보를 읽도록 할 수 있다.In addition, although the case in which the
아울러, 본 발명의 일례에 따른 피어 단말기의 프로세서(120)는 블록 데이터에 대한 작업을 처리함에 있어, 병렬 처리 대상과 직렬 처리 대상으로 구분하여 처리하여, 프로세서(120)의 처리 속도를 보다 향상시킬 수 있다. 이에 대해 보다 자세히 설명하면 다음과 같다.In addition, the
도 5는 본 발명의 일례에 따른 피어 단말기의 프로세서(120)가 블록 데이터에 대한 작업을 병렬 처리 대상과 직렬 처리 대상으로 구분하여 처리하는 방법의 일례를 설명하기 위한 도이다.FIG. 5 is a diagram for explaining an example of a method in which the
도 5의 (a)는 비교예에 따른 피어 단말기가 블록 데이터를 처리하는 방법의 일례를 설명하기 위한 도이고, 도 5의 (b)는 본 발명의 일례에 따른 피어 단말기가 블록 데이터를 처리하는 방법의 일례를 설명하기 위한 도이다.Figure 5 (a) is a diagram for explaining an example of a method of processing block data by a peer terminal according to a comparative example, Figure 5 (b) is a peer terminal according to an example of the present invention processing block data It is a figure for demonstrating an example of a method.
오더러 단말기로부터 복수의 블록 데이터를 수신하는 경우, 피어 단말기는 수신한 복수의 블록 데이터를 버퍼 메모리(Buffer Memory)에 저장하고, 수신하는 복수의 블록 데이터의 번호에 따라 도 5의 (a)에 도시된 바와 같이, 순차적으로 직렬 처리될 수 있다.When receiving a plurality of block data from the orderer terminal, the peer terminal stores the received plurality of block data in a buffer memory, and according to the number of the received plurality of block data, it is shown in (a) of FIG. As shown, they may be sequentially processed serially.
그러나, 이와 같은 경우, 프로세서(120)는 복수의 블록 데이터의 번호에 따라 순차적으로 직렬 처리해야 하므로, 단일 작업의 범위가 넓게 설정될 수 있어, 복수의 블록 데이터를 처리하기 위한 전체 작업 측면에서 불필요한 소요 시간이 발생할 수 있고, 아직 커밋(Commit)되지 않은 블록 데이터에 대한 패이로드 블록(Payload Block)이 버퍼 메모리에 쌓이는 병목 현상이 발생할 수 있다.However, in this case, since the
그러나, 본 발명의 일례에 따른 피어 단말기의 프로세서(120)는 버퍼 메모리에 있는 복수의 블록 데이터에 대한 패이로드 블록(Payload Block)를 커밋(Commit)하기 위해 수행해야 할 처리 대상 작업에 대해, 도 5의 (b)와 같이, 병렬 처리 대상과 직렬 처리 대상으로 구분하여 처리할 수 있다.However, the
이와 같이, 프로세서(120)는 버퍼 메모리에 있는 복수의 블록 데이터를 커밋하기 위해 처리해야할 작업에 대해 병렬 처리 대상과 직렬 처리 대상으로 구분한 이후, 병렬 처리 대상과 직렬 처리 대상을 각각 동시에 처리할 수 있다.In this way, the
예를 들어, 커밋 프로세서(120)(Commit process) 중에서 사전에 처리될 수 있는 프로세스들을 전처리 작업(Preprocessing)을 수행하되, 병렬 처리 가능한 병렬 처리 대상 작업에 대해서는 병렬 처리를 수행하고, 직렬 처리 대상 작업에 대해서는 직렬 처리를 수행하여, 처리 속도를 보다 향상시킬 수 있다.For example, preprocessing is performed on processes that can be processed in advance among the commit processor 120 (Commit process), but parallel processing is performed on a parallel processing target job that can be processed in parallel, and a serial processing target job The processing speed can be further improved by performing serial processing.
여기서, 일례로, 병렬 처리 대상 작업은 본 발명의 프로세서(120)에서 제1 기능 부분(121)에 의해 수행될 수 있으며, 직렬 처리 대상 작업은 본 발명의 프로세서(120)에서 제2 기능 부분(123)에 의해 수행될 수 있다.Here, as an example, the parallel processing target operation may be performed by the first
이에 따라, 수신된 블록 데이터는 프로세서(120)의 제1 기능 부분(121)에 의한 전처리 작업과 프로세서(120)의 제2 기능 부분(123)에 의한 본처리 작업으로 구분되어 동시에 병렬 처리될 수 있다.Accordingly, the received block data is divided into a pre-processing task by the first
이와 같이, 본 발명의 일례에 따른 피어 단말기 및 피어 단말기가 블록 데이터를 처리하는 방법은 블록 데이터의 복수의 트랜잭션 정보를 전처리 작업과 본처리 작업으로 구분하여, 동시에 병렬 처리하도록 함으로써, 피어 단말기의 처리 속도를 향상시킬 수 있다.As described above, in the peer terminal and the method of processing block data by the peer terminal according to an example of the present invention, a plurality of transaction information of block data is divided into a pre-processing operation and a main processing operation, and parallel processing is performed at the same time, thereby processing the peer terminal. speed can be improved.
본 발명의 각 실시예에 개시된 기술적 특징들은 해당 실시예에만 한정되는 것은 아니고, 서로 양립 불가능하지 않은 이상, 각 실시예에 개시된 기술적 특징들은 서로 다른 실시예에 병합되어 적용될 수 있다.The technical features disclosed in each embodiment of the present invention are not limited 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.
100: 피어 단말기(Peer terminal)
110: 통신부(Communication unit)
120: 프로세서(Processor)
121: 제1 기능 부분(First function part)
123: 제2 기능 부분(Second function part)
130: 인덱스 데이터 베이스(Index database)
140: 히스토리 데이터 베이스(History database)
150: 블록체인 저장부(History database)
200: 클라이언트 단말기(client terminal)
300: 오더러 단말기(orderer terminal)100: peer terminal (Peer terminal)
110: communication unit (Communication unit)
120: Processor
121: First function part
123: Second function part
130: Index database
140: History database
150: Blockchain storage (History database)
200: client terminal (client terminal)
300: orderer terminal (orderer terminal)
Claims (18)
상기 제2 기능 부분은 상기 블록 데이터를 저장하기 위해, 복수의 트랜잭션 정보의 내용 정보를 검증하여 커밋(commit)하는 본처리부이고,
상기 피어 단말기가 상기 복수의 트랜잭션 정보를 포함하는 블록 데이터를 수신하는 블록 데이터 수신 단계;
상기 제1 기능 부분이 상기 복수의 트랜잭션 정보의 인덱스 정보를 수집하고, 인덱스 데이터 베이스에 저장하는 전처리 작업 단계; 및
상기 제2 기능 부분이 상기 복수의 트랜잭션 정보의 내용 정보를 검증하여, 블록 체인 저장부에 저장하는 본처리 작업 단계;를 포함하고,
상기 전처리 작업 단계에서, 상기 제1 기능 부분은 상기 복수의 트랜잭션 정보의 인덱스 정보를 미리 정해진 순서에 따라 수집하고 저장하고,
상기 본처리 작업 단계에서, 상기 제2 기능 부분이 상기 복수의 트랜잭션 정보의 내용 정보를 미리 정해진 순서에 따라 검증하여 저장하고,
상기 블록 데이터에 대한 상기 인덱스 정보 및 상기 내용 정보를 저장하는 작업 이외에 추가로 수행해야할 작업에 대해서는 상기 전처리 작업 단계와 상기 본처리 작업 단계로 분류하여 수행하고,상기 전처리 작업 단계와 상기 본처리 작업 단계는 동시에 수행되는
피어 단말기가 블록 데이터를 처리하는 방법.A method for processing block data by a peer terminal including a processor including a first functional part performing a first processing function and a second functional part performing a second processing function different from the first processing function, 1 function part is a preprocessing unit that performs a preprocessing operation to store the block data,
The second functional part is a main processing unit that verifies and commits content information of a plurality of transaction information in order to store the block data,
a block data receiving step of receiving, by the peer terminal, block data including the plurality of transaction information;
a pre-processing operation step of collecting, by the first functional part, index information of the plurality of transaction information and storing it in an index database; and
The second function part verifies the content information of the plurality of transaction information and stores the information in the block chain storage unit;
In the pre-processing step, the first function part collects and stores index information of the plurality of transaction information in a predetermined order,
In the main processing step, the second function part verifies and stores the content information of the plurality of transaction information in a predetermined order,
In addition to the operation of storing the index information and the content information for the block data, the operation to be additionally performed is classified into the pre-processing operation step and the main processing operation step, and the pre-processing operation step and the main processing operation step is performed at the same time
How peer terminals process block data.
상기 제1 기능 부분이 상기 복수의 트랜잭션 정보로부터 히스토리 정보를 수집하여, 히스토리 데이터 베이스에 저장하는 단계를 더 포함하는
피어 단말기가 블록 데이터를 처리하는 방법.The method of claim 1,
The first function part further comprises the step of collecting history information from the plurality of transaction information and storing it in a history database
How peer terminals process block data.
상기 히스토리 데이터 베이스에 저장하는 단계는 상기 전처리 작업 단계가 종료된 이후에 수행하는 것
피어 단말기가 블록 데이터를 처리하는 방법.5. The method of claim 4,
The step of storing in the history database is performed after the pre-processing step is finished.
How peer terminals process block data.
상기 제1 기능 부분이 상기 전처리 작업 단계를 완료한 이후에는, 상기 제1 기능 부분이 상기 본처리 작업 단계를 수행하는데 사용되는
피어 단말기가 블록 데이터를 처리하는 방법.The method of claim 1,
After the first functional part completes the pre-processing operation step, the first functional part is used to perform the main processing operation step.
How peer terminals process block data.
상기 추가로 수행해야할 작업에 대한 상기 전처리 작업 단계와 상기 본처리 작업 단계는 동시에 수행되는
피어 단말기가 블록 데이터를 처리하는 방법. The method of claim 1,
The pre-processing operation step and the main processing operation step for the operation to be additionally performed are performed at the same time
How peer terminals process block data.
상기 블록 데이터를 저장하는 프로세서;를 포함하고,
상기 프로세서는
상기 블록 데이터를 저장하기 위한 제1 프로세싱 기능을 수행하는 제1 기능 부분; 및
상기 블록 데이터를 저장하기 위한 제2 프로세싱 기능을 수행하는 제2 기능 부분;을 포함하되,
상기 제1 기능 부분은 상기 블록 데이터를 저장하기 위해 전처리(preprocessing)하는 전처리부이고,
상기 제2 기능 부분은 상기 블록 데이터를 저장하기 위해, 상기 복수의 트랜잭션 정보의 내용 정보를 검증하여 커밋(commit)하는 본처리부이고,
상기 제1 기능 부분은 상기 복수의 트랜잭션 정보의 인덱스 정보를 수집하고, 인덱스 데이터 베이스에 저장하는 전처리 작업(Task)을 수행하고,
상기 제2 기능 부분이 상기 복수의 트랜잭션 정보의 내용 정보를 검증하여, 블록 체인 저장부에 저장하는 본처리 작업을 수행하고,
상기 제1 기능 부분은 상기 전처리 작업에 대해 상기 복수의 트랜잭션 정보의 인덱스 정보를 미리 정해진 순서에 따라 수집하고 저장하고,
상기 제2 기능 부분이 상기 본처리 작업에 대해 상기 복수의 트랜잭션 정보의 내용 정보를 미리 정해진 순서에 따라 검증하여 저장하고,
상기 프로세서는 상기 블록 데이터에 대한 상기 인덱스 정보 및 상기 내용 정보를 저장하는 작업 이외에 추가로 수행해야할 작업에 대해서는 상기 전처리 작업과 상기 본처리 작업으로 분류하여 수행하고,
상기 전처리 작업과 상기 본처리 작업은 동시에 수행되는 피어 단말기.a communication unit for receiving block data including a plurality of transaction information; and
Including; a processor for storing the block data;
the processor
a first functional portion performing a first processing function for storing the block data; and
a second functional part performing a second processing function for storing the block data;
The first functional part is a preprocessing unit that preprocesses to store the block data,
The second functional part is a main processing unit that verifies and commits content information of the plurality of transaction information in order to store the block data,
The first function part collects index information of the plurality of transaction information and performs a pre-processing task (Task) of storing it in an index database,
The second function part verifies the content information of the plurality of transaction information and performs the main processing operation of storing it in the block chain storage unit,
The first function part collects and stores index information of the plurality of transaction information in a predetermined order for the pre-processing task,
The second function part verifies and stores the content information of the plurality of transaction information in a predetermined order for the main processing operation,
The processor classifies and performs tasks to be additionally performed in addition to the task of storing the index information and the content information for the block data into the pre-processing task and the main processing task,
A peer terminal in which the pre-processing operation and the main processing operation are simultaneously performed.
상기 제1 기능 부분은 상기 복수의 트랜잭션 정보로부터 히스토리 정보를 수집하여, 히스토리 데이터 베이스에 저장하는 히스토리 저장 작업을 더 수행하는 피어 단말기.11. The method of claim 10,
The first functional part is a peer terminal that further performs a history storage operation of collecting history information from the plurality of transaction information and storing it in a history database.
상기 히스토리 저장 작업은 상기 전처리 작업이 종료된 이후에 수행하는 피어 단말기.14. The method of claim 13,
The history storage operation is performed after the pre-processing operation is finished.
상기 제1 기능 부분이 상기 전처리 작업을 완료한 이후에는, 상기 제1 기능 부분이 상기 본처리 작업을 수행하는데 사용되는 피어 단말기.11. The method of claim 10,
After the first functional part completes the pre-processing task, the first functional part is used to perform the main processing task.
상기 추가로 수행해야할 작업에 대한 상기 전처리 작업과 상기 본처리 작업은 동시에 수행되는 피어 단말기.
11. The method of claim 10,
The pre-processing task and the main processing task for the additional task to be performed are simultaneously performed.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/KR2021/008775 WO2022010300A1 (en) | 2020-07-10 | 2021-07-09 | Peer terminal and method for processing block data by peer terminal |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200085737 | 2020-07-10 | ||
KR20200085737 | 2020-07-10 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20220007483A KR20220007483A (en) | 2022-01-18 |
KR102447289B1 true KR102447289B1 (en) | 2022-09-26 |
Family
ID=80052209
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200127066A KR102447289B1 (en) | 2020-07-10 | 2020-09-29 | Peer terminal and method for processing a block data at a peer terminal |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102447289B1 (en) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019243235A1 (en) * | 2018-06-19 | 2019-12-26 | Radix Dlt Limited | Distributed ledger technology |
US20200193538A1 (en) * | 2016-08-31 | 2020-06-18 | Zweispace Japan Corp. | Real estate management system, method, and program |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11169985B2 (en) | 2018-07-27 | 2021-11-09 | Oracle International Corporation | System and method for supporting SQL-based rich queries in hyperledger fabric blockchains |
-
2020
- 2020-09-29 KR KR1020200127066A patent/KR102447289B1/en active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200193538A1 (en) * | 2016-08-31 | 2020-06-18 | Zweispace Japan Corp. | Real estate management system, method, and program |
WO2019243235A1 (en) * | 2018-06-19 | 2019-12-26 | Radix Dlt Limited | Distributed ledger technology |
Also Published As
Publication number | Publication date |
---|---|
KR20220007483A (en) | 2022-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Fan et al. | Performance evaluation of blockchain systems: A systematic survey | |
CN110442652B (en) | Cross-chain data processing method and device based on block chain | |
Baird et al. | Hedera: A public hashgraph network & governing council | |
CN112153085B (en) | Data processing method, node and block chain system | |
CN109472572B (en) | Contract system based on block chain main chain and parallel multiple sub-chains | |
Moreno-Sanchez et al. | Privacy preserving payments in credit networks | |
JP7477576B2 (en) | Method and system for consistent distributed memory pool in a blockchain network | |
Kaur et al. | Scalability in blockchain: Challenges and solutions | |
CN112602076A (en) | DAG-based transaction processing method and system in distributed ledger | |
CN110417558A (en) | Verification method and device, the storage medium and electronic device of signature | |
EP3652885B1 (en) | Secure token passing via blockchains | |
US20230037932A1 (en) | Data processing method and apparatus based on blockchain network, and computer device | |
CN110851537A (en) | Consensus method based on block chain fragmentation technology | |
CN109493052B (en) | Cross-chain contract system based on main chain and parallel multiple sub-chains | |
JP2023532959A (en) | A privacy-preserving architecture for permissioned blockchains | |
CN110505228B (en) | Edge cloud architecture-based big data processing method, system, medium and device | |
KR102564106B1 (en) | System and Method for Intelligent mediating based enhanced smart contract for privacy protection | |
CN114363352B (en) | Cross-chain interaction method of Internet of things system based on block chain | |
CN114327827A (en) | Task processing method and device and storage medium | |
CN111260475A (en) | Data processing method, block chain node point equipment and storage medium | |
CN113037824B (en) | Cloud computing-oriented high-performance block chain construction method | |
KR102447289B1 (en) | Peer terminal and method for processing a block data at a peer terminal | |
CN114503143A (en) | Unifying protocol consensus | |
CN116703601A (en) | Data processing method, device, equipment and storage medium based on block chain network | |
US11704726B1 (en) | Systems and methods for bartering services and goods using distributed ledger techniques |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |