의견.png

오라클 서비스

위키원
wjddn843 (토론 | 기여)님의 2019년 9월 2일 (월) 14:39 판 (항목)
이동: 둘러보기, 검색

오라클 서비스(oracle service)란 현실 세계의 다양한 데이터를 수집하여 스마트 계약을 운영하려는 블록체인 네트워크에게 API 방식으로 제공해 주는 서비스를 말한다. 오라클 서비스를 제공하는 회사 또는 소프트웨어를 오라클 문제(oracle problem) 해결을 위한 중간자 또는 미들웨어(middleware)라고 부른다.

오라클 서비스를 제공하는 중간자 역할을 하는 회사에는 오라클라이즈(Oraclize), 체인링크(Chainlink) 등이 있다.

개요

오라클은 스마트 계약의 사전 정의 된 조치를 트리거 할 수 있는 외부 정보를 스마트 계약에 공급한다. 이 외부 데이터는 소프트웨어(빅데이터 애플리케이션) 또는 하드웨어(사물 인터넷)에서 비롯된다. 이러한 조건은 날씨 온도, 성공적인 지불 또는 가격 변동과 같은 데이터 일 수 있다. 그러나 스마트 계약은 외부 소스의 데이터가 시스템으로 전송 될 때까지 기다리지 않고 계약을 실행한다. 즉, 외부 세계에서 데이터를 호출하기 위해 네트워크 리소스를 사용해야 하며, 이때, 네트워크 트랜잭션 비용이 발생한다. 이더리움의 경우 이것은 '가스'이다.[1]

항목

오라클 서비스 항목

오라클을 설치하게 되면 아래와 같은 서비스들이 생기게 된다. 처음 서비스들 중 중요 서비스들은 자동으로 시작하게 되어 있는데 그럴경우 PC상에서 부팅이 오래 걸리게 된다. 따라서 아래의 서비스들을 모두 수동으로 설정하여 필요시 시작할 수 있도록 하는것이 좋다. 윈도우7기준 아래 서비스를 가기 위해서는 '제어판->시스템 및 보안->관리 도구->서비스'로 이동하면 된다.

  • Oracle ORCL VSS Writer Service : Oracle VSS(Volume Shadow Copy Service)로 백업과 복원을 위한 서비스
  • OracleDBConsoleorcl : Oracle Enterprise Manager Database Control를 위한 서비스
  • OracleJobSchedulerORCL : Oracle Job Schedule을 위한 서비스
  • OracleMTSRecoveryService : MTS(Microsoft Transaction Server)의 Recovery Service
  • OracleOraDb11g_home1ClrAgent : .net으로 확장하기 위한 Oracle Service
  • OracleOraDb11g_home1TNSListener : 원격상의 Client에게 Oracle Service를 제공하기 위한 TNSListener (필수 시작)
  • OracleServiceORCL : Database를 시작하기 위한 필수 Service (필수 시작)[2]

사례

중간자

중간자는 블록체인의 오라클 문제를 해결하기 위한 대안 중 하나이다. 여기서 오라클 문제(oracle problem)란 블록체인 밖에 있는 데이터를 블록체인 안으로 가져올 때 발생하는 문제를 말한다. 이 오라클 문제를 해결하기 위해 현실 세계와 블록체인 사이에서 신뢰할 수 있는 데이터를 제공해 주는 중간자(middleware)를 두는 방법이 있다. 이러한 중간자의 예로 오라클라이즈(Oraclize), 체인링크(Chainlink), 아이캐시(iCash)등이 있다. 이러한 중간자는 네트워크에 중간에 존재하면서, 신뢰할 수 있는 데이터를 안정적이고 쳬계적으로 제공하여 오라클 문제를 해결할 수 있다. 하지만 탈중앙화를 지향하는 블록체인에서 중간자 역할을 하는 조직이나 소프트웨어가 새로운 형태의 중앙이 될 가능성이 존재한다.[3]

오라클라이즈(Oraclize) 회사
체인링크(Chainlink) 회사
영국 런던에 있는 데이터 제공 회사이다. 현실 세계의 다양한 데이터를 수집하여 스마트 계약을 운영하려는 블록체인 네트워크에게 API 방식으로 제공해 주는 오라클 서비스를 하고 있다. 오라클라이즈의 데이터는 http 방식의 URL, 울프럼 알파(Wolfram Alpha) 검색엔진, 분산 파일 시스템인 IPFS, 랜덤하게 생성된 값, 계산을 거쳐서 생성된 값 등 5종류로 나뉘어 제공된다. 호출 수수료(call fee)는 쿼리 1건당 약 $0.01 ~ $0.05 달러 정도이다. 오라클라이즈는 이더리움뿐만 아니라 비트코인, 루트스톡, 코다에서도 사용할 수 있다. 또한 이들은 특정 시점에 특정 서버가 제공한 데이터라는 사실을 보장하는 TLSNOtary 암호화 인정서를 사용한다. 한 예로, 에스토니아 정부의 eID 스마트 카드 프로젝트에 이더리움 주소를 연결한 사례가 있다. 그 외에 안드로이드 기기가 최신버전의 운영체제를 사용하는지 증명하거나, 오라클라이즈가 개발한 하드웨어 지갑레저에서 제대로 동작하는지 제3자에게 증명하는 서비스 역시 제공하고 있다.
블록체인의 스마트 계약을 블록체인 외부의 데이터, 결제, API 등에 연결하기 위해 사용하는 블록체인 미들웨어 플랫폼이자 암호화폐이다. 체인링크는 이더리움 기반으로 작동하는 각종 스마트 계약이 현실 세계의 데이터와 쉽게 연결되도록 돕는 역할을 한다. 2014년에 설립된 스마트컨트랙트닷컴의 자회사이다. 2017년 9월에 체인링크 코인 10억개가 발행되었다. 화폐 심벌은 LINK이다. 2017년 가트너에 의해 블록체인 애플리케이션 쿨 벤더 업체로 선정되었다. 또한 스위프트(Swift)와 협력하여 '스위프트 스마트 오라클'이라는 기능을 개발했다. 체인링크는 세계경제포럼(World Economic Forum)에서 스마트 계약 기술 업체로 소개되었다. 또한 체인링크는 기존 오라클 시스템의 탈중앙화를 이뤄 분산형 오라클 및 소스 시스템을 통해 실물 세계를 블록체인과 연결하는데 있어서 더욱 정확한 데이터를 제공하는 등 업계의 주목을 받고 있다. 해당 프로젝트는 풍부한 지식과 경험을 겸비한 든든한 자문위원단을 보유하고 있다. 또한 전세계 약 11,000개 은행에서 사용되고 있는 스위프트 외 다수의 파트너십 제휴를 맺고 있어 향후 스마트 컨트랙트 활성화의 촉매 역할을 할 수 있을 것이란 기대를 받고 있다.[4][5]

