KR20230096526A - Method of distributing and storing block chain data and device of thereof - Google Patents

Method of distributing and storing block chain data and device of thereof Download PDF

Info

Publication number
KR20230096526A
KR20230096526A KR1020210186098A KR20210186098A KR20230096526A KR 20230096526 A KR20230096526 A KR 20230096526A KR 1020210186098 A KR1020210186098 A KR 1020210186098A KR 20210186098 A KR20210186098 A KR 20210186098A KR 20230096526 A KR20230096526 A KR 20230096526A
Authority
KR
South Korea
Prior art keywords
data
blockchain
peer
peer node
capacity
Prior art date
Application number
KR1020210186098A
Other languages
Korean (ko)
Other versions
KR102628501B1 (en
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 KR1020210186098A priority Critical patent/KR102628501B1/en
Publication of KR20230096526A publication Critical patent/KR20230096526A/en
Application granted granted Critical
Publication of KR102628501B1 publication Critical patent/KR102628501B1/en

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
    • 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
    • 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
    • H04L67/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1065Discovery involving distributed pre-established resource-based relationships among peers, e.g. based on distributed hash tables [DHT] 
    • 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/565Conversion or adaptation of application format or content
    • H04L67/5651Reducing the amount or size of exchanged application data

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명의 실시예에 따른 블록체인 데이터 분산 저장 방법은, 제1 데이터 및 기준정보 데이터 중 적어도 하나를 포함하는 블록체인 데이터 각각의 용량에 기초하여, 블록체인 데이터 중에서 분할 저장되는 블록체인 데이터를 적어도 하나의 제2 데이터로서 선정하는 단계; 제2 데이터를 분할하여 각각 소정의 기준 용량을 갖는 복수의 제3 데이터를 생성하는 단계; 복수의 피어노드(peer node)의 상태 및 복수의 제3 데이터에 기초하여 복수의 피어노드 중에서 적어도 하나의 제1 피어노드를 선정하는 단계; 및 생성된 제3 데이터 각각을 복수의 제1 피어노드의 개수에 기초하여 복사하고, 선정된 복수의 제1 피어노드에 저장하는 단계를 포함할 수 있다.Block chain data distribution storage method according to an embodiment of the present invention, based on the capacity of each block chain data including at least one of first data and reference information data, block chain data that is divided and stored among block chain data is at least selecting as one piece of second data; dividing the second data to generate a plurality of third data each having a predetermined reference capacity; selecting at least one first peer node from among a plurality of peer nodes based on states of a plurality of peer nodes and a plurality of third data; and copying each of the generated third data based on the number of the plurality of first peer nodes and storing them in the plurality of selected first peer nodes.

Description

블록체인 데이터 분산 저장 방법 및 블록체인 데이터 분산 저장 장치{METHOD OF DISTRIBUTING AND STORING BLOCK CHAIN DATA AND DEVICE OF THEREOF}Block chain data distribution storage method and block chain data distribution storage device {METHOD OF DISTRIBUTING AND STORING BLOCK CHAIN DATA AND DEVICE OF THEREOF}

본 발명은 블록체인 데이터 분산 저장 장치 및 블록체인 데이터 분산 저장 방법에 관한 것이다.The present invention relates to a blockchain data distributed storage device and a blockchain data distributed storage method.

최근, 비트코인, 이더리움, 리플과 같은 암호화폐의 등장과 함께 블록체인 기술이 각광받고 있다. 블록체인 기술은 P2P 분산 컴퓨팅을 기반으로 데이터의 보안성을 보장하고 투명한 관리를 가능하게 하며 4차 산업 시대의 핵심 기술인 블록체인은 금융, 의료 등 다양한 분야에 적용되는 추세이다. 서버가 데이터를 관리하며 클라이언트에게 서비스를 제공하는 서버-클라이언트 네트워크 모델과 달리 블록체인 네트워크는 서버가 없이 탈중앙화된 구조를 가지며, 각각의 노드가 블록체인 데이터를 저장하고 있어야 네트워크에 참여할 수 있다.Recently, with the advent of cryptocurrencies such as Bitcoin, Ethereum, and Ripple, blockchain technology is in the limelight. Blockchain technology guarantees the security of data and enables transparent management based on P2P distributed computing. Blockchain, a key technology in the 4th industrial era, is a trend that is applied to various fields such as finance and medical care. Unlike the server-client network model in which a server manages data and provides services to clients, a blockchain network has a decentralized structure without a server, and each node must store blockchain data to participate in the network.

한편, 블록체인 데이터는 트랜잭션이 지속적으로 발생함에 따라, 점차 증가하게 되므로, 이러한 대용량 블록체인 데이터를 모든 노드가 저장하고 있어야 블록체인 네트워크에 참여할 수 있어 대용량 블록체인 데이터를 저장하는 공간에 대한 문제가 있다. 또한, 대용량 블록체인 데이터의 해쉬값만 저장하고, 원본 블록체인 데이터를 외부 저장장치에 저장하는 경우, 원본 데이터의 유출 또는 유실 가능성이 존재하여 블록체인 기술의 보안성 문제가 존재한다.On the other hand, since blockchain data gradually increases as transactions continuously occur, all nodes must store such large-capacity blockchain data to participate in the blockchain network, which causes problems with space to store large-capacity blockchain data. there is. In addition, when only the hash value of large-capacity blockchain data is stored and the original blockchain data is stored in an external storage device, there is a possibility of leakage or loss of the original data, resulting in a security problem of blockchain technology.

본 발명이 해결하고자 하는 과제는, 블록체인 데이터가 일정 용량 이상으로 커지는 경우, 블록체인 데이터를 분산하여 저장하는 방법 및 장치를 제공하는 것이다.The problem to be solved by the present invention is to provide a method and apparatus for distributing and storing block-chain data when the block-chain data grows beyond a certain capacity.

다만, 본 발명이 해결하고자 하는 과제는 이상에서 언급한 것으로 제한되지 않으며, 언급되지 않은 또 다른 해결하고자 하는 과제는 아래의 기재로부터 본 발명이 속하는 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.However, the problem to be solved by the present invention is not limited to those mentioned above, and another problem to be solved that is not mentioned can be clearly understood by those skilled in the art from the description below. will be.

본 발명의 일 실시예에 따른 블록체인 데이터 분산 저장 방법은, 제1 데이터 및 기준정보 데이터 중 적어도 하나를 포함하는 블록체인 데이터 각각의 용량에 기초하여, 상기 블록체인 데이터 중에서 분할 저장되는 블록체인 데이터를 적어도 하나의 제2 데이터로서 선정하는 단계; 상기 제2 데이터를 분할하여 각각 소정의 기준 용량을 갖는 복수의 제3 데이터를 생성하는 단계; 복수의 피어노드(peer node)의 상태 및 상기 복수의 제3 데이터에 기초하여 상기 복수의 피어노드 중에서 적어도 하나의 제1 피어노드를 선정하는 단계; 및 상기 생성된 제3 데이터 각각을 상기 복수의 제1 피어노드의 개수에 기초하여 복사하고, 상기 선정된 복수의 제1 피어노드에 저장하는 단계를 포함한다.Block chain data distribution storage method according to an embodiment of the present invention, based on the capacity of each block chain data including at least one of first data and reference information data, block chain data divided and stored among the block chain data selecting as at least one second data; dividing the second data to generate a plurality of third data each having a predetermined reference capacity; selecting at least one first peer node from among the plurality of peer nodes based on states of a plurality of peer nodes and the plurality of third data; and copying each of the generated third data based on the number of the plurality of first peer nodes and storing them in the selected plurality of first peer nodes.

상기 제2 데이터를 선정하는 단계는, 상기 제1 데이터가 상기 기준 용량을 초과하고 기준정보 데이터가 상기 기준 용량 이하인 경우, 상기 제1 데이터를 상기 제2 데이터로서 선정하는 단계를 포함하고, 상기 제3 데이터를 생성하는 단계는, 상기 제2 데이터를 상기 소정의 용량 단위로 나눈 각 데이터와 상기 소정의 용량 단위로 나누고 남은 잔여 데이터를 제3 데이터로 생성하는 단계를 포함할 수 있다.The selecting of the second data includes selecting the first data as the second data when the first data exceeds the reference capacity and the reference information data is equal to or less than the reference capacity, and The generating of the 3 data may include generating each data divided by the predetermined capacity unit and residual data remaining after dividing the second data by the predetermined capacity unit as third data.

상기 제2 데이터를 선정하는 단계는, 상기 제1 데이터가 상기 기준 용량을 초과하고 상기 기준정보 데이터가 상기 기준 용량 이하인 경우, 상기 제1 데이터 및 상기 트랜잭션 데이터를 제2 데이터로서 선정하는 단계를 포함하고, 상기 제3 데이터를 생성하는 단계는, 상기 제2 데이터를 상기 소정의 용량 단위로 나눈 각 데이터와 상기 소정의 용량 단위로 나누고 남은 잔여 데이터를 제3 데이터로 생성하는 단계를 포함할 수 있다.The selecting of the second data includes selecting the first data and the transaction data as second data when the first data exceeds the reference capacity and the reference information data is equal to or less than the reference capacity. And the generating of the third data may include generating each data divided by the predetermined capacity unit and residual data remaining after dividing the second data by the predetermined capacity unit as third data. .

상기 제2 데이터를 선정하는 단계는, 상기 제1 데이터 및 상기 기준정보 데이터 각각이 상기 기준 용량을 초과하는 경우, 상기 제1 데이터 및 상기 기준정보 데이터를 제2 데이터로서 선정하는 단계를 포함하고, 상기 제3 데이터를 생성하는 단계는, 상기 제2 데이터를 상기 소정의 용량 단위로 나눈 각 데이터와 상기 소정의 용량 단위로 나누고 남은 잔여 데이터를 제3 데이터로 생성하는 단계를 포함할 수 있다.The step of selecting the second data includes selecting the first data and the reference information data as second data when each of the first data and the reference information data exceeds the reference capacity; The generating of the third data may include generating third data, each data obtained by dividing the second data by the predetermined capacity unit, and residual data remaining after dividing the second data by the predetermined capacity unit.

상기 복수의 피어노드의 상태는 상기 복수의 피어노드의 저장 가능한 공간 또는 복수의 피어노드 사이의 라우팅 거리의 합을 포함하고, 상기 복수의 제1 피어노드를 선정하는 단계는, 상기 제3 데이터의 합의에 필요한 피어노드의 수를 상기 제1 피어노드의 개수로 선정하는 단계; 및 상기 복수의 피어노드 각각의 저장 가능한 공간이 상기 기준 용량 이상이고, 상기 복수의 피어노드 중에서 라우팅 거리의 합이 가장 작은 순서대로 상기 제1 피어노드의 개수를 갖는 복수의 제1 피어노드를 선정하는 단계를 포함할 수 있다.The state of the plurality of peer nodes includes a storage space of the plurality of peer nodes or a sum of routing distances between the plurality of peer nodes, and the selecting of the plurality of first peer nodes comprises: selecting the number of peer nodes required for consensus as the number of the first peer nodes; and selecting a plurality of first peer nodes having the number of first peer nodes in the order in which the storage space of each of the plurality of peer nodes is greater than or equal to the reference capacity and the sum of routing distances is the smallest among the plurality of peer nodes. steps may be included.

상기 블록체인 데이터 분산 저장 방법은 상기 생성된 생성된 복수의 제3 데이터 및 상기 복수의 제1 피어노드에 기초해서 해시 테이블(Hash table)을 생성하는 단계; 및 상기 생성된 해시 테이블을 상기 복수의 제2 피어노드에 저장하는 단계를 더 포함할 수 있다.The blockchain data distribution and storage method includes generating a hash table based on the generated plurality of third data and the plurality of first peer nodes; and storing the generated hash table in the plurality of second peer nodes.

상기 해시 테이블은 상기 복수의 제1 피어노드의 인메모리 데이터베이스에 저장될 수 있다.The hash table may be stored in an in-memory database of the plurality of first peer nodes.

상기 해시 테이블을 생성하는 단계는, 상기 복수의 제1 피어노드 및 상기 제3 데이터를 해시 함수를 이용하여 제3 데이터의 해시 값을 연산하는 단계; 상기 연산된 해시 값으로 머클트리(Merkle tree)를 생성하는 단계; 및 상기 생성된 머클트리 및 상기 제3 데이터의 해싱 값으로 해시 테이블을 생성하는 단계를 더 포함할 수 있다.The generating of the hash table may include calculating a hash value of the third data by using a hash function of the plurality of first peer nodes and the third data; generating a Merkle tree with the calculated hash value; and generating a hash table using the generated Merkle tree and hash values of the third data.

본 발명의 다른 측면에 따른 블록체인 데이터 분산 저장 장치는 제1 데이터 및 기준정보 데이터중 적어도 하나를 포함하는 블록체인 데이터를 획득하는 송수신부; 및 상기 획득된 제1 데이터 및 기준정보 데이터 중 적어도 하나를 포함하는 블록체인 데이터 각각의 용량에 기초하여, 상기 블록체인 데이터 중에서 분할 저장되는 블록체인 데이터를 적어도 하나의 제2 데이터로서 선정하고, 상기 제2 데이터를 분할하여 각각 소정의 기준 용량을 갖는 복수의 제3 데이터를 생성하며, 복수의 피어노드(peer node)의 상태 및 상기 복수의 제3 데이터에 기초하여 상기 복수의 피어노드 중에서 적어도 하나의 제1 피어노드를 선정하고, 상기 생성된 제3 데이터 각각을 상기 복수의 제1 피어노드의 개수에 기초하여 복사하고, 상기 선정된 복수의 제1 피어노드에 저장하도록 제어하는 제어부를 포함한다.A block chain data distribution storage device according to another aspect of the present invention includes a transceiver for acquiring block chain data including at least one of first data and reference information data; And based on the capacity of each block-chain data including at least one of the obtained first data and reference information data, block-chain data that is divided and stored among the block-chain data is selected as at least one second data, The second data is divided to generate a plurality of third data each having a predetermined reference capacity, and at least one of the plurality of peer nodes is generated based on the state of the plurality of peer nodes and the plurality of third data. and a controller for controlling to select a first peer node of , copy each of the generated third data based on the number of the plurality of first peer nodes, and store the generated third data in the selected plurality of first peer nodes. .

본 발명의 다른 실시예에 따른 컴퓨터 프로그램은 상기 컴퓨터 프로그램은, 블록체인 데이터 분산 저장 장치에 의해 수행되는 블록체인 데이터 분산 저장 방법을 프로세서가 수행하도록 하기 위한 명령어를 포함하고, 상기 방법은, 제1 데이터 및 기준정보 데이터 중 적어도 하나를 포함하는 블록체인 데이터 각각의 용량에 기초하여, 상기 블록체인 데이터 중에서 분할 저장되는 블록체인 데이터를 적어도 하나의 제2 데이터로서 선정하는 단계; 상기 제2 데이터를 분할하여 각각 소정의 기준 용량을 갖는 복수의 제3 데이터를 생성하는 단계; 복수의 피어노드(peer node)의 상태 및 상기 복수의 제3 데이터에 기초하여 상기 복수의 피어노드 중에서 적어도 하나의 제1 피어노드를 선정하는 단계; 및 상기 생성된 제3 데이터 각각을 상기 복수의 제1 피어노드의 개수에 기초하여 복사하고, 상기 선정된 복수의 제1 피어노드에 저장하는 단계를 포함한다.A computer program according to another embodiment of the present invention includes instructions for causing a processor to perform a block chain data distribution storage method performed by a block chain data distribution storage device, the method comprising: a first Selecting block chain data divided and stored from among the block chain data as at least one second data based on the capacity of each block chain data including at least one of data and reference information data; dividing the second data to generate a plurality of third data each having a predetermined reference capacity; selecting at least one first peer node from among the plurality of peer nodes based on states of a plurality of peer nodes and the plurality of third data; and copying each of the generated third data based on the number of the plurality of first peer nodes and storing them in the selected plurality of first peer nodes.

본 발명의 또 다른 실시예에 따른 컴퓨터 판독 가능 기록매체는 컴퓨터 프로그램을 저장하고, 상기 컴퓨터 프로그램은 블록체인 데이터 분산 저장 장치에 의해 수행되는 블록체인 데이터 분산 저장 방법을 프로세서가 수행하도록 하기 위한 명령어를 포함하고, 상기 방법은, 제1 데이터 및 기준정보 데이터 중 적어도 하나를 포함하는 블록체인 데이터 각각의 용량에 기초하여, 상기 블록체인 데이터 중에서 분할 저장되는 블록체인 데이터를 적어도 하나의 제2 데이터로서 선정하는 단계; 상기 제2 데이터를 분할하여 각각 소정의 기준 용량을 갖는 복수의 제3 데이터를 생성하는 단계; 복수의 피어노드(peer node)의 상태 및 상기 복수의 제3 데이터에 기초하여 상기 복수의 피어노드 중에서 적어도 하나의 제1 피어노드를 선정하는 단계; 및 상기 생성된 제3 데이터 각각을 상기 복수의 제1 피어노드의 개수에 기초하여 복사하고, 상기 선정된 복수의 제1 피어노드에 저장하는 단계를 포함할 수 있다.A computer readable recording medium according to another embodiment of the present invention stores a computer program, and the computer program provides instructions for causing a processor to perform a block chain data distribution storage method performed by a block chain data distribution storage device. and, wherein the method selects, as at least one second data, block-chain data that is divided and stored from among the block-chain data, based on the capacity of each block-chain data including at least one of the first data and the reference information data. doing; dividing the second data to generate a plurality of third data each having a predetermined reference capacity; selecting at least one first peer node from among the plurality of peer nodes based on states of a plurality of peer nodes and the plurality of third data; and copying each of the generated third data based on the number of the plurality of first peer nodes and storing them in the selected plurality of first peer nodes.

본 발명의 실시예에 의하면, 블록체인 데이터의 용량이 소정 용량 이상이 되는 경우, 이를 분할 하여 각 블록체인 네트워크에 저장함으로써 데이터 유실을 막고, 분산 저장됨으로써 데이터 유출을 막을 수 있는 효과가 있다. 또한, 일반 데이터뿐만 아니라, 기준정보 데이터 및 해시 테이블도 분산 저장할 수 있어, 전체 블록체인 네트워크에 저장되는 용량을 줄일 수 있으면서도, 각 데이터의 유출을 막을 수 있는 효과가 있다.According to an embodiment of the present invention, when the capacity of blockchain data exceeds a predetermined capacity, data loss can be prevented by dividing and storing it in each blockchain network, and data leakage can be prevented by distributed storage. In addition, not only general data, but also standard information data and hash tables can be distributed and stored, so that the capacity stored in the entire blockchain network can be reduced, and leakage of each data can be prevented.

도 1은 본 발명의 일 실시예에 따른 블록체인 데이터 분산 저장 장치를 설명하기 위한 블록 구성도이다.
도 2는 본 발명의 일 실시예에 따른 블록체인 데이터를 분산 저장하기 위한 블록체인 데이터 분산 저장 시스템을 설명하기 위한 블록 구성도이다.
도 3은 본 발명의 일 실시예에 따른 블록체인 데이터 분산 저장 장치에 저장되는 데이터의 용량에 따른 피어노드의 구분을 나타낸다.
도 4는 본 발명의 일 실시예에 따라 피어노드가 로컬 클러스터로서 구성되는 방법을 나타낸다.
도 5는 본 발명의 일 실시예에 따라 데이터 브로커부의 기능을 설명하기 위한 블록 구성도이다.
도 6은 블록체인 데이터 분산 저장 장치를 하드웨어적 측면에서 설명하기 위한 블록 구성도이다.
도 7은 본 발명의 다른 측면에 따른 블록체인 데이터 분산 저장 방법의 순서도이다.
1 is a block diagram illustrating a block chain data distribution storage device according to an embodiment of the present invention.
2 is a block diagram illustrating a block chain data distribution storage system for distributed storage of block chain data according to an embodiment of the present invention.
3 shows the classification of peer nodes according to the capacity of data stored in a blockchain data distribution storage device according to an embodiment of the present invention.
4 illustrates how peer nodes are configured as local clusters according to one embodiment of the present invention.
5 is a block diagram illustrating the function of a data broker unit according to an embodiment of the present invention.
6 is a block diagram for explaining a block chain data distribution storage device in terms of hardware.
7 is a flowchart of a block chain data distribution storage method according to another aspect of the present invention.

본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.Advantages and features of the present invention, and methods of achieving them, will become clear with reference to the detailed description of the following embodiments taken in conjunction with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below, but may be implemented in various different forms, and only these embodiments make the disclosure of the present invention complete, and common knowledge in the art to which the present invention belongs. It is provided to completely inform the person who has the scope of the invention, and the present invention is only defined by the scope of the claims.

본 발명의 실시예들을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명의 실시예에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.In describing the embodiments of the present invention, if it is determined that a detailed description of a known function or configuration may unnecessarily obscure the subject matter of the present invention, the detailed description will be omitted. In addition, terms to be described later are terms defined in consideration of functions in the embodiment of the present invention, which may vary according to the intention or custom of a user or operator. Therefore, the definition should be made based on the contents throughout this specification.

도 1은 본 발명의 일 실시예에 따른 블록체인 데이터 분산 저장 장치를 설명하기 위한 블록 구성도이다.1 is a block diagram illustrating a block chain data distribution storage device according to an embodiment of the present invention.

도 1을 참조하면, 블록체인 데이터 분산 저장 장치(100)는 송수신부(110), 모드 판단부(120), 클러스터부(130), 트랜잭션 브로커부(140) 및 데이터 브로커부(150)를 포함할 수 있다.Referring to FIG. 1, the blockchain data distribution storage device 100 includes a transmission/reception unit 110, a mode determination unit 120, a cluster unit 130, a transaction broker unit 140, and a data broker unit 150. can do.

블록체인 네트워크에서, 지속적으로 발생되는 트랜잭션으로 시간이 지남에 따라 블록체인 데이터가 점차 증가되고, 이에 따라 모든 노드가 블록체인 데이터를 저장하여야 하므로, 일부 노드는 대용량 블록체인 데이터를 불필요하게 가지고 있어야 할 필요가 있다.In a blockchain network, blockchain data gradually increases over time due to continuously occurring transactions, and as a result, all nodes must store blockchain data, so some nodes need to have large amounts of blockchain data unnecessarily. There is a need.

실시예에 따라, 블록체인 데이터 분산 저장 장치(100)는 저장하려는 블록체인 데이터의 용량에 기초하여, 저장 모드를 판단할 수 있고 판단된 저장 모드에 따라 저장하려는 블록체인 데이터를 분할 및 복사하여 각 노드에 저장하도록 할 수 있다. 여기서, 저장하려는 블록체인 데이터는 트랜잭션 데이터, 일반 데이터, 기업의 기준정보 데이터 및 해시 테이블을 포함할 수 있다.According to an embodiment, the blockchain data distribution storage device 100 may determine a storage mode based on the capacity of blockchain data to be stored, and divides and copies the blockchain data to be stored according to the determined storage mode to each It can be stored in node. Here, the blockchain data to be stored may include transaction data, general data, company standard information data, and hash tables.

송수신부(110)는 유선 또는 무선 통신을 이용하여, 외부 장치로부터 블록체인 데이터를 수신 받거나, 상기 블록체인 데이터를 저장하도록 요청 신호를 수신할 수 있다. 또한, 송수신부(110)는 유선 또는 무선 통신을 이용하여, 노드에 저장될 블록체인 데이터를 송신할 수 있고, 블록체인 데이터의 합의를 위하여 블록체인 데이터가 저장된 노드에 합의를 요청 신호를 송신하거나 합의가 완료된 데이터를 외부 기기에 송신하도록 요청 신호를 송신할 수 있다. 송수신부(110)가 유선 또는 무선 통신을 이용하여 데이터를 송신 또는 수신하는 방법은 예를 들어, 데이터 케이블 등의 유선 통신을 이용하거나, Wi-fi, NFC 등의 기 공지된 무선통신 방법을 이용할 수 있으나 송수신부(110)가 데이터 통신하는 방법은 이에 한정되지 않는다.The transceiver 110 may receive block chain data from an external device or receive a request signal to store the block chain data using wired or wireless communication. In addition, the transceiver 110 may transmit blockchain data to be stored in the node using wired or wireless communication, and transmits a signal requesting agreement to the node where the blockchain data is stored for consensus of the blockchain data, or A request signal may be transmitted to transmit data for which an agreement has been completed to an external device. A method in which the transceiver 110 transmits or receives data using wired or wireless communication may use, for example, wired communication such as a data cable or a known wireless communication method such as Wi-Fi or NFC. However, the method of data communication by the transceiver 110 is not limited thereto.

도 2는 본 발명의 일 실시예에 따른 블록체인 데이터를 분산 저장하기 위한 블록체인 데이터 분산 저장 시스템을 설명하기 위한 블록 구성도이다.2 is a block diagram illustrating a block chain data distribution storage system for distributed storage of block chain data according to an embodiment of the present invention.

도 2를 더 참조하면, 블록체인 데이터 분산 저장 시스템(10)은 블록체인 데이터 분산 저장 장치(100), 클라이언트(200) 및 N개(여기서, N은 자연수)의 를 포함할 수 있다.Referring further to FIG. 2 , the blockchain data distribution storage system 10 may include a blockchain data distribution storage device 100, a client 200, and N (where N is a natural number).

클라이언트(200)가 블록체인 데이터를 저장 요청 하는 경우, 블록체인 데이터 분산 저장 장치(100)는 요청된 블록체인 데이터의 용량에 기초하여 N개의 피어노드(300) 중에서 상기 블록체인 데이터를 저장할 적어도 하나의 피어노드를 선정할 수 있다. 또한, 블록체인 데이터 분산 저장 장치(100)는 요청된 블록체인 데이터뿐 아니라, 블록체인 데이터로부터 생성된 해시 테이블 데이터를 피어노드에 분산 저장되도록 피어노드에 요청할 수 있다.When the client 200 requests storage of blockchain data, the blockchain data distribution storage device 100 stores at least one of the N peer nodes 300 to store the blockchain data based on the requested capacity of the blockchain data. A peer node of can be selected. In addition, the blockchain data distribution storage device 100 may request the peer node to distribute and store hash table data generated from the blockchain data as well as the requested blockchain data.

클라이언트(200)가 블록체인 데이터를 요청하는 경우, 블록체인 데이터 분산 저장 장치(100)는 블록체인 데이터가 분산 저장된 적어도 하나의 피어노드에 대해 피어노드에 저장된 해시 테이블을 이용하여 블록체인 데이터가 분산 저장된 피어노드를 검색할 수 있다. 이어서, 블록체인 데이터 분산 저장 장치(100)는 검색된 피어노드로부터 분산 저장된 블록체인 데이터를 검증하고, 검증된 블록체인 데이터를 클라이언트(200)에게 전송하도록 요청할 수도 있고, 블록체인 데이터 분산 저장 장치(100)가 적어도 하나의 피어노드로부터 전송받아 직접 전송할 수 있다.When the client 200 requests blockchain data, the blockchain data distribution storage device 100 distributes the blockchain data by using a hash table stored in the peer node for at least one peer node where the blockchain data is distributed and stored. Saved peer nodes can be searched. Subsequently, the blockchain data distribution storage device 100 may verify distributed and stored blockchain data from the searched peer node, request transmission of the verified blockchain data to the client 200, and block chain data distribution storage device 100 ) can be received from at least one peer node and transmitted directly.

