KR102506286B1 - 멀티채널 블록체인 트랜잭션 배치 처리 장치 - Google Patents
멀티채널 블록체인 트랜잭션 배치 처리 장치 Download PDFInfo
- Publication number
- KR102506286B1 KR102506286B1 KR1020200159698A KR20200159698A KR102506286B1 KR 102506286 B1 KR102506286 B1 KR 102506286B1 KR 1020200159698 A KR1020200159698 A KR 1020200159698A KR 20200159698 A KR20200159698 A KR 20200159698A KR 102506286 B1 KR102506286 B1 KR 102506286B1
- Authority
- KR
- South Korea
- Prior art keywords
- transaction
- batch
- node
- blockchain
- performance
- Prior art date
Links
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/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
-
- 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
- H04L67/1087—Peer-to-peer [P2P] networks using cross-functional networking aspects
-
- 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/14—Multichannel or multilink protocols
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mathematical Physics (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Environmental & Geological Engineering (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
본 발명의 일 양상에 따르면, 멀티채널 기반으로 운영되는 블록체인 시스템에서 트랜잭션을 배치 처리하는 트랜잭션 배치 처리 장치는 클라이언트 장치로부터 수신된 단일 트랜잭션 요청을 배치 알고리즘에 따라 트랜잭션을 분류하여 채널 별 트랜잭션 배치 번들을 생성하여 블록체인 노드의 성능에 기초하여 트랜잭션 배치 번들을 블록체인 노드에 전달한다. 이때, 다양한 트랜잭션 배치 알고리즘이 플러거블(Pluggable) 한 모듈로 구현되어 트랜잭션 배치 장치에 추가될 수 있다.
Description
본 발명은 블록체인 기술에 관한 것으로, 보다 상세하게는 블록체인 트랜잭션 처리 속도를 높이기 위해 트랜잭션 처리를 수행하는 장치에 관한 것이다
블록체인은 P2P(Peer to Peer) 네트워크에 참여하는 모든 노드들이 거래내역 등의 데이터를 분산 처리하는 탈중앙화 기술이다. 블록체인은 데이터를 블록이라고 하는 단위로 저장하며, 이 블록이 체인 형태의 자료 구조로 저장 및 관리된다. 블록체인은 트랜잭션의 무결성과 보안성을 보장하기 위해 모든 노드들이 작업증명 또는 지분증명 등의 합의 과정이 필요하다.
블록체인의 합의 과정은 블록체인 시스템의 트랜잭션 처리 성능을 크게 저하시키는 요인이다. 블록체인의 트랜잭션 처리 속도를 높이기 위한 다양한 기술이 개발되고 있다. 특히, 블록체인의 트랜잭션을 배치로 처리하는 모듈이 개발되고 사용되고 있다. 다만, 이러한 배치 처리 모듈들은 각각의 블록체인 시스템에 특화되어 개발되므로 하나의 장치가 다양한 배치 알고리즘을 적용하는 것이 거의 불가능하다.
또한, 블록체인의 트랜잭션 처리 속도를 저하시키는 원인으로 단일 블록 변수 충돌 문제가 있다. 이는 단일 블록에서 하나의 변수를 두 번 이상 참조하거나 변경하는 트랜잭션을 두 개 이상 처리할 수 없다는 충돌 문제이다. 이러한 트랜잭션의 배치 처리와 서로 무관한 트랜잭션의 배치 처리는 배치 알고리즘을 다르게 가져가야 하나 일반적으로 배치 처리 장치는 하나의 배치 모듈을 포함하고 있어 시험환경에서 높은 트랜잭션 처리 성능을 보이더라도 실제 환경에서는 낮은 트랜잭션 처리 성능을 보이는 문제가 발생할 수 있다.
본 발명은 다양한 트랜잭션 배치 모듈을 포함하여 서비스의 특성에 따라 트랜잭션 배치 모듈이 선택되도록 하여 트랜잭션 처리 성능을 향상시키는 트랜잭션 배치 처리 장치를 제공하는 것을 목적으로 한다.
또한, 본 발명은 트랜잭션의 배치 번들을 처리하는 노드의 처리 부하에 의한 트랜잭션 처리 속도 저하를 방지하는 트랜잭션 배치 처리 장치를 제공하는 것을 또 다른 목적으로 한다.
본 발명의 일 양상에 따르면, 멀티채널 기반으로 운영되는 블록체인 시스템에서 트랜잭션을 배치 처리하는 트랜잭션 배치 처리 장치는 트랜잭션 수집부와, 배치 제어부와, 전송 제어부를 포함한다.
트랜잭션 수집부는 클라이언트 장치로부터 트랜잭션 요청을 수신하여 배치 제어부에 전달한다.
배치 제어부는 배치 알고리즘에 따라 트랜잭션을 분류하여 채널 별 트랜잭션 배치 번들을 생성한다.
전송 제어부는 트랜잭션 배치 번들을 처리할 블록체인 노드로 전송한다.
본 발명의 또 다른 양상에 따르면, 트랜잭션 배치 처리 장치의 배치 제어부는 트랜잭션 배치 생성부를 적어도 하나 이상 포함할 수 있다.
트랜잭션 배치 생성부는 구현된 배치 알고리즘에 따라 트랜잭션 배치 번들을 생성한다. 트랜잭션 배치 생성부는 추가 가능한 플러거블(Pluggable) 모듈이다. 트랜잭션 배치 생성부가 추가되면 배치 제어부는 추가되는 트랜잭션 배치 생성부를 초기화하고 인터페이스를 연결할 수 있다.
클라이언트 장치로부터 수신되는 트랜잭션 요청은 배치 알고리즘을 지정하는 메타데이터를 포함할 수 있고, 이 경우 배치 제어부는 트랜잭션 요청에 포함된 메타데이터를 분석하여 트랜잭션 요청을 전달할 트랜잭션 배치 생성부를 결정한다.
본 발명의 또 다른 양상에 따르면, 트랜잭션 배치 처리 장치의 전송 제어부는 노드 성능 관리부와, 트랜잭션 전송부를 포함할 수 있다.
노드 성능 관리부는 설정된 주기로 트랜잭션 배치 번들을 처리하는 블록체인 노드로부터 성능 데이터를 수집하여 노드 별 성능을 관리한다. 또한 노드 성능 관리부는 노드의 성능에 기초하여 트랜잭션 배치 번들을 전송할 블록체인 노드를 선택한다.
트랜잭션 전송부는 노드 성능 관리부에 트랜잭션 배치 번들을 전송한 블록체인 노드를 요청하여 획득한 블록체인 노드로 트랜잭션 배치 번들을 전송한다.
이때, 노드 성능 관리부가 수집하는 성능 데이터는 노드의 네트워크 사용량을 포함하고, 노드 성능 관리부는 네트워크 사용량으로부터 노드 별 성능을 산출할 수 있다. 또한, 노드 성능 관리부가 수집하는 성능 데이터는 블록체인 노드의 프로세스 정보를 더 포함할 수 있고, 노드 성능 관리부는 프로세스 정보로부터 프로세스 능력에 따른 가중치를 산출하여 네트워크 사용량과 가중치에 기초하여 트랜잭션 배치 번들을 전송할 블록체인 노드를 선택할 수 있다.
본 발명의 또 다른 양상에 따르면, 트랜잭션 배치 처리 장치의 배치 제어부는 트랜잭션 응답 처리부를 더 포함할 수 있다.
트랜잭션 응답 처리부는 트랜잭션 배치 번들에 대응되는 번들로 수신된 트랜잭션 배지 응답을 개별 트랜잭션에 대한 응답으로 변환한다.
다양한 트랜잭션 배치 모듈을 포함할 수 있는 본 발명에 의하면 서비스의 특성에 따라 트랜잭션 배치 모듈을 선택할 수 있어 트랜잭션 처리 성능을 향상시킬 수 있다.
또한, 본 발명에 의하면 트랜잭션의 배치 번들을 처리하는 노드의 처리 성능에 따라 트랜잭션을 전달하여 처리하므로 노드의 부하에 의한 트랜잭션 처리 속도 저하를 방지할 수 있다.
도 1은 본 발명의 트랜잭션 배치 처리 장치를 포함하는 블록체인 시스템의 개념적 블록도이다.
도 2는 본 발명의 일 실시 예에 따른 트랜잭션 배치 처리 장치의 블록도이다.
도 3은 본 발명의 트랜잭션 배치 처리 장치의 트랜잭션 배치 처리 방법 실시 예에 대한 절차도이다.
도 4는 본 발명의 트랜잭션 배치 처리 장치가 블록체인 노드의 성능에 따라 트랜잭션 배치를 처리할 노드를 선택하는 절차를 도시하고 있다.
도 2는 본 발명의 일 실시 예에 따른 트랜잭션 배치 처리 장치의 블록도이다.
도 3은 본 발명의 트랜잭션 배치 처리 장치의 트랜잭션 배치 처리 방법 실시 예에 대한 절차도이다.
도 4는 본 발명의 트랜잭션 배치 처리 장치가 블록체인 노드의 성능에 따라 트랜잭션 배치를 처리할 노드를 선택하는 절차를 도시하고 있다.
전술한, 그리고 추가적인 양상들은 첨부된 도면을 참조하여 설명하는 실시 예들을 통해 구체화된다. 각 실시 예들의 구성 요소들은 다른 언급이나 상호 간에 모순이 없는 한 실시 예 내에서 다양한 조합이 가능한 것으로 이해된다. 블록도의 각 블록은 어느 경우에 있어서 물리적인 부품을 표현할 수 있으나 또 다른 경우에 있어서 하나의 물리적인 부품의 기능의 일부 혹은 복수의 물리적인 부품에 걸친 기능의 논리적인 표현일 수 있다. 때로는 블록 혹은 그 일부의 실체는 프로그램 명령어들의 집합(set)일 수 있다. 이러한 블록들은 전부 혹은 일부가 하드웨어, 소프트웨어 혹은 이들의 결합에 의해 구현될 수 있다.
도 1은 본 발명의 트랜잭션 배치 처리 장치를 포함하는 블록체인 시스템의 개념적 블록도이고, 도 2는 본 발명의 일 실시 예에 따른 트랜잭션 배치 처리 장치의 블록도이다. 도 1 및 도 2를 참조하여 트랜잭션 배치 처리 장치(10)를 설명한다.
본 발명의 일 양상에 따르면, 멀티채널 기반으로 운영되는 블록체인 시스템에서 트랜잭션을 배치 처리하는 트랜잭션 배치 처리 장치(10)는 트랜잭션 수집부(100)와, 배치 제어부(120)와, 전송 제어부(140)를 포함한다.
블록체인 시스템은 개방형으로 다양한 컴퓨터 장비를 이용하여 누구나 참여가 가능한 퍼블릭 블록체인과, 폐쇄형으로 허가 받은 제한된 노드만 참여할 수 있는 프라이빗 블록체인과, 혼합형 블록체인 하이브리드 블록체인으로 구분된다. 채널은 주로 기업용으로 사용되는 프라이빗 블록체인에서 도입된 개념으로 전체 블록체인 시스템을 다수의 채널로 구분하여 멀티 블록체인 방식으로 운영이 가능하도록 한다. 즉, 하나의 시스템에서 다수의 블록체인을 운영할 수 있다. 따라서, 멀티채널 기반으로 운영되는 블록체인 시스템은 채널 별로 독립적인 블록체인을 유지하고, 참여자는 특정 채널에 가입함으로써 블록체인을 선택할 수 있다. 멀티채널 기반으로 운영되는 블록체인 시스템의 하나의 예로 하이퍼레져 패브릭이 있다. 다만, 본 발명의 트랜잭션 배치 처리 장치(10)는 멀티채널을 지원하는 프라이빗 블록체인에만 적용되는 것이 아니라, 멀티채널을 지원하는 퍼블릭 블록체인에도 적용이 가능하다.
도 1에 도시된 블록체인 네트워크는 멀티채널을 개념적으로 도시한 것으로 각 4개의 노드가 참여하는 3개의 채널의 예를 도시하고 있다.
클라이언트는 어플리케이션이 실행되는 장치로 해당 어플리케이션은 API를 호출하여 트랜잭션 요청을 발생시킨다.
트랜잭션 배치 처리 장치(10)는 컴퓨터 프로그램 명령어를 실행하는 프로세서와, 컴퓨터 프로그램 명령어 세트를 저장하는 메모리, 네트워크를 통하여 다른 장치와 통신하는 네트워크 장치를 포함하는 서버 등의 컴퓨터 장치이다.
트랜잭션 수집부(100)는 적어도 기능의 일부가 컴퓨터 프로그램 명령어로 구성되며, 클라이언트 장치(20)가 블록체인의 원장에 정보를 기록하기 위해 발생시킨 트랜잭션 요청을 클라이언트 장치(20)와 통신을 통해 수신한다. 트랜잭션 수집부(100)가 수집하는 트랜잭션은 단일 트랜잭션이며 단일 트랜잭션 형태로 트랜잭션 배치 처리를 위하여 배치 제어부(120)에 전달한다.
배치 제어부(120)는 적어도 기능의 일부가 컴퓨터 프로그램 명령어로 구성되며, 배치 알고리즘에 따라 트랜잭션을 분류하여 채널 별로 트랜잭션 배치 번들을 생성한다. 배치 알고리즘은 트랜잭션의 특성에 따라 트랜잭션 처리 성능을 향상시키기 위한 방법이 구현된 것으로 그 방법은 제한이 없다. 예를 들어, 배치 알고리즘은 채널 별로 지정된 시간 동안 설정된 개수로 트랜잭션을 모아 트랜잭션 배치 번들을 생성할 수 있다. 다른 예로, 배치 알고리즘은 채널 별로 지정된 시간 동안 연관성 있는 데이터(예, 동일한 함수를 사용하는 트랜잭션)를 포함하는 트랜잭션을 모아 트랜잭션 배치 번들을 생성할 수 있다. 또 다른 예로, 배치 알고리즘은 채널 별로 지정된 시간 동안 트랜잭션 데이터에 포함된 키 값(배치로 묶는 기준이 되는 값)에 기초하여 연관성 있는 트랜잭션을 모아 트랜잭션 배치 번들을 생성할 수 있다.
이 양상의 배치 제어부(120)는 설정된 하나의 배치 알고리즘으로 트랜잭션 배치 처리를 수행한다.
전송 제어부(140)는 적어도 기능의 일부가 컴퓨터 프로그램 명령어로 구성되며, 배치 제어부(120)로부터 전달받은 트랜잭션 배치 번들을 처리할 블록체인 노드로 전송한다. 트랜잭션 배치 번들을 수신하는 블록체인 노드에 등록된 스마트 컨트랙트 또는 체인코드에서 트랜잭션 배치 번들을 하나씩 풀어 처리한다. 스마트 컨트랙트는 원장(ledger)에 저장된 상태(state)를 업데이트하는 코드이며, 체인코드는 프라이빗 블록체인 시스템인 하이퍼레져 패브릭에서 사용하는 코드이다.
본 발명의 또 다른 양상에 따르면, 트랜잭션 배치 처리 장치(10)의 배치 제어부(120)는 트랜잭션 배치 생성부(121)를 적어도 하나 이상 포함할 수 있다.
트랜잭션 배치 생성부(121)는 적어도 기능의 일부가 컴퓨터 프로그램 명령어로 구성되는 트랜잭션 배치 모듈로 배치 알고리즘이 구현되어 있다. 트랜잭션 배치 처리 장치(10)는 복수의 배치 알고리즘을 사용하여 효율적으로 트랜잭션 배치를 처리할 수 있다. 배치 알고리즘마다 트랜잭션 배치 생성부(121)가 플러그인되어 실행될 수 있으므로 트랜잭션 배치 생성부(121)는 트랜잭션 배치 처리 장치(10)에 하나 이상 로딩되어 실행될 수 있다. 트랜잭션 배치 생성부(121)는 구현된 배치 알고리즘에 따라 채널 별로 트랜잭션 배치 번들을 생성한다. 트랜잭션 배치 생성부(121)는 추가 가능한 플러거블(Pluggable) 모듈로 구현되는 것이 바람직하며, 트랜잭션 배치 처지 장치에 트랜잭션 배치 생성부(121)가 추가되면 배치 제어부(120)는 추가되는 트랜잭션 배치 생성부(121)를 초기화하고 인터페이스를 연결할 수 있다. 트랜잭션 배치 생성부(121)는 배치 제어부(120)가 초기화하고 인터페이스를 연결하도록 규격화된 초기화 API, 인터페이스 연결 API를 제공할 수 있어야 하고, 배치 제어부(120)는 해당 API를 호출하여 초기화 및 인터페이스 연결을 수행한다.
이때 트랜잭션 배치 처리 장치(10)에 대응하여 트랜잭션 배치 번들의 트랜잭션을 처리하는 블록체인 노드에 동일한 배치 알고리즘에 적합한 스마트 컨트랙트 또는 체인코드가 등록되어야 한다.
또한, 배치 제어부(120)는 트랜잭션 배치 처리 장치(10)에 복수의 트랜잭션 배치 모듈 즉, 트랜잭션 배치 생성부(121)가 로딩되어 실행되고 있는 경우, 트랜잭션 수집부(100)가 수신하여 전달한 클라이언트 장치(20)의 단일 트랜잭션 요청을 전달할 트랜잭션 배치 생성부(121)를 선택할 수 있다. 배치 제어부(120)가 트랜잭션 요청을 전달한 트랜잭션 배치 생성부(121)를 선택할 수 있도록 클라이언트 장치(20)로부터 수신되는 트랜잭션 요청은 배치 알고리즘을 지정하는 메타데이터를 포함할 수 있고, 배치 제어부(120)는 트랜잭션 요청에 포함된 메타데이터를 분석하여 트랜잭션 요청을 전달할 트랜잭션 배치 생성부(121)를 결정한다.
예를 들어, 트랜잭션 배치 처리 장치(10)에 3개의 트랜잭션 배치 생성부(121)가 로딩되어 실행되고 있고, 제1 트랜잭션 배치 생성부(121)의 배치 알고리즘은 채널 별로 지정된 시간 동안 설정된 개수로 트랜잭션을 모아 트랜잭션 배치 번들을 생성하고, 제2 트랜잭션 배치 생성부(121)의 배치 알고리즘은 채널 별로 지정된 시간 동안 특정 함수를 사용하는 트랜잭션을 모아 트랜잭션 배치 번들을 생성하고, 제3 트랜잭션 배치 생성부(121)의 배치 알고리즘은 채널 별로 지정된 시간 동안 트랜잭션 데이터에 포함된 키 값(배치로 묶는 기준이 되는 값)에 기초하여 연관성 있는 트랜잭션을 모아 트랜잭션 배치 번들을 생성하고, 배치 제어부(120)가 트랜잭션 배치 생성부(121)를 선택하는 규칙이 트랜잭션 요청 데이터에 포함된 제1 변수의 값이 True인 경우 제1 트랜잭션 배치 생성부(121)를 선택하고, 제1 변수의 값이 False이고 트랜잭션 요청 데이터가 지정된 함수명을 포함하고 있으면 제2 트랜잭션 배치 생성부(121)를 선택하고, 제1 변수의 값이 False이고 트랜잭션 요청 데이터가 지정된 키 변수를 포함하고 있으면 제3 트랜잭션 배치 생성부(121)를 선택하도록 지정되어 있으면 배치 제어부(120)는 트랜잭션 요청에 포함된 메타데이터를 분석하여 트랜잭션 배치 생성부(121)를 결정할 수 있다. 이는 하나의 예시로 트랜잭션 배치 처리 장치(10)에 플러그인되어 실행되는 트랜잭션 배치 모듈의 알고리즘에 따라 배치 제어부(120)가 트랜잭션 배치 생성부(121)를 선택하는 규칙을 생성할 수 있다. 생성되는 규칙은 트랜잭션 요청의 메타데이터에 포함된 변수 들을 이용하여 트랜잭션 배치 생성부(121)를 선택할 수 있도록 하는 것이 바람직하다.
본 발명의 또 다른 양상에 따르면, 트랜잭션 배치 처리 장치(10)의 전송 제어부(140)는 노드 성능 관리부(141)와, 트랜잭션 전송부(143)를 포함할 수 있다.
노드 성능 관리부(141)는 적어도 기능의 일부가 컴퓨터 프로그램 명령어로 구성되며, 설정된 주기로 트랜잭션 배치 번들을 처리하는 블록체인 노드로부터 성능 데이터를 수집하여 노드 별 성능을 산출하고 관리한다. 노드 성능 관리부(141)는 멀티채널 블록체인 시스템에서 각 채널 별로 성능을 관리한다. 일 예로 노드 성능 관리부(141)가 성능 데이터를 수집하는 주기는 1초로 설정될 수 있고, 이 경우 노드 성능 관리부(141)는 각 채널 별로 채널에 속한 블록체인 노드들의 성능을 산출하여 관리한다.
노드 성능 관리부(141)가 수집하는 성능 데이터는 노드의 네트워크 사용량을 포함할 수 있다. 노드 성능 관리부(141)는 네트워크 사용량으로부터 노드 별 성능을 산출할 수 있다. 트랜잭션 배치 처리 장치(10)는 블록체인 시스템의 채널에 대하여 노드간 네트워크 트래픽을 고르게 분산시키기 위하여 네트워크 사용량에 기초하여 성능을 산출하며, 이를 Least Connection Scheduling이라고 한다. 트랜잭션을 많이 처리하는 노드가 네트워크의 사용량이 많을 수밖에 없으므로 노드 성능 관리부(141)는 각 노드의 네트워크 사용량을 주기적으로 수집하고 이를 성능으로 산출한다.
또한, 노드 성능 관리부(141)가 수집하는 성능 데이터는 블록체인 노드의 프로세스 정보를 더 포함할 수 있다. 프로세스 정보는 각 노드의 프로세스 사양 정보와, 현재의 프로세스 사용량 정보를 포함할 수 있다. 노드 성능 관리부(141)는 프로세스 정보로부터 프로세스 처리능력에 따른 가중치를 산출하여 네트워크 사용량과 가중치에 기초하여 트랜잭션 배치 번들을 전송할 블록체인 노드를 선택할 수 있다.
예를 들어, 프로세스 사양으로부터 노드의 처리능력은 다음과 같이 계산될 수 있다. 초당 부동소수점 연산 회수를 나타내는 플롭스(FLOPS, FLoating point Operations Per Second)를 이용하여 처리능력을 이론적으로 계산할 수 있다. 이론적 성능치(Rpeak)는 CPU clock 속도와, 초당 부동소수점 연산 회수와, 프로세스 코어의 수를 곱하여 구할 수 있다. 예를 들어, 슈퍼컴퓨터의 평균 CPU clock 속도가 2.96 GHz이고, 코어의 수가 111,104개이고, 각 코어가 초당 4개의 부동소수점 연산을 할 수 있으면, Rpeak는 1,315,328 Gflops(2.96 GHz * 4 flops/cycle * 111,104 core)으로 계산된다.
계산된 성능치와 수집된 현재의 프로세스 사용량 정보에 기초하여 프로세스의 처리능력에 따른 가중치를 산출한다. 가중치를 산출하는 방법은 제한이 없다.
노드 성능 관리부(141)는 각 채널 별 노드의 성능에 기초하여 트랜잭션 배치 번들을 전송할 블록체인 노드를 선택한다.
트랜잭션 전송부(143)는 적어도 기능의 일부가 컴퓨터 프로그램 명령어로 구성되며, 트랜잭션 전송부(143)는 트랜잭션 배치 번들을 전송하기 전에 노드 성능 관리부(141)로 트랜잭션 배치 번들을 처리할 노드를 요청한다. 트랜잭션 전송부(143)는 노드 성능 관리부(141)에 의해 선택된 블록체인 노드로 트랜잭션 배치 번들을 전송한다.
본 발명의 또 다른 양상에 따르면, 트랜잭션 배치 처리 장치(10)의 배치 제어부(120)는 트랜잭션 응답 처리부(123)를 더 포함할 수 있다.
블록체인 노드는 트랜잭션 요청을 배치 번들로 수신하고 배치 번들에 포함된 트랜잭션을 하나씩 처리한다. 블록체인 노드에 등록된 스마트 컨트랙트 또는 체인코드의 구현에 따라 트랜잭션의 응답 또한 하나씩 생성될 수 있고, 트랜잭션 응답 번들의 형태로 배치 번들에 대응되게 생성될 수 있다. 트랜잭션 응답이 번들 형태로 묶여져 생성되어 전달되는 경우 이를 클라이언트 장치(20)에 트랜잭션 응답으로 전달하기 위해서는 번들 형태의 트랜잭션 응답을 개별 트랜잭션 응답으로 변환하여야 한다. 이 기능을 트랜잭션 응답 처리부(123)가 수행할 수 있다.
트랜잭션 응답 처리부(123)는 적어도 기능의 일부가 컴퓨터 프로그램 명령어로 구성되며, 트랜잭션 배치 번들에 대응되는 번들로 수신된 트랜잭션 배지 응답을 개별 트랜잭션에 대한 응답으로 변환한다.
도 3은 본 발명의 트랜잭션 배치 처리 장치의 트랜잭션 배치 처리 방법 실시 예에 대한 절차도이다. 도 3을 참조하여 설명하면, 트랜잭션 수집부(100)가 클라이언트 장치(20)로부터 트랜잭션 요청을 수집(S1000)하고 해당 트랜잭션 요청을 배치 제어부(120)로 전달한다. 배치 제어부(120)는 트랜잭션 요청에 포함된 메타데이터를 분석하여 배치 알고리즘 선택(S1020)하고 해당 배치 알고리즘이 구현된 트랜잭션 배치 모듈인 트랜잭션 배치 생성부(121)를 선택하여 트랜잭션 요청을 전달한다. 배치 트랜잭션 생성부는 배치 알고리즘에 따라 채널 별 트랜잭션 배치 번들을 생성(S1040)하고, 배치 사이즈에 도달하거나 정해진 시간이 경과하면 생성된 트랜잭션 배치 번들을 다시 배치 제어부(120)로 전달한다. 배치 제어부(120)는 트랜잭션 배치 번들을 전송 제어부(140)로 전달하고, 전송 제어부(140)는 이를 트랜잭션 전송부(143)에 전달한다. 트랜잭션 전송부(143)는 노드 성능 관리부(141)에 트랜잭션 배치 번들을 전송할 노드 정보를 요청하고, 노드 성능 관리부(141)는 노드 성능에 기초하여 트랜잭션 배치 번들을 전송한 블록체인 노드를 선택(S1060)하여 트랜잭션 전송부(143)에 전달한다. 트랜잭션 전송부(143)는 트랜잭션 배치 번들을 선택된 블록체인 노드에 전송(S1080)한다.
도 4는 본 발명의 트랜잭션 배치 처리 장치가 블록체인 노드의 성능에 따라 트랜잭션 배치를 처리할 노드를 선택하는 절차를 도시하고 있다. 도 4를 참조하여 설명하면, 트랜잭션 전송부(143)가 트랜잭션 배치 번들을 전송할 블록체인 노드 정보를 노드 성능 관리부(141)에 요청(S2000)한다. 노드 성능 관리부(141)는 블록체인 노드에 성능 데이터를 요청하여 블록체인 노드로부터 성능 데이터를 수집(S2020)한다. 노드 성능 관리부(141)는 블록체인 노드에 성능 데이터를 주기적으로 요청하여 수집할 수 있다. 노드 성능 관리부(141)는 성능 데이터에 포함된 각 노드 별 네트워크 사용량을 기준으로 노드 별 성능을 산출(S2030)하고, 성능 데이터에 포함된 프로세스 정보에 기초하여 노드별 가중치를 계산(S2040)한다. 노드 성능 관리부(141)는 네트워크 사용량을 기준으로 하는 노드별 성능에 노드별 가중치를 반영(S2060)하여 성능을 산출하고, 노드별 가중치가 반영된 노드별 성능에 기초하여 트랜잭션 배치 번들을 전송할 블록체인 노드를 선택(S2080)하고 트랜잭션 전송부(143)에 선택된 블록체인 노드 정보를 전달(S2100)한다.
이상에서 본 발명을 첨부된 도면을 참조하는 실시 예들을 통해 설명하였지만 이에 한정되는 것은 아니며, 이들로부터 당업자라면 자명하게 도출할 수 있는 다양한 변형 예들을 포괄하도록 해석되어야 한다. 특허청구범위는 이러한 변형 예들을 포괄하도록 의도되었다.
10 : 트랜잭션 배치 처리 장치
100 : 트랜잭션 수집부
120 : 배치 제어부
121 : 트랜잭션 배치 생성부
123 : 트랜잭션 응답 처리부
140 : 전송 제어부
141 : 노드 성능 관리부
143 : 트랜잭션 전송부
20 : 클라이언트 장치
30 : 블록체인 네트워크
100 : 트랜잭션 수집부
120 : 배치 제어부
121 : 트랜잭션 배치 생성부
123 : 트랜잭션 응답 처리부
140 : 전송 제어부
141 : 노드 성능 관리부
143 : 트랜잭션 전송부
20 : 클라이언트 장치
30 : 블록체인 네트워크
Claims (7)
- 멀티채널 기반으로 운영되는 블록체인 시스템에서 트랜잭션을 배치 처리하는 장치에 있어서,
클라이언트 장치로부터 배치 알고리즘을 지정하는 메타데이터를 포함하는 트랜잭션 요청을 수신하여 전달하는 트랜잭션 수집부;
배치 알고리즘에 따라 트랜잭션을 분류하여 채널 별 트랜잭션 배치 번들을 생성하는 배치 제어부; 및
채널 별로 설정된 주기로 트랜잭션 배치 번들을 처리하는 블록체인 노드로부터 성능 데이터를 수집하여 노드 별 성능을 관리하고 노드 성능에 기초하여 트랜잭션 배치 번들을 전송할 블록체인 노드를 선택하는 노드 성능 관리부와, 선택된 블록체인 노드로 트랜잭션 배치 번들을 전송하는 트랜잭션 전송부를 포함하는 전송 제어부;
를 포함하되,
배치 제어부는 배치 알고리즘에 따라 트랜잭션 배치 번들을 생성하는 트랜잭션 배치 생성부를 적어도 하나 포함하고, 트랜잭션 배치 생성부는 플러거블(Pluggable) 모듈로 추가 가능하며, 배치 제어부는 추가되는 트랜잭션 배치 생성부를 초기화하고 인터페이스를 연결하고,
배치 제어부는 트랜잭션 요청에 포함된 메타데이터를 분석하여 트랜잭션 요청을 전달할 트랜잭션 배치 생성부를 결정하는 트랜잭션 배치 처리 장치.
- 삭제
- 삭제
- 삭제
- 제 1 항에 있어서,
노드 성능 관리부가 수집하는 성능 데이터는 노드의 네트워크 사용량을 포함하고, 네트워크 사용량으로부터 노드 별 성능을 산출하는 트랜잭션 배치 처리 장치.
- 제 5 항에 있어서,
노드 성능 관리부가 수집하는 성능 데이터는 블록체인 노드의 프로세스 정보를 더 포함하고,
노드 성능 관리부는 프로세스 정보로부터 프로세스 능력에 따른 가중치를 산출하여 네트워크 사용량과 가중치에 기초하여 트랜잭션 배치 번들을 전송할 블록체인 노드를 선택하는 트랜잭션 배치 처리 장치.
- 제 1 항에 있어서,
배치 제어부는 트랜잭션 배치 번들에 대응되는 번들로 수신된 트랜잭션 배지 응답을 개별 트랜잭션에 대한 응답으로 변환하는 트랜잭션 응답 처리부;
를 더 포함하는 트랜잭션 배치 처리 장치.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200159698A KR102506286B1 (ko) | 2020-11-25 | 2020-11-25 | 멀티채널 블록체인 트랜잭션 배치 처리 장치 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200159698A KR102506286B1 (ko) | 2020-11-25 | 2020-11-25 | 멀티채널 블록체인 트랜잭션 배치 처리 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20220072277A KR20220072277A (ko) | 2022-06-02 |
KR102506286B1 true KR102506286B1 (ko) | 2023-03-06 |
Family
ID=81985634
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200159698A KR102506286B1 (ko) | 2020-11-25 | 2020-11-25 | 멀티채널 블록체인 트랜잭션 배치 처리 장치 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102506286B1 (ko) |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101950912B1 (ko) | 2016-08-01 | 2019-02-21 | 서강대학교산학협력단 | 블록체인 기반 트랜잭션 검증 시스템 및 그 방법 |
CN107196900B (zh) * | 2017-03-24 | 2020-04-24 | 创新先进技术有限公司 | 一种共识校验的方法及装置 |
EP3468095A1 (en) * | 2017-10-06 | 2019-04-10 | Siemens Aktiengesellschaft | Transaction selection device for selecting blockchain transactions |
KR102450411B1 (ko) * | 2018-05-09 | 2022-09-30 | 삼성에스디에스 주식회사 | 블록체인 기반 트랜잭션 처리 방법, 장치 및 그 시스템 |
KR102519186B1 (ko) * | 2019-02-18 | 2023-04-06 | 아주대학교산학협력단 | 트랜잭션 처리를 위한 블록체인 네트워크의 노드 장치 및 이의 동작방법 |
WO2019120334A2 (en) * | 2019-04-12 | 2019-06-27 | Alibaba Group Holding Limited | Performing parallel execution of transactions in a distributed ledger system |
-
2020
- 2020-11-25 KR KR1020200159698A patent/KR102506286B1/ko active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
KR20220072277A (ko) | 2022-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109218355B (zh) | 负载均衡引擎,客户端,分布式计算系统以及负载均衡方法 | |
CN100449497C (zh) | 并行计算机和定位并行计算机中硬件故障的方法 | |
US8434085B2 (en) | Scalable scheduling of tasks in heterogeneous systems | |
US20020188691A1 (en) | Pipelined high speed data transfer mechanism | |
Ilkhechi et al. | Network-aware virtual machine placement in cloud data centers with multiple traffic-intensive components | |
JP7339965B2 (ja) | ノードのネットワークにおいてデータ・パケットを伝搬するためのシステム及び方法 | |
CN108256118A (zh) | 数据处理方法、装置、系统、计算设备以及存储介质 | |
CN106571978B (zh) | 数据包捕获方法及装置 | |
CN101237331A (zh) | 话单文件的生成方法、传输方法、系统和装置 | |
CN114911608A (zh) | 分布式安全多方计算 | |
CN111447143A (zh) | 业务服务数据传输方法、装置、计算机设备和存储介质 | |
US11563690B2 (en) | Low latency queuing system | |
KR102506286B1 (ko) | 멀티채널 블록체인 트랜잭션 배치 처리 장치 | |
Alfatafta et al. | Cool: A cloud-optimized structure for mpi collective operations | |
CN111092925A (zh) | 一种区块链扩容处理方法、装置及设备 | |
Zhou et al. | Approach for minimising network effect of VNF migration | |
KR100609459B1 (ko) | 피투피 방식의 병렬 분산처리시스템 및 방법 | |
Attiya et al. | TCSA: A dynamic job scheduling algorithm for computational grids | |
US20230291656A1 (en) | Operation of a distributed deterministic network | |
Sha et al. | Optimizing data placement of mapreduce on ceph-based framework under load-balancing constraint | |
Baymani et al. | Exploring RapidIO technology within a DAQ system event building network | |
CN111200560B (zh) | 微服务注册方法、装置、设备及存储介质 | |
CN110119300A (zh) | 虚拟单元集群的负载均衡方法和装置 | |
CN112019630A (zh) | 一种负载均衡方法以及装置 | |
KR100827626B1 (ko) | 링 기반 연결 구조를 이용한 그리드 데이터베이스 시스템및 이를 위한 부하 분산 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
AMND | Amendment | ||
E601 | Decision to refuse application | ||
AMND | Amendment | ||
X701 | Decision to grant (after re-examination) | ||
GRNT | Written decision to grant |