KR20230075759A - Blockchain system for using a proxy server to transfer transactions between nodes - Google Patents

Blockchain system for using a proxy server to transfer transactions between nodes Download PDF

Info

Publication number
KR20230075759A
KR20230075759A KR1020210162257A KR20210162257A KR20230075759A KR 20230075759 A KR20230075759 A KR 20230075759A KR 1020210162257 A KR1020210162257 A KR 1020210162257A KR 20210162257 A KR20210162257 A KR 20210162257A KR 20230075759 A KR20230075759 A KR 20230075759A
Authority
KR
South Korea
Prior art keywords
node
transaction
group
nodes
blockchain
Prior art date
Application number
KR1020210162257A
Other languages
Korean (ko)
Other versions
KR102557196B1 (en
Inventor
이정훈
김태현
김의중
Original Assignee
주식회사 디지캡
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 디지캡 filed Critical 주식회사 디지캡
Priority to KR1020210162257A priority Critical patent/KR102557196B1/en
Publication of KR20230075759A publication Critical patent/KR20230075759A/en
Application granted granted Critical
Publication of KR102557196B1 publication Critical patent/KR102557196B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1087Peer-to-peer [P2P] networks using cross-functional networking aspects
    • H04L67/1089Hierarchical topologies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1087Peer-to-peer [P2P] networks using cross-functional networking aspects
    • H04L67/1093Some peer nodes performing special functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/564Enhancement of application control based on intercepted application data

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Theoretical Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

According to the present invention, a blockchain system configures generation nodes and verification nodes participating in a network in one or more node groups and installs one group proxy server for each node group to transmit transaction data from the generation nodes to the verification nodes. At this time, the group proxy server excludes and delivers duplicate transaction data to distribute transaction processing loads of the nodes, thereby increasing system efficiency.

Description

프록시 서버를 이용하여 노드간 트랜잭션을 전달하는 블록체인 시스템 { BLOCKCHAIN SYSTEM FOR USING A PROXY SERVER TO TRANSFER TRANSACTIONS BETWEEN NODES }A blockchain system that transmits transactions between nodes using a proxy server { BLOCKCHAIN SYSTEM FOR USING A PROXY SERVER TO TRANSFER TRANSACTIONS BETWEEN NODES }

본 발명은 블록체인 기술에 관한 것으로, 보다 상세하게는 트랜잭션 처리 성능을 높이기 위해 프록시 서버를 사용하는 블록체인 기술에 관한 것이다The present invention relates to blockchain technology, and more particularly to blockchain technology using a proxy server to increase transaction processing performance.

블록체인은 P2P(Peer to Peer) 네트워크에 참여하는 모든 노드들이 거래내역 등의 데이터를 분산 처리하는 탈중앙화 기술이다. 블록체인은 데이터를 블록이라고 하는 단위로 저장하며, 이 블록이 체인 형태의 자료 구조로 저장 및 관리된다. 블록체인은 트랜잭션의 무결성과 보안성을 보장하기 위해 모든 노드들이 작업증명 또는 지분증명 등의 합의 과정이 필요하다.Blockchain is a decentralized technology in which all nodes participating in a P2P (Peer to Peer) network distribute and process data such as transaction details. Blockchain stores data in units called blocks, and these blocks are stored and managed in a chain-type data structure. Blockchain requires a consensus process such as proof-of-work or proof-of-stake by all nodes to ensure the integrity and security of transactions.

블록체인의 트랜잭션 처리 속도(TPS)는 블록 생성에 사용되는 합의 알고리즘 성능과 노드 간의 트랜잭션/블록 전파 성능에 의해 크게 좌우 된다. 과거에는 블록체인의 트랜잭션 처리 성능에 대한 연구는 합의 알고리즘 성능 분석과 개선에 초점이 맞춰진 것에 비해 최근에는 네트워크 성능에도 많은 연구가 진행 되고 있다. The transaction processing speed (TPS) of a blockchain is highly dependent on the performance of the consensus algorithm used for block generation and the performance of transaction/block propagation between nodes. In the past, research on transaction processing performance of blockchains focused on analyzing and improving consensus algorithm performance, but recently, a lot of research has been conducted on network performance.

하나의 블록에 들어가는 트랜잭션의 수를 늘리거나, 블록 생성 주기를 줄이는 방법으로 트랜잭션 처리 속도를 증가시키는 기법이 제안되어 왔다.A technique for increasing the transaction processing speed by increasing the number of transactions included in one block or reducing the block generation cycle has been proposed.

대표적으로 멀티 레벨 큐 스케줄링 방식으로 트랜잭션을 처리하여 하이퍼레저 패브릭(Hyperledger Fabric)에서 많은 양의 트랜잭션을 한번에 처리할 수 있는 Nexledger Accelerator가 있다. Nexledger Accelerator는 각 거래에 대해 매번 합의 과정을 수행하지 않고 접근하려는 키나 주소가 중복되지 않는 다수의 거래를 분류하여 하나의 신규 트랜잭션으로 결합하고 합의하는 방식을 사용한다. Nexledger Accelerator는 단일 합의 단계에서 더 많은 트랜잭션을 처리할 수 있기 때문에 시간당 처리 성능이 향상된다.Representatively, there is Nexledger Accelerator, which can process a large amount of transactions at once in Hyperledger Fabric by processing transactions with a multi-level queue scheduling method. Nexledger Accelerator classifies multiple transactions that do not have overlapping keys or addresses to access, combines them into one new transaction, and uses a method of consensus without performing a consensus process for each transaction. Because Nexledger Accelerator can process more transactions in a single consensus step, throughput per hour increases.

대한민국 공개특허 제10-2018-0014534호Republic of Korea Patent Publication No. 10-2018-0014534

본 발명은 블록체인 노드간의 트랜잭션 전파 방식에서 프록시 서버를 이용하여 트랜잭션을 빠르게 처리하고 효율적으로 전파하는 시스템을 제공하는 것을 목적으로 한다.An object of the present invention is to provide a system that quickly processes and efficiently propagates transactions using a proxy server in a transaction propagation method between blockchain nodes.

본 발명의 일 양상에 따르면, 블록체인 시스템은 에이전트와, 하나 이상의 노드 그룹을 포함한다.According to one aspect of the present invention, a blockchain system includes an agent and one or more node groups.

에이전트는 사용자 어플리케이션으로부터 수신된 트랜잭션 요청들로부터 트랜잭션 배치 번들을 생성하여 블록체인 노드로 전송한다.The agent creates a transaction batch bundle from the transaction requests received from the user application and sends it to the blockchain node.

노드 그룹은 하나 이상의 생성 노드와, 하나 이상의 검증 노드와, 그룹 프록시 서버를 포함한다. 생성 노드는 에이전트로부터 수신한 트랜잭션 배치 번들에 포함된 트랜잭션들을 검증하고 정렬하여 트랜잭션 블록을 생성하고, 검증 노드는 생성 노드에 의해 생성된 트랜잭션 블록을 검증하고 블록체인에 해당 블록을 추가하고, 그룹 프록시 서버는 생성 노드로부터 트랜잭션 블록을 수신하여 동일 그룹의 모든 검증 노드에 전달한다. 이때, 생성 노드는 자신이 속한 그룹의 그룹 프록시 서버를 포함하여 모든 그룹 프록시 서버에 생성된 트랜잭션 블록을 전달한다.A node group includes one or more generation nodes, one or more verification nodes, and a group proxy server. The generation node verifies and sorts the transactions included in the transaction batch bundle received from the agent to create a transaction block, the verification node verifies the transaction block generated by the generation node, adds the corresponding block to the blockchain, and proxies the group The server receives the transaction block from the producing node and forwards it to all validating nodes in the same group. At this time, the creation node delivers the generated transaction block to all group proxy servers, including the group proxy server of the group to which it belongs.

본 발명의 또 다른 양상에 따르면, 그룹 프록시 서버가 각 생성 노드로부터 수신한 트랜잭션 블록들에 포함된 동일한 트랜잭션 데이터를 검증 노드 전달 시 한번만 전송되도록 처리할 수 있다.According to another aspect of the present invention, the group proxy server may transmit the same transaction data included in the transaction blocks received from each generating node only once when transmitting to the verifying node.

본 발명의 추가적 양상에 따르면, 블록체인 시스템은 노드 정보 수집 서버를 더 포함할 수 있고, 노드 정보 수집 서버는 각 노드 그룹의 검증 노드들의 동작 상태 정보 및 성능 정보를 수집할 수 있다.According to an additional aspect of the present invention, the blockchain system may further include a node information collection server, and the node information collection server may collect operational state information and performance information of verification nodes of each node group.

이때, 에이전트는 검증 노드들의 동작 상태 정보 및 성능 정보에 따라 생성된 트랜잭션 배치 번들을 블록체인 노드로 분배하여 전송할 수 있다.At this time, the agent may distribute and transmit the transaction batch bundle generated according to the operational state information and performance information of the verification nodes to the blockchain nodes.

본 발명의 추가적 양상에 따르면, 블록체인 시스템은 노드 그룹 관리 서버를 더 포함할 수 있고, 노드 그룹 관리 서버는 검증 노드들의 동작 상태 정보에 따라 노드 그룹의 구성을 재설정할 수 있다.According to an additional aspect of the present invention, the blockchain system may further include a node group management server, and the node group management server may reset the configuration of the node group according to operational state information of the verification nodes.

본 발명에 의하면 블록체인 노드간의 트랜잭션 전파 시 프록시 서버를 이용하여 트랜잭션을 빠르게 처리하고 효율적으로 전파할 수 있다.According to the present invention, when propagating a transaction between blockchain nodes, the transaction can be quickly processed and efficiently propagated using a proxy server.

도 1은 본 발명의 블록체인 시스템이 프록시 서버를 이용하여 노드 그룹 사이에서 트랜잭션을 전달하는 개념을 도시한 블록도이다.
도 2는 본 발명의 블록체인 시스템의 프록시 서버가 중복된 트랜잭션 데이터를 처리하는 개념을 도시한 것이다.
도 3은 본 발명의 블록체인 시스템의 블록도로 검증 서버의 상태 및 성능 정보 수집과 관련된 블록을 도시한 것이다.
1 is a block diagram illustrating the concept of the blockchain system of the present invention transferring transactions between node groups using a proxy server.
2 illustrates the concept of processing redundant transaction data by the proxy server of the blockchain system of the present invention.
Figure 3 is a block diagram of the blockchain system of the present invention, showing blocks related to the status and performance information collection of the verification server.

전술한, 그리고 추가적인 양상들은 첨부된 도면을 참조하여 설명하는 실시 예들을 통해 구체화된다. 각 실시 예들의 구성 요소들은 다른 언급이나 상호 간에 모순이 없는 한 실시 예 내에서 다양한 조합이 가능한 것으로 이해된다. 블록도의 각 블록은 어느 경우에 있어서 물리적인 부품을 표현할 수 있으나 또 다른 경우에 있어서 하나의 물리적인 부품의 기능의 일부 혹은 복수의 물리적인 부품에 걸친 기능의 논리적인 표현일 수 있다. 때로는 블록 혹은 그 일부의 실체는 프로그램 명령어들의 집합(set)일 수 있다. 이러한 블록들은 전부 혹은 일부가 하드웨어, 소프트웨어 혹은 이들의 결합에 의해 구현될 수 있다.The foregoing and additional aspects are embodied through embodiments described with reference to the accompanying drawings. It is understood that the components of each embodiment can be combined in various ways within an embodiment unless otherwise stated or mutually contradictory. Each block in the block diagram may represent a physical component in one case, but in another case, it may be a logical representation of a function of a portion of a function of one physical component or a function across multiple physical components. Sometimes the substance of a block or part thereof may be a set of program instructions. All or part of these blocks may be implemented by hardware, software, or a combination thereof.

도 1은 본 발명의 블록체인 시스템이 프록시 서버를 이용하여 노드 그룹 사이에서 트랜잭션을 전달하는 개념을 도시한 블록도이다. 본 발명의 일 양상에 따르면, 블록체인 시스템은 에이전트(100)와, 하나 이상의 노드 그룹(200)을 포함한다.1 is a block diagram illustrating the concept of the blockchain system of the present invention transferring transactions between node groups using a proxy server. According to one aspect of the present invention, a blockchain system includes an agent 100 and one or more node groups 200 .

본 발명의 블록체인 시스템은 멀티채널 기반으로 운영되는 블록체인 시스템이다. 블록체인 시스템은 개방형으로 다양한 컴퓨터 장비를 이용하여 누구나 참여가 가능한 퍼블릭 블록체인과, 폐쇄형으로 허가 받은 제한된 노드만 참여할 수 있는 프라이빗 블록체인과, 혼합형 블록체인 하이브리드 블록체인으로 구분된다. 채널은 주로 기업용으로 사용되는 프라이빗 블록체인에서 도입된 개념으로 전체 블록체인 시스템을 다수의 채널로 구분하여 멀티 블록체인 방식으로 운영이 가능하도록 한다. 즉, 하나의 시스템에서 다수의 블록체인을 운영할 수 있다. 따라서, 멀티채널 기반으로 운영되는 블록체인 시스템은 채널 별로 독립적인 블록체인을 유지하고, 참여자는 특정 채널에 가입함으로써 블록체인을 선택할 수 있다. 멀티채널 기반으로 운영되는 블록체인 시스템의 하나의 예로 하이퍼레저 패브릭이 있다. 본 발명의 블록체인 시스템은 멀티채널을 지원하는 프라이빗 블록체인이거나, 멀티채널을 지원하는 퍼블릭 블록체인일 수 있다.The blockchain system of the present invention is a blockchain system operated on a multi-channel basis. The blockchain system is divided into a public blockchain in which anyone can participate using various computer equipment in an open type, a private blockchain in which only limited nodes with permission can participate in a closed type, and a hybrid blockchain in a mixed type blockchain. A channel is a concept introduced in private blockchains, which are mainly used for businesses, and divides the entire blockchain system into multiple channels so that it can be operated in a multi-blockchain manner. In other words, multiple blockchains can be operated in one system. Therefore, a blockchain system operated on a multi-channel basis maintains an independent blockchain for each channel, and participants can select a blockchain by subscribing to a specific channel. Hyperledger Fabric is an example of a blockchain system operated on a multi-channel basis. The blockchain system of the present invention may be a private blockchain supporting multi-channel or a public blockchain supporting multi-channel.

에이전트(100)는 사용자 어플리케이션(500)으로부터 수신된 트랜잭션 요청들로부터 트랜잭션 배치 번들을 생성하여 블록체인 노드로 전송한다.The agent 100 generates a transaction batch bundle from the transaction requests received from the user application 500 and transmits it to the blockchain node.

사용자 어플리케이션(500)은 API를 호출하여 트랜잭션 요청을 발생시킨다. 에이전트(100)는 사용자 어플리케이션(500)이 스마트 컨트랙트 등을 통해 블록체인의 원장에 정보를 기록하기 위해 발생시킨 트랜잭션 요청을 수신한다. 에이전트(100)가 수집하는 트랜잭션은 단일 트랜잭션이다. 에이전트(100)는 배치 알고리즘에 따라 트랜잭션을 분류하여 채널 별로 트랜잭션 배치 번들을 생성한다. 배치 알고리즘은 트랜잭션의 특성에 따라 트랜잭션 처리 성능을 향상시키기 위한 방법이 구현된 것으로 그 방법은 제한이 없다. 예를 들어, 배치 알고리즘은 채널 별로 지정된 시간 동안 설정된 개수로 트랜잭션을 모아 트랜잭션 배치 번들을 생성할 수 있다. 다른 예로, 배치 알고리즘은 채널 별로 지정된 시간 동안 연관성 있는 데이터(예, 동일한 함수를 사용하는 트랜잭션)를 포함하는 트랜잭션을 모아 트랜잭션 배치 번들을 생성할 수 있다. 또 다른 예로, 배치 알고리즘은 채널 별로 지정된 시간 동안 트랜잭션 데이터에 포함된 키 값(배치로 묶는 기준이 되는 값)에 기초하여 연관성 있는 트랜잭션을 모아 트랜잭션 배치 번들을 생성할 수 있다.The user application 500 calls an API to generate a transaction request. The agent 100 receives a transaction request generated by the user application 500 to record information in the ledger of the blockchain through a smart contract or the like. A transaction collected by the agent 100 is a single transaction. The agent 100 classifies transactions according to a batch algorithm and generates transaction batch bundles for each channel. The batch algorithm implements a method for improving transaction processing performance according to the characteristics of a transaction, and the method is not limited. For example, the batch algorithm may generate a transaction batch bundle by collecting a set number of transactions for a designated time for each channel. As another example, the batch algorithm may generate a transaction batch bundle by collecting transactions including related data (eg, transactions using the same function) for a designated time for each channel. As another example, the batch algorithm may generate a transaction batch bundle by collecting related transactions based on a key value included in transaction data (a value serving as a criterion for grouping into batches) for a designated time for each channel.

노드 그룹(200)은 하나 이상의 생성 노드(210)와, 하나 이상의 검증 노드(220)와, 그룹 프록시 서버(230)를 포함한다. 도 1에 도시된 예에서, 블록체인 시스템은 3개의 노드 그룹(200_1, 200_2, 200_3)으로 구성되어 있다. 또한, 각 노드 그룹(200)은 3개의 생성 노드(210)와, 그룹 프록시 서버(230)와, 3개의 검증 노드(220)를 포함하고 있다. 노드 그룹#1(200_1)은 생성 노드#1(210_1)과 생성 노드#2(210_2)와 생성 노드#3(210_3)과, 그룹 프록시 서버#1(230_1)과, 검증 노드#1(220_1)과 검증 노드#2(220_2)와 검증 노드#3(220_3)을 포함한다. 도 1에 도시된 예는 각 노드 그룹(200)이 동일한 수의 생성 노드(210)와, 검증 노드(220)를 포함하는 것으로 도시되어 있다. 블록체인 시스템은 효율적인 트랜잭션 처리를 위하여 노드 그룹(200)들에 포함되는 노드들의 수를 동일하게 하는 것이 바람직하나 이에 제한되는 것은 아니며 노드들의 처리 성능에 따라 노드 그룹(200) 별로 포함되는 노드들의 수를 다르게 설정할 수 있다.Node group 200 includes one or more creation nodes 210 , one or more verification nodes 220 , and a group proxy server 230 . In the example shown in FIG. 1, the blockchain system is composed of three node groups 200_1, 200_2, and 200_3. In addition, each node group 200 includes three creation nodes 210, a group proxy server 230, and three verification nodes 220. Node group #1 (200_1) includes generation node #1 (210_1), generation node #2 (210_2), generation node #3 (210_3), group proxy server #1 (230_1), and verification node #1 (220_1). and verification node # 2 (220_2) and verification node # 3 (220_3). In the example shown in FIG. 1 , each node group 200 is illustrated as including the same number of generation nodes 210 and verification nodes 220 . In the blockchain system, it is desirable to equalize the number of nodes included in the node groups 200 for efficient transaction processing, but is not limited thereto, and the number of nodes included in each node group 200 depends on the processing performance of the nodes. can be set differently.

생성 노드(210)는 에이전트(100)로부터 수신한 트랜잭션 배치 번들에 포함된 트랜잭션들을 시뮬레이션하여 검증하고 정렬하여 트랜잭션 블록을 생성한다. 일 예로 블록체인 시스템이 하이퍼레저 패브릭 플랫폼인 경우 생성 노드(210)는 원장 갱신을 리스닝하고 그 사본을 유지하는 피어(peer) 노드이며, 엔도징(endorsing) 피어에 해당된다. 생성 노드(210)는 트랜잭션을 시뮬레이션하고 엔도즈(endorse)한다. 생성 노드(210)는 또한 엔드즈된 트랜잭션을 배열하여 블록으로 생성하는 오더링(ordering) 기능도 수행한다.The generating node 210 generates a transaction block by simulating, verifying, and sorting the transactions included in the transaction batch bundle received from the agent 100 . For example, if the blockchain system is a Hyperledger Fabric platform, the creation node 210 is a peer node that listens for ledger updates and maintains a copy thereof, and corresponds to an endorsing peer. The production node 210 simulates and ends the transaction. The generation node 210 also performs an ordering function of arranging ended transactions and generating blocks.

생성 노드(210)는 자신이 속한 그룹의 그룹 프록시 서버(230)를 포함하여 모든 그룹 프록시 서버(230)에 생성된 트랜잭션 블록을 전달한다. 도 1에 도시된 예에서 생성 노드#1(210_1)은 자신이 속한 노드 그룹의 그룹 프록시 서버#1(230_1) 뿐만 아니라 다른 노드 그룹의 그룹 프록시 서버#2(230_2)와 그룹 프록시 서버#3(230_3)에도 생성된 트랜잭션 블록을 전달한다.The creation node 210 forwards the created transaction block to all group proxy servers 230, including the group proxy server 230 of the group to which it belongs. In the example shown in FIG. 1, the generation node #1 (210_1) includes not only the group proxy server #1 (230_1) of the node group to which it belongs, but also the group proxy server #2 (230_2) and group proxy server #3 ( 230_3) also transfers the created transaction block.

생성 노드(210)는 트랜잭션 블록을 전달할 때 생성 노드(210)가 속한 노드 그룹의 검증 노드 정보를 함께 전달할 수 있다.When the generation node 210 transmits a transaction block, it may also transmit verification node information of a node group to which the generation node 210 belongs.

검증 노드(220)는 생성 노드(210)에 의해 생성된 트랜잭션 블록을 검증하고 블록체인에 해당 블록을 추가한다. 일 예로 블록체인 시스템이 하이퍼레저 패브릭 플랫폼인 경우 검증 노드(220)는 원장 갱신을 리스닝하고 그 사본을 유지하는 피어(peer) 노드이며, 커미팅(committing) 피어에 해당된다. 검증 노드(220)는 트랜잭션을 검증하고 블록체인 네트워크에 커밋한다.The verification node 220 verifies the transaction block generated by the generation node 210 and adds the block to the blockchain. For example, if the blockchain system is a Hyperledger Fabric platform, the verification node 220 is a peer node that listens for ledger updates and maintains a copy thereof, and corresponds to a committing peer. The verification node 220 verifies the transaction and commits it to the blockchain network.

그룹 프록시 서버(230)는 노드 그룹(200) 별로 하나씩 포함되며, 생성 노드(210)로부터 트랜잭션 블록을 수신하여 동일 그룹의 모든 검증 노드(220)에 전달한다. 그룹 프록시 서버(230)는 동일한 노드 그룹에 속한 생성 노드(210) 외 다른 노드 그룹에 속한 생성 노드(210)들로부터 검증된 트랜잭션 블록을 수신한다. 따라서, 해당 노드 그룹의 생성 노드(210)에 검증할 트랜잭션이 할당되지 않았더라도 다른 노드 그룹에 속한 생성 노드(210)들로부터 트랜-션 블록을 수신하여 자신이 속한 노드 그룹의 검증 노드(220)들에게 전달할 수 있다.The group proxy server 230 includes one for each node group 200, receives a transaction block from the generation node 210, and delivers it to all verification nodes 220 of the same group. The group proxy server 230 receives verified transaction blocks from creation nodes 210 belonging to other node groups other than the generation node 210 belonging to the same node group. Therefore, even if the transaction to be verified is not assigned to the generation node 210 of the corresponding node group, the verification node 220 of the node group to which it belongs receives transaction blocks from the generation nodes 210 belonging to other node groups. can be passed on to

도 2는 본 발명의 블록체인 시스템의 프록시 서버가 중복된 트랜잭션 데이터를 처리하는 개념을 도시한 것이다. 본 발명의 또 다른 양상에 따르면, 그룹 프록시 서버(230)가 각 생성 노드(210)로부터 수신한 트랜잭션 블록들에 포함된 동일한 트랜잭션 데이터를 검증 노드(220) 전달 시 한번만 전송되도록 처리할 수 있다.2 illustrates the concept of processing redundant transaction data by the proxy server of the blockchain system of the present invention. According to another aspect of the present invention, the same transaction data included in the transaction blocks received from each generation node 210 by the group proxy server 230 may be transmitted only once to the verification node 220.

그룹 프록시 서버(230)가 모든 생성 노드(210)로부터 수신하는 트랜잭션 블록에 포함된 트랜잭션 데이터들은 중복된 데이터를 포함할 수 있다. 즉, 그룹 프록시 서버(230)는 다른 노드 그룹에 속하는 생성 노드(210)들로부터도 트랜잭션 블록을 수신할 수 있다. 일 예로 블록체인 시스템이 하이퍼레저 패브릭 플랫폼인 경우 도 2에 도시된 것과 같이 어플리케이션 제안 서명(Application proposal sign)과, 제안 페이로드(Proposal payload)와, 시뮬레이션 페이로드(Simulation payload)가 중복되므로 그룹 프록시 서버(230)는 이들 중복된 데이터를 제외하고 검증 노드(220)에 전송함으로써 트랜잭션 데이터의 양을 줄여 검증 노드(220)의 부하를 분산시켜 시스템의 효율성을 높일 수 있다. 어플리케이션 제안 서명은 사용자 어플리케이션(500)은 최초 거래 요청 시 제안 트랜잭션(Proposal transaction)에 포함되는 앱 서명 정보이고, 제안 페이로드는 사용자 어플리케이션(500)이 최초 거래 요청 시 제안 트랜잭션(Proposal transaction)에 포함되는 거래 정보이며, 시뮬레이션 페이로드는 엔도징 피어가 사용자 어플리케이션(500)으로부터 거래 요청을 받으면 요청된 거래에 대해 검증을 실행하고 문제가 없다면 체인코드를 호출한 후 요청된 거래에 대해 읽기 종속성(readset) 및 업데이트 (writeset)를 계산한 시뮬레이션 정보이다.Transaction data included in the transaction block that the group proxy server 230 receives from all generating nodes 210 may include duplicated data. That is, the group proxy server 230 may also receive transaction blocks from generation nodes 210 belonging to other node groups. For example, when the blockchain system is a Hyperledger Fabric platform, as shown in FIG. The server 230 excludes these redundant data and transmits them to the verification node 220, thereby reducing the amount of transaction data and distributing the load of the verification node 220 to increase system efficiency. The application proposal signature is app signature information included in the proposal transaction when the user application 500 requests the first transaction, and the proposal payload is included in the proposal transaction when the user application 500 requests the first transaction. When the endosing peer receives a transaction request from the user application 500, the simulation payload verifies the requested transaction, calls the chaincode if there is no problem, and reads the requested transaction (readset ) and update (writeset) calculation information.

도 2의 예에서 생성 노드#1(210_1), 생성 노드#2(210_2), 생성 노드#3(210_3)이 전달하는 트랜잭션 데이터들은 모두 어플리케이션 제안 서명(Application proposal sign)과, 제안 페이로드(Proposal payload)와, 시뮬레이션 페이로드(Simulation payload)를 포함하나 그룹 프록시 서버(230)는 중복을 제외하고 생성 노드#1(210_1)이 전달한 트랜잭션 데이터만 그대로 전달하고 생성 노드#2(210_2) 및 생성 노드#3(210_3)이 전달한 트랜잭션 데이터는 중복된 부분을 제외하고 전송한다.In the example of FIG. 2 , the transaction data transmitted by generation node #1 (210_1), generation node #2 (210_2), and generation node #3 (210_3) are all application proposal signatures and proposal payloads. payload) and simulation payload, but the group proxy server 230 transfers only the transaction data delivered by generation node # 1 (210_1) as it is, excluding duplicates, and generation node # 2 (210_2) and generation node The transaction data transmitted by #3 (210_3) is transmitted except for duplicated parts.

도 3은 본 발명의 블록체인 시스템의 블록도로 검증 서버의 상태 및 성능 정보 수집과 관련된 블록을 도시한 것이다. 본 발명의 추가적 양상에 따르면, 블록체인 시스템은 노드 정보 수집 서버(300)를 더 포함할 수 있고, 노드 정보 수집 서버(300)는 각 노드 그룹(200)의 검증 노드(220)들의 동작 상태 정보 및 성능 정보를 수집할 수 있다.Figure 3 is a block diagram of the blockchain system of the present invention, showing blocks related to the status and performance information collection of the verification server. According to an additional aspect of the present invention, the blockchain system may further include a node information collection server 300, and the node information collection server 300 includes operational state information of the verification nodes 220 of each node group 200. and performance information can be collected.

노드 정보 수집 서버(300)가 수집하는 블록체인 노드 특히 검증 노드(220)의 상태는 동작 가능 여부를 의미한다. 검증 노드(220)가 동작 불능 상태인 경우 부하 분산에서 제외시켜 효율성이 떨어지지 않도록 한다. 검증 노드(220)가 동작 불능 상태에서 정상 동작이 가능한 상태가 되며 다른 검증 노드(220)들과 동기화를 수행한 후 트랜잭션 처리를 수행한다.The state of the blockchain node, particularly the verification node 220, collected by the node information collection server 300 means whether or not it is operable. When the verification node 220 is in an inoperable state, it is excluded from load balancing so that efficiency does not decrease. The verification node 220 returns to a state in which normal operation is possible in an inoperable state and performs transaction processing after synchronizing with other verification nodes 220 .

노드 정보 수집 서버(300)는 설정된 주기로 트랜잭션 데이터를 처리하는 블록체인 노드 특히 검증 노드(220)로부터 성능 정보를 수집하여 검증 노드(220) 별 성능을 산출하고 관리할 수 있다. 노드 정보 수집 서버(300)는 멀티채널 블록체인 시스템에서 각 채널 별로 성능을 관리할 수 있다.The node information collection server 300 may collect performance information from blockchain nodes, in particular, verification nodes 220 that process transaction data at a set period, and calculate and manage the performance of each verification node 220 . The node information collection server 300 may manage performance for each channel in a multi-channel blockchain system.

노드 정보 수집 서버(300)가 수집하는 성능 데이터는 해당 노드의 네트워크 사용량을 포함할 수 있다. 즉, 노드 정보 수집 서버(300)는 네트워크 사용량으로부터 노드 별 성능을 산출할 수 있다. 노드 정보 수집 서버(300)는 노드간 네트워크 트래픽을 고르게 분산시키기 위하여 네트워크 사용량에 기초하여 성능을 산출하며, 이를 Least Connection Scheduling이라고 한다. 트랜잭션을 많이 처리하는 노드가 네트워크의 사용량이 많을 수밖에 없으므로 노드 정보 수집 서버(300)는 각 노드의 네트워크 사용량을 주기적으로 수집하고 이를 성능으로 산출한다.The performance data collected by the node information collection server 300 may include network usage of a corresponding node. That is, the node information collection server 300 may calculate the performance of each node from network usage. The node information collection server 300 calculates performance based on network usage in order to evenly distribute network traffic between nodes, which is called Least Connection Scheduling. Since a node that processes a lot of transactions inevitably has a lot of network usage, the node information collection server 300 periodically collects the network usage of each node and calculates it as performance.

또한, 노드 정보 수집 서버(300)가 수집하는 성능 데이터는 블록체인 노드의 프로세스 정보를 포함할 수 있다. 프로세스 정보는 각 노드의 프로세스 사양 정보와, 현재의 프로세스 사용량 정보를 포함할 수 있다. 노드 정보 수집 서버(300)는 프로세스 정보로부터 프로세스 처리능력에 따른 가중치를 산출하여 네트워크 사용량과 가중치에 기초하여 트랜잭션 배치 번들을 전송할 블록체인 노드의 성능을 산출할 수 있다.In addition, the performance data collected by the node information collection server 300 may include process information of a blockchain node. The process information may include process specification information of each node and current process usage information. The node information collection server 300 may calculate the performance of the blockchain node to transmit the transaction batch bundle based on the network usage and weight by calculating the weight according to the process processing capability from the process information.

이때, 에이전트(100)는 검증 노드(220)들의 동작 상태 정보 및 성능 정보에 따라 생성된 트랜잭션 배치 번들을 블록체인 노드로 분배하여 전송할 수 있다.At this time, the agent 100 may distribute and transmit the transaction batch bundle generated according to the operational state information and performance information of the verification nodes 220 to the blockchain nodes.

본 발명의 추가적 양상에 따르면, 블록체인 시스템은 노드 그룹 관리 서버(400)를 더 포함할 수 있고, 노드 그룹 관리 서버(400)는 검증 노드(220)들의 동작 상태 정보에 따라 노드 그룹(200)의 구성을 재설정할 수 있다.According to an additional aspect of the present invention, the blockchain system may further include a node group management server 400, and the node group management server 400 performs the node group 200 according to the operation state information of the verification nodes 220. configuration can be reset.

검증 노드(220)들의 동작 상태가 변경됨에 따라 노드 그룹(200) 사이에 트랜잭션 처리 성능에 불균형이 발생할 수 있다. 노드 그룹 관리 서버(400)는 검증 노드(220)들의 동작 상태의 변경에 따라 이러한 불균형이 발생하지 않도록 노드 그룹의 구성을 동적으로 변경하여 관리할 수 있다. 이때, 노드 그룹 관리 서버(400)는 노드 정보 수집 서버(300)가 수집한 검증 노드(220)들의 성능 정보를 반영하여 노드 그룹(200)을 동적으로 구성할 수 있다.As the operational states of the verification nodes 220 change, an imbalance in transaction processing performance may occur between the node groups 200 . The node group management server 400 may dynamically change and manage the configuration of the node group so that such an imbalance does not occur according to the change in the operating state of the verification nodes 220 . At this time, the node group management server 400 may dynamically configure the node group 200 by reflecting the performance information of the verification nodes 220 collected by the node information collection server 300 .

이상에서 본 발명을 첨부된 도면을 참조하는 실시 예들을 통해 설명하였지만 이에 한정되는 것은 아니며, 이들로부터 당업자라면 자명하게 도출할 수 있는 다양한 변형 예들을 포괄하도록 해석되어야 한다. 특허청구범위는 이러한 변형 예들을 포괄하도록 의도되었다.In the above, the present invention has been described through embodiments with reference to the accompanying drawings, but is not limited thereto, and should be interpreted to cover various modifications that can be obviously derived by those skilled in the art. The claims are intended to cover such variations.

100 : 에이전트
200 : 노드 그룹
210 : 생성 노드
220 : 검증 노드
230 : 그룹 프록시 서버
300 : 노드 정보 수집 서버
400 : 노드 그룹 관리 서버
500 : 사용자 어플리케이션
100: agent
200: node group
210: creation node
220: verification node
230: group proxy server
300: node information collection server
400: node group management server
500: user application

Claims (5)

사용자 어플리케이션으로부터 수신된 트랜잭션 요청들로부터 트랜잭션 배치 번들을 생성하여 블록체인 노드로 전송하는 에이전트; 및
하나 이상의 생성 노드와, 하나 이상의 검증 노드와, 그룹 프록시 서버를 포함하는 노드 그룹으로, 생성 노드는 에이전트로부터 수신한 트랜잭션 배치 번들에 포함된 트랜잭션들을 검증하고 정렬하여 트랜잭션 블록을 생성하고, 검증 노드는 생성 노드에 의해 생성된 트랜잭션 블록을 검증하고 블록체인에 해당 블록을 추가하고, 그룹 프록시 서버는 생성 노드로부터 트랜잭션 블록을 수신하여 동일 그룹의 모든 검증 노드에 전달하는 노드 그룹;
을 포함하되,
생성 노드는 자신이 속한 그룹의 그룹 프록시 서버를 포함하여 모든 그룹 프록시 서버에 생성된 트랜잭션 블록을 전달하는 블록체인 시스템.
an agent that generates a transaction batch bundle from transaction requests received from user applications and transmits the bundle to a blockchain node; and
A node group including one or more generation nodes, one or more verification nodes, and a group proxy server. The generation node verifies and sorts the transactions included in the transaction batch bundle received from the agent to create a transaction block, and the verification node generates a transaction block. A node group that verifies the transaction block generated by the generation node and adds the block to the block chain, and the group proxy server receives the transaction block from the generation node and forwards it to all verification nodes in the same group;
Including,
A creation node is a blockchain system that forwards generated transaction blocks to all group proxy servers, including the group proxy servers of the group to which it belongs.
제 1 항에 있어서,
그룹 프록시 서버는 각 생성 노드로부터 수신한 트랜잭션 블록들에 포함된 동일한 트랜잭션 데이터를 검증 노드 전달 시 한번만 전송되도록 처리하는 블록체인 시스템.
According to claim 1,
The group proxy server is a blockchain system that processes the same transaction data included in the transaction blocks received from each generation node to be transmitted only once when delivered to the verification node.
제 2 항에 있어서, 상기 시스템은
각 노드 그룹의 검증 노드들의 동작 상태 정보 및 성능 정보를 수집하는 노드 정보 수집 서버;
를 더 포함하는 블록체인 시스템.
3. The method of claim 2, wherein the system
a node information collection server that collects operation state information and performance information of verification nodes of each node group;
A blockchain system that further includes.
제 3 항에 있어서,
에이전트는 검증 노드들의 동작 상태 정보 및 성능 정보에 따라 생성된 트랜잭션 배치 번들을 블록체인 노드로 분배하여 전송하는 블록체인 시스템.
According to claim 3,
A blockchain system in which the agent distributes and transmits the transaction batch bundle generated according to the operational state information and performance information of the verification nodes to the blockchain nodes.
제 3 항에 있어서, 상기 시스템은
검증 노드들의 동작 상태 정보에 따라 노드 그룹의 구성을 재설정하는 노드 그룹 관리 서버;
를 더 포함하는 블록체인 시스템.
4. The method of claim 3, wherein the system
a node group management server that resets the configuration of the node group according to the operation state information of the verification nodes;
A blockchain system that further includes.
KR1020210162257A 2021-11-23 2021-11-23 Blockchain system for using a proxy server to transfer transactions between nodes KR102557196B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210162257A KR102557196B1 (en) 2021-11-23 2021-11-23 Blockchain system for using a proxy server to transfer transactions between nodes

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210162257A KR102557196B1 (en) 2021-11-23 2021-11-23 Blockchain system for using a proxy server to transfer transactions between nodes

Publications (2)

Publication Number Publication Date
KR20230075759A true KR20230075759A (en) 2023-05-31
KR102557196B1 KR102557196B1 (en) 2023-07-19

Family

ID=86543254

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210162257A KR102557196B1 (en) 2021-11-23 2021-11-23 Blockchain system for using a proxy server to transfer transactions between nodes

Country Status (1)

Country Link
KR (1) KR102557196B1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180014534A (en) 2016-08-01 2018-02-09 서강대학교산학협력단 Verification system and method for transaction based block chain
KR20190128814A (en) * 2018-05-09 2019-11-19 삼성에스디에스 주식회사 Method and apparatus for prcocessing transaction based on bllockchain and system tehereof
KR20200142389A (en) * 2019-06-12 2020-12-22 주식회사 위즈블 Method and system for operating blockchain real time ecosystem
KR20210080550A (en) * 2019-02-21 2021-06-30 텐센트 테크놀로지(센젠) 컴퍼니 리미티드 How to record data blocks in blockchain, leader accounting node and medium

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180014534A (en) 2016-08-01 2018-02-09 서강대학교산학협력단 Verification system and method for transaction based block chain
KR20190128814A (en) * 2018-05-09 2019-11-19 삼성에스디에스 주식회사 Method and apparatus for prcocessing transaction based on bllockchain and system tehereof
KR20210080550A (en) * 2019-02-21 2021-06-30 텐센트 테크놀로지(센젠) 컴퍼니 리미티드 How to record data blocks in blockchain, leader accounting node and medium
KR20200142389A (en) * 2019-06-12 2020-12-22 주식회사 위즈블 Method and system for operating blockchain real time ecosystem

Also Published As

Publication number Publication date
KR102557196B1 (en) 2023-07-19

Similar Documents

Publication Publication Date Title
Huba et al. Papaya: Practical, private, and scalable federated learning
EP3817291B1 (en) Block chain maintenance method and device, server, and computer readable storage medium
CN109246179B (en) Method and apparatus for maintaining blockchain, server, and computer-readable storage medium
Gueta et al. SBFT: A scalable and decentralized trust infrastructure
CN110348830B (en) Block chain-based network system, authentication method, equipment and storage medium
Wang et al. Performance characterization and bottleneck analysis of hyperledger fabric
US20210256016A1 (en) Blockchain system and method
Kaur et al. Scalability in blockchain: Challenges and solutions
CN108200208B (en) Logistics block chain consensus algorithm based on cloud computing
CN115210741B (en) Partially ordered blockchain
CN109246176B (en) Multi-controller synchronization method and device based on block chain in software defined network
CN112311772B (en) Hyperridge-based cross-domain certificate management system and method
CN110602217B (en) Block chain-based alliance management method, device, equipment and storage medium
CN112835977B (en) Database management method and system based on block chain
CN113328997B (en) Alliance chain crossing system and method
US20100268808A1 (en) Distributed aggregation on an overlay network
CN112232822A (en) Transaction processing method, node, device and storage medium of block chain network
Cong et al. A blockchain consensus protocol with horizontal scalability
CN112468537A (en) Block chain network building structure based on local area network environment and data processing method
Fu et al. Resource allocation for blockchain-enabled distributed network function virtualization (NFV) with mobile edge cloud (MEC)
Swarnkar et al. Security, privacy, trust management and performance optimization of blockchain technology
Zhang et al. An efficient and robust committee structure for sharding blockchain
Li et al. A survey of state-of-the-art sharding blockchains: Models, components, and attack surfaces
KR20200006845A (en) Method for managing block chain and apparatus therefor
KR102557196B1 (en) Blockchain system for using a proxy server to transfer transactions between nodes

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right