모드 판단부(120) 클라이언트(200)에 의해 저장 요청된 블록체인 데이터의 용량에 따라 저장 모드를 판단할 수 있고, N개의 피어노드(300) 중에서 판단된 저장 모드에 대응되는 적어도 하나의 피어노드를 선정할 수 있다. 블록체인 데이터는 제1 데이터, 기준정보 데이터 및 트랜젝션 데이터 중 적어도 하나를 포함할 수 있다. 실시예에 따라, 모드 판단부(120)는 상기 블록체인 데이터 각각의 용량에 기초하여, 상기 블록체인 데이터 중에서 피어노드(300)에 분할 저장될 적어도 하나의 제2 데이터로서 선정할 수 있다. 일 실시예에 따라, 소정의 기준 용량은 1MB일 수 있다.The mode determining unit 120 may determine the storage mode according to the capacity of blockchain data requested for storage by the client 200, and at least one peer node corresponding to the determined storage mode among the N peer nodes 300 can be selected. Blockchain data may include at least one of first data, reference information data, and transaction data. Depending on the embodiment, the mode determination unit 120 may select at least one second data to be divided and stored in the peer node 300 from among the blockchain data based on the capacity of each of the blockchain data. According to one embodiment, the predetermined reference capacity may be 1 MB.

이와 달리, 블록체인 데이터 각각의 용량이 기준 용량을 초과하지 않는 경우, 모드 판단부(120)는 블록체인 데이터를 분할 저장하지 않고 종래 저장 방식인 모든 피어노드(300)에 블록체인 데이터를 저장하도록 판단할 수도 있다.In contrast, when the capacity of each block chain data does not exceed the standard capacity, the mode determination unit 120 stores the block chain data in all peer nodes 300, which is a conventional storage method, without dividing and storing the block chain data. can also judge.

