KR20190098765A - 데이터 처리 방법 및 디바이스 - Google Patents

데이터 처리 방법 및 디바이스 Download PDF

Info

Publication number
KR20190098765A
KR20190098765A KR1020197022496A KR20197022496A KR20190098765A KR 20190098765 A KR20190098765 A KR 20190098765A KR 1020197022496 A KR1020197022496 A KR 1020197022496A KR 20197022496 A KR20197022496 A KR 20197022496A KR 20190098765 A KR20190098765 A KR 20190098765A
Authority
KR
South Korea
Prior art keywords
data
checksum
node
leaf
leaf nodes
Prior art date
Application number
KR1020197022496A
Other languages
English (en)
Other versions
KR102284972B1 (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 KR20190098765A publication Critical patent/KR20190098765A/ko
Application granted granted Critical
Publication of KR102284972B1 publication Critical patent/KR102284972B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • 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/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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/3236Cryptographic 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 using cryptographic hash functions
    • 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/3236Cryptographic 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 using cryptographic hash functions
    • H04L9/3239Cryptographic 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 using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • 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/3297Cryptographic 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 time stamps, e.g. generation of time stamps
    • 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)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Power Engineering (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Hardware Redundancy (AREA)
  • Retry When Errors Occur (AREA)

Abstract

본 출원의 실시형태는 데이터 처리 방법 및 디바이스를 제공한다. 본 방법은, 분산된 리프 노드의 데이터의 검사합을 계산하기 위하여 서버 클러스터의 서버에 대해, 블록체인 노드에 사전 저장된 리프 노드의 데이터를 서버 클러스터의 서버에 분산시키는 단계; 및 서버 클러스터의 서버에 의해 계산된 리프 노드의 데이터의 검사합에 따라, 블록체인 노드의 데이터의 루트 검사합을 획득하는 단계를 포함한다. 본 출원의 실시형태는 데이터 검사합 계산 프로세스에 의해 소요되는 시간을 감소시키고, 계산 효율을 향상시키고, 블록의 정상적인 생성 및 블록체인의 정상 동작을 보장하는 데 사용될 수 있다.

Description

데이터 처리 방법 및 디바이스
본 출원은 컴퓨터 기술 분야에 관한 것으로, 특히 데이터 처리 방법 및 디바이스에 관한 것이다.
블록체인은, 모든 블록체인 노드가 동일한 상태(데이터베이스의 상태 포함)에서 유지될 것을 요구하는 분산 데이터 저장소, 점-대-점 송신, 합의 메커니즘, 암호화 알고리즘 등과 같은 컴퓨터 기술의 새로운 어플리케이션 사례이다. 이러한 방식으로, 블록체인 노드에서 새로운 트랜잭션이 생성될 때(즉, 새로운 데이터가 생성될 때), 새로운 데이터는 모든 블록체인 노드와 동기화되어야 하며, 모든 블록체인 노드가 데이터를 검증할 필요가 있다.
현재의 기술에서, 데이터에 대해 블록체인 노드에 의해 사용되는 검증 방법은 통상적으로 버킷 트리-기반 검사합(checksum)(예를 들어, 해시값(Hash value))을 통해 결정된다. 일 예에서, 패브릭(구현된 블록체인 어플리케이션)의 블록체인 노드의 데이터는 머클(Merkle) 트리 구조에 저장되고, 머클 트리는 하나 이상의 리프(leaf) 노드(즉, 버킷)를 포함한다. 단일 계산 디바이스(예를 들어, 단말 디바이스 또는 서버)가 통상적으로 전술한 데이터의 검사합(예를 들어, 해시값)을 획득하기 위해 블록체인 노드에 대해 사용된다. 예를 들어, 계산 디바이스는 각각의 리프 노드를 횡단하고, 리프 노드의 데이터를 문자열로 등급화 및 스플라이싱하고, 대응하는 리프 노드의 데이터의 검사합으로서 문자열의 검사합을 계산한다. 그 다음, 각 리프 노드의 데이터의 검사합에 기초하여, 계산 디바이스는 머클 트리의 루트 검사합(예를 들어, 루트 해시값), 즉 블록체인 노드의 데이터의 검사합을 계산하고, 전술한 데이터가 이 검사합에 기초하여 검증될 수 있다.
그러나, 단일 계산 디바이스가 블록체인 노드에서 데이터의 루트 검사합을 계산하는 데 사용되며, 리프 노드의 데이터를 문자열로 스플라이싱함으로써 각 계산이 완료되므로, 단일 계산 디바이스가, 하나 이상의 리프 노드의 누적 데이터량이 매우 높을 때(예를 들어, 1000만개의 데이터), 전술한 계산 프로세스를 실행하는 데 오랜 시간이 걸릴 것이고, 이는 낮은 계산 효율로 이어지고, 심지어 블록 생성을 위한 시간을 지연시키고 블록체인의 정상 동작을 방해할 수 있다.
본 출원의 실시형태의 목적은 계산 프로세스에 소요되는 시간을 감소시키고, 계산 효율을 향상시키며, 블록의 정상적인 생성 및 블록체인의 정상 동작을 보장하도록 데이터 처리 방법 및 디바이스를 제공하는 것이다.
전술한 기술적 문제를 해결하기 위해, 본 출원의 실시형태는 다음과 같이 구현된다:
본 출원의 실시형태는 데이터 처리 방법을 제공하고, 본 방법은,
분산된 리프(leaf) 노드의 데이터의 검사합(checksums)을 각각 계산하기 위하여 서버 클러스터의 서버에 대해, 블록체인 노드에 사전 저장된 리프 노드의 데이터를 서버 클러스터의 서버에 분산시키는 단계; 및
서버 클러스터의 서버에 의해 계산된 리프 노드의 데이터의 검사합에 따라, 블록체인 노드의 데이터의 루트 검사합을 획득하는 단계를 포함한다.
선택적으로, 서버 클러스터의 서버에 의해 계산된 리프 노드의 데이터의 검사합에 따라, 블록체인 노드의 데이터의 루트 검사합을 획득하는 단계는,
서버 클러스터의 서버에 의해 전송된 블록체인 노드의 데이터의 루트 검사합을 수신하는 단계를 포함한다.
선택적으로, 서버 클러스터의 서버에 의해 계산된 리프 노드의 데이터의 검사합에 따라, 블록체인 노드의 데이터의 루트 검사합을 획득하는 단계는,
리프 노드의 검사합에 따라, 리프 노드에 대응하는 머클 트리(Merkle tree)의 루트 검사합을 결정하는 단계; 및
머클 트리의 루트 검사합을 블록체인 노드의 데이터의 루트 검사합에 할당하는 단계를 포함한다.
선택적으로, 블록체인 노드에 사전 저장된 리프 노드의 데이터를 서버 클러스터의 서버에 분산시키는 단계는,
블록체인 노드에 사전 저장된 리프 노드의 수에 따라, 사전 설정된 수의 리프 노드의 데이터를 서버 클러스터의 서버에 각각 전송하는 단계를 포함한다.
선택적으로, 검사합은 해시(Hash)값이다.
본 출원의 실시형태는 데이터 처리 방법을 추가로 제공하며, 본 방법은,
블록체인 노드에 의해 분산된 리프 노드의 데이터를 수신하는 단계; 및
블록체인 노드의 데이터의 루트 검사합을 획득하기 위해 분산된 리프 노드의 데이터의 검사합을 계산하는 단계를 포함한다.
선택적으로, 블록체인 노드에 의해 분산된 리프 노드의 데이터를 수신하는 단계 후에, 본 방법은,
리프 노드의 데이터량에 따라, 리프 노드의 데이터를 사전 설정된 서브-리프 노드에 분산시키는 단계; 및
각각의 서브-리프 노드의 데이터의 검사합을 계산하는 단계를 더 포함하고,
분산된 리프 노드의 데이터의 검사합을 계산하는 단계는,
각각의 서브-리프 노드의 데이터의 검사합에 따라, 분산된 리프 노드의 데이터의 검사합을 계산하는 단계를 포함한다.
선택적으로, 리프 노드의 데이터량에 따라, 리프 노드의 데이터를 사전 설정된 서브-리프 노드에 분산시키는 단계는,
리프 노드의 데이터를 정렬(sorting)하고, 서브-리프 노드에 배치하기 위해 정렬된 데이터로부터 사전 설정된 수의 데이터 단편을 순차적으로 선택하고, 서브-리프 노드에 대해 대응하는 서브-노드 식별자를 설정하는 단계를 포함하고,
각각의 서브-리프 노드의 데이터의 검사합에 따라, 분산된 리프 노드의 데이터의 검사합을 계산하는 단계는,
서브-리프 노드의 서브-노드 식별자 및 각각의 서브-리프 노드의 검사합에 따라, 분산된 리프 노드의 데이터의 검사합을 계산하는 단계를 포함한다.
선택적으로, 블록체인 노드의 데이터의 루트 검사합을 획득하기 위해 분산된 리프 노드의 데이터의 검사합을 계산하는 단계는,
분산된 리프 노드의 데이터의 검사합을 계산하고, 리프 노드의 데이터의 검사합에 따라 블록체인 노드의 데이터의 루트 검사합을 계산하기 위하여 블록체인 노드에 대해 분산된 리프 노드의 데이터의 검사합을 블록체인 노드에 전송하는 단계; 또는
분산된 리프 노드의 데이터의 검사합을 계산하고, 분산된 리프 노드의 데이터의 검사합에 기초하여 블록체인 노드의 데이터의 루트 검사합을 획득하고, 루트 검사합을 블록체인 노드에 전송하는 단계를 포함한다.
본 출원의 실시형태는 데이터 처리 디바이스를 제공하고, 본 디바이스는,
분산된 리프 노드의 데이터의 검사합을 각각 계산하기 위하여 서버 클러스터의 서버에 대해, 블록체인 노드에 사전 저장된 리프 노드의 데이터를 서버 클러스터의 서버에 분산하도록 구성된 데이터 분산 모듈; 및 서버 클러스터의 서버에 의해 계산된 리프 노드의 데이터의 검사합에 따라, 블록체인 노드의 데이터의 루트 검사합을 획득하도록 구성된 루트 검사합 획득 모듈을 포함한다.
선택적으로, 루트 검사합 획득 모듈은 서버 클러스터의 서버에 의해 전송된 블록체인 노드의 데이터의 루트 검사합을 수신하도록 구성된다.
선택적으로, 루트 검사합 획득 모듈은, 리프 노드의 검사합에 따라, 리프 노드에 대응하는 머클 트리의 루트 검사합을 결정하고; 머클 트리의 루트 검사합을 블록체인 노드의 데이터의 루트 검사합에 할당하도록 구성된다.
선택적으로, 데이터 분산 모듈은, 블록체인 노드에 사전 저장된 리프 노드의 수에 따라, 사전 설정된 수의 리프 노드의 데이터를 서버 클러스터의 서버에 각각 전송하도록 구성된다.
선택적으로, 검사합은 해시값이다.
본 출원의 실시형태는 데이터 처리 디바이스를 추가로 제공하며, 본 디바이스는,
블록체인 노드에 의해 분산된 리프 노드의 데이터를 수신하도록 구성된 데이터 수신 모듈; 및
블록체인 노드의 데이터의 루트 검사합을 획득하기 위하여 분산된 리프 노드의 데이터의 검사합을 계산하도록 구성된 검사합 획득 모듈을 포함한다.
선택적으로, 본 디바이스는,
리프 노드의 데이터량에 따라, 리프 노드의 상기 데이터를 사전 설정된 서브-리프 노드에 분산하도록 구성된 데이터 분산 모듈;
각각의 서브-리프 노드의 데이터의 검사합을 계산하도록 구성된 계산 모듈을 더 포함하고, 검사합 획득 모듈은 각각의 서브-리프 노드의 데이터의 검사합에 따라, 분산된 리프 노드의 데이터의 상기 검사합을 계산하도록 구성된다.
선택적으로, 데이터 분산 모듈은 리프 노드의 데이터를 정렬하고, 서브-리프 노드로의 배치를 위해 정렬된 데이터로부터 사전 설정된 수의 데이터 단편을 순차적으로 선택하고, 서브-리프 노드에 대하여 대응하는 서브-노드 식별자를 설정하도록 구성되고, 검사합 획득 모듈은 서브-리프 노드의 서브-노드 식별자 및 각각의 서브-리프 노드의 검사합에 따라, 분산된 리프 노드의 데이터의 검사합을 계산하도록 구성된다.
선택적으로, 검사합 획득 모듈은 분산된 리프 노드의 데이터의 상기 검사합을 계산하고, 리프 노드의 데이터의 검사합에 따라 블록체인 노드의 데이터의 루트 검사합을 계산하기 위해 블록체인 노드에 대해 분산된 리프 노드의 데이터의 검사합을 블록체인 노드에 전송하고; 또는 분산된 리프 노드의 데이터의 검사합을 계산하고, 분산된 리프 노드의 데이터의 검사합에 기초하여 블록체인 노드의 데이터의 루트 검사합을 획득하고, 루트 검사합을 블록체인 노드에 전송하도록 구성된다.
본 출원의 실시형태에 의해 제공되는 전술한 기술적 해결책으로부터, 본 출원의 실시형태에서, 블록체인 노드에 사전 저장된 리프 노드의 데이터는 서버 클러스터의 서버에 대해 분산된 리프 노드의 데이터의 검사합을 각각 계산하기 위하여 서버 클러스터의 서버로 분산된 후; 서버 클러스터의 서버에 의해 계산된 리프 노드의 데이터의 검사합에 따라 블록체인 노드의 데이터의 루트 검사합이 추가로 획득된다. 이러한 방식으로, 리프 노드의 데이터가 서버 클러스터에 분산된 후, 분산된 리프 노드의 데이터의 검사합이 서버 클러스터의 각 서버에 의해 계산될 때, 데이터는 리프 노드의 데이터의 검사합의 병렬 계산을 위해 서버 클러스터에 분산될 수 있으며, 이에 의해 계산 프로세스에 소요되는 시간을 감소시키고, 계산 효율을 향상시키며, 정상적인 블록의 생성 및 블록체인의 정상 동작을 보장할 수 있다.
본 출원의 실시형태 또는 현재의 기술의 기술적 해결책을 보다 명확하게 설명하기 위해, 이하 실시형태 또는 현재의 기술의 설명에 사용되는 첨부 도면을 간단히 설명한다. 이하의 설명에서의 첨부 도면은 본 출원의 단지 일부 실시형태라는 것이 명백하다. 이들 첨부 도면에 기초하여, 다른 관련 도면이 창의적인 노력 없이 본 기술 분야의 통상의 기술자에 의해 얻어질 수 있다.
도 1은 본 출원에 따른 데이터 처리 방법;
도 2는 본 출원에 따른 데이터 처리 로직의 개략도;
도 3은 본 출원의 일부 실시형태에 따른 다른 데이터 처리 방법;
도 4는 본 출원의 일부 실시형태에 따른 또 다른 데이터 처리 방법;
도 5는 본 출원에 따른 데이터 처리 시스템의 개략적인 구조도;
도 6은 본 출원의 일부 실시형태에 따른 또 다른 데이터 처리 방법;
도 7은 본 출원의 일부 실시형태에 따른 또 다른 데이터 처리 방법;
도 8은 본 출원의 다른 데이터 처리 시스템의 개략적인 구조도;
도 9는 본 출원의 일부 실시형태에 따른 데이터 처리 디바이스;
도 10은 본 출원의 일부 실시형태에 따른 다른 데이터 처리 디바이스이다.
본 출원의 실시형태는 데이터 처리 방법 및 디바이스를 제공한다.
본 기술 분야의 통상의 기술자가 본 출원의 기술적 해결책을 보다 잘 이해할 수 있도록, 본 출원의 실시형태의 기술적 해결책은 본 출원의 실시형태에서 첨부 도면을 참조하여 이하 명확하고 완전하게 설명될 것이다. 설명되는 실시형태는 본 출원의 단지 일부 실시형태가며, 모든 실시형태가 아니라는 점이 명백하다. 본 출원의 실시형태에 기초하여, 창의적인 노력 없이 본 기술 분야의 통상의 기술자가 얻을 수 있는 모든 다른 실시형태는 본 출원의 범위 내에 속할 것이다.
실시형태 Ⅰ
도 1에 나타낸 바와 같이, 본 출원의 실시형태는 데이터 처리 방법을 제공한다. 본 방법을 실행하기 위한 엔티티는 블록체인 노드일 수 있다. 본 방법은 다음 단계를 포함할 수 있다:
단계 S101에서, 서버 클러스터의 서버에 대해, 블록체인 노드에 사전 저장된 리프 노드의 데이터를 서버 클러스터 서버에 분산시켜, 분산된 리프 노드의 데이터의 검사합을 각각 계산한다.
여기서, 리프 노드는 서브-노드를 갖지 않을 수 있다. 블록체인 노드는 통상적으로 하나 이상의 리프 노드(즉, 버킷)를 포함하고, 각각의 리프 노드는 (예를 들어, 트랜잭션 데이터일 수 있는) 데이터의 양을 저장한다. 리프 노드에 저장된 각 단편의 데이터의 데이터량에 대응하는 수치가 설정될 수 있다. 예를 들어, 각 단편의 데이터의 데이터량은 100 KB 내지 5 MB의 범위 내에 있고, 예를 들어, 1 MB이다. 서버 클러스터는 복수의 동일한 또는 상이한 서버에 의해 형성된 그룹일 수 있고, 하나 이상의 트랜잭션에 대해 대응하는 서비스를 제공할 수 있다. 검사합은 파일 또는 데이터를 검사하는 데 사용되는 문자열(예를 들어, 수치 또는 코드)일 수 있다. 예시적인 어플리케이션에서, 검사합은 데이터 요약 등에 기초한 검사 알고리즘을 사용하여 계산으로부터 획득된 수치일 수 있다. 데이터 요약에 기초한 검사 알고리즘은 사이클릭 리던던시(cyclic redundancy) 검사 알고리즘, 메시지 다이제스트 알고리즘, 보안 해시 알고리즘 등을 포함할 수 있다.
구현예에서, 블록체인은 분산 원장이라고도 칭하는 탈중앙화된 분산 데이터베이스일 수 있다. 블록체인 기술에 기초하여, 많은 정보 기록 메모리(예를 들어, 단말 디바이스 또는 서버)에 의해 형성된 분산 네트워크가 필요하다. 각각의 새로운 트랜잭션의 전파는 분산 네트워크를 사용할 수 있으며, 피어-투-피어(P2P) 네트워크 계층 프로토콜에 따르면, 트랜잭션과 연관된 정보는, 분산 네트워크의 모든 블록체인 노드에 저장된 데이터가 일관적인 것을 보장하기 위해 개별 블록체인 노드에 의해 네트워크를 통해 다른 모든 블록체인 노드로 직접 전송된다. 블록체인 노드가 새로운 트랜잭션을 기록할 때 기록된 새로운 트랜잭션의 데이터는 다른 블록체인 노드와 동기화될 필요가 있으며, 다른 블록체인 노드는 데이터를 검증할 필요가 있다. 예시적인 검증 프로세스는 다음과 같을 수 있다:
블록체인 노드는 하나 이상의 리프 노드를 포함하고, 블록체인 노드의 데이터는 리프 노드에 분산되며, 여기서 리프 노드의 모든 데이터는 수신 타임스탬프를 포함하고, 트랜잭션의 순서는 타임스탬프에 따라 결정될 수 있다. 검증 동안, 블록체인 노드는 우선 블록체인 노드에 사전 저장된 리프 노드를 얻을 수 있다. 어떤 리프 노드가 블록체인 노드 및 다수의 리프 노드에 저장되는지를 신속하게 결정할 수 있도록, 5 또는 A8과 같은 대응하는 노드 식별자(예를 들어, 노드 ID(아이덴티티))가 리프 노드가 생성될 때 각각의 리프 노드에 설정될 수 있다. 리프 노드가 획득될 때, 사전-기록된 노드 식별자에 의해 대응하는 리프 노드가 검색되고, 각각의 리프 노드에 저장된 데이터가 획득될 수 있다.
저장된 데이터의 양은 상이한 시간 주기 및/또는 상이한 영역과 같은 요인에 의한 영향으로 인해 다를 수 있으므로, 하나 이상의 리프 노드에 축적된 데이터의 양은 그에 따라 상대적으로 높을 수 있지만, 일부 다른 리프 노드의 데이터의 양은 상대적으로 적을 수 있다. 이러한 방식으로, 블록체인 노드의 리프 노드에 저장된 데이터의 양에 불균형이 있을 수 있다. 블록의 생성에 영향을 미치지 않고, 리프 노드에서 데이터 검사합의 계산을 위한 시간을 감소시키기 위해, 리프 노드의 데이터는 처리를 위해 서버 클러스터의 복수의 프로세서에 분산될 수 있고, 계산 부담이 서버 클러스터 전체에 퍼져 계산 효율을 향상시킬 수 있다.
블록체인 노드가 모든 리프 노드의 데이터를 획득한 후, 블록체인 노드는 리프 노드의 단위로 리프 노드의 데이터를 서버 클러스터의 서버에 분산할 수 있다. 예를 들어, 서버 클러스터의 서버 수는 리프 노드의 수와 같을 수 있으며, 블록체인 노드는 하나의 리프 노드의 데이터를 서버 클러스터의 각 서버로 전송하여, 서버 클러스터의 각 서버가 하나의 리프 노드의 데이터만을 포함하게 할 수 있다. 전술한 분산 방식 이외에도, 복수의 분산 방식이 또한 사용될 수 있다. 예를 들어, 리프 노드와 리프 노드의 데이터는 서버 클러스터의 서버로 랜덤 분산의 방식으로 전송된다. 이러한 방식으로, 상이한 서버가 같은 수 또는 다른 수의 리프 노드를 수신할 수 있다. 다른 예로서, 리프 노드의 데이터량에 따라 리프 노드의 데이터가 분산될 수 있다. 일 예에서, 블록체인 노드는 각각의 리프 노드의 데이터량을 카운트하고, 리프 노드의 데이터를 서버 클러스터의 서버에 균등하게 분산할 수 있다. 예를 들어, 50 MB, 20 MB, 30 MB, 40 MB, 10 MB 및 10MB의 데이터량을 갖는 6개의 리프 노드가 있고, 50 MB의 데이터량을 갖는 리프 노드의 데이터가 서버 클러스터의 제1 서버로 전송될 수 있고, 20 MB 및 30 MB의 데이터량을 갖는 리프 노드의 데이터가 서버 클러스터의 제2 서버로 전송될 수 있고, 40 MB, 10 MB 및 10 MB의 데이터량을 갖는 리프 노드의 데이터가 서버 클러스터의 제3 서버로 전송될 수 있다.
서버가 리프 노드의 분산 데이터를 수신한 후에, 서버는 각 리프 노드의 수신된 데이터의 검사합을 계산할 수 있다. 예를 들어, 서버는 메시지 다이제스트 알고리즘(예를 들어, MD5 알고리즘)을 사용하여 리프 노드의 수신된 데이터의 MD5 값을 계산한다. 하나의 서버가 2개의 리프 노드의 데이터, 즉 리프 노드 1의 데이터와 리프 노드 2의 데이터를 수신하면, 서버는 리프 노드 1의 데이터의 MD5 값을 계산하고, 리프 노드 2의 데이터의 MD5 값을 계산하여, 각 리프 노드의 수신된 데이터의 검사합을 획득할 수 있다.
단계 S102에서, 서버 클러스터의 서버에 의해 계산된 리프 노드의 데이터의 검사합에 따라, 블록체인 노드의 데이터의 루트 검사합을 추가로 획득한다.
구현예에서, 서버 클러스터의 서버가 리프 노드의 데이터의 검사합을 계산한 후, 각 서버는 서버에 의해 계산된 리프 노드의 데이터의 검사합을 블록체인 노드로 전송할 수 있다. 블록체인 노드가 블록체인 노드에 저장된 모든 리프 노드의 데이터의 검사합을 수신한 후에, 블록체인 노드는 모든 리프 노드의 데이터의 검사합에 기초하여 블록체인 노드의 데이터(즉, 상태)의 루트 검사합을 계산할 수 있다. 여기서, 블록체인 노드가 블록체인 노드에서 데이터의 루트 검사합을 계산할 때, 리프 노드와 루트 검사합에 대응하는 루트 노드 사이에 복수의 중간 노드가 제공될 수 있다. 도 2에 나타낸 바와 같이, A, B, C 및 D는 리프 노드이고, A1, A2, A3, ..., Ap, B1, B2, B3, ..., Bq, C1, C2, C3, ..., Cr 및 D1, D2, D3, ..., Dk는 각각 데이터를 나타낸다. 예를 들어, 검사합을 해시값으로 취하면, 리프 노드 A의 해시값은 해시(A1A2A3...Ap)이고, 리프 노드 B의 해시값은 해시(B1B2B3...Bq)이고, 리프 노드 C의 해시값은 해시(C1C2C3...Cr)이고, 리프 노드 D의 해시값은 해시(D1D2D3...Dk)이다. M 및 N은 중간 노드이므로, 리프 노드 M의 해시값은 해시(AB)이고, 리프 노드 N의 해시값은 해시(CD)이다. 그러면, 루트 노드의 루트 검사합은 해시(MN)이다. 블록체인 노드의 데이터의 획득된 루트 검사합을 새로운 트랜잭션 데이터를 전송하는 블록체인 노드에 의해 계산된 전술한 루트 검사합과 비교함으로써, 블록체인 노드는, 새로운 트랜잭션 데이터가 유효한지 여부를 검증할 수 있다. 새로운 트랜잭션 데이터가 유효하다면, 블록체인 노드는 트랜잭션과 연관된 데이터를 기록할 수 있으며; 새로운 트랜잭션 데이터가 유효하지 않다면, 블록체인 노드는 트랜잭션과 관련된 데이터의 기록을 거부할 수 있다.
전술한 루트 검사합 계산 프로세스는 또한 서버 클러스터에 의해 완료될 수 있음에 유의해야 한다. 일 예에서, 관리 서버 또는 관리 서버 클러스터가 서버 클러스터에 제공될 수 있고, 관리 서버 또는 관리 서버 클러스터는 서버 클러스터의 다른 서버를 조정 및 제어할 수 있다. 서버 클러스터의 다른 서버가 리프 노드의 데이터의 검사합을 계산한 후, 다른 서버는 리프 노드의 데이터의 검사합을 각각 관리 서버 또는 관리 서버 클러스터에 전송할 수 있다. 관리 서버 또는 관리 서버 클러스터는 전술한 계산 방법을 사용하여 블록체인 노드에서 데이터의 루트 검사합을 계산할 수 있다. 관리 서버 또는 관리 서버 클러스터는 블록체인 노드의 데이터의 획득된 루트 검사합을 블록체인 노드로 전송할 수 있으며 블록체인 노드는 루트 검사합을 수신한다. 그 후, 블록체인 노드는 루트 검사합을 통해 검증을 수행할 수 있다. 위의 관련 내용이 여기에서 상세히 설명하지 않을 상세 사항에 대해 참조될 수 있다.
이러한 방식으로, 블록체인 노드의 리프 노드의 데이터의 검사합은 서버 클러스터의 복수의 서버에 의한 병렬 계산을 통해 획득되어, 블록체인 노드의 데이터의 루트 검사합의 계산을 단일 머신에 의한 처리과 독립적으로 만들며, 이에 의해 데이터 검사합 계산 효율을 향상시킨다.
본 출원의 실시형태는 데이터 처리 방법을 제공하며, 본 방법은 서버 클러스터의 서버에 대해, 블록체인 노드에 사전 저장된 리프 노드의 데이터를 서버 클러스터의 서버에 분산시키는 단계 및 서버 클러스터의 서버에 의해 계산된 리프 노드의 데이터의 검사합에 따라 블록체인 노드의 데이터의 루트 검사합을 추가로 획득하는 단계를 포함한다. 이러한 방식으로, 리프 노드의 데이터가 서버 클러스터에 배포되고 분산된 리프 노드의 데이터의 검사합이 서버 클러스터의 각 서버에 의해 계산될 때, 데이터가 리프 노드의 데이터의 검사합의 병렬 계산을 위해 서버 클러스터로 분산될 수 있으며, 이에 의해 계산 프로세스에 의해 소요되는 시간을 감소시킬 수 있고, 계산 효율을 향상시킬 수 있으며, 블록의 정상 생성 및 블록체인의 정상 동작을 보장할 수 있다.
도 3에 나타낸 바와 같이, 본 출원의 실시형태는 데이터 처리 방법을 제공한다. 본 방법을 실행하기 위한 엔티티는 서버 클러스터일 수 있고, 서버 클러스터는 복수의 서버를 포함할 수 있으며, 각 서버는 데이터 검사합을 계산할 수 있다. 본 방법은 다음 단계를 포함할 수 있다:
단계 S301에서, 블록체인 노드에 의해 분산된 리프 노드의 데이터를 수신한다.
구현예에서, 블록체인 노드의 데이터가 검증될 필요가 있을 때, 블록체인 노드는 블록체인 노드에 저장된 리프 노드의 데이터를 획득할 수 있고, 리프 노드의 단위로 리프 노드의 데이터를 서버 클러스터의 서버로 분산할 수 있다. 전술한 단계 S101에서의 관련 내용은 여기에서 상세히 설명되지 않을 상세한 분산 방식 및 분산 프로세스에 대해 참조될 수 있다. 서버 클러스터의 서버는 블록체인 노드에 의해 분산된 리프 노드의 데이터를 각각 수신할 수 있으며, 전술한 단계 S101에서의 관련 내용이 여기서 상세히 설명되지 않을 상세 사항에 대해 참조될 수 있다.
단계 S302에서, 블록체인 노드의 데이터의 루트 검사합을 얻기 위해 분산된 리프 노드의 데이터의 검사합을 계산한다.
구현예에서, 서버 클러스터의 서버는 수신된 리프 노드 각각의 데이터의 검사합을 계산할 수 있다. 계산이 완료된 후, 서버 클러스터의 서버는 리프 노드의 데이터의 획득된 검사합을 각각 블록체인 노드에 전송할 수 있다. 블록체인 노드는 서버에 의해 반환된 리프 노드의 데이터의 검사합에 기초하여 블록체인 노드의 데이터의 루트 검사합을 추가로 계산할 수 있으며, 전술한 단계 S102에서의 관련 내용이 여기서 상세히 설명되지 않을 상세 사항에 대해 참조될 수 있다.
본 출원의 일부 다른 실시형태에서, 블록체인 노드의 데이터의 루트 검사합은 또한 서버 클러스터에 의해 계산될 수 있다. 전술한 바와 같이, 관리 서버 또는 관리 서버 클러스터는 각 리프 노드의 데이터의 계산된 검사합에 대한 계산을 집계 수행하여 블록체인 노드의 데이터의 루트 검사합을 획득하도록 서버 클러스터에 제공될 수 있다. 전술한 단계 S102에서의 관련 내용이 여기서 상세히 설명되지 않을 상세 사항에 대해 참조될 수 있다.
본 출원의 실시형태는 데이터 처리 방법을 제공하며, 본 방법은 서버 클러스터의 서버에 대해, 블록체인 노드에 사전 저장된 리프 노드의 데이터를 서버 클러스터의 서버에 대해 각각 분산하여 분산된 리프 노드의 데이터의 검사합을 계산하는 단계; 및 서버 클러스터의 서버에 의해 계산된 리프 노드의 데이터의 검사합에 따라 블록체인 노드의 데이터의 루트 검사합을 추가로 획득하는 단계를 포함한다. 이러한 방식으로, 리프 노드의 데이터가 서버 클러스터에 분산된 후, 분산된 리프 노드의 데이터의 검사합이 서버 클러스터의 각 서버에 의해 계산될 때, 데이터는 리프 노드의 데이터의 검사합의 병렬 계산을 위해 서버 클러스터로 분산될 수 있으며, 이에 의해 계산 프로세스에 의해 소요되는 시간을 감소시키고, 계산 효율을 향상시키고, 블록의 정상 생성 및 블록체인의 정상 동작을 보장할 수 있다.
실시형태 Ⅱ
도 4에 나타낸 바와 같이, 본 출원의 실시형태는 데이터 처리 방법을 제공한다. 데이터 처리 방법은 블록체인 노드와 서버 클러스터에 의해 공동으로 실행될 수 있다. 본 출원의 실시형태는 해시값인 검사합을 예로 들어 상세히 설명될 것이다. 다른 형태의 검사합이 본 출원의 실시형태에서 관련된 내용을 참조하여 실행될 수 있으며, 여기서 상세히 설명되지는 않을 것이다. 본 방법은 다음 단계를 포함할 수 있다:
단계 S401에서, 사전 저장된 리프 노드의 수에 따라, 블록체인 노드는 사전 설정된 수의 리프 노드의 데이터를 서버 클러스터의 서버에 각각 전송한다.
여기서, 본 출원의 실시형태에서 상세히 설명되지 않을 사전 설정된 수는 5, 10 등과 같이 실제 상황에 따라 설정될 수 있다.
구현예에서, 트랜잭션 데이터가 검증될 때, 검증 효율성을 향상시키고 자원 소비를 감소시키기 위해, 머클 트리의 설계 메커니즘이 종종 블록체인 노드의 데이터에 대해 채용된다. 본 출원의 실시형태에서 블록체인 데이터의 기존 설계 메커니즘을 변경하지 않고 블록체인 노드의 데이터의 검사합에 대한 계산 효율을 최대한으로 향상시키기 위해, 본 출원의 실시형태에서 블록체인 노드의 데이터는 여전히 머클 트리의 설계 메커니즘을 사용할 수 있다. 머클 트리는 복수의 리프 노드(즉, 버킷)를 포함할 수 있고, 머클 트리의 모든 리프 노드의 노드 식별자는 블록체인 노드에 기록될 수 있다. 트랜잭션 데이터가 검증될 필요가 있을 때, 머클 트리의 모든 리프 노드의 노드 식별자가 획득될 수 있다.
도 5에 나타낸 바와 같이, 블록체인 노드는 모든 리프 노드의 노드 식별자에 기초하여 모든 리프 노드의 데이터를 각각 획득할 수 있고, 또한 블록체인 노드에 저장된 리프 노드의 수 및 서버 클러스터의 서버의 수를 획득할 수 있다. 서버의 수 및 리프 노드의 수에 따라, 블록체인 노드는 각 서버에 분산될 리프 노드의 수를 결정할 수 있다. 예를 들어, 총 10개의 리프 노드가 있으며, 서버 클러스터는 총 10개의 서버를 갖는다. 그 후, 하나의 리프 노드의 데이터가 각 서버로 전송될 수 있거나, 2개 또는 5개의 리프 노드의 그룹의 데이터가 서버 클러스터의 하나의 서버로 각각 전송될 수 있다.
블록체인 노드가 리프 노드의 데이터를 서버 클러스터에 분산시키는 프로세스에서, 블록체인 노드는 리프 노드의 노드 식별자를 서버 클러스터의 서버에 또한 분산할 수 있다. 분산된 노드 식별자에 따라, 서버는 노드 식별자를 포함하는 데이터 획득 명령을 블록체인 노드에 전송할 수 있다. 블록체인 노드가 데이터 획득 명령을 수신하면, 블록체인 노드는 데이터 획득 명령에서 노드 식별자를 추출하고, 노드 식별자를 통해 대응하는 리프 노드의 데이터를 검색하여, 데이터를 대응하는 서버에 전송할 수 있다. 이러한 방식으로, 서버 클러스터는 대응하는 리프 노드의 데이터를 대응하는 리프 노드의 데이터로부터 각각 끌어낼 수 있다.
예시적인 어플리케이션에서, 리프 노드의 데이터량에 따라 리프 노드의 데이터가 또한 서버 클러스터의 서버에 분산될 수 있거나, 리프 노드의 데이터가 또한 랜덤 방식으로 서버 클러스터의 서버에 분산될 수 있음에 유의해야 한다. 실시형태 Ⅰ에서의 단계(S101)에서의 관련 내용이 여기서 상세히 설명되지 않을 상세 사항에 대해 참조될 수 있다.
단계 S402에서, 서버 클러스터는 분산된 리프 노드의 데이터의 검사합을 계산한다.
단계 S403에서, 서버 클러스터는 분산된 리프 노드의 데이터의 검사합을 블록체인 노드에 전송한다.
실시형태 Ⅰ에서의 관련 내용이 여기서 상세히 설명되지 않을 전술한 단계 S402 및 단계 S403의 상세한 프로세스에 대해 참조될 수 있다.
단계 S404에서, 블록체인 노드는 리프 노드의 전술한 검사합에 따라, 리프 노드에 대응하는 머클 트리의 루트 검사합을 결정한다.
구현예에서, 블록체인 노드가 서버 클러스터의 서버에 의해 전송된 리프 노드의 검사합을 수신한 후, 블록체인 노드는 리프 노드를 통해 대응하는 머클 트리를 구축할 수 있다. 머클 트리 상의 리프 노드의 해시값이 결정되었고 머클 트리의 루트 노드의 해시값(즉, 머클 트리의 루트 검사합)만이 아직 획득되지 않았으므로, 리프 노드에 대응하는 머클 트리의 해시값은 리프 노드의 해시값으로부터 상향으로 계산될 수 있고, 이에 의해 리프 노드에 대응하는 머클 트리의 루트 검사합을 획득할 수 있다.
단계 S405에서, 블록체인 노드는 머클 트리의 루트 검사합을 블록체인 노드의 데이터의 루트 검사합에 할당한다.
예시적인 어플리케이션에서, 루트 검사합은 또한 서버 클러스터에 의해 계산될 수 있으며, 처리은, 분산된 리프 노드의 데이터의 검사합을 계산하는 단계; 분산된 리프 노드의 데이터의 검사합에 기초하여, 블록체인 노드의 데이터의 루트 검사합을 획득하는 단계, 및 루트 검사합을 블록체인 노드에 전송하는 단계를 포함할 수 있다. 실시형태 Ⅰ에서의 관련 내용이 여기서 상세히 설명되지 않을 상세한 프로세스에 대해 참조될 수 있다.
본 출원의 실시형태는 데이터 프로세스 방법을 제공하며, 본 방법은, 서버 클러스터의 서버에 대해 블록체인 노드에 사전 저장된 리프 노드의 데이터를 서버 클러스터의 서버에 각각 분산하여 분산된 리프 노드의 데이터의 검사합을 계산하는 단계; 및 서버 클러스터의 서버에 의해 계산된 리프 노드의 데이터의 검사합에 따라, 블록체인 노드의 데이터의 루트 검사합을 추가로 획득하는 단계를 포함한다. 이러한 방식으로, 리프 노드의 데이터가 서버 클러스터에 분산된 후, 분산된 리프 노드의 데이터의 검사합이 서버 클러스터의 각 서버에 의해 계산될 때, 데이터가 리프 노드의 데이터의 검사합의 병렬 계산을 위해 서버 클러스터에 분산될 수 있고, 이에 의해 계산 프로세스에 의해 소요되는 시간을 감소시키고, 계산 효율을 향상시키고, 블록의 정상적인 생성 및 블록체인의 정상 동작을 보장할 수 있다.
실시형태 Ⅲ
도 6에 나타낸 바와 같이, 본 출원의 실시형태는 데이터 처리 방법을 제공한다. 데이터 처리 방법은 블록체인 노드와 서버 클러스터에 의해 공동으로 실행될 수 있다. 본 출원의 실시형태는 검사합이 해시값인 예를 들어 상세히 설명될 것이다. 다른 형태의 검사합이 여기서 상세히 설명되지 않을 본 출원의 실시형태에서의 내용을 참조하여 실행될 수 있다. 본 방법은 다음의 단계를 포함할 수 있다.
단계 S601에서, 블록체인 노드는 사전 저장된 리프 노드의 데이터를 서버 클러스터의 서버에 분산시킨다.
실시형태 Ⅰ 및 실시형태 Ⅱ에서의 관련 내용은 여기서 상세히 설명되지 않을 단계 S601의 상세한 프로세스에 대해 참조될 수 있다.
단계 S602에서, 서버 클러스터는 리프 노드의 데이터량에 따라, 리프 노드의 데이터를 사전 설정된 서브-리프 노드로 분산시킨다.
여기서, 서브-리프 노드와 리프 노드 사이에는 소속 관계, 종속 관계, 부모 관계 또는 자식 관계와 같은 연관 관계가 없다. 서브-리프 노드는 하나 이상의 데이터 단편을 포함하는 데이터 패킷일 수 있으며, 리프 노드(버킷)는 데이터를 저장하기 위한 머클 트리의 컨테이너일 수 있다. 서브-리프 노드의 수는 리프 노드의 수보다 클 수 있다. 예를 들어, 리프 노드의 수가 5라면, 서브-리프 노드의 수는 20일 수 있다.
구현예에서, 블록체인 노드에 사전 저장된 리프 노드 중 하나 이상의 리프 노드는 높은 데이터량(예를 들어, 백만 개의 데이터 단편 등을 포함함)을 가질 수 있다. 이러한 방식으로, 리프 노드의 데이터가 리프 노드의 해시값을 계산하기 위해 서버 클러스터의 서버에 분산될 때, 서버는 스플라이싱된 문자열을 획득하기 위해 리프 노드의 많은 양의 데이터를 스플라이싱할 필요가 있으며, 그 후 스플라이싱된 문자열의 해시값을 계산한다. 이 프로세스는 여전히 많은 시간이 소요되며, 서버에 의한 자원 소비가 여전히 높다. 이러한 관점에서, 복수의 서브-리프 노드가 사전 설정될 수 있거나, 예를 들어, 1 GB 또는 500 MB의 실제 요구에 따라 각각의 서브-리프 노드가 수용할 수 있는 최대 데이터량이 각각의 서브-리프 노드에 대해 설정될 수 있다. 리프 노드의 데이터는 랜덤 분산 또는 균일 분산의 방식으로 사전 설정된 복수의 서브-리프 노드에 분산될 수 있다.
단계 S602를 구현하는 다양한 방식이 있을 수 있다. 임의 선택적인 처리 방법이 이하에 제공될 수 있으며, 본 방법은, 리프 노드의 데이터를 정렬(sorting)하는 단계; 서브-리프 노드로의 배치를 위해 정렬된 데이터로부터 사전 설정된 수의 데이터의 단편을 각각 순차적으로 선택하는 단계, 및 서브-리프 노드에 대해 대응하는 서브-노드 식별자를 설정하는 단계를 포함할 수 있다.
서버 클러스터의 각 서버의 데이터 처리 속도 및 검사합 계산 속도에 따라, 그리고 서버 클러스터의 서버의 수에 따라, 서버 클러스터는 높은 전체 데이터 처리 효율(예를 들어, 설정된 효율 임계값보다 더 높음)을 보장하면서 각 서버가 처리할 수 있는 데이터의 양을 결정할 수 있으며, 그 후 각각의 서브-리프 노드가 수용할 수 있는 데이터의 양 또는 데이터의 단편의 수를 결정할 수 있다. 서버 클러스터는 각 서버에 분산된 리프 노드의 총 데이터량을 계산할 수 있다. 그 후, 서버 클러스터는 데이터가 블록체인 노드에 저장되는 시간을 나타내는 타임스탬프에 따라 분산된 리프 노드의 데이터를 정렬하고, 정렬된 복수의 데이터의 단편으로부터 사전 설정된 수의 데이터의 단편을 각각의 서브-리프 노드에 순차적으로 분산하고, 모든 서브-리프 노드의 데이터에서 서브-리프 노드의 데이터의 위치를 나타내기 위해 데이터의 순서에 따라 서브-리프 노드에 대한 대응하는 서브-노드 식별자를 각각 설정할 수 있다.
예를 들어, 서버 클러스터에서 서버의 의해 분산되는 서브-리프 노드는 50개의 단편의 데이터로 저장되며 각각의 데이터 단편은 5 MB 이고 데이터량은 250 MB이다. 각각의 서브-리프 노드에 의해 수용될 수 있는 데이터의 양이 25 MB이면, 250/25 = 10이고, 따라서, 10개의 서브-리프 노드가 획득될 수 있다. 그 후, 서브-리프 노드는 데이터의 순서에 따라 서브-노드 식별자로서 1-10으로 번호가 매겨진다. 전술한 처리 후에, 50개 단편의 데이터의 저장 위치는 다음과 같다: 번호 1-5인 데이터 단편이 순서대로 번호가 1인 서브-리프 노드에 저장되고, 번호가 6-10인 데이터 단편이 순서대로 번호가 2인 서브-리프 노드에 저장되고, 번호가 11-15인 데이터 단편이 순서대로 번호가 3인 서브-리프 노드에 저장되는 것 등에 의해 각각의 데이터 단편의 저장 위치를 획득한다. 각 데이터 조각은 5 MB이므로, 각 서브-리프 노드는 5개의 데이터 단편을 포함할 수 있다.
단계 S603에서, 서버 클러스터는 각 서브-리프 노드의 데이터의 검사합을 계산한다.
구현예에서, 서버 클러스터의 서버가 대응하는 서브-리프 노드를 획득한 후에, 서버는 서브-리프 노드에 저장된 데이터를 획득할 수 있고 그 후 사전 설정된 검사 알고리즘을 사용하여 각 서브-리프 노드의 검사합을 계산할 수 있다. 예를 들어, 서브-리프 노드에 저장된 데이터가 정렬될 수 있으며, 그 후, SHA256(보안 해시 알고리즘(Secure Hash Algorithm) 256)이 정렬된 데이터에 대해 사용되어 SHA256 값(즉, 해시값)을 서브-리프 노드의 검사합으로서 계산할 수 있다.
단계 S604에서, 서버 클러스터는 각 서브-리프 노드의 데이터의 검사합에 따라 분산된 리프 노드의 데이터의 검사합을 계산한다.
구현예에서, 서버 클러스터가 각각의 서브-리프 노드의 검사합을 획득한 후에, 서브-리프 노드의 검사합은 서브-노드 식별자의 순서에 따라 정렬될 수 있다. 그 후, 서버 클러스터는 사전 설정된 검사 알고리즘을 사용하여 서브-리프 노드의 검사합에 기초하여 계산을 집계 수행하여 대응하는 리프 노드의 검사합을 획득함으로써, 블록체인 노드에 의해 분산된 리프 노드의 데이터의 검사합을 획득할 수 있다.
예를 들어, 단계 S602의 예에 기초하여, 단계 S603의 처리를 통해 10개의 서브-리프 노드의 데이터의 각각의 해시값이 획득될 수 있다. 하나의 리프 노드의 데이터로부터 10개의 서브-리프 노드의 데이터가 분산되기 때문에, 도 2에 나타낸 집계-수행된 계산이 10개의 서브-리프 노드의 획득된 해시값에 대해 수행되어 대응하는 리프 노드의 해시값을 획득할 수 있다.
또한, 서브-리프 노드의 데이터는 서브-리프 노드의 설정된 서브-노드 식별자를 통해 풀링(pulling) 방식으로 획득될 수 있음에 유의해야 한다. 이에 대응하여, 단계 S604의 처리은, 서브-리프 노드의 서브-노드 식별자 및 각각의 서브-리프 노드의 검사합에 따라 분산된 리프 노드의 데이터의 검사합을 계산하는 것일 수 있다. 전술한 관련 내용은 여기서 상세히 설명되지 않을 상세한 처리에 대해 참조될 수 있다.
단계 S605에서, 서버 클러스터는 분산된 리프 노드의 데이터의 검사합을 블록체인 노드에 전송한다.
단계 S606에서, 블록체인 노드는 리프 노드의 검사합에 따라 리프 노드에 대응하는 머클 트리의 루트 검사합을 결정한다.
구현예에서, 블록체인 노드의 데이터의 루트 검사합은 리프 노드의 검사합에 기초하여 사전 설정된 검사 알고리즘을 사용하여 계산될 수 있다. 예를 들어, 블록체인 노드의 모든 리프 노드에서 기록된 노드 식별자에 대응하는 리프 노드의 위치에 따라, 리프 노드에 의해 형성된 노드 분산 트리(즉, 머클 트리)가 A-B-C-F, A-B-E, 및 A-D와 같이 획득될 수 있다. 리프 노드의 검사합(즉, B+C+D+E+F의 검사합)이 획득되면, 머클 트리의 루트 검사합이 리프 노드의 검사합에 따라 계산되어, 블록체인 노드의 데이터의 루트 검사합을 획득할 수 있다.
단계 S607에서, 블록체인 노드는 머클 트리의 루트 검사합을 블록체인 노드의 데이터의 루트 검사합에 할당한다.
실시형태 Ⅰ 및 실시형태 Ⅱ의 관련 내용은 여기서 상세히 설명되지 않을 단계 S605 및 단계 S607의 상세한 프로세스에 대해 참조될 수 있다.
본 출원의 실시형태는 데이터 처리 방법을 제공하며, 본 방법은, 리프 노드의 노드 식별자를 서버 클러스터에 분산시키는 단계, 서버 클러스터로 하여금 타겟 블록체인의 리프 노드에 저장된 데이터의 획득된 양에 따라 각각의 사전 설정된 수의 데이터 단편을 서브-리프 노드에 분산하게 한 후, 각각의 서브-리프 노드의 검사합을 계산하는 단계, 대응하는 리프 노드의 검사합을 결정하는 단계, 및 최종적으로 블록체인 노드의 데이터의 검사합을 계산하기 위해 리프 노드의 검사합을 블록체인 노드에 제공하는 단계를 포함한다. 이러한 방식으로, 리프 노드에 저장된 데이터가 서버 클러스터에 의해 재-분산되어 서브-리프 노드를 획득하고, 그 후 서브-리프 노드의 검사합이 계산되어 데이터가 검사합의 병렬 계산을 위해 계산 서버 클러스터에 균등하게 분산되게 하며, 이에 의해 계산 프로세스에 소요되는 시간을 감소시키고 계산 효율을 향상시키며 블록의 정상적인 생성 및 블록체인의 정상 동작을 보장한다.
실시형태 IV
도 7에 나타낸 바와 같이, 본 출원의 실시형태는 데이터 처리 방법을 제공한다. 데이터 처리 방법은 블록체인 노드와 서버 클러스터에 의해 공동으로 실행될 수 있다. 여기서, 서버 클러스터는 도 8에 나타낸 바와 같이 제1 서버 클러스터 및 제2 서버 클러스터를 더 포함할 수 있다. 도 8은 데이터 처리 시스템을 제공한다. 데이터 처리 시스템은 2개의 레벨의 서버 클러스터, 즉, 제1 서버 클러스터 및 제2 서버 클러스터를 포함할 수 있으며, 여기서 제1 서버 클러스터는 블록체인 노드 아래의 레벨에 있고, 제2 서버 클러스터는 제1 서버 클러스터 아래의 레벨에 있다. 전술한 계층적 구조는 데이터 재조합, 데이터 분산 등과 같은 목표를 달성하여 데이터 처리 속도를 가속화할 수 있다. 본 출원의 실시형태는 검사합이 해시값인 예를 들어 상세히 설명될 것이다. 다른 형태의 검사합이 여기서 상세히 설명되지 않을 본 출원의 실시형태에서의 관련 내용을 참조하여 실행될 수 있다. 본 방법은 다음의 단계를 포함할 수 있다.
단계 S701에서, 블록체인 노드는 사전 저장된 리프 노드의 노드 식별자를 획득한다.
구현예에서, 블록체인 노드에 데이터가 저장될 때마다 리프 노드가 블록체인 노드에 대응하여 생성되고 리프 노드의 노드 식별자가 또한 생성된다. 이러한 방식으로, 블록체인은 복수의 리프 노드를 포함할 수 있고, 각각의 리프 노드는 데이터량을 저장한다. 노드 식별자가 생성될 때마다, 노드 식별자가 저장될 수 있고, 블록체인 노드의 모든 리프 노드에서 노드 식별자에 대응하는 리프 노드의 위치가 기록될 수 있다. 예를 들어, 생성된 노드 식별자는 F이고, 노드 식별자에 대응하는 리프 노드의 위치는 A-B-C-F일 수 있다.
단계 S702에서, 블록체인 노드는 노드 식별자를 서버 클러스터의 서버에 전송한다.
구현예에서, 도 8에 나타낸 시스템 구조에 기초하여, 블록체인 노드는 블록체인 노드에 포함된 리프 노드에 저장된 데이터를 획득할 수 있으며, 사전-개발된 분산 규칙에 따라 또는 랜덤 방식으로 리프 노드의 노드 식별자를 하나의 그룹 또는 다중 그룹으로 분할할 수 있다. 노드 식별자의 각 그룹은 제1 서버 클러스터의 하나의 서버로 전송될 수 있다.
단계 S703에서, 제1 서버 클러스터는 분산된 노드 식별자에 따라, 블록체인 노드로부터의 노드 식별자에 대응하는 리프 노드의 데이터를 획득한다.
구현예에서, 제1 서버 클러스터의 서버는 노드 식별자를 포함하는 데이터 획득 명령을 블록체인 디바이스에 전송한 후, 블록체인 노드로부터 노드 식별자에 대응하는 리프 노드의 데이터를 페칭(fetching)할 수 있다.
단계 S704에서, 제1 서버 클러스터는 획득된 리프 노드의 데이터량에 따라 하나 이상의 서브-리프 노드를 생성한다.
여기서, 전술한 바와 같이, 본 출원의 실시형태에서는 소속 관계, 종속 관계, 부모 관계, 또는 자식 관계와 같은 서브-리프 노드와 리프 노드 간의 연관 관계는 없다. 서브-리프 노드는 하나 이상의 데이터 단편을 포함하는 데이터 패킷일 수 있으며, 리프 노드(버킷)는 데이터를 저장하기 위한 머클 트리의 컨테이너일 수 있다.
구현예에서, 서브-리프 노드가 수용할 수 있는 데이터의 양 또는 데이터의 단편의 수는 사전 설정될 수 있으며, 예를 들어, 100 MB 또는 10개의 단편일 수 있다. 제1 서버 클러스터의 각 서버에 분산된 리프 노드의 데이터의 총량이 계산될 수 있고, 하나 이상의 서브-리프 노드가, 각 서브-리프 노드가 수용할 수 있는 데이터의 양 또는 데이터의 단편의 수에 따라 생성될 수 있다.
단계 S705에서, 제1 서버 클러스터는 리프 노드의 데이터를 정렬하고, 대응하는 서브-리프 노드로의 배치를 위해 정렬된 데이터로부터 사전 설정된 수의 데이터의 단편을 각각 순차적으로 선택하고, 서브-리프 노드에 대해 대응하는 서브-노드 식별자를 설정한다.
구현예에서, 하나의 데이터 단편 및 복수의 데이터 단편에 대해 해시값을 계산하기 위해 제1 서버 클러스터의 임의의 서버에 의해 소요되는 시간 길이는 반복된 시험 방식으로 사전-시험될 수 있으며, 이로부터 비교적 짧은 시간 길이 및 서버에 대한 비교적 낮은 처리 부담에 대응하는 수의 데이터 단편이 선택될 수 있다. 이러한 단편의 수는 사전 설정된 수, 예를 들어, 30개 또는 50개의 단편으로 설정될 수 있다. 각 데이터 단편에는 저장 또는 블록체인 트랜잭션의 프로세스에서 타임스탬프가 제공되므로 각 데이터 단편의 저장 또는 트랜잭션 시간은 타임스탬프를 통해 결정될 수 있다. 이러한 방식으로, 각 데이터 단편의 타임스탬프가 획득될 수 있고, 복수의 데이터 단편이 타임스탬프의 순서에 따라 정렬될 수 있다. 정렬된 복수의 데이터 단편으로부터 사전 설정된 수의 데이터 단편이 순차적으로 선택되어 대응하는 서브-리프 노드로 각각 분산될 수 있다. 상이한 서브-리프 노드에서 분산된 데이터의 순서를 라벨링하기 위해, 서브-노드 식별자가 분산된 데이터에 기초하여 대응하는 서브-리프 노드에 대해 설정될 수 있다.
예를 들면, 사전 설정된 수의 단편은 3개의 단편이며, 리프 노드의 데이터는 A, B, C, D, E, F, G, H 및 K를 포함할 수 있다. 데이터가 타임스탬프에 따라 정렬된 후, 전술한 데이터의 순서는 H-G-F-E-D-C-B-A-K일 수 있다. 그 후, 3개의 데이터 단편 H-G-F가 하나의 서브-리프 노드로 분산될 수 있고, 3개의 데이터 단편 E-D-C가 하나의 서브-리프 노드로 분산될 수 있고, 3개의 데이터 단편 B-A-K가 하나의 서브-리프 노드로 분산될 수 있다. 3개의 서브-리프 노드에 저장된 데이터의 순서를 라벨링하기 위해, H-G-F가 위치된 서브-리프 노드의 서브-노드 식별자는 서브-노드 1로 설정될 수 있고, E-D-C가 위치된 서브-리프 노드의 서브-노드 식별자는 서브-노드 2로 설정될 수 있고, B-A-K가 위치된 서브-리프 노드의 서브-노드 식별자는 서브-노드 3으로 설정될 수 있다.
단계 S706에서, 제1 서버 클러스터는 제2 서버 클러스터의 서버에 서브-리프 노드의 데이터를 분산시킨다.
구현예에서, 제2 서버 클러스터의 각각의 서버의 현재의 잔여 대역폭 및/또는 데이터 송신 속도와 같은 인덱스 데이터가 각각 획득될 수 있다. 획득된 인덱스 데이터에 기초하여 제1 서버 클러스터의 각 서버의 계산 능력이 평가될 수 있고, 계산 능력의 크기에 따라 대응하는 서브-리프 노드의 데이터가 제2 서버 클러스터의 서버로 전송될 수 있다.
또한, 계산 효율을 가능한 한 향상시키기 위해, 제2 서버 클러스터의 서버에 분산된 서브-리프 노드의 수가 조정될 수 있다. 일 예에서, 제2 서버 클러스터의 각 서버의 현재의 잔여 대역폭 및/또는 데이터 송신 속도와 같은 인덱스 데이터가 각각 획득될 수 있다. 각 서버의 계산 능력은 획득된 인덱스 데이터에 기초하여 평가될 수 있고, 대응하는 서브-리프 노드는 계산 능력의 크기에 따라 제2 서버 클러스터의 서버에 분산될 수 있다. 예를 들어, 제2 서버 클러스터는 5개의 서버를 포함하고, 2개의 서브-리프 노드가 각 서버에 분산될 수 있다. 계산을 통해 제2 서버 클러스터의 서버가 가장 강력한 계산 능력을 갖는 것으로 결정되면, 전술한 10개의 서브-리프 노드 중 3개의 데이터가 이 서버로 전송될 수 있다. 계산을 통해 제2 서버 클러스터의 서버가 가장 약한 계산 능력을 갖는 것으로 결정되면, 전술한 10개의 서브-리프 노드 중 1개의 데이터가 이 서버로 전송될 수 있다. 전술한 방식으로, 생성된 하나 이상의 서브-리프 노드는 밸런싱된 방식으로 제2 서버 클러스터의 서버에 제공될 수 있다.
단계 S707에서, 제2 서버 클러스터는 각 서브-리프 노드의 해시값을 계산하고 제1 서버 클러스터의 대응하는 서버에 해시값을 피드백한다.
구현예에서, 제2 서버 클러스터의 서버가 대응하는 서브-리프 노드를 수신한 후에, 서버는 각각의 서브-리프 노드에서 데이터를 추출하고 데이터의 타임스탬프의 순서에 따라 데이터를 정렬할 수 있다. 서버는 정렬된 데이터에 의해 형성된 문자열을 획득하고, 이 문자열의 해시값, 즉, 서브-리프 노드의 해시값을 계산하기 위해 사전 설정된 해시 알고리즘을 사용할 수 있다. 전술한 방법으로, 제2 서버 클러스터는 대응하는 서버를 통해 제1 서버 클러스터의 대응하는 서버로 전송될 수 있는 각 서브-리프 노드의 해시값을 획득할 수 있다.
단계 S708에서, 제1 서버 클러스터는 각 서브-리프 노드의 해시값과 제2 서버 클러스터에 의해 전송된 서브-리프 노드의 서브-노드 식별자에 따라 분산된 리프 노드의 해시값을 결정한다.
구현예에서, 제1 서버 클러스터의 서버가 제2 서버 클러스터에 의해 반환된 서브-리프 노드의 검사합을 수신한 후에, 서버는 각각의 서브-리프 노드의 서브-노드 식별자를 각각 획득할 수 있다. 그 후, 서버는 각 서브-리프 노드의 서브-노드 식별자에 따라 서브-리프 노드를 정렬하고, 정렬된 서브-리프 노드의 해시값을 수집하여 서브-리프 노드의 해시값을 획득할 수 있다. 예를 들어, 서브-리프 노드의 해시값의 순서는 서브-리프 노드의 순서에 따라 결정될 수 있으며, 정렬된 해시값은 문자열을 형성할 수 있다. 문자열의 해시값은 사전 설정된 해시 알고리즘을 사용하여 계산될 수 있으며, 해시값은 대응하는 리프 노드의 해시값이다. 또한, 다른 해시값 계산 방식 리프 노드의 해시값을 결정하는 데 사용될 수 있다. 예를 들어, 하나 이상의 서브-리프 노드의 해시값의 평균은 리프 노드의 해시값으로 계산될 수 있고; 대안적으로, 리프 노드의 해시값은 각 서브-리프 노드의 가중치 및 각 서브-리프 노드의 해시값에 기초하여 획득될 수 있다.
단계 S709에서, 제1 서버 클러스터는 분산된 리프 노드의 해시값을 블록체인 노드에 전송한다.
단계 S710에서, 블록체인 노드는 리프 노드의 검사합에 따라, 리프 노드에 대응하는 머클 트리의 루트 검사합을 결정하고, 블록체인 노드의 데이터의 루트 검사합에 머클 트리의 루트 검사합을 할당한다.
본 출원의 실시형태는 데이터 처리 방법을 제공하며, 본 방법은, 블록체인 노드의 리프 노드의 데이터량에 따라, 사전 설정된 수의 데이터 단편으로 분산된 하나 이상의 서브-리프 노드를 생성한 후, 각 서브-리프 노드의 검사합을 계산하기 위해 서브-리프 노드를 제2 서버 클러스터에 분산시키는 단계, 각 서브-리프 노드의 검사합에 따라 대응하는 리프 노드의 검사합을 결정하는 단계, 및 최종적으로 블록체인 노드의 데이터의 루트 검사합을 계산하기 위해 리프 노드의 검사합을 블록체인 노드에 제공하는 단계를 포함한다. 이러한 방식으로, 리프 노드에 저장된 데이터가 제1 서버 클러스터에 의해 재분산되어 서브-리프 노드를 획득하고, 그 후 서브-리프 노드는 검사합 계산을 위해 제2 서버 클러스터로 분산되어 검사합의 병렬 계산을 위해 데이터가 제2 서버 클러스터로 균등하게 분산되게 하며, 이에 의해 계산 프로세스에 의해 소요되는 시간을 감소시키고, 계산 효율을 향상시키며, 블록의 정상적인 생성 및 블록체인의 정상 동작을 보장한다.
실시형태 Ⅴ
본 출원의 실시형태에 의해 제공되는 데이터 처리 방법이 상술되었다. 동일한 개념에 기초하여, 본 출원의 실시형태는 도 9에 나타낸 바와 같이, 데이터 처리 디바이스를 추가로 제공한다.
데이터 처리 디바이스는 전술한 실시형태에서 제공되는 블록체인 노드일 수 있으며, 일 예에서, 단말 디바이스(예를 들어, 퍼스널 컴퓨터 등) 또는 서버일 수 있다. 디바이스는 데이터 분산 모듈(901) 및 루트 검사합 획득 모듈(902)을 포함할 수 있으며,
데이터 분산 모듈(901)은 서버 클러스터의 서버에 대해 블록체인 노드에 사전 저장된 리프 노드의 데이터를 서버 클러스터의 서버에 분배하여 분산된 리프 노드의 데이터의 검사합을 각각 계산하도록 구성되고; 그리고
루트 검사합 획득 모듈(902)은 서버 클러스터의 서버에 의해 계산된 리프 노드의 데이터의 검사합에 따라 블록체인 노드의 데이터의 루트 검사합을 추가로 획득하도록 구성된다.
본 출원의 실시형태에서, 루트 검사합 획득 모듈(902)은 서버 클러스터의 서버에 의해 전송된 블록체인 노드의 데이터의 루트 검사합을 수신하도록 구성된다.
본 출원의 실시형태에서, 루트 검사합 획득 모듈(902)은 리프 노드의 검사합에 따라, 리프 노드에 대응하는 머클 트리의 루트 검사합을 결정하고; 머클 트리의 루트 검사합을 블록체인 노드의 데이터의 루트 검사합에 할당하도록 구성된다.
본 출원의 실시형태에서, 데이터 분산 모듈(901)은 블록체인 노드에 사전 저장된 리프 노드의 수에 따라, 사전 설정된 수의 리프 노드의 데이터를 서버 클러스터의 서버로 각각 전송하도록 구성된다.
본 출원의 실시형태에서, 검사합은 해시값이다.
본 출원의 실시형태는 서버 클러스터의 서버에 대해 블록체인 노드에 사전 저장된 리프 노드의 데이터를 서버 클러스터의 서버에 분산하여 분산된 리프 노드의 데이터의 검사합을 각각 계산하고; 서버 클러스터의 서버에 의해 계산된 분산된 리프 노드의 데이터의 검사합에 따라 블록체인 노드의 데이터의 루트 검사합을 추가로 획득하도록 구성된 데이터 처리 디바이스를 제공한다. 이러한 방식으로, 리프 노드의 데이터가 서버 클러스터로 분산된 후 분산된 리프 노드의 데이터의 검사합이 서버 클러스터의 각 서버에 의해 계산될 때, 데이터가 리프 노드의 데이터의 검사합의 병렬 계산을 위해 서버 클러스터로 분산될 수 있고, 이에 의해 계산 프로세스에 소요되는 시간을 감소시키고 계산 효율을 향상시키고 블록의 정상적인 생성 및 블록체인의 정상 동작을 보장할 수 있다.
실시형태 Ⅳ
동일한 개념에 기초하여, 본 출원의 실시형태는 도 10에 나타낸 바와 같은 데이터 처리 디바이스를 추가로 제공한다.
데이터 처리 디바이스는 전술한 실시형태에서 제공되는 서버 클러스터일 수 있고, 디바이스는 데이터 수신 모듈(1001) 및 검사합 획득 모듈(1002)을 포함할 수 있으며,
데이터 수신 모듈(1001)은 블록체인 노드에 의해 분산된 리프 노드의 데이터를 수신하도록 구성되고; 그리고
검사합 획득 모듈(1002)은 블록체인 노드의 데이터의 루트 검사합을 획득하기 위해 분산된 리프 노드의 데이터의 검사합을 계산하도록 구성된다.
본 출원의 실시형태에서, 본 디바이스는,
리프 노드의 데이터량에 따라, 리프 노드의 데이터를 사전 설정된 서브-리프 노드에 분산하도록 구성되는 데이터 분배 모듈;
각 서브-리프 노드의 데이터의 검사합을 계산하도록 구성되는 계산 모듈; 및
이에 대응하여, 각 서브-리프 노드의 데이터의 검사합에 따라, 분산된 리프 노드의 데이터의 검사합을 계산하도록 구성되는 검사합 획득 모듈(1002)을 더 포함한다.
본 출원의 실시형태에서, 데이터 분산 모듈은 리프 노드의 데이터를 정렬하고, 서브-리프 노드로의 배치를 위해 정렬된 데이터로부터 사전 설정된 수의 데이터 단편을 각각 순차적으로 선택하고, 서브-리프 노드에 대해 대응하는 서브-노드 식별자를 설정하도록 구성되고; 그리고
이에 대응하여, 검사합 획득 모듈(1002)은 서브-리프 노드의 서브-노드 식별자 및 각각의 서브-리프 노드의 검사합에 따라, 분산된 리프 노드의 데이터의 검사합을 계산하도록 구성된다.
본 출원의 실시형태에서, 검사합 획득 모듈(1002)은 분산된 리프 노드의 데이터의 검사합을 계산하고, 블록체인 노드에 대해 분산된 리프 노드의 데이터의 검사합을 블록체인 노드로 전송하여 리프 노드의 데이터의 검사합에 따라 블록체인 노드의 데이터의 루트 검사합을 계산하고; 또는 분산된 리프 노드의 데이터의 검사합을 계산하고, 분산된 리프 노드의 데이터의 검사합에 기초하여 블록체인 노드의 데이터의 루트 검사합을 획득하고, 루트 검사합을 블록체인 노드로 전송하도록 구성된다.
본 출원의 실시형태는 서버 클러스터의 서버에 대해 블록체인 노드에 사전 저장된 리프 노드의 데이터를 서버 클러스터의 서버에 분산하여 분산된 리프 노드의 데이터의 검사합을 각각 계산하고; 서버 클러스터의 서버에 의해 계산된 리프 노드의 데이터의 검사합에 따라, 블록체인 노드의 데이터의 루트 검사합을 추가로 획득하도록 구성되는 데이터 처리 디바이스를 제공한다. 이러한 방식으로, 리프 노드의 데이터가 서버 클러스터에 분산되고, 그 후 분산된 리프 노드의 데이터의 검사합이 서버 클러스터의 각 서버에 의해 계산될 때, 데이터가 리프 노드의 데이터의 검사합의 병렬 계산을 위해 서버 클러스터로 분산될 수 있고, 이에 의해 계산 프로세스에 소요되는 시간을 감소시키고, 계산 효율을 향상시키고, 블록의 정상적인 생성 및 블록체인의 정상 동작을 보장할 수 있다.
1990년대에, 기술에 대한 향상이 하드웨어 향상(예를 들어, 다이오드, 트랜지스터, 스위치 등과 같은 회로 구조에 대한 향상) 또는 소프트웨어 향상(방법의 흐름에 대한 향상)으로 명확하게 구분될 수 있었다. 그러나 기술 개발로 인해, 방법의 흐름에 대한 많은 현재의 향상은 하드웨어 회로 구조에 대한 직접 향상으로 고려될 수 있다. 설계자는 하드웨어 회로로 향상된 방법의 흐름을 프로그래밍함으로써 거의 언제나 대응하는 하드웨어 회로 구조를 획득한다. 따라서 하드웨어 모듈로 방법의 흐름에 대한 향상이 실현될 수 없는 것으로 결론을 내릴 수 없다. 예를 들어, 프로그램가능 논리 디바이스(PLD)(예를 들어, 필드 프로그램가능 게이트 어레이(FPGA))는, 집적 회로의 논리 기능이 디바이스를 프로그래밍함으로써 사용자에 의해 결정되는 그러한 집적 회로이다. 설계자는 디지털 시스템을 PLD의 한 단편에 "집적"하기 위해 스스로 프로그래밍하고, 설계자는 전용 IC 칩을 설계 및 제조하도록 칩 제조자에게 요청할 필요가 없다. 현재, 또한, 이러한 유형의 프로그래밍은 IC 칩을 수동으로 제조하는 것이 아니라 "논리 컴파일러" 소프트웨어를 통해 대부분 구현된다. 논리 컴파일러 소프트웨어는 프로그램 개발 및 작성에 사용되는 소프트웨어 컴파일러와 유사하지만 컴파일링 전에 특정 프로그래밍 언어가 소스 코드를 작성하기 위해 사용되어야 하며, 이를 하드웨어 설명 언어(HDL)라고 칭한다. ABEL(Advanced Boolean Expression Language), AHDL(Altera Hardware Description Language), Confluence, CUPL(Cornell University Programming Language), HDCal, JHDL(Java Hardware Description Language), Lava, Lola, MyHDL, PALASM, RHDL(Ruby Hardware Description Language) 등과 같은 단지 하나가 아닌 많은 유형의 HDL이 존재한다. 가장 통상적으로 사용되는 권리는 현재 VHDL(Very-High-Speed Integrated Circuit Hardware Description Language)과 Verilog를 포함한다. 본 기술 분야의 통상의 기술자는, 전술한 HDL을 사용하여 논리 방법의 흐름을 구현하기 위한 하드웨어 회로를 획득하여 방법의 흐름에 대한 약간의 논리 프로그래밍을 수행하고 방법의 흐름을 IC로 프로그래밍하는 것이 매우 용이하다는 것을 또한 알아야 한다.
컨트롤러는 임의의 적절한 방식으로 구현될 수 있다. 예를 들어, 컨트롤러는 (마이크로)프로세서, 논리 게이트, 스위치, 어플리케이션 특정 집적 회로(ASIC), 프로그램가능 논리 컨트롤러 및 매립형 마이크로컨트롤러에 의해 실행될 수 있는 컴퓨터 판독 가능 프로그램 코드(예를 들어, 소프트웨어 또는 펌웨어)를 저장하는 컴퓨터 판독 가능 매체뿐만 아니라, 예를 들어, 마이크로프로세서 또는 프로세서의 형태일 수 있다. 컨트롤러의 예는 이하의 마이크로컨트롤러: ARC 625D, Atmel AT91SAM, Microchip PIC18F26K20 및 Silicone Labs C8051F320을 포함하지만, 이에 한정되는 것은 아니다. 메모리 컨트롤러는 메모리의 제어 논리의 일부로서 추가로 구현될 수 있다. 또한, 본 기술 분야의 통상의 기술자는, 컨트롤러가 순수한 컴퓨터 판독 가능 프로그램 코드의 방식으로 구현되는 것 이외에, 논리 게이트, 스위치, ASIC, 프로그램가능 논리 컨트롤러, 매립형 마이크로컨트롤러 등의 형태로 동일 기능을 컨트롤러가 구현할 수 있게 하는 방법의 단계에 대한 논리 프로그래밍을 수행하는 것이 완전히 가능하다는 것을 알아야 한다. 따라서, 이러한 컨트롤러는 하드웨어 부분으로 고려될 수 있으며, 컨트롤러에 포함되고, 다양한 기능을 달성하도록 구성된 디바이스가 또한 하드웨어 부분 내부의 구조로 고려될 수 있다. 대안적으로, 다양한 기능을 달성하도록 구성된 디바이스는 심지어 방법을 구현하기 위한 소프트웨어 모듈 및 하드웨어 부분 내부의 구조 모두로 고려될 수 있다.
전술한 실시형태에서 설명된 시스템, 장치, 모듈 또는 유닛은 컴퓨터 칩 또는 엔티티에 의해 구현될 수 있거나 기능을 갖는 제품에 의해 구현될 수 있다. 통상적인 구현 디바이스는 컴퓨터이다. 일 예에서, 컴퓨터는 예를 들어, 퍼스널 컴퓨터, 랩톱 컴퓨터, 셀룰러 폰, 카메라 폰, 스마트 폰, 퍼스널 디지털 어시스턴트, 매체 플레이어, 내비게이션 디바이스, 이메일 디바이스, 게임 콘솔, 태블릿 컴퓨터, 웨어러블 디바이스 또는 이들 디바이스 중 임의의 디바이스의 조합일 수 있다.
설명의 편의상, 전술한 디바이스는 설명을 위한 기능에 따라 다양한 유닛으로 분할된다. 본 유닛의 기능은, 본 출원이 구현될 때 소프트웨어 및/또는 하드웨어의 하나 이상의 단편으로 구현될 수 있다.
본 기술 분야의 통상의 기술자는, 본 발명의 실시형태가 방법, 시스템 또는 컴퓨터 프로그램 제품으로서 제공될 수 있다는 것을 이해해야 한다. 따라서, 본 발명은 완전한 하드웨어 실시형태, 완전한 소프트웨어 실시형태 또는 소프트웨어와 하드웨어를 조합하는 실시형태로서 구현될 수 있다. 또한, 본 발명은 컴퓨터 사용 가능 프로그램 코드를 포함하는 하나 이상의 컴퓨터 사용 가능 저장 매체(자기 디스크 메모리, CD-ROM, 광 메모리 등을 포함하지만 이에 한정되지는 않음) 상에 구현된 컴퓨터 프로그램 제품의 형태일 수 있다.
본 발명은 본 발명의 실시형태에 따른 방법, 디바이스(시스템) 및 컴퓨터 프로그램 제품의 흐름도 및/또는 블록도를 참조하여 설명된다. 흐름도 및/또는 블록도의 각각의 프로세스 및/또는 블록과 흐름도 및/또는 블록도의 프로세스 및/또는 블록의 조합을 구현하기 위해 컴퓨터 프로그램 명령이 사용될 수 있음을 이해하여야 한다. 이들 컴퓨터 프로그램 명령은 범용 컴퓨터, 특수-목적 컴퓨터, 매립형 프로세서, 또는 다른 프로그램가능 데이터 처리 디바이스의 프로세서에 대해 제공될 수 있어 머신을 생성하여, 명령이 컴퓨터 또는 다른 프로그램가능 데이터 처리 디바이스의 프로세서에 의해 실행되어 흐름도의 하나 이상의 프로세스 및/또는 블록도의 하나 이상의 블록에 특정된 기능을 구현하기 위한 장치를 생성하게 한다.
이들 컴퓨터 프로그램 명령은 또한 컴퓨터 또는 다른 프로그램가능 데이터 처리 디바이스가 특정 방식으로 작동하도록 명령할 수 있는 컴퓨터 판독 가능 메모리에 저장될 수 있으며, 이는 컴퓨터 판독 가능 메모리에 저장된 명령이 명령 장치를 포함하는 제조된 제품을 생성하게 한다. 명령 장치는 흐름도의 하나 이상의 프로세스 및/또는 블록도의 하나 이상의 블록에서 특정된 기능을 구현한다.
또한, 이들 컴퓨터 프로그램 명령은 컴퓨터 또는 다른 프로그램가능 데이터 처리 디바이스 상에 로딩되어 일련의 동작 단계가 컴퓨터 또는 다른 프로그램가능 디바이스 상에서 수행되게 하며, 이에 의해 컴퓨터-구현 처리를 생성한다. 따라서, 컴퓨터 또는 다른 프로그램가능 디바이스 상에서 실행되는 명령은 흐름도의 하나 이상의 프로세스 및/또는 블록도의 하나 이상의 블록에서 특정된 기능을 구현하기 위한 단계를 제공한다.
통상적인 구성에서, 계산 디바이스는 하나 이상의 프로세서(CPU), 입력/출력 인터페이스, 네트워크 인터페이스 및 메모리를 포함한다.
메모리는 휘발성 메모리, 랜덤 액세스 메모리(RAM) 및/또는 비휘발성 메모리, 예를 들어, 판독 전용 메모리(ROM) 또는 플래시 RAM과 같은 컴퓨터 판독 가능 매체를 포함할 수 있다. 메모리는 컴퓨터 판독 가능 매체의 예이다.
컴퓨터 판독 가능 매체는 임의의 방법 또는 기술을 통해 정보 저장을 구현할 수 있는 영구, 휘발성, 이동성 및 고정 매체를 포함한다. 정보는 컴퓨터 판독 가능 명령, 데이터 구조, 프로그램 모듈 또는 다른 데이터일 수 있다. 컴퓨터의 저장 매체의 예는 상-변화 랜덤 액세스 메모리(PRAM), 정적 랜덤 액세스 메모리(SRAM), 동적 랜덤 액세스 메모리(DRAM), 다른 유형의 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 전기 소거 가능 프로그램가능 판독 전용 메모리(EEPROM), 플래시 메모리 또는 다른 메모리 기술, 컴팩트 디스크 판독 전용 메모리(CD-ROM), 디지털 버서타일 디스크(DVD) 또는 다른 광 메모리, 카세트, 카세트 및 디스크 메모리 또는 다른 자기 메모리 디바이스, 또는 계산 디바이스에 액세스 가능한 정보를 저장하는 데 사용될 수 있는 임의의 다른 비전송 매체를 포함하지만, 이에 한정되는 것은 아니다. 본 명세서의 정의에 따르면, 컴퓨터 판독 가능 매체는 변조된 데이터 신호 및 캐리어와 같은 일시적인 매체를 포함하지 않는다.
"포함하는", "포괄하는"의 용어 또는 이러한 용어의 임의의 다른 변형은 일련의 요소를 포함하는 프로세스, 방법, 상품 또는 디바이스가 이들 요소를 포함할 뿐만 아니라, 명확히 열거되지 않은 다른 요소를 또한 포함하거나, 프로세스, 방법, 상품 또는 디바이스에 내재된 요소를 추가로 포함하도록 비배타적인 포함을 포괄하는 것으로 의도된다는 점에 추가로 유의해야 한다. 추가의 제한이 없는 경우, "하나의...를 포함하는"이라는 문구에 의해 정의된 요소는 상술 요소를 포함하는 프로세스, 방법, 상품 또는 디바이스가 추가의 동일한 요소를 더 포함한다는 것을 배제하지 않는다.
본 기술 분야의 통상의 기술자는, 본 출원의 실시형태가 방법, 시스템 또는 컴퓨터 프로그램 제품으로서 제공될 수 있다는 것을 이해해야 한다. 따라서, 본 출원은 완전한 하드웨어 실시형태, 완전한 소프트웨어 실시형태 또는 소프트웨어와 하드웨어를 조합한 실시형태로서 구현될 수 있다. 또한, 본 출원은 컴퓨터 사용 가능 프로그램 제품을 포함하는 (자기 디스크 메모리, CD-ROM, 광 메모리 등을 포함하지만 이에 한정되지는 않는) 하나 이상의 컴퓨터 사용 가능 저장 매체 상에 구현된 컴퓨터 프로그램 제품의 형태일 수 있다.
본 출원은 프로그램 모듈과 같은 컴퓨터에 의해 실행되는 컴퓨터 실행 가능 명령의 규칙적인 문맥으로 설명될 수 있다. 일반적으로, 프로그램 모듈은 특정 작업을 실행하거나 특정 추상 데이터 유형을 구현하기 위한 루틴, 프로그램, 객체, 컴포넌트, 데이터 구조 등을 포함한다. 본 출원은 분산 계산 환경에서 또한 실시될 수 있다. 이러한 분산 계산 환경에서, 통신 네트워크를 통해 접속된 원격 처리 디바이스가 작업을 수행한다. 분산 계산 환경에서, 프로그램 모듈은 저장 디바이스를 포함하여 로컬 및 원격 컴퓨터 저장 매체에 위치될 수 있다.
본 명세서의 실시형태는 점진적으로 설명되며, 각 실시형태는 다른 실시형태와의 차이점에 초점을 맞추고, 실시형태는 동일하거나 유사한 부분에 대해 상호 참조될 수 있다. 특히, 시스템 실시형태는, 시스템 실시형태가 방법 실시형태와 실질적으로 유사하기 때문에 비교적 간단한 방식으로 설명된다. 방법 실시형태에 대한 설명은 관련 부분에 대해 참조될 수 있다.
전술한 내용은 본 출원의 실시형태에 불과하며, 본 출원을 제한하는 데 사용되지 않는다. 본 기술 분야의 통상의 기술자에 대해, 본 출원은 다양한 수정 및 변경을 가질 수 있다. 본 출원의 사상 및 원리 내에서 이루어진 임의의 수정, 동등한 대체 또는 개선은 본 출원의 청구항에 포함될 것이다.

Claims (18)

  1. 데이터 처리 방법으로서,
    분산된 리프(leaf) 노드의 데이터의 검사합(checksum)을 각각 계산하기 위하여 서버 클러스터의 서버에 대해, 블록체인 노드에 사전 저장된 리프 노드의 데이터를 상기 서버 클러스터의 상기 서버에 분산시키는 단계; 및
    상기 서버 클러스터의 상기 서버에 의해 계산된 상기 리프 노드의 데이터의 검사합에 따라, 상기 블록체인 노드의 데이터의 루트 검사합을 획득하는 단계를 포함하는, 데이터 처리 방법.
  2. 제1항에 있어서, 상기 서버 클러스터의 상기 서버에 의해 계산된 상기 리프 노드의 상기 데이터의 상기 검사합에 따라, 상기 블록체인 노드의 상기 데이터의 상기 루트 검사합을 획득하는 단계는,
    상기 서버 클러스터의 상기 서버에 의해 전송된 상기 블록체인 노드의 상기 데이터의 상기 루트 검사합을 수신하는 단계를 포함하는, 데이터 처리 방법.
  3. 제1항에 있어서, 상기 서버 클러스터의 상기 서버에 의해 계산된 상기 리프 노드의 상기 데이터의 상기 검사합에 따라, 상기 블록체인 노드의 상기 데이터의 상기 루트 검사합을 획득하는 단계는,
    상기 리프 노드의 상기 검사합에 따라, 상기 리프 노드에 대응하는 머클 트리(Merkle tree)의 루트 검사합을 결정하는 단계; 및
    상기 머클 트리의 상기 루트 검사합을 상기 블록체인 노드의 상기 데이터의 상기 루트 검사합에 할당하는 단계를 포함하는, 데이터 처리 방법.
  4. 제1항에 있어서, 상기 블록체인 노드에 사전 저장된 상기 리프 노드의 상기 데이터를 상기 서버 클러스터의 상기 서버에 분산시키는 단계는,
    상기 블록체인 노드에 사전 저장된 상기 리프 노드의 수에 따라, 사전 설정된 수의 리프 노드의 데이터를 상기 서버 클러스터의 서버에 각각 전송하는 단계를 포함하는, 데이터 처리 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서, 상기 검사합은 해시값(Hash value)인, 데이터 처리 방법.
  6. 데이터 처리 방법으로서,
    블록체인 노드에 의해 분산된 리프 노드의 데이터를 수신하는 단계; 및
    상기 블록체인 노드의 데이터의 루트 검사합을 획득하기 위해 상기 분산된 리프 노드의 상기 데이터의 검사합을 계산하는 단계를 포함하는, 데이터 처리 방법.
  7. 제6항에 있어서, 상기 블록체인 노드에 의해 분산된 상기 리프 노드의 상기 데이터를 수신하는 단계 후에, 상기 방법은,
    상기 리프 노드의 데이터량에 따라, 상기 리프 노드의 상기 데이터를 사전 설정된 서브-리프 노드에 분산시키는 단계; 및
    각각의 서브-리프 노드의 데이터의 검사합을 계산하는 단계를 더 포함하고,
    상기 분산된 리프 노드의 상기 데이터의 상기 검사합을 계산하는 단계는,
    각각의 서브-리프 노드의 상기 데이터의 상기 검사합에 따라, 상기 분산된 리프 노드의 상기 데이터의 상기 검사합을 계산하는 단계를 포함하는, 데이터 처리 방법.
  8. 제7항에 있어서, 상기 리프 노드의 상기 데이터량에 따라, 상기 리프 노드의 상기 데이터를 상기 사전 설정된 서브-리프 노드에 분산시키는 단계는,
    상기 리프 노드의 상기 데이터를 정렬(sorting)하는 단계;
    상기 서브-리프 노드에 배치하기 위해 상기 정렬된 데이터로부터 사전 설정된 수의 데이터 단편을 순차적으로 선택하는 단계; 및
    상기 서브-리프 노드에 대해 대응하는 서브-노드 식별자를 설정하는 단계를 포함하고,
    상기 각각의 서브-리프 노드의 상기 데이터의 상기 검사합에 따라, 상기 분산된 리프 노드의 상기 데이터의 상기 검사합을 계산하는 단계는,
    상기 서브-리프 노드의 상기 서브-노드 식별자 및 상기 각각의 서브-리프 노드의 상기 검사합에 따라, 상기 분산된 리프 노드의 상기 데이터의 상기 검사합을 계산하는 단계를 포함하는, 데이터 처리 방법.
  9. 제6항에 있어서, 상기 블록체인 노드의 상기 데이터의 루트 검사합을 획득하기 위해 상기 분산된 리프 노드의 상기 데이터의 상기 검사합을 계산하는 단계는,
    상기 분산된 리프 노드의 상기 데이터의 상기 검사합을 계산하고, 상기 리프 노드의 상기 데이터의 상기 검사합에 따라 상기 블록체인 노드의 상기 데이터의 상기 루트 검사합을 계산하기 위하여 상기 블록체인 노드에 대해 상기 분산된 리프 노드의 상기 데이터의 상기 검사합을 상기 블록체인 노드에 전송하는 단계; 또는
    상기 분산된 리프 노드의 상기 데이터의 상기 검사합을 계산하고, 상기 분산된 리프 노드의 상기 데이터의 상기 검사합에 기초하여 상기 블록체인 노드의 상기 데이터의 상기 루트 검사합을 획득하고, 상기 루트 검사합을 상기 블록체인 노드에 전송하는 단계를 포함하는, 데이터 처리 방법.
  10. 데이터 처리 디바이스로서,
    분산된 리프 노드의 데이터의 검사합을 각각 계산하기 위하여 서버 클러스터의 서버에 대해, 블록체인 노드에 사전 저장된 리프 노드의 데이터를 상기 서버 클러스터의 상기 서버에 분산하도록 구성된 데이터 분산 모듈; 및
    상기 서버 클러스터의 상기 서버에 의해 계산된 상기 리프 노드의 상기 데이터의 상기 검사합에 따라, 상기 블록체인 노드의 데이터의 루트 검사합을 획득하도록 구성된 루트 검사합 획득 모듈을 포함하는, 데이터 처리 디바이스.
  11. 제10항에 있어서, 상기 루트 검사합 획득 모듈은 상기 서버 클러스터의 상기 서버에 의해 전송된 상기 블록체인 노드의 상기 데이터의 상기 루트 검사합을 수신하도록 구성되는, 데이터 처리 디바이스.
  12. 제10항에 있어서, 상기 루트 검사합 획득 모듈은, 상기 리프 노드의 상기 검사합에 따라, 상기 리프 노드에 대응하는 머클 트리의 루트 검사합을 결정하고; 상기 머클 트리의 상기 루트 검사합을 상기 블록체인 노드의 상기 데이터의 상기 루트 검사합에 할당하도록 구성되는, 데이터 처리 디바이스.
  13. 제10항에 있어서, 상기 데이터 분산 모듈은, 상기 블록체인 노드에 사전 저장된 상기 리프 노드의 수에 따라, 사전 설정된 수의 리프 노드의 데이터를 상기 서버 클러스터의 서버에 각각 전송하도록 구성되는, 데이터 처리 디바이스.
  14. 제10항 내지 제13항 중 어느 한 항에 있어서, 상기 검사합은 해시값인, 데이터 처리 디바이스.
  15. 데이터 처리 디바이스로서,
    블록체인 노드에 의해 분산된 리프 노드의 데이터를 수신하도록 구성된 데이터 수신 모듈; 및
    상기 블록체인 노드의 데이터의 루트 검사합을 획득하기 위하여 상기 분산된 리프 노드의 상기 데이터의 검사합을 계산하도록 구성된 검사합 획득 모듈을 포함하는, 데이터 처리 디바이스.
  16. 제15항에 있어서,
    상기 리프 노드의 데이터량에 따라, 상기 리프 노드의 상기 데이터를 사전 설정된 서브-리프 노드에 분산하도록 구성된 데이터 분산 모듈;
    각각의 서브-리프 노드의 데이터의 검사합을 계산하도록 구성된 계산 모듈을 더 포함하되, 상기 검사합 획득 모듈은 각각의 서브-리프 노드의 상기 데이터의 상기 검사합에 따라, 상기 분산된 리프 노드의 상기 데이터의 상기 검사합을 계산하도록 구성되는, 데이터 처리 디바이스.
  17. 제16항에 있어서, 상기 데이터 분산 모듈은 상기 리프 노드의 상기 데이터를 정렬하고, 상기 서브-리프 노드로의 배치를 위해 상기 정렬된 데이터로부터 사전 설정된 수의 데이터 단편을 순차적으로 선택하고, 상기 서브-리프 노드에 대하여 대응하는 서브-노드 식별자를 설정하도록 구성되고,
    상기 검사합 획득 모듈은 상기 서브-리프 노드의 상기 서브-노드 식별자 및 상기 각각의 서브-리프 노드의 상기 검사합에 따라, 상기 분산된 리프 노드의 상기 데이터의 상기 검사합을 계산하도록 구성되는, 데이터 처리 디바이스.
  18. 제15항에 있어서, 상기 검사합 획득 모듈은 상기 분산된 리프 노드의 상기 데이터의 상기 검사합을 계산하고, 상기 리프 노드의 상기 데이터의 상기 검사합에 따라 상기 블록체인 노드의 상기 데이터의 상기 루트 검사합을 계산하기 위해 상기 블록체인 노드에 대해 상기 분산된 리프 노드의 상기 데이터의 상기 검사합을 상기 블록체인 노드에 전송하거나; 또는
    상기 분산된 리프 노드의 상기 데이터의 상기 검사합을 계산하고, 상기 분산된 리프 노드의 상기 데이터의 상기 검사합에 기초하여 상기 블록체인 노드의 상기 데이터의 상기 루트 검사합을 획득하고, 상기 루트 검사합을 상기 블록체인 노드에 전송하도록 구성되는, 데이터 처리 디바이스.
KR1020197022496A 2017-02-17 2018-02-07 데이터 처리 방법 및 디바이스 KR102284972B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201710085752.6 2017-02-17
CN201710085752.6A CN107040582B (zh) 2017-02-17 2017-02-17 一种数据处理方法及装置
PCT/CN2018/075571 WO2018149345A1 (zh) 2017-02-17 2018-02-07 一种数据处理方法及装置

Publications (2)

Publication Number Publication Date
KR20190098765A true KR20190098765A (ko) 2019-08-22
KR102284972B1 KR102284972B1 (ko) 2021-08-03

Family

ID=59533525

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197022496A KR102284972B1 (ko) 2017-02-17 2018-02-07 데이터 처리 방법 및 디바이스

Country Status (18)

Country Link
US (2) US11392612B2 (ko)
EP (1) EP3554051B1 (ko)
JP (1) JP6940615B2 (ko)
KR (1) KR102284972B1 (ko)
CN (1) CN107040582B (ko)
AU (2) AU2018221097B2 (ko)
BR (1) BR112019016423B1 (ko)
CA (1) CA3051065C (ko)
ES (1) ES2859560T3 (ko)
MX (1) MX2019009291A (ko)
MY (1) MY190059A (ko)
PH (1) PH12019501852A1 (ko)
PL (1) PL3554051T3 (ko)
RU (1) RU2724136C1 (ko)
SG (1) SG11201906738SA (ko)
TW (1) TWI682652B (ko)
WO (1) WO2018149345A1 (ko)
ZA (1) ZA201904735B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102163930B1 (ko) * 2019-09-30 2020-10-12 넷마블 주식회사 블록체인 보상을 통한 분산 컴파일 시스템

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107040582B (zh) * 2017-02-17 2020-08-14 创新先进技术有限公司 一种数据处理方法及装置
CN107612973B (zh) * 2017-08-18 2020-12-11 暨南大学 用于智能移动端的区块链结构、生成方法及交易验证方法
CN107705208A (zh) * 2017-10-12 2018-02-16 南京网数信息科技有限公司 一种基于哈希树的数字资产处理方法和系统
CN107992356B (zh) * 2017-12-13 2021-09-14 深圳壹账通智能科技有限公司 区块链事务区块处理方法、电子装置及可读存储介质
CN108521328B (zh) * 2018-03-26 2020-08-28 杭州秘猿科技有限公司 一种区块链共识方法、装置及电子设备
JP7379371B2 (ja) 2018-04-27 2023-11-14 エヌチェーン ライセンシング アーゲー ブロックチェーンネットワークの分割
CN109032803B (zh) 2018-08-01 2021-02-12 创新先进技术有限公司 数据处理方法和装置、客户端
CN109359222B (zh) * 2018-08-06 2021-07-06 杭州复杂美科技有限公司 数据存储方法及系统、设备和存储介质
CN109412600A (zh) * 2018-09-03 2019-03-01 何祥果 一种基于磁性特征的标识号编码方法
WO2020056570A1 (zh) * 2018-09-18 2020-03-26 柯宾汉数位金融科技有限公司 应用分片机制的区块网的区块产生方法及区块网系统
CN109345388B (zh) * 2018-09-20 2020-09-08 百度在线网络技术(北京)有限公司 区块链智能合约验证方法、装置及存储介质
CN109360095A (zh) * 2018-09-27 2019-02-19 深圳技术大学(筹) 一种区块链交易数据的处理方法、装置及终端设备
CN109361661B (zh) * 2018-10-08 2020-07-10 莆田市烛火信息技术有限公司 一种依附相关链算力的区块链的共识装置
US11520773B2 (en) 2018-10-09 2022-12-06 International Business Machines Corporation Blockchain notification board storing blockchain resources
US11303442B2 (en) 2018-10-09 2022-04-12 International Business Machines Corporation Blockchain notification board storing blockchain resources
US10997159B2 (en) * 2018-10-09 2021-05-04 International Business Machines Corporation Blockchain notification board storing blockchain resources
CN111833189A (zh) * 2018-10-26 2020-10-27 创新先进技术有限公司 数据处理方法及装置
CN109754251B (zh) * 2018-12-27 2022-02-01 石更箭数据科技(上海)有限公司 一种数据处理方法及其装置、介质、终端
EP3909194A4 (en) * 2019-01-10 2022-09-28 Bitnobi Inc. DISTRIBUTED CONTROL FOR BIG DATA SHARING
CN110009510A (zh) * 2019-01-22 2019-07-12 阿里巴巴集团控股有限公司 基于区块链的业务处理系统、方法、计算设备及存储介质
TWI708154B (zh) * 2019-04-24 2020-10-21 國際信任機器股份有限公司 適用於區塊鏈與鏈下間協作的驗證系統與方法
SG11202002912XA (en) * 2019-08-01 2021-03-30 Advanced New Technologies Co Ltd Shared blockchain data storage based on error correction code
CN110528600A (zh) * 2019-08-06 2019-12-03 福建工大岩土工程研究所有限公司 一种桩基检测系统及方法
CN110445684B (zh) * 2019-08-09 2021-04-02 中国信息通信研究院 一种区块链性能基准测试方法和装置
CN110753105B (zh) * 2019-10-17 2022-09-06 中国建设银行股份有限公司 数据传输方法、装置、系统、电子设备及存储介质
US11838400B2 (en) * 2019-11-19 2023-12-05 International Business Machines Corporation Image encoding for blockchain
TWI728571B (zh) * 2019-11-26 2021-05-21 中華電信股份有限公司 區塊鏈服務的資源管理方法及系統
CN111209336B (zh) * 2019-12-30 2020-09-15 广州博士信息技术研究院有限公司 基于区块链的数据分配方法、装置及服务器
CN111367916B (zh) * 2020-03-04 2023-03-31 浙江大华技术股份有限公司 一种数据存储方法及装置
CN111488343A (zh) * 2020-04-08 2020-08-04 北京瑞策科技有限公司 基于业务数据区块链的电商数据上链方法及装置
CN111708844B (zh) * 2020-08-24 2020-12-01 腾讯科技(深圳)有限公司 基于区块链的数据处理方法、装置及设备
CN112988912B (zh) * 2021-05-07 2021-11-02 支付宝(杭州)信息技术有限公司 区块链数据存储方法及装置、电子设备
CN112988761B (zh) * 2021-05-07 2022-04-08 支付宝(杭州)信息技术有限公司 区块链数据存储方法及装置、电子设备
CN112988908B (zh) * 2021-05-07 2021-10-15 支付宝(杭州)信息技术有限公司 区块链数据存储方法及装置、电子设备
CN112905607B (zh) * 2021-05-07 2022-02-01 支付宝(杭州)信息技术有限公司 区块链数据存储方法及装置、电子设备
CN113839989B (zh) * 2021-08-28 2022-08-05 西安交通大学 一种多节点数据处理方法
CN113765665B (zh) * 2021-11-10 2022-02-08 济南量子技术研究院 基于量子密钥的区块链网络及数据安全传输方法
CN114466004A (zh) * 2022-03-24 2022-05-10 成都新希望金融信息有限公司 一种文件传输方法、系统、电子设备及存储介质
CN114844911A (zh) * 2022-04-20 2022-08-02 网易(杭州)网络有限公司 数据存储方法、装置、电子设备及计算机可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100064166A1 (en) * 2008-09-11 2010-03-11 Nec Laboratories America, Inc. Scalable secondary storage systems and methods
CN105719185A (zh) * 2016-01-22 2016-06-29 杭州复杂美科技有限公司 区块链的数据对比及共识方法
KR101637868B1 (ko) * 2016-02-22 2016-07-08 주식회사 코인플러그 블록체인을 기반으로 하는 금융기관 제증명서류 위변조 검증시스템 및 방법
WO2016131576A1 (en) * 2015-02-20 2016-08-25 Telefonaktiebolaget Lm Ericsson (Publ) Methods of providing a hash value, and of deriving a time stamp for a piece of data, electronic device, server, network node and computer programs

Family Cites Families (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5924094A (en) * 1996-11-01 1999-07-13 Current Network Technologies Corporation Independent distributed database system
CA2534807C (en) 2003-08-14 2010-12-14 Lakshminarayanan Chidambaran On demand node and server instance allocation and de-allocation
US20070038572A1 (en) * 2005-08-09 2007-02-15 International Business Machines Corporation Method, system and computer program for metering software usage
JP2007257556A (ja) 2006-03-26 2007-10-04 Wiz Win Kk 文字入力装置
JP4767057B2 (ja) * 2006-03-27 2011-09-07 富士通株式会社 ハッシュ値生成プログラム、ストレージ管理プログラム、判定プログラム及びデータ変更検証装置
US8204912B2 (en) * 2006-09-08 2012-06-19 Oracle International Corporation Insertion rate aware b-tree
US9740727B2 (en) * 2008-10-10 2017-08-22 Abb Schweiz Ag Method and a system for replicating databases
US8345707B2 (en) 2009-06-03 2013-01-01 Voxer Ip Llc Method for synchronizing data maintained at a plurality of nodes
CN101651719B (zh) * 2009-09-11 2013-06-12 广东宇天科技有限公司 通信系统、均衡服务器及数据验证方法
JP5445682B2 (ja) 2010-09-09 2014-03-19 日本電気株式会社 ストレージシステム
CN102158559B (zh) * 2011-04-18 2016-05-18 浙江工业大学 一种基于p2p网络的负载均衡的方法
TWI483138B (zh) * 2012-10-12 2015-05-01 Acer Inc 遠端動態資料的處理與驗證方法、系統,以及電腦可讀記錄媒體
CN103902617B (zh) 2012-12-28 2017-06-09 华为技术有限公司 分布式数据库同步方法和系统
US20140245020A1 (en) 2013-02-22 2014-08-28 Guardtime Ip Holdings Limited Verification System and Method with Extra Security for Lower-Entropy Input Records
RU2609078C2 (ru) * 2013-08-29 2017-01-30 Общество С Ограниченной Ответственностью "Яндекс" Система управления индексацией партнерских объявлений
US9870591B2 (en) 2013-09-12 2018-01-16 Netspective Communications Llc Distributed electronic document review in a blockchain system and computerized scoring based on textual and visual feedback
CN106415530A (zh) * 2013-11-19 2017-02-15 日出科技集团有限责任公司 区块挖掘方法和装置
US9256549B2 (en) 2014-01-17 2016-02-09 Netapp, Inc. Set-associative hash table organization for efficient storage and retrieval of data in a storage system
US10664530B2 (en) 2014-03-08 2020-05-26 Microsoft Technology Licensing, Llc Control of automated tasks executed over search engine results
US20160098723A1 (en) 2014-10-01 2016-04-07 The Filing Cabinet, LLC System and method for block-chain verification of goods
RU2580425C1 (ru) 2014-11-28 2016-04-10 Общество С Ограниченной Ответственностью "Яндекс" Способ структуризации хранящихся объектов в связи с пользователем на сервере и сервер
US9659047B2 (en) * 2014-12-03 2017-05-23 Netapp, Inc. Data deduplication utilizing extent ID database
US9547555B2 (en) * 2015-01-12 2017-01-17 Microsoft Technology Licensing, Llc Change tracking using redundancy in logical time
US9911007B2 (en) * 2015-02-27 2018-03-06 Guardtime IP Holdings, Ltd. Redundant fail-safe synchronization in a data authentication infrastructure
US10503445B2 (en) * 2015-03-23 2019-12-10 Netapp, Inc. Data structure store and data management
US20160283920A1 (en) * 2015-03-28 2016-09-29 Justin Fisher Authentication and verification of digital data utilizing blockchain technology
WO2016161073A1 (en) 2015-03-31 2016-10-06 Nasdaq, Inc. Systems and methods of blockchain transaction recordation
US10509684B2 (en) 2015-04-06 2019-12-17 EMC IP Holding Company LLC Blockchain integration for scalable distributed computations
EP3281145B1 (en) * 2015-04-10 2019-11-06 Telefonaktiebolaget LM Ericsson (publ) Verification paths of leaves of a tree
US20160306373A1 (en) * 2015-04-16 2016-10-20 Fujitsu Limited Authenticated down-sampling of time-series data
JP6571375B2 (ja) * 2015-04-24 2019-09-04 国立大学法人 筑波大学 著作物保護支援装置
AU2016288644A1 (en) 2015-07-02 2018-02-22 Nasdaq, Inc. Systems and methods of secure provenance for distributed transaction databases
US9298806B1 (en) 2015-07-08 2016-03-29 Coinlab, Inc. System and method for analyzing transactions in a distributed ledger
US20170011460A1 (en) 2015-07-09 2017-01-12 Ouisa, LLC Systems and methods for trading, clearing and settling securities transactions using blockchain technology
US20170031676A1 (en) 2015-07-27 2017-02-02 Deja Vu Security, Llc Blockchain computer data distribution
US10303887B2 (en) * 2015-09-14 2019-05-28 T0.Com, Inc. Data verification methods and systems using a hash tree, such as a time-centric merkle hash tree
US10713210B2 (en) * 2015-10-13 2020-07-14 Microsoft Technology Licensing, Llc Distributed self-directed lock-free RDMA-based B-tree key-value manager
EP3362965A4 (en) 2015-10-13 2019-08-07 Transactive Grid Inc. USING A DISTRIBUTED CONSENSUS CONTROL BASED ON A BLOCK CHAIN
US9794074B2 (en) 2016-02-04 2017-10-17 Nasdaq Technology Ab Systems and methods for storing and sharing transactional data using distributed computing systems
US20170243193A1 (en) * 2016-02-18 2017-08-24 Skuchain, Inc. Hybrid blockchain
US10475030B2 (en) 2016-02-22 2019-11-12 Bank Of America Corporation System for implementing a distributed ledger across multiple network nodes
US20170264428A1 (en) 2016-03-08 2017-09-14 Manifold Technology, Inc. Data storage system with blockchain technology
US9985964B2 (en) 2016-03-28 2018-05-29 Black Gold Coin, Inc. Systems and methods for providing block chain-based multifactor personal identity verification
CN105868369B (zh) * 2016-03-30 2019-10-01 电子科技大学 一种基于Merkle树结构的数据模型验证系统与方法
US10204341B2 (en) 2016-05-24 2019-02-12 Mastercard International Incorporated Method and system for an efficient consensus mechanism for permissioned blockchains using bloom filters and audit guarantees
US20170345011A1 (en) * 2016-05-26 2017-11-30 Hitfin, Inc. System and method executed on a blockchain network
CN106126722B (zh) * 2016-06-30 2019-10-18 中国科学院计算技术研究所 一种基于验证的前缀混合树及设计方法
CN106330431A (zh) * 2016-08-29 2017-01-11 北京瑞卓喜投科技发展有限公司 基于区块链技术的数据处理方法、装置及系统
US10187203B2 (en) * 2016-08-30 2019-01-22 Workday, Inc. Secure storage encryption system
US10177908B2 (en) * 2016-08-30 2019-01-08 Workday, Inc. Secure storage decryption system
US10785022B2 (en) 2016-09-13 2020-09-22 Hiroshi Watanabe Network without abuse of a private key
US10565570B2 (en) * 2016-09-27 2020-02-18 The Toronto-Dominion Bank Processing network architecture with companion database
US10339014B2 (en) * 2016-09-28 2019-07-02 Mcafee, Llc Query optimized distributed ledger system
US20180114205A1 (en) 2016-10-21 2018-04-26 Bank Of America Corporation Distributed ledger system for providing aggregate tracking and threshold triggering
CN106341421B (zh) * 2016-10-31 2019-04-02 杭州云象网络技术有限公司 一种基于区块链技术的数据交换方法
US10169872B2 (en) * 2016-11-02 2019-01-01 International Business Machines Corporation Classification of severity of pathological condition using hybrid image representation
US10116450B1 (en) 2016-11-02 2018-10-30 ISARA Corporation Merkle signature scheme using subtrees
CN106603198A (zh) 2016-12-02 2017-04-26 深圳大学 具有网络编码的区块链分布式存储方法及系统
US10243939B2 (en) * 2016-12-23 2019-03-26 Amazon Technologies, Inc. Key distribution in a distributed computing environment
CN106796688B (zh) 2016-12-26 2020-12-18 深圳前海达闼云端智能科技有限公司 区块链的权限控制方法、装置、系统及节点设备
US10523526B2 (en) * 2016-12-28 2019-12-31 Acronis International Gmbh System and method for managing services and licenses using a blockchain network
US10447480B2 (en) * 2016-12-30 2019-10-15 Guardtime Sa Event verification receipt system and methods
KR102659439B1 (ko) 2016-12-30 2024-04-23 인텔 코포레이션 사물 인터넷을 위한 명명 및 블록체인 기록
CN106686087A (zh) 2016-12-30 2017-05-17 先锋支付有限公司 一种区块链截断方法及分布式节点
US10572872B2 (en) 2017-01-06 2020-02-25 FirstBlood Technologies, Inc. Decentralized competitive arbitration using digital ledgering
CN107040582B (zh) * 2017-02-17 2020-08-14 创新先进技术有限公司 一种数据处理方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100064166A1 (en) * 2008-09-11 2010-03-11 Nec Laboratories America, Inc. Scalable secondary storage systems and methods
WO2016131576A1 (en) * 2015-02-20 2016-08-25 Telefonaktiebolaget Lm Ericsson (Publ) Methods of providing a hash value, and of deriving a time stamp for a piece of data, electronic device, server, network node and computer programs
CN105719185A (zh) * 2016-01-22 2016-06-29 杭州复杂美科技有限公司 区块链的数据对比及共识方法
KR101637868B1 (ko) * 2016-02-22 2016-07-08 주식회사 코인플러그 블록체인을 기반으로 하는 금융기관 제증명서류 위변조 검증시스템 및 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102163930B1 (ko) * 2019-09-30 2020-10-12 넷마블 주식회사 블록체인 보상을 통한 분산 컴파일 시스템

Also Published As

Publication number Publication date
MX2019009291A (es) 2019-10-30
EP3554051A1 (en) 2019-10-16
PH12019501852A1 (en) 2020-06-15
TW201832099A (zh) 2018-09-01
AU2019101603A4 (en) 2020-01-23
US11392612B2 (en) 2022-07-19
EP3554051B1 (en) 2021-01-20
KR102284972B1 (ko) 2021-08-03
BR112019016423A2 (pt) 2020-04-07
JP6940615B2 (ja) 2021-09-29
CA3051065C (en) 2020-08-18
CN107040582B (zh) 2020-08-14
MY190059A (en) 2022-03-24
US20190332608A1 (en) 2019-10-31
PL3554051T3 (pl) 2021-07-05
WO2018149345A1 (zh) 2018-08-23
SG11201906738SA (en) 2019-09-27
CA3051065A1 (en) 2018-08-23
TWI682652B (zh) 2020-01-11
ZA201904735B (en) 2020-08-26
BR112019016423B1 (pt) 2021-08-31
ES2859560T3 (es) 2021-10-04
JP2020507866A (ja) 2020-03-12
RU2724136C1 (ru) 2020-06-22
AU2018221097B2 (en) 2020-07-09
AU2018221097A1 (en) 2019-08-01
CN107040582A (zh) 2017-08-11
EP3554051A4 (en) 2020-01-01
US20200167366A1 (en) 2020-05-28
US10747780B2 (en) 2020-08-18

Similar Documents

Publication Publication Date Title
KR102284972B1 (ko) 데이터 처리 방법 및 디바이스
AU2019101567A4 (en) Method and apparatus for consensus verification
TWI695260B (zh) 區塊資料校驗方法和裝置
US11563805B2 (en) Method, apparatus, client terminal, and server for data processing
CN111767144A (zh) 交易数据的交易路由确定方法、装置、设备及系统
CN115129728A (zh) 一种文件校验的方法及装置
US10387578B1 (en) Utilization limiting for nested object queries
WO2021174515A1 (en) Systems and methods for data storage in the expansion of object-based storage systems
TW202008153A (zh) 資料處理方法和裝置、伺服器
CN116166693B (zh) 一种基于密态范围索引的数据查询方法、装置以及设备
CN116366667A (zh) 区块链网络的数据传输方法、装置、电子设备及存储介质
CN116170388A (zh) 一种区块链网络的转发表生成方法及其数据传输方法

Legal Events

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