작동 방법

윈도우

윈도우 서비스 목록에서 보면 아래의 두 이름을 가진 서비스가 있는데, 이 서비스를 시작/중지 하면 된다.

  1. OracleOraDb10g_home1TNSListener → 오라클 리스너
  2. OracleService"DB명" → 오라클 DB (TESTDB : DB 명)

이 두 프로그램을 시작하고 중지하면 된다. 이 두 프로그램을 시작하고 중지하려면 매번 윈도우 서비스를 열어야 하는 불편함이 있는데, 배치파일을 만들어서 사용하면 간편하다.

  • 오라클 시작 (Start_TestDB.bat)
net start OracleOraDb10g_home1TNSListener
net start OracleServiceTestDB
  • 오라클 중지 (Stop_TestDB.bat)
net stop OracleOraDb10g_home1TNSListener
net stop OracleServiceTestDB

[6]

리눅스

명령어

오라클DB는 인스턴스와 리스너를 따로 시작하도록 되어 있다.

  • 인스턴스 시작/중지
sqlplus를 시작하여 나오는 SQL> 프롬프트에서 인스턴스를 시작/중지할 수 있다.
sqlplus '/as sysdba'
startup
shutdown
  • 리스너 시작/중지
lsnrctl start
lsnrctl stop

실행예시

  • 인스턴스 시작
oracle@jmnote:/oracle> sqlplus '/as sysdba'

SQL*Plus: Release 10.2.0.1.0 - Production on 화 5월 7 13:04:31 2013

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

Connected to an idle instance.

SQL> startup
ORACLE instance started.

Total System Global Area 1241513984 bytes
Fixed Size                  1219136 bytes
Variable Size             234882496 bytes
Database Buffers          989855744 bytes
Redo Buffers               15556608 bytes
Database mounted.
Database opened.
SQL> exit
Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
oracle@jmnote:/oracle>
  • 리스너 시작
oracle@jmnote:/oracle> lsnrctl start

LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 07-5월 -2013 12:31:59

Copyright (c) 1991, 2005, Oracle.  All rights reserved.

Starting /oracle/product/10.2.0/db_1/bin/tnslsnr: please wait...

TNSLSNR for Linux: Version 10.2.0.1.0 - Production
System parameter file is /oracle/product/10.2.0/db_1/network/admin/listener.ora
Log messages written to /oracle/product/10.2.0/db_1/network/log/listener.log
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=jmn)(KEY=EXTPROC1)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=jmnote)(PORT=1521)))

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=JMP)(KEY=EXTPROC1)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 10.2.0.1.0 - Production
Start Date                07-5월 -2013 12:32:01
Uptime                    0 days 0 hr. 0 min. 0 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /oracle/product/10.2.0/db_1/network/admin/listener.ora
Listener Log File         /oracle/product/10.2.0/db_1/network/log/listener.log
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=jmn)(KEY=EXTPROC1)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=jmnote)(PORT=1521)))
Services Summary...
Service "PLSExtProc" has 1 instance(s).
  Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully
oracle@jmnote:/oracle> netstat -anp | grep 1521 | grep LISTEN
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
tcp        0      0 0.0.0.0:1521                0.0.0.0:*                   LISTEN      3534/tnslsnr
→리스너가 1521포트를 LISTEN한다.[7]

각주

  1. Blockchain Oracles〉, 《BlockchainHub Berlin》
  2. 커피코더, 〈오라클 서비스 항목〉, 《티스토리》, 2015-08-20
  3. 장경재, 〈(Makers Basic 11) 블록체인의 문제점과 대안1〉, 《Medium》, 2018-10-06
  4. 해시넷, 〈(해시넷 블록체인 시리즈 4) 블록체인의 문제점과 대안 (작업증명 문제, 체인 알고리즘 문제, 오라클 문제)〉, 《네이버 블로그》, 2018-08-29
  5. 중간자〉, 《해시넷》
  6. 윈도우/리눅스 오라클 서비스 시작/중지〉, 《이글루스》
  7. 리눅스 오라클 시작/중지〉, 《제타위키》

참고자료

같이 보기


  의견.png 이 오라클 서비스 문서는 블록체인 기술에 관한 토막글입니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 이 문서의 내용을 채워주세요.