여기서, 모드 판단부(120)가 판단하는 모드는 상기 블록체인 데이터 중에서 모든 데이터가 기준 용량을 초과하지 않는 경우, 제1 모드로 판단될 수 있고, 제1 데이터만이 기준 용량을 초과하는 경우, 제2 모드로 판단될 수 있으며, 기준정보 데이터만이 기준 용량을 초과하는 경우, 제3 모드로 판단될 수 있고, 제1 데이터 및 기준정보 데이터 모두 기준 용량을 초과하는 경우 제4 모드로 판단될 수 있다. Here, the mode determined by the mode determining unit 120 may be determined as the first mode when all data among the blockchain data does not exceed the standard capacity, and if only the first data exceeds the standard capacity, It may be determined as the second mode, and when only the reference information data exceeds the standard capacity, it may be determined as the third mode, and when both the first data and the reference information data exceed the standard capacity, it may be determined as the fourth mode. can

실시예에 따라, 모드 판단부(120)가 판단하는 4가지 모드 이외에 트랜잭션 데이터 또는 해쉬 테이블의 용량이 소정의 기준 용량을 초과하는 경우에도 트랜잭션 데이터 또는 해쉬 테이블도 소정의 기준 용량으로 나누어 피어노드(300)에 저장하는 방법을 선택할 수 있다.Depending on the embodiment, even if the capacity of the transaction data or hash table exceeds the predetermined reference capacity in addition to the four modes determined by the mode determination unit 120, the transaction data or hash table is also divided by the predetermined reference capacity and the peer node ( 300).

도 3은 본 발명의 일 실시예에 따른 블록체인 데이터 분산 저장 장치에 저장되는 데이터의 용량에 따른 피어노드의 구분을 나타낸다.3 shows the classification of peer nodes according to the capacity of data stored in a blockchain data distribution storage device according to an embodiment of the present invention.

도 3을 더 참조하면, 피어노드(300)는 저장될 수 있는 데이터의 종류에 따라 도 3의 (a) 내지 (d)에 대응하는 네 가지 모드를 가질 수 있다. 여기서, 피어노드(300)의 모드는 블록체인을 이용하는 서비스에 따라 달라질 수 있다.Referring further to FIG. 3 , the peer node 300 may have four modes corresponding to (a) to (d) of FIG. 3 according to the type of data that can be stored. Here, the mode of the peer node 300 may vary depending on the service using the blockchain.

도 3의 (a)를 더 참조하면, 피어노드(300)는 트랜잭션 블록(Transaction Block), 상태 DB(DataBase) 및 DHT(Data hash Table)을 저장할 수 있는 거래 노드에 해당하는 제1 모드를 가질 수 있다. 모드 판단부(120)가 블록체인 데이터의 용량을 기초로, 기본 모드인 제1 모드로 블록체인 데이터를 저장하기로 결정하였다면, 모드 판단부(120)는 제1 모드에 해당하는 피어노드(300)에 해당 블록체인 데이터를 저장하도록 요청할 수 있다.Referring further to (a) of FIG. 3 , the peer node 300 has a first mode corresponding to a transaction node capable of storing a transaction block, a state database (DB), and a data hash table (DHT). can If the mode determination unit 120 determines to store blockchain data in the first mode, which is the basic mode, based on the capacity of the blockchain data, the mode determination unit 120 determines the peer node 300 corresponding to the first mode. ) to store the corresponding blockchain data.

여기서, 트랜잭션 블록은 종래 외부 거래를 기록하기 위해 발생하는 블록체인 데이터이고, 상태 DB는 블록의 최신 상태를 나타내는 데이터이며, DHT는 블록체인 데이터를 피어노드(300)에 분산 저장할 경우 및 블록체인 데이터를 조회할 경우에 블록체인 데이터가 분산 저장된 피어노드의 위치가 기록된 데이터이다. 블록체인 데이터가 분산 저장된 위치를 저장하는 DHT는 빠른 위치 조회를 위하여 노드의 인메모리 DB에 저장될 수 있다.Here, the transaction block is blockchain data generated to record conventional external transactions, the state DB is data representing the latest state of the block, and DHT is the case where blockchain data is distributed and stored in the peer node 300 and blockchain data In case of searching for , the location of the peer node where the blockchain data is distributed is recorded. DHT, which stores the location where blockchain data is distributed and stored, can be stored in the node's in-memory DB for fast location inquiry.

도 3의 (b)를 더 참조하면, 피어노드(300)는 트랜잭션 블록, 대용량 파일 블록, 상태 DB 및 DHT을 저장할 수 있는 대용량 데이터 노드에 해당하는 제2 모드를 가질 수 있다.Referring further to (b) of FIG. 3 , the peer node 300 may have a second mode corresponding to a large data node capable of storing a transaction block, a large file block, a state DB, and a DHT.

여기서. 대용량 파일 블록은 클라이언트(200)가 저장을 요청하는 상기 제1 데이터에 해당하는 데이터에 대한 블록체인 블록일 수 있다.here. The large file block may be a blockchain block for data corresponding to the first data requested by the client 200 to be stored.

도 3의 (c)를 더 참조하면, 피어노드(300)는 트랜잭션 블록, 상태 DB, 마스터 데이터 및 DHT을 저장할 수 있는 마스터 데이터 분산 노드에 해당하는 제3 모드를 가질 수 있다.Referring further to (c) of FIG. 3 , the peer node 300 may have a third mode corresponding to a master data distribution node capable of storing a transaction block, state DB, master data, and DHT.

여기서, 마스터 데이터는 다양한 기업의 기준정보 데이터에 해당할 수 있다. 예를 들어, 물류 운송장이 블록체인 네트워크에 저장될 경우 제3 모드인 대용량 데이터 노드에 저장할 수 있으며, SCM(Supply chain management)에서, 다양한 기업의 기준정보를 마스터 데이터로 제3 모드에 해당하는 피어노드(300)에 분산시켜 저장될 수 있다.Here, the master data may correspond to standard information data of various companies. For example, if a logistic waybill is stored in a blockchain network, it can be stored in a mass data node, which is the third mode, and in SCM (Supply Chain Management), reference information of various companies is used as master data by peers corresponding to the third mode. It can be distributed and stored in the nodes 300.

도 3의 (d)를 더 참조하면, 피어노드(300)는 트랜잭션 블록, 대용량 블록, 상태 DB, 마스터 데이터 및 DHT을 저장할 수 있는 풀 노드에 해당하는 제4 모드를 가질 수 있다.Referring further to (d) of FIG. 3 , the peer node 300 may have a fourth mode corresponding to a full node capable of storing transaction blocks, large-capacity blocks, state DBs, master data, and DHT.

여기서 모든 피어노드(300)는 트랜잭션 블록, 대용량 블록 및 마스터 데이터가 저장될 수 있도록 구현되며, 서비스의 목적에 따라 선택될 수 있다. 또한, 블록체인 데이터의 저장공간을 제공하는 피어노드(300)는 제공하려는 저장 서비스의 목적에 따라 모드를 선택할 수 있으며 해당 모드에 따라 차별화된 인센티브를 제공받을 수 있다. 예를 들어, 피어노드(300)가 모든 데이터를 저장할 수 있는 제4 모드에 해당하는 경우, 제1 모드에 해당하는 경우보다 더 많은 인센티브를 제공받도록 구성할 수 있다.Here, all peer nodes 300 are implemented to store transaction blocks, large-capacity blocks, and master data, and can be selected according to the purpose of the service. In addition, the peer node 300 that provides storage space for blockchain data can select a mode according to the purpose of the storage service to be provided, and can be provided with differentiated incentives according to the mode. For example, when the peer node 300 corresponds to the fourth mode in which all data can be stored, more incentives may be provided than when corresponding to the first mode.

도 4는 본 발명의 일 실시예에 따라 피어노드가 로컬 클러스터로서 구성되는 방법을 나타낸다.4 illustrates how peer nodes are configured as local clusters according to one embodiment of the present invention.

도 4를 더 참조하면, 클러스터부(130)는 모드 판단부(120)에 의해 판단된 모드에 기초하여, 블록체인 데이터가 저장될 적어도 하나의 피어노드를 로컬 클러스터(local cluster)로서 구성할 수 있다. 다시 말해, 클러스터부(130)는 대용량 또는 대규모 블록체인 데이터의 저장을 위해 온체인 동적 피어노드 그룹인 로컬 클러스터를 구성할 수 있다.Referring further to FIG. 4 , the cluster unit 130 may configure at least one peer node in which blockchain data will be stored as a local cluster based on the mode determined by the mode determination unit 120. there is. In other words, the cluster unit 130 may configure a local cluster, which is a group of on-chain dynamic peer nodes, to store large-capacity or large-scale blockchain data.

여기서, 클러스터부(130)의 로컬 클러스터 구성 방법은 복수의 피어노드(300) 상태에 로컬 클러스터를 구성 가능하다. 복수의 피어노드(300)의 상태는 상기 복수의 피어노드의 저장 가능한 공간 또는 복수의 피어노드 사이의 라우팅 거리의 합을 포함할 수 있다. 즉, 클러스터부(130)는 피어노드(300)에 남아있는 저장 공간과 최적화된 라우팅 거리에 기초하여, 최적의 피어노드 그룹인 로컬 클러스터를 구성할 수 있다. Here, the local cluster configuration method of the cluster unit 130 may configure a local cluster in a state of a plurality of peer nodes 300 . The state of the plurality of peer nodes 300 may include the storage space of the plurality of peer nodes or the sum of routing distances between the plurality of peer nodes. That is, the cluster unit 130 may configure a local cluster, which is an optimal peer node group, based on the storage space remaining in the peer node 300 and the optimized routing distance.

