KR102439059B1 - Method for interconnecting heterogeneous blockchain platform and gateway apparatus for executing the same - Google Patents
Method for interconnecting heterogeneous blockchain platform and gateway apparatus for executing the same Download PDFInfo
- Publication number
- KR102439059B1 KR102439059B1 KR1020180061972A KR20180061972A KR102439059B1 KR 102439059 B1 KR102439059 B1 KR 102439059B1 KR 1020180061972 A KR1020180061972 A KR 1020180061972A KR 20180061972 A KR20180061972 A KR 20180061972A KR 102439059 B1 KR102439059 B1 KR 102439059B1
- Authority
- KR
- South Korea
- Prior art keywords
- transaction
- block
- processing module
- routing
- payload
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/66—Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/34—Flow control; Congestion control ensuring sequence integrity, e.g. using sequence numbers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/08—Protocols for interworking; Protocol conversion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
이기종 블록체인 플랫폼 간 데이터 연계 방법 및 이를 수행하기 위한 게이트웨이 장치가 제공된다. 본 발명의 일 실시예에 따른 게이트웨이 장치는, 블록(block)이 저장되는 복수의 노드(node)를 각각 포함하는 이기종 블록체인 플랫폼 간 데이터 연계를 위한 게이트웨이 장치로서, 제1 블록체인 플랫폼에 포함된 복수의 노드 중 설정된 둘 이상의 노드로부터 블록을 각각 수신하고, 수신된 상기 블록에 포함된 트랜잭션 각각을 기 정의된 구조에 따라 표준화하여 큐(queue)에 저장하며, 상기 큐에 저장된 상기 트랜잭션을 중복 제거하고, 상기 트랜잭션으로부터 라우팅 정보를 추출하는 제1 블록 처리 모듈; 상기 제1 블록 처리 모듈로부터 표준화된 상기 트랜잭션 및 상기 라우팅 정보를 수신하고, 상기 라우팅 정보를 기초로 표준화된 상기 트랜잭션을 상기 제1 블록체인 플랫폼과 상이한 종류의 제2 블록체인 플랫폼에서 처리 가능한 표준화된 데이터 구조의 페이로드(payload)로 변환하는 라우팅 모듈; 및 상기 라우팅 모듈로부터 상기 페이로드를 수신하고, 상기 제2 블록체인 플랫폼에 포함된 노드로 상기 페이로드를 전송하는 제2 블록 처리 모듈을 포함하는, 게이트웨이 장치가 제공된다.A data linkage method between heterogeneous blockchain platforms and a gateway device for performing the same are provided. A gateway device according to an embodiment of the present invention is a gateway device for data linkage between heterogeneous blockchain platforms each including a plurality of nodes in which blocks are stored, and is included in the first blockchain platform. Receive blocks from two or more nodes set among a plurality of nodes, standardize each transaction included in the received block according to a predefined structure, store it in a queue, and deduplicate the transactions stored in the queue and a first block processing module for extracting routing information from the transaction; Receive the standardized transaction and the routing information from the first block processing module, and process the standardized transaction based on the routing information in a second block chain platform different from the first block chain platform a routing module that converts the data structure into a payload; and a second block processing module that receives the payload from the routing module and transmits the payload to a node included in the second blockchain platform.
Description
본 발명의 실시예들은 서로 다른 종류의 블록체인 플랫폼 간에 데이터를 연계하는 기술과 관련된다.Embodiments of the present invention relate to technology for linking data between different types of blockchain platforms.
블록체인(blockchain)은 네트워크에 참여하는 각 사용자가 거래 내역 등과 같은 데이터가 담긴 블록을 분산 저장하는 기술이다. 각 블록들은 생성될 때마다 생성된 시간 순으로 순차적으로 연결되어 체인(chain) 구조를 이루게 된다. 이러한 블록체인은 금융 거래, 보안, 암호화폐 등 다양한 분야에서 적용되고 있으며, 그 적용 분야는 점차 증가하고 있다. 또한, 최근에는 하이퍼렛져(Hyperledger), 이더리움(Ethereum), R3 코다(Corda) 등과 같은 다양한 블록체인 플랫폼이 등장하였다.Blockchain is a technology in which each user participating in the network distributes and stores blocks containing data such as transaction details. Whenever each block is created, it is sequentially connected in the order of creation time to form a chain structure. These blockchains are being applied in various fields such as financial transactions, security, and cryptocurrency, and the fields of application are gradually increasing. In addition, various blockchain platforms such as Hyperledger, Ethereum, and R3 Corda have recently appeared.
그러나, 블록체인의 경우 전세계 표준이 없어 각 업체별/국가별로 그 업무 또는 특성에 맞는 블록체인 플랫폼을 선택하여 사용하고 있으며, 이기종 블록체인 플랫폼 간에 상호 연계가 불가능한 문제가 있다. 종래에는 이기종 블록체인 플랫폼 사용을 위해 각 블록체인 플랫폼에서 제공하는 클라이언트 프로그램을 단말에 각각 설치하여야 하였으며, 이들간 연계가 불가능하여 중복 입력 등의 이슈가 발생하였다.However, in the case of blockchain, there is no global standard, so each company/country selects and uses a blockchain platform that suits their business or characteristics, and there is a problem in that it is impossible to interconnect between heterogeneous blockchain platforms. Conventionally, in order to use a heterogeneous block chain platform, each client program provided by each block chain platform had to be installed in the terminal, and it was impossible to link them, causing issues such as duplicate input.
본 발명의 실시예들은 이기종 블록체인 플랫폼 간에 표준화된 방식으로 데이터를 상호 연계시키는 수단을 제공하기 위한 것이다.Embodiments of the present invention are intended to provide a means for correlating data in a standardized manner between heterogeneous blockchain platforms.
예시적인 실시예에 따르면, 블록(block)이 저장되는 복수의 노드(node)를 각각 포함하는 이기종 블록체인 플랫폼 간 데이터 연계를 위한 게이트웨이 장치로서, 제1 블록체인 플랫폼에 포함된 복수의 노드 중 설정된 둘 이상의 노드로부터 블록을 각각 수신하고, 수신된 상기 블록에 포함된 트랜잭션 각각을 기 정의된 구조에 따라 표준화하여 큐(queue)에 저장하며, 상기 큐에 저장된 상기 트랜잭션을 중복 제거하고, 상기 트랜잭션으로부터 라우팅 정보를 추출하는 제1 블록 처리 모듈; 상기 제1 블록 처리 모듈로부터 표준화된 상기 트랜잭션 및 상기 라우팅 정보를 수신하고, 상기 라우팅 정보를 기초로 표준화된 상기 트랜잭션을 상기 제1 블록체인 플랫폼과 상이한 종류의 제2 블록체인 플랫폼에서 처리 가능한 표준화된 데이터 구조의 페이로드(payload)로 변환하는 라우팅 모듈; 및 상기 라우팅 모듈로부터 상기 페이로드를 수신하고, 상기 제2 블록체인 플랫폼에 포함된 노드로 상기 페이로드를 전송하는 제2 블록 처리 모듈을 포함하는, 게이트웨이 장치가 제공된다.According to an exemplary embodiment, as a gateway device for data connection between heterogeneous blockchain platforms each including a plurality of nodes in which blocks are stored, set among a plurality of nodes included in the first blockchain platform. Each block is received from two or more nodes, each transaction included in the received block is standardized according to a predefined structure and stored in a queue, the transaction stored in the queue is deduplicated, and from the transaction a first block processing module for extracting routing information; Receive the standardized transaction and the routing information from the first block processing module, and process the standardized transaction based on the routing information in a second block chain platform different from the first block chain platform a routing module that converts the data structure into a payload; and a second block processing module that receives the payload from the routing module and transmits the payload to a node included in the second blockchain platform.
상기 제1 블록 처리 모듈은, 상기 블록 각각의 시퀀스 넘버(sequence number) 또는 상기 블록 각각에 포함된 트랜잭션 아이디를 기초로 상기 큐에 저장된 상기 트랜잭션을 중복 제거할 수 있다.The first block processing module may deduplicate the transaction stored in the queue based on a sequence number of each block or a transaction ID included in each block.
상기 라우팅 정보는, 상기 트랜잭션에 대한 송신자 정보, 수신자 정보 및 상기 트랜잭션의 종류를 포함할 수 있다.The routing information may include sender information about the transaction, receiver information, and a type of the transaction.
상기 라우팅 모듈은, 상기 라우팅 정보를 참조하여 상기 트랜잭션이 전송될 상기 제2 블록 처리 모듈을 결정할 수 있다.The routing module may determine the second block processing module to which the transaction is to be transmitted with reference to the routing information.
상기 라우팅 모듈은, 상기 트랜잭션으로부터 송신 대상이 되는 데이터를 추출하고, 상기 데이터를 포함하는 상기 페이로드를 생성할 수 있다.The routing module may extract data to be transmitted from the transaction and generate the payload including the data.
상기 제1 블록 처리 모듈에서 표준화된 데이터의 구조는, 각 블록체인 플랫폼과 관계 없이 동일하며, 상기 페이로드의 데이터 구조는, 상기 라우팅 정보에 포함된 수신자 정보에 따라 달라질 수 있다.The data structure standardized in the first block processing module is the same regardless of each block chain platform, and the data structure of the payload may vary according to recipient information included in the routing information.
다른 예시적인 실시예에 따르면, 블록(block)이 저장되는 복수의 노드(node)를 각각 포함하는 이기종 블록체인 플랫폼 간 데이터 연계를 위한 게이트웨이 장치에서 수행되는 데이터 연계 방법으로서, 제1 블록 처리 모듈에서, 제1 블록체인 플랫폼에 포함된 복수의 노드 중 설정된 둘 이상의 노드로부터 블록을 각각 수신하는 단계; 상기 제1 블록 처리 모듈에서, 수신된 상기 블록에 포함된 트랜잭션 각각을 기 정의된 구조에 따라 표준화하여 큐(queue)에 저장하는 단계; 상기 제1 블록 처리 모듈에서, 상기 큐에 저장된 상기 트랜잭션을 중복 제거하는 단계; 상기 제1 블록 처리 모듈에서, 상기 트랜잭션으로부터 라우팅 정보를 추출하는 단계; 라우팅 모듈에서, 상기 제1 블록 처리 모듈로부터 표준화된 상기 트랜잭션 및 상기 라우팅 정보를 수신하는 단계; 상기 라우팅 모듈에서, 상기 라우팅 정보를 기초로 표준화된 상기 트랜잭션을 상기 제1 블록체인 플랫폼과 상이한 종류의 제2 블록체인 플랫폼에서 처리 가능한 표준화된 데이터 구조의 페이로드(payload)로 변환하는 단계; 제2 블록 처리 모듈에서, 상기 라우팅 모듈로부터 상기 페이로드를 수신하는 단계; 및 상기 제2 블록 처리 모듈에서, 상기 제2 블록체인 플랫폼에 포함된 노드로 상기 페이로드를 전송하는 단계를 포함하는, 데이터 연계 방법이 제공된다.According to another exemplary embodiment, as a data linkage method performed in a gateway device for data linkage between heterogeneous blockchain platforms each including a plurality of nodes in which blocks are stored, in the first block processing module , receiving each block from two or more nodes set among a plurality of nodes included in the first blockchain platform; standardizing, in the first block processing module, each transaction included in the received block according to a predefined structure and storing it in a queue; deduplicating, in the first block processing module, the transaction stored in the queue; extracting, in the first block processing module, routing information from the transaction; receiving, in a routing module, the standardized transaction and the routing information from the first block processing module; converting, in the routing module, the standardized transaction based on the routing information into a payload of a standardized data structure that can be processed in a second block chain platform different from the first block chain platform; receiving, in a second block processing module, the payload from the routing module; and transmitting, in the second block processing module, the payload to a node included in the second blockchain platform.
상기 트랜잭션을 중복 제거하는 단계는, 상기 블록 각각의 시퀀스 넘버(sequence number) 또는 상기 블록 각각에 포함된 트랜잭션 아이디를 기초로 상기 큐에 저장된 상기 트랜잭션을 중복 제거할 수 있다.In the deduplication of the transaction, the transaction stored in the queue may be deduplicated based on a sequence number of each of the blocks or a transaction ID included in each of the blocks.
상기 라우팅 정보는, 상기 트랜잭션에 대한 송신자 정보, 수신자 정보 및 상기 트랜잭션의 종류를 포함할 수 있다.The routing information may include sender information about the transaction, receiver information, and a type of the transaction.
상기 데이터 연계 방법은, 상기 라우팅 모듈에서, 상기 라우팅 정보를 참조하여 상기 트랜잭션이 전송될 상기 제2 블록 처리 모듈을 결정하는 단계를 더 포함할 수 있다.The data association method may further include, in the routing module, determining the second block processing module to which the transaction is to be transmitted by referring to the routing information.
상기 트랜잭션을 상기 페이로드로 변환하는 단계는, 상기 트랜잭션으로부터 송신 대상이 되는 데이터를 추출하고, 상기 데이터를 포함하는 상기 페이로드를 생성할 수 있다.The converting of the transaction into the payload may include extracting data to be transmitted from the transaction and generating the payload including the data.
상기 제1 블록 처리 모듈에서 표준화된 데이터의 구조는, 각 블록체인 플랫폼과 관계 없이 동일하며, 상기 페이로드의 데이터 구조는, 상기 라우팅 정보에 포함된 수신자 정보에 따라 달라질 수 있다.The data structure standardized in the first block processing module is the same regardless of each block chain platform, and the data structure of the payload may vary according to recipient information included in the routing information.
본 발명의 실시예들에 따르면, 제1 블록체인 플랫폼으로부터 수신된 블록에 포함된 트랜잭션을 표준화한 후 제2 블록체인 플랫폼에서 처리 가능한 표준화된 데이터 구조(페이로드)로 변환하여 상기 제2 블록체인 플랫폼으로 전달함으로써, 이기종 블록체인 플랫폼 간에 표준화된 방식으로 데이터를 상호 연계시킬 수 있다.According to embodiments of the present invention, after standardizing the transaction included in the block received from the first blockchain platform, it is converted into a standardized data structure (payload) that can be processed by the second blockchain platform, and the second blockchain By passing it to the platform, it is possible to correlate data across heterogeneous blockchain platforms in a standardized way.
또한, 본 발명의 실시예들에 따르면, 각 블록체인 플랫폼에 포함된 복수의 노드 중 설정된 둘 이상의 노드로부터 블록 각각 수신한 후 상기 블록에 포함된 트랜잭션을 큐에 저장하도록 함으로써, 상기 설정된 둘 이상의 노드 중 일부 노드에서 장애, 연결 단절 등의 이유로 블록을 정상적으로 송신하지 못하더라도 상기 설정된 둘 이상의 노드 중 상기 일부 노드를 제외한 다른 노드로부터 상기 블록에 포함된 트랜잭션을 정상적으로 수신할 수 있게 된다.In addition, according to embodiments of the present invention, after receiving each block from two or more set nodes among a plurality of nodes included in each block chain platform, the transaction included in the block is stored in a queue, so that the set two or more nodes Even if some nodes fail to transmit the block normally due to a failure or disconnection of the connection, the transaction included in the block can be normally received from other nodes except for the some nodes among the two or more set nodes.
도 1은 본 발명의 일 실시예에 따른 통신 시스템의 상세 구성을 나타낸 블록도
도 2는 본 발명의 일 실시예에 따른 이기종 블록체인 플랫폼 간 데이터가 전달되는 과정을 설명하기 위한 예시
도 3은 본 발명의 일 실시예에 따른 블록 처리 모듈의 상세 구성을 나타낸 블록도
도 4는 본 발명의 일 실시예에 따른 게이트웨이 장치에서 이기종 블록체인 플랫폼 간 데이터를 연계하는 방법을 설명하기 위한 흐름도
도 5는 본 발명의 일 실시예에 따른 블록에 포함되는 데이터의 예시
도 6은 본 발명의 일 실시예에 따른 라우팅 정보의 예시
도 7은 본 발명의 일 실시예에 따른 페이로드의 예시
도 8은 예시적인 실시예들에서 사용되기에 적합한 컴퓨팅 장치를 포함하는 컴퓨팅 환경을 예시하여 설명하기 위한 블록도1 is a block diagram showing a detailed configuration of a communication system according to an embodiment of the present invention;
2 is an example for explaining a process of transferring data between heterogeneous blockchain platforms according to an embodiment of the present invention;
3 is a block diagram illustrating a detailed configuration of a block processing module according to an embodiment of the present invention;
4 is a flowchart for explaining a method of associating data between heterogeneous blockchain platforms in a gateway device according to an embodiment of the present invention.
5 is an example of data included in a block according to an embodiment of the present invention;
6 is an example of routing information according to an embodiment of the present invention;
7 is an example of a payload according to an embodiment of the present invention;
8 is a block diagram illustrating and describing a computing environment including a computing device suitable for use in example embodiments;
이하, 도면을 참조하여 본 발명의 구체적인 실시형태를 설명하기로 한다. 이하의 상세한 설명은 본 명세서에서 기술된 방법, 장치 및/또는 시스템에 대한 포괄적인 이해를 돕기 위해 제공된다. 그러나 이는 예시에 불과하며 본 발명은 이에 제한되지 않는다.Hereinafter, specific embodiments of the present invention will be described with reference to the drawings. The following detailed description is provided to provide a comprehensive understanding of the methods, apparatus, and/or systems described herein. However, this is merely an example and the present invention is not limited thereto.
본 발명의 실시예들을 설명함에 있어서, 본 발명과 관련된 공지기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. 상세한 설명에서 사용되는 용어는 단지 본 발명의 실시예들을 기술하기 위한 것이며, 결코 제한적이어서는 안 된다. 명확하게 달리 사용되지 않는 한, 단수 형태의 표현은 복수 형태의 의미를 포함한다. 본 설명에서, "포함" 또는 "구비"와 같은 표현은 어떤 특성들, 숫자들, 단계들, 동작들, 요소들, 이들의 일부 또는 조합을 가리키기 위한 것이며, 기술된 것 이외에 하나 또는 그 이상의 다른 특성, 숫자, 단계, 동작, 요소, 이들의 일부 또는 조합의 존재 또는 가능성을 배제하도록 해석되어서는 안 된다.In describing the embodiments of the present invention, if it is determined that the detailed description of the known technology related to the present invention may unnecessarily obscure the gist of the present invention, the detailed description thereof will be omitted. And, the terms to be described later are terms defined in consideration of functions in the present invention, which may vary according to intentions or customs of users and operators. Therefore, the definition should be made based on the content throughout this specification. The terminology used in the detailed description is for the purpose of describing embodiments of the present invention only, and should in no way be limiting. Unless explicitly used otherwise, expressions in the singular include the meaning of the plural. In this description, expressions such as “comprising” or “comprising” are intended to indicate certain features, numbers, steps, acts, elements, some or a combination thereof, one or more other than those described. It should not be construed to exclude the presence or possibility of other features, numbers, steps, acts, elements, or any part or combination thereof.
도 1은 본 발명의 일 실시예에 따른 통신 시스템(100)의 상세 구성을 나타낸 블록도이다. 도 1에 도시된 바와 같이, 본 발명의 일 실시예에 따른 통신 시스템(100)은 게이트웨이 장치(102) 및 복수의 블록체인 플랫폼(104)을 포함한다.1 is a block diagram showing a detailed configuration of a
게이트웨이 장치(102)는 블록(block)이 저장되는 복수의 노드(node)를 각각 포함하는 이기종 블록체인 플랫폼(104) 간 데이터 연계를 위한 장치이다. 여기서, 블록체인 플랫폼(104)은 블록체인(blockchain)을 통해 금융 거래, 보안 등과 같은 각종 서비스를 제공하는 시스템을 의미한다. 본 실시예들에 있어서, 블록체인 플랫폼(104)은 예를 들어, 하이퍼렛져(Hyperledger), 이더리움(Ethereum), R3 코다(Corda) 등이 될 수 있으나 블록체인 플랫폼(104)의 종류가 이에 한정되는 것은 아니다.The
블록체인의 경우 전세계 표준이 없어 각 업체별/국가별로 그 업무 또는 특성에 맞는 블록체인 플랫폼(104)을 선택하여 사용하고 있으며, 게이트웨이 장치(102)는 이러한 이기종 블록체인 플랫폼(104) 사이에서 데이터를 중계할 수 있다. 도 1을 참조하면, 게이트웨이 장치(102)의 좌측에 위치한 블록체인 플랫폼(104)은 예를 들어, 특정 서비스를 제공하는 기업에서 사용하는 블록체인 플랫폼일 수 있으며, 게이트웨이 장치(102)의 우측에 위치한 블록체인 플랫폼(104)은 예를 들어, 상기 기업의 자회사, 계열사 등에서 사용하는 블록체인 플랫폼일 수 있다. In the case of blockchain, there is no worldwide standard, and each company/country selects and uses a
게이트웨이 장치(102)는 블록체인 플랫폼(104)에 포함된 복수의 노드 중 적어도 둘 이상의 노드와 통신함으로써 이기종 블록체인 플랫폼 사이에서 데이터를 중계할 수 있다.The
일 예시로서, 게이트웨이 장치(102)는 블록체인 플랫폼 #1(예를 들어, 하이퍼렛져)과 블록체인 플랫폼 #2(예를 들어, 이더리움) 사이에서 데이터를 중계할 수 있다.As an example, the
도 2는 본 발명의 일 실시예에 따른 이기종 블록체인 플랫폼(104) 간 데이터가 전달되는 과정을 설명하기 위한 예시이다.2 is an example for explaining a process of transferring data between
도 2에 도시된 바와 같이, 본 발명의 일 실시예에 따른 게이트웨이 장치(102)는 복수의 블록 처리 모듈(202) 및 라우팅 모듈(204)을 포함할 수 있다.As shown in FIG. 2 , the
블록 처리 모듈(202)은 특정 블록체인 플랫폼(104)에서 송수신되는 블록을 처리하기 위한 모듈이다. 일 예시로서, 블록 처리 모듈 #1은 블록체인 플랫폼 #1(예를 들어, 하이퍼렛져)에서 송수신되는 블록을 처리하기 위한 모듈이며, 블록 처리 모듈 #2는 블록체인 플랫폼 #2(예를 들어, 이더리움)에서 송수신되는 블록을 처리하기 위한 모듈이며, 블록 처리 모듈 #3은 블록체인 플랫폼 #3(예를 들어, R3 코다)에서 송수신되는 블록을 처리하기 위한 모듈이다.The
이하에서는 설명의 편의상 게이트웨이 장치(102)가 블록체인 플랫폼 #1과 블록체인 플랫폼 #2 사이에서 데이터를 중계하는 것으로 가정한다. 이때, 블록 송신자인 블록체인 플랫폼 #1을 제1 블록체인 플랫폼(104-1)이라 칭하고, 블록 수신자인 블록체인 플랫폼 #2를 제2 블록체인 플랫폼(104-2)이라 칭하기로 한다. 또한, 제1 블록체인 플랫폼(104-1)으로부터 블록을 수신하는 블록 처리 모듈 #1을 제1 블록 처리 모듈(202-1)이라 칭하고, 제2 블록체인 플랫폼(104-2)으로 후술할 페이로드(payload)를 전달하는 블록 처리 모듈 #2를 제2 블록 처리 모듈(202-2)이라 칭하기로 한다. Hereinafter, for convenience of description, it is assumed that the
이상과 같은 가정에서, 데이터의 흐름을 정리하면 아래와 같다.Assuming the above assumptions, the flow of data is summarized as follows.
제1 블록체인 플랫폼(104-1) → 제1 블록 처리 모듈(202-1) → 라우팅 모듈(204) → 제2 블록 처리 모듈(202-2) → 제2 블록체인 플랫폼(104-2)The first block chain platform (104-1) → the first block processing module (202-1) → the routing module (204) → the second block processing module (202-2) → the second block chain platform (104-2)
한편, 여기서는 설명의 편의상 블록 처리 모듈(202)을 제1 블록 처리 모듈(202-1)과 제2 블록 처리 모듈(202-2)로 구분하였을 뿐, 각 블록 처리 모듈(202)은 동일 또는 유사한 기능을 수행하도록 구성될 수 있다.Meanwhile, here, for convenience of description, the
또한, 라우팅 모듈(204)은 복수의 블록 처리 모듈(202) 사이에서 데이터 변환 및 라우팅을 담당하는 모듈이다. 라우팅 모듈(204)은 제1 블록 처리 모듈(202-1)로부터 블록에 포함된 트랜잭션 및 상기 트랜잭션의 라우팅 정보를 수신하고, 상기 라우팅 정보를 참조하여 트랜잭션이 전송될 제2 블록 처리 모듈(202-2)을 결정할 수 있다. 또한, 라우팅 모듈(204)은 상기 라우팅 정보를 기초로 상기 트랜잭션을 페이로드로 변환하고, 상기 페이로드를 제2 블록 처리 모듈(202-2)로 전송할 수 있다.In addition, the
도 3은 본 발명의 일 실시예에 따른 블록 처리 모듈(202)의 상세 구성을 나타낸 블록도이다. 도 3에 도시된 바와 같이, 본 발명의 일 실시예에 따른 블록 처리 모듈(202)은 수신측 컴포넌트(300)와 송신측 컴포넌트(400)를 포함한다.3 is a block diagram showing a detailed configuration of the
수신측 컴포넌트(300)는 블록체인 플랫폼(104)으로부터 블록을 수신하고 이를 처리하기 위한 컴포넌트들로서, 블록 수신부(302), 큐(304, Queue), 트랜잭션 처리부(306) 및 인바운드 핸들러(308, Inbound Handler)를 포함할 수 있다.The receiving-
블록 수신부(302)는 블록체인 플랫폼(104)으로부터 블록(즉, 하나 이상의 트랜잭션을 포함하는 데이터 집합)을 수신한다. 이때, 블록 수신부(302)는 각 블록체인 플랫폼(104)에 포함된 복수의 노드 중 설정된 둘 이상의 노드(예를 들어, 3개의 노드)를 지속적으로 모니터링함으로써 새로운 블록이 생성(또는 저장)되는지의 여부를 확인하고, 새로운 블록이 생성되는 경우 상기 설정된 둘 이상의 노드 각각으로부터 상기 블록(또는 상기 블록에 포함된 트랜잭션)을 수신할 수 있다. 각 블록체인 플랫폼(104)은 복수의 노드를 포함하고 있으며, 새로운 블록이 생성될 때마다 생성된 블록이 상기 노드 모두에 각각 저장된다. 블록 수신부(302)는 이들 노드 중 설정된 하나의 노드로부터 새롭게 생성된 블록을 수신할 수 있으나, 상기 설정된 하나의 노드에서 장애가 발생하거나 상기 설정된 하나의 노드와의 연결이 끊어지는 경우 상기 새롭게 생성된 블록을 수신할 수 없게 된다. 이에 따라, 본 실시예들에서는 블록 수신부(302)가 각 블록체인 플랫폼(104)에 포함된 복수의 노드 중 설정된 둘 이상의 노드로부터 상기 새롭게 생성된 블록을 각각 수신할 수 있도록 하였다. 이 경우, 상기 설정된 둘 이상의 노드 중 일부 노드에서 장애, 연결 단절 등의 이유로 블록을 정상적으로 송신하지 못하더라도 상기 설정된 둘 이상의 노드 중 상기 일부 노드를 제외한 다른 노드로부터 상기 새롭게 생성된 블록을 정상적으로 수신할 수 있게 되며, 이에 따라 통신 시스템(100)의 고가용성(HA, High Availability)을 보장할 수 있게 된다. 이를 위해, 블록 수신부(302)는 모니터링 대상이 되는 둘 이상의 노드에 관한 설정 정보(예를 들어, 노드의 아이디, 아이피 주소 등)를 미리 구비할 수 있으며, 상기 설정 정보를 이용하여 상기 둘 이상의 노드와의 연결을 지속적으로 유지할 수 있다. 상기 설정 정보는 관리자에 의해 미리 입력될 수 있으나 이에 한정되는 것은 아니며, 블록 수신부(302)가 랜덤하게 둘 이상의 노드를 지정함으로써 자동으로 설정될 수도 있다.The
또한, 블록 수신부(302)는 상기 둘 이상의 노드에서 수신된 블록(또는 상기 블록에 포함된 트랜잭션) 각각을 기 정의된 구조에 따라 표준화할 수 있다. 블록체인 플랫폼(104)으로부터 수신된 블록들은 블록체인 플랫폼(104)의 종류에 따라 서로 다른 형태의 정보를 포함할 수 있으며, 이기종 블록체인 플랫폼(104) 간 데이터 연계를 위해서는 이들 블록들에 포함된 데이터의 구조를 표준화된 형태로 통일시킬 필요가 있다. 이에 따라, 블록 수신부(302)는 블록체인 플랫폼(104)으로부터 수신된 블록(또는 상기 블록에 포함된 트랜잭션)을 기 정의된 구조에 따라 표준화함으로써 상기 트랜잭션에 포함된 데이터 구조(또는 형태)를 변환할 수 있다. 이와 같이 트랜잭션의 데이터 구조가 표준화되는 경우, 이후 라우팅 모듈(204)에서 상기 표준화된 트랜잭션을 수신측 블록체인 플랫폼(104)의 종류에 맞게 보다 용이하게 변환할 수 있다.In addition, the
또한, 블록 수신부(302)는 상기 표준화된 트랜잭션 각각을 큐(304)에 중복 저장할 수 있다.Also, the
큐(304)는 블록 수신부(302)에서 수신된 트랜잭션들이 임시 보관되는 장소이다. 상술한 바와 같이, 블록 수신부(302)는 블록체인 플랫폼(104)에 포함된 복수의 노드 중 설정된 둘 이상의 노드로부터 블록을 각각 수신하고 수신된 블록에 포함된 트랜잭션 각각을 기 정의된 구조에 따라 표준화하여 큐(304)에 저장할 수 있다. 이때, 큐(304)에 저장된 블록 또는 트랜잭션들은 시퀀스 넘버(sequence number), 즉 블록 넘버(block number) 또는 트랜잭션 아이디를 각각 구비하고 있다. 상기 시퀀스 넘버는 생성된 블록 또는 트랜잭션을 식별하기 위한 고유의 정보로서, 블록 또는 트랜잭션이 새롭게 생성될 때마다 해당 블록 또는 트랜잭션에 부여될 수 있다. The
트랜잭션 처리부(306)는 상기 시퀀스 넘버를 기초로 큐(304)에 저장된 블록들을 중복 제거한다. 일 예시로서, 큐(304)에 동일한 시퀀스 넘버를 갖는 3개의 블록이 저장되어 있는 경우, 트랜잭션 처리부(306)는 이들 3개의 블록 중 2개의 블록을 제거할 수 있다. 다른 예시로서, 큐(304)에 시퀀스 넘버 1-2를 갖는 3개의 블록과 시퀀스 넘버 2-4를 갖는 4개의 블록이 저장되어 있는 경우, 트랜잭션 처리부(306)는 시퀀스 넘버 1-2를 갖는 3개의 블록 중 2개의 블록을 제거하고 시퀀스 넘버 2-4를 갖는 4개의 블록 중 3개의 블록을 제거할 수 있다. 이와 같이, 트랜잭션 처리부(306)는 큐(304)에 중복 저장된 블록들 중 해당 시퀀스 넘버를 갖는 하나의 블록만을 남겨놓은 채 동일한 시퀀스 넘버를 갖는 나머지 블록들을 제거할 수 있다. 이후, 트랜잭션 처리부(306)는 중복 제거된 블록(즉, 표준화된 형태의 블록)을 인바운드 핸들러(308)로 전달할 수 있다.The
또한, 트랜잭션 처리부(306)는 각 트랜잭션들의 트랜잭션 아이디를 기초로 큐(304)에 저장된 트랜잭션들을 중복 제거할 수도 있다. 일 예시로서, 큐(304)에 동일한 트랜잭션 아이디를 갖는 3개의 트랜잭션이 저장되어 있는 경우, 트랜잭션 처리부(306)는 이들 3개의 트랜잭션 중 2개의 트랜잭션을 제거할 수 있다.Also, the
인바운드 핸들러(308)는 트랜잭션 처리부(306)로부터 표준화된 트랜잭션을 수신하고, 상기 트랜잭션으로부터 라우팅 정보를 추출한다. 라우팅 정보는 상기 트랜잭션의 라우팅 경로(routing path)를 결정하는 데 필요한 정보로서, 상기 트랜잭션에 대한 송신자 정보, 수신자 정보 및 상기 트랜잭션의 종류(type)를 포함할 수 있다. 여기서, 트랜잭션은 상기 블록에 하나 이상 포함될 수 있다. 인바운드 핸들러(308)는 상기 트랜잭션으로부터 라우팅 정보를 추출하고, 상기 트랜잭션과 라우팅 정보를 라우팅 모듈(204)로 전송할 수 있다. 이후, 라우팅 모듈(204)은 상기 라우팅 정보를 참조하여 상기 트랜잭션이 전송될 타 블록 처리 모듈(202)을 결정하고, 상기 라우팅 정보를 기초로 표준화된 상기 트랜잭션의 데이터 구조를 상기 타 블록 처리 모듈(202)에 대응되는 블록체인 플랫폼(104)에서 처리 가능한 형태, 즉 페이로드로 변환할 수 있다. 구체적으로, 라우팅 모듈(204)은 상기 트랜잭션으로부터 실제 송신 대상이 되는 데이터(즉, 타깃 데이터)를 추출하고, 상기 데이터를 포함하는 상기 페이로드를 생성할 수 있다.The
송신측 컴포넌트(400)는 라우팅 모듈(204)로부터 상기 페이로드를 수신하고 이를 처리하기 위한 컴포넌트들로서, 큐(402), 입력 수신부(404) 및 아웃바운드 핸들러(406)을 포함한다.The sending
큐(402)는 라우팅 모듈(204)로부터 수신되는 상기 페이로드가 임시 저장되는 저장소이다.The
입력 수신부(404)는 큐(402)에 저장된 상기 페이로드를 아웃바운드 핸들러(406)로 전달한다.The
아웃바운드 핸들러(406)는 입력 수신부(404)로부터 수신된 상기 페이로드를 대응되는 블록체인 플랫폼(104) 측으로 전달(또는 대응되는 블록체인 플랫폼(104)에 기록)한다. The
도 4는 본 발명의 일 실시예에 따른 게이트웨이 장치(102)에서 이기종 블록체인 플랫폼(104) 간 데이터를 연계하는 방법을 설명하기 위한 흐름도이다. 도시된 흐름도에서는 상기 방법을 복수 개의 단계로 나누어 기재하였으나, 적어도 일부의 단계들은 순서를 바꾸어 수행되거나, 다른 단계와 결합되어 함께 수행되거나, 생략되거나, 세부 단계들로 나뉘어 수행되거나, 또는 도시되지 않은 하나 이상의 단계가 부가되어 수행될 수 있다.4 is a flowchart for explaining a method of associating data between
S102 단계에서, 제1 블록 처리 모듈(202-1)의 블록 수신부(302)는 제1 블록체인 플랫폼(104-1)에 포함된 복수의 노드 중 설정된 둘 이상의 노드로부터 블록을 각각 수신한다.In step S102, the
S104 단계에서, 제1 블록 처리 모듈(202-1)의 블록 수신부(302)는 수신된 상기 블록에 포함된 트랜잭션 각각을 기 정의된 구조에 따라 표준화하여 큐(304)에 저장한다.In step S104 , the
S106 단계에서, 제1 블록 처리 모듈(202-1)의 트랜잭션 처리부(306)는 큐(304)에 저장된 상기 트랜잭션을 중복 제거한다.In step S106 , the
S108 단계에서, 제1 블록 처리 모듈(202-1)의 인바운드 핸들러(308)는 상기 트랜잭션으로부터 라우팅 정보를 추출한다.In step S108, the
S110 단계에서, 제1 블록 처리 모듈(202-1)의 인바운드 핸들러(308)는 표준화된 상기 트랜잭션 및 라우팅 정보를 라우팅 모듈(204)로 전달한다.In step S110 , the
S112 단계에서, 라우팅 모듈(204)은 제1 블록 처리 모듈(202-1)로부터 표준화된 상기 트랜잭션 및 라우팅 정보를 수신하고, 상기 라우팅 정보를 참조하여 상기 트랜잭션이 전송될 제2 블록 처리 모듈(202-2)을 결정한다. 라우팅 모듈(204)은 예를 들어, 라우팅 정보에 포함된 수신자 정보(즉, 블록체인 플랫폼의 식별 정보)에 대응되는 블록 처리 모듈을 상기 제2 블록 처리 모듈(202-2)로 결정할 수 있다. 또한, 라우팅 모듈(204)은 상기 라우팅 정보를 기초로 표준화된 상기 트랜잭션을 페이로드로 변환하고, 상기 페이로드를 상기 제2 블록 처리 모듈(202-2)의 큐(402)로 전달할 수 있다.In step S112, the
S114 단계에서, 제2 블록 처리 모듈(202-2)의 입력 수신부(404)는 큐(402)에 저장된 페이로드를 로딩한다.In step S114 , the
S116 단계에서, 제2 블록 처리 모듈(202-2)의 입력 수신부(404)는 상기 페이로드를 아웃바운드 핸들러(406)로 전달한다.In step S116 , the
S118 단계에서, 제2 블록 처리 모듈(202-2)의 아웃바운드 핸들러(406)는 상기 페이로드를 제2 블록체인 플랫폼(104-2) 측으로 전달한다. In step S118 , the
도 5는 본 발명의 일 실시예에 따른 블록에 포함되는 데이터의 예시이다. 5 is an example of data included in a block according to an embodiment of the present invention.
도 5를 참조하면, 본 발명의 일 실시예에 따른 블록은 예를 들어, 블록 헤더(block header)와 블록 데이터(block data)를 포함할 수 있다.Referring to FIG. 5 , a block according to an embodiment of the present invention may include, for example, a block header and block data.
블록 헤더는 예를 들어, 블록 넘버(즉, 상술한 시퀀스 넘버), 이전 블록 헤더의 해시값 등을 포함할 수 있다. 또한, 블록 데이터에는 예를 들어, 다수 개의 트랜잭션이 포함될 수 있다. 이때, 각 트랜잭션은 헤더와 바디(데이터 부분)으로 구성되며, 트랜잭션의 바디에는 예를 들어, 인보이스(invoice)와 같은 문서가 포함될 수 있다. 만약, 하나의 블록에 다수의 트랜잭션이 포함되는 경우, 게이트웨이 장치(102)는 각 트랜잭션 별로 앞서 설명한 표준화 작업, 중복 제거 작업, 라우팅 정보의 추출 및 라우팅 작업 등을 수행할 수 있다.The block header may include, for example, a block number (ie, the above-described sequence number), a hash value of a previous block header, and the like. Also, block data may include, for example, a plurality of transactions. In this case, each transaction is composed of a header and a body (data part), and the body of the transaction may include, for example, a document such as an invoice. If a plurality of transactions are included in one block, the
이러한 블록(또는 트랜잭션)은 대응되는 블록체인 플랫폼(104)의 종류에 따라 서로 다른 데이터 구조를 가질 수 있다. 이에 따라, 제1 블록 처리 모듈(202-1)의 블록 수신부(302)는 수신된 블록에 포함된 트랜잭션을 기 정의된 구조에 따라 표준화할 수 있으며, 이와 같이 표준화된 데이터의 구조는 각 블록체인 플랫폼(104)과 관계 없이 동일할 수 있다. 즉, 블록 수신부(302)를 거친 트랜잭션 각각은 동일한 데이터 구조로 표준화될 수 있다.These blocks (or transactions) may have different data structures depending on the type of the
도 6은 본 발명의 일 실시예에 따른 라우팅 정보의 예시이다. 상술한 바와 같이, 제1 블록 처리 모듈(202-1)의 인바운드 핸들러(308)는 트랜잭션 처리부(306)를 거친 트랜잭션으로부터 라우팅 정보를 추출할 수 있다. 상기 라우팅 정보는 예를 들어, 트랜잭션에 대한 송신자 정보, 수신자 정보 및 상기 트랜잭션의 종류를 포함할 수 있다. 게이트웨이 장치(102)의 내부 데이터베이스에는 각 송신자 정보, 수신자 정보 및 트랜잭션의 종류에 따른 라우팅 경로(routing path)가 매핑되어 저장되어 있을 수 있다. 제1 블록 처리 모듈(202-1)의 인바운드 핸들러(308)는 상기 데이터베이스에서 검색하여 상기 라우팅 정보에 대응되는 라우팅 경로를 추출할 수 있다. 일 예시로서, 송신자 정보 : 블록체인 플랫폼 #1, 수신자 정보 : 블록체인 플랫폼 : #2, 트랜잭션의 종류 : invoice 를 포함하는 라우팅 정보가 추출되는 경우, 상기 라우팅 정보에 대응되는 라우팅 경로는 “블록체인 플랫폼 #1 → 블록체인 플랫폼 #2” 일 수 있다.6 is an example of routing information according to an embodiment of the present invention. As described above, the
도 7은 본 발명의 일 실시예에 따른 페이로드의 예시이다. 상술한 바와 같이, 라우팅 모듈(204)은 트랜잭션으로부터 송신 대상이 되는 데이터를 추출하고, 상기 데이터를 포함하는 페이로드를 생성할 수 있다. 상기 데이터는 예를 들어, 체인코드(chaincode)의 호출시 사용되는 인자(argument) 값(예를 들어, 함수명, 인자 등), 스마트 계약(smart contract)의 함수 호출시 사용되는 인자 값 등이 될 수 있다.7 is an illustration of a payload according to an embodiment of the present invention. As described above, the
상기 페이로드의 예시들은 아래와 같다. 여기서, [] 부분이 앞서 설명한 송신 대상이 되는 데이터가 될 수 있다.Examples of the payload are as follows. Here, the [] part may be the data to be transmitted as described above.
예시 1) "payload": ["invoke", "a", "b", "1"]Example 1) "payload": ["invoke", "a", "b", "1"]
예시 2) "payload": ["0x07d2448ffebd26c5acf4871ac371e4f294c3faa6", "10"]Example 2) "payload": ["0x07d2448ffebd26c5acf4871ac371e4f294c3faa6", "10"]
라우팅 모듈(204)은 트랜잭션에 포함되는 여러 데이터들 중 목적지로 실제 전달하고자 하는 데이터만을 추출(예를 들어, 트랜잭션의 메타 데이터 등을 제거)하여 페이로드(payload)로 구성할 수 있다. 상기 페이로드는 제2 블록체인 플랫폼(104-2)에서 처리 가능한 표준화된 데이터 구조로 이루어질 수 있다. 이와 같이, 상기 페이로드의 데이터 구조는 상기 라우팅 정보에 포함된 수신자 정보(즉, 블록체인 플랫폼의 종류)에 따라 달라질 수 있다. 즉, 라우팅 모듈(204)은 트랜잭션에 포함되는 여러 데이터들 중 목적지로 실제 전달하고자 하는 타깃 데이터만을 추출하여 페이로드로 구성할 수 있다.The
도 8은 예시적인 실시예들에서 사용되기에 적합한 컴퓨팅 장치를 포함하는 컴퓨팅 환경을 예시하여 설명하기 위한 블록도이다. 도시된 실시예에서, 각 컴포넌트들은 이하에 기술된 것 이외에 상이한 기능 및 능력을 가질 수 있고, 이하에 기술되지 것 이외에도 추가적인 컴포넌트를 포함할 수 있다.8 is a block diagram illustrating and describing a computing environment including a computing device suitable for use in example embodiments. In the illustrated embodiment, each component may have different functions and capabilities other than those described below, and may include additional components other than those described below.
도시된 컴퓨팅 환경(10)은 컴퓨팅 장치(12)를 포함한다. 일 실시예에서, 컴퓨팅 장치(12)는 게이트웨이 장치(102), 또는 게이트웨이 장치(102)에 포함되는 하나 이상의 컴포넌트일 수 있다.The illustrated
컴퓨팅 장치(12)는 적어도 하나의 프로세서(14), 컴퓨터 판독 가능 저장 매체(16) 및 통신 버스(18)를 포함한다. 프로세서(14)는 컴퓨팅 장치(12)로 하여금 앞서 언급된 예시적인 실시예에 따라 동작하도록 할 수 있다. 예컨대, 프로세서(14)는 컴퓨터 판독 가능 저장 매체(16)에 저장된 하나 이상의 프로그램들을 실행할 수 있다. 상기 하나 이상의 프로그램들은 하나 이상의 컴퓨터 실행 가능 명령어를 포함할 수 있으며, 상기 컴퓨터 실행 가능 명령어는 프로세서(14)에 의해 실행되는 경우 컴퓨팅 장치(12)로 하여금 예시적인 실시예에 따른 동작들을 수행하도록 구성될 수 있다.
컴퓨터 판독 가능 저장 매체(16)는 컴퓨터 실행 가능 명령어 내지 프로그램 코드, 프로그램 데이터 및/또는 다른 적합한 형태의 정보를 저장하도록 구성된다. 컴퓨터 판독 가능 저장 매체(16)에 저장된 프로그램(20)은 프로세서(14)에 의해 실행 가능한 명령어의 집합을 포함한다. 일 실시예에서, 컴퓨터 판독 가능 저장 매체(16)는 메모리(랜덤 액세스 메모리와 같은 휘발성 메모리, 비휘발성 메모리, 또는 이들의 적절한 조합), 하나 이상의 자기 디스크 저장 디바이스들, 광학 디스크 저장 디바이스들, 플래시 메모리 디바이스들, 그 밖에 컴퓨팅 장치(12)에 의해 액세스되고 원하는 정보를 저장할 수 있는 다른 형태의 저장 매체, 또는 이들의 적합한 조합일 수 있다.Computer-
통신 버스(18)는 프로세서(14), 컴퓨터 판독 가능 저장 매체(16)를 포함하여 컴퓨팅 장치(12)의 다른 다양한 컴포넌트들을 상호 연결한다.
컴퓨팅 장치(12)는 또한 하나 이상의 입출력 장치(24)를 위한 인터페이스를 제공하는 하나 이상의 입출력 인터페이스(22) 및 하나 이상의 네트워크 통신 인터페이스(26)를 포함할 수 있다. 입출력 인터페이스(22) 및 네트워크 통신 인터페이스(26)는 통신 버스(18)에 연결된다. 입출력 장치(24)는 입출력 인터페이스(22)를 통해 컴퓨팅 장치(12)의 다른 컴포넌트들에 연결될 수 있다. 예시적인 입출력 장치(24)는 포인팅 장치(마우스 또는 트랙패드 등), 키보드, 터치 입력 장치(터치패드 또는 터치스크린 등), 음성 또는 소리 입력 장치, 다양한 종류의 센서 장치 및/또는 촬영 장치와 같은 입력 장치, 및/또는 디스플레이 장치, 프린터, 스피커 및/또는 네트워크 카드와 같은 출력 장치를 포함할 수 있다. 예시적인 입출력 장치(24)는 컴퓨팅 장치(12)를 구성하는 일 컴포넌트로서 컴퓨팅 장치(12)의 내부에 포함될 수도 있고, 컴퓨팅 장치(12)와는 구별되는 별개의 장치로 컴퓨팅 장치(12)와 연결될 수도 있다.
이상에서 대표적인 실시예를 통하여 본 발명에 대하여 상세하게 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 전술한 실시예에 대하여 본 발명의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해할 것이다. 그러므로 본 발명의 권리범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다. Although the present invention has been described in detail through representative embodiments above, those of ordinary skill in the art to which the present invention pertains can make various modifications to the above-described embodiments without departing from the scope of the present invention. will understand Therefore, the scope of the present invention should not be limited to the described embodiments, and should be defined by the claims described below as well as the claims and equivalents.
10 : 컴퓨팅 환경
12 : 컴퓨팅 장치
14 : 프로세서
16 : 컴퓨터 판독 가능 저장 매체
18 : 통신 버스
20 : 프로그램
22 : 입출력 인터페이스
24 : 입출력 장치
26 : 네트워크 통신 인터페이스
100 : 통신 시스템
102 : 게이트웨이 장치
104 : 블록체인 플랫폼
104-1 : 제1 블록체인 플랫폼
104-2 : 제2 블록체인 플랫폼
202 : 블록 처리 모듈
202-1 : 제1 블록 처리 모듈
202-2 : 제2 블록 처리 모듈
204 : 라우팅 모듈
300 : 수신측 컴포넌트
302 : 블록 수신부
304 : 큐
306 : 트랜잭션 처리부
308 : 인바운드 핸들러
400 : 송신측 컴포넌트
402 : 큐
404 : 입력 수신부
406 : 아웃바운드 핸들러10: Computing Environment
12: computing device
14: processor
16: computer-readable storage medium
18: communication bus
20: Program
22: input/output interface
24: input/output device
26: network communication interface
100: communication system
102: gateway device
104: Blockchain Platform
104-1: First Blockchain Platform
104-2: 2nd Blockchain Platform
202: block processing module
202-1: first block processing module
202-2: second block processing module
204: routing module
300: receiving side component
302: block receiving unit
304: queue
306: transaction processing unit
308 : inbound handler
400: transmitting side component
402 : queue
404: input receiver
406 : outbound handler
Claims (12)
제1 블록체인 플랫폼에 포함된 복수의 노드 중 설정된 둘 이상의 노드로부터 블록을 각각 수신하고, 수신된 상기 블록에 포함된 트랜잭션 각각을 기 정의된 구조에 따라 표준화하여 큐(queue)에 저장하며, 상기 큐에 저장된 상기 트랜잭션을 중복 제거하고, 상기 트랜잭션으로부터 라우팅 정보를 추출하는 제1 블록 처리 모듈;
상기 제1 블록 처리 모듈로부터 표준화된 상기 트랜잭션 및 상기 라우팅 정보를 수신하고, 상기 라우팅 정보를 기초로 표준화된 상기 트랜잭션을 상기 제1 블록체인 플랫폼과 상이한 종류의 제2 블록체인 플랫폼에서 처리 가능한 표준화된 데이터 구조의 페이로드(payload)로 변환하는 라우팅 모듈; 및
상기 라우팅 모듈로부터 상기 페이로드를 수신하고, 상기 제2 블록체인 플랫폼에 포함된 노드로 상기 페이로드를 전송하는 제2 블록 처리 모듈을 포함하는, 게이트웨이 장치.
As a gateway device for data linkage between heterogeneous blockchain platforms each including a plurality of nodes in which blocks are stored,
Each block is received from two or more nodes set among a plurality of nodes included in the first blockchain platform, each transaction included in the received block is standardized according to a predefined structure and stored in a queue, and the a first block processing module for deduplicating the transaction stored in the queue and extracting routing information from the transaction;
Receive the standardized transaction and the routing information from the first block processing module, and process the standardized transaction based on the routing information in a second block chain platform different from the first block chain platform a routing module that converts the data structure into a payload; and
and a second block processing module for receiving the payload from the routing module and transmitting the payload to a node included in the second blockchain platform.
상기 제1 블록 처리 모듈은, 상기 블록 각각의 시퀀스 넘버(sequence number) 또는 상기 블록 각각에 포함된 트랜잭션 아이디를 기초로 상기 큐에 저장된 상기 트랜잭션을 중복 제거하는, 게이트웨이 장치.
The method according to claim 1,
The first block processing module is configured to deduplicate the transaction stored in the queue based on a sequence number of each block or a transaction ID included in each block.
상기 라우팅 정보는, 상기 트랜잭션에 대한 송신자 정보, 수신자 정보 및 상기 트랜잭션의 종류를 포함하는, 게이트웨이 장치.
The method according to claim 1,
The routing information includes sender information for the transaction, recipient information and a type of the transaction.
상기 라우팅 모듈은, 상기 라우팅 정보를 참조하여 상기 트랜잭션이 전송될 상기 제2 블록 처리 모듈을 결정하는, 게이트웨이 장치.
4. The method of claim 3,
The routing module determines the second block processing module to which the transaction is to be transmitted by referring to the routing information.
상기 라우팅 모듈은, 상기 트랜잭션으로부터 송신 대상이 되는 데이터를 추출하고, 상기 데이터를 포함하는 상기 페이로드를 생성하는, 게이트웨이 장치.
The method according to claim 1,
The routing module extracts data to be transmitted from the transaction and generates the payload including the data.
상기 제1 블록 처리 모듈에서 표준화된 데이터의 구조는, 각 블록체인 플랫폼과 관계 없이 동일하며,
상기 페이로드의 데이터 구조는, 상기 라우팅 정보에 포함된 수신자 정보에 따라 달라지는, 게이트웨이 장치.
6. The method of claim 5,
The structure of the data standardized in the first block processing module is the same regardless of each blockchain platform,
The data structure of the payload varies according to recipient information included in the routing information.
제1 블록 처리 모듈에서, 제1 블록체인 플랫폼에 포함된 복수의 노드 중 설정된 둘 이상의 노드로부터 블록을 각각 수신하는 단계;
상기 제1 블록 처리 모듈에서, 수신된 상기 블록에 포함된 트랜잭션 각각을 기 정의된 구조에 따라 표준화하여 큐(queue)에 저장하는 단계;
상기 제1 블록 처리 모듈에서, 상기 큐에 저장된 상기 트랜잭션을 중복 제거하는 단계;
상기 제1 블록 처리 모듈에서, 상기 트랜잭션으로부터 라우팅 정보를 추출하는 단계;
라우팅 모듈에서, 상기 제1 블록 처리 모듈로부터 표준화된 상기 트랜잭션 및 상기 라우팅 정보를 수신하는 단계;
상기 라우팅 모듈에서, 상기 라우팅 정보를 기초로 표준화된 상기 트랜잭션을 상기 제1 블록체인 플랫폼과 상이한 종류의 제2 블록체인 플랫폼에서 처리 가능한 표준화된 데이터 구조의 페이로드(payload)로 변환하는 단계;
제2 블록 처리 모듈에서, 상기 라우팅 모듈로부터 상기 페이로드를 수신하는 단계; 및
상기 제2 블록 처리 모듈에서, 상기 제2 블록체인 플랫폼에 포함된 노드로 상기 페이로드를 전송하는 단계를 포함하는, 데이터 연계 방법.
As a data linkage method performed in a gateway device for data linkage between heterogeneous blockchain platforms each including a plurality of nodes in which blocks are stored,
receiving, in the first block processing module, blocks from two or more nodes set among a plurality of nodes included in the first block chain platform, respectively;
standardizing, in the first block processing module, each transaction included in the received block according to a predefined structure and storing it in a queue;
deduplicating, in the first block processing module, the transaction stored in the queue;
extracting, in the first block processing module, routing information from the transaction;
receiving, in a routing module, the standardized transaction and the routing information from the first block processing module;
converting, in the routing module, the standardized transaction based on the routing information into a payload of a standardized data structure that can be processed in a second block chain platform different from the first block chain platform;
receiving, in a second block processing module, the payload from the routing module; and
and transmitting, in the second block processing module, the payload to a node included in the second blockchain platform.
상기 트랜잭션을 중복 제거하는 단계는, 상기 블록 각각의 시퀀스 넘버(sequence number) 또는 상기 블록 각각에 포함된 트랜잭션 아이디를 기초로 상기 큐에 저장된 상기 트랜잭션을 중복 제거하는, 데이터 연계 방법.
8. The method of claim 7,
The deduplication of the transaction includes deduplicating the transaction stored in the queue based on a sequence number of each block or a transaction ID included in each block.
상기 라우팅 정보는, 상기 트랜잭션에 대한 송신자 정보, 수신자 정보 및 상기 트랜잭션의 종류를 포함하는, 데이터 연계 방법.
8. The method of claim 7,
The routing information includes sender information for the transaction, receiver information, and a type of the transaction.
상기 라우팅 모듈에서, 상기 라우팅 정보를 참조하여 상기 트랜잭션이 전송될 상기 제2 블록 처리 모듈을 결정하는 단계를 더 포함하는, 데이터 연계 방법.
10. The method of claim 9,
The method further comprising the step of determining, in the routing module, the second block processing module to which the transaction is to be transmitted by referring to the routing information.
상기 트랜잭션을 상기 페이로드로 변환하는 단계는, 상기 트랜잭션으로부터 송신 대상이 되는 데이터를 추출하고, 상기 데이터를 포함하는 상기 페이로드를 생성하는, 데이터 연계 방법.
8. The method of claim 7,
The converting of the transaction into the payload includes extracting data to be transmitted from the transaction and generating the payload including the data.
상기 제1 블록 처리 모듈에서 표준화된 데이터의 구조는, 각 블록체인 플랫폼과 관계 없이 동일하며,
상기 페이로드의 데이터 구조는, 상기 라우팅 정보에 포함된 수신자 정보에 따라 달라지는, 데이터 연계 방법.12. The method of claim 11,
The structure of the data standardized in the first block processing module is the same regardless of each blockchain platform,
The data structure of the payload varies according to recipient information included in the routing information.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180061972A KR102439059B1 (en) | 2018-05-30 | 2018-05-30 | Method for interconnecting heterogeneous blockchain platform and gateway apparatus for executing the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180061972A KR102439059B1 (en) | 2018-05-30 | 2018-05-30 | Method for interconnecting heterogeneous blockchain platform and gateway apparatus for executing the same |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190136364A KR20190136364A (en) | 2019-12-10 |
KR102439059B1 true KR102439059B1 (en) | 2022-09-01 |
Family
ID=69002643
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180061972A KR102439059B1 (en) | 2018-05-30 | 2018-05-30 | Method for interconnecting heterogeneous blockchain platform and gateway apparatus for executing the same |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102439059B1 (en) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102179160B1 (en) * | 2020-06-23 | 2020-11-16 | 주식회사 아이콘루프 | System and method to prove message for communication between blockchains |
KR20220072659A (en) | 2020-11-25 | 2022-06-02 | 주식회사 푸시풀시스템 | SECURITY CONSTRUCTION METHOD OF GATEWAY FOR IoT DEVICES BY USING IDENTITY-BASED CRYPTOGRAPHY BASED ON VIRTUAL BLOCKCHAIN |
KR20230112819A (en) | 2022-01-21 | 2023-07-28 | 주식회사 푸시풀 | SECURITY CONSTRUCTION SYSTEM OF GATEWAY FOR IoT DEVICES BY USING IDENTITY-BASED CRYPTOGRAPHY BASED ON VIRTUAL BLOCKCHAIN AND ITS METHOD |
CN114928649B (en) * | 2022-04-26 | 2023-11-28 | 成都质数斯达克科技有限公司 | Multi-platform service realization method, device and equipment based on block chain |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102050129B1 (en) * | 2016-05-03 | 2019-11-28 | 안규태 | Block chain supporting multiple one-way functions used for verification of blocks |
KR101950912B1 (en) * | 2016-08-01 | 2019-02-21 | 서강대학교산학협력단 | Verification system and method for transaction based block chain |
KR101851261B1 (en) | 2017-06-09 | 2018-04-23 | 씨토 주식회사 | Centralized remote metering system for security based on private block-chained data |
-
2018
- 2018-05-30 KR KR1020180061972A patent/KR102439059B1/en active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
KR20190136364A (en) | 2019-12-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102439059B1 (en) | Method for interconnecting heterogeneous blockchain platform and gateway apparatus for executing the same | |
US20190229982A1 (en) | Fault detection method and node device | |
US9135138B2 (en) | Method and system for tracing individual transactions over messaging systems without adding tracing information to messages | |
KR101317178B1 (en) | ZigBee Gateway and method for identifying message of the same | |
US20180218368A1 (en) | Data transformation engine | |
CN110730181A (en) | Message conversion method, device and adapter | |
KR102407334B1 (en) | Gateway apparatus and operating method thereof | |
US10425273B2 (en) | Data processing system and data processing method | |
CN111491037B (en) | Communication method with object storage server through SFTP data stream | |
CN111277422B (en) | Method, device and system for processing microservice and computer readable storage medium | |
CN111240862A (en) | Universal interface platform and data conversion method | |
CN103581040A (en) | Server distributing device and server distributing method | |
KR20230065226A (en) | Web application server, method for handling user request and method for handling intergrated request | |
US20160314115A1 (en) | Cross-platform messaging application | |
CN105808763A (en) | Data processing method and apparatus | |
CN106453582B (en) | Asynchronous message pushing method and system | |
JP6364727B2 (en) | Information processing system, distributed processing method, and program | |
CN114760360B (en) | Request response method, request response device, electronic equipment and computer readable storage medium | |
CN104022948A (en) | Type X message transmission system and method | |
CN104427003B (en) | Transmission device, transfer approach and relay system | |
KR20190096595A (en) | Computer program | |
US9325808B2 (en) | Message handling in a data processing system | |
KR20200032380A (en) | Apparatus and method for connecting chatbot | |
KR20200047028A (en) | System and method for peer-to-peer communication in partial mesh network | |
US9436519B2 (en) | Process cooperation method, process cooperation program, and process cooperation system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |