KR102275389B1 - 블록 동기화 과정 생략 및 원격 저장소 제공을 위한 분산파일시스템 활용 블록 데이터 매핑 방법 및 노드 장치 - Google Patents

블록 동기화 과정 생략 및 원격 저장소 제공을 위한 분산파일시스템 활용 블록 데이터 매핑 방법 및 노드 장치 Download PDF

Info

Publication number
KR102275389B1
KR102275389B1 KR1020190131180A KR20190131180A KR102275389B1 KR 102275389 B1 KR102275389 B1 KR 102275389B1 KR 1020190131180 A KR1020190131180 A KR 1020190131180A KR 20190131180 A KR20190131180 A KR 20190131180A KR 102275389 B1 KR102275389 B1 KR 102275389B1
Authority
KR
South Korea
Prior art keywords
node
new node
block data
file system
distributed file
Prior art date
Application number
KR1020190131180A
Other languages
English (en)
Other versions
KR20210047503A (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 KR1020190131180A priority Critical patent/KR102275389B1/ko
Publication of KR20210047503A publication Critical patent/KR20210047503A/ko
Application granted granted Critical
Publication of KR102275389B1 publication Critical patent/KR102275389B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/184Distributed file systems implemented as replicated file system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1824Distributed file systems implemented using Network-attached Storage [NAS] architecture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • 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/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • 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

Abstract

블록 동기화 과정 생략 및 원격 저장소 제공을 위한 분산파일시스템 활용 블록 데이터 매핑 방법 및 노드 장치가 개시되며, 본원의 일 실시예에 따른 분산파일시스템 활용 블록 데이터 매핑 방법은, (a) 상기 블록체인 네트워크의 참여 노드가, 자신의 로컬 스토리지가 자신의 블록체인 데이터 이외에 분산파일시스템에 포함되는 블록체인 데이터 중 일부를 저장 가능한 사이즈인 것으로 판단되면, 상기 분산파일시스템에 포함되는 블록체인 데이터 중 일부의 복사본을 자신의 로컬 스토리지에 저장하여 상기 분산파일시스템의 일부를 이루는 단계 및 (b) 상기 참여 노드가, 상기 복사본 중 매핑되지 않은 블록 데이터의 적어도 일부를 매핑할 신규 노드를 발견하면, 상기 신규 노드에 상기 복사본 중 매핑되지 않은 블록 데이터의 적어도 일부를 매핑하는 단계를 포함하고, 상기 (b) 단계에 의해, 상기 신규 노드는 상기 매핑되지 않은 블록 데이터의 적어도 일부를 매핑 방식에 의해 소유하게 되는 것일 수 있다.

Description

블록 동기화 과정 생략 및 원격 저장소 제공을 위한 분산파일시스템 활용 블록 데이터 매핑 방법 및 노드 장치{BLOCK CHAIN DATA MAPPING METHOD AND NODE DEVICE USING DISTRIBUTED FILE SYSTEM TO OMIT BLOCK SYNC PROCESS AND TO PROVIDE REMOTE STORAGE}
본원은 블록 동기화 과정 생략 및 원격 저장소 제공을 위한 분산파일시스템 활용 블록 데이터 매핑 방법 및 노드 장치에 관한 것이다.
암호화폐의 등장 이후, P2P 분산 컴퓨팅을 기반으로 데이터의 보안성을 보장하고 투명한 관리를 가능하게 하며, 4차 산업의 핵심 기술로 평가되는 블록체인 기술은 탈중앙화된 네트워크에 견고한 보안을 제공한다는 점에서 지속적으로 각광을 받고 있으나, 각 노드가 블록체인 데이터를 전부 저장하고 있어야 네트워크에 참여할 수 있다는 특성상 블록동기화 과정에서 각 노드에 가해지는 시간적, 공간적 부담이 큰 상황이다.
이와 관련하여, 전체 블록데이터를 저장하지 않고 블록 헤더만 저장하는 ‘라이트 노드’와 같은 솔루션이 도입된 바 있으나, 이러한 방식의 경우 데이터 전부를 저장하는 ‘풀 노드’의 작은 서버화로 이어져 블록체인 기술의 탈중앙성을 저해시킬 수 있다는 한계가 있다.
또한, 네트워크에 참여하기 위해 블록데이터를 각 노드의 로컬 스토리지에 저장하고 있어야 하는 블록체인 기술의 특성상 블록체인 데이터가 커짐에 따라 각 노드들의 스토리지에 가해지는 부담이 커지게 된다. 또한 노드들의 네트워크 참여 또는 탈퇴가 빈번히 발생하는 블록체인 네트워크에 있어 블록데이터 동기화 프로세스는 참여 속도 저해의 큰 원인이 되며, 이러한 문제는 특히나 하드웨어 성능이 한정된 드론과 같은 임베디드 시스템에서 더욱 문제가 될 수 있다.
본원의 배경이 되는 기술은 한국등록특허공보 제10-1950912호에 개시되어 있다.
본원은 전술한 종래 기술의 문제점을 해결하기 위한 것으로서, 새로운 노드의 블록체인 네트워크 참여시, 블록 동기화 과정을 생략하여 블록 동기화에 필요한 시간적, 공간적 부담을 경감할 수 있는 블록 데이터 매핑 방법 및 노드 장치를 제공하려는 것을 목적으로 한다.
본원은 전술한 종래 기술의 문제점을 해결하기 위한 것으로서, 분산파일시스템을 통해 드론, 임베디드 시스템 등 스토리지 용량이 한정된 노드에 원격 저장소를 제공할 수 있는 블록 데이터 매핑 방법 및 노드 장치를 제공하려는 것을 목적으로 한다.
다만, 본원의 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제들로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.
상기한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본원의 일 실시예에 따른 분산파일시스템 활용 블록 데이터 매핑 방법은, (a) 상기 블록체인 네트워크의 참여 노드가, 자신의 로컬 스토리지가 자신의 블록체인 데이터 이외에 분산파일시스템에 포함되는 블록체인 데이터 중 일부를 저장 가능한 사이즈인 것으로 판단되면, 상기 분산파일시스템에 포함되는 블록체인 데이터 중 일부의 복사본을 자신의 로컬 스토리지에 저장하여 상기 분산파일시스템의 일부를 이루는 단계 및 (b) 상기 참여 노드가, 상기 복사본 중 매핑되지 않은 블록 데이터의 적어도 일부를 매핑할 신규 노드를 발견하면, 상기 신규 노드에 상기 복사본 중 매핑되지 않은 블록 데이터의 적어도 일부를 매핑하는 단계를 포함할 수 있다.
또한, 상기 (b) 단계에 의해, 상기 신규 노드는 상기 매핑되지 않은 블록 데이터의 적어도 일부를 매핑 방식에 의해 소유하게 되는 것일 수 있다.
또한, 상기 매핑 방식에 의해, 상기 신규 노드의 블록 동기화 과정이 생략될 수 있다.
또한, 상기 참여 노드는, 상기 (a) 단계에서, 상기 복사본을 스트라이프 형태로 자신의 로컬 스토리지에 저장할 수 있다.
또한, 상기 참여 노드는 상기 복사본의 사이즈에 대응하는 인센티브를 제공받을 수 있다.
또한, 상기 (b) 단계는, 신규 노드로부터 매핑되지 않은 블록 데이터를 찾기 위한 디스커버 메시지를 상기 신규 노드의 공개키와 함께 수신하면, 상기 참여 노드가 상기 복사본 중 매핑되지 않은 블록 데이터에 상기 공개키로 서명하고 임시 저장한 상기 메타데이터를 상기 신규 노드로 전송하여 매핑하는 단계를 포함할 수 있다.
또한, 서명된 상기 공개키 및 상기 메타데이터에 의해, 상기 신규 노드에게는 상기 신규 노드에게 매핑된 블록 데이터에 관한 정보만이 오픈되는 것일 수 있다.
또한, 본원의 일 실시예에 따른 분산파일시스템 활용 블록 데이터 매핑 방법은, (c) 상기 참여 노드가, 상기 블록체인 네트워크에서 탈퇴하는 탈퇴 메시지를 상기 신규 노드로부터 수신하면, 상기 신규 노드에게 매핑되었던 블록 데이터가 다른 노드에게 매핑될 수 있도록 상기 신규 노드에게 매핑되었던 블록 데이터를 매핑되지 않은 상태로 전환시키는 단계를 포함할 수 있다.
또한, 본원의 일 실시예에 따른 분산파일시스템 활용 블록 데이터 매핑 방법은, (d) 상기 참여 노드가, 상기 신규 노드에게 매핑되었던 블록 데이터를 상기 신규 노드의 로컬 스토리지에 복사 완료하였다는 복사 완료 메시지를 상기 신규 노드로부터 수신하면, 상기 신규 노드에게 매핑되었던 블록 데이터가 다른 노드에게 매핑될 수 있도록 상기 신규 노드에게 매핑되었던 블록 데이터를 매핑되지 않은 상태로 전환시키는 단계를 포함할 수 있다.
한편, 본원의 일 실시예에 따른 분산파일시스템 활용 블록 데이터 매핑을 위한 노드 장치는, 로컬 스토리지의 사이즈가 상기 노드 장치의 블록체인 데이터 이외에 분산파일시스템에 포함되는 블록체인 데이터 중 일부를 저장 가능한 것으로 판단되면, 상기 분산파일시스템에 포함되는 블록체인 데이터 중 일부의 복사본을 상기 로컬 스토리지에 저장하여 상기 분산파일시스템의 일부를 이루도록 하는 스토리지 할당부 및 상기 복사본 중 매핑되지 않은 블록 데이터의 적어도 일부를 매핑할 신규 노드를 발견하면, 상기 신규 노드에 상기 복사본 중 매핑되지 않은 블록 데이터의 적어도 일부를 매핑하는 매핑부를 포함할 수 있다.
또한, 상기 매핑부에 의해, 상기 신규 노드는 상기 매핑되지 않은 블록 데이터의 적어도 일부를 매핑 방식에 의해 소유하게 되고, 상기 매핑 방식에 의해, 상기 신규 노드의 블록 동기화 과정이 생략되는 것일 수 있다.
또한, 상기 스토리지 할당부는, 상기 복사본을 스트라이프 형태로 상기 로컬 스토리지에 저장할 수 있다.
또한, 상기 노드 장치는, 상기 복사본의 사이즈에 대응하는 인센티브를 제공받을 수 있다.
또한, 상기 스토리지 할당부는, 상기 복사본에 대한 메타데이터를 임시 저장하고, 상기 매핑부는, 신규 노드로부터 매핑되지 않은 블록 데이터를 찾기 위한 디스커버 메시지를 상기 신규 노드의 공개키와 함께 수신하면, 상기 복사본 중 매핑되지 않은 블록 데이터에 상기 공개키로 서명하고 임시 저장한 상기 메타데이터를 상기 신규 노드로 전송하여 매핑할 수 있다.
또한, 본원의 일 실시예에 따른 분산파일시스템 활용 블록 데이터 매핑을 위한 노드 장치는, 상기 신규 노드로부터, 상기 블록체인 네트워크에서 탈퇴하는 탈퇴 메시지를 수신하면, 상기 신규 노드에게 매핑되었던 블록 데이터가 다른 노드에게 매핑될 수 있도록 상기 신규 노드에게 매핑되었던 블록 데이터를 매핑되지 않은 상태로 전환시키는 데이터 관리부를 포함할 수 있다.
또한, 상기 데이터 관리부는, 상기 신규 노드에게 매핑되었던 블록 데이터를 상기 신규 노드의 로컬 스토리지에 복사 완료하였다는 복사 완료 메시지를 상기 신규 노드로부터 수신하면, 상기 신규 노드에게 매핑되었던 블록 데이터가 다른 노드에게 매핑될 수 있도록 상기 신규 노드에게 매핑되었던 블록 데이터를 매핑되지 않은 상태로 전환시킬 수 있다.
또한, 본원의 일 실시예에 따른 분산파일시스템 활용 블록 데이터 매핑 방법은 상기 방법을 컴퓨터에서 실행하기 위한 프로그램을 기록한 컴퓨터에서 판독 가능한 기록매체에 저장되는 것일 수 있다.
상술한 과제 해결 수단은 단지 예시적인 것으로서, 본원을 제한하려는 의도로 해석되지 않아야 한다. 상술한 예시적인 실시예 외에도, 도면 및 발명의 상세한 설명에 추가적인 실시예가 존재할 수 있다.
전술한 본원의 과제 해결 수단에 의하면, 새로운 노드의 블록체인 네트워크 참여시, 블록 동기화 과정을 생략하여 블록 동기화에 필요한 시간적, 공간적 부담을 경감할 수 있다.
전술한 본원의 과제 해결 수단에 의하면, 분산파일시스템을 통해 드론, 임베디드 시스템 등 스토리지 용량이 한정된 노드에 원격 저장소를 제공할 수 있다.
전술한 본원의 과제 해결 수단에 의하면, 블록체인 네트워크 참여 시의 블록 동기화 과정이 요구되지 않으므로, 노드의 참여 및 탈퇴가 빈번한 블록체인 네트워크에 효율적인 확장성을 부여할 수 있다.
전술한 본원의 과제 해결 수단에 의하면, 블록체인 기술의 탈중앙성을 저해하지 않으면서도, 트랜잭션 발생 증가, 참여 노드의 수 등에 의해 블록체인 데이터의 크기가 지속적으로 커짐에 따라 발생할 수 있는 노드들의 스토리지 부담을 경감할 수 있다.
다만, 본원에서 얻을 수 있는 효과는 상기된 바와 같은 효과들로 한정되지 않으며, 또 다른 효과들이 존재할 수 있다.
도 1은 본원의 일 실시예에 따른 분산파일시스템 활용 블록 데이터 매핑을 위한 노드 장치를 포함하는 블록 체인 네트워크를 설명하기 위한 개념도이다.
도 2는 참여 노드가 스트라이프 형태로 블록 체인 데이터에 대한 복사본을 분산 저장하는 것을 설명하기 위한 개념도이다.
도 3은 본원의 일 실시예에 따른 분산파일시스템 활용 블록 데이터 매핑을 위한 노드 장치의 개략적인 구성도이다.
도 4는 본원의 일 실시예에 따른 분산파일시스템 활용 블록 데이터 매핑 방법의 동작 흐름도이다.
도 5는 본원의 일 실시예에 따른 분산파일시스템 활용 블록 데이터 매핑 방법의 각 단계를 참여 노드 및 신규 노드의 입장에서 나타낸 세부 동작 흐름도이다.
아래에서는 첨부한 도면을 참조하여 본원이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본원의 실시예를 상세히 설명한다. 그러나 본원은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본원을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
본원 명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결" 또는 "간접적으로 연결"되어 있는 경우도 포함한다.
본원 명세서 전체에서, 어떤 부재가 다른 부재 "상에", "상부에", "상단에", "하에", "하부에", "하단에" 위치하고 있다고 할 때, 이는 어떤 부재가 다른 부재에 접해 있는 경우뿐 아니라 두 부재 사이에 또 다른 부재가 존재하는 경우도 포함한다.
본원 명세서 전체에서, 어떤 부분이 어떤 구성 요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것을 의미한다.
본원은 블록 동기화 과정 생략 및 원격 저장소 제공을 위한 분산파일시스템 활용 블록 데이터 매핑 방법 및 블록 데이터 매핑을 위한 노드 장치에 관한 것이다. 특히, 본원은 분산파일시스템을 이용하여 블록체인 데이터를 복사하여 저장하고, 새로 참여하는 블록체인 노드에 분산파일시스템을 활용하여 저장된 데이터를 매핑하는 방식의 데이터 관리 기법에 관한 것이다.
도 1은 본원의 일 실시예에 따른 분산파일시스템 활용 블록 데이터 매핑을 위한 노드 장치를 포함하는 블록 체인 네트워크를 설명하기 위한 개념도이다.
도 1을 참조하면, 본원에서의 블록체인 네트워크(10)는 하나 이상의 참여 노드(100)를 참여 주체로 하고, 각 참여 노드(100)의 일부 스토리지를 묶어놓은 분산파일시스템(20) 위에 블록체인 데이터의 복사본을 만들어 놓고, 신규 노드(200)의 참여시 만들어 놓은 복사본을 신규 노드(200)에 매핑(Blockchain data mapping)하도록 구현된다. 즉, 본원에서의 블록체인 네트워크(10)는 분산파일시스템을 활용하여, 블록체인 데이터 중 일부(예를 들면, 블록 데이터)를 매핑 방식으로 소유하게 된 신규 노드(20)가 별도의 동기화 과정 없이 블록 체인 네트워크(10)에 참여할 수 있도록 설계된다.
또한, 도 1을 참조하면, 하나의 참여 노드(100)에서는 블록체인 클라이언트(blockchain client)와 분산파일시스템(DFS)이 연동되어 동작하는 것일 수 있다.
참고로, 본원의 실시예에 관한 설명에서, 본원의 일 실시예에 따른 분산파일시스템 활용 블록 데이터 매핑을 위한 노드 장치(100)는 도 1을 참조하면, 참여 노드(100)와 동등한 것으로 이해될 수 있다. 달리 말해, 블록 체인 네트워크(10)의 참여 주체인 복수의 참여 노드(100) 각각은 본원에서의 분산파일시스템 활용 블록 데이터 매핑을 위한 노드 장치(100)로 동작할 수 있다. 또한, 블록 데이터 매핑을 위한 노드 장치(100) 또는 참여 노드(100)는 해당 노드 그 자체 또는 해당 노드 하위에 포함되는 장치 개념으로 이해될 수 있다. 이하에서는, 설명의 편의를 위하여, 분산파일시스템 활용 블록 데이터 매핑을 위한 노드 장치(100)를 '참여 노드(100)'로 통일하여 지칭하도록 한다.
먼저, 참여 노드(100)는, 자신의 로컬 스토리지가, 저장된 자신의 블록체인 데이터(1) 이외에 분산파일시스템(20)에 포함되는 블록체인 데이터 중 일부를 저장 가능한 사이즈인 것으로 판단되면, 분산파일시스템(20)에 포함되는 블록체인 데이터(1) 중 일부의 복사본을 자신의 로컬 스토리지에 저장하여 분산파일시스템(20)의 일부를 이룰 수 있다.
달리 말해, 각 참여 노드(100)는 분산파일시스템(20)에 할당할 로컬 스토리지 사이즈(용량)를 결정할 수 있다. 이 때, 참여 노드(100) 각각은 자신의 로컬 스토리지에 저장하는 복사본의 사이즈에 대응하는 인센티브를 제공받을 수 있다. 달리 말해, 참여 노드(100)는 자신이 분산파일시스템(20)에 제공한 로컬 스토리지 사이즈(또는 저장하는 복사본의 사이즈)에 대응하는 인센티브를 제공받을 수 있다. 이렇듯 본원에서는 참여 노드(100)에 스토리지 제공에 따른 인센티브를 제공함으로써, 분산파일시스템(20)이 충분한 스토리지를 확보하도록 유도할 수 있다.
본원의 일 실시예에 따르면, 참여 노드(100)에 지급되는 인센티브는 토큰 형식으로 결정될 수 있다. 또한, 본원의 일 실시예에 따르면, 참여 노드(100)에 지급되는 인센티브의 크기는 분산파일시스템(20)에 제공한 로컬 스토리지 사이즈에 비례하게 결정될 수 있으나, 이에만 한정되는 것은 아니다. 다른 예로, 큰 사이즈의 로컬 스토리지를 분산파일시스템(20)에 제공하도록 유도하기 위하여, 제공한 로컬 스토리지 사이즈가 커질수록 지급되는 인센티브의 증가폭도 커지는 형태(예를 들면, Exponential 함수 형태)로 인센티브가 지급되도록 구현될 수 있다.
또한, 본원의 일 실시예에 따르면, 참여 노드(100)는 분산파일시스템(20)에 제공한 자신의 로컬 스토리지에 블록체인 데이터(1) 중 일부의 복사본을 스트라이프 형태로 저장하는 것일 수 있다.
도 2는 참여 노드가 스트라이프 형태로 블록체인 데이터에 대한 복사본을 분산 저장하는 것을 설명하기 위한 개념도이다. 참고로, 블록체인 데이터(1)는 신규 거래 등에 의해 발생하는 트랜잭션에 따라 생성되는 블록 데이터(2)를 최초의 블록인 제네시스 블록으로부터 체인형으로 연결한 것을 의미할 수 있다.
도 2를 참조하면, 참여 노드(100)는 블록체인 데이터(1) 중 일부의 복사본을 스트라이프(3) 형태로 자신의 로컬 스토리지(예를 들면, 분산파일시스템(20)에 할당한 스토리지)에 저장하는 것일 수 있다. 달리 말해, 분산파일시스템(20)의 블록 데이터(2)는 스트라이핑되어 각 참여 노드(100)의 스토리지로 스트라이프(3) 형태로 분산 저장될 수 있다. 종래의 블록체인 네트워크에서는 블록 단위의 해시값을 통해 순차적 블록 연결 구조를 형성하던 것과 달리, 본원에서는 스트라이프(3) 단위의 해시값을 통합하여 하나의 블록에 대한 해시값이 정해지게 된다. 달리 말해, 하나의 블록을 이루는 스트라이프(3)들 각각의 해시를 통합한 해시가 해당 블록의 해시값으로 결정될 수 있다. 또한, 참여 노드(100)의 스토리지에 스트라이프(3) 형태로 분산 저장된 후, 신규 노드(200)로 매핑된 블록 데이터(2)에 대한 스트라이프(3)들은 해당 신규 노드(200)의 노드 ID와 공개키로 서명되므로, 매핑된 신규 노드(200)가 대칭되는 개인키를 보유하는 경우에만 매핑된 블록 데이터(달리 말해, 매핑된 블록 데이터에 대한 스트라이프(3)들)를 사용할 수 있게 된다.
본원의 일 실시예에 따르면, 스트라이프(3)는 블록 데이터를 작은 데이터 단위로 분할한 데이터 단위로 이해될 수 있다. 예를 들어, 스트라이프(3)는 분할 데이터, 세그먼트 등으로 달리 지칭될 수 있다. 본원에서는 스트라이프(3) 형태로 분할된 블록 데이터를 분산 저장함에 따라, 하나의 참여 노드(100)에 가해지는 스토리지 부하를 줄일 뿐만 아니라, 신규 노드(200)가 매핑된 블록 데이터에 대해 접근하는 경우, 고속의 데이터 액세스를 가능케 할 수 있다.
이하에서는, 참여 노드(100)가 신규 노드(200)에 복사본 중 매핑되지 않은 블록 데이터의 적어도 일부를 매핑하는 과정에 관하여 상세히 설명하도록 한다.
참여 노드(100)는 복사본 중 매핑되지 않은 블록 데이터(2b)의 적어도 일부를 매핑할 신규 노드(200)를 발견하면, 신규 노드(200)에 복사본 중 매핑되지 않은 블록 데이터(2b)의 적어도 일부를 매핑할 수 있다. 본원의 일 실시예에 따르면, 블록 데이터(2)는 참여 노드(100) 또는 신규 노드(200)에 이미 매핑된 상태의 매핑된 블록 데이터(2a, 도 1을 참조하면, 'already mapped' Block data)와 특정 노드에 매핑되지 않은 상태의 매핑되지 않은 블록 데이터(2b, 도 1을 참조하면, 'non-mapped' Block data)로 구분될 수 있다. 본원의 일 실시예에 따르면, 참여 노드(100)는 분산파일시스템(20) 상에 존재하는 블록 데이터(구체적으로, 블록체인 데이터 중 일부에 대한 복사본) 중 다른 노드에 매핑되지 않은 상태의 매핑되지 않은 블록 데이터(2b)의 적어도 일부를 신규 노드(200)에 매핑할 수 있다. 참고로, 블록 데이터(2) 각각의 매핑 상태(already mapped 상태 또는 non-mapped 상태)는 참여 노드(100)에 의해 전환될 수 있다.
이 때, 참여 노드(100)가 블록체인 네트워크(10)에 새로이 참여하려는 신규 노드(200)에 복사본 중 매핑되지 않은 블록 데이터(2b)의 적어도 일부를 매핑하여 전달함으로써, 신규 노드(200)는 매핑되지 않은 블록 데이터(2b)의 적어도 일부를 매핑 방식에 의해 소유하게 되는 것으로 이해될 수 있다. 나아가, 상기 매핑 방식에 의해, 신규 노드(200)의 블록체인 네트워크(10)에 대한 블록 동기화 과정이 생략될 수 있다.
또한, 본원의 블록체인 네트워크(10)에 참여하는 신규 노드(200)들은 분산파일시스템(20)에 저장된 블록 데이터를 매핑 방식으로 보유할 수 있기 때문에, 모든 블록체인 데이터를 저장할 스토리지 용량을 보유하고 있지 않더라도 본원의 블록체인 네트워크(10)에 참여할 수 있게 된다. 달리 말해, 본원의 블록 체인 네트워크(10)는 매핑 방식을 통해 종래의 블록체인 네트워크에 비해 적은 용량의 스토리지를 보유한 노드들의 참여를 허용할 수 있다.
또한, 본원의 일 실시예에 따르면, 참여 노드(100)는 자신의 로컬 스토리지(달리 말해, 분산파일시스템(20)에 할당한 스토리지)에 복사본을 저장하는 경우, 복사본에 대한 메타데이터를 임시 저장할 수 있다.
또한, 본원의 일 실시예에 따르면, 참여 노드(100)는 신규 노드(200)로부터 매핑되지 않은 블록 데이터(2b)를 찾기 위한 디스커버 메시지를 신규 노드(200)의 공개키와 함께 수신하면, 참여 노드(100)가 복사본 중 매핑되지 않은 블록 데이터(2b)에 수신된 공개키로 서명하고 임시 저장한 복사본에 대한 메타데이터를 신규 노드(200)로 전송하여 매핑이 수행되는 것일 수 있다.
이러한 매핑 방식에 따라서, 서명된 공개키 및 메타데이터에 의해, 블록체인 네트워크(10)에 새로이 참여한 신규 노드(200)에게는 신규 노드(200)에게 매핑된 블록 데이터에 관한 정보만이 오픈되는 것일 수 있다. 달리 말해, 하나의 신규 노드(200)로 매핑된 블록 데이터는 노드 ID와 신규 노드(200)의 공개키로 서명되므로, 해당 신규 노드(200)만 보유하고 있는 개인키를 통해서 매핑된 블록 데이터를 이용할 수 있게 된다.
또한, 본원에서의 분산파일시스템(20)은 기존 분산파일시스템과 달리 Management Server 또는 Metadata Server가 별도로 존재하지 않는다. 신규 노드(200)는 자신에게 매핑된 블록 데이터를 로컬 스토리지에 스트라이프(3) 형태로 저장중인 참여 노드(200)들의 정보만 메타데이터로써 직접 저장하게 된다. 즉, 신규 노드(200) 자신의 데이터와 관련 없는(달리 말해, 신규 노드(200)에게 매핑된 블록 데이터(2)에 대한 스트라이프(3)를 저장하고 있지 않은) 참여 노드(100)의 스토리지는 신규 노드(200) 입장에서 보이지 않는다. 달리 말해, 신규 노드(200)는 자신에게 매핑된 블록 데이터와 관련 없는 블록 데이터만을 저장하고 있는 참여 노드(100)의 스토리지에는 접근할 수 없게 된다.
본원의 일 실시예에 따르면, 신규 노드(200)는 참여 노드(100)로부터 전달된 메타데이터를 통해 분산파일시스템 인스턴스에 대한 메타데이터 서버로 동작할 수 있다. 즉, 신규 노드(200)가 자신에게 매핑된 블록 데이터를 저장하는 참여 노드(100)들에 대한 메타데이터를 직접 저장하여 하나의 메타데이터 서버와 같은 역할을 하기 때문에, 본원에서는 중앙화된 매니지먼트 서버 없이도 탈중앙화되고, 인스턴스별로 분리된 분산파일시스템(20)의 동작이 가능하다.
또한, 본원의 일 실시예에 따르면, 참여 노드(100)는, 블록체인 네트워크에서 탈퇴하는 탈퇴 메시지를 신규 노드(200)로부터 수신하면, 신규 노드(200)에게 매핑되었던 블록 데이터가 다른 노드에게 매핑될 수 있도록 신규 노드(200)에게 매핑되었던 블록 데이터를 매핑되지 않은 상태로 전환시킬 수 있다.
달리 말해, 임의의 노드의 탈퇴 시, 탈퇴하려는 노드(신규 노드(200))는 자신에게 매핑된 블록 데이터를 저장중이던 참여 노드(100)들에 탈퇴메시지를 전송하고, 해당 참여 노드(100)들의 스토리지(구체적으로, 해당 참여 노드(100)들이 분산파일시스템(20)에 할당한 스토리지)에 저장 중이던 스트라이프(3)들은 매핑되지 않은 상태(non-mapped 상태)의 블록 데이터(2b)가 되어, 이후 새로운 신규 노드(200)에게 매핑 될 수 있는 상태로 전환된다.
또한, 본원이 일 실시예에 따르면, 참여 노드(100)는, 신규 노드(200)에게 매핑되었던 블록 데이터를 신규 노드(200)의 로컬 스토리지에 복사 완료하였다는 복사 완료 메시지를 신규 노드(200)로부터 수신하면, 신규 노드(200)에게 매핑되었던 블록 데이터가 다른 노드에게 매핑될 수 있도록 신규 노드(200)에게 매핑되었던 블록 데이터를 매핑되지 않은 상태로 전환시킬 수 있다.
달리 말해, 소정의 신규 노드(200)가 블록체인 네트워크(10)에 참여한 이후, 해당 신규 노드(200)의 스토리지가 충분하여 분산파일시스템(20)이 아닌 자신의 로컬 스토리지에 블록체인 데이터(1)를 저장할 것을 희망하는 경우, 신규 노드(200)가 로컬 스토리지에 블록체인 데이터를 동기화 하는 동안, 분산파일시스템(20) 위의 복사본을 사용하여 블록체인 네트워크(10)에 참여하고, 동기화가 완료되면 해당 복사본은 매핑이 해제되어 다른 노드에 매핑될 수 있는 상태로 전환된다.
즉, 로컬 스토리지가 충분한 노드(신규 노드(200))는 분산파일시스템(20)을 통해 자신에게 매핑된 블록체인 데이터를 자신의 로컬 스토리지에 복사(동기화)할 수 있으며, 복사하는 동안은 매핑된 데이터를 소유하여 사용할 수 있다. 복사가 완료되면 자신에게 매핑된 블록 데이터를 저장중이었던 참여 노드(100)들에 복사 완료 메시지를 전송하고, 탈퇴와 마찬가지로 해당 블록 데이터는 매핑되지 않은 상태(non-mapped 상태)가 되어 이후 다른 노드(예를 들면, 새로운 신규 노드(200))에 매핑될 수 있다. 로컬 스토리지가 충분한 노드의 경우, 이와 같은 방식으로 자신의 로컬 스토리지에 직접 블록체인 데이터를 저장하고, 블록체인과 연동된 분산파일시스템(20)에 더 많은 양의 스토리지를 할당하는 방식으로 인센티브(예를 들면, 토큰 형태)를 획득할 수 있다.
결과적으로 본원은, 드론, 임베디드 시스템 등 하드웨어 성능이 한정된 환경의 노드들에게 더 많은 원격 저장소가 주어지는 효과를 불러올 수 있다. 즉, 분산파일시스템(20)을 통하여 미리 복사된 블록체인 데이터를 신규 노드(200)에 매핑시킴으로써, 신규 노드(200)가 블록체인 네트워크에 참여시 발생하는 시간적 오버헤드를 없애고, 토큰 형태의 인센티브 제공을 통해 분산파일시스템(20)에 충분한 스토리지를 확보할 수 있어, 로컬 스토리지가 부족한 드론, 임베디드 시스템 등의 하드웨어 성능이 한정된 기기(노드)에도 충분한 크기의 원격 저장소를 제공할 수 있게 된다.
도 3은 본원의 일 실시예에 따른 분산파일시스템 활용 블록 데이터 매핑을 위한 노드 장치의 개략적인 구성도이다.
도 3을 참조하면, 분산파일시스템 활용 블록 데이터 매핑을 위한 노드 장치(100)(달리 말해, 참여 노드(100))는, 스토리지 할당부(110), 매핑부(120) 및 데이터 관리부(130)를 포함할 수 있다.
스토리지 할당부(110)는, 로컬 스토리지의 사이즈가 노드 장치(100)의 블록체인 데이터 이외에 분산파일시스템(20)에 포함되는 블록체인 데이터 중 일부를 저장 가능한 것으로 판단되면, 분산파일시스템(20)에 포함되는 블록체인 데이터 중 일부의 복사본을 로컬 스토리지에 저장하여 노드 장치(100)의 스토리지 중 적어도 일부가 분산파일시스템(20)의 일부를 이루도록 할 수 있다.
구체적으로, 스토리지 할당부(110)는, 복사본을 스트라이프(3) 형태로 로컬 스토리지에 저장할 수 있다. 또한, 노드 장치(100)는 복사본의 사이즈에 대응하는 인센티브를 제공받을 수 있다.
또한, 스토리지 할당부(110)는 복사본 저장시, 복사본에 대한 메타데이터를 임시 저장할 수 있다.
매핑부(120)는, 복사본 중 매핑되지 않은 블록 데이터(2b)의 적어도 일부를 매핑할 신규 노드(200)를 발견하면, 신규 노드(200)에 복사본 중 매핑되지 않은 블록 데이터(2b)의 적어도 일부를 매핑할 수 있다.
따라서, 매핑부(120)에 의해, 신규 노드(200)는 매핑되지 않은 블록 데이터(2b)의 적어도 일부를 매핑 방식에 의해 소유하게 되고, 매핑 방식에 의해, 신규 노드(200)의 블록 동기화 과정이 생략되는 것일 수 있다.
구체적으로, 매핑부(120)는, 신규 노드(200)로부터 매핑되지 않은 블록 데이터를 찾기 위한 디스커버 메시지를 신규 노드(200)의 공개키와 함께 수신하면, 복사본 중 매핑되지 않은 블록 데이터(2b)에 수신된 공개키로 서명하고 스토리지 할당부(110)에 의해 임시 저장된 메타데이터를 신규 노드(200)로 전송하여 매핑을 수행할 수 있다.
데이터 관리부(130)는, 신규 노드(200)로부터, 블록체인 네트워크(10)에서 탈퇴하는 탈퇴 메시지를 수신하면, 신규 노드(200)에게 매핑되었던 블록 데이터가 다른 노드에게 매핑될 수 있도록 신규 노드(200)에게 매핑되었던 블록 데이터를 매핑되지 않은 상태로 전환시킬 수 있다.
또한, 데이터 관리부(130)는, 신규 노드(200)에게 매핑되었던 블록 데이터를 신규 노드(200)의 로컬 스토리지에 복사 완료하였다는 복사 완료 메시지를 신규 노드(200)로부터 수신하면, 신규 노드(200)에게 매핑되었던 블록 데이터가 다른 노드에게 매핑될 수 있도록 신규 노드(200)에게 매핑되었던 블록 데이터를 매핑되지 않은 상태로 전환시킬 수 있다.
이하에서는 상기에 자세히 설명된 내용을 기반으로, 본원의 동작 흐름을 간단히 살펴보기로 한다.
도 4는 본원의 일 실시예에 따른 분산파일시스템 활용 블록 데이터 매핑 방법의 동작 흐름도이다.
도 4에 도시된 분산파일시스템 활용 블록 데이터 매핑 방법은 앞서 설명된 분산파일시스템 활용 블록 데이터 매핑 방법을 위한 노드 장치(100)에 의하여 수행될 수 있다. 따라서, 이하 생략된 내용이라고 하더라도 분산파일시스템 활용 블록 데이터 매핑 방법을 위한 노드 장치(100)에 대하여 설명된 내용은 분산파일시스템 활용 블록 데이터 매핑 방법에 대한 설명에도 동일하게 적용될 수 있다.
도 4를 참조하면, 단계 S410에서 스토리지 할당부(110)는, (a) 노드 장치(100)의 로컬 스토리지가 자신의 블록체인 데이터 이외에 분산파일시스템(20)에 포함되는 블록체인 데이터 중 일부를 저장 가능한 사이즈인 것으로 판단되면, 분산파일시스템(20)에 포함되는 블록체인 데이터 중 일부의 복사본을 자신의 로컬 스토리지에 저장하여 분산파일시스템(20)의 일부를 이루도록 할 수 있다.
또한, 단계 S410에서(달리 말해, (a) 단계에서) 스토리지 할당부(110)는, 복사본에 대한 메타데이터를 임시 저장할 수 있다.
다음으로, 단계 S420에서 매핑부(120)는, (b) 복사본 중 매핑되지 않은 블록 데이터의 적어도 일부를 매핑할 신규 노드(200)를 발견하면, 신규 노드(200)에 복사본 중 매핑되지 않은 블록 데이터(2b)의 적어도 일부를 매핑할 수 있다.
구체적으로, 단계 S420에서(달리 말해, (b) 단계에서) 매핑부는, 신규 노드(200)로부터 매핑되지 않은 블록 데이터(2b)를 찾기 위한 디스커버 메시지를 신규 노드(200)의 공개키와 함께 수신하면, 복사본 중 매핑되지 않은 블록 데이터(2b)에 수신된 공개키로 서명하고 단계 S410에서 임시 저장한 메타데이터를 신규 노드(200)로 전송할 수 있다.
다음으로, 단계 S430에서 데이터 관리부(130)는, (c) 블록체인 네트워크(10)에서 탈퇴하는 탈퇴 메시지를 신규 노드(200)로부터 수신하면, 신규 노드(200)에게 매핑되었던 블록 데이터가 다른 노드에게 매핑될 수 있도록 신규 노드(200)에게 매핑되었던 블록 데이터를 매핑되지 않은 상태로 전환시킬 수 있다.
또한, 단계 S440에서 데이터 관리부(130)는, (d) 신규 노드(200)에게 매핑되었던 블록 데이터를 신규 노드(200)의 로컬 스토리지에 복사 완료하였다는 복사 완료 메시지를 신규 노드(200)로부터 수신하면, 신규 노드(200)에게 매핑되었던 블록 데이터가 다른 노드에게 매핑될 수 있도록 신규 노드(200)에게 매핑되었던 블록 데이터를 매핑되지 않은 상태로 전환시킬 수 있다.
상술한 설명에서, 단계 S410 내지 S440은 본원의 구현예에 따라서, 추가적인 단계들로 더 분할되거나, 더 적은 단계들로 조합될 수 있다. 또한, 일부 단계는 필요에 따라 생략될 수도 있고, 단계 간의 순서가 변경될 수도 있다.
도 5는 본원의 일 실시예에 따른 분산파일시스템 활용 블록 데이터 매핑 방법의 각 단계를 참여 노드 및 신규 노드의 입장에서 나타낸 세부 동작 흐름도이다.
도 5를 참조하면, 단계 S511 내지 S517은 참여 노드(100)가 주체가 되어 수행되고, 단계 S521 내지 S524는 신규 노드(200)가 주체가 되어 수행되는 단계를 각각 나타낼 수 있다.
단계 S511에서 참여 노드(100)의 스토리지에 블록체인 데이터의 복사본이 저장되어 있는지 여부를 판단할 수 있다. 단계 S511의 판단 결과, 해당 참여 노드(100)가 블록체인 데이터의 복사본을 저장하고 있지 않은 경우(No), 단계 S513으로 진행하여 이후의 단계 S514, 단계 S515 등이 수행될 수 있다. 반대로, 해당 참여 노드(100)가 이미 블록체인 데이터의 복사본을 저장하고 있는 경우(Yes), 단계 S512로 진행하여 단계 S512에서 해당 참여 노드(100)는 단계 S513, 단계 S514, 단계 S515 등을 수행하지 않고 현 상태를 유지하게 된다.
다음으로, 단계 S513에서 해당 참여 노드(100)를 통해 이후의 단계 S514, 단계 S515 등을 수행할지 여부를 결정하기 위하여 현재 블록체인 데이터의 사이즈(S)의 크기가 고려될 수 있다. 여기서, 블록체인 데이터의 사이즈(S)는 해당 참여 노드(100)가 분산파일시스템에 할당할 로컬 스토리지의 사이즈를 의미할 수 있다.
단계 S513에서 현재 블록체인 데이터의 사이즈(S)가 S/10≥2의 관계식을 만족할 경우, 단계 S514로 진행할 수 있다. 반대로, 현재 블록체인 데이터의 사이즈(S)가 S/10<2의 관계식을 만족할 경우, 단계 S512로 진행하여 해당 참여 노드(100)는 단계 S514, 단계 S515 등을 수행하지 않고 현 상태를 유지하게 된다.
본원의 일 실시예에 따르면, 현재 블록체인 데이터의 사이즈(S)는 GB(기가바이트) 단위로 측정되는 것일 수 있으나, 이에만 한정되는 것은 아니다. 또한, 단계 S513에 적용되는 수식의 구체적인 수치 범위는 본원의 블록체인 네트워크(10)의 참여 노드의 수, 블록체인 데이터의 유형 등에 기초하여 다양하게 변형될 수 있다.
다음으로, 단계 S514에서 현재 블록체인 데이터의 사이즈(S)가 소정 수준(예를 들면 S/10≥2의 관계식을 만족하는 수준) 이상 큰 것으로 판단되는 경우, 참여 노드(100)는, 블록체인 데이터의 복사본 생성하고, 생성된 복사본을 로컬 스토리지에 분산 저장할(달리 말해, 분산파일시스템(20)을 구축할) 노드를 탐색하기 위하여, (S/10-1)개의 노드를 찾기 위한 메시지를 블록체인 네트워크(10) 내에 전파할 수 있다.
본원의 일 실시예에 따르면, 단계 S514에서 참여 노드(100)가 탐색하는 노드의 개수는 본원의 블록체인 네트워크(10)의 참여 노드의 수 및 블록체인 데이터의 데이터 유형 중 적어도 하나에 기초하여 (S/10-1)이외의 개수로 결정될 수 있다.
보다 구체적으로 설명하면, 단계 S514에서 노드 탐색을 위한 메시지를 전파하는 참여 노드(100)는 선행된 단계 S511에 의하여, 블록체인 데이터의 복사본(예를 들어, 복사본의 스트라이프)을 갖고 있지 않은 참여 노드(100)로 결정되므로, 블록체인 데이터의 복사본(이미 매핑된 복사본 및 매핑되지 않은(non-mapped) 복사본을 모두 포함한다.)을 저장하고 있는 참여 노드(100)는 메시지를 전파하지 않고 기존 상태를 유지하다가, 복사본 생성을 위한 메시지를 수신하면 추가적으로 메시지를 전파한 참여 노드(100)와 함께 복사본 생성에 참여하게 된다.
다음으로, 단계 S515에서, 메시지를 전파한 참여 노드(100)는 탐색된 다른 참여 노드(100)들(예를 들면, (S/10-1)개의 참여 노드(100)) 및 자신(즉, 메시지를 전파한 참여 노드(100))을 포함하여 분산파일시스템 인스턴스를 생성하고, 블록체인 데이터에 대한 복사본을 생성 및 저장할 수 있다. 여기서, 참여 노드(100)는 복사본에 대한 메타데이터를 임시 저장할 수 있다. 달리 말해, 단계 S515에서 전파를 시작한 참여 노드(100)를 포함하는 S/10 개의 참여 노드(100)는 서로 연결되어 하나의 분산파일시스템 인스턴스를 만들어 블록체인 데이터의 복사본을 생성 및 분산 저장하고, 이에 대한 메타데이터는 메시지 전파를 시작한 참여 노드(100)가 임시로 저장하도록 구현될 수 있다.
다음으로 단계 S516에서, 복사본에 대한 메타데이터를 저장하고 있던 참여 노드(100)는, 블록체인 네트워크(10)에 참여를 시도하는 새로운 신규 노드(200)가 존재하는 경우(달리 말해, 참여 노드(100)가 신규 노드(200)로부터 매핑되지 않은 블록 데이터(non-mapped 상태의 블록 데이터; 2b)를 찾기 위한 디스커버 메시지(discover)를 수신하는 경우), 매핑되지 않은 블록 데이터(복사본)에 신규 노드(200)로부터 전송받은 공개키로 서명한 후, 임시 저장 중이던 메타데이터를 신규 노드(200)에 전달할 수 있다.
이를 통해 신규 노드(200)는 자신에게 매핑된 블록 데이터에 대한 스트라이프(3)를 저장하고 있는 참여 노드(100)에 대한 정보를 메타데이터로 직접 보유하게 되어 마치 로컬 스토리지에 블록체인 데이터를 저장하고 있는 것처럼 블록 동기화 과정 없이 블록체인 네트워크(10)에 참여할 수 있게 된다.
또한, 단계 S517에서, 신규 노드(200)가 블록체인 네트워크(10)에서 탈퇴하려는 경우 또는 신규 노드(200)가 매핑되었던 블록 데이터를 자신의 로컬 스토리지에 복사 완료한 경우, 신규 노드(200)로부터 신규 노드(200)에게 매핑된 블록 데이터 및 매핑된 블록 데이터와 연계된 메타 데이터를 반환하겠다는 반환 메시지를 수신한 참여 노드(100)는 해당 메타 데이터의 반환을 완료하고, 해당 신규 노드(200)에게 매핑되었던 블록 데이터를 매핑되지 않은 상태(non-mapped)로 전환할 수 있다.
즉, 단계 S517에 의하여 매핑되지 않은 상태(non-mapped)로 전환된 블록 데이터는 다른 신규 노드(200)가 블록체인 네트워크(10)에 참여하려는 경우(달리 말해, 다른 신규 노드(200)로부터 discover 메시지가 전송된 경우), 해당 신규 노드(200)에게 매핑될 수 있다.
상술한 매핑 과정을 신규 노드(200)의 입장에서 설명하면 다음과 같다.
단계 S521에서 신규 노드(200)는 자신의 공개키와 함께 매핑되지 않은(non-mapped) 블록 데이터(2b)를 찾기 위한 디스커버 메시지(discover)를 블록체인 네트워크(10)에 전파할 수 있다.
다음으로, 단계 S522에서 신규 노드(200)는 전파된 디스커버 메시지에 대응하여 참여 노드(200)로부터 전송된 자신의 공개키로 서명되어 매핑된 블록 데이터 및 해당 매핑된 블록 데이터에 대한 메타데이터를 수신할 수 있다.
다음으로, 단계 S523에서 신규 노드(200)는 분산파일시스템(20)을 통해 분산 저장된 블록체인 데이터(달리 말해, 매핑된 블록 데이터)를 보유하게 되어 블록 체인 네트워크(10)에 참여할 수 있는 상태가 된다. 달리 말해, 신규 노드(200)는 전달된 메타데이터를 통해 분산파일시스템 인스턴스에 대한 메타데이터 서버로 기능할 수 있다.
또한, 단계 S524에서 블록체인 네트워크(10)에서 탈퇴하려는 신규 노드(200) 또는 매핑되었던 블록 데이터를 자신의 로컬 스토리지에 복사 완료한 신규 노드(200)는, 참여 노드(100)에게 매핑된 블록 데이터 및 매핑된 블록 데이터와 연계된 메타 데이터를 반환하겠다는 내용의 반환 메시지를 전송할 수 있다.
상술한 설명에서, 단계 S511 내지 단계 S517과 단계 S521 내지 단계 S524은 본원의 구현예에 따라서, 추가적인 단계들로 더 분할되거나, 더 적은 단계들로 조합될 수 있다. 또한, 일부 단계는 필요에 따라 생략될 수도 있고, 단계 간의 순서가 변경될 수도 있다.
본원의 일 실시 예에 따른 분산파일시스템 활용 블록 데이터 매핑 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본원을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본원의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
또한, 전술한 분산파일시스템 활용 블록 데이터 매핑 방법은 기록 매체에 저장되는 컴퓨터에 의해 실행되는 컴퓨터 프로그램 또는 애플리케이션의 형태로도 구현될 수 있다.
전술한 본원의 설명은 예시를 위한 것이며, 본원이 속하는 기술분야의 통상의 지식을 가진 자는 본원의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본원의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본원의 범위에 포함되는 것으로 해석되어야 한다.
10: 블록체인 네트워크
20: 분산파일시스템
100: 분산파일시스템 활용 블록 데이터 매핑을 위한 노드 장치, 참여 노드
110: 스토리지 할당부
120: 매핑부
130: 데이터 관리부
200: 신규 노드
1: 블록체인 데이터
2: 블록 데이터
2a: 매핑된 블록 데이터
2b: 매핑되지 않은 블록 데이터
3: 스트라이프

Claims (16)

  1. 블록체인 네트워크에서의 블록 데이터 매핑 방법으로서,
    (a) 상기 블록체인 네트워크의 참여 노드가, 자신의 로컬 스토리지가 자신의 블록체인 데이터 이외에 분산파일시스템에 포함되는 블록체인 데이터 중 일부를 저장 가능한 사이즈인 것으로 판단되면, 상기 분산파일시스템에 포함되는 블록체인 데이터 중 일부의 복사본을 자신의 로컬 스토리지에 저장하여 상기 분산파일시스템의 일부를 이루는 단계;
    (b) 상기 참여 노드가, 상기 복사본 중 매핑되지 않은 블록 데이터의 적어도 일부를 매핑할 신규 노드를 발견하면, 상기 신규 노드에 상기 복사본 중 매핑되지 않은 블록 데이터의 적어도 일부를 매핑하는 단계; 및
    (c) 상기 참여 노드가, 상기 블록체인 네트워크에서 탈퇴하는 탈퇴 메시지를 상기 신규 노드로부터 수신하면, 상기 신규 노드에게 매핑되었던 블록 데이터가 다른 노드에게 매핑될 수 있도록 상기 신규 노드에게 매핑되었던 블록 데이터를 매핑되지 않은 상태로 전환시키는 단계를 포함하고,
    상기 (b) 단계에 의해, 상기 신규 노드는 상기 매핑되지 않은 블록 데이터의 적어도 일부를 매핑 방식에 의해 소유하게 되는 것인, 분산파일시스템 활용 블록 데이터 매핑 방법.
  2. 제1항에 있어서,
    상기 매핑 방식에 의해, 상기 신규 노드가 상기 블록체인 데이터를 자신의 로컬 스토리지에 직접 저장하지 않고도 상기 블록체인 네트워크에 참여하여 상기 신규 노드의 블록 동기화 과정이 생략되는 것인, 분산파일시스템 활용 블록 데이터 매핑 방법.
  3. 제1항에 있어서,
    상기 참여 노드는,
    상기 (a) 단계에서, 상기 복사본을 스트라이프 형태로 자신의 로컬 스토리지에 저장하는 것인, 분산파일시스템 활용 블록 데이터 매핑 방법.
  4. 제1항에 있어서,
    상기 참여 노드는 상기 복사본의 사이즈에 대응하는 인센티브를 제공받는 것인, 분산파일시스템 활용 블록 데이터 매핑 방법.
  5. 제1항에 있어서,
    상기 (a) 단계에서, 상기 참여 노드는 상기 복사본에 대한 메타데이터를 임시 저장하고,
    상기 (b) 단계는,
    신규 노드로부터 매핑되지 않은 블록 데이터를 찾기 위한 디스커버 메시지를 상기 신규 노드의 공개키와 함께 수신하면, 상기 참여 노드가 상기 복사본 중 매핑되지 않은 블록 데이터에 상기 공개키로 서명하고 임시 저장한 상기 메타데이터를 상기 신규 노드로 전송하여 매핑하는 단계를 포함하는 것인, 분산파일시스템 활용 블록 데이터 매핑 방법.
  6. 제5항에 있어서,
    서명된 상기 공개키 및 상기 메타데이터에 의해, 상기 신규 노드에게는 상기 신규 노드에게 매핑된 블록 데이터에 관한 정보만이 오픈되는 것인, 분산파일시스템 활용 블록 데이터 매핑 방법.
  7. 삭제
  8. 제1항에 있어서,
    (d) 상기 참여 노드가, 상기 신규 노드에게 매핑되었던 블록 데이터를 상기 신규 노드의 로컬 스토리지에 복사 완료하였다는 복사 완료 메시지를 상기 신규 노드로부터 수신하면, 상기 신규 노드에게 매핑되었던 블록 데이터가 다른 노드에게 매핑될 수 있도록 상기 신규 노드에게 매핑되었던 블록 데이터를 매핑되지 않은 상태로 전환시키는 단계를 더 포함하는, 분산파일시스템 활용 블록 데이터 매핑 방법.
  9. 블록체인 네트워크에서의 블록 데이터 매핑을 위한 노드 장치로서,
    로컬 스토리지의 사이즈가 상기 노드 장치의 블록체인 데이터 이외에 분산파일시스템에 포함되는 블록체인 데이터 중 일부를 저장 가능한 것으로 판단되면, 상기 분산파일시스템에 포함되는 블록체인 데이터 중 일부의 복사본을 상기 로컬 스토리지에 저장하여 상기 분산파일시스템의 일부를 이루도록 하는 스토리지 할당부;
    상기 복사본 중 매핑되지 않은 블록 데이터의 적어도 일부를 매핑할 신규 노드를 발견하면, 상기 신규 노드에 상기 복사본 중 매핑되지 않은 블록 데이터의 적어도 일부를 매핑하는 매핑부; 및
    상기 신규 노드로부터, 상기 블록체인 네트워크에서 탈퇴하는 탈퇴 메시지를 수신하면, 상기 신규 노드에게 매핑되었던 블록 데이터가 다른 노드에게 매핑될 수 있도록 상기 신규 노드에게 매핑되었던 블록 데이터를 매핑되지 않은 상태로 전환시키는 데이터 관리부를 포함하는, 분산파일시스템 활용 블록 데이터 매핑을 위한 노드 장치.
  10. 제9항에 있어서,
    상기 매핑부에 의해, 상기 신규 노드는 상기 매핑되지 않은 블록 데이터의 적어도 일부를 매핑 방식에 의해 소유하게 되고,
    상기 매핑 방식에 의해, 상기 신규 노드가 상기 블록체인 데이터를 자신의 로컬 스토리지에 직접 저장하지 않고도 상기 블록체인 네트워크에 참여하여 상기 신규 노드의 블록 동기화 과정이 생략되는 것을 특징으로 하는, 분산파일시스템 활용 블록 데이터 매핑을 위한 노드 장치.
  11. 제9항에 있어서,
    상기 스토리지 할당부는, 상기 복사본을 스트라이프 형태로 상기 로컬 스토리지에 저장하는 것인, 분산파일시스템 활용 블록 데이터 매핑을 위한 노드 장치.
  12. 제9항에 있어서,
    상기 노드 장치는, 상기 복사본의 사이즈에 대응하는 인센티브를 제공받는 것인, 분산파일시스템 활용 블록 데이터 매핑을 위한 노드 장치.
  13. 제9항에 있어서,
    상기 스토리지 할당부는, 상기 복사본에 대한 메타데이터를 임시 저장하고,
    상기 매핑부는, 신규 노드로부터 매핑되지 않은 블록 데이터를 찾기 위한 디스커버 메시지를 상기 신규 노드의 공개키와 함께 수신하면, 상기 복사본 중 매핑되지 않은 블록 데이터에 상기 공개키로 서명하고 임시 저장한 상기 메타데이터를 상기 신규 노드로 전송하여 매핑하는 것인, 분산파일시스템 활용 블록 데이터 매핑을 위한 노드 장치.
  14. 삭제
  15. 제9항에 있어서,
    상기 데이터 관리부는, 상기 신규 노드에게 매핑되었던 블록 데이터를 상기 신규 노드의 로컬 스토리지에 복사 완료하였다는 복사 완료 메시지를 상기 신규 노드로부터 수신하면, 상기 신규 노드에게 매핑되었던 블록 데이터가 다른 노드에게 매핑될 수 있도록 상기 신규 노드에게 매핑되었던 블록 데이터를 매핑되지 않은 상태로 전환시키는 것인, 분산파일시스템 활용 블록 데이터 매핑을 위한 노드 장치.
  16. 제1항 내지 제6항 및 제8항 중 어느 한 항의 방법을 컴퓨터에서 실행하기 위한 프로그램을 기록한 컴퓨터에서 판독 가능한 기록매체.
KR1020190131180A 2019-10-22 2019-10-22 블록 동기화 과정 생략 및 원격 저장소 제공을 위한 분산파일시스템 활용 블록 데이터 매핑 방법 및 노드 장치 KR102275389B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190131180A KR102275389B1 (ko) 2019-10-22 2019-10-22 블록 동기화 과정 생략 및 원격 저장소 제공을 위한 분산파일시스템 활용 블록 데이터 매핑 방법 및 노드 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190131180A KR102275389B1 (ko) 2019-10-22 2019-10-22 블록 동기화 과정 생략 및 원격 저장소 제공을 위한 분산파일시스템 활용 블록 데이터 매핑 방법 및 노드 장치

Publications (2)

Publication Number Publication Date
KR20210047503A KR20210047503A (ko) 2021-04-30
KR102275389B1 true KR102275389B1 (ko) 2021-07-08

Family

ID=75740838

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190131180A KR102275389B1 (ko) 2019-10-22 2019-10-22 블록 동기화 과정 생략 및 원격 저장소 제공을 위한 분산파일시스템 활용 블록 데이터 매핑 방법 및 노드 장치

Country Status (1)

Country Link
KR (1) KR102275389B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116643300B (zh) * 2023-07-25 2023-10-10 齐鲁空天信息研究院 基于地图映射的卫星导航数据分布式实时处理方法和系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101704702B1 (ko) 2016-04-18 2017-02-08 (주)케이사인 태깅 기반의 개인 정보 비식별화 시스템 및 방법
KR101727525B1 (ko) 2016-09-05 2017-04-17 주식회사 스케일체인 블록체인 기반 분산 저장 방법 및 이를 이용한 장치
JP2018018348A (ja) 2016-07-28 2018-02-01 Kddi株式会社 ブロックチェーンを作成するシステム及びプログラム
JP2019003416A (ja) 2017-06-15 2019-01-10 富士通株式会社 ストレージ制御装置、制御プログラム及び制御方法
KR101950912B1 (ko) 2016-08-01 2019-02-21 서강대학교산학협력단 블록체인 기반 트랜잭션 검증 시스템 및 그 방법

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101371202B1 (ko) * 2012-04-19 2014-03-10 케이티하이텔 주식회사 멀티 메타데이터 서버 구조를 갖는 분산 파일 시스템 및 이를 이용한 데이터 처리 방법
CN106462605A (zh) * 2014-05-13 2017-02-22 云聚公司 流媒体内容的分布式安全数据存储和传输
KR102050129B1 (ko) * 2016-05-03 2019-11-28 안규태 블록 검증을 위한 복수의 일방향 함수를 지원하는 블록 체인
KR20170137388A (ko) * 2016-06-03 2017-12-13 (주) 블록체인오에스 블록체인 기술을 이용한 무결성 보장 방법
KR20180046078A (ko) * 2016-10-27 2018-05-08 삼성에스디에스 주식회사 데이터베이스 리밸런싱 방법
KR102026225B1 (ko) * 2017-01-19 2019-09-27 주식회사 케이티 블록 체인을 이용하여 데이터를 관리하는 장치 및 방법
CN107562775B (zh) * 2017-07-14 2020-04-24 创新先进技术有限公司 一种基于区块链的数据处理方法及设备
WO2019124610A1 (ko) * 2017-12-21 2019-06-27 문인식 블록체인을 이용한 개인정보 분리 후 분산 저장 및 조합을 통한 인증 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101704702B1 (ko) 2016-04-18 2017-02-08 (주)케이사인 태깅 기반의 개인 정보 비식별화 시스템 및 방법
JP2018018348A (ja) 2016-07-28 2018-02-01 Kddi株式会社 ブロックチェーンを作成するシステム及びプログラム
KR101950912B1 (ko) 2016-08-01 2019-02-21 서강대학교산학협력단 블록체인 기반 트랜잭션 검증 시스템 및 그 방법
KR101727525B1 (ko) 2016-09-05 2017-04-17 주식회사 스케일체인 블록체인 기반 분산 저장 방법 및 이를 이용한 장치
JP2019003416A (ja) 2017-06-15 2019-01-10 富士通株式会社 ストレージ制御装置、制御プログラム及び制御方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
de Pedro, Adán Sánchez, Daniele Levi, and Luis Iván Cuende. "Witnet: A decentralized oracle network protocol." arXiv preprint arXiv:1711.09756 (2017.11.27.) 1부.
Eric Wall, Chainmerger - unifying blockchains after a fork, https://medium.com/@ercwl/chainmerger-unifying-blockchains-after-a-fork-4ccc930907c0 (2017.9.24.) 1부.
https://medium.com/@kblockresearch/8-ipfs-interplanetary-file-system-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0-1%EB%B6%80-http-web%EC%9D%84-%EB%84%98%EC%96%B4%EC%84%9C-ipfs-web%EC%9C%BC%EB%A1%9C-46382a2a65

Also Published As

Publication number Publication date
KR20210047503A (ko) 2021-04-30

Similar Documents

Publication Publication Date Title
US10255340B2 (en) Method and apparatus for distributed configuration management
US20220309007A1 (en) Data Write Method, Apparatus, and System
KR101544480B1 (ko) 복수 개의 프락시 서버를 포함하는 분산 저장 시스템 및 그 오브젝트 관리 방법 및 컴퓨터에 의하여 독출가능한 저장 매체
WO2018045820A1 (zh) 一种文件同步的方法、设备及系统
US20180239726A1 (en) Data transmission method, device, and system
EP3564835B1 (en) Data redistribution method and apparatus, and database cluster
CN105324757A (zh) 具有分布式清单的去复制的数据存储系统
US9952940B2 (en) Method of operating a shared nothing cluster system
KR101670343B1 (ko) 피어투피어 데이터 복제를 위한 방법, 장치, 및 시스템 및 마스터 노드 전환을 위한 방법, 장치, 및 시스템
WO2016202199A1 (zh) 分布式文件系统及其文件元信息管理方法
CN103207867A (zh) 处理数据块的方法、发起恢复操作的方法和节点
CN110531924A (zh) 用于扩展区块链存储容量的方法和设备、存储介质及系统
US8934363B2 (en) Managing data transfer in a network environment
CN112162846B (zh) 事务处理方法、设备及计算机可读存储介质
CN110569302A (zh) 一种基于lucene的分布式集群的物理隔离的方法及装置
KR102275389B1 (ko) 블록 동기화 과정 생략 및 원격 저장소 제공을 위한 분산파일시스템 활용 블록 데이터 매핑 방법 및 노드 장치
CN109739684A (zh) 基于向量时钟的分布式键值数据库的副本修复方法与装置
CN109407975A (zh) 写数据方法与计算节点以及分布式存储系统
US11061719B2 (en) High availability cluster management of computing nodes
CN111459416A (zh) 一种基于分布式存储的热迁移系统及其迁移方法
CN116561217A (zh) 元数据管理系统及方法
US20220027315A1 (en) Method of synchronous deletion for distributed storage system
CN110417887A (zh) 一种基于代理的信息资源目录同步方法
CN110019057A (zh) 请求处理方法及装置
US20150100573A1 (en) Method for processing data

Legal Events

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