KR102335058B1 - 상호 의존성을 가지는 병렬 트랜잭션들을 선형화하는 방법, 이를 이용하는 블록체인 노드 및 프로그램 - Google Patents

상호 의존성을 가지는 병렬 트랜잭션들을 선형화하는 방법, 이를 이용하는 블록체인 노드 및 프로그램 Download PDF

Info

Publication number
KR102335058B1
KR102335058B1 KR1020200037635A KR20200037635A KR102335058B1 KR 102335058 B1 KR102335058 B1 KR 102335058B1 KR 1020200037635 A KR1020200037635 A KR 1020200037635A KR 20200037635 A KR20200037635 A KR 20200037635A KR 102335058 B1 KR102335058 B1 KR 102335058B1
Authority
KR
South Korea
Prior art keywords
parallel
transactions
parallel transactions
linearizing
node
Prior art date
Application number
KR1020200037635A
Other languages
English (en)
Other versions
KR20210061240A (ko
Inventor
전효진
유민수
Original Assignee
한양대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한양대학교 산학협력단 filed Critical 한양대학교 산학협력단
Publication of KR20210061240A publication Critical patent/KR20210061240A/ko
Application granted granted Critical
Publication of KR102335058B1 publication Critical patent/KR102335058B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • 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/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • G06Q20/0655Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash e-cash managed centrally
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0815Network architectures or network communication protocols for network security for authentication of entities providing single-sign-on or federations
    • 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
    • H04L2209/38
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

본 발명의 실시 예에 따른 상호 의존성을 가지는 병렬 트랜잭션들을 선형화하는 방법은 상호 의존성을 가지는 병렬 트랜잭션들을 모집하는 단계, 집된 상기 병렬 트랜잭션들을 가상 실행 시점을 기준으로 정렬하는 단계, 정렬된 상기 병렬 트랜잭션들 중에서 인접한 병렬 트랜잭션들 간의 가상 실행 시점의 차이에 따라, 상기 병렬 트랜잭션들을 적어도 2이상의 집합들로 분할하는 단계 및 분할된 상기 적어도 2이상의 집합들 각각에 포함된 병렬 트랜잭션들을 병렬적으로 실행시킨 결과에 따라, 상기 병렬 트랜잭션들을 선형화하는 단계를 포함한다.

Description

상호 의존성을 가지는 병렬 트랜잭션들을 선형화하는 방법, 이를 이용하는 블록체인 노드 및 프로그램{METHOD FOR LINEARIZNG CONCURRENT TRANSACTIONS HAVING INTERDEPENDENCIES, BLOCKCAHIN NODE DEVICE AND PROGRAM USING THE SAME}
본 발명은 기술적 상호 의존성을 가지는 병렬 트랜잭션들을 선형화하는 방법, 이를 이용하는 블록체인 노드 및 프로그램에 관한 것으로, 보다 상세하게는 가상 실행 시점에 따라 정렬된 병렬 트랜잭션들 중에서 인접한 병렬 트랜잭션들 간의 가상 실행 시점의 차이에 따라, 병렬 트랜잭션들을 적어도 2이상의 집합들로 분할하여 선형화할 수 있는 상호 의존성을 가지는 병렬 트랜잭션들을 선형화하는 방법, 이를 이용하는 블록체인 노드 및 프로그램에 관한 것이다.
블록체인이란 익명성과 무결성이 보장되면서도 모든 데이터가 암호화되어 블록이라는 구조체에 기록되어 데이터의 신뢰성을 확보할 수 있는 분산 플랫폼이다.
기존의 블록체인에서는 스마트 컨트랙트 트랜잭션들이 서로 독립적인 것으로 간주하기 때문에 상호 의존성을 가지면서 병렬적으로 발생하는 트랜잭션들을 처리하는 데에는 한계가 있었다.
본 발명의 기술적 사상이 이루고자 하는 과제는 가상 실행 시점에 따라 정렬된 병렬 트랜잭션들 중에서 인접한 병렬 트랜잭션들 간의 가상 실행 시점의 차이에 따라, 병렬 트랜잭션들을 적어도 2이상의 집합들로 분할하여 선형화할 수 있는 상호 의존성을 가지는 병렬 트랜잭션들을 선형화하는 방법, 이를 이용하는 블록체인 노드 및 프로그램을 제공하는 것이다.
본 발명의 일 실시 예에 따른 상호 의존성을 가지는 병렬 트랜잭션들을 선형화하는 방법은, 상호 의존성을 가지는 병렬 트랜잭션들을 모집하는 단계; 모집된 상기 병렬 트랜잭션들을 가상 실행 시점을 기준으로 정렬하는 단계; 및 정렬된 상기 병렬 트랜잭션들을 병렬적으로 실행시킨 결과에 따라, 상기 병렬 트랜잭션들을 선형화하는 단계를 포함할 수 있다.
실시 예에 따라, 상기 상호 의존성을 가지는 병렬 트랜잭션들을 선형화하는 방법은, 정렬된 상기 병렬 트랜잭션들 중에서 인접한 병렬 트랜잭션들 간의 가상 실행 시점의 차이에 따라, 상기 병렬 트랜잭션들을 적어도 2이상의 집합들로 분할하는 단계를 더 포함하고, 상기 선형화하는 단계는, 분할된 상기 적어도 2이상의 집합들 각각에 포함된 상기 병렬 트랜잭션들을 병렬적으로 실행시킨 결과에 따라, 상기 병렬 트랜잭션들을 선형화할 수 있다.
실시 예에 따라, 상기 상호 의존성을 가지는 병렬 트랜잭션들은, 상기 병렬 트랜잭션들 간에 공유하는 변수가 같거나, 상기 병렬 트랜잭션들의 발행시간 또는 처리 순서에 선후관계가 있는, 상호 의존성을 가지는 병렬 트랜잭션들을 선형화할 수 있다.
실시 예에 따라, 상기 가상 실행 시점은, 상기 병렬 트랜잭션들 각각이 발행된 발행 시점과 블록 생성자가 상기 병렬 트랜잭션들 각각을 수신한 수신 시점의 중간 값으로 계산될 수 있다.
실시 예에 따라, 상기 적어도 2이상의 집합들로 분할하는 단계는, 상기 인접한 병렬 트랜잭션들 간의 가상 실행 시점의 차이 값을 기준값과 비교하는 단계; 및 비교 결과에 따라, 상기 가상 실행 시점의 차이 값이 상기 기준값보다 큰 지점을 기준으로 상기 병렬 트랜잭션들을 적어도 2이상의 집합들로 분할하는 단계;를 포함할 수 있다.
실시 예에 따라, 상기 병렬 트랜잭션들을 선형화하는 단계는, 상기 적어도 2이상의 집합들 각각에 대하여, 집합 단위로 집합 내에 포함된 상기 병렬 트랜잭션들을 병렬적으로 실행시키는 단계; 및 실행 결과에 따라 상기 적어도 2이상의 집합들 각각의 집합 내에서 상기 병렬 트랜잭션들을 선형화하는 단계;를 포함할 수 있다.
실시 예에 따라, 상기 집합 단위로 집합 내에 포함된 상기 병렬 트랜잭션들을 병렬적으로 실행시키는 단계는, 상기 병렬 트랜잭션들이 포함되는 블록 체인 내의 노드들 중에서 어느 하나의 노드를 코디네이터 노드로 선정하는 단계; 및 선정된 상기 코디네이터 노드가, 상기 집합 단위로 집합 내에 포함된 상기 병렬 트랜잭션들을 외부 참여 노드들에 배분하여 상기 병렬 트랜잭션들을 병렬적으로 실행시키는 단계;를 포함할 수 있다.
실시 예에 따라, 상기 코디네이터 노드는, 동시 접근을 막는 임계 영역에 대한 접근 권한을 상기 외부 참여 노드들 각각에 대하여 접근 요청된 순서에 따라 순차적으로 부여함으로써, 병렬적으로 실행된 상기 병렬 트랜잭션들의 실행 결과를 로그 형태로 수집할 수 있다.
실시 예에 따라, 상기 코디네이터 노드는, 상기 외부 참여 노드들 각각으로부터 전송된 상기 접근 요청된 순서에 따라 외부 참여 노드들 각각의 병렬 트랜잭션 실행 결과를 순차적으로 상기 로그 형태로 수집할 수 있다.
실시 예에 따라, 상기 코디네이터 노드는, 상기 블록 체인 내의 노드들 중에서 임의의 상기 어느 하나의 노드로 선정될 수 있다.
실시 예에 따라, 상기 코디네이터 노드를 선정하는 단계는, 상기 블록 체인 내의 노드들 중에서, 상기 병렬 트랜잭션들의 모집이 시작되는 모집 시작 블록의 정보와 상기 병렬 트랜잭션들의 모집이 종료되는 모집 종료 블록의 정보를 포함하는 오프닝 트랜잭션을 발행한 노드를 상기 코디네이터 노드로 선정할 수 있다.
실시 예에 따라, 상기 병렬 트랜잭션들 각각은, 스마트 컨트랙트(smart contract) 트랜잭션일 수 있다.
실시 예에 따라, 상기 병렬 트랜잭션들을 모집하는 단계 이후부터 상기 병렬 트랜잭션들을 선형화하는 단계가 수행되며, 선형화의 결과와 트랜잭션의 실행결과는 클로징 트랜잭션에 저장될 수 있다.
본 발명의 실시 예에 따른, 블록 체인 노드는 상호 의존성을 가지는 병렬 트랜잭션들을 모집하는 병렬 트랜잭션 모집 모듈; 모집된 상기 병렬 트랜잭션들을 가상 실행 시점을 기준으로 정렬하는 병렬 트랜잭션 정렬 모듈; 및 정렬된 상기 병렬 트랜잭션들을 병렬적으로 실행시킨 결과에 따라, 상기 병렬 트랜잭션들을 선형화하는 병렬 트랜잭션 선형화 모듈을 포함할 수 있다.
실시 예에 따라, 프로세서(processor)와 결합되어 상호 의존성을 가지는 병렬 트랜잭션들을 선형화하는 방법을 수행하기 위한 매체에 저장된 프로그램은 상호 의존성을 가지는 병렬 트랜잭션들을 모집하는 단계; 모집된 상기 병렬 트랜잭션들을 가상 실행 시점을 기준으로 정렬하는 단계; 및 정렬된 상기 병렬 트랜잭션들을 병렬적으로 실행시킨 결과에 따라, 상기 병렬 트랜잭션들을 선형화하는 단계를 수행할 수 있다.
본 발명의 실시 예에 따른 방법과 장치는 가상 실행 시점에 따라 정렬된 병렬 트랜잭션들 중에서 인접한 병렬 트랜잭션들 간의 가상 실행 시점의 차이에 따라, 병렬 트랜잭션들을 적어도 2이상의 집합들로 분할하여 선형화함으로써, 공유하는 변수가 같거나 발행시간 또는 처리 순서에 선후관계가 있는 등의 상호 의존성을 가지는 병렬 트랜잭션들을 효과적으로 선형화할 수 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 본 발명의 일 실시 예에 따른 블록체인 네트워크와 병렬 트랜잭션들의 선형화에 참여하는 외부 참여 노드가 포함된 외부 네트워크의 개념도이다.
도 2는 도 1에 도시된 블록체인 네트워크에 포함된 노드들 중에서 어느 하나의 노드의 일 실시 예에 따른 블록도이다.
도 3은 본 발명의 일 실시 예에 따른 상호 의존성을 가지는 병렬 트랜잭션들을 선형화하는 방법의 플로우차트이다.
도 4는 도 3의 방법에 따른 병렬 트랜잭션들의 선형화 과정을 개략적으로 나타낸 도면이다.
도 5 내지 도 7은 본 발명의 일 실시 예에 따른 상호 의존성을 가지는 병렬 트랜잭션들을 선형화하는 방법에서 사용되는 트랜잭션 종류별 자료구조이다.
도 8은 도 3의 방법에 따라 정렬된 병렬 트랜잭션들이 적어도 2이상의 집합들로 분할되는 과정을 나타낸 도면이다.
도 9는 도 1에 도시된 코디네이터 노드와 병렬 트랜잭션들의 선형화에 참여하는 외부 참여 노드 간의 데이터 흐름도를 나타낸 도면이다.
본 발명의 기술적 사상은 다양한 변경을 가할 수 있고 여러 가지 실시 예를 가질 수 있는 바, 특정 실시 예들을 도면에 예시하고 이를 상세한 설명을 통해 상세히 설명하고자 한다. 그러나, 이는 본 발명의 기술적 사상을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 기술적 사상의 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
본 발명의 기술적 사상을 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 본 명세서의 설명 과정에서 이용되는 숫자(예를 들어, 제1, 제2 등)는 하나의 구성요소를 다른 구성요소와 구분하기 위한 식별기호에 불과하다.
또한, 본 명세서에서, 일 구성요소가 다른 구성요소와 "연결된다" 거나 "접속된다" 등으로 언급된 때에는, 상기 일 구성요소가 상기 다른 구성요소와 직접 연결되거나 또는 직접 접속될 수도 있지만, 특별히 반대되는 기재가 존재하지 않는 이상, 중간에 또 다른 구성요소를 매개하여 연결되거나 또는 접속될 수도 있다고 이해되어야 할 것이다.
또한, 본 명세서에 기재된 "~부", "~기", "~자", "~모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 프로세서(Processor), 마이크로 프로세서(Micro Processer), 마이크로 컨트롤러(Micro Controller), CPU(Central Processing Unit), GPU(Graphics Processing Unit), APU(Accelerate Processor Unit), DSP(Drive Signal Processor), ASIC(Application Specific Integrated Circuit), FPGA(Field Programmable Gate Array) 등과 같은 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있으며, 적어도 하나의 기능이나 동작의 처리에 필요한 데이터를 저장하는 메모리(memory)와 결합되는 형태로 구현될 수도 있다.
그리고 본 명세서에서의 구성부들에 대한 구분은 각 구성부가 담당하는 주기능 별로 구분한 것에 불과함을 명확히 하고자 한다. 즉, 이하에서 설명할 2개 이상의 구성부가 하나의 구성부로 합쳐지거나 또는 하나의 구성부가 보다 세분화된 기능별로 2개 이상으로 분화되어 구비될 수도 있다. 그리고 이하에서 설명할 구성부 각각은 자신이 담당하는 주기능 이외에도 다른 구성부가 담당하는 기능 중 일부 또는 전부의 기능을 추가적으로 수행할 수도 있으며, 구성부 각각이 담당하는 주기능 중 일부 기능이 다른 구성부에 의해 전담되어 수행될 수도 있음은 물론이다.
이하, 본 발명의 기술적 사상에 따른 실시 예들을 차례로 상세히 설명한다.
도 1은 본 발명의 일 실시 예에 따른 블록체인 네트워크와 병렬 트랜잭션들의 선형화에 참여하는 외부 참여 노드가 포함된 외부 네트워크의 개념도이다.
도 1을 참조하면, 블록체인 네트워크(block chain network, NET_BC)에는 복수의 블록체인 노드들이 포함될 수 있으며, 복수의 블록체인 노드들 중에서 적어도 어느 하나의 블록체인 노드(예컨대, LC)는 병렬 트랜잭션들의 병렬적 실행을 위하여, 블록체인 네트워크(NET_BC)와 외부 네트워크(NET_SUB)를 이용할 수 있다.
이 경우, 어느 하나의 블록체인 노드(LC)는 병렬 트랜잭션들의 선형화를 수행하는 코디네이터 노드(coordinator node)로 동작할 수 있다. 코디네이터 노드(예컨대, LC)는 외부 네트워크(NET_SUB)에 포함된 외부 참여 노드들(예컨대, LN1~LN3)에 병렬 트랜잭션들을 배분하고, 외부 참여 노드들(예컨대, LN1~LN3)에 의한 병렬 트랜잭션의 수행 결과를 이용하여, 병렬 트랜잭션들을 선형화할 수 있다.
실시 예에 따라, 외부 참여 노드들(예컨대, LN1~LN3)은 외부 네트워크(NET_SUB)에 접속해 있되, 블록체인 네트워크(NET_BC)의 블록체인 데이터를 함께 가지고 있는 블록체인 노드일 수 있다.
블록체인 네트워크(NET_BC)의 코디네이터 노드(LC)와 외부 네트워크(NET_SUB)의 외부 참여 노드들(LN1~LN3) 간의 세부적인 데이터 처리 과정은 도 9를 참조하여 후술하도록 한다.
본 명세서에서 "노드(node)"는 네트워크의 적어도 일부를 구성하는 장치를 의미할 수 있으며, "노드 장치"라고 일컬어질 수도 있다.
본 명세서에서 "트랜잭션(transaction)"은 데이터의 상태를 변경하는 작업의 단위를 폭 넓게 의미할 수 있다. 예컨대, "트랜잭션"은 다자간의 계약의 체결과 이행에 따른 데이터 상태의 변화를 포함할 수 있다.
본 명세서에서 "병렬 트랜잭션들"은 선후 관계가 불분명한 상태로 발행되었거나 실행이 요구되고 있는 적어도 2이상의 트랜잭션들을 의미할 수 있다. 실시 예에 따라, 병렬 트랜잭션들은 상호 의존성을 가질 수 있으며, 상호 의존성을 가지는 경우는 병렬 트랜잭션들 간에 서로 공유하는 변수가 같거나, 병렬 트랜잭션들의 발행시간 또는 처리 순서에 선후 관계가 있는 경우 등을 포함할 수 있다.
실시 예에 따라, 병렬 트랜잭션들 각각은 스마트 컨트랙트(smart contract) 트랜잭션일 수 있다.
도 2는 도 1에 도시된 블록체인 네트워크에 포함된 노드들 중에서 어느 하나의 노드의 일 실시 예에 따른 블록도이다. 도 3은 본 발명의 일 실시 예에 따른 상호 의존성을 가지는 병렬 트랜잭션들을 선형화하는 방법의 플로우차트이다. 도 4는 도 3의 방법에 따른 병렬 트랜잭션들의 선형화 과정을 개략적으로 나타낸 도면이다. 도 5 내지 도 7은 본 발명의 일 실시 예에 따른 상호 의존성을 가지는 병렬 트랜잭션들을 선형화하는 방법에서 사용되는 트랜잭션 종류별 자료구조이다. 도 8은 도 3의 방법에 따라 정렬된 병렬 트랜잭션들이 적어도 2이상의 집합들로 분할되는 과정을 나타낸 도면이다. 도 9는 도 1에 도시된 코디네이터 노드와 병렬 트랜잭션들의 선형화에 참여하는 외부 참여 노드 간의 데이터 흐름도를 나타낸 도면이다.
도 1 내지 도 3을 참조하면, 도 2에는 블록체인 네트워크(NET_BC)에 포함된 노드들 중에서 어느 하나의 블록체인 노드(100)의 예시적인 블록도가 도시된다.
블록체인 노드(100)는 통신 인터페이스(110), 메모리(120), 및 프로세서(130)를 포함할 수 있다.
통신 인터페이스(110)는 블록체인 노드(100)와 다른 노드들(예컨대, 외부 네트워크(NET_SUB)의 외부 참여 노드들(LN1~LN3))과의 통신을 인터페이싱할 수 있으며, 인터페이싱 과정에서 송수신되는 데이터 또는 신호를 처리할 수 있다.
메모리(120)는 블록체인 노드(100)가 상호 의존성을 가지는 병렬 트랜잭션들을 선형화하는 방법을 수행하는 데에 필요한 데이터와 프로세서(130)의 처리 과정에서 필요한 데이터, 프로세서(130)의 처리 과정 중 또는 처리 완료 후에 생성된 데이터를 저장할 수 있다.
실시 예에 따라, 메모리(120)는 본 발명의 실시 예에 따른 상호 의존성을 가지는 병렬 트랜잭션들을 선형화하는 방법을 수행하기 위한 프로그램을 저장할 수 있으며, 메모리(120)는 프로세서(130)와 결합되어 상기 프로그램을 실행시킬 수 있다.
프로세서(130)는 병렬 트랜잭션 모집 모듈(132), 병렬 트랜잭션 정렬 모듈(134), 집합 생성 모듈(136), 및 병렬 트랜잭션 선형화 모듈(138)을 포함할 수 있다.
도 3을 함께 참조하면, 병렬 트랜잭션 모집 모듈(132)은 상호 의존성을 가지는 병렬 트랜잭션들을 모집할 수 있다(S310).
도 4 내지 도 7을 함께 참조하면, 블록체인에 포함되는 블록들은 도 5에 도시된 오프닝 트랜잭션(opening transaction), 도 6에 도시되는 병렬 트랜잭션(concurrent transaction), 또는 도 7에 도시되는 클로징 트랜잭션(closing transaction)을 포함할 수 있다.
오프닝 트랜잭션(Opening Tx)은 병렬 트랜잭션들을 모집하기 위한 정보를 공지하는 트랜잭션이다. 실시 예에 따라, 오프닝 트랜잭션은 컨트랙트 발행자 또는 관리자에 의해 발행될 수 있다.
실시 예에 따라, 오프닝 트랜잭션은 트랜잭션 설명(TxInfo), 모집 시작 블록 번호(StartNum), 모집 종료 블록 번호(EndNum), 결과 블록 번호(ResultNum), 분산 클록 오차 한도(ClockLimit), 선형화 네트워크 ID(LinNetId), 및 모집 노드의 최대 숫자(LiNetMax)의 데이터를 포함할 수 있다.
트랜잭션 설명(TxInfo)은 해당 트랜잭션이 어떠한 상황(예컨대, 계약 종류 등)에 따라 발생되었는지 등의 트랜잭션에 관한 기본적인 정보를 포함할 수 있다.
모집 시작 블록 번호(StartNum)는 모집하고자 하는 병렬 트랜잭션들이 포함된 블록들 중에서 최초의 블록 번호(예컨대, 도 4의 블록 101)에 관한 정보를 포함할 수 있다.
모집 종료 블록 번호(EndNum)는 모집하고자 하는 병렬 트랜잭션들이 포함된 블록들 중에서 최종의 블록 번호(예컨대, 도 4의 블록 102)에 관한 정보를 포함할 수 있다.
결과 블록 번호(ResultNum)는 트랜잭션들 실행 결과가 담길 블록의 번호(예컨대, 도 4의 블록 110)에 관한 정보를 포함할 수 있다.
분산 클록 오차 한도(ClockLimit)는 병렬 트랜잭션들을 적어도 2이상의 집합들로 분할하는 과정에서, 분할 지점을 판단하기 위한 기준값에 관한 정보를 포함할 수 있다. 병렬 트랜잭션들을 적어도 2이상의 집합들로 분할하는 세부적인 과정은 도 8을 참조하여 후술하도록 한다.
선형화 네트워크 ID(LinNetID)는 선형화할 병렬 트랜잭션들이 존재하는 네트워크의 식별 정보를 포함할 수 있다.
모집 노드의 최대 숫자(LinNetMax)는 병렬 트랜잭션들을 병렬 트랜잭션들의 병렬적 실행을 위하여, 블록체인 네트워크(예컨대, NET_BC)와 구분된 외부 네트워크(예컨대, NET_SUB)로부터 활용할 외부 참여 노드들(예컨대, LN1~LN3)의 최대 숫자에 관한 정보를 포함할 수 있다.
병렬 트랜잭션(Concurrent Tx)은 트랜잭션 생성 시점(sendTime)과 블록 생성자 수신 시점(rcvTime)의 데이터를 포함할 수 있다.
트랜잭션 생성 시점(sendTime)은 해당 트랜잭션이 생성된 시간에 관한 정보를 포함할 수 있다.
블록 생성자 수신 시점(rcvTime)은 블록 생성자가 해당 트랜잭션을 수신한 시간에 관한 정보를 포함할 수 있다.
클로징 트랜잭션(Closing Tx)은 개시 트랜잭션 ID(OpTxId), 선형화 참여 노드들 ID(LinNetId), 선형화 결과(LinResult), 및 트랜잭션 실행 결과(TxResult)의 데이터를 포함할 수 있다.
개시 트랜잭션 ID(OpTxId)는 오프닝 트랜잭션(Opening Tx)의 식별 정보를 포함할 수 있다.
선형화 참여 노드들 ID(LinNetId)는 병렬 트랜잭션들의 선형화에 참여하는 외부 네트워크(예컨대, NET_SUB)로부터 활용할 외부 참여 노드들(예컨대, LN1~LN3)의 식별 정보를 포함할 수 있다.
선형화 결과(LinResult)는 병렬 트랜잭션들의 선형화 결과에 따른 병렬 트랜잭션들의 선후 관계 등에 대한 정보를 포함할 수 있다.
트랜잭션 실행 결과(TxResult)는 병렬 트랜잭션들의 실행 결과에 대한 정보를 포함할 수 있다.
도 4를 참조하면, 병렬 트랜잭션 모집 모듈(132)은 상호 의존성을 가지는 병렬 트랜잭션들(예컨대, CTx1~CTx6)을 모집하기 위한 정보를 오프닝 트랜잭션(Opening Tx1)으로부터 획득하여, 모집 시작 블록 번호(예컨대, 블록 101)부터 모집 종료 블록 번호(예컨대, 블록102)까지의 블록들에 포함된 병렬 트랜잭션들(예컨대, CTx1~CTx4)을 모집할 수 있다.
도 3으로 돌아와서, 병렬 트랜잭션 정렬 모듈(134)은 S310 단계에서 모집된 병렬 트랜잭션들(예컨대, CTx1~CTx6)을 정렬할 수 있다(S320).
실시 예에 따라, 병렬 트랜잭션들(예컨대, CTx1~CTx6)을 제외한 나머지 트랜잭션들(Tx10~Tx20)은 별도의 선형화 처리 없이 실행될 수 있지만, 병렬 트랜잭션들(예컨대, CTx1~CTx6)은 상호 의존성을 가지면서도 실행 시점의 선후가 불분명하기 때문에 실행이 보류될 수 있다.
병렬 트랜잭션 정렬 모듈(134)은 병렬 트랜잭션들(예컨대, CTx1~CTx6)의 가상 실행 시점을 기준으로 정렬할 수 있다.
실시 예에 따라, 가상 실행 시점은 각 병렬 트랜잭션들(예컨대, CTx1~CTx6)이 발행된 발행 시점과 블록 생성자가 각 병렬 트랜잭션들(예컨대, CTx1~CTx6)을 수신한 수신 시점에 기초하여 계산될 수 있다. 예컨대, 가상 실행 시점은 각 병렬 트랜잭션들(예컨대, CTx1~CTx6)이 발행된 발행 시점과 블록 생성자가 각 병렬 트랜잭션들(예컨대, CTx1~CTx6)을 수신한 수신 시점의 중간 값으로 계산될 수 있다.
도 8을 참조하면, 병렬 트랜잭션들(예컨대, CTx1~CTx6) 각각의 가상 실행 시점은 10000, 10007, 10010, 10020, 10025, 10040일 수 있으며, 가상 실행 시점의 오름차순으로 정렬될 수 있다.
도 3으로 돌아와서, 집합 생성 모듈(136)은 정렬된 병렬 트랜잭션들을 적어도 2이상의 집합들로 분할할 수 있다(S330).
도 8을 함께 참조하면, 정렬된 병렬 트랜잭션들(예컨대, CTx1~CTx6)은 최초에 하나의 집합(P1)에서 2개의 집합들(P1, P2)로 분할되고, 최종적으로 3개의 집합들(P1, P2, P3)로 분할될 수 있다.
이 때, 집합 생성 모듈(136)은 병렬 트랜잭션들(예컨대, CTx1~CTx6) 간의 가상 실행 시점의 차이 값을 기준값(예컨대, 분산 클럭 오차 한도)과 비교하고, 비교 결과에 따라 가상 실행 시점의 차이 값이 기준값보다 큰 지점을 기준으로 병렬 트랜잭션들(예컨대, CTx1~CTx6)을 적어도 2이상의 집합들로 분할할 수 있다.
예컨대, 기준값이 "9"인 경우에, 가상 실행 시점의 차이 값이 "10"의 값으로 "9"보다 큰 값을 갖는 제3병렬 트랜잭션(CTx3)과 제4병렬 트랜잭션(CTx4)의 사이 지점과, 가상 실행 시점의 차이 값이 "15"의 값으로 "9"보다 큰 값을 갖는 제5병렬 트랜잭션(CTx5)과 제6병렬 트랜잭션(CTx6)의 사이 지점에서 집합이 분할될 수 있다.
실시 예에 따라, 분할된 집합들 간에서는 분할되어 생성된 순서에 따라 집합들이 선형화될 수 있다. 예컨대, 2단계에서 생성된 제1그룹(P1)이 우선순위를 가지고, 다음으로는 3단계(step3)에서 제1집합(P1)으로부터 분할되어 생성된 제2집합(P2)이 우선순위를 가지고, 마지막으로 4단계(step4)에서 제2집합(P2)으로부터 분할되어 생성된 제3집합(P3)이 우선순위를 가질 수 있다.
실시 예에 따라, 모든 인접한 병렬 트랜잭션들 간의 가상 실행 시점의 차이 값이 기준값보다 작은 값을 갖는 경우에는 정렬된 병렬 트랜잭션들은 1개의 집합에 포함될 수 있다.
실시 예에 따라, S330 단계는 생략될 수 있다.
도 3으로 돌아와서, 병렬 트랜잭션 선형화 모듈(138)은 분할된 적어도 2이상의 집합들 각각에 포함된 병렬 트랜잭션들을 병렬적으로 실행할 수 있다(S340).
도 8을 함께 참조하면, 하나의 집합으로 분할된 집합(예컨대, P1) 내에 포함된 병렬 트랜잭션들(CTx1, CTx2, CTx3)은 병렬적으로 실행될 수 있다.
도 9를 함께 참조하면, 하나의 집합으로 분할된 집합(예컨대, P1) 내에 포함된 병렬 트랜잭션들(CTx1, CTx2, CTx3)은 블록체인 네트워크(NET_BC)에서 선택된 코디네이터 노드(LC)에 의하여, 외부 네트워크(NET_SUB)에 포함된 복수의 외부 참여 노드들(LN1, LN2, LN3) 각각으로 배분될 수 있다(S910).
실시 예에 따라, 코디네이터 노드(LC)는 블록체인 네트워크(NET_BC) 내의 노드들 중에서 임의의 어느 하나의 노드로 선정될 수 있다.
다른 실시 예에 따라, 블록체인 네트워크(NET_BC) 내의 노드들 중에서 병렬 트랜잭션들의 모집이 시작되는 모집 시작 블록의 정보와 병렬 트랜잭션들의 모집이 종료되는 모집 종료 블록의 정보를 포함하는 오프닝 트랜잭션을 발행한 노드가 코디네이터 노드로 선정될 수 있다.
도 9에서는 설명의 편의를 위하여 외부 참여 노드들(LN1, LN2, LN3) 중에서 하나의 외부 참여 노드(LN2) 만을 도시하였다.
병렬 트랜잭션을 배분받은 외부 참여 노드들 각각(예컨대, LN2)은 코디네이터 노드(LC) 측으로 임계영역 접근을 요청할 수 있다(S920).
임계영역은 외부 참여 노드들(LN1~LN3)이 코디네이터 노드(LC)로의 동시 접근을 막기 위하여 설정된 영역이다. 예컨대, 임계 영역은 블록체인의 스마트 컨트랙트 내에 설정될 수 있다. 임계영역은 기본적으로 락(lock) 상태로 접근이 금지되어 있으며, 접근된 노드들 중에서 하나의 노드에 대해서만 접근을 허용할 수 있다.
코디네이터 노드(LC)는 임계영역에 접근한 외부 참여 노드들(LN1, LN2, LN3) 중에서 하나의 외부 참여 노드(예컨대, LN2)에 대하여 접근 권한을 부여할 수 있다(S930).
실시 예에 따라, 코디네이터 노드(LC)는 외부 참여 노드들(LN1, LN2, LN3)의 임계영역에 대한 접근이 요청된 순서에 따라 접근 권한을 부여할 수 있다.
접근 권한이 부여된 외부 참여 노드(예컨대, LN2)는 트랜잭션(예컨대, Tx1)을 실행시키고(S940), 실행 결과를 코디네이터 노드(LC) 측으로 전송할 수 있다(S950).
코디네이터 노드(LC)는 외부 참여 노드(예컨대, LN2)의 트랜잭션 실행 결과를 수신하여 로그를 업데이트할 수 있다(S960).
실시 예에 따라, 코디네이터 노드(LC)는 트랜잭션 실행 결과가 수신된 순서에 따라 로그를 순차적으로 업데이트할 수 있다.
예컨대, 최초에 제2외부 참여 노드(LN2)에 접근 권한을 부여한 결과에 따라 제1병렬 트랜잭션(CTx1)의 실행결과를 로그에 기록하고, 다음으로 제1외부 참여 노드(LN1)에 접근 권한을 부여한 결과에 따라 제2병렬 트랜잭션(CTx2)의 실행결과를 로그에 기록하고, 다음으로 제3외부 참여 노드(LN3)에 접근 권한을 부여한 결과에 따라 제3병렬 트랜잭션(CTx3)의 실행결과를 로그에 기록할 수 있다.
도 3으로 돌아와서, 병렬 트랜잭션 선형화 모듈(138)은 S340단계의 수행 결과에 따라 병렬 트랜잭션들을 선형화할 수 있다(S350).
실시 예에 따라, 병렬 트랜잭션 선형화 모듈(138)은 S960 단계에서 업데이트된 로그를 활용하여 병렬 트랜잭션들을 선형화할 수 있다.
실시 예에 따라, S350 단계의 선형화 결과와 트랜잭션들의 실행결과는 클로징 트랜잭션에 저장될 수 있다.
실시 예에 따라, S340 단계 내지 S350 단계의 선형화 과정은, 도 4에 도시된 바와 같이 병렬 트랜잭션의 모집과정(S310)과 선형화 참여 노드 모집과정(S320, S330) 이후에 수행될 수 있다.
이상, 본 발명의 기술적 사상을 다양한 실시 예들을 들어 상세하게 설명하였으나, 본 발명의 기술적 사상은 상기 실시 예들에 한정되지 않고, 본 발명의 기술적 사상의 범위 내에서 당 분야에서 통상의 지식을 가진 자에 의하여 여러가지 변형 및 변경이 가능하다.
100 : 블록체인 노드
110 : 통신 인터페이스
120 : 메모리
130: 프로세서

Claims (15)

  1. 블록체인 노드가, 상호 의존성을 가지는 병렬 트랜잭션들을 모집하는 단계;
    상기 블록체인 노드가, 모집된 상기 병렬 트랜잭션들을 가상 실행 시점을 기준으로 정렬하는 단계; 및
    상기 블록체인 노드가, 정렬된 상기 병렬 트랜잭션들을 병렬적으로 실행시킨 결과에 따라, 상기 병렬 트랜잭션들을 선형화하는 단계를 포함하며,
    상기 가상 실행 시점은,
    상기 병렬 트랜잭션들 각각이 발행된 발행 시점과 블록 생성자가 상기 병렬 트랜잭션들 각각을 수신한 수신 시점의 중간 값으로 계산되는, 상호 의존성을 가지는 병렬 트랜잭션들을 선형화하는 방법.
  2. 제1항에 있어서,
    상기 상호 의존성을 가지는 병렬 트랜잭션들을 선형화하는 방법은,
    상기 블록체인 노드가, 정렬된 상기 병렬 트랜잭션들 중에서 인접한 병렬 트랜잭션들 간의 가상 실행 시점의 차이에 따라, 상기 병렬 트랜잭션들을 적어도 2이상의 집합들로 분할하는 단계를 더 포함하고,
    상기 선형화하는 단계는,
    상기 블록체인 노드가, 분할된 상기 적어도 2이상의 집합들 각각에 포함된 상기 병렬 트랜잭션들을 병렬적으로 실행시킨 결과에 따라, 상기 병렬 트랜잭션들을 선형화하는, 상호 의존성을 가지는 병렬 트랜잭션들을 선형화하는 방법.
  3. 제1항에 있어서,
    상기 상호 의존성을 가지는 병렬 트랜잭션들은,
    상기 병렬 트랜잭션들 간에 공유하는 변수가 같거나, 상기 병렬 트랜잭션들의 발행시간 또는 처리 순서에 선후관계가 있는, 상호 의존성을 가지는 병렬 트랜잭션들을 선형화하는 방법.
  4. 삭제
  5. 제2항에 있어서,
    상기 적어도 2이상의 집합들로 분할하는 단계는,
    상기 블록체인 노드가, 상기 인접한 병렬 트랜잭션들 간의 가상 실행 시점의 차이 값을 기준값과 비교하는 단계; 및
    상기 블록체인 노드가, 비교 결과에 따라, 상기 가상 실행 시점의 차이 값이 상기 기준값보다 큰 지점을 기준으로 상기 병렬 트랜잭션들을 적어도 2이상의 집합들로 분할하는 단계;를 포함하는, 상호 의존성을 가지는 병렬 트랜잭션들을 선형화하는 방법.
  6. 제2항에 있어서,
    상기 병렬 트랜잭션들을 선형화하는 단계는,
    상기 블록체인 노드가, 상기 적어도 2이상의 집합들 각각에 대하여, 집합 단위로 집합 내에 포함된 상기 병렬 트랜잭션들을 병렬적으로 실행시키는 단계; 및
    상기 블록체인 노드가, 실행 결과에 따라 상기 적어도 2이상의 집합들 각각의 집합 내에서 상기 병렬 트랜잭션들을 선형화하는 단계;를 포함하는, 상호 의존성을 가지는 병렬 트랜잭션들을 선형화하는 방법.
  7. 제6항에 있어서,
    상기 집합 단위로 집합 내에 포함된 상기 병렬 트랜잭션들을 병렬적으로 실행시키는 단계는,
    상기 블록체인 노드가, 상기 병렬 트랜잭션들이 포함되는 블록 체인 내의 노드들 중에서 어느 하나의 노드를 코디네이터 노드로 선정하는 단계; 및
    상기 블록체인 노드가, 선정된 상기 코디네이터 노드가, 상기 집합 단위로 집합 내에 포함된 상기 병렬 트랜잭션들을 외부 참여 노드들에 배분하여 상기 병렬 트랜잭션들을 병렬적으로 실행시키는 단계;를 포함하는, 상호 의존성을 가지는 병렬 트랜잭션들을 선형화하는 방법.
  8. 제7항에 있어서,
    상기 코디네이터 노드는,
    동시 접근을 막는 임계 영역에 대한 접근 권한을 상기 외부 참여 노드들 각각에 대하여 접근 요청된 순서에 따라 부여함으로써, 병렬적으로 실행된 상기 병렬 트랜잭션들의 실행 결과를 로그 형태로 수집하는, 상호 의존성을 가지는 병렬 트랜잭션들을 선형화하는 방법.
  9. 제8항에 있어서,
    상기 코디네이터 노드는,
    상기 외부 참여 노드들 각각으로부터 전송된 상기 접근 요청된 순서에 따라 외부 참여 노드들 각각의 병렬 트랜잭션 실행 결과를 순차적으로 상기 로그 형태로 수집하는, 상호 의존성을 가지는 병렬 트랜잭션들을 선형화하는 방법.
  10. 제7항에 있어서,
    상기 코디네이터 노드는,
    상기 블록 체인 내의 노드들 중에서 임의의 상기 어느 하나의 노드로 선정되는, 상호 의존성을 가지는 병렬 트랜잭션들을 선형화하는 방법.
  11. 제7항에 있어서,
    상기 코디네이터 노드를 선정하는 단계는,
    상기 블록체인 노드가, 상기 블록 체인 내의 노드들 중에서, 상기 병렬 트랜잭션들의 모집이 시작되는 모집 시작 블록의 정보와 상기 병렬 트랜잭션들의 모집이 종료되는 모집 종료 블록의 정보를 포함하는 오프닝 트랜잭션을 발행한 노드를 상기 코디네이터 노드로 선정하는, 상호 의존성을 가지는 병렬 트랜잭션들을 선형화하는 방법.
  12. 제1항에 있어서,
    상기 병렬 트랜잭션들 각각은,
    스마트 컨트랙트(smart contract) 트랜잭션인, 상호 의존성을 가지는 병렬 트랜잭션들을 선형화하는 방법.
  13. 제1항에 있어서,
    상기 병렬 트랜잭션들을 모집하는 단계 이후부터 상기 병렬 트랜잭션들을 선형화하는 단계가 수행되며,
    선형화의 결과와 트랜잭션의 실행결과는 클로징 트랜잭션에 저장되는, 상호 의존성을 가지는 병렬 트랜잭션들을 선형화하는 방법.
  14. 상호 의존성을 가지는 병렬 트랜잭션들을 모집하는 병렬 트랜잭션 모집 모듈;
    모집된 상기 병렬 트랜잭션들을 가상 실행 시점을 기준으로 정렬하는 병렬 트랜잭션 정렬 모듈; 및
    정렬된 상기 병렬 트랜잭션들을 병렬적으로 실행시킨 결과에 따라, 상기 병렬 트랜잭션들을 선형화하는 병렬 트랜잭션 선형화 모듈을 포함하며,
    상기 가상 실행 시점은,
    상기 병렬 트랜잭션들 각각이 발행된 발행 시점과 블록 생성자가 상기 병렬 트랜잭션들 각각을 수신한 수신 시점의 중간 값으로 계산되는, 블록 체인 노드.
  15. 프로세서(processor)와 결합되어 상호 의존성을 가지는 병렬 트랜잭션들을 선형화하는 방법을 수행하기 위해 매체에 저장된 컴퓨터 프로그램으로서,
    상호 의존성을 가지는 병렬 트랜잭션들을 모집하는 단계;
    모집된 상기 병렬 트랜잭션들을 가상 실행 시점을 기준으로 정렬하는 단계; 및
    정렬된 상기 병렬 트랜잭션들을 병렬적으로 실행시킨 결과에 따라, 상기 병렬 트랜잭션들을 선형화하는 단계를 수행하며,
    상기 가상 실행 시점은,
    상기 병렬 트랜잭션들 각각이 발행된 발행 시점과 블록 생성자가 상기 병렬 트랜잭션들 각각을 수신한 수신 시점의 중간 값으로 계산되는, 매체에 저장된 컴퓨터 프로그램.
KR1020200037635A 2019-11-19 2020-03-27 상호 의존성을 가지는 병렬 트랜잭션들을 선형화하는 방법, 이를 이용하는 블록체인 노드 및 프로그램 KR102335058B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20190149134 2019-11-19
KR1020190149134 2019-11-19

Publications (2)

Publication Number Publication Date
KR20210061240A KR20210061240A (ko) 2021-05-27
KR102335058B1 true KR102335058B1 (ko) 2021-12-06

Family

ID=76135851

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200037635A KR102335058B1 (ko) 2019-11-19 2020-03-27 상호 의존성을 가지는 병렬 트랜잭션들을 선형화하는 방법, 이를 이용하는 블록체인 노드 및 프로그램

Country Status (1)

Country Link
KR (1) KR102335058B1 (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017212781A1 (ja) 2016-06-10 2017-12-14 日立オートモティブシステムズ株式会社 燃料噴射装置
CN107688999A (zh) 2017-08-11 2018-02-13 杭州秘猿科技有限公司 一种基于区块链的并行交易执行方法
WO2019072303A2 (en) * 2018-12-28 2019-04-18 Alibaba Group Holding Limited EXECUTING PARALLEL TRANSACTIONS IN A BLOCK CHAINS NETWORK

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3610450A4 (en) * 2019-03-28 2020-06-10 Alibaba Group Holding Limited SYSTEM AND METHOD FOR PARALLEL PROCESSING OF BLOCK CHAIN TRANSACTIONS
WO2019120334A2 (en) * 2019-04-12 2019-06-27 Alibaba Group Holding Limited Performing parallel execution of transactions in a distributed ledger system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017212781A1 (ja) 2016-06-10 2017-12-14 日立オートモティブシステムズ株式会社 燃料噴射装置
CN107688999A (zh) 2017-08-11 2018-02-13 杭州秘猿科技有限公司 一种基于区块链的并行交易执行方法
WO2019072303A2 (en) * 2018-12-28 2019-04-18 Alibaba Group Holding Limited EXECUTING PARALLEL TRANSACTIONS IN A BLOCK CHAINS NETWORK

Also Published As

Publication number Publication date
KR20210061240A (ko) 2021-05-27

Similar Documents

Publication Publication Date Title
US20220084085A1 (en) Parcelled Quantum Resources
US20150199214A1 (en) System for distributed processing of stream data and method thereof
EP1091294A2 (en) Method and apparatus for assigning resources to logical partition clusters
CN111475262A (zh) 区块链中事务请求处理方法、装置、设备和介质
WO2020081805A1 (en) Parcelled quantum resources
CN110609807B (zh) 用于删除快照数据的方法、设备和计算机可读存储介质
US9563719B2 (en) Self-monitoring object-oriented applications
CN106126730A (zh) 一种批量生成告警信息的方法及装置
US11907103B2 (en) Test environment determination device and test environment determination method
KR102335058B1 (ko) 상호 의존성을 가지는 병렬 트랜잭션들을 선형화하는 방법, 이를 이용하는 블록체인 노드 및 프로그램
US9639654B2 (en) Managing virtual boundaries to enable lock-free concurrent region optimization of an integrated circuit
CN112181599A (zh) 模型训练方法、装置及存储介质
US10585879B2 (en) Database identifier generation in transaction processing systems
Jose et al. Distributed computational framework in TOTEM architecture enabled by blockchain
WO2020001295A1 (en) Client-server architecture for multicore computer system to realize single-core-equivalent view
JP5031538B2 (ja) データ分配方法、データ分配プログラム、及び並列データベースシステム
US10248470B2 (en) Hierarchical hardware object model locking
JP5580754B2 (ja) 排他制御装置および排他制御方法
KR102342788B1 (ko) 트랜잭션의 병렬적 실행을 지원하는 방법, 이를 이용하는 블록체인 노드 및 프로그램
Idris et al. Performance Analysis of Hyperledger Fabric on Multiple Infrastructure Setup
CN113609470B (zh) 一种基于区块链的数据处理方法、节点、设备及存储介质
KR102256361B1 (ko) 데이터의 접근 제어를 위한 네트워크 장치 및 방법, 그리고 이를 이용한 데이터 접근 제어 시스템
KR102447289B1 (ko) 피어 단말기 및 피어 단말기가 블록 데이터를 처리하는 방법
JP5818264B2 (ja) 計算機システム及びジョブネット実行方法
US20240362303A1 (en) Method, device and storage media for managing a license

Legal Events

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