KR102103130B1 - 서비스 데이터를 블록체인에 기입하기 위한 방법 및 장치, 그리고 서비스 하위세트를 결정하기 위한 방법 - Google Patents

서비스 데이터를 블록체인에 기입하기 위한 방법 및 장치, 그리고 서비스 하위세트를 결정하기 위한 방법 Download PDF

Info

Publication number
KR102103130B1
KR102103130B1 KR1020197023701A KR20197023701A KR102103130B1 KR 102103130 B1 KR102103130 B1 KR 102103130B1 KR 1020197023701 A KR1020197023701 A KR 1020197023701A KR 20197023701 A KR20197023701 A KR 20197023701A KR 102103130 B1 KR102103130 B1 KR 102103130B1
Authority
KR
South Korea
Prior art keywords
transaction
data
subset
transaction data
level
Prior art date
Application number
KR1020197023701A
Other languages
English (en)
Other versions
KR20190099087A (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 KR20190099087A publication Critical patent/KR20190099087A/ko
Application granted granted Critical
Publication of KR102103130B1 publication Critical patent/KR102103130B1/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/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • 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
    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24568Data stream processing; Continuous queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • 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/22Microcontrol or microprogram arrangements
    • G06F9/28Enhancement of operational speed, e.g. by using several microcontrol devices operating in parallel
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • G06F9/4831Task transfer initiation or dispatching by interrupt, e.g. masked with variable priority
    • G06F9/4837Task transfer initiation or dispatching by interrupt, e.g. masked with variable priority time dependent
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

서비스 데이터를 블록체인에 기입하기 위한 방법이 본 출원에 개시되고, 방법은, 블록체인에 기입될 복수의 서비스 데이터를 획득하는 단계; 서비스 데이터가 속하는 서비스 하위세트를 서비스 데이터의 서비스 유형 및/또는 데이터 변경 범위에 따라 결정하는 단계로서, 상이한 서비스 하위세트에 속하는 서비스 데이터는 트랜잭션 종속 관계를 갖지 않는, 서비스 하위세트를 결정하는 단계; 및 서비스 하위세트를 동시에 실행시켜서, 실행 결과를 블록체인에 기입하는 단계를 포함한다. 서비스 데이터를 블록체인에 기입하기 위한 장치 및 서비스 하위세트를 결정하기 위한 방법이 또한 본 출원에 개시된다. 본 출원은 트랜잭션 종속 관계가 없는 서비스 데이터의 병렬 실행을 구현할 수도 있어서, 데이터 처리 및 실행의 효율을 개선시키도록 필요한 비용을 감소시키고, 그리고 확장성을 개선시킨다.

Description

서비스 데이터를 블록체인에 기입하기 위한 방법 및 장치, 그리고 서비스 하위세트를 결정하기 위한 방법
본 출원은 컴퓨터 기술의 분야, 더 구체적으로, 트랜잭션 데이터(transaction data)를 블록체인에 기입하기 위한 방법 및 장치, 그리고 블록체인 트랜잭션 데이터의 트랜잭션 하위세트(transaction subset)를 결정하기 위한 방법에 관한 것이다.
컴퓨터 기술이 발달됨에 따라, 블록체인 기술(또한, 분산 원장 네트워크로서 지칭됨)은 분권화, 개방성과 투명성, 불변성, 및 신뢰성과 같은 이점에 기인하여 스마트 계약, 증권 트랜잭션, 전자 상거래, 사물 인터넷(Internet of Things), 사회적 통신, 문서 저장, 존재 증명, 신원 검증, 및 에쿼티 크라우드-펀딩(equity crowd-funding)과 같은, 수많은 분야에서 광범위하게 사용되고 있다.
하나의 실시예에서, 블록체인 기술은 분권화된 그리고 분산된 데이터베이스 기술의 유형이다. 블록체인 내 데이터의 각각의 피스는 전체 네트워크의 모든 블록체인 노드로 브로드캐스팅(broadcast)될 것이고, 그리고 각각의 노드는 서로 일관되는 데이터의 전체량을 유지한다. 블록체인 기술은 모든 노드가 데이터베이스 상태 등을 포함하여, 동일한 상태를 유지할 것을 요구한다. 데이터베이스 상태의 일관성을 보장하기 위해서, 블록체인 트랜잭션이 모든 노드에 대해 일관되는 순서 시퀀스로 있고, 그리고 모든 노드가 이러한 시퀀스로 트랜잭션을 실행시켜서 트랜잭션 검증, 구현, 체인 내 데이터의 포함 등을 완료시키는 것이 요구된다. 이더리움(Ethereum)의 블록체인 적용예를 실시예로서 취하면, 타임스탬프가 각각의 트랜잭션이 수신될 때 생성되고, 트랜잭션이 트랜잭션 풀에 기입되고, 그리고 트랜잭션이 타임스탬프에 따라 분류되고; 마이닝(mining) 동안, 트랜잭션이 트랜잭션 타임스탬프의 시퀀스에 따라 실행되고, 그리고 각각의 트랜잭션의 실행 후 계정 정보가 데이터베이스에 업데이트되어, 데이터베이스 계정 상태의 업데이트를 달성한다.
현재의 기술에서, 데이터베이스 상태의 일관성을 보장하기 위해서, 데이터는 트랜잭션(이는 또한 블록체인에 기입될 트랜잭션 데이터로서 해석될 수도 있음) 수신의 타임스탬프의 문자열에 따라 처리되어야 한다. 따라서, 단 하나의 단일의 머신이 실행을 수행할 수도 있다는 것이 제한되어, 데이터베이스의 기입 성능 및 효율이 단일의 머신의 성능에 의해 제한되게 된다. 기입 성능 및 효율을 개선하기 위해서, 단일의 머신의, CPU와 같은, 물리적 특성은 CPU의 코어 수를 증가시키는 것과 같이, 개선되어야 하고, 이는 고비용을 초래할 뿐만 아니라 확장성을 제한한다.
본 출원의 실시형태는 데이터 처리의 실행 효율을 개선시키기 위해 필요한 비용을 감소시키고 그리고 확장성을 개선시키도록 의도되는, 트랜잭션 데이터를 블록체인에 기입하기 위한 방법 및 장치를 제공한다.
본 출원의 실시형태는 트랜잭션 데이터를 합리적으로 분할하여, 데이터 처리의 실행 효율을 개선시키기 위해 필요한 비용을 감소시키고 그리고 확장성을 개선시키도록 의도되는, 블록체인 트랜잭션 데이터의 트랜잭션 하위세트를 결정하기 위한 방법을 더 제공한다.
본 출원의 실시형태는 다음의 기술적 해결책을 채용한다:
제1 양상에 따르면, 본 출원의 실시형태가 제공하는, 트랜잭션 데이터를 블록체인에 기입하기 위한 방법은,
실행될 트랜잭션 데이터의 복수의 피스를 획득하는 단계;
트랜잭션 데이터가 속하는 트랜잭션 하위세트를 트랜잭션 데이터의 트랜잭션 유형 및/또는 데이터 변경 범위에 따라 결정하는 단계로서, 상이한 트랜잭션 하위세트에 속하는 트랜잭션 데이터 간에 트랜잭션 종속 관계가 없는, 트랜잭션 하위세트를 결정하는 단계; 및
트랜잭션 하위세트를 동시에 실행시키고, 그리고 실행 결과를 블록체인에 기입하는 단계를 포함한다.
바람직하게는, 본 출원의 실시형태가 제공하는, 트랜잭션 데이터를 블록체인에 기입하기 위한 방법에서, 트랜잭션 데이터가 속하는 트랜잭션 하위세트를 트랜잭션 데이터의 트랜잭션 유형 및/또는 데이터 변경 범위에 따라 결정하는 단계는,
트랜잭션 데이터가 속하는 트랜잭션 하위세트를 트랜잭션 데이터의 데이터 속성에 따라 결정하는 것을 포함하되, 데이터 속성은 트랜잭션 데이터의 트랜잭션 유형 및/또는 데이터 변경 범위와 대응 관계를 갖고, 그리고 데이터 속성은 트랜잭션 데이터의 트랜잭션 종속 관계를 나타내기 위해 사용된다.
바람직하게는, 본 출원의 실시형태가 제공하는, 트랜잭션 데이터를 블록체인에 기입하기 위한 방법에서, 트랜잭션 하위세트를 동시에 실행시키는 단계는,
트랜잭션 하위세트를 멀티스레딩(multithreading) 또는 머신 클러스터(machine cluster)를 사용하여 동시에 실행시키는 것을 포함한다.
바람직하게는, 본 출원의 실시형태가 제공하는, 트랜잭션 데이터를 블록체인에 기입하기 위한 방법에서, 트랜잭션 데이터와 타임스탬프 간에 대응 관계가 있고, 그리고 트랜잭션 하위세트를 실행시키는 단계는,
트랜잭션 하위세트에 포함되는 트랜잭션 데이터를 연속적으로 타임스탬프에 대응하는 시간 순서에 따라 실행시키는 것을 포함한다.
바람직하게는, 본 출원의 실시형태가 제공하는, 트랜잭션 데이터를 블록체인에 기입하기 위한 방법에서, 트랜잭션 데이터가 속하는 트랜잭션 하위세트를 트랜잭션 데이터의 트랜잭션 유형에 따라 결정하는 단계는,
트랜잭션 데이터의 트랜잭션 유형에 따라, 동일한 트랜잭션 유형의 트랜잭션 데이터를 동일한 트랜잭션 하위세트에 넣고, 그리고 상이한 트랜잭션 유형의 트랜잭션 데이터를 상이한 트랜잭션 하위세트로 분할하는 것을 포함한다.
바람직하게는, 본 출원의 실시형태가 제공하는, 트랜잭션 데이터를 블록체인에 기입하기 위한 방법에서, 트랜잭션 데이터가 속하는 트랜잭션 하위세트를 트랜잭션 데이터의 데이터 변경 범위에 따라 결정하는 단계는,
트랜잭션 데이터의 데이터 변경 범위에 따라, 중첩되는 데이터 변경 범위를 가진 트랜잭션 데이터를 동일한 트랜잭션 하위세트에 넣고, 그리고 중첩되지 않는 데이터 변경 범위를 가진 트랜잭션 데이터를 상이한 트랜잭션 하위세트로 분할하는 것을 포함한다.
바람직하게는, 본 출원의 실시형태가 제공하는, 트랜잭션 데이터를 블록체인에 기입하기 위한 방법에서, 트랜잭션 데이터의 데이터 변경 범위에 따라, 중첩되는 데이터 변경 범위를 가진 트랜잭션 데이터를 동일한 트랜잭션 하위세트에 넣고, 그리고 중첩되지 않는 데이터 변경 범위를 가진 트랜잭션 데이터를 상이한 트랜잭션 하위세트로 분할하는 것은,
트랜잭션 데이터의 데이터 변경 범위를 트래버싱(traverse)하는 것;
트랜잭션 데이터의 제1 피스의 데이터 변경 범위가 제1 트랜잭션 하위세트의 데이터 변경 범위와 중첩된다면, 트랜잭션 데이터의 제1 피스를 제1 트랜잭션 하위세트에 추가하는 것; 및
트랜잭션 데이터의 제1 피스의 데이터 변경 범위가 제1 트랜잭션 하위세트의 데이터 변경 범위와 중첩되지 않는다면, 트랜잭션 데이터의 제1 피스를 포함하는 제2 트랜잭션 하위세트를 생성하는 것을 포함하되,
트랜잭션 데이터의 제1 피스는 트랜잭션 데이터의 피스 중 임의의 피스이고, 제1 트랜잭션 하위세트는 트랜잭션 하위세트 중 임의의 트랜잭션 하위세트이고, 그리고 제2 트랜잭션 하위세트는 제1 트랜잭션 하위세트와는 상이하다.
바람직하게는, 본 출원의 실시형태가 제공하는, 트랜잭션 데이터를 블록체인에 기입하기 위한 방법에서, 트랜잭션 하위세트의 데이터 변경 범위는 트랜잭션 하위세트에 포함되는 트랜잭션 데이터의 데이터 변경 범위의 통합이 되도록 결정된다.
바람직하게는, 본 출원의 실시형태가 제공하는, 트랜잭션 데이터를 블록체인에 기입하기 위한 방법에서, 트랜잭션 데이터와 타임스탬프 간에 대응 관계가 있고, 그리고 트랜잭션 데이터의 데이터 변경 범위를 트래버싱하는 것은,
트랜잭션 데이터의 타임스탬프에 따라 타임스탬프에 대응하는 시간 순서로 트래버싱하는 것을 포함한다.
바람직하게는, 본 출원의 실시형태가 제공하는, 트랜잭션 데이터를 블록체인에 기입하기 위한 방법에서, 트랜잭션 데이터가 속하는 트랜잭션 하위세트를 트랜잭션 데이터의 트랜잭션 유형 및 데이터 변경 범위에 따라 결정하는 단계는,
트랜잭션 데이터가 속하는 레벨 I 하위세트를 트랜잭션 데이터의 트랜잭션 유형에 따라 결정하는 것; 및
레벨 I 하위세트 내 트랜잭션 데이터가 속하는 레벨 II 하위세트를 트랜잭션 데이터의 데이터 변경 범위에 따라 결정하고, 그리고 레벨 II 하위세트를 트랜잭션 하위세트 중 하나의 트랜잭션 하위세트로서 사용하는 것을 포함하되, 레벨 II 하위세트는 레벨 I 하위세트의 하위세트이다.
바람직하게는, 본 출원의 실시형태가 제공하는, 트랜잭션 데이터를 블록체인에 기입하기 위한 방법에서, 트랜잭션 데이터가 속하는 레벨 I 하위세트를 트랜잭션 데이터의 트랜잭션 유형에 따라 결정하는 것은,
트랜잭션 데이터의 트랜잭션 유형에 따라, 동일한 트랜잭션 유형의 트랜잭션 데이터를 동일한 레벨 I 하위세트에 넣고, 그리고 상이한 트랜잭션 유형의 트랜잭션 데이터를 상이한 레벨 I 하위세트로 분할하는 것을 포함한다.
바람직하게는, 본 출원의 실시형태가 제공하는, 트랜잭션 데이터를 블록체인에 기입하기 위한 방법에서, 레벨 I 하위세트 내 트랜잭션 데이터가 속하는 레벨 II 하위세트를 트랜잭션 데이터의 데이터 변경 범위에 따라 결정하는 것은,
레벨 I 하위세트 내 트랜잭션 데이터의 데이터 변경 범위에 따라, 중첩되는 데이터 변경 범위를 가진 트랜잭션 데이터를 동일한 레벨 II 하위세트에 넣고, 그리고 중첩되지 않는 데이터 변경 범위를 가진 트랜잭션 데이터를 상이한 레벨 II 하위세트로 분할하는 것을 포함한다.
바람직하게는, 본 출원의 실시형태가 제공하는, 트랜잭션 데이터를 블록체인에 기입하기 위한 방법에서, 레벨 I 하위세트 내 트랜잭션 데이터의 데이터 변경 범위에 따라, 중첩되는 데이터 변경 범위를 가진 트랜잭션 데이터를 동일한 레벨 II 하위세트에 넣고, 그리고 중첩되지 않는 데이터 변경 범위를 가진 트랜잭션 데이터를 상이한 레벨 II 하위세트로 분할하는 것은,
제1 레벨 I 하위세트 내 트랜잭션 데이터의 데이터 변경 범위를 트래버싱하는 것;
트랜잭션 데이터의 제2 피스의 데이터 변경 범위가 제1 레벨 II 하위세트의 데이터 변경 범위와 중첩된다면, 트랜잭션 데이터의 제2 피스를 제1 레벨 II 하위세트에 추가하는 것; 및
트랜잭션 데이터의 제2 피스의 데이터 변경 범위가 제1 레벨 II 하위세트의 데이터 변경 범위와 중첩되지 않는다면, 제2 트랜잭션 데이터를 포함하는 제2 레벨 II 하위세트를 생성하는 것을 포함하되,
제1 레벨 I 하위세트는 레벨 I 하위세트 내 임의의 레벨 I 하위세트이고, 트랜잭션 데이터의 제2 피스는 제1 레벨 I 하위세트 내 트랜잭션 데이터의 임의의 피스이고, 제1 레벨 II 하위세트는 제1 레벨 I 하위세트 내 임의의 레벨 II 하위세트이고, 그리고 제2 레벨 II 하위세트는 제1 레벨 II 하위세트와는 상이하다.
바람직하게는, 본 출원의 실시형태가 제공하는, 트랜잭션 데이터를 블록체인에 기입하기 위한 방법에서, 실행될 트랜잭션 데이터의 복수의 피스는 트랜잭션 데이터를 포함하는 실행될 트랜잭션 세트를 형성하도록 획득되고, 그리고 트랜잭션 세트는 미리 설정된 데이터 처리량 및/또는 미리 설정된 트랜잭션 데이터 시간에 의해 결정된다.
제2 양상에 따르면, 본 출원의 실시형태는 트랜잭션 데이터를 블록체인에 기입하기 위한 또 다른 방법을 더 제공하되, 방법은,
블록체인에 기입될 트랜잭션 데이터의 복수의 피스를 획득하는 단계;
트랜잭션 종속 관계가 없는 제1 트랜잭션 데이터를 트랜잭션 데이터의 데이터 변경 범위에 따라 결정하는 단계로서, 제1 트랜잭션 데이터 간에 트랜잭션 종속 관계가 없는, 제1 트랜잭션 데이터를 결정하는 단계; 및
제1 트랜잭션 데이터를 동시에 실행시키고, 그리고 실행 결과를 블록체인에 기입하는 단계를 포함한다.
바람직하게는, 트랜잭션 데이터를 블록체인에 기입하기 위한 위에서 설명된 방법에서, 트랜잭션 종속 관계가 없는 제1 트랜잭션 데이터를 트랜잭션 데이터의 데이터 변경 범위에 따라 결정하는 단계는,
트랜잭션 데이터의 데이터 변경 범위에 따라, 트랜잭션 데이터의 임의의 다른 피스의 또 다른 데이터 변경 범위와 중첩되지 않는 데이터 변경 범위를 가진 트랜잭션 데이터를 트랜잭션 종속 관계를 갖지 않는 제1 트랜잭션 데이터로서 결정하는 것을 포함한다.
제3 양상에 따르면, 본 출원의 실시형태는 트랜잭션 데이터를 블록체인에 기입하기 위한 장치를 더 포함하되, 장치는,
블록체인에 기입될 트랜잭션 데이터의 복수의 피스를 획득하도록 구성된 획득 모듈;
트랜잭션 데이터가 속하는 트랜잭션 하위세트를 트랜잭션 데이터의 트랜잭션 유형 및/또는 데이터 변경 범위에 따라 결정하도록 구성된 트랜잭션 하위세트 결정 모듈로서, 상이한 트랜잭션 하위세트에 속하는 트랜잭션 데이터 간에 트랜잭션 종속 관계가 없는, 트랜잭션 하위세트 결정 모듈; 및
트랜잭션 하위세트를 동시에 실행시키고, 그리고 실행 결과를 블록체인에 기입하도록 구성된 데이터 실행 모듈을 포함한다.
제4 양상에 따르면, 본 출원의 실시형태는 블록체인 트랜잭션 데이터의 트랜잭션 하위세트를 결정하기 위한 방법을 더 제공하되, 방법은, 블록체인에 기입될 트랜잭션 데이터의 복수의 피스가 획득된 후, 트랜잭션 하위세트를 동시에 실행시키고 그리고 실행 결과를 블록체인에 기입하기 위해, 트랜잭션 데이터가 속하는 트랜잭션 하위세트를 트랜잭션 데이터의 트랜잭션 유형 및/또는 데이터 변경 범위에 따라 결정하는 단계를 포함하되, 상이한 트랜잭션 하위세트에 속하는 트랜잭션 데이터 간에 트랜잭션 종속 관계가 없다.
바람직하게는, 본 출원의 실시형태가 제공하는, 트랜잭션 하위세트를 결정하기 위한 방법에서, 트랜잭션 데이터가 속하는 트랜잭션 하위세트를 트랜잭션 데이터의 트랜잭션 유형 및/또는 데이터 변경 범위에 따라 결정하는 단계는,
트랜잭션 데이터가 속하는 트랜잭션 하위세트를 트랜잭션 데이터의 데이터 속성에 따라 결정하는 것을 포함하되, 데이터 속성은 트랜잭션 데이터의 트랜잭션 유형 및/또는 데이터 변경 범위와 대응 관계를 갖고, 그리고 데이터 속성은 트랜잭션 데이터의 트랜잭션 종속 관계를 나타내기 위해 사용된다.
바람직하게는, 본 출원의 실시형태가 제공하는, 트랜잭션 하위세트를 결정하기 위한 방법에서, 트랜잭션 데이터가 속하는 트랜잭션 하위세트를 트랜잭션 데이터의 트랜잭션 유형에 따라 결정하는 단계는, 트랜잭션 데이터의 트랜잭션 유형에 따라, 동일한 트랜잭션 유형의 트랜잭션 데이터를 동일한 트랜잭션 하위세트에 넣고, 그리고 상이한 트랜잭션 유형의 트랜잭션 데이터를 상이한 트랜잭션 하위세트로 분할하는 것을 포함하거나; 또는
트랜잭션 데이터가 속하는 트랜잭션 하위세트를 트랜잭션 데이터의 데이터 변경 범위에 따라 결정하는 단계는, 트랜잭션 데이터의 데이터 변경 범위에 따라, 중첩되는 데이터 변경 범위를 가진 트랜잭션 데이터를 동일한 트랜잭션 하위세트에 넣고, 그리고 중첩되지 않는 데이터 변경 범위를 가진 트랜잭션 데이터를 상이한 트랜잭션 하위세트로 분할하는 것을 포함한다.
바람직하게는, 본 출원의 실시형태가 제공하는, 트랜잭션 하위세트를 결정하기 위한 방법에서, 트랜잭션 데이터가 속하는 트랜잭션 하위세트를 트랜잭션 데이터의 트랜잭션 유형 및 데이터 변경 범위에 따라 결정하는 단계는,
트랜잭션 데이터가 속하는 레벨 I 하위세트를 트랜잭션 데이터의 트랜잭션 유형에 따라 결정하는 것; 및
레벨 I 하위세트 내 트랜잭션 데이터가 속하는 레벨 II 하위세트를 트랜잭션 데이터의 데이터 변경 범위에 따라 결정하고, 그리고 레벨 II 하위세트를 트랜잭션 하위세트 중 하나의 트랜잭션 하위세트로서 사용하는 것을 포함하되, 레벨 II 하위세트는 레벨 I 하위세트의 하위세트이다.
본 출원의 실시형태가 채용하는 위에서 설명된 적어도 하나의 기술적 해결책은 다음의 유리한 효과를 달성할 수 있다:
본 출원의 실시형태에서, 블록체인에 기입될 트랜잭션 데이터가 획득된 후, 트랜잭션 데이터 간에 트랜잭션 종속 관계가 있는지가 트랜잭션 데이터의 트랜잭션 유형 또는 데이터 변경 범위에 따라 결정될 수도 있고, 그리고 이어서 트랜잭션 데이터가 트랜잭션 데이터 간의 트랜잭션 종속 상황에 따라 상이한 트랜잭션 하위세트로 분할될 수도 있다. 상이한 트랜잭션 하위세트에 속하는 트랜잭션 데이터 간에 트랜잭션 종속 관계가 없기 때문에, 상이한 트랜잭션 하위세트는 데이터베이스 상태의 일관성에 영향을 주는 일없이 동시에 실행될 수도 있다. 본 출원의 실시형태가 제공하는 해결책에 따르면, 트랜잭션 종속 관계가 없는 트랜잭션 데이터를 동시에 실행시키는 것은 데이터베이스 상태의 일관성을 보장할 뿐만 아니라, 개별적인 머신의 성능의 개선을 필요로 하는 일없이 데이터 처리의 실행 효율을 개선시킨다. 따라서, 개별적인 머신을 위한 성능 필요조건이 낮아질 수도 있고, 이는 비용 절약을 장려하고 그리고 더 나은 확장성으로 이어진다.
여기서 설명될 첨부 도면은 본 출원의 더 나은 이해를 제공하도록 사용되고 그리고 본 출원의 일부를 이룬다. 본 출원의 예시적인 실시형태 및 예시적인 실시형태의 설명은 본 출원을 설명하도록 사용되고 그리고 부적절한 제한을 본 출원에 부여하지 않는다. 첨부 도면에서:
도 1은 본 출원의 일부 실시형태에 따른, 트랜잭션 데이터를 블록체인에 기입하기 위한 방법의 흐름도;
도 2는 본 출원의 일부 실시형태에 따른, 트랜잭션 데이터를 블록체인에 기입하기 위한 제2 방법의 흐름도;
도 3은 본 출원의 일부 실시형태에 따른, 트랜잭션 데이터를 블록체인에 기입하기 위한 제3 방법의 흐름도;
도 4는 본 출원의 일부 실시형태에 따른, 트랜잭션 데이터를 블록체인에 기입하기 위한 방법의 예시적인 적용 시나리오의 개략도; 및
도 5는 본 출원의 일부 실시형태에 따른, 트랜잭션 데이터를 블록체인에 기입하기 위한 장치의 개략적인 구조도.
본 출원의 목적, 기술적 해결책, 및 이점을 더 분명하게 하기 위해서, 본 출원의 기술적 해결책은 본 출원의 실시형태 및 첨부 도면을 참조하여 아래에 분명히 그리고 완전히 설명될 것이다. 설명된 실시형태가 단지 본 출원의 실시형태의 전부가 아닌 일부임이 분명하다. 본 출원의 실시형태에 기초하여, 창조적 노력 없이 당업자가 획득 가능한 모든 다른 실시형태는 본 출원의 범위 내에 속할 것이다.
본 출원의 실시형태에서 제공되는 기술적 해결책은 첨부 도면을 참조하여 아래에 상세히 설명될 것이다.
실시형태 1
도 1은 본 출원의 일부 실시형태에 따른, 트랜잭션 데이터를 블록체인에 기입하기 위한 방법을 예시하되, 방법은,
S101: 블록체인에 기입될 트랜잭션 데이터의 복수의 피스를 획득하는 단계;
S102: 트랜잭션 데이터가 속하는 트랜잭션 하위세트를 트랜잭션 데이터의 트랜잭션 유형 및/또는 데이터 변경 범위에 따라 결정하는 단계(상이한 트랜잭션 하위세트에 속하는 트랜잭션 데이터 간에 트랜잭션 종속 관계는 없음); 및
S103: 트랜잭션 하위세트를 동시에 실행시키고, 그리고 실행 결과를 블록체인에 기입하는 단계를 포함한다.
위에서 설명된 실시형태에서, 단계(S101)가 블록체인에 기입될 트랜잭션 데이터를 획득하도록 실행된 후, 트랜잭션 데이터 간에 트랜잭션 종속 관계가 있는지는 트랜잭션 데이터의 트랜잭션 유형 또는 데이터 변경 범위에 따라 결정될 수도 있고, 그리고 이어서 트랜잭션 데이터는 트랜잭션 데이터 간의 트랜잭션 종속의 상황에 따라 상이한 트랜잭션 하위세트로 분할될 수도 있다. 상이한 트랜잭션 하위세트에 속하는 트랜잭션 데이터 간에 트랜잭션 종속 관계가 없기 때문에, 상이한 트랜잭션 하위세트는 데이터베이스 상태의 일관성에 영향을 주는 일없이 동시에 실행될 수도 있다. 본 출원의 실시형태가 제공하는 해결책에 따르면, 트랜잭션 하위세트 내 트랜잭션 데이터가 동시에 실행되는 방식은 개별적인 머신의 성능의 개선을 필요로 하는 일없이 데이터 처리의 실행 효율을 개선시킬 수도 있다. 따라서, 개별적인 머신을 위한 성능 필요조건이 낮아질 수도 있고, 이는 비용 절약을 장려하고 그리고 더 나은 확장성으로 이어진다.
단계(S101)가 본 실시형태에서 실행된 후에 트랜잭션 데이터의 복수의 피스가 획득된 후, 실행될 트랜잭션 데이터를 포함하는 실행될 트랜잭션 세트가 형성될 수도 있고, 그리고 트랜잭션 세트가 미리 설정된 데이터 처리량 및/또는 미리 설정된 트랜잭션 데이터 시간에 의해 결정될 수도 있다. 하나의 실시예에서, 동일한 일괄처리(batch)로 실행될 트랜잭션 데이터는 데이터 처리량을 미리 설정함으로써 결정될 수도 있고, 그리고 미리 설정된 데이터 처리량의 예시적인 값은 블록체인에 기입되도록 허용되는 데이터의 양에 따라 결정될 수도 있다. 예를 들어, 블록체인에 기입되도록 허용되는 트랜잭션 데이터의 양이 1,000이고, 그래서 미리 설정된 데이터 처리량이 필요조건을 충족시키도록 1,000 미만, 예를 들어, 800이 되도록 설정될 수도 있다. 예시적인 구현예에서, 서버가 트랜잭션 데이터의 800 피스를 수신할 때마다, 서버는 차후의 처리를 위해 실행될 트랜잭션 세트를 형성할 수도 있다. 실행될 트랜잭션 세트가 결정될 때, 동일한 일괄처리로 실행될 트랜잭션 데이터는 또한 트랜잭션 데이터 시간을 미리 설정함으로써 결정될 수도 있다. 예를 들어, 미리 설정된 트랜잭션 데이터 시간이 1초가 되도록 설정되고, 그래서 동일한 일괄처리로 실행될 트랜잭션 데이터가 1초 내에 동시에 생성되는 트랜잭션 데이터이다.
단계(S103)가 실행될 때, 트랜잭션 데이터가 트랜잭션 종속 관계없이 복수의 트랜잭션 하위세트로 분할되기 때문에, 트랜잭션 하위세트는 멀티스레딩 또는 머신 클러스터를 사용하여 동시에 실행될 수도 있고, 이는 데이터베이스 상태의 일관성을 위한 필요조건을 충족시킬 뿐만 아니라 데이터 실행 효율을 개선시키는 목적을 달성한다. 이 방식으로, 데이터 실행 효율은 개별적인 머신의 성능의 개선을 필요로 하는 일없이 개선될 수도 있다. 따라서, 개별적인 머신을 위한 성능 필요조건이 낮아질 수도 있고, 이는 머신 클러스터의 방식을 사용함으로써 비용 절약을 장려하고 그리고 더 나은 확장성으로 이어진다.
또 다른 실시예에서, 트랜잭션 데이터를 포함하는 트랜잭션 하위세트가 실행될 때, 상이한 트랜잭션 하위세트로 분할되는 트랜잭션 데이터 간에 트랜잭션 종속 관계가 없지만, 동일한 트랜잭션 하위세트에 넣어지는 트랜잭션 데이터 간에 트랜잭션 종속 관계가 있다. 따라서, 상이한 트랜잭션 하위세트는 데이터 실행 효율을 개선시키도록 동시에 실행될 수도 있고, 반면에 동일한 트랜잭션 하위세트 내 트랜잭션 데이터는 데이터베이스 상태의 일관성을 보장하도록 연속적으로 실행될 수도 있다. 하나의 실시예에서, 트랜잭션 데이터와 타임스탬프 간에 대응 관계가 있고, 그래서 트랜잭션 하위세트가 실행될 때, 트랜잭션 하위세트에 포함되는 트랜잭션 데이터가 타임스탬프에 대응하는 시간 순서에 따라 연속적으로 실행된다. 게다가, 트랜잭션 데이터의 각각의 피스의 실행이 트랜잭션 검증, 트랜잭션 구현, 및 체인 내 데이터의 포함의 순서로 수행되어 최종적으로 실행 결과를 블록체인에 기입한다.
단계(S102)가 실행될 때, 트랜잭션 하위세트는, 트랜잭션 종속 관계가 있는 트랜잭션 데이터가 트랜잭션 종속 관계가 없는 트랜잭션 데이터로부터 분리되는 한, 다양한 상이한 방식으로 결정될 수도 있다. 하나의 실시예에서, 트랜잭션 데이터가 속하는 트랜잭션 하위세트는 트랜잭션 데이터의 데이터 속성에 따라 결정될 수도 있고, 데이터 속성은 트랜잭션 데이터의 트랜잭션 유형 및/또는 데이터 변경 범위와 대응 관계를 갖고, 그리고 데이터 속성은 트랜잭션 데이터의 트랜잭션 종속 관계를 나타내기 위해 사용된다. 이어서, 트랜잭션 종속 관계가 있는 트랜잭션 데이터가 동일한 트랜잭션 하위세트에 넣어질 수도 있고, 그리고 트랜잭션 종속 관계가 없는 트랜잭션 데이터가 트랜잭션 데이터로부터 추출되는 데이터 속성에 따라 상이한 트랜잭션 하위세트로 분할될 수도 있어서, 상이한 트랜잭션 하위세트의 병렬 실행을 달성한다. 추가의 실시예에서, 데이터 속성은 트랜잭션 데이터에 포함되는 식별자 필드의 형태로 구현될 수도 있거나 또는 트랜잭션 데이터가 포함하는 특성 정보의 형태로 구현될 수도 있다. 지정된 식별자 필드가 포함되는지가 결정될 수도 있거나, 또는 트랜잭션 데이터의 특성 정보가 추출될 수도 있고 그리고 나서 특성 정보가 미리 설정된 조건을 충족시키는지가 결정될 수도 있어서, 데이터 속성에 따라 트랜잭션 데이터의 트랜잭션 종속 관계를 결정한다.
본 출원의 실시형태에 제시되는 트랜잭션 데이터 간의 트랜잭션 종속 관계는 상이한 트랜잭션 데이터가 실행될 때 존재하는 트랜잭션 연관성, 예를 들어, 시간 순서, 트랜잭션 대상, 또는 실행 결과와 같은 양상의 연관성에 의해 구현될 수도 있다. 예를 들어, 나중의 실행 시간에 대한 트랜잭션 데이터의 실행이 초기의 실행 시간에 대한 트랜잭션 데이터의 실행 결과에 의존적이거나, 또는 상이한 트랜잭션 데이터의 실행이 동일한 데이터 상태에 영향을 준다면, 그러면 트랜잭션 데이터의 이 2개의 피스가 트랜잭션 종속 관계를 갖는다고 간주된다. 정반대로, 트랜잭션 데이터의 이 2개의 피스가 트랜잭션 종속 관계를 갖지 않는다고 간주될 수도 있다.
트랜잭션 하위세트를 결정하는 과정이 실시예를 통해 상세히 설명될 것이다.
(I) 트랜잭션 데이터의 트랜잭션 유형에 따라 트랜잭션 하위세트를 결정
본 출원의 실시형태에서, 트랜잭션 하위세트는 트랜잭션 데이터의 트랜잭션 유형에 따라 결정될 수도 있다. 하나의 실시예에서, 동일한 트랜잭션 유형의 트랜잭션 데이터는 동일한 트랜잭션 하위세트에 넣어지고, 그리고 상이한 트랜잭션 유형의 트랜잭션 데이터는 상이한 트랜잭션 하위세트로 분할된다. 상이한 트랜잭션 유형의 트랜잭션 데이터 간에 트랜잭션 종속 관계가 없기 때문에, 데이터 실행의 결과는 상이한 트랜잭션 유형의 트랜잭션 데이터가 실행되는 순서에 상관없이 영향받지 않을 것이다. 트랜잭션 데이터가 동일한 트랜잭션 하위세트에 속하는지를 트랜잭션 데이터의 트랜잭션 유형에 따라 결정하는 것은 상이한 트랜잭션 하위세트에 속하는 트랜잭션 데이터 간에 트랜잭션 종속 관계가 없는 것을 보장할 수 있어서, 상이한 트랜잭션 하위세트 내 트랜잭션 데이터의 병렬 처리를 위한 요구를 충족시키고 그리고 데이터 처리의 실행 효율의 개선을 장려한다.
예를 들어, 계약-유형의 트랜잭션(또한, 트랜잭션으로서 지칭될 수도 있음)이 실행된 후, 오직 대응하는 계약 데이터가 변경되고, 반면에 이체-유형의 트랜잭션(또한, 트랜잭션으로서 지칭될 수도 있음)이 실행된 후, 이체의 당사자 둘 다의 계정 잔액 데이터가 변경된다. 트랜잭션의 이 2개의 유형이 실행되는 순서가 실행 결과에 영향을 주지 않는 것을 알 수 있다. 따라서, 트랜잭션의 2개의 상이한 유형을 상이한 트랜잭션 하위세트로 분할하는 것은 상이한 트랜잭션 하위세트에 속하는 트랜잭션 데이터가 트랜잭션 종속 관계를 갖지 않고, 따라서 트랜잭션 하위세트가 데이터베이스 상태의 일관성에 영향을 주는 일없이 동시에 처리될 수 있는 것을 보장할 수 있다.
(II) 트랜잭션 데이터의 데이터 변경 범위에 따라 트랜잭션 하위세트를 결정
본 출원에서 데이터 변경 범위는 트랜잭션 데이터의 실행을 위한 대상을 나타낸다. 본 출원의 실시형태에서, 트랜잭션 데이터의 데이터 변경 범위에 따라, 중첩되는 데이터 변경 범위를 가진 트랜잭션 데이터는 동일한 트랜잭션 하위세트에 넣어질 수도 있고, 그리고 중첩되지 않는 데이터 변경 범위를 가진 트랜잭션 데이터는 상이한 트랜잭션 하위세트로 분할될 수도 있다. 트랜잭션 하위세트가 트랜잭션 데이터의 데이터 변경 범위에 따라 결정될 때, 트랜잭션 데이터의 상이한 피스가 트랜잭션 데이터의 이 피스가 생성되는 순서로 실행되어야 하고, 트랜잭션 데이터의 이 피스의 실행에 의해 영향을 받는 데이터 범위가 중첩된다면, 다른 방법으로 데이터 실행의 결과가 영향을 받을 것이다. 반면에, 트랜잭션 데이터의 상이한 피스의 실행에 의해 영향을 받는 데이터 범위가 중첩되지 않는다면, 트랜잭션 데이터의 이 피스의 실행의 순서는 데이터 처리 결과에 영향을 주지 않을 것이다. 따라서, 트랜잭션 데이터의 데이터 변경 범위에 따라 트랜잭션 하위세트를 결정하는 것이 상이한 트랜잭션 하위세트의 병렬 처리를 위한 요구를 충족시킬 수도 있어서, 데이터 처리의 실행 효율의 개선을 장려한다.
하나의 실시예에서, 중첩되는 데이터 변경 범위를 가진 트랜잭션 데이터를 동일한 트랜잭션 하위세트에 넣는 것, 및 중첩되지 않는 데이터 변경 범위를 가진 트랜잭션 데이터를 상이한 트랜잭션 하위세트로 분할하는 것은,
트랜잭션 데이터의 데이터 변경 범위를 트래버싱하는 것;
제1 트랜잭션 데이터의 데이터 변경 범위가 제1 트랜잭션 하위세트의 데이터 변경 범위와 중첩된다면, 제1 트랜잭션 데이터를 제1 트랜잭션 하위세트에 추가하는 것; 및
제1 트랜잭션 데이터의 데이터 변경 범위가 제1 트랜잭션 하위세트의 데이터 변경 범위와 중첩되지 않는다면, 제1 트랜잭션 데이터를 포함하는 제2 트랜잭션 하위세트를 생성하는 것을 포함할 수도 있고;
제1 트랜잭션 데이터는 트랜잭션 데이터의 임의의 피스이고, 제1 트랜잭션 하위세트는 트랜잭션 하위세트 내 임의의 트랜잭션 하위세트이고, 그리고 제2 트랜잭션 하위세트는 제1 트랜잭션 하위세트와는 상이하다.
위에서 설명된 과정은 도 2에 도시된 흐름도를 참조하여 아래에 설명될 것이다.
S1021: 트랜잭션 세트 내 트랜잭션 데이터의 모든 피스가 트래버싱되었는지를 결정하는 단계, 대답이 "예"라면 과정은 종료되고, 그렇지 않으면 과정은 단계(S1022)를 실행하도록 진행됨;
S1022: 트랜잭션 세트로부터 트랜잭션 데이터 TX의 임의의 피스를 획득하는 단계; 트랜잭션 데이터 TX는 일반적으로 트랜잭션 하위세트에 넣어지지 않은 트랜잭션 데이터로부터 추출 및 생성될 수도 있다는 것에 유의해야 하지만; 추출된 트랜잭션 데이터 TX가 트랜잭션 하위세트에 이미 넣어졌다면, 트랜잭션 데이터 TX는 차후의 단계가 기술적 목적의 달성에 영향을 주는 일없이 실행된 후 동일한 트랜잭션 하위세트에 넣어질 것임;
S1023: 트랜잭션 데이터 TX의 데이터 변경 범위를 산출하는 단계;
S1024: 트랜잭션 데이터 TX의 데이터 변경 범위가 기존의 트랜잭션 하위세트 TXB의 데이터 변경 범위와 중첩하는지를 결정하는 단계;
S1025: 단계(S1024)에서 결정 결과가 "예"라면, 트랜잭션 데이터 TX를 트랜잭션 하위세트 TXB에 추가하는 단계;
S1026: 단계(S1024)에서 결정 결과가 "아니오"라면, 새로운 트랜잭션 하위세트 TXN을 생성하고, 그리고 트랜잭션 데이터 TX를 트랜잭션 하위세트 TXN에 추가하는 단계.
트랜잭션 하위세트의 데이터 변경 범위는 트랜잭션 하위세트에 포함되는 트랜잭션 데이터가 변경될 때 재계산되어야 하고, 그리고 트랜잭션 하위세트에 포함되는 트랜잭션 데이터의 데이터 변경 범위의 통합은 트랜잭션 하위세트의 데이터 변경 범위로서 사용될 수도 있다는 것에 유의해야 한다.
예를 들어, 계약-유형의 트랜잭션의 실행 대상은 계약 ID이고, 그리고 계약 ID에 대응하는 계약 데이터는 실행 후 변경될 것이다. 그래서 계약 ID는 트랜잭션 데이터의 데이터 변경 범위로서 해석될 수도 있다. 트랜잭션 데이터의 2개의 피스가 동일한 계약 ID에 대해 실행된다면, 트랜잭션 데이터의 이 2개의 피스의 데이터 변경 범위가 중첩되고, 그래서 트랜잭션 데이터의 이 2개의 피스가 동일한 트랜잭션 하위세트에 포함되어야 하고 그리고 트랜잭션 데이터에 대응하는 타임스탬프에 따라 결정된 순서로 실행되어야 한다고 여겨질 수도 있다. 트랜잭션 데이터의 2개의 피스가 상이한 계약 ID에 대해 실행된다면, 트랜잭션 데이터의 이 2개의 피스의 데이터 변경 범위가 중첩되지 않고, 그리고 트랜잭션 데이터의 이 2개의 피스가 실행될 때 상이한 계약 ID에 대응하는 계약 데이터가 변경될 것이라고 여겨질 수도 있다. 따라서, 실행 순서는 실행 결과에 영향을 주지 않는다. 트랜잭션 데이터의 이 2개의 피스는 상이한 트랜잭션 하위세트에 포함될 수도 있고 그리고 동시에 실행될 수도 있다.
또 다른 실시예에서, 이체-유형의 트랜잭션의 실행 대상이 이체의 당사자 둘 다의 계정이고, 그리고 이체-유형의 트랜잭션이 실행된 후, 이체의 당사자 둘 다의 계정 잔액 데이터가 변경될 것이다. 따라서, 이체의 당사자 둘 다의 계정은 이체-유형의 트랜잭션 데이터의 데이터 변경 범위로서 해석될 수도 있다. 트랜잭션 세트가 트랜잭션 데이터의 다음의 5개의 피스를 포함한다고 가정하면,
트랜잭션 데이터 1: 계정 A로부터 계정 B로 이체, 그러면 트랜잭션 데이터 1의 데이터 변경 범위는 (A, B)로서 표현될 수도 있음;
트랜잭션 데이터 2: 계정 B로부터 계정 A로 이체, 그러면 트랜잭션 데이터 2의 데이터 변경 범위는 (B, A)로서 표현될 수도 있음;
트랜잭션 데이터 3: 계정 C로부터 계정 E로 이체, 그러면 트랜잭션 데이터 3의 데이터 변경 범위는 (C, E)로서 표현될 수도 있음;
트랜잭션 데이터 4: 계정 F로부터 계정 X로 이체, 그러면 트랜잭션 데이터 4의 데이터 변경 범위는 (F, X)로서 표현될 수도 있음;
트랜잭션 데이터 5: 계정 X로부터 계정 E로 이체, 그러면 트랜잭션 데이터 5의 데이터 변경 범위는 (X, E)로서 표현될 수도 있음.
트랜잭션 데이터 1과 트랜잭션 데이터 2의 데이터 변경 범위가 중첩되고, 트랜잭션 데이터 3과 트랜잭션 데이터 5의 데이터 변경 범위가 중첩되고, 그리고 트랜잭션 데이터 4와 트랜잭션 데이터 5의 데이터 변경 범위가 중첩되는 것을 알 수 있다. 따라서, 트랜잭션 데이터 1 내지 트랜잭션 데이터 5를 포함하는 트랜잭션 세트는 다음의 트랜잭션 하위세트로 분할될 수도 있다:
트랜잭션 하위세트 1: 트랜잭션 데이터 1과 트랜잭션 데이터 2를 포함하고, 그리고 데이터 변경 범위는 (A, B)임; 및
트랜잭션 하위세트 2: 트랜잭션 데이터 3, 트랜잭션 데이터 4, 및 트랜잭션 데이터 5를 포함하고, 그리고 데이터 변경 범위는 (C, E, F, X)임.
트랜잭션 하위세트 1과 트랜잭션 하위세트 2의 데이터 변경 범위가 중첩되지 않고, 그리고 트랜잭션 하위세트 1과 트랜잭션 하위세트 2의 병렬 실행이 실행 결과에 영향을 주지 않을 것임을 알 수 있다. 따라서, 트랜잭션 하위세트 1과 트랜잭션 하위세트 2가 동시에 실행되어 실행 효율을 개선시킬 수도 있다. 트랜잭션 하위세트 1에 대해, 트랜잭션 데이터 1과 트랜잭션 데이터 2의 데이터 변경 범위가 중첩되고(심지어 완전히 동일함), 그리고 트랜잭션 데이터의 이 2개의 피스의 실행이 트랜잭션 데이터의 이 2개의 피스의 실행 전의 트랜잭션 데이터에 의존적일 수도 있다. 따라서, 실행 순서는 트랜잭션 데이터의 이 2개의 피스에 대응하는 타임스탬프에 따라 결정되어야 하고, 그리고 트랜잭션 데이터의 이 2개의 피스는 시간 순서로 연속적으로 실행될 것이다. 이것은 트랜잭션 하위세트 2에 대해서도 동일하다. 예를 들어, 계정 F로부터 계정 X로 이체되는 트랜잭션 데이터 4가 먼저 실행되고, 그리고 이어서 계정 X로부터 계정 E로 이체되는 트랜잭션 데이터 5가 실행되는 것이 타임스탬프에 따라 결정될 수 있다. 트랜잭션 데이터 5가 실행될 때 계정 X로부터 계정 E로의 이체에 의해 요구되는 자금이 계정 F로부터 계정 X로 이체되는 트랜잭션 데이터 4의 실행에 의존적인 것이 가능하기 때문에 이 실행 순서는 병렬적이지 않거나 반전되지 않을 수도 있다.
트랜잭션 세트 내 트랜잭션 데이터의 데이터 변경 범위를 트래버싱하는 것이 도 2의 실시예에서 도시된 바와 같은 트랜잭션 데이터의 임의의 피스를 획득하는 단계(S1022)의 방식으로 구현될 수도 있다는 것에 유의해야 한다. 대안적으로, 트래버싱은 트랜잭션 데이터의 타임스탬프에 따른 트랜잭션 세트 내 트랜잭션 데이터의 생성의 시간 순서에 따라 구현될 수도 있다.
(III) 트랜잭션 데이터의 트랜잭션 유형 및 데이터 변경 범위에 따라 트랜잭션 하위세트를 결정
본 출원의 실시형태에서, 트랜잭션 유형과 데이터 변경 범위는 위상 및 레벨로 트랜잭션 하위세트를 결정하기 위해 결합될 수도 있다. 예시적인 구현예에서, 분할이 먼저 데이터 변경 범위에 따라 수행될 수도 있고, 이에 기초하여 제2 분할이 트랜잭션 유형에 따라 수행될 수도 있거나, 또는 반전된 순서가 후속될 수도 있다. 실시예로써 트랜잭션 유형에 따라 제1 분할 그리고 이어서 데이터 변경 범위에 따라 제2 분할을 행하여, 트랜잭션 데이터의 트랜잭션 유형 및 데이터 변경 범위에 따라 트랜잭션 하위세트를 결정하는 구현 과정은 다음 단계를 포함할 수도 있다:
단계 S1027: 트랜잭션 데이터가 속하는 레벨 I 하위세트를 트랜잭션 데이터의 트랜잭션 유형에 따라 결정하는 단계;
이어서 트랜잭션 데이터가 레벨 I 하위세트 내 트랜잭션 데이터의 데이터 변경 범위에 따라 속하는 레벨 II 하위세트를 결정하고, 그리고 레벨 II 하위세트를 트랜잭션 하위세트로서 사용하는 단계, 레벨 II 하위세트는 레벨 I 하위세트의 하위세트임.
여기서, 트랜잭션 유형에 따라 트랜잭션 세트에서 제1 레벨 분할을 수행하고 그리고 트랜잭션 데이터가 속하는 레벨 I 하위세트를 결정하는 것은,
트랜잭션 세트 내 트랜잭션 데이터의 트랜잭션 유형에 따라, 동일한 트랜잭션 유형의 트랜잭션 데이터를 동일한 레벨 I 하위세트에 넣고, 그리고 상이한 트랜잭션 유형의 트랜잭션 데이터를 상이한 레벨 I 하위세트로 분할하는 것을 더 포함할 수도 있다.
트랜잭션 데이터의 트랜잭션 유형의 수가 매우 제한되기 때문에, 오직 트랜잭션 유형에 따라 동시에 실행될 수 있는 트랜잭션 하위세트를 결정하는 것은 실행 효율을 어느 정도 개선시킬 수도 있지만, 트랜잭션 데이터의 높은 동시 발생량과 같은 대량이 생성되는 경우에 만족스러운 효과를 달성할 수도 없다. 따라서, 위에서 설명된 분할에 기초하여, 트랜잭션 유형에 따라 결정되는 레벨 I 하위세트가 데이터 변경 범위에 따라 제2 레벨 분할을 겪기 쉽고, 그리고 제2 레벨 분할을 통해 획득되는 레벨 II 하위세트가 병렬 처리를 위한 트랜잭션 하위세트로서 사용되어, 실행 효율을 더 개선시킨다.
하나의 실시예에서, 트랜잭션 데이터가 속하는 레벨 II 하위세트를 레벨 I 하위세트 내 트랜잭션 데이터의 데이터 변경 범위에 따라 결정하는 것은,
레벨 I 하위세트 내 트랜잭션 데이터의 데이터 변경 범위에 따라, 중첩되는 데이터 변경 범위를 가진 트랜잭션 데이터를 동일한 레벨 II 하위세트에 넣고, 그리고 중첩되지 않는 데이터 변경 범위를 가진 트랜잭션 데이터를 상이한 레벨 II 하위세트로 분할하는 것을 포함한다.
게다가, 레벨 I 하위세트 내 트랜잭션 데이터의 데이터 변경 범위에 따라, 중첩되는 데이터 변경 범위를 가진 트랜잭션 데이터를 동일한 레벨 II 하위세트에 넣고, 그리고 중첩되지 않는 데이터 변경 범위를 가진 트랜잭션 데이터를 상이한 레벨 II 하위세트로 분할하는 것은 도 3에 도시된 바와 같은,
S1028: 제1 레벨 I 하위세트 내 트랜잭션 데이터의 데이터 변경 범위를 트래버싱하는 단계;
S1029: 제2 트랜잭션 데이터의 데이터 변경 범위가 제1 레벨 II 하위세트의 데이터 변경 범위와 중첩되는지를 결정하는 단계;
S1030: 제2 트랜잭션 데이터의 데이터 변경 범위가 제1 레벨 II 하위세트의 데이터 변경 범위와 중첩된다면, 제2 트랜잭션 데이터를 제1 레벨 II 하위세트에 추가하는 단계; 및
S1031: 제2 트랜잭션 데이터의 데이터 변경 범위가 제1 레벨 II 하위세트의 데이터 변경 범위와 중첩되지 않는다면, 제2 트랜잭션 데이터를 포함하는 제2 레벨 II 하위세트를 생성하는 단계를 포함할 수도 있고;
제1 레벨 I 하위세트는 레벨 I 하위세트 내 임의의 레벨 I 하위세트이고, 제2 트랜잭션 데이터는 제1 레벨 I 하위세트 내 트랜잭션 데이터의 임의의 피스이고, 제1 레벨 II 하위세트는 제1 레벨 I 하위세트 내 임의의 레벨 II 하위세트이고, 그리고 제2 레벨 II 하위세트는 제1 레벨 II 하위세트와는 상이하다.
레벨 I 하위세트로부터 레벨 II 하위세트를 분할하는 과정은 번호 (II)에 설명된 바와 같은 트랜잭션 세트로부터 트랜잭션 하위세트를 분할하는 과정 및 원리와 유사하고, 이는 여기서 상세히 설명되지 않을 것이다.
위에서 설명된 구현 과정이 트랜잭션 하위세트의 분할을 위해 사용된 후, 트랜잭션 하위세트가 동시에 실행될 수도 있어서 블록체인 트랜잭션 데이터의 실행 과정을 완료하여 실행 결과를 블록체인에 기입한다. 도 4에 도시된 바와 같이, 트랜잭션 데이터 배열 모듈은 트랜잭션 하위세트의 분할을 달성하도록 구성된다. 트랜잭션 데이터 실행 클러스터가 상이한 트랜잭션 하위세트 내 트랜잭션 데이터를 동시에 실행시키고, 트랜잭션 하위세트 내부의 트랜잭션 데이터를 연속적으로 트랜잭션 데이터에 대응하는 타임스탬프에 따라 실행시키고, 그리고 이어서 실행 결과를 블록체인에 기입하여, 블록체인 데이터베이스 상태의 일관성을 보장하고, 데이터 처리의 실행 효율을 개선시키기 위해 필요한 비용을 감소시키고, 그리고 확장성을 개선시킨다. 실행 결과가 블록체인의 블록에 기입될 때, 트랜잭션 데이터 실행 클러스터에 의한 트랜잭션 데이터의 실행 결과가 요약될 수도 있고 그리고 이어서 블록체인에 기입될 수도 있다. 하나의 실시예에서, 클러스터 내 하나의 지정된 컴퓨터는 실행 결과의 요약을 완료할 수도 있다.
현재의 기술에서, 이더리움 적용을 실시예로써 취하면, 트랜잭션 데이터는 트랜잭션 데이터가 실행될 때 트랜잭션 데이터의 수신된 타임스탬프에 따라 분류되고, 그리고 이어서 실행은 트랜잭션 데이터의 각각의 피스가 실행된 후 계정 정보를 업데이트하도록 연속적으로 시간 순서로 수행된다. 본 출원의 실시형태에서, 블록체인에 기입될 트랜잭션 데이터(즉, 블록체인이 수신하는 트랜잭션 데이터)가 획득된 후, 트랜잭션 데이터가 먼저 트랜잭션 유형 및/또는 데이터 변경 범위에 따라 분류되어 트랜잭션 하위세트를 형성하여, 트랜잭션 종속 관계가 없는 트랜잭션 데이터가 상이한 트랜잭션 하위세트로 분할되게 하고 그리고 트랜잭션 종속 관계가 있는 트랜잭션 데이터가 동일한 트랜잭션 하위세트에 넣어지게 한다. 트랜잭션 데이터의 분할 및 트랜잭션 하위세트의 결정은 도 4에 도시된 트랜잭션 데이터 배열 모듈에 의해 구현될 수도 있다. 트랜잭션 데이터 배열 모듈이 트랜잭션 데이터의 분할을 완료한 후, 트랜잭션 데이터 배열 모듈은 데이터 처리를 위해 트랜잭션 하위세트를 트랜잭션 데이터 실행 클러스터 내 컴퓨터로 분배할 수도 있다. 트랜잭션 데이터 실행 클러스터 내 각각의 컴퓨터가 오직 할당된 트랜잭션 하위세트 내 트랜잭션 데이터를 실행시키고, 실행 결과를 블록체인에 기입하도록 블록체인 내 검증-구현-기록의 과정을 따른다. 예시적인 구현예에서, 트랜잭션 데이터 배열 모듈과 트랜잭션 데이터 실행 클러스터는 또한 트랜잭션 데이터의 수신, 분류, 분배, 및 실행의 기능을 구현하도록, 트랜잭션 데이터의 실행 결과를 요약하도록, 그리고 요약된 실행 결과를 블록체인에 기입하기 위한 트랜잭션 실행 클러스터로서 함께 해석될 수도 있다.
실시형태 2
본 출원의 실시형태는 트랜잭션 데이터를 블록체인에 기입하기 위한 또 다른 방법을 더 제공하고, 방법은,
실행될 트랜잭션 데이터의 복수의 피스를 획득하는 단계;
트랜잭션 데이터의 데이터 변경 범위에 따라 트랜잭션 종속 관계가 없는 제1 트랜잭션 데이터를 결정하는 단계(제1 트랜잭션 데이터 간에 트랜잭션 종속 관계는 없음); 및
제1 트랜잭션 데이터를 동시에 실행시키고, 그리고 실행 결과를 블록체인에 기입하는 단계를 포함한다.
하나의 실시예에서, 제1 트랜잭션 데이터가 결정될 때, 트랜잭션 데이터의 임의의 다른 피스의 또 다른 데이터 변경 범위와 중첩되지 않는 데이터 변경 범위를 가진 트랜잭션 데이터는 트랜잭션 데이터의 데이터 변경 범위에 따라 트랜잭션 종속 관계를 갖지 않는 제1 트랜잭션 데이터로서 결정될 수도 있다.
트랜잭션 데이터의 획득된 복수의 피스가 다음 표 1과 같다고 가정한다면,
데이터
번호
트랜잭션 유형 데이터 변경 범위 비고
1 계약 ID A 실행은 ID A의 데이터를 변경할 것임
2 계약 ID A 실행은 ID A의 데이터를 변경할 것임
3 계약 ID B 실행은 ID B의 데이터를 변경할 것임
4 계약 ID C 실행은 ID C의 데이터를 변경할 것임
5 이체 계정 X, 계정 Y 실행은 계정 X 및 계정 Y의 데이터를 변경할 것임
6 이체 계정 Z, 계정 D 실행은 계정 Z 및 계정 D의 데이터를 변경할 것임
7 이체 계정 X, 계정 M 실행은 계정 X 및 계정 M의 데이터를 변경할 것임
8 이체 계정 N, 계정 L 실행은 계정 N 및 계정 L의 데이터를 변경할 것임
트랜잭션 데이터의 데이터 변경 범위에 따라, 트랜잭션 데이터(3, 4, 6, 및 8)의 데이터 변경 범위가 임의의 다른 트랜잭션 데이터의 데이터 변경 범위와 중첩되지 않는 것을 알 수 있다. 따라서, 트랜잭션 데이터의 이 피스의 실행 순서는 데이터베이스 상태의 일관성에 영향을 주지 않는다. 그 결과, 트랜잭션 데이터의 이 피스의 병렬 실행이 데이터 처리의 실행 효율의 개선을 장려하여, 데이터 처리의 실행 효율을 개선시키기 위해 필요한 비용을 감소시키고 그리고 확장성을 개선시킨다.
실시형태 3
도 5에 도시된 바와 같이, 본 출원에 따라 트랜잭션 데이터를 블록체인에 기입하기 위한 장치는,
블록체인에 기입될 트랜잭션 데이터의 복수의 피스를 획득하도록 구성된 획득 모듈(101);
트랜잭션 데이터가 속하는 트랜잭션 하위세트를 트랜잭션 데이터의 트랜잭션 유형 및/또는 데이터 변경 범위에 따라 결정하도록 구성된 트랜잭션 하위세트 결정 모듈(102)(상이한 트랜잭션 하위세트에 속하는 트랜잭션 데이터 간에 트랜잭션 종속 관계가 없음); 및
트랜잭션 하위세트를 동시에 실행시키고, 그리고 실행 결과를 블록체인에 기입하도록 구성된 데이터 실행 모듈(103)을 포함할 수도 있다.
본 실시형태는 실시형태 1에서 트랜잭션 데이터를 블록체인에 기입하기 위한 방법에 대응하는 장치이다. 실시형태 1의 모든 설명은 본 실시형태에 적용 가능하고, 이는 여기서 상세히 설명되지 않을 것이다.
실시형태 4
본 출원은 블록체인 트랜잭션 데이터의 트랜잭션 하위세트를 결정하기 위한 방법을 더 제공한다. 트랜잭션 데이터가 이 방법을 사용하여 합리적으로 분할될 수도 있어서, 트랜잭션 종속 관계가 없는 트랜잭션 데이터가 동시에 실행되게 하여, 데이터 처리의 실행 효율을 개선시키기 위해 필요한 비용을 감소시키고 그리고 확장성을 개선시킨다. 방법은,
실행될 트랜잭션 데이터의 복수의 피스가 획득된 후, 트랜잭션 데이터가 속하는 트랜잭션 하위세트가 트랜잭션 하위세트를 동시에 실행시키기 위해, 트랜잭션 데이터의 트랜잭션 유형 및/또는 데이터 변경 범위에 따라 결정되는 단계를 포함하고, 상이한 트랜잭션 하위세트에 속하는 트랜잭션 데이터 간에 트랜잭션 종속 관계가 없다.
하나의 실시예에서, 트랜잭션 데이터가 속하는 트랜잭션 하위세트를 트랜잭션 데이터의 트랜잭션 유형 및/또는 데이터 변경 범위에 따라 결정하는 것은,
트랜잭션 데이터가 속하는 트랜잭션 하위세트를 트랜잭션 데이터의 데이터 속성에 따라 결정하는 것을 포함할 수도 있고, 데이터 속성은 트랜잭션 데이터의 트랜잭션 유형 및/또는 데이터 변경 범위와 대응 관계를 갖고, 그리고 데이터 속성은 트랜잭션 데이터의 트랜잭션 종속 관계를 나타내기 위해 사용된다.
게다가, 트랜잭션 데이터가 속하는 트랜잭션 하위세트를 트랜잭션 데이터의 트랜잭션 유형에 따라 결정하는 것은, 트랜잭션 데이터의 트랜잭션 유형에 따라, 동일한 트랜잭션 유형의 트랜잭션 데이터를 동일한 트랜잭션 하위세트에 넣고, 그리고 상이한 트랜잭션 유형의 트랜잭션 데이터를 상이한 트랜잭션 하위세트로 분할하는 것을 포함할 수도 있다.
트랜잭션 데이터가 속하는 트랜잭션 하위세트를 트랜잭션 데이터의 데이터 변경 범위에 따라 결정하는 것은, 트랜잭션 데이터의 데이터 변경 범위에 따라, 중첩되는 데이터 변경 범위를 가진 트랜잭션 데이터를 동일한 트랜잭션 하위세트에 넣고, 그리고 중첩되지 않는 데이터 변경 범위를 가진 트랜잭션 데이터를 상이한 트랜잭션 하위세트로 분할하는 것을 포함할 수도 있다.
트랜잭션 데이터가 속하는 트랜잭션 하위세트를 트랜잭션 데이터의 트랜잭션 유형 및 데이터 변경 범위에 따라 결정하는 것은,
트랜잭션 데이터가 속하는 레벨 I 하위세트를 트랜잭션 데이터의 트랜잭션 유형에 따라 결정하는 것; 및
트랜잭션 데이터가 속하는 레벨 II 하위세트를 레벨 I 하위세트 내 트랜잭션 데이터의 데이터 변경 범위에 따라 결정하고, 그리고 레벨 II 하위세트를 트랜잭션 하위세트로서 사용하는 것을 더 포함할 수도 있고, 레벨 II 하위세트는 레벨 I 하위세트의 하위세트이다.
본 실시형태의 상세한 구현이 실시형태 1의 단계(S102)에 대응하고, 그리고 실시형태 1의 모든 관련된 설명이 본 실시형태에 적용 가능하고, 이는 여기서 상세히 설명되지 않을 것이다.
당업자는 본 발명의 실시형태가 방법, 시스템 또는 컴퓨터 프로그램 제품으로서 제공될 수도 있다는 것을 이해해야 한다. 따라서, 본 발명은 완전한 하드웨어 실시형태, 완전한 소프트웨어 실시형태, 또는 소프트웨어와 하드웨어를 결합한 실시형태로서 구현될 수도 있다. 또한, 본 발명은 컴퓨터 사용 가능한 프로그램 코드를 포함하는 하나 이상의 컴퓨터 사용 가능한 저장 매체(자기 디스크 메모리, CD-ROM, 광 메모리 등을 포함하지만 이들로 제한되지 않음)에 구현된 컴퓨터 프로그램 제품의 형태일 수도 있다.
본 발명은 본 발명의 실시형태에 따라 방법, 디바이스(시스템) 및 컴퓨터 프로그램 제품의 흐름도 및/또는 블록도를 참조하여 설명된다. 컴퓨터 프로그램 명령어가 흐름도 및/또는 블록도에서 각각의 과정 및/또는 블록 그리고 흐름도 및/또는 블록도에서 과정 및/또는 블록의 조합을 구현하도록 사용될 수도 있다는 것이 이해되어야 한다. 이 컴퓨터 프로그램 명령어가 기계를 생산하도록 다용도 컴퓨터, 특수화 컴퓨터, 내장된 프로세서, 또는 다른 프로그램 가능한 데이터 처리 디바이스의 프로세서에 제공될 수도 있어서, 컴퓨터 또는 다른 프로그램 가능한 데이터 처리 디바이스의 프로세서에 의해 실행되는 명령어가 흐름도의 하나 이상의 과정 및/또는 블록도의 하나 이상의 블록에 지정된 기능을 구현하기 위한 장치를 생성하게 한다.
이 컴퓨터 프로그램 명령어가 또한 컴퓨터 또는 다른 프로그램 가능한 데이터 처리 디바이스가 특정한 방식으로 작동하게 명령할 수 있는 컴퓨터 판독 가능한 메모리에 저장될 수도 있어서, 이 컴퓨터 판독 가능한 메모리에 저장된 명령어가 명령 장치를 포함하는 제작된 물품을 생성하게 한다. 이 명령 장치는 흐름도의 하나 이상의 과정 및/또는 블록도의 하나 이상의 블록에 지정된 기능을 구현한다.
이 컴퓨터 프로그램 명령어가 컴퓨터 또는 다른 프로그램 가능한 데이터 처리 디바이스에 로딩될 수도 있어서, 일련의 작동 단계가 컴퓨터 또는 다른 프로그램 가능한 디바이스에서 수행되어 컴퓨터 구현 처리를 생성한다. 따라서, 컴퓨터 또는 다른 프로그램 가능한 디바이스에서 실행된 명령어가 흐름도의 하나 이상의 과정 및/또는 블록도의 하나 이상의 블록에 지정된 기능을 구현하기 위한 단계를 제공한다.
전형적인 구성에서, 연산 디바이스는 하나 이상의 프로세서(CPU), 입력/출력 인터페이스, 네트워크 인터페이스 및 메모리를 포함한다.
메모리는 컴퓨터 판독 가능한 매체, 예컨대, 휘발성 메모리, 랜덤 액세스 메모리(Random Access Memory: RAM) 및/또는 비휘발성 메모리, 예를 들어, 판독-전용 메모리(Read-Only Memory: ROM) 또는 플래시 메모리(플래시 RAM)를 포함할 수도 있다. 메모리는 컴퓨터 판독 가능한 매체의 예이다.
컴퓨터 판독 가능한 매체는 영구적, 휘발성, 이동, 및 부동 매체를 포함하고, 이는 임의의 방법 또는 기술을 통해 정보 저장을 구현할 수 있다. 정보는 컴퓨터 판독 가능한 명령어, 데이터 구조, 프로그램 모듈 또는 다른 데이터일 수도 있다. 컴퓨터의 저장 매체의 예는 상-변화 랜덤 액세스 메모리(Phase-change Random Access Memory: PRAM), 정적 랜덤 액세스 메모리(Static Random Access Memory: SRAM), 동적 랜덤 액세스 메모리(Dynamic Random Access Memory: DRAM), 다른 유형의 랜덤 액세스 메모리(RAM), 판독-전용 메모리(ROM), 전기적으로 소거 가능한 프로그램 가능한 판독 전용 메모리(Electrically Erasable Programmable Read-Only Memory: EEPROM), 플래시 메모리 또는 다른 메모리 기술, 콤팩트 디스크-판독-전용 메모리(Compact Disk Read-Only Memory: CD-ROM), 디지털 다기능 디스크(Digital Versatile Disc: DVD) 또는 다른 광 메모리, 카세트, 카세트 및 디스크 메모리 또는 다른 자기 메모리 디바이스 또는 임의의 다른 비전송 매체를 포함하지만, 이들로 제한되지 않고, 이는 연산 디바이스에 액세스 가능한 정보를 저장하기 위해 사용될 수 있다. 이 명세서의 정의에 따르면, 컴퓨터 판독 가능한 매체는 일시적인 매체(transitory media), 예컨대, 변조된 데이터 신호 및 캐리어를 포함하지 않는다.
용어 "포함" 또는 용어의 임의의 변형은 배타적이지 않은 포함을 포함하도록 의도되어, 일련의 구성요소를 포함하는 과정, 방법, 상품 또는 디바이스가 이 구성요소를 포함할 뿐만 아니라 명확히 나열되지 않은 다른 구성요소를 포함하거나, 또는 또한 이 과정, 방법, 상품 또는 디바이스에 고유한 구성요소를 더 포함한다는 것에 더 유의해야 한다. 추가의 제한이 없을 때, 표현 "~을 포함하는"에 의해 규정된 구성요소는 위의 구성요소를 포함하는 과정, 방법, 상품 또는 디바이스를 추가의 동일한 구성요소를 더 포함하는 것으로부터 배제하지 않는다.
당업자는 본 출원의 실시형태가 방법, 시스템 또는 컴퓨터 프로그램 제품으로서 제공될 수도 있다는 것을 이해해야 한다. 따라서, 본 출원은 완전한 하드웨어 실시형태, 완전한 소프트웨어 실시형태, 또는 소프트웨어와 하드웨어를 결합한 실시형태로서 구현될 수도 있다. 또한, 본 출원은 컴퓨터 사용 가능한 프로그램 코드를 포함하는 하나 이상의 컴퓨터 사용 가능한 저장 매체(자기 디스크 메모리, CD-ROM, 광 메모리 등을 포함하지만 이들로 제한되지 않음)에 구현된 컴퓨터 프로그램 제품의 형태일 수도 있다.
위의 설명은 단지 본 출원의 실시형태이고, 본 출원을 제한하도록 사용되지 않는다. 당업자는 본 출원에 대한 다양한 변경 또는 변화를 행할 수도 있다. 본 출원의 정신 및 원리 내에 행해진 모든 변경, 등가 치환 및 개선은 본 출원의 청구항에 포함될 것이다.

Claims (21)

  1. 트랜잭션 데이터(transaction data)를 블록체인에 기입하기 위한 방법으로서,
    상기 블록체인에 기입될 트랜잭션 데이터의 복수의 피스를 획득하는 단계;
    상기 트랜잭션 데이터가 속하는 레벨 I 하위세트를 상기 트랜잭션 데이터의 트랜잭션 유형에 따라 결정하는 단계로서, 상이한 트랜잭션 하위세트에 속하는 트랜잭션 데이터 간에 트랜잭션 종속 관계가 없는, 레벨 I 하위세트를 결정하는 단계;
    상기 레벨 I 하위세트 내 상기 트랜잭션 데이터가 속하는 레벨 II 하위세트를 상기 트랜잭션 데이터의 데이터 변경 범위에 따라 결정하고, 그리고 상기 레벨 II 하위세트를 상기 트랜잭션 하위세트 중 하나로서 사용하는 단계; 및
    상기 트랜잭션 하위세트를 동시에 실행시키고, 그리고 실행 결과를 상기 블록체인에 기입하는 단계를 포함하고,
    상기 레벨 II 하위세트는 상기 레벨 I 하위세트의 하위세트인, 트랜잭션 데이터를 블록체인에 기입하기 위한 방법.
  2. 삭제
  3. 제1항에 있어서, 상기 트랜잭션 하위세트를 동시에 실행시키는 단계는,
    상기 트랜잭션 하위세트를 멀티스레딩(multithreading) 또는 머신 클러스터(machine cluster)를 사용하여 동시에 실행시키는 것을 포함하는, 트랜잭션 데이터를 블록체인에 기입하기 위한 방법.
  4. 제1항에 있어서, 상기 트랜잭션 데이터와 타임스탬프 간에 대응 관계가 있고,
    상기 트랜잭션 하위세트를 실행시키는 단계는, 상기 트랜잭션 하위세트에 포함되는 트랜잭션 데이터를 연속적으로 상기 타임스탬프에 대응하는 시간 순서에 따라 실행시키는 것을 포함하는, 트랜잭션 데이터를 블록체인에 기입하기 위한 방법.
  5. 제1항에 있어서, 상기 레벨 I 하위세트를 상기 트랜잭션 데이터의 트랜잭션 유형에 따라 결정하는 단계는,
    상기 트랜잭션 데이터의 상기 트랜잭션 유형에 따라, 동일한 트랜잭션 유형의 트랜잭션 데이터를 동일한 트랜잭션 하위세트에 넣고, 그리고 상이한 트랜잭션 유형의 트랜잭션 데이터를 상이한 트랜잭션 하위세트로 분할하는 것을 포함하는, 트랜잭션 데이터를 블록체인에 기입하기 위한 방법.
  6. 제1항에 있어서, 상기 레벨 I 하위세트 내 상기 트랜잭션 데이터가 속하는 레벨 II 하위세트를 상기 트랜잭션 데이터의 데이터 변경 범위에 따라 결정하는 것은,
    상기 트랜잭션 데이터의 상기 데이터 변경 범위에 따라, 중첩되는 데이터 변경 범위를 가진 트랜잭션 데이터를 동일한 트랜잭션 하위세트에 넣고, 그리고 중첩되지 않는 데이터 변경 범위를 가진 트랜잭션 데이터를 상이한 트랜잭션 하위세트로 분할하는 것을 포함하는, 트랜잭션 데이터를 블록체인에 기입하기 위한 방법.
  7. 제6항에 있어서, 상기 트랜잭션 데이터의 상기 데이터 변경 범위에 따라, 중첩되는 데이터 변경 범위를 가진 트랜잭션 데이터를 동일한 트랜잭션 하위세트에 넣고, 그리고 중첩되지 않는 데이터 변경 범위를 가진 트랜잭션 데이터를 상이한 트랜잭션 하위세트로 분할하는 것은,
    상기 트랜잭션 데이터의 데이터 변경 범위를 트래버싱(traverse)하는 것;
    트랜잭션 데이터의 제1 피스의 상기 데이터 변경 범위가 제1 트랜잭션 하위세트의 상기 데이터 변경 범위와 중첩된다면, 상기 트랜잭션 데이터의 제1 피스를 상기 제1 트랜잭션 하위세트에 추가하는 것; 및
    상기 트랜잭션 데이터의 제1 피스의 상기 데이터 변경 범위가 상기 제1 트랜잭션 하위세트의 상기 데이터 변경 범위와 중첩되지 않는다면, 상기 트랜잭션 데이터의 제1 피스를 포함하는 제2 트랜잭션 하위세트를 생성하는 것을 포함하되,
    상기 트랜잭션 데이터의 제1 피스는 트랜잭션 데이터의 피스 중 임의의 피스이고, 상기 제1 트랜잭션 하위세트는 상기 트랜잭션 하위세트 중 임의의 트랜잭션 하위세트이고, 그리고 상기 제2 트랜잭션 하위세트는 상기 제1 트랜잭션 하위세트와는 상이한, 트랜잭션 데이터를 블록체인에 기입하기 위한 방법.
  8. 제6항 또는 제7항에 있어서, 상기 트랜잭션 하위세트의 상기 데이터 변경 범위는 상기 트랜잭션 하위세트에 포함되는 트랜잭션 데이터의 데이터 변경 범위의 통합이 되도록 결정되는, 트랜잭션 데이터를 블록체인에 기입하기 위한 방법.
  9. 제7항에 있어서, 상기 트랜잭션 데이터와 타임스탬프 간에 대응 관계가 있고,
    상기 트랜잭션 데이터의 데이터 변경 범위를 트래버싱하는 것은, 상기 트랜잭션 데이터의 상기 타임스탬프에 따라 상기 타임스탬프에 대응하는 시간 순서로 트래버싱하는 것을 포함하는, 트랜잭션 데이터를 블록체인에 기입하기 위한 방법.
  10. 삭제
  11. 제1항에 있어서, 상기 트랜잭션 데이터가 속하는 레벨 I 하위세트를 상기 트랜잭션 데이터의 트랜잭션 유형에 따라 결정하는 단계는,
    상기 트랜잭션 데이터의 상기 트랜잭션 유형에 따라, 동일한 트랜잭션 유형의 트랜잭션 데이터를 동일한 레벨 I 하위세트에 넣고, 그리고 상이한 트랜잭션 유형의 트랜잭션 데이터를 상이한 레벨 I 하위세트로 분할하는 것을 포함하는, 트랜잭션 데이터를 블록체인에 기입하기 위한 방법.
  12. 제1항에 있어서, 상기 레벨 I 하위세트 내 상기 트랜잭션 데이터가 속하는 레벨 II 하위세트를 상기 트랜잭션 데이터의 데이터 변경 범위에 따라 결정하는 것은,
    상기 레벨 I 하위세트 내 상기 트랜잭션 데이터의 상기 데이터 변경 범위에 따라, 중첩되는 데이터 변경 범위를 가진 트랜잭션 데이터를 동일한 레벨 II 하위세트에 넣고, 그리고 중첩되지 않는 데이터 변경 범위를 가진 트랜잭션 데이터를 상이한 레벨 II 하위세트로 분할하는 것을 포함하는, 트랜잭션 데이터를 블록체인에 기입하기 위한 방법.
  13. 제12항에 있어서, 상기 레벨 I 하위세트 내 상기 트랜잭션 데이터의 상기 데이터 변경 범위에 따라, 중첩되는 데이터 변경 범위를 가진 트랜잭션 데이터를 동일한 레벨 II 하위세트에 넣고, 그리고 중첩되지 않는 데이터 변경 범위를 가진 트랜잭션 데이터를 상이한 레벨 II 하위세트로 분할하는 것은,
    제1 레벨 I 하위세트 내 트랜잭션 데이터의 데이터 변경 범위를 트래버싱하는 것;
    트랜잭션 데이터의 제2 피스의 상기 데이터 변경 범위가 제1 레벨 II 하위세트의 상기 데이터 변경 범위와 중첩된다면, 상기 트랜잭션 데이터의 제2 피스를 상기 제1 레벨 II 하위세트에 추가하는 것; 및
    상기 트랜잭션 데이터의 제2 피스의 상기 데이터 변경 범위가 상기 제1 레벨 II 하위세트의 상기 데이터 변경 범위와 중첩되지 않는다면, 상기 트랜잭션 데이터의 제2 피스를 포함하는 제2 레벨 II 하위세트를 생성하는 것을 포함하되,
    상기 제1 레벨 I 하위세트는 상기 레벨 I 하위세트 내 임의의 레벨 I 하위세트이고, 상기 트랜잭션 데이터의 제2 피스는 상기 제1 레벨 I 하위세트 내 트랜잭션 데이터의 임의의 피스이고, 상기 제1 레벨 II 하위세트는 상기 제1 레벨 I 하위세트 내 임의의 레벨 II 하위세트이고, 그리고 상기 제2 레벨 II 하위세트는 상기 제1 레벨 II 하위세트와는 상이한, 트랜잭션 데이터를 블록체인에 기입하기 위한 방법.
  14. 제1항에 있어서, 실행될 트랜잭션 데이터의 상기 복수의 피스는 상기 트랜잭션 데이터를 포함하는 실행될 트랜잭션 세트를 형성하도록 획득되고, 그리고 상기 트랜잭션 세트는 미리 설정된 데이터 처리량 및/또는 미리 설정된 트랜잭션 데이터 시간에 의해 결정되는, 트랜잭션 데이터를 블록체인에 기입하기 위한 방법.
  15. 트랜잭션 데이터를 블록체인에 기입하기 위한 방법으로서,
    상기 블록체인에 기입될 트랜잭션 데이터의 복수의 피스를 획득하는 단계;
    트랜잭션 데이터의 데이터 변경 범위에 따라, 트랜잭션 데이터의 임의의 다른 피스의 데이터 변경 범위와 중첩되지 않는 데이터 변경 범위를 가진 트랜잭션 데이터를, 트랜잭션 종속 관계를 갖지 않는 제1 트랜잭션 데이터로서 결정하는 단계; 및
    상기 제1 트랜잭션 데이터를 동시에 실행시키고, 그리고 실행 결과를 상기 블록체인에 기입하는 단계를 포함하는, 트랜잭션 데이터를 블록체인에 기입하기 위한 방법.
  16. 삭제
  17. 트랜잭션 데이터를 블록체인에 기입하기 위한 장치로서,
    상기 블록체인에 기입될 트랜잭션 데이터의 복수의 피스를 획득하도록 구성된 획득 모듈;
    상기 트랜잭션 데이터가 속하는 레벨 I 하위세트를 상기 트랜잭션 데이터의 트랜잭션 유형에 따라 결정하고, 상기 레벨 I 하위세트 내 상기 트랜잭션 데이터가 속하는 레벨 II 하위세트를 상기 트랜잭션 데이터의 데이터 변경 범위에 따라 결정하며, 상기 레벨 II 하위세트를 트랜잭션 하위세트 중 하나로서 사용하도록 구성된 트랜잭션 하위세트 결정 모듈로서, 상이한 트랜잭션 하위세트에 속하는 트랜잭션 데이터 간에 트랜잭션 종속 관계가 없고, 상기 레벨 II 하위세트는 상기 레벨 I 하위세트의 하위세트인, 트랜잭션 하위세트 결정 모듈; 및
    상기 트랜잭션 하위세트를 동시에 실행시키고, 그리고 실행 결과를 상기 블록체인에 기입하도록 구성된 데이터 실행 모듈을 포함하는, 트랜잭션 데이터를 블록체인에 기입하기 위한 장치.
  18. 블록체인 트랜잭션 데이터의 트랜잭션 하위세트를 결정하기 위한 방법으로서,
    블록체인에 기입될 트랜잭션 데이터의 복수의 피스가 획득된 후, 트랜잭션 하위세트의 세트를 동시에 실행시키고 그리고 실행 결과를 상기 블록체인에 기입하기 위해, 상기 트랜잭션 데이터가 속하는 레벨 I 하위세트를 상기 트랜잭션 데이터의 트랜잭션 유형에 따라 결정하고, 상기 레벨 I 하위세트 내 상기 트랜잭션 데이터가 속하는 레벨 II 하위세트를 상기 트랜잭션 데이터의 데이터 변경 범위에 따라 결정하며, 상기 레벨 II 하위세트를, 상기 트랜잭션 하위세트의 세트 중의 트랜잭션 하위세트로서 사용하는 단계를 포함하되, 상기 레벨 II 하위세트는 상기 레벨 I 하위세트의 하위세트이고, 상이한 트랜잭션 하위세트에 속하는 트랜잭션 데이터 간에 트랜잭션 종속 관계가 없는, 블록체인 트랜잭션 데이터의 트랜잭션 하위세트를 결정하기 위한 방법.
  19. 제18항에 있어서,
    상기 트랜잭션 데이터가 속하는 레벨 I 하위세트를 상기 트랜잭션 데이터의 트랜잭션 유형에 따라 결정하는 것은, 상기 트랜잭션 데이터의 상기 트랜잭션 유형에 따라, 동일한 트랜잭션 유형의 트랜잭션 데이터를 동일한 트랜잭션 하위세트에 넣고, 그리고 상이한 트랜잭션 유형의 트랜잭션 데이터를 상이한 트랜잭션 하위세트로 분할하는 것을 포함하거나; 또는
    상기 트랜잭션 데이터가 속하는 레벨 II 하위세트를 상기 트랜잭션 데이터의 데이터 변경 범위에 따라 결정하는 것은, 상기 트랜잭션 데이터의 상기 데이터 변경 범위에 따라, 중첩되는 데이터 변경 범위를 가진 트랜잭션 데이터를 동일한 트랜잭션 하위세트에 넣고, 그리고 중첩되지 않는 데이터 변경 범위를 가진 트랜잭션 데이터를 상이한 트랜잭션 하위세트로 분할하는 것을 포함하는, 블록체인 트랜잭션 데이터의 트랜잭션 하위세트를 결정하기 위한 방법.
  20. 트랜잭션 데이터를 블록체인에 기입하기 위한 장치로서,
    상기 블록체인에 기입될 트랜잭션 데이터의 복수의 피스를 획득하도록 구성된 획득 모듈;
    트랜잭션 데이터의 데이터 변경 범위에 따라, 트랜잭션 데이터의 임의의 다른 피스의 데이터 변경 범위와 중첩되지 않는 데이터 변경 범위를 가진 트랜잭션 데이터를, 트랜잭션 종속 관계를 갖지 않는 제1 트랜잭션 데이터로서 결정하도록 구성된 트랜잭션 하위세트 결정 모듈; 및
    상기 제1 트랜잭션 데이터를 동시에 실행시키고, 그리고 실행 결과를 상기 블록체인에 기입하도록 구성된 데이터 실행 모듈을 포함하는, 트랜잭션 데이터를 블록체인에 기입하기 위한 장치.
  21. 블록체인 트랜잭션 데이터의 트랜잭션 하위세트를 결정하기 위한 장치로서,
    블록체인에 기입될 트랜잭션 데이터의 복수의 피스가 획득된 후, 트랜잭션 하위세트의 세트를 동시에 실행시키고 그리고 실행 결과를 상기 블록체인에 기입하기 위해, 상기 트랜잭션 데이터가 속하는 레벨 I 하위세트를 상기 트랜잭션 데이터의 트랜잭션 유형에 따라 결정하고, 상기 레벨 I 하위세트 내 상기 트랜잭션 데이터가 속하는 레벨 II 하위세트를 상기 트랜잭션 데이터의 데이터 변경 범위에 따라 결정하며, 상기 레벨 II 하위세트를, 상기 트랜잭션 하위세트의 세트 중의 트랜잭션 하위세트로서 사용하도록 구성된 트랜잭션 하위세트 결정 모듈을 포함하되, 상기 레벨 II 하위세트는 상기 레벨 I 하위세트의 하위세트이고, 상이한 트랜잭션 하위세트에 속하는 트랜잭션 데이터 간에 트랜잭션 종속 관계가 없는, 블록체인 트랜잭션 데이터의 트랜잭션 하위세트를 결정하기 위한 장치.
KR1020197023701A 2017-02-28 2018-02-26 서비스 데이터를 블록체인에 기입하기 위한 방법 및 장치, 그리고 서비스 하위세트를 결정하기 위한 방법 KR102103130B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201710116539.7A CN106980649B (zh) 2017-02-28 2017-02-28 写入区块链业务数据的方法和装置及业务子集合确定方法
CN201710116539.7 2017-02-28
PCT/CN2018/077286 WO2018157778A1 (zh) 2017-02-28 2018-02-26 写入区块链业务数据的方法和装置及业务子集合确定方法

Publications (2)

Publication Number Publication Date
KR20190099087A KR20190099087A (ko) 2019-08-23
KR102103130B1 true KR102103130B1 (ko) 2020-04-22

Family

ID=59339366

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197023701A KR102103130B1 (ko) 2017-02-28 2018-02-26 서비스 데이터를 블록체인에 기입하기 위한 방법 및 장치, 그리고 서비스 하위세트를 결정하기 위한 방법

Country Status (16)

Country Link
US (2) US10642643B2 (ko)
EP (1) EP3561700A4 (ko)
JP (1) JP6928104B2 (ko)
KR (1) KR102103130B1 (ko)
CN (1) CN106980649B (ko)
AU (2) AU2018228540B2 (ko)
BR (1) BR112019017863A2 (ko)
CA (1) CA3054813C (ko)
MX (1) MX2019009728A (ko)
MY (1) MY197445A (ko)
PH (1) PH12019501795A1 (ko)
RU (1) RU2744585C2 (ko)
SG (1) SG11201907212SA (ko)
TW (1) TWI660281B (ko)
WO (1) WO2018157778A1 (ko)
ZA (1) ZA201904916B (ko)

Families Citing this family (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106980649B (zh) * 2017-02-28 2020-07-10 创新先进技术有限公司 写入区块链业务数据的方法和装置及业务子集合确定方法
GB201707296D0 (en) * 2017-05-08 2017-06-21 Nchain Holdings Ltd Computer-implemented system and method
CN107423124A (zh) * 2017-07-27 2017-12-01 中链科技有限公司 一种用于对交易数据进行并行处理的方法
CN107729137B (zh) * 2017-09-04 2021-06-22 深圳壹账通智能科技有限公司 服务器、区块链验签解密的方法及存储介质
CN107678865A (zh) * 2017-09-20 2018-02-09 中国银行股份有限公司 基于交易分组的区块链的验证方法以及系统
CN107786642B (zh) * 2017-09-30 2020-04-17 上海数据交易中心有限公司 用于数据流通的区块链构建方法及装置、存储介质、服务器
CN107734021B (zh) * 2017-09-30 2020-04-07 深圳壹账通智能科技有限公司 区块链数据上传方法、系统、计算机系统及存储介质
CN107833060B (zh) * 2017-11-13 2020-12-25 中国银行股份有限公司 一种区块链中智能合约交易的验证方法以及系统
CN108322309B (zh) * 2017-12-27 2019-10-11 北京欧链科技有限公司 基于区块链的交易处理方法及装置
CN108513669A (zh) * 2017-12-29 2018-09-07 深圳前海达闼云端智能科技有限公司 基于区块链的众筹信息处理方法、装置、存储介质及电子设备
CN110083437A (zh) * 2018-01-25 2019-08-02 北京欧链科技有限公司 处理区块链事务的方法及装置
CN108471510A (zh) * 2018-01-29 2018-08-31 东莞理工学院 一种基于区块链的视频操作记录保护方法及系统
CN108564470B (zh) * 2018-04-17 2021-09-28 北京天德科技有限公司 一种区块链中并行建块的交易分发方法
CN108958925B (zh) * 2018-04-26 2023-06-20 武汉龙津科技有限公司 一种节能的工作量证明方法与系统
CN108768994B (zh) * 2018-05-22 2021-07-27 北京小米移动软件有限公司 数据匹配方法、装置及计算机可读存储介质
JP7063142B2 (ja) * 2018-06-25 2022-05-09 日本電信電話株式会社 番号管理システム、番号管理方法および番号管理装置
CN109087097B (zh) * 2018-07-26 2020-11-03 京东数字科技控股有限公司 一种更新链码同一标识的方法和装置
CN109191295A (zh) * 2018-08-15 2019-01-11 深圳市元征科技股份有限公司 一种信息处理方法及其设备
CN109325366B (zh) * 2018-08-22 2022-08-12 深圳前海微众银行股份有限公司 基于联盟链的业务处理方法、设备及计算机可读存储介质
US10860659B1 (en) * 2018-09-06 2020-12-08 Amazon Technologies, Inc. Distributed verification of digital work product
TWI698100B (zh) * 2018-09-18 2020-07-01 柯賓漢數位金融科技有限公司 多區塊鏈產生及整合方法暨區塊鏈系統
CN109493211A (zh) * 2018-09-27 2019-03-19 深圳壹账通智能科技有限公司 基于区块链的信贷数据存储方法、装置、设备及存储介质
CN109088722B (zh) * 2018-10-08 2021-10-19 深圳投时科技有限公司 区块链节点演进方法及区块链节点
CN109299195A (zh) * 2018-10-23 2019-02-01 杭州能链科技有限公司 数据处理方法、装置及存储介质
CN111782275B (zh) * 2018-10-25 2024-02-06 创新先进技术有限公司 基于区块链的交易处理方法及装置、电子设备
US11138597B2 (en) 2018-11-27 2021-10-05 Advanced New Technologies Co., Ltd. System and method for improving security of smart contract on blockchain
US11354727B2 (en) * 2018-11-27 2022-06-07 Advanced New Technologies Co., Ltd. System and method for improving security of smart contract on blockchain
CN111291018B (zh) * 2018-12-07 2023-06-23 北京沃东天骏信息技术有限公司 数据管理方法、装置、设备及存储介质
CN109766727B (zh) * 2018-12-25 2021-04-06 苏州朗润创新知识产权运营有限公司 智能区块网络构建方法及系统
BR112019016064A2 (pt) * 2018-12-28 2020-03-31 Alibaba Group Holding Limited Método implementado por computador, meio de armazenamento legível e sistema
MX2019009344A (es) 2018-12-28 2019-10-02 Alibaba Group Holding Ltd Ejecucion paralela de transacciones en una red de cadena de bloques con base en listas blancas de contratos inteligentes.
WO2019072311A2 (en) * 2018-12-29 2019-04-18 Alibaba Group Holding Limited PARTICIPATORY PRODUCTION BASED ON A CHAIN OF BLOCKS OF MAPPING APPLICATIONS
KR102354776B1 (ko) 2019-03-04 2022-01-25 어드밴스드 뉴 테크놀로지스 씨오., 엘티디. 트랜잭션 데이터를 처리를 위해 블록체인 시스템에 제공하기 위한 방법 및 디바이스
JP6955026B2 (ja) * 2019-03-28 2021-10-27 アドバンスド ニュー テクノロジーズ カンパニー リミテッド 並列処理ブロックチェーントランザクションのためのシステムおよび方法
SG11201910057QA (en) 2019-04-12 2019-11-28 Alibaba Group Holding Ltd Performing parallel execution of transactions in a distributed ledger system
CN111095326B (zh) * 2019-04-12 2023-08-22 创新先进技术有限公司 用于在区块链网络中执行多个交易的方法、系统和装置
CA3060790C (en) 2019-04-12 2021-06-08 Alibaba Group Holding Limited Performing parallel execution of transactions in a distributed ledger system
KR102118178B1 (ko) * 2019-04-24 2020-06-02 주식회사 데이터젠 블록체인을 위한 다중 트랜잭션 병렬 처리 방법 및 시스템
CN110209671A (zh) * 2019-05-17 2019-09-06 无锡朝阳供应链科技股份有限公司 一种分布式账本数据的存取系统及其应用
CN112001713B (zh) * 2019-05-27 2024-03-29 深圳市红砖坊技术有限公司 区块链系统以及请求处理方法和装置
US11405204B2 (en) 2019-06-15 2022-08-02 Meta Platforms, Inc Scalable, secure, efficient, and adaptable distributed digital ledger transaction network
EP3983923A1 (en) * 2019-06-15 2022-04-20 Facebook, Inc. Scalable, secure, efficient, and adaptable distributed digital ledger transaction network
US11249947B2 (en) 2019-06-15 2022-02-15 Facebook, Inc. Distributed digital ledger transaction network for flexible, lazy deletion of data stored within an authenticated data structure
US11126593B2 (en) 2019-06-15 2021-09-21 Facebook, Inc. Scalable, secure, efficient, and adaptable distributed digital ledger transaction network
US11249985B2 (en) * 2019-06-15 2022-02-15 Facebook, Inc. Scalable, secure, efficient, and adaptable distributed digital ledger transaction network
CN110570311B (zh) * 2019-09-17 2021-05-25 北京海益同展信息科技有限公司 区块链的共识方法、装置及设备
CN110659308B (zh) * 2019-09-24 2020-12-22 华润网络(深圳)有限公司 一种数据清算处理方法及装置
CN110728578A (zh) * 2019-09-29 2020-01-24 南京金宁汇科技有限公司 区块链交易的并行执行方法、系统及存储介质
CN110806923B (zh) * 2019-10-29 2023-02-24 百度在线网络技术(北京)有限公司 一种区块链任务的并行处理方法、装置、电子设备和介质
CN111126978B (zh) * 2019-12-28 2023-03-14 飞天诚信科技股份有限公司 一种区块链上快速处理事务的实现方法及装置
US11682095B2 (en) 2020-02-25 2023-06-20 Mark Coast Methods and apparatus for performing agricultural transactions
KR102461553B1 (ko) * 2020-02-28 2022-11-01 주식회사 시큐어링크 대용량 정보 공유를 위한 계층 블록체인 시스템
CN111405037A (zh) * 2020-03-13 2020-07-10 杭州复杂美科技有限公司 区块同步方法、设备和存储介质
KR102315226B1 (ko) * 2020-03-16 2021-10-20 이정우 규칙 증명 방식의 합의 알고리즘 기반 블록체인 시스템 및 그 방법
CN113779016A (zh) * 2020-07-06 2021-12-10 北京沃东天骏信息技术有限公司 数据管理的方法和装置
CN112508574A (zh) * 2021-02-03 2021-03-16 北京全息智信科技有限公司 一种区块链的并行交易执行方法、装置和电子设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160085639A1 (en) 2014-09-19 2016-03-24 Mohammed ABOUZOUR Converting a serial transaction schedule to a parallel transaction schedule
KR101634481B1 (ko) 2012-06-15 2016-07-08 인터내셔널 비지네스 머신즈 코포레이션 트랜잭션 처리
CN106330431A (zh) * 2016-08-29 2017-01-11 北京瑞卓喜投科技发展有限公司 基于区块链技术的数据处理方法、装置及系统
CN106406896A (zh) * 2016-09-27 2017-02-15 北京天德科技有限公司 一种并行PipeLine技术的区块链建块方法
US20170212781A1 (en) 2016-01-26 2017-07-27 International Business Machines Corporation Parallel execution of blockchain transactions

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10002019B2 (en) * 2009-05-11 2018-06-19 International Business Machines Corporation System and method for assigning a transaction to a serialized execution group based on an execution group limit for parallel processing with other execution groups
RU2554509C2 (ru) * 2010-10-06 2015-06-27 Александр Яковлевич Богданов Система и способ распределенных вычислений
US8856283B2 (en) * 2011-06-03 2014-10-07 Apple Inc. Playlists for real-time or near real-time streaming
US20150379510A1 (en) * 2012-07-10 2015-12-31 Stanley Benjamin Smith Method and system to use a block chain infrastructure and Smart Contracts to monetize data transactions involving changes to data included into a data supply chain.
US9553982B2 (en) 2013-07-06 2017-01-24 Newvoicemedia, Ltd. System and methods for tamper proof interaction recording and timestamping
US11126627B2 (en) 2014-01-14 2021-09-21 Change Healthcare Holdings, Llc System and method for dynamic transactional data streaming
EP2961168A1 (en) * 2014-06-27 2015-12-30 Thomson Licensing Method and apparatus for predicting image samples for encoding or decoding
TWI528217B (zh) * 2014-07-02 2016-04-01 柯呈翰 於線上加上即時檔案動態標籤、加密之系統及方法
US9967334B2 (en) 2015-03-02 2018-05-08 Dell Products Lp Computing device configuration and management using a secure decentralized transaction ledger
US9967333B2 (en) 2015-03-02 2018-05-08 Dell Products Lp Deferred configuration or instruction execution using a secure distributed transaction ledger
US10812274B2 (en) * 2015-05-07 2020-10-20 Blockstream Corporation Transferring ledger assets between blockchains via pegged sidechains
EP3394818A4 (en) 2015-12-21 2019-08-14 Kochava Inc. AUTOREGULATING TRANSACTION SYSTEM AND ASSOCIATED METHODS
US10108812B2 (en) 2016-01-28 2018-10-23 Nasdaq, Inc. Systems and methods for securing and disseminating time sensitive information using a blockchain
GB2604540B (en) 2016-02-03 2023-01-11 Luther Systems System and method for secure management of digital contracts
WO2017134281A1 (en) 2016-02-04 2017-08-10 Nasdaq Technology Ab Systems and methods for storing and sharing transactional data using distributed computer systems
US10129238B2 (en) 2016-02-10 2018-11-13 Bank Of America Corporation System for control of secure access and communication with different process data networks with separate security features
US10142312B2 (en) 2016-02-22 2018-11-27 Bank Of America Corporation System for establishing secure access for users in a process data network
US20170264428A1 (en) 2016-03-08 2017-09-14 Manifold Technology, Inc. Data storage system with blockchain technology
WO2017173399A1 (en) 2016-03-31 2017-10-05 Clause, Inc. System and method for creating and executing data-driven legal contracts
CN105893042A (zh) * 2016-03-31 2016-08-24 北京航空航天大学 一种基于区块链的智能合约的实现方法
CA3019642C (en) 2016-04-01 2023-03-07 Jpmorgan Chase Bank, N.A. Systems and methods for providing data privacy in a private distributed ledger
GB201607476D0 (en) 2016-04-29 2016-06-15 Eitc Holdings Ltd Operating system for blockchain IOT devices
EP3455996A4 (en) 2016-05-09 2020-01-22 Nokia Technologies Oy BLOCK CHAIN-BASED RESOURCE MANAGEMENT
GB201611698D0 (en) 2016-07-05 2016-08-17 Eitc Holdings Ltd Blockchain-implemented control method and system
EP3472779A4 (en) 2016-07-14 2020-01-08 Digital Asset Holdings, LLC DIGITAL ASSETS PLATFORM
CN106682984B (zh) * 2016-10-27 2019-09-10 深圳壹账通智能科技有限公司 基于区块链的交易事务处理方法及系统
CN108427601A (zh) * 2017-02-13 2018-08-21 北京航空航天大学 一种私有链节点的集群交易处理方法
CN106980649B (zh) * 2017-02-28 2020-07-10 创新先进技术有限公司 写入区块链业务数据的方法和装置及业务子集合确定方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101634481B1 (ko) 2012-06-15 2016-07-08 인터내셔널 비지네스 머신즈 코포레이션 트랜잭션 처리
US20160085639A1 (en) 2014-09-19 2016-03-24 Mohammed ABOUZOUR Converting a serial transaction schedule to a parallel transaction schedule
US20170212781A1 (en) 2016-01-26 2017-07-27 International Business Machines Corporation Parallel execution of blockchain transactions
CN106330431A (zh) * 2016-08-29 2017-01-11 北京瑞卓喜投科技发展有限公司 基于区块链技术的数据处理方法、装置及系统
CN106406896A (zh) * 2016-09-27 2017-02-15 北京天德科技有限公司 一种并行PipeLine技术的区块链建块方法

Also Published As

Publication number Publication date
TWI660281B (zh) 2019-05-21
JP6928104B2 (ja) 2021-09-01
RU2744585C2 (ru) 2021-03-11
US10642643B2 (en) 2020-05-05
EP3561700A1 (en) 2019-10-30
MY197445A (en) 2023-06-19
US10664305B1 (en) 2020-05-26
TW201833796A (zh) 2018-09-16
AU2018228540B2 (en) 2020-09-03
CA3054813C (en) 2021-04-20
CN106980649A (zh) 2017-07-25
MX2019009728A (es) 2019-10-22
AU2019101606A4 (en) 2020-01-23
AU2018228540A1 (en) 2019-08-22
SG11201907212SA (en) 2019-09-27
RU2019124224A3 (ko) 2021-02-01
JP2020509495A (ja) 2020-03-26
US20200150999A1 (en) 2020-05-14
WO2018157778A1 (zh) 2018-09-07
RU2019124224A (ru) 2021-02-01
KR20190099087A (ko) 2019-08-23
PH12019501795A1 (en) 2020-03-09
US20190361731A1 (en) 2019-11-28
BR112019017863A2 (pt) 2020-05-12
CA3054813A1 (en) 2018-09-07
CN106980649B (zh) 2020-07-10
ZA201904916B (en) 2020-08-26
EP3561700A4 (en) 2020-01-15

Similar Documents

Publication Publication Date Title
KR102103130B1 (ko) 서비스 데이터를 블록체인에 기입하기 위한 방법 및 장치, 그리고 서비스 하위세트를 결정하기 위한 방법
CN105718455B (zh) 一种数据查询方法及装置
CN106970929B (zh) 数据导入方法及装置
US10831737B2 (en) Method and device for partitioning association table in distributed database
US11221890B2 (en) Systems and methods for dynamic partitioning in distributed environments
CN115129782A (zh) 一种分布式数据库的分区级连接方法和装置
US10162830B2 (en) Systems and methods for dynamic partitioning in distributed environments
CN107832446B (zh) 一种配置项信息的搜索方法及计算设备
US11797487B2 (en) Maintaining stable record identifiers in the presence of updated data records
CN108427736A (zh) 一种用于查询数据的方法
CN106570029B (zh) 分布式关系型数据库的数据处理方法及系统
US11048756B2 (en) Inserting datasets into database systems utilizing hierarchical value lists
Huang et al. Optimizing data partition for scaling out NoSQL cluster
CN108319604A (zh) 一种hive中大小表关联的优化方法
CN104598567A (zh) 一种基于Hadoop MapReduce编程框架的数据统计排重的方法
CN107085501B (zh) 一种数据存储、数据迁移方法及装置
US11442792B2 (en) Systems and methods for dynamic partitioning in distributed environments
CN112860694B (zh) 业务数据的处理方法、装置及设备
US20240078222A1 (en) Selective Addition of Datum to a Tree Data Structure
CN112487094B (zh) 能源区块数据的同步方法、装置、计算机设备和存储介质
CN117076470A (zh) 金融数据库的扩容方法、装置、设备、介质和程序产品
CN117435576A (zh) 数据迁移方法、装置、计算机设备、存储介质和产品
CN116055508A (zh) 区块链网络的数据同步方法及装置

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant