KR20200102293A - Blockchain software capable of operation corresponding sql query, blockchain system, and method of thereof - Google Patents

Blockchain software capable of operation corresponding sql query, blockchain system, and method of thereof Download PDF

Info

Publication number
KR20200102293A
KR20200102293A KR1020190020756A KR20190020756A KR20200102293A KR 20200102293 A KR20200102293 A KR 20200102293A KR 1020190020756 A KR1020190020756 A KR 1020190020756A KR 20190020756 A KR20190020756 A KR 20190020756A KR 20200102293 A KR20200102293 A KR 20200102293A
Authority
KR
South Korea
Prior art keywords
node
database
sql
block
nodes
Prior art date
Application number
KR1020190020756A
Other languages
Korean (ko)
Other versions
KR102208704B1 (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 KR1020190020756A priority Critical patent/KR102208704B1/en
Publication of KR20200102293A publication Critical patent/KR20200102293A/en
Application granted granted Critical
Publication of KR102208704B1 publication Critical patent/KR102208704B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2471Distributed queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Fuzzy Systems (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Disclosed is an operating method of a blockchain system including nodes connected to each other through a blockchain network. The operating method comprises the steps of: receiving, by a first node of the nodes, an operation generated by a smart contract executed in a computer, and transmitting the received operation to the remaining nodes among the nodes; writing, by a second node, corresponding to the turn to generate a block to be included in a blockchain, among the nodes, the operation on the block, and transmitting the block including the operation to nodes other than the second node among the nodes; and determining, by each of the nodes, whether the operation included in the block includes an SQL query, processing the block according to the operation when the operation does not include the SQL query, and performing an operation corresponding to the SQL query on an SQL database when the operation includes the SQL query.

Description

SQL 쿼리에 해당하는 동작을 수행할 수 있는 블록체인 소프트웨어, 블록체인 시스템, 및 이의 동작 방법{BLOCKCHAIN SOFTWARE CAPABLE OF OPERATION CORRESPONDING SQL QUERY, BLOCKCHAIN SYSTEM, AND METHOD OF THEREOF}Blockchain software that can perform an operation corresponding to an SQL query, a blockchain system, and its operation method {BLOCKCHAIN SOFTWARE CAPABLE OF OPERATION CORRESPONDING SQL QUERY, BLOCKCHAIN SYSTEM, AND METHOD OF THEREOF}

본 발명은 블록체인 기술에 관한 것으로, 특히 SQL 쿼리에 해당하는 동작을 수행할 수 있는 블록체인 소프트웨어, 블록체인 시스템, 및 이의 동작 방법에 관한 것이다.The present invention relates to blockchain technology, and in particular, to a blockchain software capable of performing an operation corresponding to an SQL query, a blockchain system, and an operation method thereof.

블록체인은 최초의 블록(Genesis Block)부터 시작해서 바로 앞의 블록에 대한 링크를 가지고 있는 링크드 리스트다. 블록체인은 여러 노드들에 걸쳐 분산되어 저장 및 관리되며, 상기 블록들 각각에는 거래 정보(트랜잭션)가 포함되어 있으므로, 상기 블록들의 집합체인 블록체인은 모든 거래 정보를 포함하는 거대한 분산 장부라고 할 수 있다. 즉 블록은 블록체인의 원소로서 개념적으로는 다수의 거래 정보(트랜잭션)의 묶음을 의미한다. 블록은 블록 헤더와 거래정보, 기타 정보로 구성된다.Blockchain is a linked list that starts with the first block (Genesis Block) and has links to the block immediately preceding it. Blockchain is distributed across multiple nodes, stored and managed, and since each of the blocks contains transaction information (transaction), the block chain, an aggregate of blocks, can be said to be a huge distributed ledger containing all transaction information. have. In other words, a block is an element of a blockchain, and conceptually, it means a bundle of a number of transaction information (transactions). The block consists of a block header, transaction information, and other information.

미국특허공개공보: US20170236121(2017.08.17공개)US Patent Publication: US20170236121 (2017.08.17 publication) 등록특허공보: 등록번호 10-1395737(2014년05월16일 공고)Registered Patent Publication: Registration No. 10-1395737 (announced on May 16, 2014) 등록특허공보: 등록번호 10-1816653(2018년02월21일 공고)Registered Patent Publication: Registration No. 10-1816653 (announced on February 21, 2018)

본 발명이 이루고자 하는 기술적인 과제는, 스마트 컨트랙트(또는 DAPP)로부터 출력된 SQL 쿼리를 이용하여 블록체인에 데이터를 저장하거나 상기 블록체인으로부터 데이터를 검색할 수 있는 저장 매체에 저장된 컴퓨터 프로그램, 상기 컴퓨터 프로그램을 실행할 수 있는 블록체인 노드, 상기 블록체인 노드를 포함하는 블록체인 시스템, 및 상기 블록체인 시스템을 이용하여 서비스를 제공하는 방법을 제공하는 것이다.The technical problem to be achieved by the present invention is a computer program stored in a storage medium capable of storing data in a blockchain or retrieving data from the blockchain using SQL queries output from a smart contract (or DAPP), the computer A block chain node capable of executing a program, a block chain system including the block chain node, and a method of providing a service using the block chain system are provided.

본 발명의 실시 예들에 따른 블록체인 시스템은 블록체인 네트워크와, 상기 블록체인 네트워크를 통해 서로 연결된 제1노드, 제2노드, 및 제3노드를 포함한다. 상기 제1노드는 컴퓨터에서 실행되는 스마트 컨트랙트에 의해 생성된 오퍼레이션을 수신하고, 상기 오퍼레이션을 상기 제2노드와 상기 제3노드로 전송하다. 상기 제2노드와 상기 제3노드 중에서 블록체인에 포함될 블록을 생성할 차례에 해당하는 상기 제2노드는 상기 오퍼레이션을 상기 블록에 라이트하고, 상기 오퍼레이션을 포함하는 상기 블록을 상기 제1노드와 상기 제3노드로 전송한다. 상기 제1노드와 상기 제3노드 각각은 상기 블록에 포함된 상기 오퍼레이션이 SQL 쿼리 오퍼레이션인지를 판단하고, 상기 오퍼레이션이 상기 SQL 쿼리 오퍼레이션일 때 상기 SQL 쿼리 오퍼레이션에 해당하는 동작을 휘발성 메모리에 저장된 메모리 데이터베이스에 대해 수행한 후, 상기 SQL 쿼리 오퍼레이션에 해당하는 동작을 불휘발성 메모리에 저장된 파일 데이터베이스에 수행하고, 상기 메모리 데이터베이스는 상기 파일 데이터베이스로부터 생성된다.The block chain system according to the embodiments of the present invention includes a block chain network and a first node, a second node, and a third node connected to each other through the block chain network. The first node receives an operation generated by a smart contract executed in a computer, and transmits the operation to the second node and the third node. Among the second node and the third node, the second node corresponding to the turn of generating a block to be included in the block chain writes the operation to the block, and the block including the operation is written to the first node and the block. Transfer to the third node. Each of the first node and the third node determines whether the operation included in the block is an SQL query operation, and when the operation is the SQL query operation, an operation corresponding to the SQL query operation is stored in a volatile memory. After performing the database, an operation corresponding to the SQL query operation is performed on a file database stored in a nonvolatile memory, and the memory database is created from the file database.

본 발명의 실시 예들에 따른 블록체인 네트워크를 통해 서로 연결된 노드들을 포함하는 블록체인 시스템의 동작 방법은, 상기 노드들 중에서 제1노드가 컴퓨터에서 실행되는 스마트 컨트랙트에 의해 생성된 오퍼레이션을 수신하는 단계; 상기 제1노드가 수신된 오퍼레이션을 상기 노드들 중에서 나머지 노드들로 전송하는 단계; 상기 노드들 중에서 블록체인에 포함될 블록을 생성할 차례에 해당하는 제2노드가 상기 오퍼레이션을 상기 블록에 라이트하고, 상기 오퍼레이션을 포함하는 상기 블록을 상기 노드들 중에서 상기 제2노드를 제외한 다른 노드들로 전송하는 단계; 상기 노드들 각각이 상기 블록에 포함된 상기 오퍼레이션이 SQL 쿼리를 포함하고 있는지를 판단하는 단계; 상기 오퍼레이션이 상기 SQL 쿼리를 포함하지 않을 때, 상기 노드들 각각이 상기 오퍼레이션에 따라 상기 블록을 처리하는 단계; 및 상기 오퍼레이션이 상기 SQL 쿼리를 포함하고 있을 때, 상기 노드들 각각이 상기 SQL 쿼리에 해당하는 동작을 SQL 데이터베이스에 대해 수행하는 단계를 포함한다.An operating method of a blockchain system including nodes connected to each other through a blockchain network according to embodiments of the present invention includes the steps of: among the nodes, a first node receiving an operation generated by a smart contract executed on a computer; Transmitting the operation received by the first node to the remaining nodes among the nodes; Among the nodes, a second node corresponding to the turn of generating a block to be included in the block chain writes the operation to the block, and the block including the operation from among the nodes other than the second node Transferring to; Determining whether the operation included in the block by each of the nodes includes an SQL query; When the operation does not include the SQL query, each of the nodes processing the block according to the operation; And when the operation includes the SQL query, each of the nodes performing an operation corresponding to the SQL query on the SQL database.

본 발명의 실시 예들에 따라, 제1노드와 결합되어, SQL 쿼리를 포함하는 오퍼레이션을 처리하기 위해 컴퓨터 판독가능한 저장 매체에 저장된 컴퓨터 프로그램은 컴퓨터에서 실행되는 스마트 컨트랙트에 의해 생성된 상기 오퍼레이션을 수신하는 단계; 상기 오퍼레이션을 제2노드들로 전송하는 단계; 상기 제2노드들 중에서 블록체인에 포함될 블록을 생성할 차례에 해당하는 노드로부터 전송된 상기 오퍼레이션을 포함하는 블록을 수신하는 단계; 수신된 블록에 포함된 상기 오퍼레이션이 SQL 쿼리를 포함하고 있는지를 판단하는 단계; 상기 블록에 포함된 상기 오퍼레이션이 상기 SQL 쿼리를 포함하지 않을 때 상기 오퍼레이션에 따라 상기 블록을 처리하는 단계; 및 상기 블록에 포함된 상기 오퍼레이션이 상기 SQL 쿼리를 포함할 때 상기 SQL 쿼리에 해당하는 동작을 SQL 데이터베이스에 대해 수행하는 단계를 포함한다.According to embodiments of the present invention, a computer program stored in a computer-readable storage medium for processing an operation including an SQL query, coupled with the first node, receives the operation generated by a smart contract running on the computer. step; Transmitting the operation to second nodes; Receiving a block including the operation transmitted from a node corresponding to a turn to generate a block to be included in the block chain among the second nodes; Determining whether the operation included in the received block includes an SQL query; Processing the block according to the operation when the operation included in the block does not include the SQL query; And performing an operation corresponding to the SQL query on the SQL database when the operation included in the block includes the SQL query.

본 발명의 실시 예들에 따라, 오퍼레이션을 생성하는 스마트 컨트랙트를 실행하는 컴퓨터와, 블록체인 시스템에 포함된 노드들을 이용하여 블록체인 서비스와 SQL 서비스를 제공하는 방법은 상기 노드들 각각이 블록에 포함된 오퍼레이션이 블록체인 오퍼레이션인지 SQL 쿼리 오퍼레이션인지를 판단하는 단계; 및 상기 오퍼레이션이 상기 블록체인 오퍼레이션일 때 상기 노드들 각각이 상기 블록체인 오퍼레이션에 해당하는 동작을 수행하고, 상기 오퍼레이션이 상기 SQL 쿼리 오퍼레이션일 때 상기 노드들 각각이 상기 SQL 쿼리 오퍼레이션에 해당하는 동작을 SQL 데이터베이스에 대해 수행하는 단계를 포함한다.According to embodiments of the present invention, a method of providing a block chain service and an SQL service using a computer running a smart contract that generates an operation and nodes included in the block chain system includes each of the nodes included in the block. Determining whether the operation is a block chain operation or an SQL query operation; And when the operation is the block chain operation, each of the nodes performs an operation corresponding to the block chain operation, and when the operation is the SQL query operation, each of the nodes performs an operation corresponding to the SQL query operation. Including steps to perform against the SQL database.

본 발명의 실시 예에 따라 블록체인 노드의 저장 매체에 저장된 컴퓨터 프로그램은, 스마트 컨트랙트(또는 DAPP)로부터 출력된 SQL 쿼리를 이용하여 블록체인에 데이터를 저장하거나 상기 블록체인으로부터 데이터를 검색할수 있는 효과가 있다.A computer program stored in a storage medium of a blockchain node according to an embodiment of the present invention has the effect of storing data in the blockchain or retrieving data from the blockchain using SQL queries output from a smart contract (or DAPP). There is.

본 발명의 실시 예에 따라 블록체인 노드들 각각은, 메모리 데이터베이스와 파일 데이터베이스, 즉 두 개의 데이터베이스들을 포함하고, 빠른 검색을 위해서는 상기 메모리 데이터베이스를 사용하고, 데이터의 무결성을 보증하기 위해 상기 블록체인 노드들에 의해 합의된 상기 데이터를 상기 파일 데이터베이스에 적용할 수 있는 효과가 있다.According to an embodiment of the present invention, each of the blockchain nodes includes a memory database and a file database, i.e., two databases, uses the memory database for quick search, and the blockchain node to ensure data integrity. There is an effect of being able to apply the data agreed upon by them to the file database.

본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1은 블록체인 네트워크를 통해 서로 연결된 본 발명의 실시 예에 따른 노드들을 포함하는 블록체인 시스템을 나타낸다.
도 2는 도 1에 도시된 노드들 각각에 포함된 하드웨어들과 소프트웨어들을 나타낸다.
도 3은 도 1에 도시된 노드들 각각에 포함된 소프트웨어들에서 사용되는 블록의 기본 구조를 나타낸다.
도 4는 본 발명의 실시 예에 따른 컴퓨터 프로그램의 동작을 설명하는 개념도이다.
도 5는 본 발명의 실시 예에 따른 컴퓨터 프로그램에 의해 동작하는 노드의 동작을 설명하는 개념도이다.
도 6은 도 1에 도시된 노드들 각각에 메모리 데이터베이스를 휘발성 메모리에 로드하는 과정을 설명하는 플로우 차트이다.
도 7은 도 1에 도시된 블록체인 시스템의 동작을 설명하는 플로우 차트이다.
A detailed description of each drawing is provided in order to more fully understand the drawings cited in the detailed description of the present invention.
1 shows a block chain system including nodes according to an embodiment of the present invention connected to each other through a block chain network.
FIG. 2 shows hardware and software included in each of the nodes shown in FIG. 1.
FIG. 3 shows a basic structure of a block used in software included in each of the nodes shown in FIG. 1.
4 is a conceptual diagram illustrating an operation of a computer program according to an embodiment of the present invention.
5 is a conceptual diagram illustrating an operation of a node operated by a computer program according to an embodiment of the present invention.
6 is a flowchart illustrating a process of loading a memory database into a volatile memory in each of the nodes shown in FIG. 1.
7 is a flowchart illustrating the operation of the block chain system shown in FIG. 1.

도 1은 블록체인 네트워크를 통해 서로 연결된 본 발명의 실시 예에 따른 노드들을 포함하는 블록체인 시스템을 나타낸다.1 shows a block chain system including nodes according to an embodiment of the present invention connected to each other through a block chain network.

도 1을 참조하면, 블록체인 시스템(100) 또는 블록체인 네트워크는 P2P (peer-to-peer) 네트워크이기 때문에 노드들(110-1~110-8)이 블록체인 네트워크 (101)을 통해 서로 연결되어 있다.Referring to FIG. 1, since the blockchain system 100 or the blockchain network is a peer-to-peer (P2P) network, nodes 110-1 to 110-8 are connected to each other through the blockchain network 101. Has been.

도 1에서는 설명의 편의를 위해, 컴퓨터(200)가 제1노드(110-1)에 연결된 것으로 도시되나, 실시 예들에 따라 컴퓨터(200)는 노드들(110-1~110-8) 중에서 적어도 하나와 블록체인 네트워크(101)을 통해 서로 연결될 수 있다.In FIG. 1, for convenience of explanation, the computer 200 is illustrated as being connected to the first node 110-1, but according to embodiments, the computer 200 is at least among the nodes 110-1 to 110-8. Hana can be connected to each other through the blockchain network 101.

컴퓨터(200)는 그 안에서 실행되는 스마트 컨트랙트를 이용하여 오퍼레이션을 생성하고, 상기 오퍼레이션을 제1노드(110-1)로 전송할 수 있다.The computer 200 may generate an operation using a smart contract executed therein, and transmit the operation to the first node 110-1.

노드(또는 블록체인 노드)는 블록체인 네트워크(101) 상의 장치이다. 상기 노드는 인터넷에 연결되고 IP 주소를 갖는 액티브 전자 장치(예컨대, 컴퓨터, 모바일 장치, 사물 인터넷(Internet of Things(IoT)) 장치, 전기 자동차, 및 프린터 등)일 수 있다. 상기 노드의 역할은 블록체인의 사본을 유지하고, 트랜잭션을 처리하여 네트워크를 지원하는 것이다. 또한, 상기 노드는 통신 엔드 포인트 (communication endpoint)이거나 다른 노드들에 링크되는 통신 재분배 (communication redistribution) 포인트일 수 있습니다.A node (or blockchain node) is a device on the blockchain network 101. The node may be an active electronic device connected to the Internet and having an IP address (eg, a computer, a mobile device, an Internet of Things (IoT) device, an electric vehicle, and a printer). The role of the node is to support the network by maintaining a copy of the blockchain and processing transactions. In addition, the node may be a communication endpoint or a communication redistribution point that is linked to other nodes.

도 2는 도 1에 도시된 노드들 각각에 포함된 하드웨어들과 소프트웨어들을 나타낸다. 도 1과 도 2를 참조하면, 노드들(110-1~110-8) 각각의 구조와 기능은 동일 또는 대동소이하다고 가정하고, 설명의 편의를 위해 제1노드(110-1)의 구조와 제2노드(110-2)의 구조가 도시된다.FIG. 2 shows hardware and software included in each of the nodes shown in FIG. 1. 1 and 2, it is assumed that the structure and function of each of the nodes 110-1 to 110-8 are the same or substantially the same, and for convenience of explanation, the structure and function of the first node 110-1 The structure of the second node 110-2 is shown.

제1노드(110-1)는 하드웨어(120-1)와, 운영 체계(operating system(OS)를 실행하는 프로세서(130-1)를 포함한다. The first node 110-1 includes a hardware 120-1 and a processor 130-1 that executes an operating system (OS).

하드웨어(120-1)는 휘발성 메모리(125-1)와 불휘발성 메모리(127-1)를 포함하고, 휘발성 메모리(125-1)는 DRAM(dynamic random access memory) 또는 SRAM으로 구현될 수 있고, 불휘발성 메모리(127-1)는 하드디스크 드라이브(hard disc drive(HDD)) 또는 솔리드 스테이브 드라이브(solid state drive(SSD))로 구현될 수 있다. 또한, 하드웨어(120-1)는 컴퓨터(200)와 각 노드(110-2~110-8)와 데이터를 주고받을 수 있는 송수신기를 포함할 수 있다.Hardware 120-1 is a volatile memory 125-1 and Including the nonvolatile memory 127-1, the volatile memory 125-1 may be implemented as a dynamic random access memory (DRAM) or SRAM, and the nonvolatile memory 127-1 is a hard disk drive (hard disc drive). drive (HDD)) or a solid state drive (SSD). Further, the hardware 120-1 may include a transceiver capable of exchanging data with the computer 200 and each node 110-2 to 110-8.

프로세서(130-1)는 OS를 실행시킬 수 있고, 상기 OS는 소프트웨어들(140-1, 145-1, 150-1, 155-1, 및 160-1)을 실행할 수 있다. 소프트웨어는 제1노드(110-1), 즉 컴퓨터(또는 컴퓨팅 장치)와 결합되어, 제1노드(110-1)에 의해 판독가능한 저장 매체(125-1 및/또는 127-1)에 저장된 컴퓨터 프로그램을 의미할 수 있다. 각 모듈은 컴퓨터 프로그램을 의미한다.The processor 130-1 may execute an OS, and the OS may execute software 140-1, 145-1, 150-1, 155-1, and 160-1. The software is a computer stored in a storage medium 125-1 and/or 127-1 readable by the first node 110-1, coupled with a computer (or computing device). It can mean a program. Each module represents a computer program.

RPC(remote procedure control) 모듈(140-1)은 외부(예컨대, 컴퓨터(200)로부터 출력된 명령어를 수신하고, 상기 명령어의 수행 결과를 상기 외부로 전송하기 위한 모듈을 의미한다.The remote procedure control (RPC) module 140-1 refers to a module for receiving an external command (eg, a command output from the computer 200) and transmitting a result of executing the command to the outside.

P2P 모듈(140-2)은 블록체인 네트워크(101)을 통해 연결된 노드들(110-2~110-8) 각각의 소프트웨어(S/W)와 데이터 동기화(data sync)를 위한 모듈이다. 각 노드(110-12~110-8)에 설치된 소프트웨어(S/W)는 블록체인 소프트웨어를 의미한다.The P2P module 140-2 is a module for software (S/W) and data synchronization of each of the nodes 110-2 to 110-8 connected through the blockchain network 101. Software (S/W) installed on each node (110-12 ~ 110-8) means blockchain software.

데이터 스토리지(150-1)는 파일-기반의 키(key) 및/또는 값(value) 형태의 데이터 스토리지를 의미하고, 블록체인 소프트웨어(S/W)의 데이터를 저장하기 위한 데이터 스토리지이다. 데이터 스토리지(150-1)의 확장자는 bin일 수 있다.The data storage 150-1 refers to data storage in the form of a file-based key and/or value, and is a data storage for storing data of a blockchain software (S/W). The extension of the data storage 150-1 may be bin.

플러그인(155-1)은 블록체인 소프트웨어의 서브 모듈일 수 있다.The plug-in 155-1 may be a sub-module of blockchain software.

SQL 데이터베이스 플러그인(160-1)은 두 개의 데이터베이스들(에컨대, 메모리 데이터베이스와 파일 데이터베이스)을 제공하고, 상기 두 개의 데이터베이스들 중에서 적어도 하나를 위한 SQL 쿼리(또는 SQL 명령어)를 처리할 수 있는 플로그인니다.The SQL database plug-in 160-1 provides two databases (e.g., a memory database and a file database), and a platform capable of processing SQL queries (or SQL commands) for at least one of the two databases. Log in.

SQL 데이터베이스 플러그인(160-1)은 외부 장치(예컨대, 200)의 dapp (decentralized application)에서 사용하는 데이터를 저장하기 위해 사용된다.The SQL database plug-in 160-1 is used to store data used by a dapp (decentralized application) of an external device (eg, 200).

제2노드(110-2)는 하드웨어(120-2)와, 운영 체게(operating system(OS)를 실행하는 프로세서(130-2)를 포함한다. 하드웨어(120-2)는 휘발성 메모리(125-2)와 불휘발성 메모리(127-2)를 포함한다.The second node 110-2 includes a hardware 120-2 and a processor 130-2 that executes an operating system (OS). The hardware 120-2 includes a volatile memory 125- 2) and a nonvolatile memory 127-2.

제1노드(110-1)에 포함된 구성의 명칭과 동일한 명칭을 갖는 제2노드(110-2)에 포함된 구성은 제1노드(110-1)에 포함된 구성과 동일한 기능(또는 동작)을 수행하므로, 제2노드(110-2)에 포함된 구성들(140-2, 145-2, 150-2, 155-2, 및 160-2) 각각에 대한 상세한 설명은 생략한다.The configuration included in the second node 110-2 having the same name as the configuration included in the first node 110-1 has the same function (or operation) as the configuration included in the first node 110-1. ), a detailed description of each of the components 140-2, 145-2, 150-2, 155-2, and 160-2 included in the second node 110-2 will be omitted.

도 3은 도 1에 도시된 노드들 각각에 포함된 소프트웨어들에서 사용되는 블록의 기본 구조를 나타낸다.FIG. 3 shows a basic structure of a block used in software included in each of the nodes shown in FIG. 1.

도 1 내지 도 3을 참조하면, 블록(200)은 노드들(110-1~110-8) 중에서 임의로 정해진 순서에 해당하는 하나의 노드에서 실행되는 블록체인 소프트웨어에 의해 생성된다. 일정 시간(예컨대, 3초)마다 하나의 블록(200)이 생성된다. 블록(200)은 일정 시간(예컨대, 3초)동안 외부로부터 전송된 검증된 트랜잭션들(transactions)의 묶음일 수 있고, 검증된 트랜잭션을 하나도 포함하지 않는 빈 블록도 있을수 있다.Referring to FIGS. 1 to 3, a block 200 is generated by blockchain software running on one node corresponding to a randomly determined order among nodes 110-1 to 110-8. One block 200 is generated every predetermined time (eg, 3 seconds). The block 200 may be a bundle of verified transactions transmitted from the outside for a certain period of time (eg, 3 seconds), and there may be empty blocks that do not contain any verified transactions.

각 블록체인 소프트웨어는 블록 단위로 데이터를 동기시키고, 상기 각 블록체인 소프트웨어는 전송된 각 블록의 유효성을 검증한다.Each blockchain software synchronizes data on a block basis, and each blockchain software verifies the validity of each transmitted block.

블록(200)에 포함된 각 트랜잭션(210과 220)은 외부로부터 전송된 오퍼레이션을 블록체인 소프트웨어로 전송하는 기능을 수행한다. 각 트랜잭션(210과 220)은 오퍼레이션(215) 이외에 데이터 무결성과 데이터 보안을 위한 정보를 포함할 수 있다.Each of the transactions 210 and 220 included in the block 200 performs a function of transmitting an operation transmitted from the outside to the blockchain software. Each of the transactions 210 and 220 may include information for data integrity and data security in addition to the operation 215.

각 트랜잭션(210과 220)에 포함된 오퍼레이션(215)은 외부로부터 전송되고 블록체인 소프트웨어에서 실행(또는 수행)될 명령어를 의미한다. 예컨대, SQL 데이터베이스 플러그인에서 수행될 SQL 쿼리는 오퍼레이션에 포함된다.The operation 215 included in each transaction 210 and 220 refers to an instruction to be transmitted from the outside and executed (or executed) in the blockchain software. For example, SQL queries to be executed in the SQL database plug-in are included in the operation.

그러나, SQL 명령어들(SELECT, INSERT, DELETE, UPDATE, CREATE TABLE, ALTER TABLE, 및 DROP TABLE 등) 중에서 SELECT는 블록에 포함되지 않는다. SQL 쿼리는 적어도 하나의 SQL 명령어를 포함하는 쿼리를 의미한다. 예컨대, 외부로부터 입력된 GET 명령어는 각 노드(110-1~110-8)에 설치된 RPC 모듈을 통해 API (Application Programming Interface)로 바로 수행된다.However, among SQL commands (SELECT, INSERT, DELETE, UPDATE, CREATE TABLE, ALTER TABLE, and DROP TABLE, etc.), SELECT is not included in the block. SQL query refers to a query containing at least one SQL command. For example, a GET command input from the outside is directly executed as an API (Application Programming Interface) through an RPC module installed in each node 110-1 to 110-8.

도 4는 본 발명의 실시 예에 따른 컴퓨터 프로그램의 동작을 설명하는 개념도이다. 도 4에서는 일정 시간마다 해당 노드에서 생성되는 블록들(BLOCK10, BLOCK11, BLOCK12, 및 BLOCK13)을 순차적으로 나타낸다.4 is a conceptual diagram illustrating an operation of a computer program according to an embodiment of the present invention. In FIG. 4, blocks BLOCK10, BLOCK11, BLOCK12, and BLOCK13 generated in a corresponding node at a predetermined time are sequentially shown.

데이터 스토리지(DS)는 도 2를 참조하여 설명한 바와 같이 파일-기반의 키 (key) 및/또는 값(value) 형태의 데이터 스토리지를 의미하고, 블록체인 소프트웨어(S/W)의 데이터를 저장하기 위한 데이터 스토리지이다.Data storage (DS) means data storage in the form of a file-based key and/or value as described with reference to FIG. 2, and stores data of blockchain software (S/W). For data storage.

SQL 데이터베이스(SDB)는 도 2를 참조하여 설명한 SQL 데이터베이스 플러그인이 사용하는 데이터베이스이다. SQL 데이터베이스(SDB)는 스마트 컨트랙트 또는 dapp이 사용하는 데이터를 저장하기 위해 사용된다. 도 5를 참조하여 설명하겠지만, SQL 데이터베이스(SDB)는 메모리 데이터베이스(MDB)와 파일 데이터베이스(FDB)를 포함한다.The SQL database (SDB) is a database used by the SQL database plug-in described with reference to FIG. 2. SQL database (SDB) is used to store data used by smart contracts or dapps. As will be described with reference to FIG. 5, the SQL database (SDB) includes a memory database (MDB) and a file database (FDB).

각 노드(110-1~110-8)에서 실행되는 컴퓨터 프로그램은 각 블록(BLOCK10, BLOCK11, BLOCK12, 및 BLOCK13)에 포함된 오퍼레이션에 SQL 쿼리가 포함되어 있는지를 판단하고, 상기 SQL 쿼리가 상기 오퍼레이션에 포함되어 있을 때 상기 SQL 쿼리를 포함하는 상기 오퍼레이션을 SQL 데이터베이스 플러그인으로 전송한다. 상기 SQL 데이터베이스 플러그인은 SQL 쿼리를 포함하는 각 오퍼레이션(SQL QUERY 10과 SQL QUERY 12)에 해당하는 동작을 SQL 데이터베이스(SDB)에 수행한다.The computer program executed in each node (110-1 to 110-8) determines whether an SQL query is included in the operation included in each block (BLOCK10, BLOCK11, BLOCK12, and BLOCK13), and the SQL query is the operation. When included in, the operation including the SQL query is transmitted to the SQL database plug-in. The SQL database plug-in performs an operation corresponding to each operation (SQL QUERY 10 and SQL QUERY 12) including an SQL query to the SQL database (SDB).

상기 SQL 쿼리가 상기 오퍼레이션에 포함되어 있지 않을 때, 상기 컴퓨터 프로그램은 상기 SQL 쿼리를 포함하지 않는 각 오퍼레이션(OPERATION 11과 OPERATION 13), 즉 블록체인 오퍼레이션에 해당하는 동작을 데이터 스토리지(DS)에 수행한다.When the SQL query is not included in the operation, the computer program performs each operation (OPERATION 11 and OPERATION 13) that does not include the SQL query, that is, an operation corresponding to a block chain operation, to the data storage (DS). do.

도 5는 본 발명의 실시 예에 따른 컴퓨터 프로그램에 의해 동작하는 노드의 동작을 설명하는 개념도이다. 도 1 내지 도 5를 참조하면, 각 노드(110-1~110-8)는 각 블록(BLOCK10, BLOCK11, BLOCK12, 및 BLOCK13)을 순차적으로 수신하거나 생성한다고 가정한다.5 is a conceptual diagram illustrating an operation of a node operated by a computer program according to an embodiment of the present invention. 1 to 5, it is assumed that each node 110-1 to 110-8 sequentially receives or generates each block BLOCK10, BLOCK11, BLOCK12, and BLOCK13.

각 노드(110-1~110-8)에서 실행되는 SQL 데이터베이스 플러그인은 각 블록 (BLOCK10, BLOCK11, BLOCK12, 및 BLOCK13)에 포함된 각 오퍼레이션(SQL QUERY 10, SQL QUERY 11, SQL QUERY 12, 및 SQL QUERY 13)에 포함된 각 SQL 쿼리(또는 SQL 명령어를 포함하는 쿼리 또는 SQL 문(SQL statement)를 포함하는 쿼리)의 유효성을 체크한다(S250). 상기 유효성는 SQL 쿼리가 SQL에서 정의된 SQL 명령어이고 상기 SQL 명령어가 올바른 SQL 문인지를 판단한다.The SQL database plug-in running on each node (110-1 to 110-8) is used for each operation included in each block (BLOCK10, BLOCK11, BLOCK12, and BLOCK13) (SQL QUERY 10, SQL QUERY 11, SQL QUERY 12, and SQL The validity of each SQL query (or a query including an SQL command or a query including an SQL statement) included in QUERY 13) is checked (S250). The validity determines whether the SQL query is an SQL command defined in SQL and the SQL command is a valid SQL statement.

SQL 쿼리가 유효하지 않을 때(S250의 INVALID), SQL 데이터베이스 플러그인은 상기 SQL 쿼리에 해당하는 동작을 준비하지 않거나, 에러 메시지를 해당 블록을 전송한 장치(예컨대, 노드 또는 컴퓨터(200))로 리턴한다.When the SQL query is invalid (INVALID in S250), the SQL database plug-in does not prepare the operation corresponding to the SQL query or returns an error message to the device (eg, node or computer 200) that transmitted the block. do.

SQL 쿼리가 유효할 때(S250의 VALID), SQL 데이터베이스 플러그인은 SQL 쿼리 또는 상기 SQL 쿼리를 포함하는 오퍼레이션에 해당하는 동작을 메모리 데이터베이스(MDB)에 수행한다.When the SQL query is valid (VALID in S250), the SQL database plug-in performs an operation corresponding to the SQL query or an operation including the SQL query to the memory database (MDB).

예컨대, SQL 쿼리가 INSERT 명령어 또는 INSERT 문(statement)일 때, 상기 SQL 쿼리에 따라 SQL 데이터베이스 플러그인은 메모리 데이터베이스(MDB)에 저장된 기존 테이블에 튜플(예컨대, 행 또는 레코드)를 삽입하는 동작을 수행한다. 또한, SQL 쿼리가 DELETE 명령어 또는 DELETE 문(statement)일 때, 상기 SQL 쿼리에 따라 SQL 데이터베이스 플러그인은 메모리 데이터베이스(MDB)에 저장된 기존 테이블에서 튜플(예컨대, 행 또는 레코드)를 삭제하는 동작을 수행한다.For example, when an SQL query is an INSERT command or an INSERT statement, the SQL database plug-in inserts a tuple (eg, row or record) into an existing table stored in a memory database (MDB) according to the SQL query. . In addition, when the SQL query is a DELETE command or a DELETE statement, the SQL database plug-in deletes a tuple (eg, row or record) from an existing table stored in a memory database (MDB) according to the SQL query. .

또한, SQL 쿼리가 CREATE TABLE 명령어 또는 CREATE TABLE 문(statement)일 때, 상기 SQL 쿼리에 따라 SQL 데이터베이스 플러그인은 메모리 데이터베이스(MDB)에서 새로운 테이블을 정의하고 생성하는 동작을 수행한다.In addition, when the SQL query is a CREATE TABLE command or a CREATE TABLE statement, the SQL database plugin defines and creates a new table in the memory database (MDB) according to the SQL query.

그러나, 컴퓨터(200)에서 실행되는 스마트 컨트랙트 또는 dapp이 SELECT 쿼리(또는 SELECT 명령어 또는 SELECT 문)을 포함하는 오퍼레이션을 생성하고 상기 오퍼레이션을 제1노드(110-1)로 전송하면, 제1노드(110-1)에서 실행되는 SQL 데이터베이스 플러그인은 데이터베이스(MDB)에 저장된 테이블로부터 SELECT 쿼리(또는 SELECT 명령어 또는 SELECT 문)에 해당하는 튜플을 검색(또는 추출)하고, 검색(또는 추출)된 튜플(RESULT)을 컴퓨터(200)로 전송할 수 있다.However, when a smart contract or dapp executed in the computer 200 generates an operation including a SELECT query (or a SELECT command or a SELECT statement) and transmits the operation to the first node 110-1, the first node ( The SQL database plug-in executed in 110-1) retrieves (or extracts) the tuple corresponding to the SELECT query (or SELECT command or SELECT statement) from the table stored in the database (MDB), and retrieves (or extracts) the tuple (RESULT ) Can be transferred to the computer 200.

SQL 데이터베이스 플러그인은 각 블록(BLOCK10, BLOCK11, BLOCK12, 및 BLOCK13)에 포함된 각 오퍼레이션(SQL QUERY 10, SQL QUERY 11, SQL QUERY 12, 및 SQL QUERY 13)에 해당하는 동작을 메모리 데이터베이스(MDB)에 대해 수행한다.The SQL database plug-in transfers the operation corresponding to each operation (SQL QUERY 10, SQL QUERY 11, SQL QUERY 12, and SQL QUERY 13) contained in each block (BLOCK10, BLOCK11, BLOCK12, and BLOCK13) to the memory database (MDB). Do about it.

SQL 데이터베이스 플러그인은 각 오퍼레이션(SQL QUERY 10, SQL QUERY 11, SQL QUERY 12, 및 SQL QUERY 13)을 일정 시간 경과 후에 큐에 저장하기 위해 상기 큐로 푸시한다.The SQL database plug-in pushes each operation (SQL QUERY 10, SQL QUERY 11, SQL QUERY 12, and SQL QUERY 13) to the queue for storage after a certain period of time.

SQL 데이터베이스 플러그인은 상기 큐에 저장된 각 오퍼레이션(SQL QUERY 10, SQL QUERY 11, SQL QUERY 12, 및 SQL QUERY 13)을 순차적으로 읽어들여(또는 팝(pop)하여) 각 오퍼레이션(SQL QUERY 10, SQL QUERY 11, SQL QUERY 12, 및 SQL QUERY 13)에 해당하는 동작을 파일 데이터베이스(FDB)에 대해 수행한다. 따라서, 메모리 데이터베이스에 포함된 데이터가 파일 데이터베이스에 저장된 데이터보다 더 최신 데이터일 수 있다.The SQL database plug-in reads (or pops) each operation (SQL QUERY 10, SQL QUERY 11, SQL QUERY 12, and SQL QUERY 13) stored in the queue in sequence, and reads (or pops) each operation (SQL QUERY 10, SQL QUERY 11, SQL QUERY 12, and SQL QUERY 13) are performed on the file database (FDB). Accordingly, data included in the memory database may be more recent than data stored in the file database.

예컨대, SQL 데이터베이스 플러그인에 의해 파일 데이터베이스에 저정된 데이터는 메모리 데이터베이스에 저장된 데이터로 업데이트될 수 있다.For example, data stored in the file database by the SQL database plug-in may be updated with data stored in the memory database.

앞에서 설명한 바와 같이, SQL 쿼리가 INSERT 명령어일 때, SQL 데이터베이스 플러그인은 메모리 데이터베이스(MDB)에 저장된 기존 테이블에 상기 SQL 쿼리에 따라 튜플을 삽입하는 동작을 수행한 후, 파일 데이터베이스(FDB)에 저장된 기존 테이블에 상기 SQL 쿼리에 따라 튜플(예컨대, 메모리 데이터베이스(MDB)의 테이블에 삽입된 튜플과 동일한 튜플)을 삽입하는 동작을 수행할 수 있다.As described above, when the SQL query is an INSERT command, the SQL database plug-in inserts tuples according to the SQL query into an existing table stored in the memory database (MDB), and then the existing stored in the file database (FDB). An operation of inserting a tuple (eg, a tuple identical to a tuple inserted in a table of a memory database (MDB)) into a table according to the SQL query may be performed.

SQL 데이터베이스를 두 개의 데이터베이스, 즉 메모리 데이터베이스와 파일 데이터베이스로 운용(또는 운영)하는 이유는 아래와 같다.The reasons for operating (or operating) the SQL database as two databases, a memory database and a file database are as follows.

예컨대, 블록체인 시스템에 포함된 각 노드에서 실행되는 블록체인 소프트웨어는 상기 블록체인 시스템에 포함된 다른 노드들 각각에서 실행되는 블록체인 소프트웨어와 합의라는 과정을 통해 해당 블록에 포함된 데이터의 무결성을 보증한다.For example, the blockchain software running on each node included in the blockchain system guarantees the integrity of the data contained in the block through a process called agreement with the blockchain software running on each of the other nodes included in the blockchain system. do.

상기 합의에는 일정한 시간(예컨대, 15 내지 21개 블록들이 생성되는데 소요되는 시간)이 필요하므로, 빠른 검색 또는 빠른 처리를 위해 SQL 데이터베이스 플러그인은 메모리 데이터베이스를 사용하고, 최종적으로 합의된 내용을 적용하기 위해 상기 SQL 데이터베이스 플러그인은 파일 데이터베이스를 사용한다.Since the above consensus requires a certain amount of time (e.g., the time it takes for 15 to 21 blocks to be generated), the SQL database plug-in uses a memory database for fast search or fast processing, and to finally apply the agreed content. The SQL database plug-in uses a file database.

메모리 데이터베이스는 각 노드의 휘발성 메모리에 저장되고, 파일 데이터베이스는 상기 각 노드의 불휘발성 메모리에 저장된다. 상기 각 노드가 스타트업 또는 부트될 때, 상기 불휘발성 메모리에 저장된 상기 파일 데이터베이스는 상기 휘발성 메모리로 로드되어 상기 메모리 데이터베이스가 된다. 즉, 상기 메모리 데이터베이스는 상기 파일 데이터베이스로부터 생성된다.The memory database is stored in the volatile memory of each node, and the file database is stored in the nonvolatile memory of each node. When each node is started up or booted, the file database stored in the nonvolatile memory is loaded into the volatile memory to become the memory database. That is, the memory database is created from the file database.

도 6은 도 1에 도시된 노드들 각각에 메모리 데이터베이스를 휘발성 메모리에 로드하는 과정을 설명하는 플로우 차트이다.6 is a flowchart illustrating a process of loading a memory database into a volatile memory in each of the nodes shown in FIG. 1.

도 1과 도 6을 참조하면, 각 노드(110-1~110-8)에서 실행되는 블록체인 소프트웨어 또는 SQL 데이터베이스 플러그인은 각 노드(110-1~110-8)가 스타트업 또는 부트될 때, 불휘발성 메모리에 파일 데이터베이스가 존재하는지를 판단한다(S110).Referring to Figures 1 and 6, the block chain software or SQL database plug-in running on each node (110-1 ~ 110-8) when each node (110-1 ~ 110-8) startup or boot, It is determined whether a file database exists in the nonvolatile memory (S110).

상기 불휘발성 메모리에 상기 파일 데이터베이스가 존재하지 않을 때(S110의 NO), 상기 블록체인 소프트웨어 또는 상기 SQL 데이터베이스 플러그인은 상기 파일 데이터베이스를 생성하고(S115), 생성된 파일 데이터베이스를 각 노드(110-1~110-8)에 포함된 휘발성 메모리로 로드하여 메모리 데이터베이스를 생성한다(S120). 즉, 상기 파일 데이터베이스로부터 상기 메모리 데이터베이스가 생성된다(S120).When the file database does not exist in the nonvolatile memory (NO in S110), the blockchain software or the SQL database plug-in creates the file database (S115), and stores the generated file database at each node 110-1. A memory database is created by loading into the volatile memory included in ~110-8) (S120). That is, the memory database is created from the file database (S120).

상기 불휘발성 메모리에 상기 파일 데이터베이스가 존재할 때(S110의 YES), 상기 블록체인 소프트웨어 또는 상기 SQL 데이터베이스 플러그인은 상기 파일 데이터베이스를 휘발성 메모리로 로드하여 메모리 데이터베이스를 생성한다(S120).When the file database exists in the nonvolatile memory (YES in S110), the blockchain software or the SQL database plug-in loads the file database into a volatile memory to create a memory database (S120).

도 7은 도 1에 도시된 블록체인 시스템의 동작을 설명하는 플로우 차트이다.7 is a flowchart illustrating the operation of the block chain system shown in FIG. 1.

도 1부터 도 7을 참조하면, 제1노드(110-1)는 컴퓨터(200)에서 실행되는 스마트 컨트랙트(또는 dapp)에 의해 생성된 오퍼레이션을 수신한다고 가정하고 제2노드(110-2)가 블록체인에 포함될 블록을 생성할 차례에 해당하는 노드라고 가정한다.1 to 7, it is assumed that the first node 110-1 receives an operation generated by a smart contract (or dapp) executed in the computer 200 and the second node 110-2 It is assumed that the node is in the turn to create the block to be included in the blockchain.

제1노드(110-1)는 컴퓨터(200)에서 실행되는 스마트 컨트랙트(또는 dapp)에 의해 생성된 오퍼레이션을 수신하고(S210), 수신된 오퍼레이션을 블록체인 네트워크(101)을 통해 노드들(110-2~110-8)로 전송한다(S220).The first node 110-1 receives an operation generated by a smart contract (or dapp) running on the computer 200 (S210), and transmits the received operation to the nodes 110 through the blockchain network 101. -2~110-8) (S220).

