KR20230103132A - 트랜잭션 관리 방법 및 장치 - Google Patents

트랜잭션 관리 방법 및 장치 Download PDF

Info

Publication number
KR20230103132A
KR20230103132A KR1020210193759A KR20210193759A KR20230103132A KR 20230103132 A KR20230103132 A KR 20230103132A KR 1020210193759 A KR1020210193759 A KR 1020210193759A KR 20210193759 A KR20210193759 A KR 20210193759A KR 20230103132 A KR20230103132 A KR 20230103132A
Authority
KR
South Korea
Prior art keywords
transaction
nonce
offset
stored
storage
Prior art date
Application number
KR1020210193759A
Other languages
English (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 두나무 주식회사
Priority to KR1020210193759A priority Critical patent/KR20230103132A/ko
Publication of KR20230103132A publication Critical patent/KR20230103132A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1865Transactional file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/122File system administration, e.g. details of archiving or snapshots using management policies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • 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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

트랜잭션 관리 방법 및 장치가 제공된다. 본 발명의 일 실시예에 따른 트랜잭션 관리 방법은, 발행 대상 트랜잭션의 발송 주소를 식별하는 단계와, 상기 발송 주소와 대응되는 논스(nonce)를 컴퓨팅 장치의 저장 장치로부터 획득하는 단계와, 상기 획득된 논스를 상기 트랜잭션의 논스로서 할당하는 단계와, 상기 논스가 할당된 트랜잭션을 발행하는 단계를 포함할 수 있다.

Description

트랜잭션 관리 방법 및 장치{METHOD AND APPARATUS FOR MANAGING TRANSACTION}
본 명세서에 기재된 실시예는 트랜잭션 관리 방법 및 장치에 관한 것이다. 보다 자세하게는, 본 명세서에 기재된 실시예는 고속으로 논스(nonce)를 할당하고, 논스 및 트랜잭션의 중복과 유실을 방지하는 트랜잭션 관리 방법 및 장치에 관한 것이다.
정보통신 기술이 발전되고 온라인 서비스에 대한 사용량이 증가함에 따라, 온라인에서 발생하는 데이터량은 지속적으로 증가하고 있다. 또한, 온라인 계좌 이체, 온라인 결제, 주식 거래 등과 같은 주요 데이터는 별도의 데이터베이스에 저장되어 관리되고 있는데, 주요 데이터가 악의적으로 위변조 되는 경우, 사용자의 재산권에 막대한 피해가 발생될 수 있어 블록체인(blockchain)에 데이터를 저장하는 것이 고려되고 있다.
블록체인은 지속적으로 증가하는 데이터를 특정 단위의 블록에 기록하고, P2P(peer-to-peer) 네트워크를 구성하는 각각의 노드들이 블록을 체인 형태의 자료 구조로 관리하는 데이터 관리 기술 또는 체인 형태의 자료 구조로 구성된 데이터 그 자체를 의미한다. 이때, 체인 형태의 자료 구조로 구성된 블록체인 데이터는, 중앙 시스템 없이 각각의 노드에서 분산 원장(distributed ledger) 형태로 운영된다.
현재 다양한 형태의 블록체인들이 개발되고 있다. 이 중에서, 이더리움(Ethereum)으로 대표되는 블록체인은, 동일한 발송 주소(from address)를 가지는 각 트랜잭션들에 대해서 순번을 나타내는 논스(nonce)를 할당하고 있다. 예를 들어, 제1 주소의 가지는 첫 번째 트랜잭션에 첫 번째 순번을 나타내는 제1 논스를 할당하고, 제1 주소를 가지는 두 번째 트랜잭션에 두 번째 순번을 나태는 제2 논스를 할당할 수 있다. 이러한 논스는 0부터 시작해서 1씩 증가하면서 부여가 되어야 하는데, 만약 논스가 하나라도 건너뛰게 되면 중간에 생략된 논스 이후에 논스를 가지는 트랜잭션들은 실행이 되지 않는다. 또한, 논스가 중복된 트랜잭션들이 존재하는 경우, 해당 트랜잭션들은 실행되지 못하고 오류가 발생하게 된다.
현재 퍼블릭(public) 이더리움 네트워크는 초당 대략 15개의 트랜잭션만을 처리할 수 있다. 또한, 동일한 발송 주소를 가지는 트랜잭션이 연속적으로 발생하는 경우가 거의 없어, 현재까지 논스를 관리하는데 어려움이 발생되지 않고 있다.
그러나 프라이빗(private) 블록체인의 경우 합의 알고리즘을 변경하면 초당 2000개 이상의 트랜잭션도 처리할 수 있다. 이 경우에는 같은 주소에 대해 트랜잭션이 초당 수십 개씩 생성될 경우가 많이 발생할 수 있으며 기존의 퍼블릭 블록체인 같이 논스를 할당하고 트랜잭션을 처리하는 경우, 오류가 발생할 수 있다.
이에 따라, 고속으로 논스를 할당하고 트랜잭션을 처리할 수 있는 기술이 요구되고 있다.
한국공개특허 제2016-0150278호(2016.12.29 공개)
본 명세서에 기재된 실시예들은, 중복없이 고속으로 논스를 할당할 수 있는 트랜잭션 관리 방법 및 장치를 제공할 수 있다.
본 명세서에 기재된 실시예들은, 논스와 트랜잭션의 중복과 유실을 방지하는 트랜잭션 관리 방법 및 장치를 제공할 수 있다.
본 명세서에 기재된 실시예들은, 트랜잭션을 발행하는 도중에 장애가 발생한 경우에도, 다음 순번에 사용 예정인 논스를 복원할 수 있는 트랜잭션 관리 방법 및 장치를 제공할 수 있다.
본 명세서에 기재된 실시예는, 이상에서 언급되지 않은 또 다른 방법 및 그 장치를 제공하는 것으로 아래의 기재로부터 이해될 수 있을 것이다.
본 명세서에 기재된 일 실시예에 따른 트랜잭션 관리 방법은, 발행 대상 트랜잭션의 발송 주소를 식별하는 단계와, 상기 발송 주소와 대응되는 논스(nonce)를 컴퓨팅 장치의 저장 장치로부터 획득하는 단계와, 상기 획득된 논스를 상기 트랜잭션의 논스로서 할당하는 단계와, 상기 논스가 할당된 트랜잭션을 발행하는 단계를 포함할 수 있다.
일 실시예에서, 상기 획득된 논스를 상기 트랜잭션의 논스로서 할당하는 단계는, 상기 할당된 논스를 특정한 크기만큼 증가시키거나 또는 감소시키고, 상기 증가되었거나 또는 감소된 논스와 상기 발송 주소를 연관하여 상기 저장 장치에 저장하는 단계를 포함할 수 있다.
일 실시예에서, 상기 논스를 상기 컴퓨팅 장치의 저장 장치로부터 획득하는 단계는, 상기 발송 주소와 대응되는 논스가 상기 저장 장치에 저장되지 않는다는 판정에 응답하여, 상기 발송 주소와 관련된 최종 논스를 블록체인 네트워크로부터 획득하는 단계와, 상기 블록체인 네트워크로부터 획득된 최종 논스를 소정의 크기만큼 증가 또는 감소시키는 단계를 포함할 수 있다.
일 실시예에서, 상기 트랜잭션을 발행하는 단계는, 상기 발송 주소에 대응되는 개인키를 획득하는 단계와, 상기 획득된 개인키를 이용하여 전자 서명을 생성하는 단계와, 상기 전자 서명을 포함하는 상기 트랜잭션을 블록체인 네트워크로 전송하는 단계를 포함할 수 있다.
일 실시예에서, 상기 트랜잭션 관리 방법은, 제1 저장영역에 저장된 복수의 발행 대상 트랜잭션들 중에서, 논스 할당 대상이 되는 트랜잭션을 가리키는 제1 오프셋을 설정하는 단계와, 상기 제1 오프셋이 가리키는 트랜잭션에 논스가 할당되어 제2 저장영역에 저장되는 것에 응답하여, 상기 제1 저장영역에 저장된 상기 복수의 발행 대상 트랜잭션들 중에, 상기 논스가 할당된 트랜잭션에 후속하는 트랜잭션을 가리키도록 상기 제1 오프셋을 갱신하는 단계를 더 포함할 수 있다.
일 실시예에서, 상기 트랜잭션 관리 방법은, 상기 제1 오프셋을 갱신하는 루틴이 정상적으로 완료되지 않았다는 판정에 기초하여, 상기 제1 오프셋이 가리키는 트랜잭션을 상기 제2 저장영역에서 삭제하는 단계를 더 포함할 수 있다.
일 실시예에서, 상기 트랜잭션 관리 방법은, 복수의 발행 대상 트랜잭션들과 트랜잭션 식별자를 제1 저장영역에 저장하는 단계와, 논스가 할당된 복수의 트랜잭션들과 및 트랜잭션 식별자를 제2 저장영역에 저장하는 단계를 더 포함할 수 있고, 상기 획득된 논스를 상기 트랜잭션의 논스로서 할당하는 단계는, 상기 논스를 할당하는 루틴이 성공적으로 완료되지 않았다는 판정에 기초하여, 상기 제2 저장영역에 저장되지 않은 트랜잭션 식별자를 가지는 발행 대상 트랜잭션을 상기 제1 저장영역으로부터 획득하고, 상기 획득된 발행 대상 트랜잭션에 대한 논스를 할당하는 단계를 포함할 수 있다.
일 실시예에서, 상기 논스가 할당된 트랜잭션을 발행하는 단계 이후에, 상기 트랜잭션 관리 방법은, 상기 트랜잭션을 블록체인 네트워크로 전송하는 단계와, 상기 트랜잭션에 대한 상기 블록체인 네트워크 상의 기록 상태를 모니터링하여 기록이 완료된 트랜잭션에 대한 제2 오프셋을 설정하는 단계를 더 포함할 수 있다.
일 실시예에서, 상기 트랜잭션 관리 방법은, 상기 트랜잭션을 발행하는 루틴이 성공적으로 완료되지 않았다는 판정에 기초하여, 상기 제2 오프셋이 가리키는 트랜잭션에 후속되는 하나 이상의 트랜잭션을 식별하는 단계와, 상기 식별된 하나 이상의 트랜잭션에 할당된 논스에 기초하여, 마지막으로 할당된 논스를 식별하는 단계와, 상기 할당된 논스를 이용하여 상기 저장 장치의 논스를 복원하는 단계를 더 포함할 수 있다.
본 명세서에 기재된 다른 실시예에 따른 컴퓨팅 장치는, 하나 이상의 프로세서와, 상기 프로세서에 의하여 수행되는 컴퓨터 프로그램을 로드(load)하는 메모리와, 상기 컴퓨터 프로그램을 저장하는 스토리지를 포함하고, 상기 메모리는 발송 주소별 논스(nonce)를 저장하는 저장 장치를 포함하고, 상기 스토리지는, 복수의 발행 대상 트랜잭션들을 저장하는 제1 저장영역과, 논스가 할당된 복수의 트랜잭션을 저장하는 제2 저장영역을 포함하고, 상기 컴퓨터 프로그램은, 상기 제1 저장영역에 저장된 발행 대상 트랜잭션을 선택하는 동작과, 상기 선택된 발행 대상 트랜잭션의 발송 주소를 식별하는 동작과, 상기 발송 주소와 대응되는 논스를 상기 저장 장치로부터 획득하는 동작과, 상기 획득된 논스를 상기 선택된 발행 대상 트랜잭션의 논스로서 할당하는 동작과, 상기 논스가 할당된 트랜잭션을 상기 제2 저장영역에 저장하는 동작을 수행하기 위한 인스트럭션들(instructions)을 포함할 수 있다.
본 명세서에 기재된 또 다른 실시예에 따른, 컴퓨터로 판독 가능한 비일시적 저장 매체는, 명령어를 포함하는 컴퓨터 판독 가능한 비일시적 저장 매체로서, 상기 명령어는 프로세서에 의해 실행될 때, 상기 프로세서로 하여금, 발행 대상 트랜잭션의 발송 주소를 식별하는 단계와, 상기 발송 주소와 대응되는 논스(nonce)를 저장 장치로부터 획득하는 단계와, 상기 획득된 논스를 상기 트랜잭션의 논스로서 할당하는 단계와, 상기 논스가 할당된 트랜잭션을 발행하는 단계를 포함하는 동작들을 수행하도록 할 수 있다.
도 1은 본 명세서의 일 실시예에 따른, 트랜잭션 관리 시스템을 나타내는 도면이다.
도 2는 도 1의 트랜잭션 관리 장치의 블록 구성도를 예시하는 도면이다.
도 3a 내지 도 3c는 트랜잭션이 발행되는 예시적인 과정을 설명하기 위한 도면이다.
도 4는 본 발명의 다른 실시예에 따른, 트랜잭션을 관리하기 위한 방법을 설명하는 순서도이다.
도 5는 본 발명의 일 실시예에 있어서, 도 4의 단계 S160을 더욱 자세하게 설명하기 위한 순서도이다.
도 6은 원시 트랜잭션과 가공 트랜잭션을 예시하는 도면이다.
도 7는 본 발명의 또 다른 실시예에 따른, 제1 오프셋을 이용하여 트랜잭션을 관리하는 방법을 설명하는 순서도이다.
도 8은 제1 오프셋이 갱신되지 않은 상태에서 장애가 발생한 경우에, 제1 오프셋의 위치와 가공 트랜잭션을 목록을 예시하는 도면이다.
도 9는 본 발명의 다른 일 실시예에 있어서, 도 4의 단계 S160을 더욱 자세하게 설명하기 위한 순서도이다.
도 10은 식별자를 포함하는 원시 트랜잭션과 가공 트랜잭션을 예시하는 도면이다.
도 11은 본 발명의 또 다른 실시예에 따른, 트랜잭션 식별자를 이용하여 트랜잭션을 관리하는 방법을 설명하는 순서도이다.
도 12는 본 발명의 또 다른 실시예에 따른, 채굴 기록을 저장하여 트랜잭션을 관리하는 방법을 설명하는 순서도이다.
도 13은 제2 오프셋이 설정된 가공 트랜잭션을 예시하는 도면이다.
도 14는 본 발명의 또 다른 실시예에 따른, 제2 오프셋을 이용하여 캐시를 복원하는 방법을 설명하는 순서도이다.
도 15는 다양한 실시예에서 컴퓨팅 장치를 구현할 수 있는 예시적인 하드웨어 구성도이다.
이하, 첨부된 도면을 참조하여 본 명세서의 실시예들을 상세히 설명한다. 본 명세서의 실시예들의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 실시예의 기술적 사상은 이하의 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 이하의 실시예들은 본 발명의 기술적 사상을 완전하도록 하고, 본 명세서의 실시예들이 속하는 기술분야에서 통상의 지식을 가진 자에게 본 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명의 기술적 사상은 청구항의 범주에 의해 정의될 뿐이다.
각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 명세서의 실시예들을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 명세서의 실시예들이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다. 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 명세서의 실시예들을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다.
또한, 본 명세서의 실시예들의 구성 요소를 설명하는 데 있어서, 제1, 제2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 또는 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.
이하, 몇몇 실시예들에 대하여 첨부된 도면에 따라 상세하게 설명한다.
도 1은 본 명세서의 일 실시예에 따른, 트랜잭션 관리 시스템을 나타내는 도면이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 트랜잭션 관리 시스템은, 사용자 단말(10), 트랜잭션 관리 장치(100) 및 블록체인 네트워크(20)를 포함하여 구성될 수 있다.
사용자 단말(10)은 트랜잭션 관리 장치(100)로 트랜잭션의 발행을 요청할 수 있는 장치로서, 스마트폰, 태블릿 PC, 랩탑 등의 컴퓨팅 장치를 포함할 수 있다. 상기 사용자 단말(10)은 가상자산의 송신 등과 거래와 관련된 데이터를 트랜잭션 관리 장치(100)로 전송함으로써, 트랜잭션 발행을 트랜잭션 관리 장치(100)로 요청할 수 있다.
일 실시예에서, 트랜잭션 관리 장치(100)는, 트랜잭션 발행을 위한 API(Application Programming Interface)를 호출함으로써, 트랜잭션 발행을 트랜잭션 관리 장치(100)로 요청할 수 있다. 이때, 트랜잭션 관리 장치(100)는 발송 주소, 수신 주소 및 가상자산의 송신량을 포함하는 원시 트랜잭션을 트랜잭션 관리 장치(100)로 전송함으로써, 트랜잭션의 발행을 트랜잭션 관리 장치(100)로 요청할 수 있다. 여기서, 발송 주소는 사용자(예컨대, 송금자)의 전자지갑 주소일 수 있고, 수신 주소 타 사용자(예컨대, 수신자)의 전자지갑 주소일 수 있다.
또한, 상기 원시 트랜잭션은 발행 대상이 되는 트랜잭션으로서, 논스가 할당되지 않고 전자 서명도 수행되지 않은 상태의 트랜잭션일 수 있다. 상기 원시 트랜잭션은, 발송 주소 및 수신 주소를 포함할 수 있고, 더불어 가상자산의 송신량을 더 포함할 수도 있다.
후술하는 가공 트랜잭션은, 원시 트랜잭션을 기초로 생성된 트랜잭션일 수 있다. 상기 가공 트랜잭션은 논스와 전자 서명을 포함할 수 있다.
블록체인 네트워크(20)는 다수의 노드들(20-1, 20-2, 20-3, 20-4)이 참여하여 형성한 네트워크로서, 블록체인 네트워크(20)에 포함된 각 노드들(20-1, 20-2, 20-3, 20-4)은 블록들이 서로 연결된 블록체인을 서로 공유할 수 있다. 상기 블록은 블록 헤더와 트랜잭션으로 구성될 수 있다. 블록 헤더는 이전 블록 식별자(예컨대, 해시), 머클루트(Markle Root), 논스(Nonce) 및/또는 타임스탬프를 포함할 수 있다. 트랜잭션에는 거래를 검증하기 위한 데이터를 포함할 수 있다. 각각의 노드들(20-1, 20-2, 20-3, 20-4)은 트랜잭션이 수신되면, 상기 트랜잭션에 대한 채굴 과정을 진행할 수 있다.
트랜잭션 관리 장치(100)는 사용자 단말(10)로부터 원시 트랜잭션을 획득하고, 그 획득된 원시 트랜잭션을 기초로 가공 트랜잭션을 생성하여 발행하고, 가공 트랜잭션을 블록체인 네트워크(20)로 전송할 수 있다. 트랜잭션 관리 장치(100)는 가공 트랜잭션에 논스를 할당하고, 전자 서명을 생성한 후, 논스가 할당되고 전자 서명을 포함하는 가공 트랜잭션을 생성하여 발행할 수 있다. 일 실시예에서, 트랜잭션 관리 장치(100)는 고속으로 액세스할 수 있는 저장 장치(예컨대, 캐시)를 구비하고, 그 저장 장치에 저장된 논스를 이용하여 가공 트랜잭션에 논스를 할당할 수 있다.
도 2는 도 1의 트랜잭션 관리 장치(100)의 블록 구성도를 예시하는 도면이다.
도 2을 참조하면, 트랜잭션 관리 장치(100)는 원시 트랜잭션 획득부(101), 제1 저장부(102), 논스 할당부(103), 제2 저장부(104), 트랜잭션 전송부(105), 제3 저장부(106), 채굴 검사부(107), 키 저장부(108) 및 캐시(cache)(109)를 포함하여 구성될 수 있다. 이러한 구성요소들은 하드웨어 또는 소프트웨어로 구현되거나 하드웨어 또는 소프트웨어의 결합을 통해서 구현될 수 있다.
트랜잭션 관리 장치(100)는 하나 이상의 물리적인 컴퓨팅 장치로 구현될 수 있고, 또는 클라우드 컴퓨팅 시스템에 가상 머신 형태로 탑재될 수도 있다.
제1 저장부(102)는 메모리, 디스크 장치 등과 같은 저장수단으로서, 복수의 원시 트랜잭션을 저장할 수 있다. 상기 원시 트랜잭션은 발송 주소와 수신 주소를 포함할 수 있다. 몇몇 실시예에서, 논스 할당 대상이 되는 트랜잭션을 가리키는 제1 오프셋이 원시 트랜잭션에 설정될 수 있다. 제1 저장부(102)는 발송 주소별로 서로 구분되어 그룹으로 설정된 복수의 원시 트랜잭션을 저장할 수 있으며, 이 경우 제1 오프셋이 각 그룹의 원시 트랜잭션별로 설정될 수 있다. 상기 제1 저장부(102)는 선입선출 방식을 지원하는 큐(queue) 기반의 스토리지 또는 메모리일 수 있다.
제2 저장부(104)는 메모리, 디스크 장치 등과 같은 저장수단으로서, 복수의 가공 트랜잭션을 저장할 수 있다. 상기 가공 트랜잭션은 발송 주소, 수신 주소, 전자 서명 및 논스를 포함할 수 있다. 제2 저장부(104)는 발송 주소별로 그룹핑된 복수의 가공 트랜잭션을 저장할 수 있다. 상기 제2 저장부(104)는 선입선출 방식을 지원하는 큐 기반의 스토리지 또는 메모리일 수 있다.
제3 저장부(106)는 메모리, 디스크 장치 등과 같은 저장수단으로서, 전송 결과를 포함하는 복수의 가공 트랜잭션을 저장할 수 있다. 몇몇 실시예에서, 가장 마지막으로 채굴 기록이 완료된 것을 가리키는 제2 오프셋이 제3 저장부(106)의 가공 트랜잭션에 설정될 수 있다. 제3 저장부(106)는 발송 주소별로 서로 구분되어 그룹으로 설정된 복수의 가공 트랜잭션을 저장할 수 있으며, 이 경우 제2 오프셋이 각 그룹의 원시 트랜잭션별로 설정될 수 있다. 또 다른 예로서, 가장 마지막으로 채굴 기록이 완료된 것을 가리키는 제2 오프셋이 제2 저장부(104)의 가공 트랜잭션에 설정될 수 있다. 상기 제3 저장부(106)는 선입선출 방식을 지원하는 큐 기반의 스토리지 또는 메모리일 수 있다.
캐시(109)는 트랜잭션 관리 장치(100)에 포함된 고속의 저장 장치일 수 있다. 상기 캐시(109)는 각 발송 주소와 관련된 논스를 저장할 수 있다.
키 저장부(108)는 메모리, 디스크 장치 등과 같은 저장수단으로서, 각 발송 주소와 관련된 개인키를 저장할 수 있다. 부연하면, 각 사용자의 개인키는, 해당 사용자의 발송주소(예컨대, 전자 지갑 주소)와 함께 키 저장부(108)에 미리 저장될 수 있다.
논스 할당부(103)는 제1 저장부(102)에 저장된 복수의 원시 트랜잭션 중에서, 발행 대상이 되는 원시 트랜잭션을 선택하고, 그 선택한 원시 트랜잭션을 기초로 가공 트랜잭션을 생성하고, 그 생성한 가공 트랜잭션을 제2 저장부(104)에 저장함으로써, 트랜잭션을 발행할 수 있다. 제1 저장부(102)가 큐 기반의 저장수단인 경우, 논스 할당부(103)는 이번 순번 즉, 발행 대상으로 선택되지 않은 원시 트랜잭션 중에서 가장 먼저 저장된 원시 트랜잭션을 발행 대상으로서 선택할 수 있다. 일 실시예에서, 논스 할당부(103)는 선택된 원시 트랜잭션의 발송 주소를 식별하고, 그 발송 주소와 대응되는 논스를 캐시(109)로부터 획득한 후, 그 획득된 논스를 가공 트랜잭션의 논스로서 할당할 수 있다.
트랜잭션 전송부(105)는 제2 저장부(104)에 저장된 복수의 가공 트랜잭션 중에서, 전송 대상이 되는 가공 트랜잭션을 선택하고, 그 선택한 가공 데이터를 블록체인 네트워크(20)로 전송할 수 있다. 제2 저장부(104)가 큐 기반의 저장수단의 경우, 트랜잭션 전송부(105)는 이번 순번 즉, 전송 대상으로 선택되지 않은 가공 트랜잭션 중에서 가장 먼저 저장된 가공 트랜잭션을 선택할 수 있다. 일 실시예에서, 트랜잭션 전송부(105)는 가공 데이터의 전송 결과(즉, 전송 성공 또는 전송 실패)와 가공 트랜잭션을 제3 저장부(106)에 저장할 수 있다.
채굴 검사부(107)는 제3 저장부(106)에 가공 트랜잭션의 전송 성공이 저장되면, 그 가공 트랜잭션에 대한 블록체인 네트워크(20)에서의 채굴 상태를 모니터링하고, 최근에 채굴이 완료된 트랜잭션을 가리키는 제2 오프셋을 제3 저장부(106)의 트랜잭션 중 어느 하나에 설정할 수 있다. 여기서, 채굴이 완료된 된다는 것은, 블록체인 네트워크(20)에서 상기 가공 트랜잭션에 대한 처리 기록이 블록체인에 저장하는 것을 의미할 수 있다.
도 2에 도시된 바와 같이, 원시 트랜잭션 획득부(101), 제1 저장부(102), 논스 할당부(103), 제2 저장부(104), 트랜잭션 전송부(105), 제3 저장부(106) 및 채굴 검사부(107)는 파이프 라인 구조로 형성될 수 있다. 이러한 파이프 라인 구조로 트랜잭션은 제1 저장부(102), 제2 저장부(104), 제3 저장부(106)로 순차적으로 이동하여 저장될 수 있다.
도 3a 내지 도 3c는 트랜잭션이 발행되는 예시적인 과정을 설명하기 위한 도면이다.
도 3a를 참조하면, 원시 트랜잭션 획득부(101)는 사용자 단말(10)로부터 수신한 원시 트랜잭션(31)을 제1 저장부(102)에 저장할 수 있다.
이후, 논스 할당부(103)는 원시 트랜잭션에 포함된 발송 주소를 식별하고, 발송 주소에 대응되는 논스를 캐시(109)로부터 획득하고, 상기 발송 주소와 대응되는 개인키를 키 저장부(108)로부터 획득할 수 있다. 이어서, 논스 할당부(103)는 개인키와 상기 원시 데이터를 이용하여 전자 서명을 생성하고, 그 전자 서명과 획득된 논스를 포함하는 가공 트랜잭션(32)을 제2 저장부(104)에 저장할 수 있다. 도 3b에 예시된 바와 같이, 가공 트랜잭션(32)에는 원시 트랜잭션, 전자 서명 및 논스가 포함될 수 있다.
이후, 트랜잭션 전송부(105)는 가공 트랜잭션(32)을 블록체인 네트워크(20)로 전송하고, 블록체인 네트워크(20)로의 전송 결과와 가공 트랜잭션을 함께 제3 저장부(106)에 저장할 수 있다. 도 3c에 예시된 바와 같이, 제3 저장부(106)에는 원시 트랜잭션, 전자 서명 및 논스를 포함하는 가공 트랜잭션과 가공 트랜잭션의 전송 결과(33)가 저장될 수 있다.
몇몇 실시예에 따르면, 제1 저장부(102), 제2 저장부(104) 및 제3 저장부(106)는 복수의 파티션으로 분할될 수 있다. 트랜잭션의 발송 주소에 기초하여, 트랜잭션의 저장되는 파티션이 결정될 수 있다. 예를 들어, 제1 저장부(102)가 제1 파티션과 제2 파티션으로 분할되고, 제2 저장부(104)는 제3 파티션과 제4 파티션으로 분할되고, 제3 저장부(106)가 제5 파티션과 제6 파티션으로 분할된 경우, 제1 발송 주소를 가지는 원시 데이터는 제1 저장부(102)의 제1 파티션에 저장되고, 제1 발송 주소를 가지는 가공 데이터는 제2 저장부(104)의 제3 파티션에 저장되고, 제1 발송 주소의 가공 데이터의 전송 결과는 제3 저장부(106)의 제5 파티션에 저장될 수 있다. 이후에, 제1 발송 주소를 포함하는 또 다른 원시 데이터는 제1 저장부(102)의 제1 파티션에 저장되고, 제1 발송 주소를 포함하는 또 다른 가공 데이터는 제2 저장부(104)의 제3 파티션에 저장될 수 있다.
본 실시예에 따르면, 캐시(109)에 미리 저장된 논스를 이용하여, 고속으로 트랜잭션에 대한 논스를 할당할 수 있다. 또한, 파이프 라인 구조를 이용하여, 더욱 안정적으로 트랜잭션을 처리할 수 있으며, 장애가 발행한 경우에 안정적으로 장애를 복구할 수 있다.
이하, 도 4 내지 14를 참조하여, 트랜잭션 관리 방법에 대한 다양한 실시예를 설명한다.
후술하는 방법들의 각 단계는 컴퓨팅 장치에 의해 수행될 수 있다. 다시 말하면, 후술하는 방법들의 각 단계는 컴퓨팅 장치의 프로세서에 의해 실행되는 하나 이상의 인스트럭션들로 구현될 수 있다. 후술하는 방법에 포함되는 제1 단계들은 제1 컴퓨팅 장치에 의하여 수행되고, 본 방법의 제2 단계들은 제2 컴퓨팅 장치에 의하여 수행될 수 있다. 이하에서는, 도면 4 내지 14 중 하나 이상을 참조하여 설명한 방법들의 각 단계가 도 1을 참조하여 설명한 트랜잭션 관리 장치(100)에 의해 수행되는 것을 가정하여 설명을 이어가도록 하되, 각 단계의 수행 주체는 단지 예시일 뿐, 이하의 설명에 의해 한정되는 아니며, 설명의 편의를 위해 상기 방법에 포함되는 일부 단계의 동작 주체는 그 기재가 생략될 수도 있다.
도 4는 본 발명의 다른 실시예에 따른, 트랜잭션을 관리하기 위한 방법을 설명하는 순서도이다.
도 4를 참조하면, 논스 할당부(103)는 제1 저장부(102)에 저장된 복수의 원시 트랜잭션 중에서, 발행 대상이 되는 원시 트랜잭션을 선택할 수 있다(S110). 일 실시예에서, 논스 할당부(103)는 선입선출 방식에 근거하여, 제1 저장부(102)에 저장되며 아직 선택되지 않은 원시 트랜잭션들 중에서, 가장 먼저 저장된 원시 트랜잭션을 선택할 수 있다.
이어서, 논스 할당부(103)는 선택된 원시 트랜잭션의 발송 주소를 식별할 수 있다(S120). 일 실시예에서, 논스 할당부(103)는 선택된 원시 트랜잭션에 포함된 발송 주소를 식별할 수 있다.
다음으로, 논스 할당부(103)는 발송 주소와 대응하는 논스가 캐시(109)에 저장되어 있는지 여부를 판정할 수 있다(S130).
발송 주소와 대응하는 논스가 캐시(109)에 저장되었음에 응답하여, 논스 할당부(103)는 상기 발송 주소와 대응되는 논스를 캐시(109)로부터 획득할 수 있다 (S140). 이어서, 논스 할당부(103)는 상기 획득된 논스가 할당되는 가공 트랜잭션을 생성할 수 있다(S160). 상기 가공 트랜잭션을 원시 트랜잭션을 포함할 수 있으며, 더불어 전자 서명을 포함할 수 있다. 가공 트랜잭션을 생성되는 단계 S140에 대한 다양한 실시예들은 도 5 및 도 6, 도 9 및 도 10을 참조하여 더욱 구체적으로 설명하기로 한다.
한편, 단계 S130의 판정 결과 발송 주소와 대응하는 논스가 캐시(109)에 저장되지 않은 경우, 논스 할당부(103)는 상기 발송 주소와 대응되는 최종 논스를 블록체인 네트워크(20)로부터 획득할 수 있다(S150). 일 실시예에서, 논스 할당부(103)를 상기 발송 주소와 대응되는 최종 논스를 블록체인 네트워크(20)로 요청하고, 이에 대한 응답으로 상기 최종 논스를 블록체인 네트워크(20)로부터 수신할 수 있다. 여기서 최종 논스는, 상기 발송 주소와 대응되어 가장 마지막에 사용된(즉, 가장 큰) 논스일 수 있다. 블록체인 네트워크(20)로부터 논스를 획득한 경우, 논스 할당부(103)는 그 논스를 소정의 크기(예컨대, 1)만큼 증가시키고, 크기가 증가된 논스를 가공 트랜잭션의 논스로서 할당할 수 있다.
몇몇 실시예에서, 논스는 그 크기가 점진적으로 감소되어 할당될 수 있다. 예를 들어, 논스는 충분히 큰 수로 초기에 미리 설정될 수 있으며, 이 경우 직전의 논스 크기보다 작은 크기의 논스가 할당되어, 최근에 할당된 논스의 크기가 과거에 할당된 논스의 크기 보다 작을 수 있다. 이러한 실시형태에서는, 블록체인 네트워크(20)로부터 논스가 획득된 경우, 논스 할당부(103)는 그 논스를 소정의 크기(예컨대, 1)만큼 감소시키고, 크기가 감소된 논스를 가공 트랜잭션의 논스로서 할당할 수 있다.
이어서, 논스 할당부(103)는 할당된 논스를 소정의 크기(예컨대, 1)만큼 증가시키고, 크기가 증가된 논스와 발송 주소를 대응시켜 캐시(109)에 저장할 수 있다(S170). 만약, 캐시(109)에 상기 발송 주소와 대응되는 논스가 이미 저장된 경우, 논스 할당부(103)는 상기 기 저장된 논스를 상기 증가된 논스로 변경하여, 캐시(109)에 저장된 논스를 갱신할 수 있다. 논스의 크기가 감소되어 할당되는 실시예에서는, 논스 할당부(103)는 크기가 감소된 논스와 발송 주소를 대응시켜 캐시(109)에 저장할 수 있다.
본 실시예는, 캐시 할당의 1 사이클에 해당하는 것으로서, 새로운 원시 데이터가 획득되는 경우, 반복적으로 진행될 수 있다.
본 실시예에 따르면, 캐시(109)에 저장된 논스를 이용하여 고속으로 트랜잭션의 논스를 할당할 수 있다. 또한, 본 실시예에 따르면, 이미 사용된 논스의 크기를 증가시키고 증가된 논스가 캐시(109)에 저장되게 함으로써, 논스의 중복을 예방할 수 있으며 안정적으로 논스를 할당할 수 있다.
이하, 도 5와 도 6을 참조하여, 도 4의 단계 S160인 가공 트랜잭션을 생성하는 방법에 대한 일 실시예를 보다 자세하게 설명한다.
도 5와 6을 참조한 실시예에서는, 제1 오프셋이 제1 저장부(102)의 원시 트랜잭션에 설정된 것을 전제될 수 있다. 몇몇 실시예에 따르면, 단계 S110에서, 논스 할당부(103)는 제1 저장부(102)에 저장된 원시 트랜잭션들 중에서, 제1 오프셋으로 설정된 원시 트랜잭션을 식별하고, 그 식별된 트랜잭션을 발행 대상 트랜잭션으로 선택할 수 있다.
도 6은 제1 저장부(102)에 저장된 원시 트랜잭션 및 제2 저장부(104)에 저장된 가공 트랜잭션을 예시하는 도면으로서, 도 6의 (a)에서는 index 2에 해당하는 raw_Transaction_#2을 가리키도록 제1 오프셋이 설정됨을 예시하고 있다. 만약, 도 6의 (a)와 같이 제1 오프셋이 설정된 경우, 논스 할당부(103)는 raw_Transaction_#2를 발행 대상 트랜잭션으로 선택할 수 있다.
발행 대상 원시 트랜잭션이 선택되고 논스가 획득되면, 논스 할당부(103)는 발송 주소와 대응되는 개인키를 키 저장부(108)로부터 획득할 수 있다(S1161).
이어서, 논스 할당부(103)는 상기 개인키와 원시 트랜잭션을 기초로 전자 서명을 생성할 수 있다(S1162). 일 실시예에서, 논스 할당부(103)는 상기 원시 트랜잭션을 원문 데이터로서 설정한 후, 상기 개인키를 이용하여 원시 트랜잭션에 대한 전자 서명을 수행할 수 있다.
다음으로, 논스 할당부(103)는 개인키, 상기 획득된 논스 및 원시 트랜잭션을 포함하는 가공 트랜잭션을 생성할 수 있다(S1163). 이어서, 논스 할당부(103)는 가공 트랜잭션을 제2 저장부(104)에 저장함으로써, 가공 트랜잭션을 발행할 수 있다(S1164).
이어서, 논스 할당부(103)는 논스가 할당된 원시 트랜잭션에 후속되는 다른 원시 트랜잭션을 제1 오프셋이 가리키도록 제1 오프셋을 갱신할 수 있다(S1165).
도 6의 (b)는 후속되는 원시 트랜잭션을 가리키도록 제1 오프셋이 갱신되는 것을 예시하고 있다. 도 6의 (a)과 (b)를 비교하면, 제1 오프셋이 raw_Transaction_#2를 가리키는 것에서 raw_Transaction_#3을 가리키는 것으로 변경됨을 알 수 있다. 도 6의 (a)과 (b)를 비교하면, 도 6의 (b)의 가공 트랜잭션에는 Transaction_#2가 추가적으로 포함됨을 알 수 있다.
상기 제1 오프셋은 트랜잭션을 중복과 유실을 방지하는데 이용될 수 있다. 즉, 트랜잭션을 발행하는 루틴에 장애가 발생하여 가공 트랜잭션이 발행이 정상적으로 완료되지 않은 경우, 제1 오프셋을 이용하여 비정상적으로 처리된 트랜잭션을 식별하여 제2 저장부(104)로부터 제거하고, 후속 처리 과정이 재수행되도록 할 수 있다.
도 7는 본 발명의 또 다른 실시예에 따른, 제1 오프셋을 이용하여 트랜잭션을 관리하는 방법을 설명하는 순서도이다.
도 7을 참조하면, 가공 트랜잭션을 발행하는 루틴에 장애가 발생하는 것이 감지될 수 있다(S210). 상기 루틴의 장애가 발생하는 것은, 트랜잭션 관리 장치(100)에 의해서 감지될 수 있다. 여기서, 상기 루틴의 장애는, 논스 할당부(103)의 비정상적인 종료, 트랜잭션 전송부(105)의 비정상적인 종료, 채굴 검사부(107)의 비정상적인 종료, 그 이외의 프로세스의 비정상적인 종료 등일 수 있다.
장애가 복구되어 가공 트랜잭션을 발행하는 루틴이 재시동될 수 있다(S220). 상기 루틴이 재시동되는 것은, 트랜잭션 관리 장치(100)에 의해서 수행될 수 있다. 또한, 상기 루틴이 재시동되는 것은, 논스 할당부(103), 트랜잭션 전송부(105) 및 채굴 검사부(107) 중에서 하나 이상의 재시동되는 것을 의미할 수 있다.
이어서, 논스 할당부(103)는 제1 오프셋이 설정된 원시 트랜잭션을 제1 저장부(102)로부터 식별할 수 있다(S230). 다음으로, 논스 할당부(103)는, 제1 오프셋과 관련된 가공 트랜잭션, 즉, 상기 식별된 원시 트랜잭션을 기초로 생성된 가공 트랜잭션이 제2 저장부(104)에서 저장되었는지 여부를 판정할 수 있다(S240).
제1 오프셋과 관련된 가공 트랜잭션(즉, 상기 식별된 원시 트랜잭션을 기초로 생성된 가공 트랜잭션)이 제2 저장부(104)에 저장되었다는 판정에 응답하여, 논스 할당부(103)는 제1 오프셋과 관련된 가공 트랜잭션을 제2 저장부(104)로부터 삭제할 수 있다(S250). 제1 오프셋과 관련된 원시 트랜잭션이 제1 저장부(102)에 저장되고, 제2 오프셋과 관련된 가공 트랜잭션이 제2 저장부(104)에 저장되는 것은, 제1 오프셋이 갱신되는 도중에 트랜잭션 발행 루틴에 장애가 발행한 경우일 수 있다. 부연하면, 논스 할당부(103)는 제1 오프셋이 설정된 원시 데이터를 기초로 가공 데이터를 생성하여 제2 저장부(104)에 저장한 후, 후속되는 원시 데이터로 제1 오프셋을 갱신이 완료되지 않은 상태에서 장애가 발생될 수 있다.
도 8은 제1 오프셋이 갱신되지 않은 상태에서 장애가 발생한 경우, 제1 저장부(102)에 설정된 제1 오프셋의 위치와 제2 저장부(104)에 저장된 가공 트랜잭션을 목록을 예시하는 도면이다. 첨언하면, 도 8은 raw_Transaction_#3을 기초로 한 트랜잭션(Transaction_#3)을 발행하였으나, 제1 오프셋이 raw_Transaction_#3에서 raw_Transaction_#4로 변경되지 않고, raw_Transaction_#3으로 설정된 상태에서 트랜잭션 발행 루틴이 장애가 발생한 경우를 예시하고 있다.
이러한 상태에서 장애에 복구된 경우, 검증 프로세스를 진행하지 않고 제1 오프셋이 설정된 원시 데이터를 기초로 가공 트랜잭션을 생성하게 되면, 가공 트랜잭션이 중복되는 현상이 발생할 수 있다. 즉, 제1 오프셋이 가리키는 raw_Transaction_#3을 기초로 가공 트랜잭션 Transaction_#3이 다시 생성되고, 이에 따라 가공 트랜잭션 Transaction_#3이 중복되어 생성될 수 있다.
이러한 경우를 대비하여, 가공 트랜잭션의 발행 루틴이 재시동되면, 논스 할당부(103)는 단계 S230 내지 단계 S250를 수행하여, 가공 트랜잭션의 중복을 방지할 수 있다. 도 8과 같은 상태에서, 가공 트랜잭션의 발행 루틴이 재시동되는 경우, 논스 할당부(103)는 제2 저장부(104)에 저장된 Transaction_#3을 삭제할 수 있다.
다음으로, 논스 할당부(103)는 제1 오프셋이 설정된 원시 데이터를 기초로, 가공 트랜잭션을 생성하는 루틴을 진행할 수 있다(S260). 일 실시예에서, 상기 가공 트랜잭션을 생성하는 루틴은 도 4에 따른 프로세스가 이용될 수 있다.
본 실시예에 따르면, 가공 트랜잭션의 발행 루틴이 진행되는 도중에 예기치 않은 장애가 발생하더라도, 제1 오프셋을 이용하여 비정상적으로 처리된 가공 트랜잭션이 제2 저장부(104)에 이미 저장되어 있는지 여부를 검증함으로써, 가공 트랜잭션이 중복되어 발행되는 것을 미리 방지할 수 있다.
이하, 도 9를 참조하여, 도 4의 단계 S160인 가공 트랜잭션을 생성하는 방법에 대한 다른 실시예를 설명한다.
도 9는 원시 트랜잭션의 식별자가 설정된 것이 전제될 수 있다. 몇몇 실시예에 따르면, 원시 트랜잭션 획득부(101)는 식별자를 가지는 원시 트랜잭션을 제1 저장부(102)에 저장할 수 있다.
발행 대상 원시 트랜잭션이 선택되고 논스가 획득되면, 논스 할당부(103)는 선택된 원시 트랜잭션의 식별자를 획득할 수 있다(S2161). 이어서, 논스 할당부(103)는 원시 트랜잭션의 발송 주소와 대응되는 개인키를 키 저장부(108)로부터 획득할 수 있다(S2162).
이어서, 논스 할당부(103)는 상기 개인키와 원시 트랜잭션을 기초로 전자 서명을 생성할 수 있다(S2163). 일 실시예에서, 논스 할당부(103)는 상기 원시 트랜잭션을 원문 데이터로서 설정하고, 상기 개인키를 이용하여 원시 트랜잭션에 대한 전자 서명을 수행할 수 있다.
다음으로, 논스 할당부(103)는 개인키 및 상기 획득된 논스, 상기 식별자 및 원시 트랜잭션을 포함하는 가공 트랜잭션을 생성할 수 있다(S2164). 여기서, 가공 트랜잭션의 식별자는 선택된 원시 트랜잭션의 식별자와 일치할 수 있다. 즉, 원시 트랜잭션의 식별자가 이용되어 가공 트랜잭션이 생성될 수 있다.
이어서, 논스 할당부(103)는 가공 트랜잭션을 제2 저장부(104)에 저장함으로써, 가공 트랜잭션을 발행할 수 있다(S2165).
도 10은 식별자를 포함하는 원시 트랜잭션과 가공 트랜잭션을 예시하는 도면이다.
도 10에 예시된 바와 같이, 원시 트랜잭션과 가공 트랜잭션은 동일하거나 상응하는 식별자를 가질 수 있다. ID#1을 가지는 raw_Transaction_#1과 Transaction_#1은 서로 연관된 트랜잭션임을 의미할 수 있다. 즉, raw_Transaction_#1을 기초로 Transaction_#1이 생성되어, raw_Transaction_#1과 Transaction_#1은 서로 동일하거나 상응하는 식별자(여기서는 "ID#1")를 가질 수 있다.
도 11은 본 발명의 또 다른 실시예에 따른, 트랜잭션 식별자를 이용하여 트랜잭션을 관리하는 방법을 설명하는 순서도이다.
도 11을 참조하면, 가공 트랜잭션을 발행하는 루틴에 장애가 발생하는 것이 감지될 수 있다(S310). 이어서, 장애가 복구되어 가공 트랜잭션을 발행하는 루틴이 재시동될 수 있다(S320).
다음으로, 논스 할당부(103)는 각 가공 트랜잭션의 식별자를 제2 저장부(104)로부터 획득할 수 있다(S330).
다음으로, 논스 할당부(103)는 가공 트랜잭션의 식별자와 일치하지 않은 식별자를 가지는 원시 트랜잭션을 기초로 가공 트랜잭션을 생성할 루틴을 진행할 수 있다(S340). 일 실시예에서, 장애가 발생된 후에 복구된 경우, 논스 할당부(103)는 제1 저장부(102)에 저장된 원시 트랜잭션의 식별자와 제2 저장부(104)에 저장된 가공 트랜잭션의 식별자를 비교하여, 제2 저장부(104)에 저장되지 않은 식별자를 가지는 원시 트랜잭션을 대상으로 가공 트랜잭션을 생성할 수 있다. 첨언하면, 논스 할당부(103)는 선입선출 방식에 근거하여, 현재 순번에 해당하는 원시 트랜잭션을 제1 저장부(102)에서 선택하고, 그 선택된 원시 트랜잭션의 식별자가 제2 저장부(104)의 가공 트랜잭션에 포함되지 않은 경우에, 상기 선택된 원시 트랜잭션을 기초로 가공 트랜잭션을 생성할 수 있다. 이에 따라, 장애가 발생하여 복구되더라도, 동일한 가공 트랜잭션이 중복되어 생성되는 것은 예방될 수 있다.
도 12는 본 발명의 또 다른 실시예에 따른, 채굴 기록을 저장하여 트랜잭션을 관리하는 방법을 설명하는 순서도이다.
도 12를 참조하면, 트랜잭션 전송부(105)는 제2 저장부(104)에 저장된 복수의 가공 트랜잭션 중에서, 전송 대상이 되는 가공 트랜잭션을 선택하고, 그 선택한 가공 데이터를 블록체인 네트워크(20)로 전송할 수 있다(S410). 제2 저장부(104)가 큐 기반의 저장수단의 경우, 이번 순번 즉, 전송 대상으로 선택되지 않은 가공 트랜잭션 중에서 가장 먼저 저장된 가공 트랜잭션을 선택할 수 있다.
이어서, 트랜잭션 전송부(105)는 가공 데이터의 전송 결과(즉, 전송 성공 또는 전송 실패)와 가공 트랜잭션을 제3 저장부(106)에 저장할 수 있다(S420).
다음으로, 채굴 검사부(107)는 블록체인 네트워크(20)에서 상기 전송된 가공 트랜잭션에 대한 채굴 기록 상태를 모티링하여(S430), 상기 가공 트랜잭션의 채굴 완료되어 채굴 기록이 블록체인에 저장되는지 여부를 판정할 수 있다(S440).
블록체인 네트워크(20)에서 상기 가공 트랜잭션에 대한 채굴이 완료되어 가공 트랜잭션에 대한 기록에 블록체인에 저장되는 것에 응답하여, 채굴 검사부(107)는 상기 가공 트랜잭션에 대한 채굴이 완료되었음을 가리키는 제2 오프셋을 설정할 수 있다(S450). 여기서, 상기 제2 오프셋이 설정된 가공 트랜잭션은, 가장 최근에 채굴된 가공 트랜잭션을 의미할 수 있으며, 채굴 검사부(107)는 가장 최근에 채굴된 가공 트랜잭션에 대한 제2 오프셋을 설정할 수 있다. 일 실시예에서, 채굴 검사부(107)는 제2 오프셋을 별도의 저장공간에 저장할 수 있다. 몇몇 실시예에서는, 채굴 검사부(107)는 가공 트랜잭션들을 발송 주소를 근거로 그룹으로 설정하고, 그룹별로 제2 오프셋을 설정할 수 있다. 이렇게 그룹별로 제2 오프셋이 설정되는 경우, 후술하는 캐시 복원 방법에 의해 각 발송 주소별로 논스가 캐시에 복원될 수 있다.
도 13은 제2 오프셋이 설정된 가공 트랜잭션을 예시하는 도면이다.
도 13의 (a)에서의 제2 오프셋은, 가공 트랜잭션 Transaction_#5가 블록체인 네트워크(20)로 전송되어 채굴된 상태임을 나타낼 수 있다. 또한, 도 13의 (b)에서의 제2 오프셋은, 가공 트랜잭션 Transaction_#6이 블록체인 네트워크(20)로 전송되어 채굴된 상태임을 나타낼 수 있다. 가공 트랜잭션의 채굴 기록도 선입선출 방식으로 처리될 수 있으며, 채굴 기록이 갱신되는 경우 제2 오프셋도 갱신될 수 있다.
도 14는 본 발명의 또 다른 실시예에 따른, 제2 오프셋을 이용하여 캐시를 복원하는 방법을 설명하는 순서도이다.
도 14를 참조하면, 가공 트랜잭션을 발행하는 루틴에 장애가 발생하는 것이 감지될 수 있다(S510). 이어서, 장애가 복구되어 가공 트랜잭션을 발행하는 루틴이 재시동될 수 있다(S520).
이어서, 채굴 검사부(107)는 제2 오프셋이 설정된 가공 트랜잭션을 식별할 수 있다(S530). 일 실시예에서, 채굴 검사부(107)는 제3 저장부(106)에 설정된 제2 오프셋을 기초로, 제2 오프셋이 설정된 가공 트랜잭션을 식별할 수 있다. 몇몇 실시예에서는, 채굴 검사부(107)는 제2 오프셋이 가리키는 가공 트랜잭션의 저장공간의 주소를 별도로 저장할 수 있으며, 상기 별도로 저장된 가공 트랜잭션의 주소를 기초로 제2 오프셋이 설정된 가공 트랜잭션을 식별할 수 있다.
다음으로, 채굴 검사부(107)는 제2 오프셋이 설정된 가공 트랜잭션 보다 후순위에 해당하는 가공 트랜잭션을 제2 저장부(104)에서 조회할 수 있다(S540). 이어서, 채굴 검사부(107)는 후순위에 존재하는 가공 트랜잭션들 중에서 최종 순위(즉, 가장 마지막 우선순위)의 가공 트랜잭션을 식별하고, 그 식별된 가공 트랜잭션에 할당된 논스를 마지막으로 사용된 논스로서 식별할 수 있다(S550). 부연하면, 채굴 검사부(107)는 상기 제2 오프셋을 가리키는 가공 트랜잭션 보다 늦게 생성된 가공 트랜잭션을 제2 저장부(104)에서 조회하고, 그 조회된 가공 트랜잭션들을 기초로 가장 마지막으로 사용된 논스를 빠르게 식별할 수 있다.
다시 설명하면, 가공 트랜잭션을 할당하는 루틴에 장애가 발생한 경우, 논스의 중복과 유실을 방지하기 위하여, 논스가 어디에서부터 어디까지 할당되었는지 여부를 검사해야 된다. 이러한 논스 검사를 수행하기 위해서는, 제2 저장부(104)에 저장된 모든 가공 트랜잭션을 조회하여, 할당된 논스를 순차적으로 식별할 수 있으나, 이러한 조회는 복구 시간을 지연시킬 수 있다. 이에 따라, 본 실시예에서, 제2 오프셋을 설정하고, 제2 오프셋을 기준으로 마지막으로 사용된 논스를 빠르고 정확하게 식별할 수 있다.
이어서, 채굴 검사부(107)는 마지막으로 사용된 논스를 소정의 크기로 증가시키고, 상기 증가된 논스와 발송 주소를 연관하여 캐시(109)에 저장함으로써, 장애가 발생되기 전의 상태로 캐시(109)를 복원할 수 있다(S560). 논스의 크기가 감소되어 할당되는 실시예에서는, 채굴 검사부(107)는 마지막으로 사용된 논스를 소정의 크기로 감소시키고, 상기 감소된 논스와 발송 주소를 연관하여 캐시(109)에 저장함으로써, 장애가 발생되기 전의 상태로 캐시(109)를 복원할 수 있다(S560).
상술한 단계 S530 내지 S560은 각 발송 주소별로 그룹핑된 가공 데이터의 제2 오프셋별로 진행될 수 있고, 이에 따라 캐시(109)에는 발송 주소별 논스가 복원되어 저장될 수 있다.
본 실시예에 따르면, 제2 오프셋을 기준으로 마지막으로 사용된 논스를 확실하게 빠르게 식별할 수 있다. 또한, 상기 제2 오프셋을 가리키는 가공 트랜잭션 보다 늦게 생성된 가공 트랜잭션을 제2 저장부(104)에서 조회하여, 마지막으로 사용된 논스를 식별함으로써, 논스가 중복되어 다시 할당되는 상황을 예방할 수 있다.
이하, 몇몇 실시예들에 따른 예시적인 컴퓨팅 장치의 하드웨어 구성을 도 15를 참조하여 설명하기로 한다.
도 15는 다양한 실시예에서 컴퓨팅 장치를 구현할 수 있는 예시적인 하드웨어 구성도이다. 본 실시예에 따른 컴퓨팅 장치(1000)는 하나 이상의 프로세서(1100), 시스템 버스(1600), 네트워크 인터페이스(1200), 프로세서(1100)에 의하여 수행되는 컴퓨터 프로그램(1500)을 로드(load)하는 메모리(1400)와, 컴퓨터 프로그램(1500)을 저장하는 스토리지(1300)를 포함할 수 있다. 도 15에는 실시예와 관련 있는 구성요소들 만이 도시되어 있다. 따라서, 본 명세서의 실시예들이 속한 기술분야의 통상의 기술자라면 도 15에 도시된 구성요소들 외에 다른 범용적인 구성 요소들이 더 포함될 수 있음을 알 수 있다.
프로세서(1100)는 컴퓨팅 장치(1000)의 각 구성의 전반적인 동작을 제어할 수 있다. 프로세서(1100)는 CPU(Central Processing Unit), MPU(Micro Processor Unit), MCU(Micro Controller Unit), GPU(Graphic Processing Unit) 또는 본 명세서의 기술 분야에 잘 알려진 임의의 형태의 프로세서 중 적어도 하나를 포함하여 구성될 수 있다. 또한, 프로세서(1100)는 다양한 실시예들에 따른 방법/동작을 실행하기 위한 적어도 하나의 애플리케이션 또는 프로그램에 대한 연산을 수행할 수 있다. 컴퓨팅 장치(1000)는 둘 이상의 프로세서를 구비할 수 있다.
메모리(1400)는 각종 데이터, 명령 및/또는 정보를 저장한다. 메모리(1400)는 본 명세서의 다양한 실시예들에 따른 방법/동작들을 실행하기 위하여 스토리지(1300)로부터 하나 이상의 프로그램(190)을 로드(load) 할 수 있다. 메모리(1400)의 예시는 RAM이 될 수 있으나, 이에 한정되는 것은 아니다. 또한, 상기 메모리(1400)는 고속으로 액세스가 가능한 캐시를 포함할 수 있다.
시스템 버스(1600)는 컴퓨팅 장치(1000)의 구성 요소 간 통신 기능을 제공한다. 상기 버스는 주소 버스(Address Bus), 데이터 버스(Data Bus) 및 제어 버스(Control Bus) 등 다양한 형태의 버스로 구현될 수 있다. 네트워크 인터페이스(1200)는 통신망(500)과 연결할 수 있다.
스토리지(1300)는 하나 이상의 컴퓨터 프로그램(1500)을 비임시적으로 저장할 수 있다. 스토리지(1300)는 플래시 메모리 등과 같은 비휘발성 메모리, 하드 디스크, 착탈형 디스크, 또는 본 명세서의 실시예들이 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터로 읽을 수 있는 기록 매체를 포함하여 구성될 수 있다.
컴퓨터 프로그램(1500)은 본 명세서의 다양한 실시예들에 따른 방법/동작들이 구현된 하나 이상의 인스트럭션들(instructions)을 포함할 수 있다. 컴퓨터 프로그램(1500)이 메모리(1400)에 로드 되면, 프로세서(1100)는 상기 하나 이상의 인스트럭션들을 실행시킴으로써 본 명세서의 다양한 실시예들에 따른 방법/동작들을 수행할 수 있다. 컴퓨터 프로그램(1500)은, 도 1 내지 도 14를 참조하여 설명한 트랜잭션 관리 방법을 위한 인스트럭션들을 포함할 수 있다.
지금까지 도 1 내지 도 15를 참조하여 본 명세서의 다양한 실시예들 및 그 실시예들에 따른 효과들을 언급하였다. 본 명세서의 기술적 사상에 따른 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
지금까지 도 1 내지 도 15를 참조하여 설명된 본 명세서의 기술적 사상은 컴퓨터가 읽을 수 있는 매체 상에 컴퓨터가 읽을 수 있는 코드로 구현될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체는, 예를 들어 이동형 기록 매체(CD, DVD, 블루레이 디스크, USB 저장 장치, 이동식 하드 디스크)이거나, 고정식 기록 매체(ROM, RAM, 컴퓨터 구비 형 하드 디스크)일 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체에 기록된 상기 컴퓨터 프로그램은 인터넷 등의 네트워크를 통하여 다른 컴퓨팅 장치에 전송되어 상기 다른 컴퓨팅 장치에 설치될 수 있고, 이로써 상기 다른 컴퓨팅 장치에서 사용될 수 있다.
이상에서, 본 명세서의 실시예를 구성하는 모든 구성 요소들이 하나로 결합되거나 결합되어 동작하는 것으로 설명되었다고 해서, 본 명세서의 기술적 사상이 반드시 이러한 실시예에 한정되는 것은 아니다. 즉, 본 명세서의 목적 범위 안에서라면, 그 모든 구성요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다.
도면에서 동작들이 특정한 순서로 도시되어 있지만, 반드시 동작들이 도시된 특정한 순서로 또는 순차적 순서로 실행되어야만 하거나 또는 모든 도시 된 동작들이 실행되어야만 원하는 결과를 얻을 수 있는 것으로 이해되어서는 안 된다. 특정 상황에서는, 멀티태스킹 및 병렬 처리가 유리할 수도 있다. 더욱이, 위에 설명한 실시예들에서 다양한 구성들의 분리는 그러한 분리가 반드시 필요한 것으로 이해되어서는 안 되고, 설명된 프로그램 컴포넌트들 및 시스템들은 일반적으로 단일 소프트웨어 제품으로 함께 통합되거나 다수의 소프트웨어 제품으로 패키지 될 수 있음을 이해하여야 한다.
이상 첨부된 도면을 참조하여 본 명세서의 실시예들을 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 본 발명이 다른 구체적인 형태로도 실시될 수 있다는 것을 이해할 수 있다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 한다. 본 명세서의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명에 의해 정의되는 기술적 사상의 권리범위에 포함되는 것으로 해석되어야 할 것이다.

Claims (17)

  1. 컴퓨팅 장치가 트랜잭션을 관리하는 방법으로서,
    발행 대상 트랜잭션의 발송 주소를 식별하는 단계;
    상기 발송 주소와 대응되는 논스(nonce)를 상기 컴퓨팅 장치의 저장 장치로부터 획득하는 단계;
    상기 획득된 논스를 상기 트랜잭션의 논스로서 할당하는 단계; 및
    상기 논스가 할당된 트랜잭션을 발행하는 단계를 포함하는,
    트랜잭션 관리 방법.
  2. 제1항에 있어서,
    상기 논스를 상기 컴퓨팅 장치의 저장 장치로부터 획득하는 단계는,
    상기 발송 주소와 대응되는 논스가 상기 저장 장치에 저장되지 않았다는 판정에 응답하여, 상기 발송 주소와 관련된 최종 논스를 블록체인 네트워크로부터 획득하는 단계; 및
    상기 블록체인 네트워크로부터 획득된 최종 논스를 특정한 크기만큼 증가시키거나 또는 감소시키는 단계를 포함하는,
    트랜잭션 관리 방법.
  3. 제1항에 있어서,
    상기 획득된 논스를 상기 트랜잭션의 논스로서 할당하는 단계는,
    상기 할당된 논스를 특정한 크기만큼 증가시키거나 또는 감소시키고, 상기 증가되었거나 또는 감소된 논스와 상기 발송 주소를 연관하여 상기 저장 장치에 저장하는 단계를 포함하는,
    트랜잭션 관리 방법.
  4. 제1항에 있어서,
    상기 트랜잭션을 발행하는 단계는,
    상기 발송 주소에 대응되는 개인키를 획득하는 단계;
    상기 획득된 개인키를 이용하여 전자 서명을 생성하는 단계; 및
    상기 전자 서명을 포함하는 상기 트랜잭션을 블록체인 네트워크로 전송하는 단계를 포함하는,
    트랜잭션 관리 방법.
  5. 제4항에 있어서,
    상기 트랜잭션을 블록체인 네트워크로 전송하는 단계는,
    상기 블록체인 네트워크로의 트랜잭션 전송 결과를 저장하는 단계를 포함하는,
    트랜잭션 관리 방법.
  6. 제1항에 있어서,
    제1 저장영역에 저장된 복수의 발행 대상 트랜잭션들 중에서, 논스 할당 대상이 되는 트랜잭션을 가리키는 제1 오프셋을 설정하는 단계; 및
    상기 제1 오프셋이 가리키는 트랜잭션에 논스가 할당되어 제2 저장영역에 저장되는 것에 응답하여, 상기 제1 저장영역에 저장된 상기 복수의 발행 대상 트랜잭션들 중에, 상기 논스가 할당된 트랜잭션에 후속하는 트랜잭션을 가리키도록 상기 제1 오프셋을 갱신하는 단계를 더 포함하는,
    트랜잭션 관리 방법.
  7. 제6항에 있어서,
    상기 제1 오프셋을 갱신하는 루틴이 정상적으로 완료되지 않았다는 판정에 기초하여, 상기 제1 오프셋이 가리키는 트랜잭션을 상기 제2 저장영역에서 삭제하는 단계를 더 포함하는,
    트랜잭션 관리 방법.
  8. 제1항에 있어서,
    복수의 발행 대상 트랜잭션들과 트랜잭션 식별자를 제1 저장영역에 저장하는 단계; 및
    논스가 할당된 복수의 트랜잭션들과 및 트랜잭션 식별자를 제2 저장영역에 저장하는 단계를 더 포함하고,
    상기 획득된 논스를 상기 트랜잭션의 논스로서 할당하는 단계는,
    상기 논스를 할당하는 루틴이 성공적으로 완료되지 않았다는 판정에 기초하여, 상기 제2 저장영역에 저장되지 않은 트랜잭션 식별자를 가지는 발행 대상 트랜잭션을 상기 제1 저장영역으로부터 획득하고, 상기 획득된 발행 대상 트랜잭션에 대한 논스를 할당하는 단계를 포함하는,
    트랜잭션 관리 방법.
  9. 제1항에 있어서,
    상기 논스가 할당된 트랜잭션을 발행하는 단계 이후에,
    상기 트랜잭션을 블록체인 네트워크로 전송하는 단계; 및
    상기 트랜잭션에 대한 상기 블록체인 네트워크 상의 기록 상태를 모니터링하여 기록이 완료된 트랜잭션에 대한 제2 오프셋을 설정하는 단계를 더 포함하는,
    트랜잭션 관리 방법.
  10. 제9항에 있어서,
    상기 트랜잭션을 발행하는 루틴이 성공적으로 완료되지 않았다는 판정에 기초하여, 상기 제2 오프셋이 가리키는 트랜잭션에 후속되는 하나 이상의 트랜잭션을 식별하는 단계;
    상기 식별된 하나 이상의 트랜잭션에 할당된 논스에 기초하여, 마지막으로 할당된 논스를 식별하는 단계; 및
    상기 할당된 논스를 이용하여 상기 저장 장치의 논스를 복원하는 단계를 더 포함하는,
    트랜잭션 관리 방법.
  11. 제10항에 있어서,
    상기 저장 장치의 논스를 복원하는 단계는,
    상기 식별된 논스를 특정한 크기만큼 증가시키거나 또는 감소시키는 단계; 및
    상기 증가되거나 감소된 논스와 상기 발송 주소를 연관하여 상기 저장 장치에 저장하는 단계를 포함하는,
    트랜잭션 관리 방법.
  12. 하나 이상의 프로세서;
    상기 프로세서에 의하여 수행되는 컴퓨터 프로그램을 로드(load)하는 메모리; 및
    상기 컴퓨터 프로그램을 저장하는 스토리지를 포함하고,
    상기 메모리는 발송 주소별 논스(nonce)를 저장하는 저장 장치를 포함하고,
    상기 스토리지는,
    복수의 발행 대상 트랜잭션들을 저장하는 제1 저장영역; 및
    논스가 할당된 복수의 트랜잭션을 저장하는 제2 저장영역을 포함하고,
    상기 컴퓨터 프로그램은,
    상기 제1 저장영역에 저장된 발행 대상 트랜잭션을 선택하는 동작;
    상기 선택된 발행 대상 트랜잭션의 발송 주소를 식별하는 동작;
    상기 발송 주소와 대응되는 논스를 상기 저장 장치로부터 획득하는 동작;
    상기 획득된 논스를 상기 선택된 발행 대상 트랜잭션의 논스로서 할당하는 동작; 및
    상기 논스가 할당된 트랜잭션을 상기 제2 저장영역에 저장하는 동작을 수행하기 위한 인스트럭션들(instructions)을 포함하는,
    컴퓨팅 장치.
  13. 제12항에 있어서,
    상기 프로그램은,
    상기 제2 저장영역에 저장된 트랜잭션을 블록체인 네트워크로 전송하는 동작을 더 포함하는,
    컴퓨팅 장치.
  14. 제12항에 있어서,
    상기 제1 저장영역에 저장된 발행 대상 트랜잭션은 선입선출 방식으로 선택되는 것인,
    컴퓨팅 장치.
  15. 제12항에 있어서,
    상기 제1 저장영역 및 상기 제2 저장영역은, 각각 복수의 파티션으로 분할되고,
    트랜잭션의 발송 주소에 기초하여, 트랜잭션이 저장되는 파티션이 결정되는 것인,
    컴퓨팅 장치.
  16. 제12항에 있어서,
    상기 저장 장치는 캐시인 것인,
    컴퓨팅 장치.
  17. 명령어를 포함하는 컴퓨터 판독 가능한 비일시적 저장 매체로서,
    상기 명령어는 프로세서에 의해 실행될 때, 상기 프로세서로 하여금,
    발행 대상 트랜잭션의 발송 주소를 식별하는 단계;
    상기 발송 주소와 대응되는 논스(nonce)를 상기 컴퓨팅 장치의 저장 장치로부터 획득하는 단계;
    상기 획득된 논스를 상기 트랜잭션의 논스로서 할당하는 단계; 및
    상기 논스가 할당된 트랜잭션을 발행하는 단계를 포함하는 동작들을 수행하도록 하는,
    컴퓨터로 판독 가능한 비일시적 저장 매체.
KR1020210193759A 2021-12-31 2021-12-31 트랜잭션 관리 방법 및 장치 KR20230103132A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210193759A KR20230103132A (ko) 2021-12-31 2021-12-31 트랜잭션 관리 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210193759A KR20230103132A (ko) 2021-12-31 2021-12-31 트랜잭션 관리 방법 및 장치

Publications (1)

Publication Number Publication Date
KR20230103132A true KR20230103132A (ko) 2023-07-07

Family

ID=87155088

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210193759A KR20230103132A (ko) 2021-12-31 2021-12-31 트랜잭션 관리 방법 및 장치

Country Status (1)

Country Link
KR (1) KR20230103132A (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160150278A (ko) 2016-06-15 2016-12-29 주식회사 코인플러그 블록체인을 기반으로 하는 금융기관 제증명서류 위변조 검증시스템 및 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160150278A (ko) 2016-06-15 2016-12-29 주식회사 코인플러그 블록체인을 기반으로 하는 금융기관 제증명서류 위변조 검증시스템 및 방법

Similar Documents

Publication Publication Date Title
CN109949111B (zh) 电子票据标识分配方法、电子票据生成方法、装置及系统
US10866760B2 (en) Storage system with efficient detection and clean-up of stale data for sparsely-allocated storage in replication
US8285690B2 (en) Storage system for eliminating duplicated data
CN108681565B (zh) 区块链数据并行处理方法、装置、设备和存储介质
CN109597818A (zh) 数据更新方法、装置、存储介质和设备
CN110247984B (zh) 业务处理方法、装置及存储介质
CN105468718B (zh) 数据一致性处理方法、装置和系统
US20160019313A1 (en) Striping of directed graphs
CN111737361B (zh) 区块链处理方法、装置、设备和存储介质
US9946721B1 (en) Systems and methods for managing a network by generating files in a virtual file system
US20220129458A1 (en) Method for generating identification id, and apparatus implementing the same method
CN111291062B (zh) 数据同步写入方法、装置、计算机设备及存储介质
CN113794764A (zh) 服务器集群的请求处理方法、介质和电子设备
KR102033401B1 (ko) 효율적으로 파일을 생성하기 위한 분산 파일 시스템 및 방법
CN116540938A (zh) 数据读取方法、装置、分布式存储系统、设备和存储介质
KR20230103132A (ko) 트랜잭션 관리 방법 및 장치
CN115510036A (zh) 数据迁移方法、装置、设备以及存储介质
US11360712B2 (en) Storage system with continuous data verification for synchronous replication of logical storage volumes
CN114493602A (zh) 区块链交易的执行方法、装置、电子设备和存储介质
CN107168646B (zh) 一种分布式数据存储控制方法及服务器
CN107153513B (zh) 一种分布式系统服务器的存储控制方法及服务器
CN107168645B (zh) 一种分布式系统的存储控制方法及系统
CN111638980A (zh) 基于内存映射的消息处理方法、装置、系统和存储介质
CN107145305B (zh) 一种分布式物理磁盘的使用方法及虚拟机
CN110046192B (zh) 请求信息的序号生成系统和方法