클러스터부(130)는 로컬 클러스터를 구성하기 위하여, 모드 판단부(120) 또는 후술할 데이터 브로커부(150)에 의해 분할된 데이터의 수에 기초하여 피어노드의 개수를 정할 수 있다. 예를 들어, 클러스터부(130)는 상기 복수의 피어노드 각각의 저장 가능한 공간이 상기 기준 용량 이상이고, 상기 복수의 피어노드 중에서 라우팅 거리의 합이 가장 작은 순서대로 상기 분할된 블록체인 데이터가 저장될 피어노드의 개수를 갖는 복수의 피어노드를 선정할 수 있다.The cluster unit 130 may determine the number of peer nodes based on the number of pieces of data divided by the mode determination unit 120 or the data broker unit 150 to be described later to form a local cluster. For example, the cluster unit 130 stores the divided blockchain data in an order in which the storage space of each of the plurality of peer nodes is equal to or greater than the reference capacity and the sum of routing distances is the smallest among the plurality of peer nodes. A plurality of peer nodes having the number of peer nodes to become can be selected.

예를 들어, 피어노드1(311) 내지 피어노드12(324)가 모두 제2 모드에 해당하고, 저장하려는 블록체인 데이터가 제2 모드로 판단되며, 블록체인 데이터를 2개의 데이터로 분할하여 각각 4개의 데이터로 복사하여 저장하려는 경우, 클러스터부(130)는 저장 가능한 공간과 최적화된 라우팅 거리에 기초하여, 상기 분할된 데이터 중 하나의 데이터를 저장하기 위해 피어노드1(311), 피어노드2(312), 피어노드5(313) 및 피어노드6(314)를 제1 로컬 클러스터(310)로 구성할 수 있다.For example, if peer node 1 (311) to peer node 12 (324) all correspond to the second mode, the blockchain data to be stored is determined to be the second mode, and the blockchain data is divided into two pieces of data, respectively. When copying and storing 4 pieces of data, the cluster unit 130 uses peer node 1 (311) and peer node 2 to store one of the divided data based on the available storage space and the optimized routing distance. 312 , peer node 5 313 , and peer node 6 314 may constitute a first local cluster 310 .

또한, 클러스터부(130)는 상기 분할된 데이터 중 나머지 하나의 데이터를 저장하기 위해 피어노드7(321), 피어노드8(322), 피어노드11(323) 및 피어노드12(324)를 제2 로컬 클러스터(320)로 구성할 수 있다.In addition, the cluster unit 130 removes peer node 7 (321), peer node 8 (322), peer node 11 (323), and peer node 12 (324) to store the other one of the divided data. It can be composed of 2 local clusters (320).

또한, 클러스터부(130)는 블록체인 데이터 저장에 필요한 최소 필요 피어노드 수를 유지할 수 있도록 피어노드(300)의 상태를 모니터링 하고, 로컬 클러스터에 포함된 피어노드 중에서 연결되지 않은 피어노드가 있는 경우, 다른 저장 가능한 피어노드를 포함하는 새로운 로컬 클러스터를 동적으로 구성할 수 있다.In addition, the cluster unit 130 monitors the state of the peer node 300 to maintain the minimum number of peer nodes required for storing blockchain data, and when there is a peer node that is not connected among peer nodes included in the local cluster, , can dynamically configure a new local cluster containing other storable peer nodes.

트랜잭션 브로커부(140)는 종래 댑 서버(Dapp server)를 통한 트랜잭션의 처리를 할 수 있다. 댑(Dapp)은 백엔드 코드가 탈중앙화된 피어-투-피어 네트워크 상에서 돌아가고 (혹은 데이터 호출 및 등록을 블록체인 데이터베이스에 하고) 이를 프론트엔드에서 인터페이스로 제공해주는 어플리케이션을 말한다.The transaction broker unit 140 may process transactions through a conventional Dapp server. A Dapp is an application whose backend code runs on a decentralized peer-to-peer network (or calls and registers data to a blockchain database) and provides it as an interface on the frontend.

또한, 트랜잭션 브로커부(140)는 클라이언트(200)에 의해 제출된 trx와 서명, 블록체인 데이터 해시, 후술할 데이터 브로커부(150)에 의해 생성된 데이터 머클트리 및 trx 브로커의 서명을 이용하여 트랜잭션을 처리할 수 있다.In addition, the transaction broker unit 140 performs a transaction using the trx and signature submitted by the client 200, the blockchain data hash, the data merkle tree generated by the data broker unit 150 to be described later, and the signature of the trx broker. can handle

데이터 브로커부(150)는 송수신부(110)로부터 획득된 블록체인 데이터를 분할 및 분산하고 머클트리(kerkle tree)를 생성하며, 컨시스턴트 해시(consistent hash)작업을 할 수 있다. 트랜잭션 브로커부(140)에 의해 수행되는 트랜잭션 처리 과정과 데이터 브로커부(150)에 의해 수행되는 데이터 브로커 과정은 동시에 진행될 수 있으며, 트랜잭션 브로커부(140)와 데이터 브로커부(150)의 각 과정이 모두 오류없이 종료되는 경우, 최적적으로 검증이 완료되어 원장에 커밋(Commit)될 수 있다.The data broker unit 150 may divide and distribute the blockchain data obtained from the transmission/reception unit 110, generate a kerkle tree, and perform a consistent hash operation. The transaction processing process performed by the transaction broker unit 140 and the data broker process performed by the data broker unit 150 may be performed simultaneously, and each process of the transaction broker unit 140 and the data broker unit 150 If all ends without error, verification is optimally completed and can be committed to the ledger.

도 5는 본 발명의 일 실시예에 따라 데이터 브로커부의 기능을 설명하기 위한 블록 구성도이다.5 is a block diagram illustrating the function of a data broker unit according to an embodiment of the present invention.

도 5를 더 참조하면, 데이터 브로커부(150)는 데이터 분할부(151), 머클트리 생성부(152) 및 컨시스턴트 해싱부(153)를 포함할 수 있다.Referring further to FIG. 5 , the data broker 150 may include a data partitioning unit 151, a Merkle tree generating unit 152, and a consistent hashing unit 153.

데이터 브로커부(150)는 트랜잭션 브로커부(140)으로부터 대용량 블록체인 데이터를 수신받고, 해당 블록체인 데이터를 암호화 및 비식별화시키고, 분할하여 분할된 데이터의 저장 피어노드 정보가 담긴 해시테이블을 생성하여, 모드 판단부(120)에서 결정된 각 피어 노드에 저장되도록 할 수 있다.The data broker unit 150 receives large-capacity blockchain data from the transaction broker unit 140, encrypts and de-identifies the blockchain data, divides it, and creates a hash table containing peer node information for storing the segmented data. Thus, it can be stored in each peer node determined by the mode determination unit 120.

데이터 분할부(151)는 블록체인 데이터를 소정의 기준 용량을 갖는 복수의 데이터로 분할할 수 있다. 여기서 소정의 기준 용량은 모드 판단부(120)가 각 모드를 판단하기 위해 이용하였던 기준 용량일 수 있다. 클라이언트(200)가 저장 요청한 블록체인 데이터의 용량이 기준 용량를 초과하는 경우, 데이터 분할부(151)는 상기 블록체인 데이터를 기준 용량 단위로 분할 할 수 있다. The data division unit 151 may divide blockchain data into a plurality of data having a predetermined reference capacity. Here, the predetermined reference capacitance may be the reference capacitance used by the mode determining unit 120 to determine each mode. When the storage capacity of blockchain data requested by the client 200 exceeds the standard capacity, the data division unit 151 may divide the blockchain data into units of standard capacity.

예를 들어, 클라이언트(200)가 저장 요청한 블록체인 데이터의 용량이 2.1MB이고 기준 용량이 1MB인 경우, 데이터 분할부(151)는 상기 블록체인 데이터를 1MB 단위로 나누어 2개의 분할 데이터를 생성할 수 있고, 남은 0.1MB로 1개의 분할 데이터를 생성할 수 있다. 이어서, 분할된 3개의 데이터는 데이터 브로커와 트랜잭션 브로커의 수행동작에 의해 결정된 로컬 클러스터에 포함된 피어노드에 각각 저장될 수 있다.For example, if the capacity of the blockchain data requested by the client 200 for storage is 2.1MB and the reference capacity is 1MB, the data partitioning unit 151 divides the blockchain data into 1MB units to generate two pieces of divided data. , and one segmented data can be created with the remaining 0.1MB. Subsequently, the three pieces of divided data may be stored in peer nodes included in the local cluster determined by the operations performed by the data broker and the transaction broker.

머클트리 생성부(152)는 복수의 피어노드 및 상기 분할된 블록체인 데이터를 해시 함수를 이용하여 분할된 블록체인 데이터의 해시 값을 연산하여, 상기 연산된 해시 값으로 머클트리를 생성할 수 있다.The Merkle tree generation unit 152 may calculate a hash value of the divided blockchain data using a hash function for a plurality of peer nodes and the divided blockchain data, and generate a Merkle tree with the calculated hash value. .

또한, 머클트리 생성부(152)는 차후 분할된 블록체인 데이터의 완전성 검증을 위해 상기 데이터 분할부(151)가 분할한 블록체인 데이터에 체크썸(checksum)을 추가하고 이를 이용하여, 머클트리 구조에서 분할된 데이터를 검증할 수 있다.In addition, the Merkle tree generation unit 152 adds a checksum to the blockchain data divided by the data segmentation unit 151 to verify the integrity of the divided blockchain data in the future, and uses it to construct a Merkle tree structure. You can verify the split data in .