노드들(110-2~110-8) 중에서 블록체인에 포함될 블록을 생성할 차례에 해당하는 노드(예컨대, 제2노드(110-2)는 수신된 오퍼레이션을 상기 블록에 라이트하고 (S230), 상기 오퍼레이션을 포함하는 상기 블록을 블록체인 네트워크(101)을 통해 노드들(110-1, 및 110-3~110-8)로 전송한다(S240). 이때, 제2노드(110-2)는 아래에서 설명된 단계들(S250~S290)을 수행한다.Among the nodes 110-2 to 110-8, a node corresponding to the turn of generating a block to be included in the block chain (e.g., the second node 110-2 writes the received operation to the block (S230), The block including the operation is transmitted to the nodes 110-1 and 110-3 to 110-8 through the blockchain network 101 (S240). At this time, the second node 110-2 The steps S250 to S290 described below are performed.

각 노드(110-1~110-8)는 현재 블록(예컨대, 제2노드(110-2)로부터 전송된 블록과 제2노드(110-2)가 생성한 블록을 포함)에 포함된 상기 오퍼레이션이 SQL 쿼리 오퍼레이션인지를 판단한다(SS250). SQL 쿼리 오퍼레이션은 SQL 쿼리를 포함하는 오퍼레이션을 의미한다.Each node (110-1 to 110-8) is the operation included in the current block (e.g., including the block transmitted from the second node (110-2) and the block generated by the second node (110-2)) It is determined whether this is an SQL query operation (SS250). SQL query operation refers to an operation involving an SQL query.

상기 오퍼레이션이 상기 SQL 쿼리 오퍼레이션일 때(S250의 YES), 각 노드(110-1~110-8)는 상기 SQL 쿼리 오퍼레이션에 해당하는 동작을 휘발성 메모리에 저장된 메모리 데이터베이스에 수행한다(S270).When the operation is the SQL query operation (YES in S250), each node 110-1 to 110-8 performs an operation corresponding to the SQL query operation in a memory database stored in a volatile memory (S270).

노드들(110-1~110-8) 중에서 과반수보다 많은 노드들에 의해 상기 현재 블록이 합의된 후(S280), 각 노드(110-1~110-8)는 SQL 쿼리 오퍼레이션에 해당하는 동작을 불휘발성 메모리에 저장된 파일 데이터베이스에 수행한다(S290). 앞에서 설명한 바와 같이 각 노드(110-1~110-8)는 상기 메모리 데이터베이스를 상기 파일 데이터베이스로부터 생성한다.After the current block is agreed upon by more than half of the nodes 110-1 to 110-8 (S280), each node 110-1 to 110-8 performs an operation corresponding to the SQL query operation. The file database stored in the nonvolatile memory is executed (S290). As described above, each node 110-1 to 110-8 creates the memory database from the file database.

상기 오퍼레이션이 상기 SQL 쿼리 오퍼레이션이 아닐 때(S250의 NO), 즉, 상기 오퍼레이션이 블록체인 오퍼레이션일 때, 각 노드(110-1~110-8)는 상기 블록체인 오퍼레이션에 따라 상기 현재 블록(또는 상기 현재 블록에 포함된 데이터)를 처리한다.When the operation is not the SQL query operation (NO in S250), that is, when the operation is a block chain operation, each node 110-1 to 110-8 is the current block (or The data included in the current block) is processed.

상기 블록체인 오퍼레이션이 계좌 생성, 거래 생성, 거래 검증, 블록 구성 및 생성, 채굴 및 보상, 블록 검증, 블록체인 생성, 또는 난이도 조정을 위한 오퍼레이션일 때, 각 노드(110-1~110-8)는 상기 계좌 생성에 관련된 전자지갑 생성, 상기 거래 생성에 관련된 전자화폐 전송, 상기 거래 검증에 관련된 P2P 네트워크에서 거래전송, 상기 블록 구성 및 생성에 관련된 노드에서 트랜잭션을 블록에 생성, 상기 채굴 및 보상에 관련된 블록의 정당성을 확보하기 위한 채굴, 상기 블록 검증에 관련된 P2P 네트워크 전파 및 각 노드의 블록을 검증, 또는 상기 난이도 조정에 관련된 블록 생성 주기의 변경을 수행한다.When the block chain operation is an operation for account creation, transaction creation, transaction verification, block configuration and generation, mining and compensation, block verification, block chain creation, or difficulty adjustment, each node (110-1 to 110-8) Is the creation of the electronic wallet related to the account creation, the transmission of the electronic money related to the transaction generation, the transaction transmission in the P2P network related to the transaction verification, the block configuration and generation of the transaction in the block, the mining and compensation Mining to secure the validity of the related block, propagating the P2P network related to the block verification, verifying the block of each node, or changing the block generation period related to the difficulty adjustment.

오퍼레이션을 생성하는 스마트 컨트랙트를 실행하는 컴퓨터(200)와, 블록체인 시스템(100)에 포함된 노드들(110-1~110-8)을 이용하여 블록체인 서비스와 SQL 서비스를 제공하는 방법은 노드들(110-1~110-8) 각각이 현재 블록에 포함된 오퍼레이션이 블록체인 오퍼레이션인지 SQL 쿼리 오퍼레이션인지를 판단하고, 상기 오퍼레이션이 상기 블록체인 오퍼레이션일 때 노드들(110-1~110-8) 각각은 상기 블록체인 오퍼레이션에 해당하는 동작(에컨대, 블록체인 서비스)을 수행하고, 상기 오퍼레이션이 상기 SQL 쿼리 오퍼레이션일 때 노드들(110-1~110-8) 각각은 상기 SQL 쿼리 오퍼레이션에 해당하는 동작(예컨대, SQL 서비스)을 SQL 데이터베이스에 대해 수행한다.The method of providing blockchain services and SQL services using the computer 200 running the smart contract that creates the operation and the nodes 110-1 to 110-8 included in the blockchain system 100 is node Each of the nodes 110-1 to 110-8 determines whether the operation included in the current block is a block chain operation or an SQL query operation, and when the operation is the block chain operation, nodes 110-1 to 110-8 ) Each performs an operation corresponding to the block chain operation (e.g., a block chain service), and when the operation is the SQL query operation, each of the nodes 110-1 to 110-8 is applied to the SQL query operation. The corresponding operation (eg, SQL service) is performed on the SQL database.

상기 블록체인 오퍼레이션에 해당하는 동작은 계좌 생성, 거래 생성, 거래 검증, 블록 구성 및 생성, 채굴 및 보상, 블록 검증, 블록체인 생성, 또는 난이도 조정일 수 있다. 상기 SQL 쿼리 오퍼레이션에 해당하는 동작은 SQL 명령어에 해당하는 동작일 수 있다.The operation corresponding to the block chain operation may be account creation, transaction creation, transaction verification, block configuration and generation, mining and compensation, block verification, block chain creation, or difficulty adjustment. An operation corresponding to the SQL query operation may be an operation corresponding to an SQL command.

블록체인 서비스와 SQL 서비스를 제공하는 방법은 각 노드(110-1~110-8)에서 실행되는 블록체인 소프트웨어(예컨대, 컴퓨터 프로그램)에 의해 수행될 수 있다. 블록체인 서비스와 SQL 서비스를 제공하는 블록체인 소프트웨어(예컨대, 컴퓨터 프로그램)은 각 노드(110-1~110-8)가 읽을 수 있는 비일시적인(non-transitory) 저장 매체에 저장된다. 상기 비일시적인 저장 매체는 불휘발성 메모리를 의미할 수 있다.The method of providing the blockchain service and the SQL service can be performed by blockchain software (eg, a computer program) running on each node 110-1 to 110-8. Blockchain software (e.g., a computer program) that provides blockchain services and SQL services is stored in a non-transitory storage medium that each node 110-1 to 110-8 can read. The non-transitory storage medium may mean a nonvolatile memory.

본 발명은 도면에 도시된 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.The present invention has been described with reference to the embodiments shown in the drawings, but these are only exemplary, and those of ordinary skill in the art will appreciate that various modifications and other equivalent embodiments are possible therefrom. Therefore, the true technical protection scope of the present invention should be determined by the technical idea of the attached registration claims.

100: 블록체인 시스템
101: 블록체인 네트워크
110-1~110-8: 노드들
120-1, 120-2: 하드웨어
130-1, 130-2: 프로세서
120: 컴퓨터
100: Blockchain system
101: Blockchain network
110-1~110-8: nodes
120-1, 120-2: hardware
130-1, 130-2: processor
120: computer

Claims (15)

블록체인 네트워크; 및
상기 블록체인 네트워크를 통해 서로 연결된 제1노드, 제2노드, 및 제3노드를 포함하고,
상기 제1노드는,
컴퓨터에서 실행되는 스마트 컨트랙트에 의해 생성된 오퍼레이션을 수신하고,
상기 오퍼레이션을 상기 제2노드와 상기 제3노드로 전송하고,
상기 제2노드와 상기 제3노드 중에서 블록체인에 포함될 블록을 생성할 차례에 해당하는 상기 제2노드는,
상기 오퍼레이션을 상기 블록에 라이트하고,
상기 오퍼레이션을 포함하는 상기 블록을 상기 제1노드와 상기 제3노드로 전송하고,
상기 제1노드와 상기 제3노드 각각은,
상기 블록에 포함된 상기 오퍼레이션이 SQL 쿼리 오퍼레이션인지를 판단하고,
상기 오퍼레이션이 상기 SQL 쿼리 오퍼레이션일 때 상기 SQL 쿼리 오퍼레이션에 해당하는 동작을 휘발성 메모리에 저장된 메모리 데이터베이스에 대해 수행한 후, 상기 SQL 쿼리 오퍼레이션에 해당하는 동작을 불휘발성 메모리에 저장된 파일 데이터베이스에 수행하고,
상기 메모리 데이터베이스는 상기 파일 데이터베이스로부터 생성된 블록체인 시스템.
Blockchain network; And
Including a first node, a second node, and a third node connected to each other through the blockchain network,
The first node,
Receive operations generated by smart contracts running on the computer,
Transmit the operation to the second node and the third node,
Among the second node and the third node, the second node corresponding to the turn of generating a block to be included in the block chain,
Write the operation to the block,
Transmitting the block including the operation to the first node and the third node,
Each of the first node and the third node,
Determine whether the operation included in the block is an SQL query operation,
When the operation is the SQL query operation, an operation corresponding to the SQL query operation is performed on a memory database stored in a volatile memory, and then an operation corresponding to the SQL query operation is performed on a file database stored in a nonvolatile memory,
The memory database is a blockchain system created from the file database.
제1항에 있어서,
상기 오퍼레이션이 블록체인 오퍼레이션일 때, 상기 제1노드와 상기 제3노드 각각은 상기 블록체인 오퍼레이션에 따라 상기 블록을 처리하는 블록체인 시스템.
The method of claim 1,
When the operation is a block chain operation, each of the first node and the third node processes the block according to the block chain operation.
제2항에 있어서,
상기 오퍼레이션이 상기 블록체인 오퍼레이션일 때, 상기 제1노드와 상기 제3노드 각각은 상기 블록에 대한 처리 결과를 파일-기반 데이터 스토리지에 저장하고,
상기 파일-기반 데이터 스토리지는 상기 메모리 데이터베이스와 상기 파일 데이터베이스와는 서로 다른 블록체인 시스템.
The method of claim 2,
When the operation is the block chain operation, each of the first node and the third node stores the processing result for the block in a file-based data storage,
The file-based data storage is a blockchain system different from the memory database and the file database.
제2항에 있어서, 상기 제1노드와 상기 제3노드 각각은,
상기 불휘발성 메모리에 상기 파일 데이터베이스가 존재하는지를 판단하고,
상기 불휘발성 메모리에 상기 파일 데이터베이스가 존재하지 않을 때 상기 파일 데이터베이스를 생성하고, 상기 파일 데이터베이스로부터 생성된 상기 메모리 데이터베이스를 상기 휘발성 메모리로 로드하고,
상기 불휘발성 메모리에 상기 파일 데이터베이스가 존재할 때 상기 불휘발성 메모리에 존재하는 상기 파일 데이터베이스로부터 생성된 상기 메모리 데이터베이스를 상기 휘발성 메모리로 로드하는 블록체인 시스템.
The method of claim 2, wherein each of the first node and the third node,
It is determined whether the file database exists in the nonvolatile memory,
When the file database does not exist in the nonvolatile memory, the file database is created, and the memory database generated from the file database is loaded into the volatile memory,
Blockchain system for loading the memory database generated from the file database existing in the nonvolatile memory into the volatile memory when the file database exists in the nonvolatile memory.
제1항에 있어서,
상기 SQL 쿼리 오퍼레이션이 SELECT 쿼리를 포함할 때,
상기 제1노드는 상기 제1노드에 포함된 제1휘발성 메모리에 저장된 제1메모리 데이터베이스로부터 상기 SELECT 쿼리에 해당하는 데이터를 검색하고, 검색된 데이터를 상기 컴퓨터로 전송하고,
상기 제1메모리 데이터베이스는 상기 제1노드에 포함된 제1불휘발성 메모리에 저장된 제1파일 데이터베이스로부터 생성된 블록체인 시스템.
The method of claim 1,
When the SQL query operation includes a SELECT query,
The first node searches for data corresponding to the SELECT query from a first memory database stored in a first volatile memory included in the first node, and transmits the searched data to the computer,
The first memory database is a blockchain system created from a first file database stored in a first nonvolatile memory included in the first node.
블록체인 네트워크를 통해 서로 연결된 노드들을 포함하는 블록체인 시스템의 동작 방법에 있어서,
상기 노드들 중에서 제1노드가 컴퓨터에서 실행되는 스마트 컨트랙트에 의해 생성된 오퍼레이션을 수신하는 단계;
상기 제1노드가 수신된 오퍼레이션을 상기 노드들 중에서 나머지 노드들로 전송하는 단계;
상기 노드들 중에서 블록체인에 포함될 블록을 생성할 차례에 해당하는 제2노드가 상기 오퍼레이션을 상기 블록에 라이트하고, 상기 오퍼레이션을 포함하는 상기 블록을 상기 노드들 중에서 상기 제2노드를 제외한 다른 노드들로 전송하는 단계;
상기 노드들 각각이 상기 블록에 포함된 상기 오퍼레이션이 SQL 쿼리를 포함하고 있는지를 판단하는 단계;
상기 오퍼레이션이 상기 SQL 쿼리를 포함하지 않을 때, 상기 노드들 각각이 상기 오퍼레이션에 따라 상기 블록을 처리하는 단계; 및
상기 오퍼레이션이 상기 SQL 쿼리를 포함하고 있을 때, 상기 노드들 각각이 상기 SQL 쿼리에 해당하는 동작을 SQL 데이터베이스에 대해 수행하는 단계를 포함하는 블록체인 시스템의 동작 방법.
In the operating method of a blockchain system including nodes connected to each other through a blockchain network,
Receiving an operation generated by a smart contract executed by a first node among the nodes;
Transmitting the operation received by the first node to the remaining nodes among the nodes;
Among the nodes, a second node corresponding to the turn of generating a block to be included in the block chain writes the operation to the block, and the block including the operation from among the nodes other than the second node Transferring to;
Determining whether the operation included in the block by each of the nodes includes an SQL query;
When the operation does not include the SQL query, each of the nodes processing the block according to the operation; And
And when the operation includes the SQL query, each of the nodes performing an operation corresponding to the SQL query on a SQL database.
제6항에 있어서,
상기 SQL 데이터베이스는 휘발성 메모리에 저장된 메모리 데이터베이스와 불휘발성 메모리에 저장된 파일 데이터베이스를 포함하고,
상기 SQL 쿼리에 해당하는 동작을 SQL 데이터베이스에 대해 수행하는 단계는,
상기 SQL 쿼리에 해당하는 동작을 상기 메모리 데이터베이스에 대해 수행한 후, 상기 SQL 쿼리에 해당하는 동작을 상기 파일 데이터베이스에 대해 수행하는 단계를 포함하고,
상기 메모리 데이터베이스는 상기 파일 데이터베이스로부터 생성된 블록체인 시스템의 동작 방법.
The method of claim 6,
The SQL database includes a memory database stored in a volatile memory and a file database stored in a nonvolatile memory,
The step of performing the operation corresponding to the SQL query on the SQL database,
After performing an operation corresponding to the SQL query on the memory database, performing an operation corresponding to the SQL query on the file database,
The memory database is a method of operating a blockchain system created from the file database.
제7항에 있어서,
상기 SQL 쿼리가 SELECT 쿼리일 때,
상기 제1노드가 상기 SELECT 쿼리에 따라 상기 메모리 데이터베이스로부터 데이터를 검색하고, 검색된 데이터를 상기 컴퓨터로 전송하는 단계를 더 포함하는 블록체인 시스템의 동작 방법.
The method of claim 7,
When the above SQL query is a SELECT query,
The method of operating a blockchain system further comprising the step of the first node searching for data from the memory database according to the SELECT query and transmitting the searched data to the computer.
제7항에 있어서,
상기 노드들 각각은,
상기 불휘발성 메모리에 상기 파일 데이터베이스가 존재하는지를 판단하는 단계;
상기 불휘발성 메모리에 상기 파일 데이터베이스가 존재하지 않을 때, 상기 파일 데이터베이스를 생성하고, 상기 파일 데이터베이스로부터 생성된 상기 메모리 데이터베이스를 상기 휘발성 메모리로 로드하는 단계; 및
상기 불휘발성 메모리에 상기 파일 데이터베이스가 존재할 때, 상기 불휘발성 메모리에 존재하는 상기 파일 데이터베이스로부터 생성된 상기 메모리 데이터베이스를 상기 휘발성 메모리로 로드하는 단계를 포함하는 블록체인 시스템의 동작 방법.
The method of claim 7,
Each of the nodes,
Determining whether the file database exists in the nonvolatile memory;
When the file database does not exist in the nonvolatile memory, creating the file database and loading the memory database generated from the file database into the volatile memory; And
And when the file database exists in the nonvolatile memory, loading the memory database generated from the file database existing in the nonvolatile memory into the volatile memory.
제1노드와 결합되어, SQL 쿼리를 포함하는 오퍼레이션을 처리하기 위해 컴퓨터 판독가능한 저장 매체에 저장된 컴퓨터 프로그램에 있어서,
상기 컴퓨터 프로그램은,
컴퓨터에서 실행되는 스마트 컨트랙트에 의해 생성된 상기 오퍼레이션을 수신하는 단계;
상기 오퍼레이션을 제2노드들로 전송하는 단계;
상기 제2노드들 중에서 블록체인에 포함될 블록을 생성할 차례에 해당하는 노드로부터 전송된 상기 오퍼레이션을 포함하는 블록을 수신하는 단계;
수신된 블록에 포함된 상기 오퍼레이션이 SQL 쿼리를 포함하고 있는지를 판단하는 단계;
상기 블록에 포함된 상기 오퍼레이션이 상기 SQL 쿼리를 포함하지 않을 때 상기 오퍼레이션에 따라 상기 블록을 처리하는 단계; 및
상기 블록에 포함된 상기 오퍼레이션이 상기 SQL 쿼리를 포함할 때 상기 SQL 쿼리에 해당하는 동작을 SQL 데이터베이스에 대해 수행하는 단계를 포함하는 컴퓨터 판독가능한 저장 매체에 저장된 컴퓨터 프로그램.
A computer program associated with a first node and stored in a computer-readable storage medium for processing an operation including an SQL query,
The computer program,
Receiving the operation generated by a smart contract executed on a computer;
Transmitting the operation to second nodes;
Receiving a block including the operation transmitted from a node corresponding to a turn to generate a block to be included in the block chain among the second nodes;
Determining whether the operation included in the received block includes an SQL query;
Processing the block according to the operation when the operation included in the block does not include the SQL query; And
A computer program stored in a computer-readable storage medium comprising the step of performing an operation corresponding to the SQL query to an SQL database when the operation included in the block includes the SQL query.
제9항에 있어서, 상기 SQL 쿼리에 해당하는 동작을 SQL 데이터베이스에 대해 수행하는 단계는,
상기 SQL 쿼리에 해당하는 동작을 상기 제1노드에 배치된 휘발성 메모리에 저장된 메모리 데이터베이스에 대해 수행하는 단계; 및
상기 SQL 쿼리에 해당하는 동작을 상기 제1노드에 배치된 불휘발성 메모리에 저장된 파일 데이터베이스에 대해 수행하는 단계를 포함하고,
상기 SQL 데이터베이스는 상기 메모리 데이터베이스와 상기 파일 데이터베이스를 포함하고,
상기 메모리 데이터베이스는 상기 파일 데이터베이스로부터 생성된 컴퓨터 판독가능한 저장 매체에 저장된 컴퓨터 프로그램.
The method of claim 9, wherein performing the operation corresponding to the SQL query on the SQL database,
Performing an operation corresponding to the SQL query on a memory database stored in a volatile memory disposed in the first node; And
And performing an operation corresponding to the SQL query on a file database stored in a nonvolatile memory disposed in the first node,
The SQL database includes the memory database and the file database,
The memory database is a computer program stored in a computer-readable storage medium generated from the file database.
오퍼레이션을 생성하는 스마트 컨트랙트를 실행하는 컴퓨터와, 블록체인 시스템에 포함된 노드들을 이용하여 블록체인 서비스와 SQL 서비스를 제공하는 방법에 있어서,
상기 노드들 각각이 블록에 포함된 오퍼레이션이 블록체인 오퍼레이션인지 SQL 쿼리 오퍼레이션인지를 판단하는 단계; 및
상기 오퍼레이션이 상기 블록체인 오퍼레이션일 때 상기 노드들 각각이 상기 블록체인 오퍼레이션에 해당하는 동작을 수행하고, 상기 오퍼레이션이 상기 SQL 쿼리 오퍼레이션일 때 상기 노드들 각각이 상기 SQL 쿼리 오퍼레이션에 해당하는 동작을 SQL 데이터베이스에 대해 수행하는 단계를 포함하는 블록체인 서비스와 SQL 서비스를 제공하는 방법.
In the method of providing blockchain services and SQL services using a computer running a smart contract that creates an operation and nodes included in the blockchain system,
Determining whether an operation included in the block by each of the nodes is a block chain operation or an SQL query operation; And
When the operation is the block chain operation, each of the nodes performs an operation corresponding to the block chain operation, and when the operation is the SQL query operation, each of the nodes performs an operation corresponding to the SQL query operation. A method of providing blockchain services and SQL services, including steps to perform on databases.
제12항에 있어서,
상기 블록체인 오퍼레이션에 해당하는 동작은 전자화폐를 처리하는 동작이고,
상기 SQL 쿼리 오퍼레이션에 해당하는 동작은 SQL 명령어에 해당하는 동작인 블록체인 서비스와 SQL 서비스를 제공하는 방법.
The method of claim 12,
The operation corresponding to the block chain operation is an operation of processing electronic money,
The operation corresponding to the SQL query operation is a method of providing a blockchain service and an SQL service, which are operations corresponding to SQL commands.
제12항에 있어서,
상기 블록체인 오퍼레이션에 해당하는 동작은 전자화폐를 처리하는 동작이고,
상기 노드들 중에서 제1노드가 상기 컴퓨터로부터 출력된 상기 오퍼레이션을 수신하고, 상기 오퍼레이션이 SELECT 쿼리를 포함할 때,
상기 서비스를 제공하는 방법은,
상기 제1노드가 상기 SQL 데이터베이스의 메모리 데이터베이스로부터 상기 SELECT 쿼리에 해당하는 데이터를 검색하는 단계; 및
상기 제1노드가 검색된 데이터를 상기 컴퓨터로 전송하는 단계를 더 포함하는 블록체인 서비스와 SQL 서비스를 제공하는 방법.
The method of claim 12,
The operation corresponding to the block chain operation is an operation of processing electronic money,
When a first node among the nodes receives the operation output from the computer, and the operation includes a SELECT query,
The method of providing the above service,
Retrieving, by the first node, data corresponding to the SELECT query from a memory database of the SQL database; And
The method of providing a block chain service and SQL service further comprising the step of transmitting the data retrieved by the first node to the computer.
제12항에 있어서,
상기 블록체인 오퍼레이션에 해당하는 동작은 전자화폐를 처리하는 동작이고,
상기 노드들 각각에 포함된 상기 SQL 데이터베이스가 휘발성 메모리에 저장된 메모리 데이터베이스와 불휘발성 메모리에 저장된 파일 데이터베이스를 포함할 때,
상기 SQL 쿼리 오퍼레이션에 해당하는 동작은,
상기 SQL 쿼리 오퍼레이션에 해당하는 동작을 상기 메모리 데이터베이스에 대해 수행하고,
상기 노드들 중에서 과반수보다 많은 노드들에 의해 상기 블록이 합의된 후, 상기 SQL 쿼리 오퍼레이션에 해당하는 동작을 상기 파일 데이터베이스에 대해 수행하는 블록체인 서비스와 SQL 서비스를 제공하는 방법.
The method of claim 12,
The operation corresponding to the block chain operation is an operation of processing electronic money,
When the SQL database included in each of the nodes includes a memory database stored in a volatile memory and a file database stored in a nonvolatile memory,
The operation corresponding to the above SQL query operation,
An operation corresponding to the SQL query operation is performed on the memory database,
After the block is agreed upon by more than half of the nodes among the nodes, an operation corresponding to the SQL query operation is performed on the file database.
KR1020190020756A 2019-02-21 2019-02-21 Blockchain software capable of operation corresponding sql query, blockchain system, and method of thereof KR102208704B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190020756A KR102208704B1 (en) 2019-02-21 2019-02-21 Blockchain software capable of operation corresponding sql query, blockchain system, and method of thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190020756A KR102208704B1 (en) 2019-02-21 2019-02-21 Blockchain software capable of operation corresponding sql query, blockchain system, and method of thereof

Publications (2)

Publication Number Publication Date
KR20200102293A true KR20200102293A (en) 2020-08-31
KR102208704B1 KR102208704B1 (en) 2021-01-28

Family

ID=72234484

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190020756A KR102208704B1 (en) 2019-02-21 2019-02-21 Blockchain software capable of operation corresponding sql query, blockchain system, and method of thereof

Country Status (1)

Country Link
KR (1) KR102208704B1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112667489A (en) * 2020-12-28 2021-04-16 杭州趣链科技有限公司 Method and device for measuring data query workload in block chain and terminal
KR20220059072A (en) * 2020-11-02 2022-05-10 계명대학교 산학협력단 Apparatus and method for serverless service development based on blockchain
KR20220104871A (en) * 2021-01-19 2022-07-26 주식회사 에이비씨 Hybrid Database System Using Private Blockchain

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101395737B1 (en) 2013-09-05 2014-05-16 인하대학교 산학협력단 Conforming method of integrity constraint of express in relational database
US20170236121A1 (en) 2016-02-11 2017-08-17 Mastercard International Incorporated Method and system for offline blockchain exchanges
KR101816653B1 (en) 2017-02-14 2018-02-21 주식회사 코인플러그 Method for providing login flow via authentication based on public key infrastructure in response to user’s login request for using service provided by service provider server in use of smart contract with blockchain database and server using the same

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101395737B1 (en) 2013-09-05 2014-05-16 인하대학교 산학협력단 Conforming method of integrity constraint of express in relational database
US20170236121A1 (en) 2016-02-11 2017-08-17 Mastercard International Incorporated Method and system for offline blockchain exchanges
KR101816653B1 (en) 2017-02-14 2018-02-21 주식회사 코인플러그 Method for providing login flow via authentication based on public key infrastructure in response to user’s login request for using service provided by service provider server in use of smart contract with blockchain database and server using the same

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Bragagnolo, Santiago, et al. "Ethereum query language." Proceedings of the 1st International Workshop on Emerging Trends in Software Engineering for Blockchain. (2018.05.27. 공개)* *
김영수 외 2인 . "커미트먼트 스킴을 응용한 사설 블록체인 기반 스마트 컨트랙트의 보안 모델" 한국콘텐츠학회논문지 18(7), 620-627(2018.07.18. 공개)* *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220059072A (en) * 2020-11-02 2022-05-10 계명대학교 산학협력단 Apparatus and method for serverless service development based on blockchain
CN112667489A (en) * 2020-12-28 2021-04-16 杭州趣链科技有限公司 Method and device for measuring data query workload in block chain and terminal
KR20220104871A (en) * 2021-01-19 2022-07-26 주식회사 에이비씨 Hybrid Database System Using Private Blockchain

Also Published As

Publication number Publication date
KR102208704B1 (en) 2021-01-28

Similar Documents

Publication Publication Date Title
US10831720B2 (en) Cloud storage distributed file system
US8495013B2 (en) Distributed storage system and method for storing objects based on locations
US10817498B2 (en) Distributed transactions in cloud storage with hierarchical namespace
US20190370362A1 (en) Multi-protocol cloud storage for big data and analytics
US10852961B2 (en) Overlapping write detection and processing for sync replication
US10853242B2 (en) Deduplication and garbage collection across logical databases
US10803015B2 (en) Caching system and method
US10789217B2 (en) Hierarchical namespace with strong consistency and horizontal scalability
US11943291B2 (en) Hosted file sync with stateless sync nodes
US8682928B2 (en) Method, system and program for direct client file access in a data management system
CN109684282B (en) Method and device for constructing metadata cache
KR102208704B1 (en) Blockchain software capable of operation corresponding sql query, blockchain system, and method of thereof
JP2019519025A (en) Division and movement of ranges in distributed systems
KR20190095066A (en) The method for information processing, apparatus and server and computer readable medium
WO2016202199A1 (en) Distributed file system and file meta-information management method thereof
CN102053982A (en) Method and equipment for managing database information
US10805394B2 (en) File server apparatus having shared file system with file and directory operation processing
JP6586174B2 (en) Database system, transaction management node, method and program
KR20210082481A (en) Database management service providing system
US20210248108A1 (en) Asynchronous data synchronization and reconciliation
JP2024089754A (en) OBJECT MANAGEMENT METHOD, COMPUTER SYSTEM, AND OBJECT MANAGEMENT PROGRAM
JP2022082006A (en) Storage device
JP2019040301A (en) Storage management device, storage management method, storage management program, and data base system

Legal Events

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