KR102396599B1 - Device and method of supporting transaction processing in asynchronous transaction processing architecture - Google Patents

Device and method of supporting transaction processing in asynchronous transaction processing architecture Download PDF

Info

Publication number
KR102396599B1
KR102396599B1 KR1020190179435A KR20190179435A KR102396599B1 KR 102396599 B1 KR102396599 B1 KR 102396599B1 KR 1020190179435 A KR1020190179435 A KR 1020190179435A KR 20190179435 A KR20190179435 A KR 20190179435A KR 102396599 B1 KR102396599 B1 KR 102396599B1
Authority
KR
South Korea
Prior art keywords
transaction
storage
transaction processing
selecting
stored
Prior art date
Application number
KR1020190179435A
Other languages
Korean (ko)
Other versions
KR20210074146A (en
Inventor
신혜연
강동주
Original Assignee
두나무 주식회사
람다256 주식회사
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 두나무 주식회사, 람다256 주식회사 filed Critical 두나무 주식회사
Publication of KR20210074146A publication Critical patent/KR20210074146A/en
Application granted granted Critical
Publication of KR102396599B1 publication Critical patent/KR102396599B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/278Data partitioning, e.g. horizontal or vertical partitioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • 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/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Accounting & Taxation (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • General Business, Economics & Management (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Development Economics (AREA)
  • Technology Law (AREA)
  • Computing Systems (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

기재된 실시예는 비동기적으로 트랜잭션이 처리되는 아키텍처에서 보다 안정적으로 트랜잭션이 처리되도록 지원하는 장치 및 방법에 관한 것으로서, 저장소에 저장된 복수의 트랜잭션(transaction)들 중 다음 전송 대상을 결정하는 단계, 상기 저장소에서 상기 다음 전송 대상인 트랜잭션을 포함하는 적어도 하나의 트랜잭션을 로드하는 단계, 상기 적어도 하나의 트랜잭션을 블록체인(blockchain) 네트워크에 전송하는 단계, 상기 트랜잭션이 상기 블록체인 네트워크에 포함된 블록체인에 커밋(commit)되었는지 여부를 확인하는 단계, 및 상기 커밋 여부에 기초하여 상기 트랜잭션을 재전송 대상으로 결정하는 단계를 포함하는 트랜잭션 처리 지원 방법이 제공될 수 있다.The described embodiment relates to an apparatus and method for supporting more stable transaction processing in an architecture in which transactions are processed asynchronously, the method comprising: determining a next transmission target among a plurality of transactions stored in a storage; loading at least one transaction including the next transfer target transaction, transmitting the at least one transaction to a blockchain network, committing the transaction to a blockchain included in the blockchain network ( Commit), and determining whether the transaction has been committed as a retransmission target may be provided.

Description

비동기적 트랜잭션 처리 아키텍처에서의 트랜잭션 처리 지원 장치 및 방법 {DEVICE AND METHOD OF SUPPORTING TRANSACTION PROCESSING IN ASYNCHRONOUS TRANSACTION PROCESSING ARCHITECTURE}DEVICE AND METHOD OF SUPPORTING TRANSACTION PROCESSING IN ASYNCHRONOUS TRANSACTION PROCESSING ARCHITECTURE

기재된 실시예는 비동기적으로 트랜잭션이 처리되는 아키텍처에서 보다 안정적으로 트랜잭션이 처리되도록 지원하는 장치 및 방법에 관한 것이다.The described embodiment relates to an apparatus and method for supporting more stable transaction processing in an architecture in which transactions are processed asynchronously.

새로운 네트워크 플랫폼의 탄생으로 전 세계는 중앙 집중식 서버의 시대에서 피어투피어(peer to peer) 방식의 분산 네트워크 시대로의 변화를 맞이하고 있다.With the birth of a new network platform, the world is facing a change from the era of centralized servers to the era of peer-to-peer distributed networks.

블록체인(blockchain)은 관리 대상 데이터를 소규모 데이터들이 피어투피어(peer to peer) 방식을 기반으로 생성된 체인 형태의 연결고리 기반 분산 데이터 저장환경에 저장함으로써, 데이터의 임의 수정이 어렵고, 데이터의 이력 확인이 용이한 분산 컴퓨팅 기술 기반의 데이터 위변조 방지 기술을 지칭한다.The blockchain stores the data to be managed in a chain-type, link-based distributed data storage environment in which small data is created based on the peer-to-peer method, making it difficult to arbitrarily modify data, and It refers to data forgery prevention technology based on distributed computing technology that makes it easy to check history.

블록체인의 메인체인(mainchain)의 노드(node)에 모든 데이터를 저장하는 경우, 노드가 점점 무거워지면서 블록체인의 전체적인 성능 저하 및 다양한 문제점을 야기하는데, 이를 해결하기 위한 하나의 방법으로 블록체인의 메인체인에 붙어서 작동하는 하위체인인 사이드체인(sidechain)이 활용되고 있다. 이를 활용하는 경우, 메인체인에 있는 정보를 사이드체인에 옮겨 트랜잭션을 처리하고 트랜잭션의 처리가 완료되면 중요 정보만을 메인체인에 저장하는 방식으로 메인체인의 부담을 줄일 수 있다.When all data is stored in the nodes of the main chain of the blockchain, the nodes become heavier and cause deterioration of the overall performance of the blockchain and various problems. A sidechain, a sub-chain that works by attaching to the main chain, is being used. When using this, the burden on the main chain can be reduced by moving the information in the main chain to the side chain to process the transaction, and only storing important information in the main chain when the transaction is completed.

국내 등록특허공보 제10-1701131호 (발명의 명칭: 이종간 블록체인 연결을 이용한 데이터 기록/검증 방법 및 시스템)Domestic Patent Publication No. 10-1701131 (Title of the invention: Data recording/verification method and system using heterogeneous block chain connection)

기재된 실시예에 따라 비동기적으로 트랜잭션이 처리되는 아키텍처에서 트랜잭션이 보다 안정적으로 처리되도록 지원하는 장치 및 방법을 제공하는 것을 목표로 한다.An object of the present invention is to provide an apparatus and method for supporting a transaction to be processed more reliably in an architecture in which a transaction is processed asynchronously according to the described embodiment.

실시예에 따른 비동기적 트랜잭션 처리 아키텍처에서의 트랜잭션 처리 지원 방법은 사용자 단말로부터 트랜잭션(transaction) 및 상기 트랜잭션의 처리 요청을 수신하는 단계, 상기 사용자 단말의 사용자가 소유한 사용자 계정에 대응하여 저장된 개인키(private key)를 이용하여 상기 트랜잭션의 서명을 생성하고, 상기 트랜잭션에 상기 서명을 추가하여 서명된 트랜잭션을 생성하는 단계, 상기 서명된 트랜잭션을 큐(queue) 구조의 제1 저장소에 저장하는 단계, 상기 제1 저장소에서 상기 서명된 트랜잭션을 포함하는 적어도 하나의 서명된 트랜잭션을 로드하는 단계, 및 상기 적어도 하나의 서명된 트랜잭션의 상기 제1 저장소 상의 위치의 순서대로 상기 적어도 하나의 서명된 트랜잭션을 블록체인(blockchain) 네트워크에 전송하는 단계를 포함할 수 있다.A method for supporting transaction processing in an asynchronous transaction processing architecture according to an embodiment includes receiving a transaction and a processing request of the transaction from a user terminal, and a private key stored corresponding to a user account owned by a user of the user terminal generating a signature of the transaction using a (private key) and adding the signature to the transaction to generate a signed transaction; storing the signed transaction in a first storage of a queue structure; loading at least one signed transaction comprising the signed transaction from the first repository, and blocking the at least one signed transaction in an order of location on the first repository of the at least one signed transaction It may include transmitting to a blockchain network.

다른 실시예에 따른 비동기적 트랜잭션 처리 아키텍처에서의 트랜잭션 처리 지원 방법은 저장소에 저장된 복수의 트랜잭션들 중 다음 전송 대상을 결정하는 단계, 상기 저장소에서 상기 다음 전송 대상인 트랜잭션을 포함하는 적어도 하나의 트랜잭션을 로드하는 단계, 상기 적어도 하나의 트랜잭션을 블록체인 네트워크에 전송하는 단계, 상기 트랜잭션이 상기 블록체인 네트워크에 포함된 블록체인에 커밋(commit)되었는지 여부를 확인하는 단계, 및 상기 커밋 여부에 기초하여 상기 트랜잭션을 재전송 대상으로 결정하는 단계를 포함할 수 있다.A method for supporting transaction processing in an asynchronous transaction processing architecture according to another embodiment includes determining a next transmission target among a plurality of transactions stored in a storage, and loading at least one transaction including the next transmission target transaction from the storage transmitting the at least one transaction to a blockchain network, checking whether the transaction is committed to a blockchain included in the blockchain network, and based on whether the transaction is committed may include determining as a retransmission target.

또 다른 실시예에 따른 비동기적 트랜잭션 처리 아키텍처에서의 트랜잭션 처리 지원 방법은 A method of supporting transaction processing in an asynchronous transaction processing architecture according to another embodiment is

사용자 단말로부터 트랜잭션 및 상기 트랜잭션의 처리 요청을 수신하는 단계, 상기 트랜잭션의 서명을 생성하고, 상기 트랜잭션에 서명을 추가하여 서명된 트랜잭션을 생성하는 단계, 상기 서명된 트랜잭션을 큐 구조의 제1 저장소에 저장하는 단계, 상기 제1 저장소에서 상기 서명된 트랜잭션을 포함하는 적어도 하나의 서명된 트랜잭션을 로드하는 단계, 및 상기 적어도 하나의 서명된 트랜잭션의 상기 제1 저장소 상의 위치의 순서대로 상기 적어도 하나의 서명된 트랜잭션을 블록체인(blockchain) 네트워크에 전송하는 단계를 포함할 수 있다.Receiving a transaction and a request for processing the transaction from a user terminal, generating a signature of the transaction, and adding a signature to the transaction to generate a signed transaction, storing the signed transaction in a first storage of a queue structure storing, loading at least one signed transaction comprising the signed transaction from the first repository, and the at least one signature in the order of location on the first repository of the at least one signed transaction It may include transmitting the transaction to a blockchain network.

기재된 실시예에 따르면 비동기적으로 트랜잭션이 처리되는 아키텍처에서 트랜잭션이 보다 안정적으로 처리되도록 지원하는 장치 및 방법이 제공될 수 있다.According to the described embodiment, an apparatus and method for supporting a transaction to be processed more stably in an architecture in which a transaction is processed asynchronously may be provided.

또한, 체인 크롤러 및 영구 저장소를 이용하여 체인에 대한 직접적인 질의 회수를 줄여 체인에 대한 부하를 감소시키는 트랜잭션 처리 지원 장치 및 방법이 제공될 수 있다.In addition, a transaction processing support apparatus and method for reducing the load on the chain by reducing the number of direct queries to the chain by using a chain crawler and persistent storage can be provided.

또한, 체인의 트랜잭션 처리 성능보다 더 많은 요청이 수신되는 경우에도 비동기적 트랜잭션 처리를 통해 트랜잭션 처리량을 제어함으로써 사이드체인이 중지되는 것을 방지하는 트랜잭션 처리 지원 장치 및 방법이 제공될 수 있다.In addition, a transaction processing support apparatus and method can be provided that prevent the sidechain from being stopped by controlling the transaction throughput through asynchronous transaction processing even when more requests are received than the transaction processing capacity of the chain.

도 1은 실시예에 따른 트랜잭션 처리 지원 장치와 데이터를 송수신하는 다른 주체들 간의 네트워크 관계를 나타내는 도면이다.
도 2는 일 실시예에 따른 트랜잭션 처리 지원 방법을 나타내는 동작 흐름도이다.
도 3은 다른 일 실시예에 따른 트랜잭션 처리 지원 방법을 나타내는 동작 흐름도이다.
도 4는 또 다른 일 실시예에 따른 트랜잭션 처리 지원 방법을 나타내는 동작 흐름도이다.
도 5는 실시예에 따른 비동기적 트랜잭션 처리 아키텍처를 설명하기 위한 참고도이다.
도 6은 실시예에 따른 트랜잭션의 큐잉 구조를 나타내는 참고도이다.
도 7은 실시예에 따른 트랜잭션의 논스 부여 및 서명 수행 방법을 설명하기 위한 참고도이다.
도 8은 실시예에 따른 트랜잭션 전송 방법을 설명하기 위한 참고도이다.
도 9는 실시예에 따른 트랜잭션 전송 결과 검사 및 재전송 방법을 설명하기 위한 참고도이다.
도 10은 실시예에 따른 컴퓨터 시스템의 구성을 나타낸 도면이다.
1 is a diagram illustrating a network relationship between an apparatus for supporting transaction processing and other entities that transmit and receive data according to an embodiment.
2 is an operation flowchart illustrating a method for supporting transaction processing according to an embodiment.
3 is an operation flowchart illustrating a transaction processing support method according to another exemplary embodiment.
4 is an operation flowchart illustrating a method for supporting transaction processing according to another exemplary embodiment.
5 is a reference diagram for explaining an asynchronous transaction processing architecture according to an embodiment.
6 is a reference diagram illustrating a queuing structure of a transaction according to an embodiment.
7 is a reference diagram for explaining a method for giving a nonce and performing a signature of a transaction according to an embodiment.
8 is a reference diagram for explaining a method of transmitting a transaction according to an embodiment.
9 is a reference diagram for explaining a method of checking and retransmitting a transaction transmission result according to an embodiment.
10 is a diagram showing the configuration of a computer system according to an embodiment.

본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.Advantages and features of the present invention and methods of achieving them will become apparent with reference to the embodiments described below in detail in conjunction with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below, but will be implemented in a variety of different forms, and only these embodiments allow the disclosure of the present invention to be complete, and common knowledge in the technical field to which the present invention belongs It is provided to fully inform the possessor of the scope of the invention, and the present invention is only defined by the scope of the claims. Like reference numerals refer to like elements throughout.

비록 "제1" 또는 "제2" 등이 다양한 구성요소를 서술하기 위해서 사용되나, 이러한 구성요소는 상기와 같은 용어에 의해 제한되지 않는다. 상기와 같은 용어는 단지 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용될 수 있다. 따라서, 이하에서 언급되는 제1 구성요소는 본 발명의 기술적 사상 내에서 제2 구성요소일 수도 있다.Although "first" or "second" is used to describe various elements, these elements are not limited by the above terms. Such terms may only be used to distinguish one component from another. Accordingly, the first component mentioned below may be the second component within the spirit of the present invention.

본 명세서에서 사용된 용어는 실시예를 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 또는 "포함하는(comprising)"은 언급된 구성요소 또는 단계가 하나 이상의 다른 구성요소 또는 단계의 존재 또는 추가를 배제하지 않는다는 의미를 내포한다.The terminology used herein is for the purpose of describing the embodiment and is not intended to limit the present invention. In this specification, the singular also includes the plural unless specifically stated otherwise in the phrase. As used herein, “comprises” or “comprising” implies that the stated component or step does not exclude the presence or addition of one or more other components or steps.

다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 해석될 수 있다. 또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.Unless otherwise defined, all terms used herein may be interpreted with meanings commonly understood by those of ordinary skill in the art to which the present invention pertains. In addition, terms defined in a commonly used dictionary are not to be interpreted ideally or excessively unless specifically defined explicitly.

이하에서는, 도 1 내지 도 10을 참조하여 실시예에 따른 비동기적 트랜잭션 처리 아키텍처에서의 트랜잭션 처리 지원 장치 및 방법이 상세히 설명된다.Hereinafter, an apparatus and method for supporting transaction processing in an asynchronous transaction processing architecture according to an embodiment will be described in detail with reference to FIGS. 1 to 10 .

도 1은 실시예에 따른 트랜잭션 처리 지원 장치(120)와 데이터를 송수신하는 다른 주체들 간의 네트워크 관계를 나타내는 도면이다.1 is a diagram illustrating a network relationship between an apparatus for supporting transaction processing 120 and other entities that transmit and receive data according to an embodiment.

실시예에 따른 트랜잭션 처리 지원 장치(120)는 사용자 단말(110), 블록체인 네트워크(130), 트랜잭션 저장소(140) 및 영구 저장소(150)와 데이터를 송수신할 수 있다.The transaction processing support apparatus 120 according to the embodiment may transmit/receive data to and from the user terminal 110 , the blockchain network 130 , the transaction storage 140 , and the persistent storage 150 .

사용자 단말(110)은 트랜잭션 처리 지원 장치(120)에 트랜잭션 및 트랜잭션 처리를 요청하고, 트랜잭션 처리 지원 장치(120)로부터 처리 요청에 대한 응답으로 트랜잭션 식별자를 수신할 수 있고, 트랜잭션이 처리 완료었음을 나타내는 트랜잭션 리시트(receipt)를 수신할 수 있다.The user terminal 110 may request a transaction and transaction processing from the transaction processing support device 120 , receive a transaction identifier in response to the processing request from the transaction processing support device 120 , and acknowledge that the transaction has been processed You can receive a transaction receipt (receipt) indicating.

트랜잭션 처리 지원 장치(120)는 사용자 단말(110), 블록체인 네트워크(130), 트랜잭션 저장소(140) 및 영구 저장소(150)와 데이터를 송수신하여 사용자 단말로부터 수신되는 트랜잭션이 블록체인 네트워크에 반영되도록 트랜잭션의 처리를 지원할 수 있다.The transaction processing support device 120 transmits and receives data to and from the user terminal 110, the block chain network 130, the transaction storage 140, and the persistent storage 150 so that the transaction received from the user terminal is reflected in the block chain network. It can support transaction processing.

트랜잭션은 블록체인의 상태(state)를 변경하기 위한 데이터 집합을 의미하며, 상기 트랜잭션의 처리는 트랜잭션을 블록체인에 전송하고 트랜잭션에 따라 블록체인의 상태 변경이 확정되도록 하는 절차를 의미할 수 있다. 즉, 상기 트랜잭션의 처리는 트랜잭션이 블록체인에 커밋(commit)되도록 하는 절차를 의미할 수 있다.A transaction refers to a data set for changing the state of the block chain, and the processing of the transaction may refer to a procedure for transmitting a transaction to the block chain and allowing the block chain state change to be confirmed according to the transaction. That is, the processing of the transaction may refer to a procedure for allowing the transaction to be committed to the block chain.

트랜잭션 저장소(140)는 트랜잭션 처리 지원 장치(120)가 블록체인 네트워크(130)에 트랜잭션을 전송하기 전에 임시적으로 저장하기 위한 저장소일 수 있다.The transaction storage 140 may be a storage for temporarily storing a transaction before the transaction processing support device 120 transmits a transaction to the blockchain network 130 .

영구 저장소(150)는 트랜잭션 처리 지원 장치(120)가 블록체인 네트워크(130)에 매번 질의 응답을 수행하는 경우, 블록체인 네트워크의 부하가 가중되므로, 일부 정보가 되도록 하는 역할을 수행하기 위한 저장소일 수 있다.Persistent storage 150 is a storage for performing a role of making some information because the load on the blockchain network is increased when the transaction processing support device 120 performs a query and response to the blockchain network 130 every time. can

사용자 단말(110), 트랜잭션 처리 지원 장치(120) 및 블록체인 네트워크(130)는 통신망(미도시)을 통해 상호 연결될 수 있다.The user terminal 110 , the transaction processing support device 120 , and the block chain network 130 may be interconnected through a communication network (not shown).

통신망은 사용자 단말(110), 트랜잭션 처리 지원 장치(120) 및 블록체인 네트워크(130) 사이에서 데이터가 송수신되도록 하기 위한 접속 경로를 의미한다. 예를 들어, 통신망은 LANs(Local Area Networks), WANs(Wide Area Networks), MANs(Metropolitan Area Networks), ISDNs(Integrated Service Digital Networks) 등의 유선 네트워크나, 무선 LANs, CDMA, 블루투스, 위성 통신 등의 무선 네트워크를 망라할 수 있으나, 상술한 예시에 한정되는 것은 아니다.The communication network refers to an access path for transmitting and receiving data between the user terminal 110 , the transaction processing support device 120 , and the block chain network 130 . For example, communication networks include wired networks such as LANs (Local Area Networks), WANs (Wide Area Networks), MANs (Metropolitan Area Networks), ISDNs (Integrated Service Digital Networks), wireless LANs, CDMA, Bluetooth, satellite communications, etc. It may cover a wireless network of, but is not limited to the above-described example.

도 2는 일 실시예에 따른 트랜잭션 처리 지원 방법을 나타내는 동작 흐름도이다.2 is an operation flowchart illustrating a method for supporting transaction processing according to an embodiment.

특히, 도 2는 트랜잭션 처리 지원 장치가 서명된 트랜잭션을 수신하는 경우의 트랜잭션의 큐잉 방법 및 전송 방법을 나타내는 동작 흐름도이다.In particular, FIG. 2 is an operation flowchart illustrating a queuing method and a transmission method of a transaction when the transaction processing support apparatus receives a signed transaction.

실시예에 따른 트랜잭션 처리 지원 방법을 단계별로 설명하면, 먼저, 트랜잭션 처리 지원 장치는 사용자 단말로부터 트랜잭션 및 상기 트랜잭션의 처리 요청을 수신할 수 있다(S210).The transaction processing support method according to the embodiment will be described step-by-step. First, the transaction processing support apparatus may receive a transaction and a request for processing the transaction from a user terminal ( S210 ).

트랜잭션 처리 지원 장치는 상기 트랜잭션의 처리 요청을 수신한 뒤, 상기 트랜잭션을 고유하게 식별하기 위한 트랜잭션 식별자를 생성하고, 상기 처리 요청에 대한 응답으로, 상기 트랜잭션 식별자를 상기 사용자 단말에 전송할 수 있다.After receiving the transaction processing request, the transaction processing support apparatus may generate a transaction identifier for uniquely identifying the transaction, and transmit the transaction identifier to the user terminal in response to the processing request.

다음으로, 트랜잭션 처리 지원 장치는 트랜잭션을 큐 구조의 저장소에 저장할 수 있다(S220).Next, the transaction processing support apparatus may store the transaction in the storage of the queue structure (S220).

상기 큐 구조는 블록체인 네트워크에 포함된 복수의 사이드체인들 각각에 대응하도록 설정된 분류 식별자들 및 상기 분류 식별자들 각각에 대한 분산 저장을 위한 복수의 파티션(partition)들을 포함하는 구조일 수 있다.The queue structure may be a structure including classification identifiers set to correspond to each of a plurality of sidechains included in the block chain network and a plurality of partitions for distributed storage of each of the classification identifiers.

상기 분류 식별자는 아파치 카프카(Apache Kafka) 아키텍처에서의 토픽(topic)에 대응할 수 있다.The classification identifier may correspond to a topic in the Apache Kafka architecture.

상기 저장소는 서명된 트랜잭션들이 저장된 서명된 트랜잭션 큐일 수 있다.The storage may be a signed transaction queue in which signed transactions are stored.

트랜잭션 처리 지원 장치는 상기 사용자 단말의 사용자가 소유한 외부 소유 계정(EOA, External Owned Account)이 사용되는 사이드체인에 대응하는 토픽에 포함된 복수의 파티션들 중 어느 하나에 상기 트랜잭션을 저장할 수 있다.The transaction processing support apparatus may store the transaction in any one of a plurality of partitions included in a topic corresponding to a sidechain in which an External Owned Account (EOA) owned by the user of the user terminal is used.

다음으로, 트랜잭션 처리 지원 장치는 상기 저장소에서 상기 트랜잭션을 포함하는 적어도 하나의 트랜잭션을 로드할 수 있다(S230).Next, the transaction processing support apparatus may load at least one transaction including the transaction from the storage (S230).

트랜잭션 처리 지원 장치는 트랜잭션 처리 정보(PTI, Processed Transaction Information)를 이용하여 바로 직전에 수신한 상기 다른 트랜잭션이 상기 블록체인 네트워크에 전송되었는지 여부를 판단하고, 상기 트랜잭션을 수신하기 바로 직전에 수신한 다른 트랜잭션이 상기 블록체인 네트워크에 전송된 경우에 그 다음 차례로서 상기 적어도 하나의 트랜잭션을 로드할 수 있다.The transaction processing support device uses transaction processing information (PTI, Processed Transaction Information) to determine whether the other transaction received immediately before has been transmitted to the block chain network, and determines whether the other transaction received immediately before receiving the transaction When a transaction is sent to the blockchain network, the at least one transaction may be loaded in the next sequence.

상기 트랜잭션 처리 정보는 바로 직전에 처리된 트랜잭션에 대응하는 토픽 식별자, 파티션 식별자 및 파티션 상의 위치 식별자를 포함할 수 있다.The transaction processing information may include a topic identifier, a partition identifier, and a location identifier on a partition corresponding to the transaction processed immediately before.

트랜잭션 처리 지원 장치는 상기 트랜잭션이 저장된 파티션 상의 상기 트랜잭션의 위치에서부터 기설정된 수만큼의 상기 적어도 하나의 트랜잭션을 로드할 수 있다. 즉, 트랜잭션 처리 지원 장치는 하나의 트랜잭션 또는 복수의 트랜잭션들을 로드할 수 있다.The transaction processing support apparatus may load the at least one transaction by a preset number from the location of the transaction on the partition in which the transaction is stored. That is, the transaction processing support apparatus may load one transaction or a plurality of transactions.

다음으로, 트랜잭션 처리 지원 장치는 적어도 하나의 트랜잭션의 상기 저장소 상의 위치의 순서대로 상기 적어도 하나의 트랜잭션을 블록체인 네트워크에 전송할 수 있다(S240).Next, the transaction processing support apparatus may transmit the at least one transaction to the blockchain network in the order of the location of the at least one transaction on the storage (S240).

트랜잭션 처리 지원 장치는 상기 적어도 하나의 트랜잭션이 상기 토픽에 대응하는 사이드체인에 커밋(commit)되도록, 상기 적어도 하나의 트랜잭션을 상기 블록체인 네트워크에 포함된 상기 사이드체인에 전송할 수 있다.The transaction processing support device may transmit the at least one transaction to the sidechain included in the blockchain network so that the at least one transaction is committed to the sidechain corresponding to the topic.

트랜잭션 처리 지원 장치는 상기 블록체인 네트워크에 포함된 복수의 사이드체인들 각각의 처리 성능에 따라 상기 사이드체인들 별로 서로 다르게 설정된 전송 주기에 기초하여, 상기 적어도 하나의 트랜잭션을 상기 적어도 하나의 트랜잭션에 대응하는 사이드체인의 전송 주기에 맞추어 전송할 수 있다.The transaction processing support apparatus corresponds to the at least one transaction to the at least one transaction based on a transmission period set differently for each sidechain according to the processing performance of each of the plurality of sidechains included in the block chain network. It can be transmitted according to the transmission cycle of the sidechain.

트랜잭션 처리 지원 장치는 상기 적어도 하나의 트랜잭션을 상기 블록체인 네트워크에 전송한 후에, 상기 적어도 하나의 트랜잭션 중 상기 저장소 상의 위치의 순서가 상대적으로 마지막인 트랜잭션이 바로 직전에 처리된 트랜잭션임을 지시하도록 트랜잭션 처리 정보를 갱신할 수 있다.After transmitting the at least one transaction to the blockchain network, the transaction processing support device processes the transaction to indicate that a transaction having a relatively last order of location on the storage among the at least one transaction is a transaction processed immediately before. Information can be updated.

트랜잭션 처리 지원 장치는 상기 적어도 하나의 트랜잭션을 상기 블록체인 네트워크에 전송한 후에, 상기 트랜잭션이 상기 트랜잭션에 대응하는 사이드체인에 커밋(commit)되었는지 여부를 확인하고, 상기 트랜잭션이 상기 사이드체인에 커밋된 경우 상기 트랜잭션에 대해 생성된 트랜잭션 리시트(receipt)를 수신하고, 상기 트랜잭션 리시트를 상기 사용자 단말에 제공할 수 있다.After transmitting the at least one transaction to the blockchain network, the transaction processing support device checks whether the transaction is committed to a sidechain corresponding to the transaction, and confirms whether the transaction is committed to the sidechain. In this case, a transaction receipt generated for the transaction may be received, and the transaction receipt may be provided to the user terminal.

도 3은 다른 일 실시예에 따른 트랜잭션 처리 지원 방법을 나타내는 동작 흐름도이다.3 is an operation flowchart illustrating a transaction processing support method according to another exemplary embodiment.

특히, 도 3은 트랜잭션의 전송 방법, 전송 결과 검사 방법 및 재전송 방법을 나타내는 동작 흐름도이다.In particular, FIG. 3 is an operation flowchart illustrating a method of transmitting a transaction, a method of checking a transmission result, and a method of retransmitting a transaction.

실시예에 따른 트랜잭션 처리 지원 방법을 단계별로 설명하면, 먼저, 트랜잭션 처리 지원 장치는 저장소에 저장된 복수의 트랜잭션들 중 다음 전송 대상을 결정할 수 있다(S310).The transaction processing support method according to the embodiment will be described step-by-step. First, the transaction processing support apparatus may determine a next transmission target among a plurality of transactions stored in the storage (S310).

상기 저장소는 서명된 트랜잭션들이 저장된 서명된 트랜잭션 큐일 수 있다.The storage may be a signed transaction queue in which signed transactions are stored.

트랜잭션 처리 지원 장치는 상기 복수의 트랜잭션들 중 재전송 대상인 트랜잭션들을 우선적으로 상기 다음 전송 대상으로서 결정할 수 있다.The transaction processing support apparatus may preferentially determine, as the next transmission target, among the plurality of transactions, the retransmission target.

트랜잭션 처리 지원 장치는 재전송 대상인 트랜잭션이 존재하지 않는 경우, 상기 트랜잭션 처리 정보를 이용하여 바로 직전에 상기 블록체인 네트워크에 전송한 트랜잭션을 식별하고, 바로 직전에 상기 블록체인 네트워크에 전송한 트랜잭션의 바로 다음에 저장된 트랜잭션을 상기 다음 전송 대상으로 결정할 수 있다.When a transaction to be retransmitted does not exist, the transaction processing support device uses the transaction processing information to identify the transaction sent to the blockchain network immediately before, and immediately following the transaction sent to the blockchain network immediately before. It is possible to determine the transaction stored in the next transmission target.

구체적으로, 트랜잭션 처리 지원 장치는 상기 트랜잭션 처리 정보에 상기 재전송 대상인 트랜잭션의 저장 위치 식별자가 포함되어 있는 경우, 상기 재전송 대상인 트랜잭션을 상기 다음 전송 대상으로 결정하고, 상기 트랜잭션 처리 정보에 상기 재전송 대상인 트랜잭션의 저장 위치 식별자가 포함되어 있지 않은 경우, 상기 복수의 트랜잭션들 중 바로 직전에 상기 블록체인 네트워크에 전송한 트랜잭션의 바로 다음에 저장된 트랜잭션을 상기 다음 전송 대상으로 결정할 수 있다.Specifically, when the transaction processing information includes the storage location identifier of the retransmission target transaction, the transaction processing support device determines the retransmission target transaction as the next transmission target, and includes the retransmission target transaction in the transaction processing information. When the storage location identifier is not included, a transaction stored immediately after a transaction transmitted to the blockchain network immediately before among the plurality of transactions may be determined as the next transmission target.

트랜잭션 처리 지원 장치는 재전송 대상인 트랜잭션을 다음 전송 대상으로서 결정한 경우, 상기 재전송 대상인 트랜잭션을 블록체인 네트워크에 전송한 다음 상기 재전송 대상인 트랜잭션을 바로 직전에 상기 블록체인 네트워크에 전송한 트랜잭션으로 식별할 수 있다. 즉, 트랜잭션 처리 지원 장치는 바로 직전에 재전송 대상인 트랜잭션을 전송한 경우, 다른 재전송 대상인 트랜잭션이 존재하지 않는다면 상기 재전송 대상인 트랜잭션의 바로 다음에 저장된 트랜잭션을 상기 다음 전송 대상으로 결정할 수 있다. 이에 따라 상기 재전송 대상인 트랜잭션의 다음에 저장된 정상적으로 처리된 트랜잭션이 체인에 중복하여 전송될 수 있다. 이 경우, 체인에서 트랜잭션이 중복하여 전송되었음을 인지하고 해당 트랜잭션이 중복하여 저장되지 않도록 할 수 있다.When the transaction processing support device determines the retransmission target transaction as the next transmission target, it transmits the retransmission target transaction to the block chain network, and then identifies the retransmission target transaction as the transaction transmitted to the block chain network immediately before. That is, when the transaction processing support apparatus transmits a retransmission target transaction immediately before, if another retransmission target transaction does not exist, a transaction stored immediately after the retransmission target transaction may be determined as the next transmission target. Accordingly, a normally processed transaction stored next to the retransmission target transaction may be duplicated and transmitted to the chain. In this case, it is possible to recognize that a transaction has been duplicated in the chain and prevent the transaction from being duplicated.

다음으로, 트랜잭션 처리 지원 장치는 저장소에서 다음 전송 대상인 트랜잭션을 포함하는 적어도 하나의 트랜잭션을 로드할 수 있다(S320).Next, the transaction processing support apparatus may load at least one transaction including the next transfer target transaction from the storage ( S320 ).

다음으로, 트랜잭션 처리 지원 장치는 적어도 하나의 트랜잭션을 블록체인 네트워크에 전송할 수 있다(S330).Next, the transaction processing support apparatus may transmit at least one transaction to the block chain network (S330).

트랜잭션 처리 지원 장치는 상기 적어도 하나의 트랜잭션을 상기 블록체인 네트워크에 전송한 후에, 바로 직전에 상기 블록체인 네트워크에 전송한 트랜잭션의 저장 위치 식별자를 포함하도록 트랜잭션 처리 정보를 갱신할 수 있다.After transmitting the at least one transaction to the block chain network, the transaction processing support apparatus may update the transaction processing information to include a storage location identifier of the transaction transmitted to the block chain network immediately before.

상기 트랜잭션 처리 정보는 바로 직전에 전송한 트랜잭션의 저장 위치 식별자, 바로 직전에 커밋된 트랜잭션의 저장 위치 식별자 및 재전송 대상인 트랜잭션의 저장 위치 식별자가 기록될 필드(field)들을 포함할 수 있다.The transaction processing information may include fields in which the storage location identifier of the immediately transmitted transaction, the storage location identifier of the immediately committed transaction, and the storage location identifier of the transaction to be retransmitted are recorded.

트랜잭션 처리 지원 장치는 상기 적어도 하나의 트랜잭션을 상기 블록체인 네트워크에 전송한 후에, 상기 적어도 하나의 트랜잭션의 저장 위치 식별자 및 상기 적어도 하나의 트랜잭션의 전송 시각을 매칭한 데이터를 포함하도록 트랜잭션 처리 시간 정보(PTT, Processed Transaction Timetable)를 갱신할 수 있다.After transmitting the at least one transaction to the blockchain network, the transaction processing support device includes transaction processing time information ( PTT, Processed Transaction Timetable) can be updated.

상기 트랜잭션 처리 시간 정보는 바로 직전에 전송한 트랜잭션의 저장 위치 식별자, 상기 트랜잭션을 고유하게 식별하기 위한 트랜잭션 식별자 및 상기 트랜잭션의 전송 시각이 기록될 필드들을 포함할 수 있다.The transaction processing time information may include a storage location identifier of a transaction transmitted immediately before, a transaction identifier for uniquely identifying the transaction, and fields in which a transmission time of the transaction is recorded.

다음으로, 트랜잭션 처리 지원 장치는 트랜잭션이 블록체인 네트워크에 포함된 블록체인에 커밋되었는지 여부를 확인할 수 있다(S340).Next, the transaction processing support device may check whether the transaction has been committed to the block chain included in the block chain network (S340).

트랜잭션 처리 지원 장치는 상기 트랜잭션 처리 시간 정보를 이용하여 상기 전송 시각으로부터 기설정된 시간이 경과한 트랜잭션을 식별하고, 상기 트랜잭션을 상기 블록체인 네트워크에 전송한 시각으로부터 기설정된 시간이 경과한 후에 상기 트랜잭션의 커밋 여부를 확인할 수 있다.The transaction processing support device identifies a transaction in which a predetermined time has elapsed from the transmission time by using the transaction processing time information, and after a predetermined time elapses from the time when the transaction is transmitted to the block chain network, You can check whether the commit has been made or not.

트랜잭션 처리 지원 장치는 상기 블록체인 네트워크에 저장된 데이터들의 요약 데이터를 이용하여 상기 트랜잭션이 상기 블록체인 네트워크에 반영이 되었는지 여부를 확인할 수 있다.The transaction processing support device may check whether the transaction is reflected in the blockchain network using summary data of data stored in the blockchain network.

상기 요약 데이터는 체인 크롤러(crawler)가 주기적으로 상기 블록체인 네트워크에 질의한 결과로 획득한 상기 블록체인의 상태(state)에 관한 정보를 이용하여 생성한 데이터일 수 있다.The summary data may be data generated using information about the state of the block chain obtained as a result of a chain crawler periodically querying the block chain network.

다음으로, 트랜잭션 처리 지원 장치는 커밋 여부에 기초하여 트랜잭션의 재전송 여부를 결정할 수 있다(S350).Next, the transaction processing support apparatus may determine whether to retransmit the transaction based on whether the transaction is committed ( S350 ).

트랜잭션 처리 지원 장치는 상기 트랜잭션이 상기 블록체인에 커밋되지 않은 경우, 상기 트랜잭션을 상기 재전송 대상으로 결정하고, 상기 재전송 대상인 트랜잭션의 저장 위치 식별자를 더 포함하도록 상기 트랜잭션 처리 정보를 갱신할 수 있다.When the transaction is not committed to the block chain, the transaction processing support apparatus may determine the transaction as the retransmission target, and update the transaction processing information to further include a storage location identifier of the retransmission target transaction.

도 4는 또 다른 일 실시예에 따른 트랜잭션 처리 지원 방법을 나타내는 동작 흐름도이다.4 is an operation flowchart illustrating a method for supporting transaction processing according to another exemplary embodiment.

특히, 도 4는 트랜잭션 처리 지원 장치가 서명되지 않은 트랜잭션을 수신하는 경우의 트랜잭션의 큐잉 방법, 논스 부여 방법, 서명 방법 및 전송 방법을 나타내는 동작 흐름도이다.In particular, FIG. 4 is an operation flowchart illustrating a queuing method, a nonce granting method, a signing method, and a transmission method of a transaction when the transaction processing support apparatus receives an unsigned transaction.

실시예에 따른 트랜잭션 처리 지원 방법을 단계별로 설명하면, 먼저 트랜잭션 처리 지원 장치는 사용자 단말로부터 서명되지 않은 트랜잭션 및 트랜잭션의 처리 요청을 수신할 수 있다(S410).The transaction processing support method according to the embodiment will be described step-by-step. First, the transaction processing support apparatus may receive an unsigned transaction and a transaction processing request from the user terminal ( S410 ).

트랜잭션 처리 지원 장치는 서명되지 않은 트랜잭션을 트랜잭션 큐에 저장하고, 상기 트랜잭션을 수신하기 바로 직전에 수신한 다른 트랜잭션의 서명된 트랜잭션이 서명된 트랜잭션 큐에 저장된 경우, 상기 트랜잭션 큐에서 상기 트랜잭션을 포함하는 적어도 하나의 트랜잭션을 로드할 수 있다.The transaction processing support device stores an unsigned transaction in a transaction queue, and includes the transaction in the transaction queue when a signed transaction of another transaction received immediately before receiving the transaction is stored in the signed transaction queue At least one transaction can be loaded.

트랜잭션 처리 지원 장치는 상기 트랜잭션 큐에서 로드한 서명되지 않은 트랜잭션에 사용자가 소유한 외부 소유 계정에서 송신된 트랜잭션들의 수를 지시하는 논스(nonce)를 부여할 수 있다.The transaction processing support apparatus may give a nonce indicating the number of transactions transmitted from an externally owned account owned by the user to the unsigned transaction loaded from the transaction queue.

이를 위해, 트랜잭션 처리 지원 장치는 논스 정보를 이용하여 상기 사용자 계정에서 송신된 트랜잭션들의 수를 식별할 수 있다.To this end, the transaction processing support apparatus may identify the number of transactions transmitted from the user account by using the nonce information.

구체적으로, 트랜잭션 처리 지원 장치는 상기 논스 정보에 상기 사용자 계정의 식별자에 대응하는 복수의 논스들이 존재하는 경우, 상기 논스들 중 상기 사용자 계정이 사용되는 사이드체인에 대응하는 논스를 상기 사용자 계정에서 송신된 트랜잭션들의 수로 식별할 수 있다.Specifically, when a plurality of nonces corresponding to the identifier of the user account exist in the nonce information, the transaction processing support apparatus transmits from the user account a nonce corresponding to a sidechain in which the user account is used among the nonces. It can be identified by the number of transactions that have been made.

트랜잭션 처리 지원 장치는 상기 사용자 계정에 대응하는 논스 정보가 존재하지 않는 경우, 상기 블록체인 네트워크에서 상기 사용자 계정으로부터 송신된 트랜잭션들을 카운트하여 상기 사용자 계정에 대응하는 논스 정보를 생성할 수 있다.When nonce information corresponding to the user account does not exist, the transaction processing support device may generate nonce information corresponding to the user account by counting transactions transmitted from the user account in the blockchain network.

상기 논스 정보는 서명된 트랜잭션 큐에 저장된 트랜잭션을 송신한 외부 소유 계정의 식별자 및 상기 외부 소유 계정에서 송신된 트랜잭션들의 수(논스)를 포함할 수 있다.The nonce information may include an identifier of an externally owned account that transmitted a transaction stored in a signed transaction queue and the number of transactions (nonce) transmitted from the externally owned account.

트랜잭션 처리 지원 장치는 상기 트랜잭션의 서명을 생성하고, 상기 트랜잭션에 상기 서명을 추가하여 서명된 트랜잭션을 생성할 수 있다(S420).The transaction processing support apparatus may generate a signature of the transaction, and may generate a signed transaction by adding the signature to the transaction ( S420 ).

트랜잭션 처리 지원 장치는 상기 사용자 단말의 사용자가 소유한 외부 소유 계정(EOA, External Owned Account)에 대응하여 저장된 개인키(private key)를 이용하여 상기 트랜잭션의 서명을 생성할 수 있다. 이를 위해, 상기 외부 소유 계정의 개인키는 트랜잭션 처리 지원 장치에 의해 관리될 수 있다.The transaction processing support apparatus may generate a signature of the transaction by using a private key stored in response to an External Owned Account (EOA) owned by the user of the user terminal. To this end, the private key of the externally owned account may be managed by the transaction processing support device.

다음으로, 트랜잭션 처리 지원 장치는 서명된 트랜잭션을 큐 구조의 저장소에 저장할 수 있다(S430).Next, the transaction processing support apparatus may store the signed transaction in the storage of the queue structure (S430).

여기서, 저장소는 서명된 트랜잭션 큐일 수 있다.Here, the storage may be a signed transaction queue.

트랜잭션 처리 지원 장치는 상기 서명된 트랜잭션을 서명된 트랜잭션 큐에 저장한 후에, 상기 외부 소유 계정에 대응하는 논스 정보를 갱신할 수 있다.After storing the signed transaction in the signed transaction queue, the transaction processing support apparatus may update nonce information corresponding to the externally owned account.

다음으로, 트랜잭션 처리 지원 장치는 저장소에서 서명된 트랜잭션을 포함하는 적어도 하나의 서명된 트랜잭션을 로드할 수 있다(S440).Next, the transaction processing support apparatus may load at least one signed transaction including the signed transaction from the storage (S440).

다음으로, 트랜잭션 처리 지원 장치는 상기 적어도 하나의 서명된 트랜잭션의 상기 저장소 상의 위치의 순서대로 상기 적어도 하나의 서명된 트랜잭션을 블록체인 네트워크에 전송할 수 있다(S450).Next, the transaction processing support apparatus may transmit the at least one signed transaction to the blockchain network in the order of the location of the at least one signed transaction on the storage (S450).

상기 서명된 트랜잭션을 로드하는 단계와 블록체인 네트워크에 전송하는 단계에 관한 설명은 상술한 도 2의 트랜잭션을 로드하는 단계와 블록체인 네트워크에 전송하는 단계에 대한 설명과 중복되므로 생략하기로 한다.The description of the step of loading the signed transaction and the step of transmitting to the block chain network overlaps with the description of the step of loading the transaction of FIG. 2 and the step of transmitting it to the block chain network, so it will be omitted.

도 5는 실시예에 따른 비동기적 트랜잭션 처리 아키텍처를 설명하기 위한 참고도이다.5 is a reference diagram for explaining an asynchronous transaction processing architecture according to an embodiment.

도 5를 참조하면, 비동기적 트랜잭션 처리 아키텍처는 사용자 단말(110), 트랜잭션 처리 지원 장치(120), 블록체인 네트워크(130), 트랜잭션 저장소(140) 및 영구 저장소(150)를 포함할 수 있다.Referring to FIG. 5 , the asynchronous transaction processing architecture may include a user terminal 110 , a transaction processing support device 120 , a blockchain network 130 , a transaction storage 140 , and a persistent storage 150 .

사용자 단말(110)은 사이드체인을 이용하며, 이를 기반으로 하는 트랜잭션 처리를 요청하는 주체를 의미할 수 있다.The user terminal 110 uses a sidechain, and may mean a subject requesting transaction processing based on it.

트랜잭션 처리 지원 장치(120)는 트랜잭션 처리를 지원하기 위한 모듈들을 포함하는 서버 레이어(server layer)로서, 트랜잭션 리시버(121), 논스 워커(122), 지갑 API(123), 트랜잭션 센더(124), 체인 크롤러(125) 및 트랜잭션 체커(126)를 포함할 수 있다.The transaction processing support device 120 is a server layer including modules for supporting transaction processing, a transaction receiver 121, a nonce worker 122, a wallet API 123, a transaction sender 124, It may include a chain crawler 125 and a transaction checker 126 .

트랜잭션 리시버(121)는 트랜잭션 응용 프로그램 프로그래밍 인터페이스(API, Application Programming Interface)로서 사용자 단말로부터 트랜잭션 처리 요청을 수신하고, 트랜잭션 처리 결과를 사용자 단말에 전송할 수 있다.The transaction receiver 121 may receive a transaction processing request from a user terminal as a transaction application programming interface (API) and transmit a transaction processing result to the user terminal.

트랜잭션 리시버(121)는 트랜잭션의 비동기적 처리를 위해, 사용자 단말이 트랜잭션 처리 요청 시 트랜잭션을 트랜잭션 저장소(140)에 임시 저장하고, 트랜잭션 처리 요청에 대한 응답으로 트랜잭션에 대응하는 트랜잭션 식별자를 먼저 리턴(return)할 수 있다.The transaction receiver 121 temporarily stores a transaction in the transaction storage 140 when a user terminal requests a transaction processing for asynchronous processing of the transaction, and returns a transaction identifier corresponding to the transaction in response to the transaction processing request ( return) can be

트랜잭션 저장소에 임시 저장된 트랜잭션이 처리되면, 콜백(callback) 함수를 통해 트랜잭션 처리 결과에 대응하는 트랜잭션 리시트를 사용자 단말에 전송하거나, 사용자 단말의 트랜잭션 식별자를 포함하는 트랜잭션 처리 결과 질의 요청에 대한 응답으로 상기 트랜잭션 리시트를 사용자 단말에 전송할 수 있다.When a transaction temporarily stored in the transaction storage is processed, a transaction receipt corresponding to the transaction processing result is transmitted to the user terminal through a callback function, or in response to a transaction processing result query request including the transaction identifier of the user terminal The transaction receipt may be transmitted to the user terminal.

즉, 사용자 단말의 트랜잭션 처리 요청에 대한 응답으로 트랜잭션이 처리 완료될 때까지 대기하지 않고 트랜잭션 식별자를 바로 리턴함으로써 빠르게 응답할 수 있다. 또한, 사용자 단말로부터 체인에서 동시에 처리가능한 트랜잭션 수보다 많은 트랜잭션 처리 요청이 수신되는 경우에도 먼저 트랜잭션 처리 요청들 각각에 대한 응답으로 트랜잭션 식별자를 리턴하고, 실제 트랜잭션의 처리는 체인의 성능에 맞추어 수행함으로써 체인의 과부하를 방지할 수 있다.That is, in response to the transaction processing request of the user terminal, it is possible to respond quickly by directly returning the transaction identifier without waiting for the transaction to be processed. In addition, even when more transaction processing requests are received from the user terminal than the number of transactions that can be simultaneously processed in the chain, a transaction identifier is first returned in response to each of the transaction processing requests, and the actual transaction processing is performed according to the performance of the chain. Chain overload can be prevented.

트랜잭션 리시버(121)는 트랜잭션의 서명에 사용되는 개인키(private key)를 직접 관리하는 사용자의 사용자 단말로부터 상기 개인키를 이용하여 서명된 트랜잭션을 수신할 수 있으며, 상기 개인키를 트랜잭션 처리 지원 장치가 관리하는 사용자의 사용자 단말로부터 서명되지 않은 트랜잭션을 수신할 수도 있다.The transaction receiver 121 may receive a signed transaction using the private key from a user terminal of a user who directly manages a private key used for signing a transaction, and uses the private key as a transaction processing support device An unsigned transaction may be received from a user terminal of a user managed by .

트랜잭션 리시버(121)는 서명되지 않은 트랜잭션을 수신하는 경우 이를 트랜잭션 큐(141)에 저장할 수 있으며, 서명된 트랜잭션을 수신하는 경우 이를 서명된 트랜잭션 큐(142)에 저장할 수 있다.When receiving an unsigned transaction, the transaction receiver 121 may store it in the transaction queue 141 , and when receiving a signed transaction, store it in the signed transaction queue 142 .

논스 워커(122)는 트랜잭션 저장소(140)에 저장된 트랜잭션에 대한 논스를 관리하고, 지갑 API(123)를 호출하여 트랜잭션들에 대해 서명을 수행할 수 있다.The nonce worker 122 may manage a nonce for a transaction stored in the transaction storage 140 and perform a signature on the transactions by calling the wallet API 123 .

특히, 논스 워커(122)는 트랜잭션 큐(141)에 저장된 서명되지 않은 트랜잭션에 논스를 부여하고, 지갑 API(123)를 호출하여 서명을 수행한 뒤, 서명된 트랜잭션을 서명된 트랜잭션 큐(142)에 저장할 수 있다.In particular, the nonce worker 122 grants a nonce to an unsigned transaction stored in the transaction queue 141, calls the wallet API 123 to perform a signature, and then transfers the signed transaction to the signed transaction queue 142. can be stored in

지갑 API(123)는 트랜잭션 처리를 위해 지갑 정보가 필요하거나, 서명되지 않은 트랜잭션에 대해 서명을 수행하고, 서명된 트랜잭션을 리턴하기 위한 모듈로서, 논스 워커(122)의 호출에 따라 동작할 수 있다.The wallet API 123 is a module that requires wallet information for transaction processing, performs a signature on an unsigned transaction, and returns a signed transaction, and may operate according to the call of the nonce worker 122 . .

논스 워커(122)의 지갑 API(123)의 호출에 따라 병렬적으로 동작하는 인스턴스(instance)들이 생성될 수 있으며, 상기 인스턴스들을 통해 복수의 트랜잭션들에 대해 병렬적으로 서명이 수행될 수 있다.In response to the call of the wallet API 123 of the nonce worker 122, instances operating in parallel may be created, and a plurality of transactions may be signed in parallel through the instances.

트랜잭션 센더(124)는 트랜잭션 저장소(140)에 저장된 트랜잭션을 로드하여, 체인에 트랜잭션을 전송할 수 있다.The transaction sender 124 may load the transaction stored in the transaction storage 140 and send the transaction to the chain.

특히, 트랜잭션 센더(124)는 서명된 트랜잭션 큐(142)에 저장된 서명된 트랜잭션을 로드하고, 이를 블록체인 네트워크(130)에 포함된 체인들 중 어느 하나의 체인에 전송할 수 있다.In particular, the transaction sender 124 may load a signed transaction stored in the signed transaction queue 142 and transmit it to any one of the chains included in the blockchain network 130 .

트랜잭션 센더(124)는 체인의 처리 성능에 따라 설정된 전송 주기에 맞추어 트랜잭션을 체인에 전송할 수 있다. 이를 통해, 사용자 단말로부터 체인에서 동시에 처리가능한 트랜잭션 수보다 많은 트랜잭션 처리 요청이 수신되는 경우에도 체인의 성능에 맞추어 트랜잭션의 처리 속도를 제어함으로써 체인의 과부하를 방지할 수 있다.The transaction sender 124 may transmit a transaction to the chain according to a transmission period set according to the processing performance of the chain. Through this, even when more transaction processing requests are received from the user terminal than the number of transactions that can be simultaneously processed in the chain, the chain overload can be prevented by controlling the transaction processing speed according to the performance of the chain.

트랜잭션 센더(124) 및 트랜잭션 체커(126)는 공통된 트랜잭션 처리 정보를 이용하며, 트랜잭션 센더(124)는 트랜잭션 체커(126)를 통해 정상적으로 처리되지 않은 것으로 확인된 트랜잭션을 체인에 재전송할 수 있다.The transaction sender 124 and the transaction checker 126 use common transaction processing information, and the transaction sender 124 may retransmit a transaction identified as not being normally processed through the transaction checker 126 to the chain.

체인 크롤러(125)는 체인에 커밋된 데이터들을 가공하여 영구 저장소에 저장할 수 있다.The chain crawler 125 may process data committed to the chain and store it in the permanent storage.

상기 영구 저장소에는 사용자 단말로부터 수신된 트랜잭션의 처리 결과에 대응하는 트랜잭션 리시트가 저장될 수 있으며, 트랜잭션 리시버(121)는 상기 영구 저장소에 저장된 상기 트랜잭션 리시트를 콜백 함수 또는 사용자 단말의 질의 요청에 대한 응답으로 사용자 단말에 전송할 수 있다.A transaction receipt corresponding to the processing result of the transaction received from the user terminal may be stored in the permanent storage, and the transaction receiver 121 uses the transaction receipt stored in the persistent storage in a callback function or a query request of the user terminal. In response, it may be transmitted to the user terminal.

트랜잭션 체커(126)는 트랜잭션 센더(124)에 의해 체인에 전송된 트랜잭션이 정상적으로 처리되었는지 트랜잭션 리시트를 질의하고, 트랜잭션 리시트가 기 설정된 시간을 초과하여 발행되지 않을 경우, 해당 트랜잭션이 재전송될 수 있도록 트랜잭션 처리 정보를 관리할 수 있다.The transaction checker 126 queries whether the transaction sent to the chain by the transaction sender 124 has been normally processed, and if the transaction receipt is not issued for more than a preset time, the transaction may be retransmitted. transaction processing information can be managed.

트랜잭션 체커(126)는 트랜잭션 처리 시간 정보 및 트랜잭션 처리 정보를 이용하여 상기 트랜잭션 처리 정보의 리셋 오프셋을 설정하여 재전송 대상을 지시하고, 트랜잭센 센더(124)는 트랜잭션 전송 대상을 결정함에 있어, 트랜잭션 처리 정보의 리셋 오프셋을 우선적으로 확인할 수 있다.The transaction checker 126 sets a reset offset of the transaction processing information using the transaction processing time information and the transaction processing information to indicate the retransmission target, and the transaxen sender 124 determines the transaction transmission target, The reset offset of the information can be checked preferentially.

블록체인 네트워크(130)는 사이드체인들이 동작하도록 하기 위한 모듈들을 포함하는 체인 레이어(chain layer)로서, 체인 라우터(chain router, 131) 및 복수의 사이드체인(sidechain, 133)들을 포함할 수 있다.The blockchain network 130 is a chain layer including modules for operating side chains, and may include a chain router 131 and a plurality of sidechains 133 .

체인 라우터(131)는 사이드체인과 블록체인 네트워크(130)에 참여한 서버들로서, 노드(node, 132)들의 위치를 추출하고, 그 위치에 대한 최적 경로를 지정하며, 최적 경로를 따라 트랜잭션을 전파할 수 있다.The chain router 131 is a server participating in the sidechain and the blockchain network 130, which extracts the location of the nodes 132, designates an optimal path to the location, and propagates the transaction along the optimal path. can

하나의 사이드체인은 복수의 노드들에 의해 운영되며, 하나의 노드는 복수의 사이드체인들의 운영에 관여할 수 있다. 즉, 사이드체인들과 노드들은 다대다 관계일 수 있다.One sidechain is operated by a plurality of nodes, and one node can be involved in the operation of a plurality of sidechains. That is, sidechains and nodes can have a many-to-many relationship.

트랜잭션 저장소(140)는 트랜잭션 데이터를 담는 큐(queue) 구조의 저장소일 수 있다. 여기서, 큐는 대용량의 실시간 로그 처리에 특화된 아키텍처의 분산 메시징 큐일 수 있다.The transaction storage 140 may be a storage of a queue structure containing transaction data. Here, the queue may be a distributed messaging queue of an architecture specialized for processing large-capacity real-time logs.

트랜잭션 저장소(140)는 블록체인 네트워크에 포함된 복수의 사이드체인들에 일대일 대응하는 복수의 토픽(topic)들로 구성되고, 상기 토픽들 각각은 분산 저장을 위한 복수의 파티션(partition)들을 포함하는 구조를 가질 수 있다.The transaction storage 140 is composed of a plurality of topics corresponding one-to-one to a plurality of sidechains included in the blockchain network, and each of the topics includes a plurality of partitions for distributed storage. can have a structure.

상기 토픽들 각각의 파티션 수는 토픽들 각각에 대응하는 사이드체인에 대응하는 외부 소유 계정 수에 기초하여 토픽들 별로 다르게 설정될 수 있다. 예컨대, 제1 토픽에 대응하는 사이드체인에 대응하는 외부 소유 계정 수가 제2 토픽에 대응하는 사이드체인에 대응하는 외부 소유 계정 수보다 큰 경우, 상기 제1 토픽의 파티션 수는 상기 제2 토픽의 파티션 수보다 큰 값으로 설정될 수 있다.The number of partitions for each of the topics may be set differently for each topic based on the number of externally owned accounts corresponding to a sidechain corresponding to each of the topics. For example, when the number of externally owned accounts corresponding to the sidechain corresponding to the first topic is greater than the number of externally owned accounts corresponding to the sidechain corresponding to the second topic, the number of partitions of the first topic is the number of partitions of the second topic It can be set to a value greater than the number.

트랜잭션 저장소(140)는 트랜잭션 큐(141) 및 서명된 트랜잭션 큐(142)를 포함할 수 있다.The transaction store 140 may include a transaction queue 141 and a signed transaction queue 142 .

트랜잭션 큐(141)는 아직 서명되지 않은 트랜잭션들이 저장되는 큐이고, 서명된 트랜잭션 큐(142)는 서명된 트랜잭션들이 저장되는 큐일 수 있다.The transaction queue 141 may be a queue in which unsigned transactions are stored, and the signed transaction queue 142 may be a queue in which signed transactions are stored.

예컨대, 트랜잭션 큐(141)에는 트랜잭션 리시버(121)에 의해 수신된 서명되지 않은 트랜잭션이 저장될 수 있으며, 서명된 트랜잭션 큐(142)는 트랜잭션 리시버(121)에 의해 수신된 서명된 트랜잭션 또는 논스 워커(122)에 의해 서명이 수행된 트랜잭션이 저장될 수 있다.For example, the transaction queue 141 may store an unsigned transaction received by the transaction receiver 121 , and the signed transaction queue 142 may store a signed transaction or a nonce worker received by the transaction receiver 121 . The transaction in which the signature is performed by 122 may be stored.

영구 저장소(150)는 블록체인 네트워크(130)에 포함된 사이드체인들에 저장된 데이터의 가공된 데이터가 저장되는 저장소일 수 있다. The permanent storage 150 may be a storage in which processed data of data stored in sidechains included in the blockchain network 130 is stored.

영구 저장소(150)는 키-값(key-value) 및 문서 데이터 구조를 지원하는 NoSQL 데이터베이스, 키와 값들의 관계를 표 형태로 저장한 관계형 데이터베이스(relational DB)를 포함할 수 있다.The persistent storage 150 may include a NoSQL database that supports key-value and document data structures, and a relational DB that stores relationships between keys and values in a table form.

도 6은 실시예에 따른 트랜잭션의 큐잉 구조를 나타내는 참고도이다.6 is a reference diagram illustrating a queuing structure of a transaction according to an embodiment.

특히, 도 6은 트랜잭션 처리 지원 장치가 서명되지 않은 트랜잭션을 수신하는 경우의 트랜잭션의 큐잉 구조를 나타내는 참고도이다.In particular, FIG. 6 is a reference diagram illustrating a queuing structure of a transaction when the transaction processing support apparatus receives an unsigned transaction.

도 6을 참조하면, 사용자 단말이 디앱(DApp, Decentralized Application)을 통해 트랜잭션을 전송하는 경우, 트랜잭션 리시버가 이를 트랜잭션 큐에 저장할 수 있다.Referring to FIG. 6 , when the user terminal transmits a transaction through a DApp (Decentralized Application), the transaction receiver may store it in a transaction queue.

트랜잭션 리시버는 수신한 트랜잭션들 각각의 커밋 대상이 되는 사이드체인을 식별하고, 상기 트랜잭션들 각각을 상기 식별된 사이드체인에 대응하는 토픽에 저장할 수 있다.The transaction receiver may identify a sidechain to be committed of each of the received transactions, and store each of the transactions in a topic corresponding to the identified sidechain.

트랜잭션 큐에 저장된 트랜잭션들은 선입선출 방식으로 논스 워커에 의해 논스가 부여되고 서명이 수행되어 서명된 트랜잭션 큐에 저장될 수 있다.Transactions stored in the transaction queue may be stored in the signed transaction queue by being given a nonce and signing by the nonce worker in a first-in-first-out manner.

비록 도 6에는 도시되지 아니하였으나, 트랜잭션 처리 지원 장치가 서명된 트랜잭션을 수신하는 경우 트랜잭션 리시버는 서명된 트랜잭션을 서명된 트랜잭션 큐에 저장할 수 있고, 이 경우 트랜잭션을 트랜잭션 큐에 저장하는 과정, 논스를 부여하는 과정 및 서명을 수행하는 과정은 스킵(skip)될 수 있다.Although not shown in FIG. 6 , when the transaction processing support device receives the signed transaction, the transaction receiver may store the signed transaction in the signed transaction queue. In this case, the process of storing the transaction in the transaction queue, the nonce A process of granting and a process of performing a signature may be skipped.

서명된 트랜잭션 큐에 저장된 트랜잭션들은 선입선출 방식으로 트랜잭션 센더에 의해 로드되고 체인에 전송될 수 있다.Transactions stored in the signed transaction queue can be loaded by the transaction sender and sent to the chain in a first-in-first-out manner.

체인에 커밋된 데이터는 체인 크롤러의 주기적인 쿼럼 읽기(read quorum) 수행을 통해 획득되며, 체인 크롤러에 의해 획득된 블록, 트랜잭션 또는 트랜잭션 리시트와 관련된 정보는 영구 저장소에 저장될 수 있다.Data committed to the chain is obtained through periodic read quorum by the chain crawler, and information related to blocks, transactions, or transaction receipts obtained by the chain crawler can be stored in persistent storage.

도 7은 실시예에 따른 트랜잭션의 논스 부여 및 서명 수행 방법을 설명하기 위한 참고도이다.7 is a reference diagram for explaining a method for giving a nonce and performing a signature of a transaction according to an embodiment.

특히, 도 7은 트랜잭션 처리 지원 장치가 서명되지 않은 트랜잭션을 수신하는 경우의 논스 부여 및 서명 수행 방법을 설명하기 위한 참고도이다.In particular, FIG. 7 is a reference diagram for explaining a method for giving a nonce and performing a signature when the transaction processing support apparatus receives an unsigned transaction.

도 7을 참조하면, 먼저 논스 워커는 트랜잭션 리시버에 의해 트랜잭션 큐에 저장된 서명되지 않은 트랜잭션을 로드할 수 있다.Referring to FIG. 7 , first, the nonce worker may load an unsigned transaction stored in the transaction queue by the transaction receiver.

논스 워커는 트랜잭션 큐에서 한번에 복수 개의 서명되지 않은 트랜잭션들을 로드할 수 있다. 예컨대, 논스 워커는 트랜잭션 큐에서 3개의 서명되지 않은 트랜잭션들을 로드할 수 있으며, 또한 논스 워커가 한번에 로드할 수 있는 트랜잭션의 수는 3이 아닌 다른 값으로 설정될 수 있다.The nonce worker can load multiple unsigned transactions at once from the transaction queue. For example, the nonce worker can load 3 unsigned transactions from the transaction queue, and the number of transactions that the nonce worker can load at one time can be set to a value other than 3.

도 7에 도시된 트랜잭션 큐 및 서명된 트랜잭션 큐에 포함된 블록은 하나의 트랜잭션에 대응하며, 각 블록들에 표기된 "A0", "A1", "B0" 등의 부호 중 "A", "B"는 서로 다른 외부 소유 계정들 각각에 대응하며, "0", "1"은 각 외부 소유 계정의 트랜잭션들 각각에 대응할 수 있다.Blocks included in the transaction queue and the signed transaction queue shown in FIG. 7 correspond to one transaction, and among the signs "A0", "A1", "B0", etc. marked in each block, "A", "B" " may correspond to each of different externally owned accounts, and "0" and "1" may correspond to each of the transactions of each externally owned account.

즉, 도 7에 도시된 트랜잭션 큐는 제1 외부 소유 계정의 제1 트랜잭션(A0), 제1 외부 소유 계정의 제2 트랜잭션(A1), 제2 외부 소유 계정의 제1 트랜잭션(B0), 제1 외부 소유 계정의 제3 트랜잭션(A2), 제1 외부 소유 계정의 제1 트랜잭션(A3) 및 제2 외부 소유 계정의 제2 트랜잭션(B1)이 순서대로 저장된 큐에 대응할 수 있다.That is, the transaction queue shown in FIG. 7 includes a first transaction (A0) of a first externally owned account, a second transaction (A1) of a first externally owned account, a first transaction (B0) of a second externally owned account, and a first transaction (B0) of the first externally owned account. The third transaction A2 of the first externally owned account, the first transaction A3 of the first externally owned account, and the second transaction B1 of the second externally owned account may correspond to the stored queue in order.

큐 상에서의 저장 위치를 나타내는 오프셋(offset)은 0에서부터 시작하여, 큐 상에 데이터가 추가될 때마다 증가하는 값일 수 있다.An offset indicating a storage location on the queue may be a value starting from 0 and increasing each time data is added to the queue.

다음으로, 논스 워커는 트랜잭션 처리 정보, 논스 정보를 이용하여 로드된 트랜잭션에 부여할 논스 값을 결정할 수 있다.Next, the nonce worker may determine a nonce value to be given to the loaded transaction by using the transaction processing information and the nonce information.

트랜잭션 처리 정보 및 논스 정보는 논스 워커가 관리하는 데이터를 구조적으로 표현한 것이다.Transaction processing information and nonce information are structural representations of data managed by a nonce worker.

트랜잭션 처리 정보는 적어도 5개의 필드를 포함할 수 있으며, 상기 5개의 필드는 트랜잭션의 식별 정보(ID), 트랜잭션이 저장된 토픽 식별 정보(chain ID), 트랜잭션을 큐에서 로드한 컨슈머 식별 정보(consumer ID), 트랜잭션이 저장된 파티션 식별 정보(partition) 및 트랜잭션의 큐 상에서의 저장 위치 정보(offset)일 수 있다.The transaction processing information may include at least five fields, wherein the five fields are transaction identification information (ID), topic identification information in which the transaction is stored (chain ID), and consumer identification information (consumer ID) that loaded the transaction from the queue. ), partition identification information (partition) where the transaction is stored, and storage location information (offset) on the queue of the transaction.

논스 정보는 적어도 3개의 필드를 포함할 수 있으며, 상기 3개의 필드는 트랜잭션의 식별 정보(ref ID), 트랜잭션에 대응하는 외부 소유 계정의 식별 정보(EOA), 외부 소유 계정의 논스 값(nonce)일 수 있다. 상기 트랜잭션의 식별 정보는 트랜잭션 처리 정보에 포함된 트랜잭션의 식별 정보를 참조하는 값일 수 있다. 상기 트랜잭션의 식별 정보는 어느 둘 이상의 체인에 동일한 외부 소유 계정들의 식별 정보가 존재하는 경우에 상기 외부 소유 계정들을 구별하기 위해 사용될 수 있다.The nonce information may include at least three fields, wherein the three fields are transaction identification information (ref ID), externally owned account identification information (EOA) corresponding to the transaction, and externally owned account nonce value (nonce). can be The transaction identification information may be a value referring to transaction identification information included in the transaction processing information. The identification information of the transaction may be used to distinguish the externally owned accounts when identification information of the same externally owned accounts exists in any two or more chains.

로드된 트랜잭션에 대응하는 외부 소유 계정의 논스 값(또는 논스 정보)이 메모리에 저장되어 있지 않은 경우, 논스 워커는 체인에 상기 위부 소유 계정의 논스 값을 결정하기 위한 질의를 하고, 질의에 대한 응답에 기초하여 논스 값을 결정할 수 있다.If the nonce value (or nonce information) of the externally owned account corresponding to the loaded transaction is not stored in the memory, the nonce worker makes a query to the chain to determine the nonce value of the forged owned account, and responds to the query A nonce value may be determined based on .

다음으로, 논스 워커는 로드된 트랜잭션에 논스를 부여하고, 논스가 부여된 트랜잭션이 반복 처리되지 않도록 논스가 부여된 트랜잭션의 정보를 트랜잭션 처리 정보에 반영할 수 있다.Next, the nonce worker may give a nonce to the loaded transaction, and reflect the information of the nonce-applied transaction to the transaction processing information so that the nonce-applied transaction is not repeatedly processed.

다음으로, 논스 워커는 지갑 API를 호출하여 논스가 부여된 트랜잭션에 대해 서명을 수행할 수 있다.Next, the nonce worker can call the wallet API to sign the transaction to which the nonce is granted.

다음으로, 논스 워커는 서명된 트랜잭션을 서명된 트랜잭션 큐에 저장할 수 있다.Next, the nonce worker can store the signed transaction in the signed transaction queue.

도 7에 도시된 서명된 트랜잭션 큐에 포함된 "A0'"가 표기된 블록은 트랜잭션 큐에 포함된 "A0"가 표기된 블록에 대응하는 트랜잭션의 서명된 트랜잭션에 대응할 수 있다.A block marked "A0" included in the signed transaction queue shown in FIG. 7 may correspond to a signed transaction of a transaction corresponding to a block marked "A0" included in the transaction queue.

논스 워커는 한번에 복수 개의 서명된 트랜잭션들을 서명된 트랜잭션 큐에 저장할 수 있다. 예컨대, 논스 워커는 3개의 서명된 트랜잭션들을 저장할 수 있으며, 또한 논스 워커가 한번에 저장할 수 있는 트랜잭션의 수는 3이 아닌 다른 값으로 설정될 수 있다.The nonce worker can store multiple signed transactions at once in the signed transaction queue. For example, the nonce worker may store three signed transactions, and the number of transactions that the nonce worker can store at once may be set to a value other than three.

다음으로, 논스 워커는 서명된 트랜잭션 큐에 저장한 서명된 트랜잭션의 정보를 논스 정보에 반영할 수 있다.Next, the nonce worker may reflect the signed transaction information stored in the signed transaction queue to the nonce information.

도 8은 실시예에 따른 트랜잭션 전송 방법을 설명하기 위한 참고도이다.8 is a reference diagram for explaining a transaction transmission method according to an embodiment.

특히, 도 8은 트랜잭션 처리 지원 장치가 서명된 트랜잭션을 체인에 전송하는 방법을 설명하기 위한 참고도이다In particular, FIG. 8 is a reference diagram for explaining a method in which the transaction processing support device transmits a signed transaction to the chain.

도 8을 참조하면, 먼저 트랜잭션 센더는 트랜잭션 처리 정보를 이용하여 서명된 트랜잭션 큐에서 전송 대상을 결정할 수 있다.Referring to FIG. 8 , first, the transaction sender may determine a transmission target in a signed transaction queue using transaction processing information.

도 8에 도시된 서명된 트랜잭션 큐는 제1 외부 소유 계정의 제1 서명된 트랜잭션(A0'), 제1 외부 소유 계정의 제2 트랜잭션(A1') 및 제2 외부 소유 계정의 제1 트랜잭션(B0')이 순서대로 저장된 큐에 대응할 수 있다.The signed transaction queue shown in Fig. 8 includes a first signed transaction (A0') of a first externally owned account, a second transaction (A1') of a first externally owned account, and a first transaction (A1') of a second externally owned account ( B0') may correspond to the stored queues in this order.

트랜잭션 처리 정보는 트랜잭션 센더 및 트랜젝션 체커가 공동으로 관리하는 데이터를 구조적으로 표현한 것이다.Transaction processing information is a structural representation of data jointly managed by a transaction sender and a transaction checker.

여기서, 트랜잭션 센더 및 트랜젝션 체커가 공동으로 관리하는 트랜잭션 처리 정보는 논스 워커가 관리하는 트랜잭션 처리 정보와 서로 다른 데이터를 포함할 수 있다.Here, the transaction processing information jointly managed by the transaction sender and the transaction checker may include data different from the transaction processing information managed by the nonce worker.

트랜잭션 센더 및 트랜젝션 체커가 공동으로 관리하는 트랜잭션 처리 정보는 적어도 7개의 필드를 포함할 수 있으며, 상기 7개의 필드는 트랜잭션의 식별 정보(ID), 트랜잭션이 저장된 토픽 식별 정보(chain ID), 트랜잭션을 큐에서 로드한 컨슈머 식별 정보(consumer ID), 트랜잭션이 저장된 파티션 식별 정보(partition), 트랜잭션의 큐 상에서의 저장 위치 정보(offset), 최종 오프셋(final offset) 및 리셋 오프셋(reset offset)일 수 있다.The transaction processing information jointly managed by the transaction sender and the transaction checker may include at least seven fields, wherein the seven fields include transaction identification information (ID), transaction storage topic identification information (chain ID), and transaction information. It may be consumer identification information loaded from the queue (consumer ID), partition identification information in which the transaction is stored (partition), storage location information on the queue of the transaction (offset), final offset and reset offset. .

즉, 트랜잭션 센더 및 트랜젝션 체커가 공동으로 관리하는 트랜잭션 처리 정보는 논스 워커가 관리하는 트랜잭션 처리 정보에 포함된 적어도 5개의 필드 외에 최종 오프셋(final offset) 및 리셋 오프셋(reset offset)의 두 필드를 더 포함한다.In other words, the transaction processing information jointly managed by the transaction sender and the transaction checker includes at least five fields included in the transaction processing information managed by the nonce worker, plus two fields, a final offset and a reset offset. include

*최종 오프셋은 바로 직전에 블록에 커밋된 트랜잭션의 상기 서명된 트랜잭션 상의 위치를 나타내는 정보이고, 리셋 오프셋은 트랜잭션이 정상적으로 처리되지 않아 재전송 대상인 트랜잭션의 상기 서명된 트랜잭션 상의 위치를 나타내는 정보일 수 있다. 트랜잭션이 체인에 전송되더라도 해당 트랜잭션이 마이닝(mining)되어 블록에 저장되지 않을 수 있기 때문에, 이와 같이 정상적으로 처리되지 않은 트랜잭션을 리커버링하기 위해 최종 오프셋과 리셋 오프셋이 이용될 수 있다.* The final offset is information indicating the location on the signed transaction of the transaction committed to the block immediately before, and the reset offset may be information indicating the location on the signed transaction of the transaction to be retransmitted because the transaction is not normally processed. Even if a transaction is transmitted to the chain, the final offset and reset offset may be used to recover a transaction that is not normally processed as described above because the transaction may not be mined and stored in a block.

트랜잭션 센더는 트랜잭션 처리 정보의 리셋 오프셋 필드에 값이 설정되어 있는 경우 리셋 오프셋에 대응하는 위치의 트랜잭션을 전송 대상으로 결정하고, 리셋 오프셋 필드에 값이 설정되어 있지 않은 경우 오프셋에 대응하는 위치의 트랜잭션을 전송 대상으로 결정할 수 있다.When a value is set in the reset offset field of the transaction processing information, the transaction sender determines the transaction at the position corresponding to the reset offset as the transmission target, and when the value is not set in the reset offset field, the transaction at the position corresponding to the offset can be determined as the transmission target.

다음으로, 트랜잭션 센더는 서명된 트랜잭션 큐에 저장된 트랜잭션들에 대하여 상기 전송 대상을 포함하는 적어도 하나의 트랜잭션을 로드할 수 있다.Next, the transaction sender may load at least one transaction including the transmission target for the transactions stored in the signed transaction queue.

즉, 트랜잭션 센더는 한번에 복수 개의 서명된 트랜잭션들을 로드할 수 있다. 예컨대, 트랜잭션 센더는 서명된 트랜잭션 큐에서 3개의 서명된 트랜잭션들을 로드할 수 있으며, 또한 트랜잭션 센더가 한번에 로드할 수 있는 서명된 트랜잭션의 수는 3이 아닌 다른 값으로 설정될 수 있다.That is, the transaction sender can load multiple signed transactions at once. For example, the transaction sender may load three signed transactions from the signed transaction queue, and the number of signed transactions that the transaction sender can load at one time may be set to a value other than three.

다음으로, 트랜잭션 센더는 로드된 서명된 트랜잭션들을 체인에 전송할 수 있다.Next, the transaction sender can send the loaded signed transactions to the chain.

리셋 오프셋에 따라 트랜잭션을 로드하여 재전송하는 것은 정상적으로 처리되지 않은 트랜잭션을 재전송하는 리커버링을 수행하는 것을 의미하며, 리커버링 과정에서 정상적으로 처리된 트랜잭션과 동일한 트랜잭션이 체인에 재전송되는 경우, 체인에서 트랜잭션이 중복하여 전송되었음을 인지하고 해당 트랜잭션이 중복하여 저장되지 않도록 할 수 있다.Loading and retransmitting a transaction according to the reset offset means performing a recovery that retransmits a transaction that was not normally processed. In the recovery process, if the same transaction as a normally processed transaction is retransmitted to the chain, the transaction It can recognize that it was sent as a duplicate and prevent the corresponding transaction from being duplicated.

다음으로, 트랜잭션 센더는 체인에 전송한 서명된 트랜잭션의 정보를 트랜잭션 처리 정보 및 트랜잭션 처리 시간 정보에 반영할 수 있다.Next, the transaction sender can reflect the information of the signed transaction sent to the chain to the transaction processing information and the transaction processing time information.

트랜잭션 처리 시간 정보는 트랜잭션 센더 및 트랜젝션 체커가 공동으로 관리하는 데이터를 구조적으로 표현한 것이다.The transaction processing time information is a structural representation of data jointly managed by the transaction sender and the transaction checker.

트랜잭션 처리 시간 정보는 적어도 5개의 필드를 포함할 수 있으며, 상기 5개의 필드는 트랜잭션의 식별 정보(ref ID), 로드된 적어도 하나의 트랜잭션의 시작 지점 오프셋(offset), 로드된 적어도 하나의 트랜잭션의 마지막 항목에 대응하는 오프셋(target offset), 로드된 적어도 하나의 트랜잭션의 해시 값(TX hash), 트랜잭션이 트랜잭션 센더에 의해 전송된 시각(timestamp)일 수 있다.The transaction processing time information may include at least five fields, wherein the five fields include transaction identification information (ref ID), a starting point offset of at least one loaded transaction, and at least one loaded transaction. It may be an offset corresponding to the last item (target offset), a hash value (TX hash) of at least one loaded transaction, and a time (timestamp) at which the transaction is transmitted by the transaction sender.

도 9는 실시예에 따른 트랜잭션 전송 결과 검사 및 재전송 방법을 설명하기 위한 참고도이다.9 is a reference diagram for explaining a method of checking and retransmitting a transaction transmission result according to an embodiment.

특히, 도 9는 트랜잭션 처리 지원 장치가 체인에 전송된 트랜잭션이 체인에 정상적으로 반영(커밋)되었는지를 검사하고, 정상적으로 반영되지 않은 트랜잭션을 재전송하는 방법을 설명하기 위한 참고도이다In particular, FIG. 9 is a reference diagram for explaining a method in which the transaction processing support device checks whether a transaction transmitted to the chain is normally reflected (committed) to the chain, and retransmits a transaction that is not normally reflected

도 9을 참조하면, 먼저 트랜잭션 체커는 트랜잭션 처리 시간 정보를 이용하여 체인에 전송된 트랜잭션을 식별할 수 있다.Referring to FIG. 9 , first, a transaction checker may identify a transaction transmitted to a chain using transaction processing time information.

트랜잭션 체커는 트랜잭션 처리 시간 정보에 기록된 트랜잭션들 중 체인에 전송된 시각으로부터 기설정된 시간이 경과한 트랜잭션들을 전송 결과 검사 대상으로 결정할 수 있다.The transaction checker may determine, among the transactions recorded in the transaction processing time information, as a transmission result check target, a predetermined time has elapsed from the time of transmission to the chain.

다음으로, 트랜잭션 체커는 영구 저장소에 트랜잭션 리시트를 질의하고, 트랜잭션 리시트가 발행되었는지 여부에 기초하여 상기 전송 결과 검사 대상에 대응하는 트랜잭션이 체인에 정상적으로 반영되었는지 여부를 판단할 수 있다.Next, the transaction checker may query the persistent storage for a transaction request, and determine whether the transaction corresponding to the transmission result check target is normally reflected in the chain based on whether the transaction request has been issued.

판단 결과, 트랜잭션이 체인에 정상적으로 반영되지 않은 경우, 트랜잭션 체커는 트랜잭션 처리 시간 정보에서 상기 트랜잭션의 트랜잭션 식별 정보(ref ID)와 일치하는 트랜잭션 처리 정보의 트랜잭션 식별 정보(ID)를 포함하는 레코드의 리셋 오프셋을 설정할 수 있다.As a result of the determination, if the transaction is not normally reflected in the chain, the transaction checker resets the record including the transaction identification information (ID) of the transaction processing information that matches the transaction identification information (ref ID) of the transaction in the transaction processing time information You can set an offset.

도 10은 실시예에 따른 컴퓨터 시스템의 구성을 나타낸 도면이다.10 is a diagram showing the configuration of a computer system according to an embodiment.

실시예에 따른 트랜잭션 처리 지원 장치(120)는 컴퓨터로 읽을 수 있는 기록매체와 같은 컴퓨터 시스템(1100)에서 구현될 수 있다.The transaction processing support apparatus 120 according to the embodiment may be implemented in the computer system 1100 such as a computer-readable recording medium.

컴퓨터 시스템(1100)은 버스(1120)를 통하여 서로 통신하는 하나 이상의 프로세서(1110), 메모리(1130), 사용자 인터페이스 입력 장치(1140), 사용자 인터페이스 출력 장치(1150) 및 스토리지(1160)를 포함할 수 있다. 또한, 컴퓨터 시스템(1100)은 네트워크(1180)에 연결되는 네트워크 인터페이스(1170)를 더 포함할 수 있다. 프로세서(1110)는 중앙 처리 장치 또는 메모리(1130)나 스토리지(1160)에 저장된 프로그램 또는 프로세싱 인스트럭션들을 실행하는 반도체 장치일 수 있다. 메모리(1130) 및 스토리지(1160)는 휘발성 매체, 비휘발성 매체, 분리형 매체, 비분리형 매체, 통신 매체, 또는 정보 전달 매체 중에서 적어도 하나 이상을 포함하는 저장 매체일 수 있다. 예를 들어, 메모리(1130)는 ROM(1131)이나 RAM(1132)을 포함할 수 있다.Computer system 1100 may include one or more processors 1110 , memory 1130 , user interface input device 1140 , user interface output device 1150 , and storage 1160 that communicate with each other via bus 1120 . can In addition, the computer system 1100 may further include a network interface 1170 coupled to the network 1180 . The processor 1110 may be a central processing unit or a semiconductor device that executes programs or processing instructions stored in the memory 1130 or the storage 1160 . The memory 1130 and the storage 1160 may be storage media including at least one of a volatile medium, a non-volatile medium, a removable medium, a non-removable medium, a communication medium, and an information delivery medium. For example, the memory 1130 may include a ROM 1131 or a RAM 1132 .

이상에서 설명된 실시예에 따르면, 사용자 사이에서 비상장주식이 보다 용이하고 안전하게 거래될 수 있다.According to the embodiment described above, unlisted stocks can be traded more easily and safely among users.

이상에서 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.Although embodiments of the present invention have been described with reference to the accompanying drawings in the above, those of ordinary skill in the art to which the present invention pertains can implement the present invention in other specific forms without changing the technical spirit or essential features. You can understand that there is Therefore, it should be understood that the embodiments described above are illustrative in all respects and not restrictive.

110: 사용자 단말 120: 트랜잭션 처리 지원 장치
130: 블록체인 네트워크 140: 트랜잭션 저장소
150: 영구 저장소
110: user terminal 120: transaction processing support device
130: blockchain network 140: transaction storage
150: persistent storage

Claims (14)

트랜잭션 처리 지원 장치에서 수행되는 트랜잭션 처리 지원 방법에 있어서,
저장소에 저장된 복수의 트랜잭션(transaction)들 중 다음에 전송할 제1 트랜잭션을 선정하는 단계;
상기 저장소에서 상기 선정된 제1 트랜잭션을 포함하는 적어도 하나의 제2 트랜잭션을 로드하는 단계;
상기 적어도 하나의 제2 트랜잭션을 블록체인(blockchain) 네트워크에 전송하는 단계;
상기 적어도 하나의 제2 트랜잭션이 상기 블록체인 네트워크에 포함된 블록체인에 커밋(commit)되었는지 여부를 확인하는 단계; 및
상기 확인 결과에 기초하여 상기 적어도 하나의 제2 트랜잭션 중 어느 하나의 트랜잭션을 재전송할 제3 트랜잭션으로 선정하는 단계
를 포함하고,
상기 커밋되었는지 여부를 확인하는 단계는
별도의 저장소에 저장된 요약 데이터를 이용하여 상기 트랜잭션이 상기 블록체인 네트워크에 반영이 되었는지 여부를 확인하는 단계이고,
상기 요약 데이터는
체인 크롤러(crawler)가 주기적으로 또는 비주기적으로 상기 블록체인 네트워크에 질의한 결과로 획득한 상기 블록체인의 상태(state)에 관한 정보를 이용하여 생성된 데이터인, 트랜잭션 처리 지원 방법.
In the transaction processing support method performed in the transaction processing support device,
selecting a first transaction to be transmitted next from among a plurality of transactions stored in the storage;
loading at least one second transaction including the selected first transaction from the storage;
transmitting the at least one second transaction to a blockchain network;
checking whether the at least one second transaction is committed to a block chain included in the block chain network; and
selecting any one of the at least one second transaction as a third transaction to be retransmitted based on the confirmation result
including,
The step of checking whether the commit has been
Checking whether the transaction is reflected in the blockchain network using summary data stored in a separate storage,
The summary data is
A method for supporting transaction processing, which is data generated using information about the state of the block chain obtained as a result of a chain crawler periodically or aperiodically querying the block chain network.
제1 항에 있어서,
상기 제1 트랜잭션을 선정하는 단계는
상기 복수의 트랜잭션들 중 이전에 선정된 제3 트랜잭션이 존재하는 경우, 상기 이전에 선정된 제3 트랜잭션을 상기 제1 트랜잭션으로 선정하는 단계를 포함하는, 트랜잭션 처리 지원 방법.
According to claim 1,
The step of selecting the first transaction is
and selecting the previously selected third transaction as the first transaction when there is a previously selected third transaction among the plurality of transactions.
제2 항에 있어서,
상기 제1 트랜잭션을 선정하는 단계는
상기 복수의 트랜잭션들 중 상기 이전에 선정된 제3 트랜잭션이 존재하지 않는 경우, 바로 직전에 상기 블록체인 네트워크에 전송된 트랜잭션의 바로 다음에 저장된 트랜잭션을 상기 제1 트랜잭션으로 선정하는 단계를 포함하는, 트랜잭션 처리 지원 방법.
3. The method of claim 2,
The step of selecting the first transaction is
In the case where the previously selected third transaction does not exist among the plurality of transactions, selecting a transaction stored immediately following the transaction transmitted to the block chain network immediately before the first transaction as the first transaction, How to support transaction processing.
제3 항에 있어서,
상기 적어도 하나의 제2 트랜잭션을 상기 블록체인 네트워크에 전송한 후에, 바로 직전에 상기 블록체인 네트워크에 전송된 트랜잭션의 상기 저장소에서의 저장 위치에 상응하는 저장 위치 식별자를 포함하도록 트랜잭션 처리 정보(PTI, Processed Transaction Information)를 갱신하는 단계
를 더 포함하고,
상기 제1 트랜잭션을 선정하는 단계는
상기 트랜잭션 처리 정보를 이용하여 바로 직전에 상기 블록체인 네트워크에 전송한 트랜잭션을 식별하는 단계; 및
상기 저장소에서 상기 식별된 트랜잭션의 다음에 저장된 트랜잭션을 상기 제1 트랜잭션으로 선정하는 단계
를 포함하는, 트랜잭션 처리 지원 방법.
4. The method of claim 3,
after sending the at least one second transaction to the blockchain network, transaction processing information (PTI, PTI, Steps to update Processed Transaction Information)
further comprising,
The step of selecting the first transaction is
identifying a transaction transmitted to the blockchain network immediately before using the transaction processing information; and
selecting a transaction stored next to the identified transaction in the storage as the first transaction
Including, transaction processing support method.
제4 항에 있어서,
상기 제3 트랜잭션을 선정하는 단계는
상기 적어도 하나의 제2 트랜잭션이 상기 블록체인에 커밋되지 않은 경우, 상기 적어도 하나의 제2 트랜잭션 중 상기 저장소에 가장 먼저 저장된 트랜잭션을 상기 제3 트랜잭션으로 선정하고, 상기 제3 트랜잭션의 저장 위치 식별자를 더 포함하도록 상기 트랜잭션 처리 정보를 갱신하는 단계를 포함하고,
상기 제1 트랜잭션을 선정하는 단계는
상기 트랜잭션 처리 정보에 상기 이전에 선정된 제3 트랜잭션의 재전송 대상인 트랜잭션의 저장 위치 식별자가 포함되어 있는 경우, 상기 이전에 선정된 제3 트랜잭션을 상기 제1 트랜잭션으로 선정하고, 상기 트랜잭션 처리 정보에 상기 이전에 선정된 제3 트랜잭션의 저장 위치 식별자가 포함되어 있지 않은 경우, 상기 복수의 트랜잭션들 중 바로 직전에 상기 블록체인 네트워크에 전송한 트랜잭션의 바로 다음에 저장된 트랜잭션을 상기 제1 트랜잭션으로 선정하는 단계를 포함하는, 트랜잭션 처리 지원 방법.
5. The method of claim 4,
The step of selecting the third transaction is
When the at least one second transaction is not committed to the block chain, a transaction first stored in the storage among the at least one second transaction is selected as the third transaction, and a storage location identifier of the third transaction is selected. updating the transaction processing information to further include;
The step of selecting the first transaction is
When the transaction processing information includes a storage location identifier of a transaction that is a retransmission target of the previously selected third transaction, the previously selected third transaction is selected as the first transaction, and the third transaction is selected in the transaction processing information. If the storage location identifier of the previously selected third transaction is not included, selecting a transaction stored immediately after the transaction transmitted to the blockchain network immediately before from among the plurality of transactions as the first transaction Including, transaction processing support method.
제5 항에 있어서,
상기 트랜잭션 처리 정보는
바로 직전에 전송한 트랜잭션의 저장 위치 식별자, 바로 직전에 커밋된 트랜잭션의 저장 위치 식별자 및 재전송 대상인 트랜잭션의 저장 위치 식별자가 기록될 필드(field)들을 포함하는, 트랜잭션 처리 지원 방법.
6. The method of claim 5,
The transaction processing information is
A method for supporting transaction processing, comprising fields in which the storage location identifier of the immediately transmitted transaction, the storage location identifier of the immediately committed transaction, and the storage location identifier of the transaction to be retransmitted are recorded.
제1 항에 있어서,
상기 커밋되었는지 여부를 확인하는 단계는
상기 적어도 하나의 제2 트랜잭션을 상기 블록체인 네트워크에 전송한 시각으로부터 기설정된 시간이 경과한 후에 상기 트랜잭션의 커밋 여부를 확인하는 단계를 포함하는, 트랜잭션 처리 지원 방법.
According to claim 1,
The step of checking whether the commit has been
and confirming whether the transaction is committed after a preset time has elapsed from the time when the at least one second transaction is transmitted to the block chain network.
제7 항에 있어서,
상기 적어도 하나의 제2 트랜잭션을 상기 블록체인 네트워크에 전송한 후에, 상기 적어도 하나의 제2 트랜잭션의 전송 시각이 포함된 데이터를 포함하도록 트랜잭션 처리 시간 정보(PTT, Processed Transaction Timetable)를 갱신하는 단계
를 더 포함하고,
상기 커밋되었는지 여부를 확인하는 단계는
상기 트랜잭션 처리 시간 정보를 이용하여 상기 전송 시각으로부터 기설정된 시간이 경과한 트랜잭션을 식별하는 단계; 및
상기 식별된 트랜잭션이 커밋되었는지 여부를 확인하는 단계
를 포함하는, 트랜잭션 처리 지원 방법.
8. The method of claim 7,
After transmitting the at least one second transaction to the block chain network, updating Processed Transaction Timetable (PTT) to include data including the transmission time of the at least one second transaction
further comprising,
The step of checking whether the commit has been
identifying a transaction in which a predetermined time has elapsed from the transmission time by using the transaction processing time information; and
Checking whether the identified transaction has been committed
Including, transaction processing support method.
제8 항에 있어서,
상기 트랜잭션 처리 시간 정보는
바로 직전에 전송한 트랜잭션의 저장 위치 식별자, 상기 트랜잭션을 고유하게 식별하기 위한 트랜잭션 식별자 및 상기 트랜잭션의 전송 시각이 기록될 필드들을 포함하는, 트랜잭션 처리 지원 방법.
9. The method of claim 8,
The transaction processing time information is
A method for supporting transaction processing, comprising fields in which a storage location identifier of a transaction transmitted immediately before, a transaction identifier for uniquely identifying the transaction, and a transmission time of the transaction are recorded.
삭제delete 제1 항에 있어서,
상기 커밋되었는지 여부를 확인하는 단계는
상기 블록체인 네트워크에 기전송된 적어도 하나의 제4 트랜잭션이 커밋되었는지 여부를 확인하는 단계를 포함하고,
상기 제3 트랜잭션을 선정하는 단계는
상기 적어도 하나의 제4 트랜잭션이 상기 블록체인에 커밋되지 않은 경우, 상기 적어도 하나의 제4 트랜잭션 중 상기 저장소에 가장 먼저 저장된 트랜잭션을 재전송할 제5 트랜잭션으로 선정하는 단계를 포함하는, 트랜잭션 처리 지원 방법.
According to claim 1,
The step of checking whether the commit has been
Comprising the step of confirming whether at least one fourth transaction previously transmitted to the blockchain network has been committed,
The step of selecting the third transaction is
When the at least one fourth transaction is not committed to the block chain, selecting a transaction first stored in the storage among the at least one fourth transaction as a fifth transaction to be retransmitted. .
제11 항에 있어서,
상기 제5 트랜잭션으로 선정하는 단계 후에
상기 제5 트랜잭션을 상기 블록체인 네트워크에 전송하는 단계; 및
상기 저장소에서 상기 제5 트랜잭션의 바로 다음에 저장된 제6 트랜잭션을 상기 블록체인 네트워크에 전송하는 단계
를 포함하는, 트랜잭션 처리 지원 방법.
12. The method of claim 11,
After the step of selecting the fifth transaction
sending the fifth transaction to the blockchain network; and
sending a sixth transaction stored immediately after the fifth transaction in the storage to the blockchain network;
Including, transaction processing support method.
제11 항에 있어서,
상기 제5 트랜잭션으로 선정하는 단계 후에
상기 제5 트랜잭션을 상기 블록체인 네트워크에 전송하는 단계; 및
상기 저장소에서 상기 제5 트랜잭션의 바로 다음에 연속적으로 저장된 제7 트랜잭션 및 제8 트랜잭션을 저장된 순서에 따라 상기 블록체인 네트워크에 순차적으로 전송하는 단계
를 포함하는, 트랜잭션 처리 지원 방법.
12. The method of claim 11,
After the step of selecting the fifth transaction
sending the fifth transaction to the blockchain network; and
sequentially transmitting a seventh transaction and an eighth transaction stored consecutively immediately after the fifth transaction in the storage to the blockchain network according to the stored order;
Including, transaction processing support method.
적어도 하나의 프로그램이 기록된 메모리; 및
상기 프로그램을 실행하는 프로세서
를 포함하며,
상기 프로그램은
저장소에 저장된 복수의 트랜잭션(transaction)들 중 다음에 전송할 제1 트랜잭션을 선정하는 단계;
상기 저장소에서 상기 선정된 제1 트랜잭션을 포함하는 적어도 하나의 제2 트랜잭션을 로드하는 단계;
상기 적어도 하나의 제2 트랜잭션을 블록체인(blockchain) 네트워크에 전송하는 단계;
상기 적어도 하나의 제2 트랜잭션이 상기 블록체인 네트워크에 포함된 블록체인에 커밋(commit)되었는지 여부를 확인하는 단계; 및
상기 확인 결과에 기초하여 상기 적어도 하나의 제2 트랜잭션 중 하나의 트랜잭션을 재전송할 제3 트랜잭션으로 선정하는 단계
의 수행을 위한 명령어들을 포함하고,는,
상기 커밋되었는지 여부를 확인하는 단계는
별도의 저장소에 저장된 요약 데이터를 이용하여 상기 트랜잭션이 상기 블록체인 네트워크에 반영이 되었는지 여부를 확인하는 단계이고,
상기 요약 데이터는
체인 크롤러(crawler)가 주기적으로 또는 비주기적으로 상기 블록체인 네트워크에 질의한 결과로 획득한 상기 블록체인의 상태(state)에 관한 정보를 이용하여 생성된 데이터인, 트랜잭션 처리 지원 장치.
a memory in which at least one program is recorded; and
a processor executing the program
includes,
the program is
selecting a first transaction to be transmitted next from among a plurality of transactions stored in the storage;
loading at least one second transaction including the selected first transaction from the storage;
transmitting the at least one second transaction to a blockchain network;
checking whether the at least one second transaction is committed to a block chain included in the block chain network; and
selecting one of the at least one second transaction as a third transaction to be retransmitted based on the confirmation result
Including instructions for the execution of,
The step of checking whether the commit has been
Checking whether the transaction is reflected in the blockchain network using summary data stored in a separate storage,
The summary data is
A device for supporting transaction processing, which is data generated using information about the state of the block chain obtained as a result of a chain crawler periodically or aperiodically querying the block chain network.
KR1020190179435A 2019-12-11 2019-12-31 Device and method of supporting transaction processing in asynchronous transaction processing architecture KR102396599B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20190165093 2019-12-11
KR1020190165093 2019-12-11

Publications (2)

Publication Number Publication Date
KR20210074146A KR20210074146A (en) 2021-06-21
KR102396599B1 true KR102396599B1 (en) 2022-05-12

Family

ID=76599981

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020190179435A KR102396599B1 (en) 2019-12-11 2019-12-31 Device and method of supporting transaction processing in asynchronous transaction processing architecture
KR1020190179436A KR102445937B1 (en) 2019-12-11 2019-12-31 Device and method of supporting transaction processing in asynchronous transaction processing architecture
KR1020190179437A KR102319158B1 (en) 2019-12-11 2019-12-31 Device and method of supporting transaction processing in asynchronous transaction processing architecture

Family Applications After (2)

Application Number Title Priority Date Filing Date
KR1020190179436A KR102445937B1 (en) 2019-12-11 2019-12-31 Device and method of supporting transaction processing in asynchronous transaction processing architecture
KR1020190179437A KR102319158B1 (en) 2019-12-11 2019-12-31 Device and method of supporting transaction processing in asynchronous transaction processing architecture

Country Status (1)

Country Link
KR (3) KR102396599B1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008071004A (en) * 2006-09-13 2008-03-27 Fujitsu General Ltd Transaction processing method and online system using it
KR101849912B1 (en) * 2017-05-25 2018-04-19 주식회사 코인플러그 Method for providing certificate service based on smart contract and server using the same

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101701131B1 (en) 2016-04-28 2017-02-13 주식회사 라피 Data recording and validation methods and systems using the connecting of blockchain between different type
KR101937220B1 (en) * 2017-02-01 2019-01-11 주식회사 아이콘루프 Method for generating and verifying a digital signature or message authentication code based on a block chain that does not require key management
KR102053630B1 (en) * 2018-03-13 2020-01-22 주식회사 웨이투빗 Method for processing transactions using blockchain, and transaction management server using the same

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008071004A (en) * 2006-09-13 2008-03-27 Fujitsu General Ltd Transaction processing method and online system using it
KR101849912B1 (en) * 2017-05-25 2018-04-19 주식회사 코인플러그 Method for providing certificate service based on smart contract and server using the same

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
‘TXID 전송 확인하기. (이더스캔,블록체인)’, 네이버블로그(2018.06.29. 게재)*
‘이더리움의 Nonce가 무엇이고 왜 필요할까??’, Crocus(2019.10.13. 게재)*

Also Published As

Publication number Publication date
KR20210074148A (en) 2021-06-21
KR102319158B1 (en) 2021-10-29
KR20210074146A (en) 2021-06-21
KR20210074147A (en) 2021-06-21
KR102445937B1 (en) 2022-09-22

Similar Documents

Publication Publication Date Title
US5802062A (en) Preventing conflicts in distributed systems
US11316868B2 (en) Information verification system, information verification device, method and program
CN113220745B (en) Transaction processing method and device based on blockchain and electronic equipment
US9888048B1 (en) Supporting millions of parallel light weight data streams in a distributed system
KR20110000737A (en) Improvements relating to handling and processing of massive numbers of processing instructions in real time
US8812535B2 (en) Propagating a query in a federated database
JP2020524434A (en) Method and special network node for high speed propagation in blockchain networks
JP2012018449A (en) Snapshot acquisition processing program, snapshot acquisition processing method, snapshot participant computer, and snap shot coordinator computer
CN112583811B (en) Wallet finding method, equipment and storage medium
WO2021052237A1 (en) Transaction processing method and apparatus, device, storage medium and database
JP5395517B2 (en) Distributed data management system, data management apparatus, data management method, and program
CN115829731A (en) Transaction information processing method and device
CN104580428A (en) Data routing method, data management device and distributed storage system
CN114003662A (en) Block chain performance optimization mechanism based on cache strategy
KR102396599B1 (en) Device and method of supporting transaction processing in asynchronous transaction processing architecture
CN113409047A (en) Data processing method, device and equipment based on block chain and readable storage medium
CN116977067A (en) Block chain-based data processing method, device, equipment and readable storage medium
CN112001800B (en) Method and device for processing business in block chain system
CN116542668A (en) Block chain-based data processing method, equipment and readable storage medium
CN116846888A (en) Consensus processing method, device, equipment and storage medium of block chain network
JP2017167842A (en) Transaction control system and transaction control method
Kumar et al. An efficient algorithm for mutual exclusion using queue migration in computer networks
CN100517245C (en) Active copy tolerant system non-emphraxis message simple ordering method
Zhou et al. The design and evaluation of a token-based independent update protocol
Rabhi et al. An efficient failure-resilient mutual exclusion algorithm for distributed systems leveraging a novel zero-message overlay structure

Legal Events

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