KR102412780B1 - 하이퍼레저 패브릭 구조에서 피어 단말기에 수신된 블록 데이터를 처리하는 방법 - Google Patents

하이퍼레저 패브릭 구조에서 피어 단말기에 수신된 블록 데이터를 처리하는 방법 Download PDF

Info

Publication number
KR102412780B1
KR102412780B1 KR1020200127062A KR20200127062A KR102412780B1 KR 102412780 B1 KR102412780 B1 KR 102412780B1 KR 1020200127062 A KR1020200127062 A KR 1020200127062A KR 20200127062 A KR20200127062 A KR 20200127062A KR 102412780 B1 KR102412780 B1 KR 102412780B1
Authority
KR
South Korea
Prior art keywords
block
data
task
block data
terminal
Prior art date
Application number
KR1020200127062A
Other languages
English (en)
Other versions
KR20220007481A (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 주식회사 미디움
Priority to PCT/KR2021/008741 priority Critical patent/WO2022010289A1/ko
Publication of KR20220007481A publication Critical patent/KR20220007481A/ko
Application granted granted Critical
Publication of KR102412780B1 publication Critical patent/KR102412780B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0842Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/22Payment schemes or models
    • G06Q20/223Payment schemes or models based on the use of peer-to-peer networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3825Use of electronic signatures
    • 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
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/30Providing cache or TLB in specific location of a processing system
    • G06F2212/304In main memory subsystem
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/45Caching of specific data in cache memory
    • G06F2212/452Instruction code

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • General Engineering & Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Finance (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 하이퍼레저 패브릭 구조에서 피어 단말기에 수신된 블록 데이터를 처리하는 방법에 관한 것이다.
본 발명의 일례에 따른 피어 단말기가 수신된 블록 데이터를 처리하는 방법은 제1, 2 블록 데이터를 수신하여, 제1, 2 페이로드(Payload) 블록을 버퍼 메모리에 저장하는 단계; 제어부가 제1 페이로드 블록을 디코딩하여 제1 페이로드 블록에 대한 제1 디코딩 데이터를 캐시 메모리에 저장하는 제1 임시 저장 단계; 제1 디코딩 데이터를 읽어서, 제1 블록 데이터에 대한 테스크(Task)를 수행하는 제1 테스킹 단계; 제1 테스킹 단계의 종료 전에, 제2 페이로드 블록을 디코딩하여, 제2 페이로드 블록에 대한 제2 디코딩 데이터를 캐시 메모리에 저장하고, 제1 테스킹 단계의 종료 후에, 제2 디코딩 데이터를 읽어서, 제2 블록 데이터에 대한 테스크(Task)를 수행하는 단계를 포함하고, 저장부에는 블록 체인이 저장되되, 블록 체인은 제1 테스킹 단계가 종료된 이후, 제1 디코딩 데이터가 블록 체인에 업데이트되고, 제2 테스킹 단계가 종료된 이후, 제2 디코딩 데이터가 블록 체인에 연결되어 업데이트된다.

Description

하이퍼레저 패브릭 구조에서 피어 단말기에 수신된 블록 데이터를 처리하는 방법{Method for processing a received block data at a peer terminal of Hyperledger Fabric Architecture}
본 발명은 하이퍼레저 패브릭 구조에서 피어 단말기에 수신된 블록 데이터를 처리하는 방법에 관한 것이다.
블록 체인은 누구나 네크워크에 참여할 수 있는 퍼블릭(Public) 블록 체인과, 허락된 대상만 네크워크에 참여할 수 있는 프라이빗(Private) 블록 체인으로 구별될 수 있다.
하이퍼레저 패브릭은 허가형 프라이빗 블록체인(Permissioned Private Blockchain)의 형태를 가지며, 누구나 자유롭게 참여 가능한 퍼블릭 블록체인과 달리, 인증 관리 시스템에 의해 하락된 사용자만이 블록 체인 네트워크에 참여할 수 있다.
따라서, 하이퍼레저 패브릭은 다른 퍼블릭 블록 체인보다 보안성이 뛰어 날 수 있으며, 하이퍼레저 패브릭 네크워크에 참여한 노드들은 이미 시스템에 의해 허가된, 신뢰를 가진 노드로 볼 수 있고, 퍼블릭 블록체인에서 사용하는 악의적인 노드를 검증하기 위한 복잡한 합의 알고리즘 등을 필요로 하지 않고, 단지 원장에 접근하려는 사용자가 허가된 노드인가, 그러한 권한이 있는가, 트랜잭션이 제대로 구성되어 있는가를 검증하는 정도로 충분하다.
이와 같은 하이퍼레저 패브릭 네크워크 구조에서는 모든 노드가 블록체인 형태로 저장되는 동일한 원장으로 정보를 공유할 수 있고, 비즈니스 목적에 맞게 공유하고자 하는 노드 간에 별도의 채널을 생성하여 별도의 원장을 생성하는 것도 가능하다.
이와 같은 하이퍼레저 패브릭 네트워크는 클라이언트(Client) 단말기, 피어(Peer) 단말기 및 오더러(Orderer) 단말기를 포함할 수 있으며, 피어 단말기는 네트워크의 각 노드를 형성하며, 하이퍼레저 패브릭 네트워크에서 인증되고, 참여가 허락된 단말기일 수 있다.
클라이언트 단말기에서는 거래 내용이 포함되는 트랜잭션 정보를 생성하여, 네트워크의 각 피어 단말기로 전송하고, 각 피어 단말기에서는 클라이언트 단말기의 트랜잭션 정보를 인증한 서명 정보를 생성하고, 클라이언트 단말기는 각 트랜잭션 정보에 대한 각 피어 단말기들의 서명 정보를 결합하여 오더러 단말기로 전송할 수 있다.
오더러 단말기에서는 클라이언트 단말기로부터 전송되는 복수의 트랜잭션 정보를 블록화하여 블록 데이터를 생성하고, 생성된 블록 데이터를 각 피어 단말기로 전송할 수 있다.
각 피어 단말기에서는 오더러 단말기로부터 전송되는 블록 데이터를 커밋(Commit)하여 검증한 후, 저장부에 블록 체인 형태로 저장할 수 있다.
미국 공개 US 2020/0034353
본 발명은 하이퍼레저 패브릭 구조에서 피어 단말기에 수신된 블록 데이터를 처리하는 방법을 제공하는데, 그 목적이 있다.
본 발명의 일례에 따른 피어 단말기가 수신된 블록 데이터를 처리하는 방법은, 트랜잭션 정보를 생성하는 적어도 하나의 클라이언트(Client) 단말기, 트랜잭션 정보를 인증하는 서명 정보를 생성하고, 통신부, 버퍼 메모리(buffer memory), 캐시 메모리(Cache memory), 저장부 및 제어부를 포함하는 복수의 피어(Peer) 단말기 및 적어도 하나의 상기 트랜잭션 정보와 상기 복수의 피어 단말기의 서명 정보를 블록화하여 제1, 2 블록 데이터를 생성하는 오더러(Orderer) 단말기를 포함하는 하이퍼레저 패브릭 구조에서, 상기 복수의 피어(Peer) 단말기에서 상기 통신부가 상기 제1 블록 데이터를 상기 오더러 단말기로부터 수신하여, 상기 제1 블록 데이터의 제1 페이로드(Payload) 블록을 상기 버퍼 메모리에 저장하는 제1 수신 단계; 상기 통신부가 상기 제2 블록 데이터의 제2 페이로드 블록을 상기 버퍼 메모리에 저장하는 제2 수신 단계; 상기 제어부가 제1 페이로드 블록을 디코딩하여 상기 제1 페이로드 블록에 대한 제1 디코딩 데이터를 상기 캐시 메모리에 저장하는 제1 임시 저장 단계; 상기 제어부가 상기 제1 디코딩 데이터를 읽어서, 상기 제1 블록 데이터에 대한 적어도 하나의 테스크(Task)를 수행하는 제1 테스킹 단계; 상기 제어부가 상기 제1 테스킹 단계의 종료 전에, 상기 제2 페이로드 블록을 디코딩하여, 상기 제2 페이로드 블록에 대한 제2 디코딩 데이터를 상기 캐시 메모리에 저장하는 제2 임시 저장 단계; 및 상기 제어부가 상기 제1 테스킹 단계의 종료 후에, 상기 제2 디코딩 데이터를 읽어서, 상기 제2 블록 데이터에 대한 적어도 하나의 테스크(Task)를 수행하는 제2 테스킹 단계를 포함하고, 상기 저장부는 블록 체인을 저장하고, 상기 블록 체인은 상기 제1 테스킹 단계가 종료된 이후, 상기 제1 디코딩 데이터가 인코딩되어 상기 블록 체인에 연결되어 업데이트되고, 상기 블록 체인은 상기 제2 테스킹 단계가 종료된 이후, 상기 제2 디코딩 데이터가 인코딩되어 상기 블록 체인에 연결되어 업데이트된다.
상기 제1 테스킹 단계에서의 상기 제1 블록 데이터에 대한 적어도 하나의 테스크는 제1, 2 테스크를 포함하는 복수의 테스크를 포함하고, 상기 제1 테스킹 단계에서 상기 제1 테스크를 수행할 때, 상기 제어부는 상기 캐시 메모리로부터 상기 제1 디코딩 데이터를 읽어서 상기 제1 테스크를 수행하고, 상기 제1 테스킹 단계에서 상기 제2 테스크를 수행할 때, 상기 제어부는 상기 캐시 메모리로부터 상기 제1 디코딩 데이터를 읽어서 상기 제2 테스크를 수행할 수 있다.
상기 제1 테스킹 단계에서의 상기 제1 블록 데이터에 대한 적어도 하나의 테스크는 저장 테스크를 포함하고, 상기 저장 테스크가 수행되면, 상기 제1 디코딩 데이터는 마샬(Marshal)되어 상기 저장부에 업데이트될 수 있다.
상기 저장부는 SSD(Solid State Drive) 및 HDD(Hard Disk Drive) 중 적어도 하나일 수 있다.
상기 버퍼 메모리에 저장되는 상기 제1, 2 블록 데이터 각각은 프로토콜 버퍼(Protobuf) 타입의 데이터 형태를 가질 수 있다.
상기 적어도 하나의 트랜잭션 정보는 거래 정보에 대한 내용을 포함하고,
상기 제1, 2 수신 단계 이전에,
상기 복수의 피어 단말기 각각이 적어도 하나의 클라이언트(Client) 단말기에서 생성되는 각각의 트랜잭션 정보에 대한 인증 요청을 수신받는 단계; 및
상기 수신된 트랜잭션 정보에 대해 인증하는 서명 정보를 생성하여 상기 적어도 하나의 클라이언트 단말기로 전송하는 단계를 더 포함할 수 있다.
상기 인증정보 전송 단계 이후, 상기 적어도 하나의 클라이언트 단말기가 상기 각각의 트랜잭션 정보에 대해 상기 복수의 피어 단말기로부터 전송되는 복수의 서명 정보를 결합하여 상기 오더러(orderer) 단말기로 전송하는 오더러 전송 단계;를 더 포함할 수 있다.
상기 오더러 전송 단계 이후 상기 제1, 2 수신 단계 이전에, 상기 오더러 단말기가 상기 적어도 하나의 클라이언트 단말기로부터 전송되는 상기 복수의 서명 정보가 결합된 각각의 트랜잭션 정보를 순서화하여 상기 제1 블록 데이터를 생성하는 단계; 및 상기 제1 블록 데이터를 상기 복수의 피어 단말기로 전송하는 단계;를 더 포함할 수 있다.
본 발명의 일례에 따른 하이퍼레저 패브릭 구조의 피어 단말기는 오더러(Orderer) 단말기로부터 전송되는 적어도 하나의 트랜잭션 정보와 상기 적어도 하나의 트랜잭션 정보 각각을 인증하는 복수의 서명 정보가 블록화된 제1, 2 블록 데이터를 수신하는 통신부; 수신되는 상기 제1, 2 블록 데이터 각각의 제1, 2 페이로드 블록을 저장하는 버퍼 메모리; 상기 제1, 2 페이로드 블록이 디코딩된 제1, 2 디코딩 데이터가 임시 저장되는 캐시 메모리; 및 상기 제1, 2 페이로드 블록을 디코딩하여 상기 제1, 2 디코딩 데이터로 변환하고, 상기 제1, 2 디코딩 데이터를 읽어서 상기 제1, 2 블록 데이터에 대한 적어도 하나의 테스크를 수행하는 제어부;를 포함하고, 상기 제어부는 상기 제1 페이로드 블록을 디코딩하여 상기 제1 페이로드 블록에 대한 제1 디코딩 데이터를 캐시 메모리(Cache memory)에 저장하는 한 후, 상기 제1 디코딩 데이터를 읽어서, 상기 제1 블록 데이터에 대한 적어도 하나의 테스크(Task)를 수행하는 제1 테스킹 단계를 수행하되, 상기 제1 테스킹 단계의 종료 전에, 상기 제2 페이로드 블록을 디코딩하여, 상기 제2 페이로드 블록에 대한 제2 디코딩 데이터를 상기 캐시 메모리에 저장하고, 상기 제1 테스킹 단계의 종료 후에, 상기 제2 디코딩 데이터를 읽어서, 상기 제2 블록 데이터에 대한 적어도 하나의 테스크(Task)를 수행한다.
블록 체인이 저장되는 저장부;를 더 포함하되, 상기 저장부에는 상기 제1 블록 데이터에 대한 적어도 하나의 테스크(Task)가 종료된 이후, 상기 제1 디코딩 데이터가 상기 저장부의 상기 블록 체인에 연결되어 업데이트되고, 상기 제2 블록 데이터에 대한 적어도 하나의 테스크(Task)가 종료된 이후, 상기 제2 디코딩 데이터가 상기 저장부의 상기 블록 체인에 연결되어 업데이트될 수 있다.
상기 제1 블록 데이터에 대한 적어도 하나의 테스크는 제1, 2 테스크를 포함하는 복수의 테스크를 포함하고, 상기 제어부가 상기 제1 테스크를 수행할 때, 상기 캐시 메모리를 읽어서 상기 제1 테스크를 수행하고, 상기 제2 테스크를 수행할 때, 상기 캐시 메모리를 읽어서 상기 제2 테스크를 수행할 수 있다.
상기 제어부는 상기 버퍼 메모리에 저장된 상기 제1, 2 페이로드 블록을 언마샬(Unmarshal)하여 상기 캐시 메모리에 제1, 2 디코딩 데이터로 저장할 수 있다.
상기 제어부는 상기 제1, 2 디코딩 데이터 각각을 마샬(Marshal)하여 상기 저장부의 블록 체인에 연결하여 업데이트할 수 있다.
상기 저장부는 SSD(Solid State Drive) 및 HDD(Hard Disk Drive) 중 적어도 하나일 수 있다.
상기 버퍼 메모리에 저장되는 상기 제1, 2 블록 데이터 각각은 프로토콜 버퍼(Protobuf) 타입의 데이터 형태를 가질 수 있다.
상기 적어도 하나의 트랜잭션 정보는 거래 정보에 대한 내용을 포함하고, 제어부는 상기 제1, 2 블록 데이터가 수신되기 이전에, 클라이언트(Client) 단말기에서 생성되어 수신되는 트랜잭션 정보에 대한 인증 요청에 대해 인증하는 서명 정보를 생성하여 클라이언트 단말기로 전송할 수 있다.
본 발명의 일례에 따른 하이퍼레저 패브릭 구조에서 피어 단말기에 수신된 블록 데이터를 처리하는 방법은 이전의 테스킹 단계 종료 전에, 제어부가 현재의 페이로드 블록을 미리 디코딩하여 케시 메모리에 저장하도록 하고, 현재의 페이로드 블록을 검증하기 위해 커밋(Commit)을 수행할 때, 캐시 메모리에 저장된 페이로드를 활용하도록 하여 커밋의 처리 단계를 보다 단순화할 수 있고, 피어 단말기의 처리 속도를 보다 향상시킬 수 있다.
도 1은 본 발명의 일례에 따른 하이퍼레저 패브릭 구조를 구성하는 단말기의 일례를 설명하기 위한 도이다.
도 2는 도 1에 도시된 클라이언트 단말기(200), 피어 단말기(100) 및 오더러 단말기(300) 사이의 정보 흐름을 설명하기 위한 도이다.
도 3은 도 2에서 각 피어 단말기(100)의 일례를 설명하기 위한 도이다.
도 4는 도 2에서 각 피어 단말기(100)가 오더러 단말기(300)로부터 블록 데이터를 수신한 후, 수신된 블록 데이터를 저장부(150)에 저장하기 위해 커밋(commit)을 수행하는 방법의 일례를 설명하기 위한 도이다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예들을 상세히 설명한다. 본 발명을 설명하는데 있어서, 해당 분야에 이미 공지된 기술 또는 구성에 대한 구체적인 설명을 부가하는 것이 본 발명의 요지를 불분명하게 할 수 있다고 판단되는 경우에는 상세한 설명에서 이를 일부 생략하도록 한다. 또한, 본 명세서에서 사용되는 용어들은 본 발명의 실시예들을 적절히 표현하기 위해 사용된 용어들로서, 이는 해당 분야의 관련된 사람 또는 관례 등에 따라 달라질 수 있다. 따라서, 본 용어들에 대한 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
여기서 사용되는 전문용어는 단지 특정 실시예를 언급하기 위한 것이며, 본 발명을 한정하는 것을 의도하지 않는다. 여기서 사용되는 단수 형태들은 문구들이 이와 명백히 반대의 의미를 나타내지 않는 한 복수 형태들도 포함한다. 명세서에서 사용되는 ‘포함하는’의 의미는 특정 특성, 영역, 정수, 단계, 동작, 요소 및/또는 성분을 구체화하며, 다른 특정 특성, 영역, 정수, 단계, 동작, 요소, 성분 및/또는 군의 존재나 부가를 제외시키는 것은 아니다.
이하, 첨부된 도면들을 참조하여 본 발명에 대해 설명한다.
도 1은 본 발명의 일례에 따른 하이퍼레저 패브릭 구조를 구성하는 단말기의 일례를 설명하기 위한 도이고, 도 2는 도 1에 도시된 클라이언트 단말기(200), 피어 단말기(100) 및 오더러 단말기(300) 사이의 정보 흐름을 설명하기 위한 도이다.
도 1에 도시된 바와 같이, 본 발명의 일례에 따른 하이퍼레저 패브릭 구조(Hyperledger fabric Architecture)를 구성하는 단말기는 클라이언트(client) 단말기(200), 피어(Peer) 단말기(100) 및 오더러(Orderer) 단말기(300)를 포함할 수 있다. 이와 같은 클라이언트 단말기(200), 피어 단말기(100) 오더러 단말기(300)는 하이퍼레저 패브릭 네트워크의 각 노드(node)를 구성할 수 있다.
클라이언트 단말기(200)는 하이퍼레저 패브릭 네트워크에 접근하기 위해 필요한 노드로, 거래 정보에 대한 내용을 포함하는 트랜잭션(transaction) 정보(Tx)를 생성할 수 있다. 도 1에서는 클라이언트 단말기(200)가 복수 개인 경우를 일례로 도시하였으나, 클라이언트 단말기(200)는 적어도 하나 이상일 수 있고, 클라이언트 단말기(200)가 하나인 경우도 가능하다.
클라이언트 단말기(200)는 스마트 컨트랙트가 설치되거나 호출될 때, 채널을 생성하거나 특정 피어 단말기(100)를 채널에 참가하게 하는 등 하이퍼레저 패브릭 네트워크에서 비즈니스 로직을 수행하기 위한 요청들에 대한 트랜잭션 정보(Tx)를 생성할 수 있다.
이와 같이 클라이언트 단말기(200)는 트랜잭션 정보(Tx)를 생성하여, 복수의 피어 단말기(100) 각각에 전송할 수 있다. 클라이언트 단말기(200)가 복수의 피어 단말기(100)로부터 트랜잭션 정보(Tx)를 인증한 서명 정보를 받으면, 각 트랜잭션 정보(Tx)와 서명 정보를 결합하여 오더러 단말기(300)로 전송할 수 있다.
복수의 피어 단말기(100) 각각은 하이퍼레저 패브릭 구조에서 가장 기본이 되는 노드로, 피어 단말기(100) 내에 원장(ledger)를 가지며, 체인코드(smart contract)를 구비할 수 있다.
이와 같은 복수의 피어 단말기(100) 각각은 수신된 트랜잭션 정보(Tx)를 검증하고 전파할 수 있으며, 오더러 단말기(300)로부터 트랜잭션 정보(Tx)가 블록화된 블록 데이터를 수신하면, 피어 단말기(100)는 블록 체인 형태로 저장된 원장을 업데이트할 수 있다. 이후 블록 체인이 업데이트되면, 피어 단말기(100)는 블록 체인이 업데이트되었다는 정보를 클라이언트 단말기(200)로 전송할 수 있다.
오더러 단말기(300)는 도 1에서는 오더러 단말기(300)가 하나인 경우를 일례로 도시하였으나, 오더러 단말기(300)는 반드시 이에 한정되는 것은 아니고, 적어도 하나 이상일 수 있다.
만약, 오더러 단말기(300)는 복수 개인 경우, 복수의 오더러 단말기(300)가 마치 하나의 서비스 노드처럼 동작될 수도 있다. 일례로 오더러 단말기(300)가 OSN(Ordering Service Node) 형태로 구비될 수 있다.
이와 같은 오더러 단말기(300)는 검증된 트랜잭션 정보(Tx)들을 이용하여, 트랜잭션 정보(Tx)들이 블록화된 블록 데이터를 생성할 수 있다. 즉, 오더러 단말기(300)는 클라이언트들로부터 전송되는 복수의 트랜잭션 정보(Tx)들을 순서화하여, 블록 데이터를 생성할 수 있다. 이와 같이, 오더러 단말기(300)에서 생성된 블록 데이터는 복수의 피어 단말기(100) 각각으로 전송되어, 각 피어 단말기(100)에 구비된 블록 체인에 업데이트될 수 있다.
본 발명의 일례에 따른 하이퍼레저 패브릭 구조(Hyperledger fabric Architecture)에서 적어도 하나의 클라이언트 단말기(200), 복수의 피어 단말기(100) 및 적어도 하나의 오더러 단말기(300)가 동작되는 방법의 일례에 대해 설명하면 다음과 같다.
먼저, 적어도 하나의 클라이언트 단말기(200)는 트랜잭션 정보(Tx)를 생성(S1)하여, 생성된 트랜잭션 정보(Tx)를 복수의 피어 단말기(100)로 전송(S2)하여 트랜잭션 정보(Tx)에 대한 인증을 요청할 수 있다.
복수의 피어 단말기(100) 각각이 적어도 하나의 클라이언트(client) 단말기(200)에서 생성되는 각각의 트랜잭션 정보(Tx)에 대한 인증 요청을 수신받으면, 복수의 피어 단말기(100)는 적어도 하나의 클라이언트 단말기(200)로부터 전송된 트랜잭션 정보(Tx)를 확인하고 검증하여, 수신된 트랜잭션 정보(Tx)를 인증하는 서명 정보를 생성(S3)하고, 적어도 하나의 클라이언트 단말기(200)의 인증 요청에 대한 응답(Response)으로, 서명 정보를 전송(S4)할 수 있다.
이에 따라, 클라이언트 단말기(200)는 각 트랜잭션 정보(Tx)에 대해 복수의 피어 단말기(100)의 개수만큼의 서명 정보를 전송받을 수 있다.
클라이언트 단말기(200)는 복수의 피어 단말기(100)로부터 받은 복수의 서명 정보를 각각의 트랜잭션 정보(Tx)에 결합(S5)하여, 복수의 서명 정보와 함께 트랜잭션 정보(Tx)를 적어도 하나의 오더러 단말기(300)로 전송(S6)할 수 있다.
적어도 하나의 오더러 단말기(300)는 클라이언트 단말기(200)로부터 수신받은 복수의 서명 정보와 트랜잭션 정보(Tx)를 전송받되, 트랜잭션 정보(Tx)를 미리 정해진 개수만큼 클라이언트 단말기(200)로부터 수신 받으면, 수신받은 복수의 트랜잭션 정보(Tx)들을 정렬 및 순서화하고, 하이퍼레저 패브릭 구조의 네트워크 상에서 합의된 알고리즘에 의해, 수신받은 복수의 트랜잭션 정보(Tx)들을 블록화하여 블록 데이터를 생성(S7)할 수 있다. 오더러 단말기(300)는 생성된 블록 데이터를 복수의 피어 단말기(100) 각각으로 전송(S8)할 수 있다.
복수의 피어 단말기(100) 각각은 적어도 하나의 오더러 단말기(300)로부터 블록 데이터를 전송받으면, 블록 데이터를 확인 및 검증(S9)하는 커밋(Commit)을 수행하고, 피어 단말기(100) 내에 블록 체인 형태로 저장되는 원장(Ledger)에 연결하여 블록 체인을 업데이트할 수 있고, 블록 체인이 업데이트되었음을 클라이언트 단말기(200)로 전송할 수 있다.
아울러, 이후에, 복수의 피어 단말기(100) 각각은 클라이언트 단말기(200)로부터 블록 데이터에 대한 요청이 수신(S11)되면, 클라이언트 단말기(200)로 블록 데이터를 전송(S12)할 수 있다.
한편, 본 발명에서는, 복수의 피어 단말기(100) 각각은 오더러 단말기(300)로부터 수신받은 블록 데이터에 대해 미리 전처리 단계를 수행하여 캐시 메모리에 저장한 이후, 캐시 메모리에 저장된 블록 데이터를 이용하여 커밋(Commit)을 수행할 수 있다.
이에 대해, 보다 구체적으로 다음의 도 3 및 도 4를 참조하여 보다 구체적으로 설명한다.
도 3은 도 2에서 각 피어 단말기(100)의 일례를 설명하기 위한 도이고, 도 4는 도 2에서 각 피어 단말기(100)가 오더러 단말기(300)로부터 블록 데이터를 수신한 후, 수신된 블록 데이터를 저장부(150)에 저장하기 위해 커밋(commit)을 수행하는 방법의 일례를 설명하기 위한 도이다.
본 발명의 일례에 따른 복수의 피어 단말기(100) 각각은 도 3에 도시된 바와 같이, 통신부(110), 제어부(120), 버퍼 메모리(buffer memory, 130), 캐시 메모리(cache memory, 140) 및 저장부(150)를 포함할 수 있다.
통신부(110)는 클라이언트 단말기(200), 오더러 단말기(300) 및 다른 피어 단말기(100)와 통신을 수행할 수 있다. 이와 같은 통신부(110)는 클라이언트 단말기(200)로부터 트랜잭션 정보(Tx)를 수신할 수 있으며, 오더러 단말기(300)로부터 적어도 하나의 트랜잭션 정보(Tx)와 복수의 서명 정보가 블록화된 블록 데이터를 수신받을 수 있으며, 피어의 저장부(150)에 블록 체인 형태로 저장되는 원장(ledger)이 업데이트되면, 업데이트 이벤트를 클라이언트 단말기(200)로 전송할 수 있다.
제어부(120)는 엔도저(Endorser, 121) 및 커미터(Committer, 123)를 포함할 수 있다.
엔도저(121)는 클라이언트 단말기(200)에서 생성된 각 트랜잭션 정보(Tx)를 확인하고 인증하여, 각 트랜잭션 정보(Tx)에 대한 서명 정보를 생성할 수 있다. 일례로, 엔도저(121)는 클라이언트 단말기(200)로부터 전송된 각 트랜잭션 정보(Tx)에 대해 체인코드 시뮬레이션을 통해 트랜잭션이 적절한지 판단한 후, 정상적인 트랜잭션으로 판단된 경우, 해당 트랜잭션 정보(Tx)에 대해 인증하는 서명 정보를 생성하여, 통신부(110)를 통하여 클라이언트 단말기(200)로 전송할 수 있다.
커미터(123)는 오더러 단말기(300)로부터 수신받은 블록 데이터를 검증하고, 유효성을 판단하기 위한 복수의 테스크(task)를 수행하여 커밋(commit)을 수행한 후, 유효한 블록 데이터로 판단되는 경우, 블록 데이터를 저장부(150)에 블록 체인 형태로 구비된 원장(Ledger)에 체인 연결하여 업데이트할 수 있다.
아울러, 제어부(120)는 특정 블록 데이터 또는 특정 트랜잭션 정보(Tx)에 대해 클라이언트 단말기(200)로부터 요청을 받으며, 저장부(150)에 저장된 블록 체인에 접근하여, 해당 블록 체인을 읽어, 클라이넌트 단말기로 전송하도록 제어할 수 있다.
버퍼 메모리(130)는 통신부(110)가 클라이언트 단말기(200)로부터 수신받은 블록 데이터의 페이로드(Payload) 블록을 저장할 수 있다. 일례로, 오더러 단말기(300)는 블록 데이터를 전송 속도를 높이기 위하여 직렬화된 데이터 형태인 프로토콜 버퍼(protobuf) 타입으로 블록 데이터를 전송할 수 있으며, 버퍼 메모리(130)는 프로토콜 버퍼(protobuf) 타입의 블록 데이터로부터 헤더와 메타데이터 등이 제외된 페이로드 블록이 프로토콜 버퍼(protobuf) 타입으로 저장될 수 있다.
캐시 메모리(140)는 블록 데이터의 페이로드 블록이 디코딩된 디코딩 데이터가 임시 저장될 수 있다. 일례로, 버퍼 메모리(130)에 수신된 페이로드 블록은 언마샬(Unmarshal)됨으로써 디코딩될 수 있고, 언마샬(Unmarshal)된 디코딩 데이터가 캐시 메모리(140)에 임시 저장될 수 있다.
커미터(123)는 이와 같은 캐시 메모리(140)에 저장된 디코딩 데이터를 이용하여, 각 블록에 포함되는 복수의 트랜잭션 정보(Tx) 각각에 대해 확인하고 검증하는 복수의 테스크(task)를 수행할 수 있다.
캐시 메모리(140)에 저장된 각 블록 데이터에 대한 디코딩 데이터의 검증이 완료되어, 블록 체인이 업데이트되면, 캐시 메모리(140)에 임시 저장되었던, 디코딩 데이터는 삭제될 수 있다.
저장부(150)는 SSD(Solid State Drive) 및 HDD(Hard Disk Drive) 중 적어도 하나의 형태로 구비될 수 있으며, 저장부(150)에는 원장(ledger)이 블록 체인 형태로 저장될 수 있다. 따라서, 캐시 메모리(140)에 저장되었던 디코딩 데이터에 대한 검증 작업(Task)이 완료되면, 디코딩 데이터가 인코딩되고 블록 체인에 체인 연결됨으로써, 블록 체인이 업데이트될 수 있다. 여기서, 일례로, 캐시 메모리(140)에 저장되었던 디코딩 데이터는 마샬(Marshal)됨으로써 인코딩될 수 있고, 저장부(150)에는 디코딩 데이터가 마샬(Marshal)된 데이터 형태로 블록 체인에 체인 연결되어 업데이트될 수 있다.
도 4에 도시된 바와 같이, 각 피어 단말기(100)가 오더러 단말기(300)로부터 블록 데이터(BL)를 수신한 후, 수신된 블록 데이터(BL)를 저장부(150)에 저장하기 위해 커밋(commit)을 수행하는 방법은 제1, 2 수신 단계(S110A, S110B), 제1, 2 임시 저장 단계(S120A, S120B), 제1, 2 테스킹 단계(S130A, S130B)를 포함할 수 있다.
일례로, 복수의 피어 단말기(100) 각각은 오더러 단말기(300)로부터 제1, 2 블록 데이터(BL1, BL2)를 수신받을 수 있다.
복수의 피어 단말기(100) 각각이 제1, 2 블록 데이터(BL1, BL2)를 수신받으면, 복수의 피어 단말기(100) 각각의 통신부(110)는 제1 수신 단계(S110A)에서, 오더러 단말기(300)로부터 수신된 제1 블록 데이터(BL1)의 제1 페이로드 블록(PLB1)을 버퍼 메모리(130)에 저장하고, 제2 수신 단계(S110B)에서 오더러 단말기(300)로부터 수신된 제2 블록 데이터(BL2)의 제2 페이로드 블록(PLB2)을 버퍼 메모리(130)에 저장할 수 있다.
이와 같은 제1, 2 수신 단계(S110A, S110B)에서 버퍼 메모리(130)에 저장되는 제1, 2 블록 데이터(BL1, BL2) 각각은 프로토콜 버퍼(Protobuf) 타입의 데이터 형태를 가질 수 있다.
일례로, 오더러 단말기(300)는 복수의 피어 단말기(100) 각각으로 제1, 2 블록 데이터(BL1, BL2)를 프로토콜 버퍼(Protobuf) 타입의 데이터 형태로 전송할 수 있으며, 각 피어 단말기(100) 각각은 프로토콜 버퍼(Protobuf) 타입의 데이터 형태에서 헤더와 메타데이터 등을 제거하여, 제1, 2 블록 데이터(BL1, BL2)의 실질적인 데이터인 제1, 2 페이로드 블록(PLB1, PLB2)이 버퍼 메모리(130)에 저장될 수 있다.
제1 임시 저장 단계(S120A)에서는 제어부(120)가 제1 페이로드 블록(PLB1)을 디코딩하여 제1 페이로드 블록(PLB1)에 대한 제1 디코딩 데이터(DD1)를 캐시 메모리(140)에 저장할 수 있다.
이와 같은 제1 임시 저장 단계(S120A)가 제1 페이로드 블록(PLB1)이 디코딩된 제1 디코딩 데이터(DD1)가 캐시 메모리(140)에 저장되는 것에만 한정되는 것은 아니고, 제1 페이로드 블록(PLB1)이 가볍게 인코딩되어 캐시 메모리(140)에 저장되는 것도 가능하다. 이와 같은 경우, 캐시 메모리(140)에 저장된 제1 페이로드 블록(PLB1)이 인코딩된 수준은 제1 페이로드 블록(PLB1)이 저장부(150)에 블록 체인 형태로 저장될 때, 인코딩된 수준보다 낮은 수준일 수 있다.이와 같은 제1 임시 저장 단계(S120A)는 커미터(123)가 제1 블록 데이터(BL1)를 커밋(commit)하기 위한 전처리(Pre-processing) 과정일 수 있으며, 일례로, 제1 임시 저장 단계(S120A)에서는 제어부(120)가 제1 페이로드 블록(PLB1)을 언마샬(Unmarshal)함으로써, 제1 페이로드 블록(PLB1)이 디코딩될 수 있다. 그러나, 본 발명이 반드시 언마샬(Unmarshal)에만 한정되는 것은 아니다.
제1 테스킹 단계(S130A)는 캐시 메모리(140)에 제1 페이로드 블록(PLB1)에 대한 디코딩 작업이 완료된 이후 수행될 수 있으며, 제1 테스킹 단계(S130A)에서는 제어부(120)가 캐시 메모리(140)에 저장된 제1 디코딩 데이터(DD1)를 읽어서, 제1 블록 데이터(BL1)에 대한 적어도 하나의 테스크(Task)를 수행할 수 있다.
예를 들어, 제1 테스킹 단계(S130A)에서의 제1 블록 데이터(BL1)에 대한 적어도 하나의 테스크는 제1, 2 테스크(Task 1, Task2)를 포함하는 복수의 테스크를 포함할 수 있다. 예를 들어, 제1, 2 테스크(Task 1, Task2)는 제1 블록 데이터(BL1)에 포함되는 각 트랜잭션 정보(Tx)에 대한 확인 및 검증 작업 등을 포함할 수 있다. 이와 같은 제1 테스킹 단계(S130A)는 제어부(120)에 포함된 커미터(123)에 의해 수행될 수 있다.
제1 테스킹 단계(S130A)에서 제1 테스크(Task1)를 수행할 때, 제어부(120)는 캐시 메모리(140)로부터 제1 디코딩 데이터(DD1)를 읽어서 제1 테스크(Task1)를 수행하고, 제1 테스킹 단계(S130A)에서 제2 테스크(Task2)를 수행할 때, 제어부(120)는 캐시 메모리(140)로부터 제1 디코딩 데이터(DD1)를 읽어서 제2 테스크(Task1)를 수행할 수 있다.
이와 같이, 제1 테스킹 단계(S130A)에서 복수의 테스크(Task1 ~ Task5)가 수행될 때, 커미터(123)는 캐시 메모리(140)로부터 제1 디코딩 데이터(DD1)를 읽어서 복수의 테스크(Task1 ~ Task5)를 수행할 수 있다.
이와 같은 제1 테스킹 단계(S130A)는 제1 블록 데이터(BL1)에 대한 적어도 하나의 테스크는 저장 테스크를 포함할 수 있으며, 저장 테스크가 수행되면, 제1 디코딩 데이터(DD1)는 마샬(Marshal)되어 저장부(150)에 업데이트될 수 있다. 이와 같은 저장 테스크는 커미터(123)가 제1 블록 데이터(BL1)에 대해 수행하는 마지막 테스크일 수 있다.
이에 따라, 제1 테스킹 단계(S130A)가 종료되면, 캐시 메모리(140)에 저장된 제1 디코딩 데이터(DD1)가 인코딩된 제1 블록 데이터(B1)가 기존의 블록 체인에 연결되어 업데이트된 상태일 수 있다.
제2 임시 저장 단계(S120B)에서는 제어부(120)가 제1 테스킹 단계(S130A)의 종료 전에, 제2 페이로드 블록(PLB2)을 디코딩하여, 제2 페이로드 블록(PLB2)에 대한 제2 디코딩 데이터(DD2)를 캐시 메모리(140)에 저장할 수 있다.
이와 같은 제2 임시 저장 단계(S120B)가 제2 페이로드 블록(PLB2)이 디코딩된 제2 디코딩 데이터(DD2)가 캐시 메모리(140)에 저장되는 것에만 한정되는 것은 아니고, 제2 페이로드 블록(PLB2)이 가볍게 인코딩되어 캐시 메모리(140)에 저장되는 것도 가능하다. 이와 같은 경우, 캐시 메모리(140)에 저장된 제2 페이로드 블록(PLB2)이 인코딩된 수준은 제2 페이로드 블록(PLB2)이 저장부(150)에 블록 체인 형태로 저장될 때, 인코딩된 수준보다 낮은 수준일 수 있다.
즉, 제2 임시 저장 단계(S120B)는 커미터(123)가 제2 블록 데이터(BL2)를 커밋(commit)하기 위한 전처리(Pre-processing) 과정일 수 있으며, 제1 테스킹 단계(S130A)가 수행되는 중간에 제어부(120)에 의해 실행될 수 있다. 이와 같은 제2 임시 저장 단계(S120B)도 제어부(120)가 제2 페이로드 블록(PLB2)을 언마샬(Unmarshal)함으로써, 제2 페이로드 블록(PLB2)이 디코딩되어, 디코딩된 제2 디코딩 데이터(DD2)가 캐시 메모리(140)에 저장될 수 있다.
일례로, 제1 테스킹 단계(S130A)에서, 커미터(123)가 제1 테스크(Task1) 내지 제5 테스트(Task 5)를 수행하는 중간에, 제어부(120)가 제2 임시 저장 단계(S120B)를 수행하여, 제2 블록 데이터(BL2)의 제2 페이로드 블록(PLB2)에 대한 전처리(Pre-processing)를 수행하여, 제2 페이로드 블록(PLB2) 전체가 디코딩된 제2 디코딩 데이터(DD2)를 캐시 메모리(140)에 저장할 수 있다.
이에 따라, 제2 임시 저장 단계(S120B)는 제1 테스킹 단계(S130A)의 복수의 테스크(Task1~Task5)가 종료하기 전에 미리 수행될 수 있다.
제2 테스킹 단계(S130B)에서는 제어부(120)가 제1 테스킹 단계(S130A)의 종료 후에, 순차적으로 캐시 메모리(140)에 저장된 제2 디코딩 데이터(DD2)를 읽어서, 제2 블록 데이터(BL2)에 대한 적어도 하나의 테스크(Task)를 수행할 수 있다. 도 4에서는 제2 테스킹 단계(S130B)에서 3개의 테스크(Task1 ~ Task3)가 수행되는 경우를 일례로 도시하였다.
제2 테스킹 단계(S130B)가 종료되면, 제2 디코딩 데이터(DD2)가 인코딩된 제2 블록 데이터(B2)가 제1 블록 데이터(B1)를 포함하는 블록 체인에 연결되어 업데이트된 상태일 수 있다.
이와 같이, 본 발명은 커미터(123)가 커밋을 수행하기 위해 복수의 테스크 각각을 수행할 때마다, 매번 버퍼 메모리(130)로부터 페이로드 데이터를 디코딩하여 캐시 메모리(140)에 저장하는 전처리(Pre-processing) 과정을 수행하는 것이 아니라, 커밋할 페이로드 블록 전체를 캐시 메모리(140)에 디코딩하여 미리 저장하여 전처리(Pre-processing) 과정을 모두 미리 수행한 이후, 커미터(123)가 캐시 메모리(140)에 저장된 디코딩 데이터를 이용하여 복수의 테스크를 수행하도록 함으로써, 커미터(123)가 블록 데이터를 확인하거나 검증하는 복수의 테스크를 수행할 때, 매번 페이로드 블록을 디코딩할 필요가 없어, 피어 단말기(100)의 처리 속도를 보다 향상시킬 수 있다.
본 발명의 각 실시예에 개시된 기술적 특징들은 해당 실시예에만 한정되는 것은 아니고, 서로 양립 불가능하지 않은 이상, 각 실시예에 개시된 기술적 특징들은 서로 다른 실시예에 병합되어 적용될 수 있다.
따라서, 각 실시예에서는 각각의 기술적 특징을 위주로 설명하지만, 각 기술적 특징이 서로 양립 불가능하지 않은 이상, 서로 병합되어 적용될 수 있다.
본 발명은 상술한 실시예 및 첨부한 도면에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자의 관점에서 다양한 수정 및 변형이 가능할 것이다. 따라서 본 발명의 범위는 본 명세서의 청구범위뿐만 아니라 이 청구범위와 균등한 것들에 의해 정해져야 한다.
100: 피어 단말기(peer terminal)
110: 통신부(communication unit)
120: 제어부(control unit)
121: 엔도저(Endozer)
123: 커미터(committer)
130: 버퍼 메모리(buffer memory)
140: 캐시 메모리(cache memory)
150: 저장부(storage unit)
200: 클라이언트 단말기(client terminal)
300: 오더러 단말기(orderer terminal)

Claims (16)

  1. 트랜잭션 정보를 생성하는 적어도 하나의 클라이언트(Client) 단말기, 트랜잭션 정보를 인증하는 서명 정보를 생성하고, 통신부, 버퍼 메모리(buffer memory), 캐시 메모리(Cache memory), 저장부 및 제어부를 포함하는 복수의 피어(Peer) 단말기 및 적어도 하나의 상기 트랜잭션 정보와 상기 복수의 피어 단말기의 서명 정보를 블록화하여 제1, 2 블록 데이터를 생성하는 오더러(Orderer) 단말기를 포함하는 하이퍼레저 패브릭 구조에서 상기 피어 단말기가 수신된 블록 데이터를 처리하는 방법에 있어서,
    상기 복수의 피어(Peer) 단말기에서 상기 통신부가 상기 제1 블록 데이터를 상기 오더러 단말기로부터 수신하여, 상기 제1 블록 데이터의 제1 페이로드(Payload) 블록을 상기 버퍼 메모리에 저장하는 제1 수신 단계;
    상기 통신부가 상기 제2 블록 데이터의 제2 페이로드 블록을 상기 버퍼 메모리에 저장하는 제2 수신 단계;
    상기 제어부가 제1 페이로드 블록을 디코딩하여 상기 제1 페이로드 블록에 대한 제1 디코딩 데이터를 상기 캐시 메모리에 저장하는 제1 임시 저장 단계;
    상기 제어부가 상기 제1 디코딩 데이터를 읽어서, 상기 제1 블록 데이터에 대한 적어도 하나의 테스크(Task)를 수행하는 제1 테스킹 단계;
    상기 제어부가 상기 제1 테스킹 단계의 종료 전에, 상기 제2 페이로드 블록을 디코딩하여, 상기 제2 페이로드 블록에 대한 제2 디코딩 데이터를 상기 캐시 메모리에 저장하는 제2 임시 저장 단계; 및
    상기 제어부가 상기 제1 테스킹 단계의 종료 후에, 상기 제2 디코딩 데이터를 읽어서, 상기 제2 블록 데이터에 대한 적어도 하나의 테스크(Task)를 수행하는 제2 테스킹 단계를 포함하고,
    상기 저장부는 블록 체인을 저장하고,
    상기 블록 체인은 상기 제1 테스킹 단계가 종료된 이후, 상기 제1 디코딩 데이터가 인코딩되어 상기 블록 체인에 연결되어 업데이트되고,
    상기 블록 체인은 상기 제2 테스킹 단계가 종료된 이후, 상기 제2 디코딩 데이터가 인코딩되어 상기 블록 체인에 연결되어 업데이트되는
    하이퍼레저 패브릭 구조에서 피어 단말기에 수신된 블록 데이터를 처리하는 방법.
  2. 제1 항에 있어서,
    상기 제1 테스킹 단계에서의 상기 제1 블록 데이터에 대한 적어도 하나의 테스크는 제1, 2 테스크를 포함하는 복수의 테스크를 포함하고,
    상기 제1 테스킹 단계에서 상기 제1 테스크를 수행할 때, 상기 제어부는 상기 캐시 메모리로부터 상기 제1 디코딩 데이터를 읽어서 상기 제1 테스크를 수행하고,
    상기 제1 테스킹 단계에서 상기 제2 테스크를 수행할 때, 상기 제어부는 상기 캐시 메모리로부터 상기 제1 디코딩 데이터를 읽어서 상기 제2 테스크를 수행하는
    하이퍼레저 패브릭 구조에서 피어 단말기에 수신된 블록 데이터를 처리하는 방법.
  3. 제1 항에 있어서,
    상기 제1 테스킹 단계에서의 상기 제1 블록 데이터에 대한 적어도 하나의 테스크는 저장 테스크를 포함하고,
    상기 저장 테스크가 수행되면, 상기 제1 디코딩 데이터는 마샬(Marshal)되어 상기 저장부에 업데이트되는
    하이퍼레저 패브릭 구조에서 피어 단말기에 수신된 블록 데이터를 처리하는 방법.
  4. 제1 항에 있어서,
    상기 저장부는 SSD(Solid State Drive) 및 HDD(Hard Disk Drive) 중 적어도 하나인
    하이퍼레저 패브릭 구조에서 피어 단말기에 수신된 블록 데이터를 처리하는 방법.
  5. 제1 항에 있어서,
    상기 버퍼 메모리에 저장되는 상기 제1, 2 블록 데이터 각각은 프로토콜 버퍼(Protobuf) 타입의 데이터 형태를 갖는
    하이퍼레저 패브릭 구조에서 피어 단말기에 수신된 블록 데이터를 처리하는 방법.
  6. 제1 항에 있어서,
    상기 적어도 하나의 트랜잭션 정보는 거래 정보에 대한 내용을 포함하고,
    상기 제1, 2 수신 단계 이전에,
    상기 복수의 피어 단말기 각각이 적어도 하나의 클라이언트(Client) 단말기에서 생성되는 각각의 트랜잭션 정보에 대한 인증 요청을 수신받는 단계; 및
    상기 수신된 트랜잭션 정보에 대해 인증하는 서명 정보를 생성하여 상기 적어도 하나의 클라이언트 단말기로 전송하는 단계를 더 포함하는
    하이퍼레저 패브릭 구조에서 피어 단말기에 수신된 블록 데이터를 처리하는 방법.
  7. 제6 항에 있어서,
    상기 서명 정보를 전송하는 단계 이후, 상기 적어도 하나의 클라이언트 단말기가 상기 각각의 트랜잭션 정보에 대해 상기 복수의 피어 단말기로부터 전송되는 복수의 서명 정보를 결합하여 상기 오더러(orderer) 단말기로 전송하는 오더러 전송 단계;를 더 포함하는
    하이퍼레저 패브릭 구조에서 피어 단말기에 수신된 블록 데이터를 처리하는 방법.
  8. 제7 항에 있어서,
    상기 오더러 전송 단계 이후 상기 제1, 2 수신 단계 이전에,
    상기 오더러 단말기가 상기 적어도 하나의 클라이언트 단말기로부터 전송되는 상기 복수의 서명 정보가 결합된 각각의 트랜잭션 정보를 순서화하여 상기 제1 블록 데이터를 생성하는 단계; 및
    상기 제1 블록 데이터를 상기 복수의 피어 단말기로 전송하는 단계;를 더 포함하는
    하이퍼레저 패브릭 구조에서 피어 단말기에 수신된 블록 데이터를 처리하는 방법.
  9. 오더러(Orderer) 단말기로부터 전송되는 적어도 하나의 트랜잭션 정보와 상기 적어도 하나의 트랜잭션 정보 각각을 인증하는 복수의 서명 정보가 블록화된 제1, 2 블록 데이터를 수신하는 통신부;
    수신되는 상기 제1, 2 블록 데이터 각각의 제1, 2 페이로드 블록을 저장하는 버퍼 메모리;
    상기 제1, 2 페이로드 블록이 디코딩된 제1, 2 디코딩 데이터가 임시 저장되는 캐시 메모리; 및
    상기 제1, 2 페이로드 블록을 디코딩하여 상기 제1, 2 디코딩 데이터로 변환하고, 상기 제1, 2 디코딩 데이터를 읽어서 상기 제1, 2 블록 데이터에 대한 적어도 하나의 테스크를 수행하는 제어부;를 포함하고,
    상기 제어부는
    상기 제1 페이로드 블록을 디코딩하여 상기 제1 페이로드 블록에 대한 제1 디코딩 데이터를 캐시 메모리(Cache memory)에 저장한 후, 상기 제1 디코딩 데이터를 읽어서, 상기 제1 블록 데이터에 대한 적어도 하나의 테스크(Task)를 수행하는 제1 테스킹 단계를 수행하되,
    상기 제1 테스킹 단계의 종료 전에, 상기 제2 페이로드 블록을 디코딩하여, 상기 제2 페이로드 블록에 대한 제2 디코딩 데이터를 상기 캐시 메모리에 저장하고,
    상기 제1 테스킹 단계의 종료 후에, 상기 제2 디코딩 데이터를 읽어서, 상기 제2 블록 데이터에 대한 적어도 하나의 테스크(Task)를 수행하는
    하이퍼레저 패브릭 구조의 피어 단말기.
  10. 제9 항에 있어서,
    블록 체인이 저장되는 저장부;를 더 포함하되,
    상기 저장부에는
    상기 제1 블록 데이터에 대한 적어도 하나의 테스크(Task)가 종료된 이후, 상기 제1 디코딩 데이터가 상기 저장부의 상기 블록 체인에 연결되어 업데이트되고,
    상기 제2 블록 데이터에 대한 적어도 하나의 테스크(Task)가 종료된 이후, 상기 제2 디코딩 데이터가 상기 저장부의 상기 블록 체인에 연결되어 업데이트되는
    하이퍼레저 패브릭 구조의 피어 단말기.
  11. 제10 항에 있어서,
    상기 제1 블록 데이터에 대한 적어도 하나의 테스크는 제1, 2 테스크를 포함하는 복수의 테스크를 포함하고,
    상기 제어부가
    상기 제1 테스크를 수행할 때, 상기 캐시 메모리를 읽어서 상기 제1 테스크를 수행하고,
    상기 제2 테스크를 수행할 때, 상기 캐시 메모리를 읽어서 상기 제2 테스크를 수행하는
    하이퍼레저 패브릭 구조의 피어 단말기.
  12. 제10 항에 있어서,
    상기 제어부는
    상기 버퍼 메모리에 저장된 상기 제1, 2 페이로드 블록을 언마샬(Unmarshal)하여 상기 캐시 메모리에 제1, 2 디코딩 데이터로 저장하는
    하이퍼레저 패브릭 구조의 피어 단말기.
  13. 제10 항에 있어서,
    상기 제어부는 상기 제1, 2 디코딩 데이터 각각을 마샬(Marshal)하여 상기 저장부의 블록 체인에 연결하여 업데이트하는
    하이퍼레저 패브릭 구조의 피어 단말기.
  14. 제10 항에 있어서,
    상기 저장부는 SSD(Solid State Drive) 및 HDD(Hard Disk Drive) 중 적어도 하나인
    하이퍼레저 패브릭 구조의 피어 단말기.
  15. 제9 항에 있어서,
    상기 버퍼 메모리에 저장되는 상기 제1, 2 블록 데이터 각각은 프로토콜 버퍼(Protobuf) 타입의 데이터 형태를 갖는
    하이퍼레저 패브릭 구조의 피어 단말기.
  16. 제9 항에 있어서,
    상기 적어도 하나의 트랜잭션 정보는 거래 정보에 대한 내용을 포함하고,
    제어부는 상기 제1, 2 블록 데이터가 수신되기 이전에,
    클라이언트(Client) 단말기에서 생성되어 수신되는 트랜잭션 정보에 대한 인증 요청에 대해 인증하는 서명 정보를 생성하여 클라이언트 단말기로 전송하는
    하이퍼레저 패브릭 구조의 피어 단말기.
KR1020200127062A 2020-07-10 2020-09-29 하이퍼레저 패브릭 구조에서 피어 단말기에 수신된 블록 데이터를 처리하는 방법 KR102412780B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/KR2021/008741 WO2022010289A1 (ko) 2020-07-10 2021-07-08 하이퍼레저 패브릭 구조에서 피어 단말기에 수신된 블록 데이터를 처리하는 방법

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020200085735 2020-07-10
KR20200085735 2020-07-10

Publications (2)

Publication Number Publication Date
KR20220007481A KR20220007481A (ko) 2022-01-18
KR102412780B1 true KR102412780B1 (ko) 2022-06-24

Family

ID=80052198

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200127062A KR102412780B1 (ko) 2020-07-10 2020-09-29 하이퍼레저 패브릭 구조에서 피어 단말기에 수신된 블록 데이터를 처리하는 방법

Country Status (1)

Country Link
KR (1) KR102412780B1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190354397A1 (en) 2018-05-15 2019-11-21 International Business Machines Corporation Prioritization in a permissioned blockchain
WO2020035092A2 (en) 2019-11-13 2020-02-20 Alipay (Hangzhou) Information Technology Co., Ltd. Blockchain data storage based on error correction code for permissioned blockchain network

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11169985B2 (en) 2018-07-27 2021-11-09 Oracle International Corporation System and method for supporting SQL-based rich queries in hyperledger fabric blockchains

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190354397A1 (en) 2018-05-15 2019-11-21 International Business Machines Corporation Prioritization in a permissioned blockchain
WO2020035092A2 (en) 2019-11-13 2020-02-20 Alipay (Hangzhou) Information Technology Co., Ltd. Blockchain data storage based on error correction code for permissioned blockchain network

Also Published As

Publication number Publication date
KR20220007481A (ko) 2022-01-18

Similar Documents

Publication Publication Date Title
US10783260B2 (en) Method for providing simplified account registration service and user authentication service, and authentication server using same
WO2020134942A1 (zh) 身份核实方法及其系统
US9699257B2 (en) Online business method, system and apparatus based on open application programming interface
RU2638741C2 (ru) Способ и система аутентификации пользователя посредством мобильного устройства с применением сертификатов
CN108259438B (zh) 一种基于区块链技术的认证的方法和装置
WO2017107976A1 (zh) 用于授权访问的客户端装置、服务器装置和访问控制系统
US20180013765A1 (en) Cross platform social networking authentication system
US9401911B2 (en) One-time password certificate renewal
CN112651011B (zh) 运维系统登录验证方法、装置、设备以及计算机存储介质
CN110235410A (zh) 使用基于utxo的协议的区块链数据库并通过基于pki的认证取代用户的登录的方法及利用其的服务器
EP2545676A1 (en) System and method for using a portable security device to cryptographically sign a document in response to signature requests from a relying party to a digital signature service
JP5940671B2 (ja) Vpn接続認証システム、ユーザ端末、認証サーバ、生体認証結果証拠情報検証サーバ、vpn接続サーバ、およびプログラム
JP7318108B2 (ja) 装置への安全な資格情報転送を認証するための方法およびシステム
US20140137265A1 (en) System and Method For Securing Critical Data In A Remotely Accessible Database
CN110069909A (zh) 一种免密登录第三方系统的方法及装置
KR20160018554A (ko) 신뢰 및 비신뢰 플랫폼에 걸쳐 인터넷 액세스가능 애플리케이션 상태를 로밍하는 기법
CN113904821A (zh) 一种身份认证方法及装置、可读存储介质
US20230403154A1 (en) Verifier credential determination by a registrant
CN111353780B (zh) 授权验证方法、装置及存储介质
CN113014576A (zh) 一种服务权限控制方法、装置、服务器及存储介质
KR102412780B1 (ko) 하이퍼레저 패브릭 구조에서 피어 단말기에 수신된 블록 데이터를 처리하는 방법
RU2589333C2 (ru) Ограничиваемая удаленной частью модель делегирования
CN111988313B (zh) 用于区块链的数据处理方法、装置、系统和介质
KR102392150B1 (ko) 하이퍼레저 패브릭 구조에서 피어 단말기가 블록 데이터를 클라이언트 단말기로 전송하는 방법
CN115967508A (zh) 数据访问控制方法及装置、设备、存储介质、程序产品

Legal Events

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