여기서 머클트리는 블록체인에서 블록 하나에 포함된 모든 블록체인 데이터 정보를 요약하여 트리(tree)형태로 표현한 데이터 구조이다. 또한, 머클트리 생성부(152)는 멀티 패트리샤 트리(MPT)를 이용하여 머클트리를 생성할 수 있다. 머클트리를 생성하는 방법은 기 공지된 기술이므로, 이에 대한 상세한 설명은 생략하기로 한다.Here, the Merkle tree is a data structure that summarizes all blockchain data information included in one block in the blockchain and expresses it in the form of a tree. Also, the Merkle tree generation unit 152 may generate a Merkle tree using a multi-patricia tree (MPT). Since a method of generating a Merkle tree is a known technology, a detailed description thereof will be omitted.

컨시스턴트 해싱부(153)는 분할된 블록체인 데이터와 데이터 브로커의 서명을 기초로 컨시스턴트 해시(Consistent hash)할 수 있다.The consistent hashing unit 153 may perform a consistent hash based on the divided blockchain data and the signature of the data broker.

여기서, 컨시스턴트 해시는 분할된 블록체인 데이터를 해싱하고, 머클트리 생성부(152)에 의해 생성된 머클 트리 및 해싱된 데이터를 모드(mod)함수 등을 이용하여 클러스터부(130)에 의해 구성된 로컬 클러스터의 각 피어노드가 배치된 해시 테이블을 생성하고, 생성된 해시 테이블을 피어노드에 저장하는 과정을 의미한다.Here, the consistent hash is constructed by hashing the divided blockchain data, and by using the merkle tree and hashed data generated by the merkle tree generation unit 152 by the cluster unit 130 using a mod function, etc. It refers to the process of creating a hash table where each peer node of the local cluster is placed and storing the created hash table in the peer node.

실시예에 따라, 상기 해시 테이블은 모든 피어노드(300)에 저장될 수도 있고, 상기 로컬 클러스터의 제1 피어노드에 저장될 수도 있다.Depending on the embodiment, the hash table may be stored in all peer nodes 300 or in the first peer node of the local cluster.

여기서, 해시 테이블은 복수의 피어노드 및 상기 분할된 블록체인 데이터를 해시 함수를 이용하여 분할된 블록체인 데이터의 해시 값이 연산되고, 상기 연산된 해시 값으로 머클트리(Merkle tree)를 생성되며, 상기 생성된 머클트리 및 상기 제3 데이터의 해싱 값으로 생성될 수 있다. 또한, 빠른 분할된 데이터의 위치 추적을 위하여, 상기 해시 테이블은 로컬 클러스터의 제1 피어노드의 인메모리 데이터베이스에 저장될 수 있다. Here, in the hash table, a hash value of the divided blockchain data is calculated by using a hash function for a plurality of peer nodes and the divided blockchain data, and a Merkle tree is generated with the calculated hash value, It may be generated as a hash value of the generated Merkle tree and the third data. Also, for fast location tracking of divided data, the hash table may be stored in an in-memory database of a first peer node of a local cluster.

도 6은 블록체인 데이터 분산 저장 장치를 하드웨어적 측면에서 설명하기 위한 블록 구성도이다.6 is a block diagram for explaining a block chain data distribution storage device in terms of hardware.

도 1 및 도 6을 참조하면, 블록체인 데이터 분산 저장 장치(100)는 적어도 하나의 명령을 저장하는 저장장치(161) 및 상기 저장장치(161)의 적어도 하나의 명령을 실행하는 프로세서(162), 송수신 장치(163), 입력 인터페이스 장치(164) 및 출력 인터페이스 장치(165)를 포함할 수 있다.1 and 6, the blockchain data distribution storage device 100 includes a storage device 161 for storing at least one command and a processor 162 for executing at least one command of the storage device 161. , a transmitting/receiving device 163, an input interface device 164, and an output interface device 165.

블록체인 데이터 분산 저장 장치(100)에 포함된 각각의 구성 요소들(161, 162, 163, 164, 165)은 데이터 버스(bus, 166)에 의해 연결되어 서로 통신을 수행할 수 있다.Each of the components 161, 162, 163, 164, and 165 included in the blockchain data distribution storage device 100 are connected by a data bus 166 to communicate with each other.

저장장치(161)는 메모리 또는 휘발성 저장 매체 및 비휘발성 저장 매체 중에서 적어도 하나를 포함할 수 있다. 예를 들어, 저장장치(161)는 읽기 전용 메모리(read only memory, ROM) 및 랜덤 액세스 메모리(random access memory, RAM) 중에서 적어도 하나를 포함할 수 있다.The storage device 161 may include at least one of a memory or a volatile storage medium and a non-volatile storage medium. For example, the storage device 161 may include at least one of read only memory (ROM) and random access memory (RAM).

저장장치(161)는 후술될 프로세서(162)에 의해 실행될 적어도 하나의 명령을 더 포함할 수 있고, 입력 인터페이스 장치(164)에서 사용자로부터 입력된 기준 용량에 대한 정보, 해싱 함수 등을 저장할 수 있다.The storage device 161 may further include at least one command to be executed by the processor 162 to be described later, and may store information about the reference capacity input from the user through the input interface device 164, a hashing function, and the like. .

프로세서(162)는 중앙 처리 장치(central processing unit, CPU), 그래픽 처리 장치(graphics processing unit, GPU), MCU(micro controller unit) 또는 본 발명의 실시예들에 따른 방법들이 수행되는 전용의 프로세서를 의미할 수 있다. The processor 162 may be a central processing unit (CPU), a graphics processing unit (GPU), a micro controller unit (MCU), or a dedicated processor on which methods according to embodiments of the present invention are performed. can mean

프로세서(162)는 앞서 설명한 바와 같이, 저장장치(161)에 저장된 적어도 하나의 프로그램 명령에 의해 모드 판단부(120), 클러스터부(130), 트랜잭션 브로커부(140) 및 데이터 브로커부(150)의 기능을 수행할 수 있으며, 이들 각각은 적어도 하나의 모듈의 형태로 메모리에 저장되어 프로세서에 의해 실행될 수 있다. As described above, the processor 162 operates the mode determination unit 120, the cluster unit 130, the transaction broker unit 140, and the data broker unit 150 by at least one program command stored in the storage device 161. It can perform the functions of, and each of them can be stored in a memory in the form of at least one module and executed by a processor.

송수신 장치(163)는 내부 장치 또는 통신으로 연결된 외부 장치로부터 데이터를 수신하거나 송신할 수 있고, 송수신부(110)의 기능을 수행할 수 있다. The transceiver 163 may receive or transmit data from an internal device or an external device connected through communication, and may perform the functions of the transceiver 110 .

입력 인터페이스 장치(164)는 사용자로부터 적어도 하나의 제어 신호 또는 설정 수치를 입력받을 수 있다. 예를 들어, 입력 인터페이스 장치(164)는 블록체인 데이터를 분할하기 위한 기준 용량에 대한 정보, 해시 함수 등의 사용자 입력을 받을 수 있다.The input interface device 164 may receive at least one control signal or set value from a user. For example, the input interface device 164 may receive user input, such as information about a reference capacity for dividing blockchain data and a hash function.

출력 인터페이스 장치(165)는 프로세서(162)의 동작에 의해 블록체인 데이터가 저장된 피어노드의 위치를 포함하는 적어도 하나의 정보를 출력하여 가시화할 수 있다.The output interface device 165 may output and visualize at least one piece of information including the location of a peer node where blockchain data is stored by an operation of the processor 162 .

이상에서는, 본 발명의 일 실시예에 따른 블록체인 데이터 분산 저장 장치(100)를 설명하였다. 이하에서는 본 발명의 다른 측면에 따른 상기 블록체인 데이터 분산 저장 장치(100) 내 프로세서 동작에 의해 실행되는 블록체인 데이터 분산 저장 방법을 설명한다.In the above, the blockchain data distribution storage device 100 according to an embodiment of the present invention has been described. Hereinafter, a block chain data distribution storage method executed by a processor operation in the block chain data distribution storage device 100 according to another aspect of the present invention will be described.

도 7은 본 발명의 다른 측면에 따른 블록체인 데이터 분산 저장 방법의 순서도이다.7 is a flowchart of a block chain data distribution storage method according to another aspect of the present invention.

도 7을 더 참조하면 먼저, 프로세서(162)는 제1 데이터 및 기준정보 데이터 중 적어도 하나를 포함하는 블록체인 데이터 각각의 용량에 기초하여, 상기 블록체인 데이터 중에서 분할 저장되는 블록체인 데이터를 적어도 하나의 제2 데이터로서 선정할 수 있다(S100).Referring further to FIG. 7, first, the processor 162 divides and stores at least one block chain data among the block chain data based on the capacity of each block chain data including at least one of the first data and the reference information data. Can be selected as the second data of (S100).

이어서, 프로세서(162)는 상기 제2 데이터를 분할하여 각각 소정의 기준 용량을 갖는 복수의 제3 데이터를 생성할 수 있다(S200).Subsequently, the processor 162 may divide the second data to generate a plurality of third data each having a predetermined reference capacity (S200).

또한, 프로세서(162)는 복수의 피어노드(peer node)의 상태 및 상기 복수의 제3 데이터에 기초하여 상기 복수의 피어노드 중에서 적어도 하나의 제1 피어노드를 선정할 수 있다(S300).Also, the processor 162 may select at least one first peer node from among the plurality of peer nodes based on the states of the plurality of peer nodes and the plurality of third data (S300).

