KR102461213B1 - 블록체인 기반 데이터베이스 운영방법 및 이를 구동하기 위한 블록체인 시스템 - Google Patents

블록체인 기반 데이터베이스 운영방법 및 이를 구동하기 위한 블록체인 시스템 Download PDF

Info

Publication number
KR102461213B1
KR102461213B1 KR1020220012295A KR20220012295A KR102461213B1 KR 102461213 B1 KR102461213 B1 KR 102461213B1 KR 1020220012295 A KR1020220012295 A KR 1020220012295A KR 20220012295 A KR20220012295 A KR 20220012295A KR 102461213 B1 KR102461213 B1 KR 102461213B1
Authority
KR
South Korea
Prior art keywords
block chain
smart contract
client
data
blockchain
Prior art date
Application number
KR1020220012295A
Other languages
English (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 주식회사 오퍼스엠
Application granted granted Critical
Publication of KR102461213B1 publication Critical patent/KR102461213B1/ko

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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/21Design, administration or maintenance of databases
    • G06F16/214Database migration support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • 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
    • 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/25Integrating or interfacing systems involving database management systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명의 실시예에 따른 블록체인 기반 데이터베이스 운영방법은, 클라이언트에 의해 사용자정의 태그를 이용하여 테이블 구조가 생성되는 단계; 클라이언트에 의해 설정되어 사용될 대상블록체인을 입력받는 단계; 마이그레이터에 의해 상기 테이블 구조에 대응하는 스마트 컨트랙트가 구성되는 단계; 추상블록체인부에 상기 마이그레이터에 의해 구성된 스마트 컨트랙트가 설치되는 단계; 클라이언트의 요청에 의해 레저마스터에서 상기 스마트 컨트랙트에 저장된 테이블과 동일한 컬럼을 갖는 테이블객체를 생성하는 단계; 상기 레저마스터에 의해 상기 테이블객체에 저장되는 데이터를 조작할 수 있도록 하는 데이터관리용 API가 제공되고, 상기 데이터관리용 API를 이용한 클라이언트의 요청에 의해 상기 대상블록체인에 데이터가 저장되거나 검색되는 단계를 포함한다.

Description

블록체인 기반 데이터베이스 운영방법 및 이를 구동하기 위한 블록체인 시스템{BLOCKCHAIN DATABASE-BASED OPERATING METHOD AND BLOCKCHAIN SYSTEM TO DRIVE THEM}
본 발명은 블록체인기반 데이터베이스 운영방법 및 이를 구동하기 위한 블록체인 시스템에 관한 것이며, 구체적으로 블록체인의 종류에 관계없이 공통화된 방법으로 용이하게 기존의 블록체인을 데이터베이스로 사용할 수 있게 하여 주는 블록체인기반 데이터베이스 운영방법에 관한 것이다.
비트코인을 시작으로 다양한 종류의 블록체인 플랫폼이 생겨나면서, 엔터프라이즈 영역에서 사용할 수 있는 콘소시엄형의 블록체인도 뒤따라 등장을 했다. 엔터프라이즈 시스템에서의 블록체인은 화폐이동이라는 비트코인 본연의 목적보다는 분산 데이터 공유로서의 조직간 신뢰비용의 축소를 목적으로 한다. 기업에서 이런 분산데이터베이스 용도로 사용하기 위해서는 RDB 스타일의 격자형 모형의 데이터 관리방식을 사용해 왔다.
따라서 종래의 시스템에서는 스마트 컨트랙트를 이용한 장부의 저장을 격자 형태로 로우/컬럼/인덱스를 가진 테이블 구조로 만들었으며, 해당 테이블 구조에 데이터를 삽입하고 쿼리하는 기술로서, 최근에 직접 SQL문을 입력하는 형태에서 객체를 직접 테이블로 매핑하는 JPA기술 등이 각광을 받고 있다.
한편 기업에서 RDB 스타일의 격자형 모형의 데이터 관리방식을 신뢰성을 위해 블록체인 시스템 상에서 사용하기 위해서는 각각의 블록체인 시스템을 위한 언어와 빌드 시스템 등을 배워야 하는데, 블록체인 전문가가 따로 없는 기업에서는 해당 전문가를 갖추지 않는 이상 블록체인 시스템 상에서 RDB 스타일의 격자형 모형의 데이터 관리방식을 적용하기 힘들다는 문제가 존재한다.
종래기술인 등록특허 제10-2354736호에 의하면, 블록체인 기반의 데이터베이스 구축을 이용한 스타일링 서비스 제공방법 및 장치가 개시되어 있으나, 이러한 데이터베이스 구축을 위해서는 블록체인 시스템에 정통한 전문가가 동원되어야 하는 문제점이 있다.
블록체인 시스템 상에서 RDB 스타일의 격자형 모형의 데이터 관리방식을 손쉽게 이용할 수 있도록 블록체인 기반 데이터베이스 운영방법 및 이를 구동하기 위한 블록체인 시스템을 제공한다.
상기한 과제를 해결하기 위해, 본 발명의 실시예에 따른 블록체인 기반 데이터베이스 운영방법은, 클라이언트에 의해 사용자정의 태그를 이용하여 테이블 구조가 생성되는 단계; 클라이언트에 의해 설정되어 사용될 대상블록체인을 입력받는 단계; 마이그레이터에 의해 상기 테이블 구조에 대응하는 스마트 컨트랙트가 구성되는 단계; 공통API를 제공하는 추상블록체인부에 상기 마이그레이터에 의해 구성된 스마트 컨트랙트가 설치되는 단계; 클라이언트의 요청에 의해 레저마스터에서 상기 스마트 컨트랙트에 저장된 테이블과 동일한 컬럼을 갖는 테이블객체를 생성하는 단계; 상기 레저마스터에 의해 상기 테이블객체에 저장되는 데이터를 조작할 수 있도록 하는 데이터관리용 API가 제공되고, 상기 데이터관리용 API를 이용한 클라이언트의 요청에 의해 상기 대상블록체인에 데이터가 저장되거나 검색되는 단계를 포함한다.
본 발명의 다른 실시예에 따른 블록체인 기반 데이터베이스 운영방법은, 클라이언트에 의해 사용자정의 태그를 이용하여 테이블 구조가 생성되는 단계; 클라이언트에 의해 설정되어 사용될 대상블록체인을 입력받는 단계; 마이그레이터에 의해 상기 테이블 구조에 대응하는 스마트 컨트랙트가 구성되는 단계; 공통API를 제공하는 추상블록체인부에 상기 마이그레이터에 의해 구성된 스마트 컨트랙트가 설치되는 단계; 클라이언트에 의해 레저마스터에서 제공되는 쿼리문자열이 전송되는 단계; 상기 레저마스터에서 상기 쿼리문자열을 파싱하여 상기 스마트 컨트랙트의 인자로 넘겨주고, 상기 스마트 컨트랙트는 상기 인자에 대응하여 상기 대상블록체인에 데이터를 저장하거나 해당 데이터를 검색하는 단계를 포함한다.
또한 실시예에 있어서, 상기 사용자정의 태그는 테이블을 생성하는 생성태그, 테이블에 데이터를 입력하는 입력태그, 테이블에 저장된 데이터를 변경하는 변경태그, 테이블에 저장된 데이터를 삭제하는 삭제태그를 포함한다.
또한 실시예에 있어서, 상기 마이그레이터는 상기 추상블록체인부에 스마트 컨트랙트를 설치하고, 상기 클라이언트에 의해 구성된 테이블 구조에 대응하는 스마트 컨트랙트의 주소를 생성하는 하여 상기 추상블록체인부에 전송한다.
또한 실시예에 있어서, 상기 테이블 구조는 테이블명, 컬럼명, 인덱스, 제약사항을 포함하며, 상기 스마트 컨트랙트는 대상블록체인에 저장된 데이터와 대응하는 테이블명 및 컬럼명을 이용하여 해쉬코드를 생성한다.
또한 실시예에 있어서, 상기 테이블 구조는 복수 개의 컬럼명 중 1개의 프라이머리 컬럼명을 포함하며, 상기 스마트 컨트랙트는 상기 프라이머리 컬럼명 중 첫번째 인덱스에 대응하는 데이터를 루트노드로 하고, 프라이머리 컬럼에 속하는 데이터(크기)들의 대소를 비교하여 자식노드의 위치를 정한다.
본 발명의 실시예에 따른 블록체인 시스템은, 클라이언트에 의해 입력된 사용자정의 태그를 이용하여 생성된 테이블 구조에 대응되는 스마트 컨트랙트를 구성하는 마이그레이터; 상기 마이그레이터에 의해 구성된 스마트 컨트랙트가 설치되는 추상블록체인부; 및 상기 클라이언트의 요청에 의해 상기 스마트 컨트랙트에 저장된 테이블과 동일한 컬럼을 갖는 테이블객체를 생성하며, 상기 테이블객체에 저장되는 데이터를 조작할 수 있도록 하는 데이터관리용 API을 제공하는 레저마스터를 포함하고, 상기 클라이언트에 의해 입력받은 대상블록체인에 대응하는 인터페이스에 의해 상기 추상블록체인부와 대상블록체인 사이에 데이터가 전송되고, 상기 데이터관리용 API를 이용한 클라이언트의 요청에 의해 상기 대상블록체인에 데이터가 저장되거나 검색된다.
본 발명의 다른 실시예에 따른 블록체인 시스템은, 클라이언트에 의해 입력된 사용자정의 태그를 이용하여 생성된 테이블 구조에 대응되는 스마트 컨트랙트를 구성하는 마이그레이터; 상기 마이그레이터에 의해 구성된 스마트 컨트랙트가 설치되는 추상블록체인부; 및 상기 클라이언트로부터 쿼리문자열을 수신하면, 상기 쿼리문자열을 파싱하여 상기 스마트 컨트랙트의 인자로 넘겨주는 레저마스터를 포함하고, 상기 클라이언트에 의해 입력받은 대상블록체인에 대응하는 인터페이스에 의해 상기 추상블록체인부와 대상블록체인 사이에 데이터가 전송되고, 상기 스마트 컨트랙트는 상기 인자에 대응하여 상기 대상블록체인에 데이터를 저장하거나 해당 데이터를 검색한다.
본 발명은 블록체인 사용자가 높은 수준의 블록체인 지식을 습득할 필요가 없이 레저마스터의 API함수 등을 이용하여 데이터베이스를 용이하게 관리할 수 있으므로, 기업에서는 주 목적인 비지니스 로직 및 기업 간의 신뢰비용을 줄이고 관리에 집중할 수 있게 함으로써 블록체인의 활용범위를 넓혀 갈 수 있다.
도 1은 본 발명의 실시예에 따른 블록체인 시스템을 설명하기 위한 도면이다.
도 2는 본 발명의 실시예에 따른 블록체인 기반 데이터베이스 운영방법을 설명하기 위한 플로우차트이다.
도 3은 본 발명의 다른 실시예에 따른 블록체인 기반 데이터베이스 운영방법을 설명하기 위한 플로우차트이다.
상술한 목적, 특징 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세한 설명을 생략하기로 한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일 실시예를 상세히 설명하기로 한다.
도 1은 본 발명의 실시예에 따른 블록체인 시스템을 설명하기 위한 도면이다. 도 1을 참조하면, 본 발명의 실시예에 따른 블록체인 시스템은 클라이언트(100), 미들웨어시스템(200), 추상블록체인부(230), 블록체인(300)을 포함한다.
클라이언트(100)는 사용자에 의해 설정되는 사용자정의 태그를 이용하여 테이블 구조를 생성하고, 대상블록체인이 어떠한 블록체인을 대상으로 하는지를 알 수 있도록 대상블록체인을 입력받는다.
사용자에 의해 설정되는 테이블 구조는 테이블 명칭을 의미하는 테이블명, 테이블 내 항목을 나타내는 컬럼명, 테이블 내 순서를 나타내는 인덱스, 테이블 항목의 입력문자형태 등 제약사항 등의 테이블 구성을 포함한다. 이때 블록체인 상에서 테이블명, 컬럼명을 기반으로 B TREE, HASH INDEX 등의 처리가 이루어진다.
사용자정의 태그는 테이블을 생성하는 생성태그, 테이블에 데이터를 입력하는 입력태그, 테이블에 저장된 데이터를 변경하는 변경태그, 테이블에 저장된 데이터를 삭제하는 삭제태그 등의 다양한 태그들을 포함하며, 이들은 XML형태로 이루어질 수 있다.
미들웨어시스템(200)은 마이그레이터(210), 레저마스터(220)를 포함한다.
마이그레이터(210)는 추상블록체인부(230)에 스마트 컨트랙트를 설치하고, 마이그레이터(210)는 클라이언트(100)에 의해 구성된 테이블 구조에 대응하는 스마트 컨트랙트의 주소를 생성하여, 추상블록체인부(230)에 전송한다. 또한 마이그레이터(210)에 의해 추상블록체인(230)에 전송되는 사항은 블록의 크기, 블록의 생성주기 등의 설정사항 등의 설정사항을 더 포함한다.
우선 마이그레이터(210)는 XML의 사용자정의 태그를 기반으로 테이블 구조를 생성하고, 테이블 구조를 스마트 컨트랙트에 매핑하여 테이블 구조에 대응하는 스마트 컨트랙트를 구성한다. 이때 XML의 사용자정의 태그를 기반으로 생성된 테이블 구조에는 적어도 하나의 스마트 컨트랙트의 주소가 매핑될 수 있다. 본 발명의 경우, 사용자에 의해 정의된 XML을 이용하여 테이블 구조를 생성할 수 있어 높은 수준의 블록체인 지식을 습득하지 않아도 쉽게 사용이 가능하다는 장점을 갖는다.
마이그레이터(210)는 사용자에 의해 XML로 정의된 컬럼들과, 인덱스 및 제약사항를 기반으로 블록체인 상에 기반환경 스마트 컨트랙트를 인스톨하고, 사용자 정의 테이블 형식에 대한 스마트 컨트랙트를 구성하게 된다. 이에 따라 후술하는 추상화 블록체인(230)에서, 대상블록체인이 상이한 경우, 대상블록체인 각각에 따른 수정을 요하지 않아 사용자의 편의성을 증대시킬 수 있다.
레저마스터부(220)는 스마트 컨트랙트에 저장된 테이블과 같은 컬럼을 갖는 객체를 만들 수 있게 해준다.
레저마스터(220)는 오브젝트 맵퍼부(221), 쿼리DSL부(222)를 포함한다.
오브젝트 맵퍼부(221)는 클라이언트(100)의 요청에 의해 레저마스터가 API를 이용하여 스마트 컨트랙트에 저장된 테이블과 같은 컬럼을 갖는 객체를 만들 수 있게 해준다. 복수의 정의된 클래스에 기반하여 실행 시점에 자동으로 해당 클래스의 속성과 동일한 컬럼을 갖는 테이블을 내부에 저장된 일련의 스마트 컨트랙트 집단에 의해 자동적으로 테이블로 만들어진다.
그리고 오브젝트 맵퍼(221)는 테이블의 형태 및 내용, 그리고 검색 등의 다양한 기능을 수행할 수 있도록 Insert, query, count, findBy, addColumn, addIndex 등의 자바 메소드 형식의 데이터관리API를 구비한다.
오브젝트 맵퍼(221)는 상기와 같은 데이터관리API를 이용하여 클라이언트의 요청에 의해 대상블록체인에 데이터가 저장되거나 검색될 수 있다. 사용자는 별도의 프로그램에 대한 지식없이도 미리 준비된 데이터관리API를 이용한 명령어를 통해서 쉽게 블록체인 장부상의 데이터를 관리할 수 있게 된다.
쿼리DSL부(222)는 사용자 정의 함수형 질의를 통해 쿼리를 생성한다. 클라이언트(100)에 의해 쿼리DSL부(222)에서 제공되는 쿼리문자열이 전송되면, 쿼리DSL부(222)는 쿼리문자열을 파싱하여 스마트 컨트랙트의 인자로 넘겨주고, 스마트 컨트랙트는 인자에 대응하여 대상블록체인에 데이터를 저장하거나 해당 데이터를 검색할 수 있다.
쿼리DSL부(120)는 오브젝트 맵퍼(110)에서 이용되는 정해진 API 이외의 것을 활용하기 위한 것으로서, 사용자 정의 함수형 질의를 통해 컴파일 시점에 해당 쿼리의 문제점을 파악할 수 있으며, 다양한 조합의 질의를 수행할 수 있게 된다.
오브젝트 맵퍼(110)만을 사용하면 정해진 API 이외의 것은 활용하기가 힘들어지며, API이외의 경우, 직접 조작해야 하는 문제가 있다. 이와 달리 쿼리를 직접 작성하게 되면 문자열을 사용하게 되며, 해당 문자열은 실행시점이 되어야 검증이 가능하다는 문제가 존재한다. 본 발명의 쿼리DSL부(120)을 통한 사용자 정의 함수형 질의를 통해 컴파일 시점에 해당 쿼리의 문제점을 파악할 수 있게 하며, 다양한 조합의 질의를 수행할 수 있게 된다.
추상블록체인부(230)는 대상블록체인은 아니지만, DB관련 기능을 수행하기 위한 것으로서, 테스트 서버기능 및 인터페이스기능을 포함한다.
레저마스터(220)에서 API를 이용한 명령이 전달되면, API를 이용하여 전달된 명령, 예를 들어 테이블A의 항목B의 인덱스C를 검색하라고 명령을 수신한 추상블록체인부(230)는 레저마스터에서 제공되는 API를 이용하여 명령을 해석하고, 해석된 명령대로 블록체인(300)에 이를 전달하는 기능을 수행한다. 추상블록체인부(230)가 존재하지 않는 경우, 대상 블록체인(300)에 적용될 수 있는 전문 프로그램을 이용하여 명령을 하여야 하지만, 본 발명의 경우 추상블록체인부(230)가 DB관련 명령어를 해석하여 대상블록체인(300)에 전달하므로, 대상블록체인(300)을 조작하기 위한 특정 프로그램 언어를 사용할 필요가 없게 된다.
상기 추상블록체인부는 블록체인의 종류와 관계없는 공통API를 제공하는 공통API부, 대상블록체인의 API를 제공하는 개별API부 및 API매칭부를 포함하며, 상기 API매칭부에서는 공통API에 적절하게 대응할 수 있는 대상블록체인의 API를 검출하여 대응하도록 한다. 이때, 검출되는 대상블록체인의 API는 복수개가 될 수 있다.
또한, 추상블록체인부(230)는 코딩 테스트 기능을 제공한다. 개발자는 코딩 전체를 테스트하는 전체테스트 시, 추상블록체인부(230) 및 블록체인(300) 모두에 대해 코딩 테스트를 수행할 수 있다. 한편, 코딩 한줄한줄마다 테스트를 수행하는 단위테스트의 경우, 개발자는 블록체인이 아니라 추상블록체인부(230)에 대해서만 코딩 테스트를 수행할 수 있다. 블록체인의 경우, 설정파일을 단위테스트 마다 매번 설치해야 하지만, 추상블록체인부(230)의 경우, 연속되는 단위테스트 시 마이그레이터(210)에 의한 설정파일의 설치가 생략될 수 있다. 이에 따라 추상블록체인부(230)에 의해 코딩의 단위테스트가 빠르게 수행될 수 있다.
추상블록체인부(230)는 대상블록체인에 대응되는 데이터를 전송할 수 있는 인터페이스(231)를 포함한다. 입력받은 대상블록체인에 대응되는 인터페이스(231)가 추상블록체인부와 대상블록체인 사이에 데이터 전송을 수행한다.
기업용 블록체인인 이더리움 기반의 쿼롬과 하이퍼레저 패브릭 각각의 사용방식이 상이함에 따라 각각의 사용방식에 다르지만, 본 발명은 추상블록체인부(230)를 통해 관리함으로써 마이그레이터(210)와 레저마스터(230)에서 요구하는 블록체인 API를 공통화하여 공통API로 제공할 수 있다.
볼록체인(300)은 화폐이동이라는 비트코인보다는 엔터프라이즈 영역에서 사용할 수 있는 콘소시엄형 블록체인과 더 관련되어 있는 것으로서, 신뢰성있는 분산 데이터 공유를 위한 것으로서 즉, 분산데이터베이스 용도로 사용하기 위한 것이다.
한편, 분산원장에 저장된 데이터를 효율적으로 관리하기 위해, 대용량의 파일을 효율적으로 검색하고 갱신하기 위해 B tree/Hash Index 등의 처리가 포함될 수 있다.
이와 관련하여 블록체인(300)에서 스마트 컨트랙트는 테이블 구조에서 프라이머리 컬럼명 중 첫번째 인덱스에 대응하는 데이터를 루트노드로 하고, 프라이머리 컬럼에 속하는 데이터(크기)들의 대소를 비교하여 자식노드의 위치를 결정할 수 있다. 상기와 같은 경우, 균등한 탐색 속도를 보장하고, 저장장치의 효율성을 높일 수 있다.
도 2는 본 발명의 실시예에 따른 블록체인 기반 데이터베이스 운영방법을 설명하기 위한 플로우차트이다.
도 2를 참조하면, 블록체인 기반 데이터베이스 운영방법은, 클라이언트에 의해 사용자정의 태그를 이용하여 테이블 구조가 생성되는 단계(S110); 클라이언트에 의해 설정되어 사용될 대상블록체인을 입력받는 단계(S120); 마이그레이터에 의해 상기 테이블 구조에 대응하는 스마트 컨트랙트가 구성되는 단계(S130); 추상블록체인부에 상기 마이그레이터에 의해 구성된 스마트 컨트랙트가 설치되는 단계(S140); 클라이언트의 요청에 의해 레저마스터에서 스마트 컨트랙트에 저장된 테이블과 동일한 컬럼을 갖는 테이블객체를 생성하는 단계(150); 레저마스터에 의해 테이블객체에 저장되는 데이터를 조작할 수 있도록 하는 데이터관리API가 제공되고, 데이터관리API를 이용한 클라이언트의 요청에 의해 대상블록체인에 데이터가 저장되거나 검색되는 단계를 수행하는 단계(160)을 포함한다.
클라이언트(100)가 사용자정의 태그를 입력하여 테이블 구조를 생성하는 단계(S110)에서, 사용자에 의해 설정되는 테이블 구조는 테이블 명칭을 의미하는 테이블명, 테이블 내 항목을 나타내는 컬럼명, 테이블 내 순서를 나타내는 인덱스, 테이블 항목의 입력문자형태 등 제약사항 등의 테이블 구성을 포함한다.
한편, 이러한 사용자정의 태그는 테이블을 생성하는 생성태그, 테이블에 데이터를 입력하는 입력태그, 테이블에 저장된 데이터를 변경하는 변경태그, 테이블에 저장된 데이터를 삭제하는 삭제태그 등의 다양한 태그들을 포함하며, 이들은 XML형태로 이루어질 수 있다.
사용자에 의해 정의된 사용자정의 태그로서 XML을 이용하여 테이블 구조를 생성할 수 있어 높은 수준의 블록체인 지식을 습득하지 않아도 쉽게 사용이 가능하다는 장점을 갖는다.
클라이언트에 의해 설정되어 사용될 대상블록체인을 입력받는 단계(S120)에서는 다양한 블록체인 중 대상으로 설정한 블록체인을 사용자에 의해 입력받는다.
마이그레이터에 의해 상기 테이블 구조에 대응하는 스마트 컨트랙트가 구성되는 단계(S130)에서는, XML의 사용자정의 태그를 기반으로 테이블 구조를 생성하고, 테이블 구조를 스마트 컨트랙트에 매핑하여 테이블 구조에 대응하는 스마트 컨트랙트를 구성한다. 이때 XML의 사용자정의 태그를 기반으로 생성된 테이블 구조에는 적어도 하나의 스마트 컨트랙트의 주소가 매핑될 수 있다.
클라이언트의 요청에 의해 레저마스터에서 스마트 컨트랙트에 저장된 테이블과 동일한 컬럼을 갖는 테이블객체를 생성하는 단계(150)에서, 사용자는 개발자가 사용하는 객체 자체를 이용하여 블록체인 장부의 데이터를 사용할 수 있다.
기업용 블록체인인 이더리움 기반의 쿼롬과 하이퍼레저 패브릭 각각의 사용방식이 상이함에 따라 각각의 사용방식에 따른 마이그레이터와 레저마스터에서 요구하는 API는 다르게 구성되어야 하지만. 본 발명의 경우, 추상블록체인부(230)로 관리하여 마이그레이터와 레저마스터에서 요구하는 API를 공통화하여 제공할 수 있게 된다.
테이블객체에 저장되는 데이터를 조작하기 위한 데이터관리용 API를 이용한 클라이언트의 요청에 의해 대상블록체인에 데이터가 저장되거나 검색될 수 있다(S160).
테이블객체에 저장되는 데이터의 조작을 쉽게 하기 위해, 레저마스터는 데이터관리용 API를 제공한다. 사용자는 레저마스터에서 제공되는 데이터관리용 대상블록체인을 위한 전문프로그램을 사용하지 않고서도, 레저마스터가 제공하는 데이터관리용 API를 이용하여 명령을 쉽게 생성할 수 있게 된다. 추상블록체인부가 데이터관리용 API를 이용한 명령을 수신하면, 추상블록체인부가 수신된 명령을 API를 기반으로 해석하여 대상블록체인에 해석된 명령을 전달한다.
도 3은 본 발명의 다른 실시예에 따른 블록체인 기반 데이터베이스 운영방법을 설명하기 위한 플로우차트이다.
도 3을 참조하면, 블록체인 기반 데이터베이스 운영방법은, 클라이언트에 의해 사용자정의 태그를 이용하여 테이블 구조가 생성되는 단계(S210); 클라이언트에 의해 설정되어 사용될 대상블록체인을 입력받는 단계(S220); 마이그레이터에 의해 테이블 구조에 대응하는 스마트 컨트랙트가 구성되는 단계(S230); 추상블록체인부에 마이그레이터에 의해 구성된 스마트 컨트랙트가 설치되는 단계(S240); 클라이언트에 의해 레저마스터에서 제공되는 쿼리문자열이 전송되는 단계(S250); 상기 레저마스터에서 상기 쿼리문자열을 파싱하여 상기 스마트 컨트랙트의 인자로 넘겨주고, 상기 스마트 컨트랙트는 상기 인자에 대응하여 상기 대상블록체인에 데이터를 저장하거나 해당 데이터를 검색하는 단계(260)를 포함한다.
이전 실시예와 다른 점은, S240단계 내지 S260단계이다. 이전 실시예에서는 API함수를 이용하였지만, 본 실시예에서는 API함수에 사용하려고 하는 명령어가 없는 경우에 사용되는 것으로서, 쿼리문자열을 이용한다. 클라이언트(100)으로부터 쿼리문자열이 입력되면, 레저마스터는 쿼리문자열을 파싱하여 스마트 컨트랙트의 인자로 넘겨주고, 스마트 컨트랙트는 인자에 대응하여 대상블록체인에 데이터 관리를 수행한다. 이 경우, API함수에 없는 명령을 전달하기 위해 쿼리문자열을 이용하지만, 사용자 정의 함수형 질의를 통해 컴파일 시점에 해당 쿼리의 문제점을 파악할 수 있으며, 다양한 조합의 질의를 수행할 수 있게 된다.
100: 클라이언트
200: 미들웨어시스템
210: 마이그레이터
220: 레저마스터
230: 추상블록체인
300: 블록체인

Claims (5)

  1. 클라이언트에 의해 사용자정의 태그를 이용하여 테이블 구조가 생성되는 단계;
    클라이언트에 의해 설정되어 사용될 대상블록체인을 입력받는 단계;
    마이그레이터에 의해 상기 테이블 구조에 대응하는 스마트 컨트랙트가 구성되는 단계;
    공통API를 제공하는 추상블록체인부에 상기 마이그레이터에 의해 구성된 스마트 컨트랙트가 설치되는 단계;
    클라이언트의 요청에 의해 레저마스터에서 상기 스마트 컨트랙트에 저장된 테이블과 동일한 컬럼을 갖는 테이블객체를 생성하는 단계;
    상기 레저마스터에 의해 상기 테이블객체에 저장되는 데이터를 조작할 수 있도록 하는 데이터관리API가 제공되고, 상기 데이터관리API를 이용한 클라이언트의 요청에 의해 상기 대상블록체인에 데이터가 저장되거나 검색되는 단계를 수행하고,
    상기 테이블 구조는 테이블명, 컬럼명, 인덱스, 제약사항을 포함하며,
    상기 스마트 컨트랙트는 대상블록체인에 저장된 데이터와 대응하는 테이블명 및 컬럼명을 이용하여 해쉬코드를 생성하는 블록체인기반 데이터베이스 운영방법.
  2. 클라이언트에 의해 사용자정의 태그를 이용하여 테이블 구조가 생성되는 단계;
    클라이언트에 의해 설정되어 사용될 대상블록체인을 입력받는 단계;
    마이그레이터에 의해 상기 테이블 구조에 대응하는 스마트 컨트랙트가 구성되는 단계;
    공통API를 제공하는 추상블록체인부에 상기 마이그레이터에 의해 구성된 스마트 컨트랙트가 설치되는 단계;
    클라이언트에 의해 레저마스터에서 제공되는 쿼리문자열이 전송되는 단계;
    레저마스터에서 상기 쿼리문자열을 파싱하여 상기 스마트 컨트랙트의 인자로 넘겨주고, 상기 스마트 컨트랙트는 상기 인자에 대응하여 상기 대상블록체인에 데이터를 저장하거나 해당 데이터를 검색하는 단계를 수행하고,
    상기 테이블 구조는 테이블명, 컬럼명, 인덱스, 제약사항을 포함하며,
    상기 스마트 컨트랙트는 대상블록체인에 저장된 데이터와 대응하는 테이블명 및 컬럼명을 이용하여 해쉬코드를 생성하는 블록체인기반 데이터베이스 운영방법.
  3. 제1항 및 제2항 중 어느 한 항에 있어서,
    상기 사용자정의 태그는 테이블을 생성하는 생성태그, 테이블에 데이터를 입력하는 입력태그, 테이블에 저장된 데이터를 변경하는 변경태그, 테이블에 저장된 데이터를 삭제하는 삭제태그를 포함하는 것을 특징으로 하는 블록체인기반 데이터베이스 운영방법.
  4. 제1항 및 제2항 중 어느 한 항에 있어서,
    상기 마이그레이터는 상기 추상블록체인부에 스마트 컨트랙트를 설치하고, 상기 클라이언트에 의해 구성된 테이블 구조에 대응하는 스마트 컨트랙트의 주소를 생성하여 상기 추상블록체인부에 전송하는 것을 특징으로 하는 블록체인기반 데이터베이스 운영방법.
  5. 삭제
KR1020220012295A 2021-05-06 2022-01-27 블록체인 기반 데이터베이스 운영방법 및 이를 구동하기 위한 블록체인 시스템 KR102461213B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020210058813 2021-05-06
KR20210058813 2021-05-06

Publications (1)

Publication Number Publication Date
KR102461213B1 true KR102461213B1 (ko) 2022-10-31

Family

ID=83803314

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220012295A KR102461213B1 (ko) 2021-05-06 2022-01-27 블록체인 기반 데이터베이스 운영방법 및 이를 구동하기 위한 블록체인 시스템

Country Status (1)

Country Link
KR (1) KR102461213B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102523069B1 (ko) 2022-12-19 2023-04-19 (주)헥슬란트 Api 제공 시스템을 이용한 블록체인 스마트 컨트랙트 사용 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011216029A (ja) * 2010-04-01 2011-10-27 Nec Corp 分散メモリデータベースシステム、データベースサーバ、データ処理方法およびそのプログラム
KR20190079324A (ko) * 2017-12-27 2019-07-05 에이치닥테크놀로지 주식회사 한국영업소 블록체인 시스템을 이용한 데이터베이스의 무결성 강화 방법 및 시스템
KR20190094188A (ko) * 2017-03-28 2019-08-12 알리바바 그룹 홀딩 리미티드 블록체인 기반 데이터 저장 및 쿼리 방법 및 디바이스
KR20200074474A (ko) * 2018-12-17 2020-06-25 (주)에스유지 블록체인 기반의 IoT플랫폼을 활용한 데이터 저장 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011216029A (ja) * 2010-04-01 2011-10-27 Nec Corp 分散メモリデータベースシステム、データベースサーバ、データ処理方法およびそのプログラム
KR20190094188A (ko) * 2017-03-28 2019-08-12 알리바바 그룹 홀딩 리미티드 블록체인 기반 데이터 저장 및 쿼리 방법 및 디바이스
KR20190079324A (ko) * 2017-12-27 2019-07-05 에이치닥테크놀로지 주식회사 한국영업소 블록체인 시스템을 이용한 데이터베이스의 무결성 강화 방법 및 시스템
KR20200074474A (ko) * 2018-12-17 2020-06-25 (주)에스유지 블록체인 기반의 IoT플랫폼을 활용한 데이터 저장 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102523069B1 (ko) 2022-12-19 2023-04-19 (주)헥슬란트 Api 제공 시스템을 이용한 블록체인 스마트 컨트랙트 사용 방법

Similar Documents

Publication Publication Date Title
US10733055B1 (en) Methods and apparatus related to graph transformation and synchronization
US9659051B2 (en) Enforcing referential integrity for object data documents
KR100981857B1 (ko) 인덱스 키를 사용하여 검색 범위를 제한하기 위한 시스템및 방법
KR20200062348A (ko) 고속 카피가능 데이터베이스를 효율적으로 구현하기 위한 방법들 및 장치
US9037677B2 (en) Update protocol for client-side routing information
CN109446218A (zh) Sql语句生成方法、装置及计算机可读存储介质
US9703768B1 (en) Object metadata query
KR101083563B1 (ko) 데이터베이스 관리 방법 및 시스템
US20070150433A1 (en) Method for managing file in version control system
JP2006134214A (ja) ファイルのバージョン管理方法および計算機システム
US10949385B2 (en) Hybrid metadata and folder based file access
US11762652B2 (en) Systems and methods for coordinating the deployment of components to defined user groups
KR20120106544A (ko) 메타 데이터에 따라 파일 시스템의 파일들을 액세스하는 방법 및 상기 방법을 구현하는 디바이스
KR102461213B1 (ko) 블록체인 기반 데이터베이스 운영방법 및 이를 구동하기 위한 블록체인 시스템
JP2006344171A (ja) 情報処理装置、情報処理装置の制御方法、コンピュータプログラム、記憶媒体
KR101877828B1 (ko) 인공지능 기반의 사용자 인터페이스 통합 플랫폼 시스템
CN112988217A (zh) 用于快速全网代码溯源检测的代码库设计方法及检测方法
US9069873B2 (en) Apparatus and method for creating mashup web application
US11675748B2 (en) External data repository file integration using a virtual file system
WO2016177027A1 (zh) 批量数据查询方法和装置
US11341022B2 (en) Runtime performance introspection
KR20220151534A (ko) 블록체인 데이터베이스 매핑방법 및 이를 구동하기 위한 블록체인 시스템
CN112597100B (zh) 一种基于对象代理标签的文件管理方法及装置
KR20220152505A (ko) 블록체인기반 전자의료기록 관리방법
CN112905153B (zh) 一种面向软件定义卫星的软件并行构建方法以及装置

Legal Events

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