프로세서(162)는 상기 생성된 제3 데이터 각각을 상기 복수의 제1 피어노드의 개수에 기초하여 복사하고, 상기 선정된 복수의 제1 피어노드에 저장할 수 있다(S400).The processor 162 may copy each of the generated third data based on the number of the plurality of first peer nodes and store them in the selected plurality of first peer nodes (S400).

본 발명에 첨부된 블록도의 각 블록과 흐름도의 각 단계의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수도 있다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 인코딩 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 인코딩 프로세서를 통해 수행되는 그 인스트럭션들이 블록도의 각 블록 또는 흐름도의 각 단계에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방법으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 블록도의 각 블록 또는 흐름도 각 단계에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 블록도의 각 블록 및 흐름도의 각 단계에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.Combinations of each block of the block diagram and each step of the flowchart accompanying the present invention may be performed by computer program instructions. Since these computer program instructions may be loaded into an encoding processor of a general-purpose computer, special-purpose computer, or other programmable data processing equipment, the instructions executed by the encoding processor of the computer or other programmable data processing equipment are each block or block diagram of the block diagram. Each step in the flow chart creates means for performing the functions described. These computer program instructions may also be stored in a computer usable or computer readable memory that can be directed to a computer or other programmable data processing equipment to implement functionality in a particular way, such that the computer usable or computer readable memory It is also possible for the instructions stored in to produce an article of manufacture containing instruction means for performing the function described in each block of the block diagram or each step of the flow chart. The computer program instructions can also be loaded on a computer or other programmable data processing equipment, so that a series of operational steps are performed on the computer or other programmable data processing equipment to create a computer-executed process to generate computer or other programmable data processing equipment. It is also possible that the instructions performing the processing equipment provide steps for executing the functions described in each block of the block diagram and each step of the flowchart.

또한, 각 블록 또는 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실시 예들에서는 블록들 또는 단계들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들 또는 단계들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.Additionally, each block or each step may represent a module, segment or portion of code that includes one or more executable instructions for executing specified logical function(s). It should also be noted that in some alternative embodiments, it is possible for the functions recited in blocks or steps to occur out of order. For example, two blocks or steps shown in succession may in fact be performed substantially concurrently, or the blocks or steps may sometimes be performed in reverse order depending on their function.

이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 품질에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시 예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시 예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 균등한 범위 내에 있는 모든 기술사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.The above description is merely an example of the technical idea of the present invention, and various modifications and variations can be made to those skilled in the art without departing from the essential qualities of the present invention. Therefore, the embodiments disclosed in the present invention are not intended to limit the technical idea of the present invention, but to explain, and the scope of the technical idea of the present invention is not limited by these embodiments. The protection scope of the present invention should be construed according to the claims below, and all technical ideas within the scope equivalent thereto should be construed as being included in the scope of the present invention.

10 : 블록체인 데이터 분산 저장 시스템
100 : 블록체인 데이터 분산 저장 장치
200 : 클라이언트
300 : 피어노드
150 : 데이터 브로커
10: Blockchain data distributed storage system
100: Blockchain data distributed storage device
200: client
300: peer node
150: data broker

Claims (11)

블록체인 데이터 분산 저장 장치에 의해 수행되는 블록체인 데이터 분산 저장 방법은,
제1 데이터 및 기준정보 데이터 중 적어도 하나를 포함하는 블록체인 데이터 각각의 용량에 기초하여, 상기 블록체인 데이터 중에서 분할 저장되는 블록체인 데이터를 적어도 하나의 제2 데이터로서 선정하는 단계;
상기 제2 데이터를 분할하여 각각 소정의 기준 용량을 갖는 복수의 제3 데이터를 생성하는 단계;
복수의 피어노드(peer node)의 상태 및 상기 복수의 제3 데이터에 기초하여 상기 복수의 피어노드 중에서 적어도 하나의 제1 피어노드를 선정하는 단계; 및
상기 생성된 제3 데이터 각각을 상기 적어도 하나의 제1 피어노드의 개수에 기초하여 복사하고, 상기 선정된 적어도 하나의 제1 피어노드에 저장하는 단계를 포함하는
블록체인 데이터 분산 저장 방법.
The blockchain data distributed storage method performed by the blockchain data distributed storage device,
Based on the capacity of each of the block chain data including at least one of the first data and the reference information data, selecting block chain data that is divided and stored among the block chain data as at least one second data;
dividing the second data to generate a plurality of third data each having a predetermined reference capacity;
selecting at least one first peer node from among the plurality of peer nodes based on states of a plurality of peer nodes and the plurality of third data; and
Copying each of the generated third data based on the number of the at least one first peer node and storing the generated third data in the selected at least one first peer node.
Blockchain data distributed storage method.
제 1 항에 있어서,
상기 제2 데이터를 선정하는 단계는,
상기 제1 데이터가 상기 기준 용량을 초과하고 기준정보 데이터가 상기 기준 용량 이하인 경우, 상기 제1 데이터를 상기 제2 데이터로서 선정하는 단계를 포함하고,
상기 제3 데이터를 생성하는 단계는,
상기 제2 데이터를 상기 기준 용량의 단위로 나눈 각 데이터와 상기 기준 용량의 단위로 나누고 남은 잔여 데이터를 제3 데이터로 생성하는 단계를 포함하는,
블록체인 데이터 분산 저장 방법.
According to claim 1,
In the step of selecting the second data,
selecting the first data as the second data when the first data exceeds the reference capacity and the reference information data is equal to or less than the reference capacity;
Generating the third data,
Generating each data divided by the unit of the reference capacity and residual data remaining after dividing the second data by the unit of the reference capacity as third data,
Blockchain data distributed storage method.
제 1 항에 있어서,
상기 제2 데이터를 선정하는 단계는,
상기 제1 데이터가 상기 기준 용량을 초과하고 상기 기준정보 데이터가 상기 기준 용량 이하인 경우, 상기 제1 데이터 및 상기 기준정보 데이터를 제2 데이터로서 선정하는 단계를 포함하고,
상기 제3 데이터를 생성하는 단계는,
상기 제2 데이터를 상기 기준 용량의 단위로 나눈 각 데이터와 상기 기준 용량의 단위로 나누고 남은 잔여 데이터를 제3 데이터로 생성하는 단계를 포함하는,
블록체인 데이터 분산 저장 방법.
According to claim 1,
In the step of selecting the second data,
selecting the first data and the reference information data as second data when the first data exceeds the reference capacity and the reference information data is equal to or less than the reference capacity;
Generating the third data,
Generating each data divided by the unit of the reference capacity and residual data remaining after dividing the second data by the unit of the reference capacity as third data,
Blockchain data distributed storage method.
제 1 항에 있어서,
상기 제2 데이터를 선정하는 단계는,
상기 제1 데이터 및 상기 기준정보 데이터 각각이 상기 기준 용량을 초과하는 경우, 상기 제1 데이터 및 상기 기준정보 데이터를 제2 데이터로서 선정하는 단계를 포함하고,
상기 제3 데이터를 생성하는 단계는,
상기 제2 데이터를 상기 기준 용량의 단위로 나눈 각 데이터와 상기 기준 용량의 단위로 나누고 남은 잔여 데이터를 제3 데이터로 생성하는 단계를 포함하는,
블록체인 데이터 분산 저장 방법.
According to claim 1,
In the step of selecting the second data,
selecting the first data and the reference information data as second data when each of the first data and the reference information data exceeds the reference capacity;
Generating the third data,
Generating each data divided by the unit of the reference capacity and residual data remaining after dividing the second data by the unit of the reference capacity as third data,
Blockchain data distributed storage method.
제 1 항에 있어서,
상기 복수의 피어노드의 상태는
상기 복수의 피어노드의 저장 가능한 공간 또는 복수의 피어노드 사이의 라우팅 거리의 합을 포함하고,
상기 적어도 하나의 제1 피어노드를 선정하는 단계는,
상기 제3 데이터의 합의에 필요한 피어노드의 수를 상기 제1 피어노드의 개수로 선정하는 단계; 및
상기 적어도 하나의 피어노드 각각의 저장 가능한 공간이 상기 기준 용량 이상이고, 상기 적어도 하나의 피어노드 중에서 라우팅 거리의 합이 가장 작은 순서대로 상기 제1 피어노드의 개수를 갖는 적어도 하나의 제1 피어노드를 선정하는 단계를 포함하는
블록체인 데이터 분산 저장 방법.
According to claim 1,
The state of the plurality of peer nodes is
Includes a storage space of the plurality of peer nodes or a sum of routing distances between the plurality of peer nodes;
The step of selecting at least one first peer node,
selecting the number of peer nodes required to agree on the third data as the number of the first peer nodes; and
at least one first peer node having a storage space of each of the at least one peer node equal to or greater than the reference capacity, and having the number of the first peer nodes in order of smallest sum of routing distances among the at least one peer node; including the step of selecting
Blockchain data distributed storage method.
제 1 항에 있어서,
상기 블록체인 데이터 분산 저장 방법은
상기 생성된 생성된 복수의 제3 데이터 및 상기 적어도 하나의 제1 피어노드에 기초해서 해시 테이블(Hash table)을 생성하는 단계; 및
상기 생성된 해시 테이블을 상기 적어도 하나의 제1 피어노드에 저장하는 단계를 더 포함하는
블록체인 데이터 분산 저장 방법.
According to claim 1,
The blockchain data distributed storage method
generating a hash table based on the generated plurality of third data and the at least one first peer node; and
Storing the generated hash table in the at least one first peer node
Blockchain data distributed storage method.
제 6 항에 있어서,
상기 해시 테이블은
상기 적어도 하나의 제1 피어노드의 인메모리 데이터베이스에 저장되는,
블록체인 데이터 분산 저장 방법.
According to claim 6,
The hash table is
stored in the in-memory database of the at least one first peer node,
Blockchain data distributed storage method.
제 6 항에 있어서,
상기 해시 테이블을 생성하는 단계는,
상기 적어도 하나의 제1 피어노드 및 상기 제3 데이터를 해시 함수를 이용하여 제3 데이터의 해시 값을 연산하는 단계;
상기 연산된 해시 값으로 머클트리(Merkle tree)를 생성하는 단계; 및
상기 생성된 머클트리 및 상기 제3 데이터의 해싱 값으로 해시 테이블을 생성하는 단계를 더 포함하는,
블록체인 데이터 분산 저장 방법.
According to claim 6,
The step of generating the hash table is,
calculating a hash value of the third data by using a hash function of the at least one first peer node and the third data;
generating a Merkle tree with the calculated hash value; and
Further comprising generating a hash table with the generated Merkle tree and the hashing value of the third data.
Blockchain data distributed storage method.
제1 데이터 및 기준정보 데이터중 적어도 하나를 포함하는 블록체인 데이터를 획득하는 송수신부; 및
상기 획득된 제1 데이터 및 기준정보 데이터 중 적어도 하나를 포함하는 블록체인 데이터 각각의 용량에 기초하여, 상기 블록체인 데이터 중에서 분할 저장되는 블록체인 데이터를 적어도 하나의 제2 데이터로서 선정하고, 상기 제2 데이터를 분할하여 각각 소정의 기준 용량을 갖는 복수의 제3 데이터를 생성하며, 복수의 피어노드(peer node)의 상태 및 상기 복수의 제3 데이터에 기초하여 상기 복수의 피어노드 중에서 적어도 하나의 제1 피어노드를 선정하고, 상기 생성된 제3 데이터 각각을 상기 적어도 하나의 제1 피어노드의 개수에 기초하여 복사하고, 상기 선정된 적어도 하나의 제1 피어노드에 저장하도록 제어하는 제어부를 포함하는
블록체인 데이터 분산 저장 장치.
Transmitting and receiving unit for obtaining blockchain data including at least one of the first data and reference information data; and
Based on the capacity of each block-chain data including at least one of the obtained first data and reference information data, block-chain data that is divided and stored among the block-chain data is selected as at least one second data, and 2 Data is divided to generate a plurality of third data each having a predetermined reference capacity, and at least one of the plurality of peer nodes is generated based on the state of a plurality of peer nodes and the plurality of third data. and a control unit for selecting a first peer node, copying each of the generated third data based on the number of the at least one first peer node, and controlling the storage in the selected at least one first peer node. doing
Blockchain data distributed storage device.
컴퓨터 판독 가능한 기록 매체에 저장되어 있는 컴퓨터 프로그램으로서,
상기 컴퓨터 프로그램은,
블록체인 데이터 분산 저장 장치에 의해 수행되는 블록체인 데이터 분산 저장 방법을 프로세서가 수행하도록 하기 위한 명령어를 포함하고,
상기 방법은,
제1 데이터 및 기준정보 데이터 중 적어도 하나를 포함하는 블록체인 데이터 각각의 용량에 기초하여, 상기 블록체인 데이터 중에서 분할 저장되는 블록체인 데이터를 적어도 하나의 제2 데이터로서 선정하는 단계;
상기 제2 데이터를 분할하여 각각 소정의 기준 용량을 갖는 복수의 제3 데이터를 생성하는 단계;
복수의 피어노드(peer node)의 상태 및 상기 복수의 제3 데이터에 기초하여 상기 복수의 피어노드 중에서 적어도 하나의 제1 피어노드를 선정하는 단계; 및
상기 생성된 제3 데이터 각각을 상기 적어도 하나의 제1 피어노드의 개수에 기초하여 복사하고, 상기 선정된 적어도 하나의 제1 피어노드에 저장하는 단계를 포함하는
컴퓨터 프로그램.
As a computer program stored in a computer readable recording medium,
The computer program,
Includes instructions for causing a processor to perform a blockchain data distribution storage method performed by a blockchain data distribution storage device,
The method,
Based on the capacity of each of the block chain data including at least one of the first data and the reference information data, selecting block chain data that is divided and stored among the block chain data as at least one second data;
dividing the second data to generate a plurality of third data each having a predetermined reference capacity;
selecting at least one first peer node from among the plurality of peer nodes based on states of a plurality of peer nodes and the plurality of third data; and
Copying each of the generated third data based on the number of the at least one first peer node and storing the generated third data in the selected at least one first peer node.
computer program.
컴퓨터 프로그램을 저장하고 있는 컴퓨터 판독 가능 기록매체로서,
상기 컴퓨터 프로그램은,
블록체인 데이터 분산 저장 장치에 의해 수행되는 블록체인 데이터 분산 저장 방법을 프로세서가 수행하도록 하기 위한 명령어를 포함하고,
상기 방법은,
제1 데이터 및 기준정보 데이터 중 적어도 하나를 포함하는 블록체인 데이터 각각의 용량에 기초하여, 상기 블록체인 데이터 중에서 분할 저장되는 블록체인 데이터를 적어도 하나의 제2 데이터로서 선정하는 단계;
상기 제2 데이터를 분할하여 각각 소정의 기준 용량을 갖는 복수의 제3 데이터를 생성하는 단계;
복수의 피어노드(peer node)의 상태 및 상기 복수의 제3 데이터에 기초하여 상기 복수의 피어노드 중에서 적어도 하나의 제1 피어노드를 선정하는 단계; 및
상기 생성된 제3 데이터 각각을 상기 적어도 하나의 제1 피어노드의 개수에 기초하여 복사하고, 상기 선정된 적어도 하나의 제1 피어노드에 저장하는 단계를 포함하는
컴퓨터 판독 가능한 기록 매체.
A computer-readable recording medium storing a computer program,
The computer program,
Includes instructions for causing a processor to perform a blockchain data distribution storage method performed by a blockchain data distribution storage device,
The method,
Based on the capacity of each of the block chain data including at least one of the first data and the reference information data, selecting block chain data that is divided and stored among the block chain data as at least one second data;
dividing the second data to generate a plurality of third data each having a predetermined reference capacity;
selecting at least one first peer node from among the plurality of peer nodes based on states of a plurality of peer nodes and the plurality of third data; and
Copying each of the generated third data based on the number of the at least one first peer node and storing the generated third data in the selected at least one first peer node.
A computer-readable recording medium.
KR1020210186098A 2021-12-23 2021-12-23 Method of distributing and storing block chain data and device of thereof KR102628501B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210186098A KR102628501B1 (en) 2021-12-23 2021-12-23 Method of distributing and storing block chain data and device of thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210186098A KR102628501B1 (en) 2021-12-23 2021-12-23 Method of distributing and storing block chain data and device of thereof

Publications (2)

Publication Number Publication Date
KR20230096526A true KR20230096526A (en) 2023-06-30
KR102628501B1 KR102628501B1 (en) 2024-01-24

Family

ID=86959918

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210186098A KR102628501B1 (en) 2021-12-23 2021-12-23 Method of distributing and storing block chain data and device of thereof

Country Status (1)

Country Link
KR (1) KR102628501B1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210045353A (en) * 2019-10-15 2021-04-26 알리페이 (항저우) 인포메이션 테크놀로지 씨오., 엘티디. Indexing and recovery of encoded blockchain data
KR20210077136A (en) * 2019-12-17 2021-06-25 주식회사 리드포인트시스템 A Program for operation of blockchain network system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210045353A (en) * 2019-10-15 2021-04-26 알리페이 (항저우) 인포메이션 테크놀로지 씨오., 엘티디. Indexing and recovery of encoded blockchain data
KR20210077136A (en) * 2019-12-17 2021-06-25 주식회사 리드포인트시스템 A Program for operation of blockchain network system

Also Published As

Publication number Publication date
KR102628501B1 (en) 2024-01-24

Similar Documents

Publication Publication Date Title
Ali et al. An automated task scheduling model using non-dominated sorting genetic algorithm II for fog-cloud systems
CN104750770B (en) The computer implemented method and system that the join operation processing time is minimized
JP5943430B2 (en) Distributed storage system and distributed storage method
CN110347515B (en) Resource optimization allocation method suitable for edge computing environment
Salem et al. An artificial bee colony algorithm for data replication optimization in cloud environments
AU2013271538A1 (en) Data management and indexing across a distributed database
CN103714073A (en) Method and device for querying data
US10904316B2 (en) Data processing method and apparatus in service-oriented architecture system, and the service-oriented architecture system
CN107895049A (en) Data processing method and device, computer-readable recording medium, electronic equipment
WO2009094594A2 (en) Distributed indexing of file content
CN109948003B (en) Block chain system of isomorphic dual-mode main and auxiliary chains and block production method thereof
JPWO2004063928A1 (en) Database load reduction system and load reduction program
CN112835977B (en) Database management method and system based on block chain
EP4293510A1 (en) Data migration method and apparatus, and device, medium and computer product
US20200320037A1 (en) Persistent indexing and free space management for flat directory
CN108182192A (en) A kind of half-connection inquiry plan selection algorithm based on distributed data base
CN113821332A (en) Method, apparatus, device and medium for tuning efficiency of automatic machine learning system
JP7202558B1 (en) DIGITAL OBJECT ACCESS METHOD AND SYSTEM IN HUMAN-CYBER-PHYSICAL COMBINED ENVIRONMENT
WO2023231339A1 (en) Transaction execution method and node in blockchain system, and blockchain system
CN114219477B (en) Block chain data storage expansion method based on-chain storage
CN109597903A (en) Image file processing apparatus and method, document storage system and storage medium
CN113672641A (en) Database cluster data processing method, device, system, medium and electronic equipment
KR101600717B1 (en) Method and apparatus for download virtual machine operating system image
CN106940712A (en) Sequence generating method and equipment
CN112632116B (en) Method, system, equipment and medium for multi-node cluster scheduling of K-DB database

Legal Events

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