loopchain_교육_ _v0.5

Size: px
Start display at page:

Download "loopchain_교육_ _v0.5"

Transcription

1 loopchain 입문 ( 소개, 설치, 개발환경구축 )

2 Contents I. loopchain 이란? II. III. IV. 설치 Tutorial SCORE(Smart Contract On Reliable Environment) 구축 Appendix. 본문서의내용은언제든지수정 / 삭제 / 업데이트가될수가있으니참고의목적으로사용하셔야합니다.

3 Contents I. loopchain 이란? 1) loopchain 주요특징 2) loopchain 기본구조 II. 설치 Tutorial 1) 설정가이드 2) Python 환경을구축하고 GitHub 프로젝트를 clone 하여설치 3) 제공되는 Docker 이미지를이용하여설치 Local computer 에서 RadioStation 과 2 개의 Peer 로 Blockchain network 구성 III. SCORE(Smart Contract On Reliable Environment) 구축 1) Local computer에서 SCORE 환경만들기 Tutorial 2) loopchain SCORE 개발에대한정보정리 IV. Appendix. 1) RESTful API 1 2 2) 설정 RadioStation - RESTful API Peer - RESTful API

4 I. loopchain 이란?

5 loopchain 주요특징 I. loopchain 이란? loopchain 은효율적인 Smart Contract 를기반으로실시간거래를지원할수있는고성능블록체인 5

6 loopchain 주요특징 I. loopchain 이란? 금융서비스에적용할수있고엔진부터응용까지전스택에서커스터마이징이가능한 Private Blockchain 6

7 SCORE (Smart Contract on Reliable Environment) I. loopchain 이란? SCORE 는 loopchain 에서지원하는 Smart Contract 을지칭하는것으로별도의 VM(Virtual Machine) 없이노드운영환경에서직접적으로실행되는고성능 Smart Contract 지원기능입니다. SCORE 는쉽게작성할수있어서높은개발생산성을가진 Smart Contract 입니다. SCORE 는블록체인프로세스와별도의프로세스로동작하면서다양한업무를개발할수있도록지원합니다. SCORE store 를통한등록, 배포및버전관리를제공합니다. 7

8 LFT algorithm I. loopchain 이란? LFT algorithm 은 BFT(Byzantine Fault Tolerance) 계열의알고리즘으로분기가없는빠른합의를지원합니다. BFT 계열합의알고리즘은머신의개수나, 지분을통하여투표를하여합의하는방식으로에너지낭비가없고즉각적인합의가가능하다는장점이있습니다. 기존 PBFT 를사용하는합의알고리즘에서발생하는통신오버헤드를 Piggybacking( 네트워크에서메시지를통합하여통신오버헤드를감소시키는방법 ) 을이용하여감소 Spinning( 리더를매번교체하는기법 ) 기법을이용하여일정한개수의블록생성시마다리더를교체하여비잔틴리더에발생할수있는서비스장애요소 ( 특정노드의트랜잭션을거부하는문제, 리더가매번시간초과시간에맞춰블록을생성하려는시도에대한피해 ) 를최소화 기존알고리즘들이가지고있는지나치게복잡한리더선정알고리즘을단순화 * 참고 : LFT 백서 8

9 Multi Channel I. loopchain 이란? Multi Channel 은하나의독립적인블록체인네트워크안에서업무별로채널이라는가상의네트워크를구성하여채널별로거래요청, 합의및 Smart Contract 를수행할수있는기능입니다. 하나의노드에서여러업무별당사자들만연결된다양한업무별채널을형성하기때문에채널별로무결성보장및합의가이루어집니다. 따라서거래데이터가실제거래당사자들만보유하게되어다양한규제에대응할수있습니다 9

10 Tiered Channel I. loopchain 이란? 블록체인네트워크에참여시인증과함께거래별로 PKI 기반인증을통해거래내역검증및보안이이뤄집니다. 인증된기관만참여시키며각참가자에게차등적권한을부여함으로서다양한엔터프라이즈업무환경에적합한시스템구현이가능합니다. 거래에참여하지않지만필요에따라거래내역을감사할수있는기능을특정노드에부여를하여감사만을위한노드생성이가능하므로금융시스템이요구하는 Compliance 기능을제공합니다. 다른권한을가진인증서배포. 블록체인참여자는정보확인및관리에대해서각각다른권한을가집니다. 검증노드, 트랜잭션생성노드등의특정노드생성가능합니다. Audit Service Audit 용 Certificate 발급 - Membership Manager 를통해 Audit 용인증서를발급받아감사노드에설정 - 향후감사가필요한거래에대해서는 Audit 용증적보관처리 10

11 Modular Architecture I. loopchain 이란? 모듈방식아키텍처를채택하여참여노드인증및합의알고리즘, Smart Contract 모듈등을필요한경우에추가및커스터마이징이가능합니다. 11

12 loopchain 기본구조 I. loopchain 이란? RadioStation Peer 들의인증을담당하고 Peer 들의목록을관리합니다. RadioStation 과 Peer 의접속 RadioStation 과 Peer 는시작할때에자신의인증서 / 개인키경로를입력합니다. Peer 들의인증서를설치시넣어주고설정파일에서이를읽어서처리하게하고있습니다. KMS(Key management system) 지원하는기능도 Enterprise 용으로지원합니다. Peer 블록생성, 블록관리, 트랜잭션생성, 조회, 원장조회등의기능을처리합니다.. Peer가생성될때에 RadioStation과연결한다. 시작할때에 RadioStation의접속정보 (IP:Port) 를가지고연결합니다. 가장먼저 RadioStation에연결되는 Peer가 Leader Peer가됩니다. 주의 : 최소 4개이상의 Peer가필요합니다. Leader Peer 일정시간마다 Transaction 들을모아 Block 을만들고보낸다음검증을 Peer 들에게받아서공표합니다.( 검증주기는설정가능합니다.) 다른 Peer 를 Subscription( 구독 ) 한다음에 Transaction / Block data 를동기화합니다. Leader Peer 의변경은등록된 Peer 의순서대로 Leader 권한을줍니다.(Round Robin). ( 주의 : block 생성개수기준은성능에따라서변경가능합니다.) 12

13 II. 설치 Tutorial

14 설정가이드 II. 설치 Tutorial <loopchain network 설정유의사항 > RadioStation 을제일먼저실행시키고 Peer 들을실행하셔야합니다. 모든 Peer 들은 N:N 으로연결됩니다. 따라서, 모든 Peer 들이서로 IP:Port 로연결할수있어야합니다. Multi Channel 설정 / SCORE 설정은설정파일을잘확인해주세요. 설정파일에오류가있으면찾기힘듭니다. 서로다른 Host 들에서띄울때는 LOOPCHAIN_HOST 설정을이용해서 RadioStation 이다른 Node 들에게 Peer 목록을띄울때, 외부서버들에서해당 Node 에접근할수있게해주세요. 최소노드수 : 제대로된 Blockchain network 를구성하기위해서 4 개이상의 Node 들을실행해야합니다. 예제에서 1 개혹은 2 개만띄운것은일종의예제로보시면됩니다. (Docker 사용시만 ) RadioStation 이나 Peer 에서외부 Host file 과연결을해주실폴더들이있습니다. 이설정이없으면 Docker container 가죽었을때에데이터를잃어버리실수가있습니다. "/storage": RadioStation, Peer 들의데이터를보관하는폴더 "/conf" : 설정파일들이담긴폴더 "/score" SCORE 를 zip 해서띄울때에, SCORE 파일이담긴 zip 파일의위치 14

15 설정가이드 II. 설치 Tutorial < 포트열기 > loopchain 을사용하기위해다음의 Port 가열려야합니다. Port 는설정에서변경이가능합니다. RadioStation 7102: grpc port 9002: RESTful port Peer 7100:gRPC port 9000: RESTful port < 설정파일 > 설정파일은 JSON 형식으로된파일입니다. 예를들어아래처럼만듭니다. "Variable 1":"Value1", "Variable 2":"Value2", "Variable 3":"Value3",... 특정한 JSON 파일을만들고그안에내용을작성하고 Peer 를아래와같이 -o option 을이용하여서해당파일을읽게해서 peer 를올립니다. $ python3 peer.py -o peer_conf.json... 이문서에서각종상황별로, 문제별로어떤옵션을가지고설정파일을만드는지정리하여서작성할것입니다. 자세한것은각상황별설정파일에서확인하시면됩니다. 15

16 GitHub 으로부터설치 - macos 기준 II. 설치 Tutorial macos 를기준으로먼저설명을하도록하겠습니다. 다른운영체제에서의설치방법에대해서는추후에추가될예정입니다. Python 설치 일반적으로 macos 에기본으로설치되어있는 Python 은 2.7.x 입니다. 따라서, Python 3.6 이상의버전으로설치를해야만합니다. 버전확인방법은다음과같습니다. $ python -V Python 맥에서가장쉽게 Python 3.6 이상의버전을설치하는방법은 Homebrew 를이용하는방법입니다. Homebrew 를설치하는것은매우간단합니다. 터미널에서다음의명령어를복사하여서붙여넣고실행하시면됩니다. 맥에기본적으로설치되어있는 ruby 를사용하여서 Homebrew 를설치하는것입니다. $ /usr/bin/ruby -e "$(curl -fssl 설치중에비밀번호를입력하는부분이있는데, 컴퓨터비밀번호를입력하시면됩니다. 이제 python3 를 Homebrew 를이용해서설치합니다. 터미널에서 "brew install python3" 명령어를입력합니다 $ brew install python3 Updating Homebrew... ==> Auto-updated Homebrew! Updated 1 tap (homebrew/core)....( 중간생략 )... You can install Python packages with pip3 install <package> They will install into the site-package directory /usr/local/lib/python3.6/site-packages See: ==> Summary! /usr/local/cellar/python/3.6.4_4: 4,615 files, 97.4MB $ 16

17 GitHub 으로부터설치 - macos 기준 II. 설치 Tutorial Python3 가설치완료가정상적으로되었는지버전을확인합니다. $ python3 -V Python 사용자환경구축 1. 먼저 GitHub 에공개되어있는 loopchain 프로젝트 ( 를 clone 합니다. 2. 프로젝트폴더로이동한다음에터미널창에서다음의명령어로사용자환경을구축합니다. $ virtualenv -p python3. # Create a virtual environment $ source bin/activate # Enter the virtual environment $ pip3 install -r requirements.txt # Install necessary packages in the virtual environment $./generate_code.sh # grpc generates codes necessary for communication 혹은, 프로젝트에포함되어있는스크립트를사용하는방법으로더쉽게설정할수도있습니다. $./setup.sh $ source bin/activate $./setup.sh $./generate_code.sh Unit Test 실행 설치가완료되면전체 Unit Test 를실행하여서정상작동여부를확인합니다. $./run_test.sh 17

18 GitHub 으로부터설치 II. 설치 Tutorial loopchain 실행 이전의 " 설정가이드 " 에서언급을하였듯이 RadioStation 을제일먼저실행시키고 Peer 들을실행합니다. 1. RadioStation 을실행합니다. $./radiostation.py # Execute RadioStation. RadioStation 을실행하면다음과같은로그를확인할수있습니다. 이로그의의미는로컬에서 9002 번포트로다른 Peer 들의연결을기다리고있다는의미입니다. 이제 RadioStation 서비스를성공적으로시작한것입니다. $./radiostation.py ' :19:06,184 DEBUG Popen(['git', 'version'], cwd=/users/donghanlee/loopchain, universal_newlines=false, shell=none)' ' :19:06,220 DEBUG Popen(['git', 'version'], cwd=/users/donghanlee/loopchain, universal_newlines=false, shell=none)' ' :19:06,564 INFO RadioStation main got argv(list): []' ' :19:06,565 INFO Set RadioStationService IP: ' ' :19:06,602 INFO (Broadcast Process) Start.' ' :19:06,604 DEBUG (Broadcast Process) Status, param() audience(0)' ' :19:07,599 DEBUG wait start broadcast process...' ' :19:07,601 DEBUG Broadcast Process start("result": "success", "Audience": "0")' 2. 여러개의 Peer 들을실행합니다. 새로운터미널화면을열고 loopchain 프로젝트폴더로이동합니다. 그리고다음의명령어를입력하여서첫번째 peer 를실행합니다. $ source bin/activate # Open python virtual workspace. $./peer.py # Launch peer. 추가적인설정을 "configure.json" 파일에작성을하였고이를이용해서 peer 를실행시킨다면다음과같은명령어입력으로 peer 를실행할수있습니다. (configure.json 파일의위치는 loopchain 프로젝트안에있는 loopchain 폴더안에있습니다. ) $./peer.py -o./loopchain/configure.json 18

19 GitHub 으로부터설치 II. 설치 Tutorial 다음과같은로그를확인하실수있습니다.... ' :05:13,480 DEBUG peer list update: 1: :7100 PeerStatus.connected c3c5f2f0-6d19-11e7-875d fdb09f5 (<class 'str'>)' ' :05:13,480 DEBUG peer_id: c3c5f2f0-6d19-11e7-875d-14109fdb09f5' ' :05:13,480 DEBUG peer_self: <loopchain.baseservice.peer_list.peer object at 0x106249b00>' ' :05:13,481 DEBUG peer_leader: <loopchain.baseservice.peer_list.peer object at 0x106249b00>' ' :05:13,481 DEBUG Set Peer Type Block Generator!' ' :05:13,481 INFO LOAD SCORE AND CONNECT TO SCORE SERVICE!' 두번째 peer 를동일한방법으로실행합니다. 이번에는 RadioStation 에연결하는다른포트를사용해야만합니다.( 동일한로컬컴퓨터에서실행되기때문에동일한포트는사용이안됩니다.) $ source bin/activate # Open python virtual workspace. $./peer.py -p 7101 # Launch peer with 7101 port 각 peer 는 RadioStation 에연결될때 7100 port 부터시작되는새로운포트를수신합니다. 새 peer 가연결될때마다 RadioStation 은기존 peer 목록을새 peer 에전달하고기존 peer 에새로운 peer 가추가되었음을알립니다. 3. 각 peer 들의상태체크 RESTful API 를이용하여서 RadioStation 및각 peer 의상태를확인할수있습니다. $ curl # Shows a list of peers that are currently configuring the blockchain network in Radiostation. $ curl # Shows the current status of peer0 $ curl # Shows the current status of peer1 4. 새로운 Transaction 생성 RESTful API 를사용하여서 peer0 에새로운 Transaction 을보냅니다. $ curl -H "Content-Type: application/json" -d '"data":"hello"' "response_code": "0", "tx_hash": "71a3414d77dbdb34b92757ba75e51d9aa498f6a cdf31327da4e9bf38", "more_info": "" $ 19

20 GitHub 으로부터설치 II. 설치 Tutorial 5. 새로생성된 Transaction 의 Height 를체크한다. $ curl python -m json.tool % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed :--:-- --:--:-- --:--: "response_code": 0, "block_hash": "33f84bc5c ec802ecb65e11bdb003c3442e42b1a9581f32459f36f582", "block_data_json": "prev_block_hash": "af5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc", "merkle_tree_root_hash": "71a3414d77dbdb34b92757ba75e51d9aa498f6a cdf31327da4e9bf38", "time_stamp": " ", "height": "1", "peer_id": "e54b340a e8-bf1c-acde " $ 20

21 Docker 를사용한설치 II. 설치 Tutorial Linux 에서 Docker 설치하기 Docker CE(Community Edition)X86-64, Docker EE(Enterprise edition) X86-64 를운용할수있는최신환경이면됩니다. Docker CE: 무료사용버전 Docker EE: 상용버전, 무료 Hosted Trial 사용가능. 각종 OS 들에대한지원추가제공. 모든상황에서방법이없으면 Docker 를 Binary 로부터설치할수있는방법이있습니다. ( Platform Docker CE X86_64 Docker EE X86_64 Note CentOS O O CentOS 7이상. Installation Guide Devian O Stretch (stable) / Raspbian Stretch Jessie 8.0 (LTS) / Raspbian Jessie Wheezy 7.7 (LTS). Installation Guide Fedora O Fedora 24, 25 Installation Guide Windows Server 2016 O Installation Guide Oracle Linux O 7.3 이상. Installation Guide Red Hat Enterprise Linux O 64bit version Redhat Enterprise Linux 7 on an X86 or S390x. Installation Guide SUSE Linux Enterprise server O SUSE 12.x version (OpenSUSE 지원안함 ). Installation Guide Ubuntu O O EE : Xenial (LTS) / Trusty (LTS), CE : Zesty / Xenial (LTS) / Trusty (LTS) Installation Guide 자세한정보는 Docker 홈페이지의 페이지를참조하여서설치하시면됩니다. 21

22 Docker 를사용한설치 II. 설치 Tutorial Windows / Mac 에서 Docker 설치하기 Docker 홈페이지의 페이지를참조하여서설치하시면됩니다. Docker 동작확인하기 "docker version" 명령어로 Docker 가정상설치되었는지확인합니다. 다음의화면을참고하셔서확인하십시오. $ docker version Client: Version: ce API version: 1.35 Go version: go1.9.2 Git commit: c97c6d6 Built: Wed Dec 27 20:03: OS/Arch: darwin/amd64 Server: Engine: Version: ce API version: 1.35 (minimum version 1.12) Go version: go1.9.2 Git commit: c97c6d6 Built: Wed Dec 27 20:12: OS/Arch: linux/amd64 Experimental: true TIP : Docker 사용자설정 Add the docker group if it doesn't already exist: $ sudo groupadd docker Add the connected user "$USER" to the docker group. Change the user name to match your preferred user if you do not want to use your current user: $ sudo gpasswd -a $USER docker Either do a "newgrp docker" or log out/in to activate the changes to groups. 22

23 Docker 를사용한설치 II. 설치 Tutorial loopchain Docker Image loopchain 의 Docker image 는다음의 3 종류가있습니다. looprs: RadioStation docker image looppeer: Peer docker image loopchain-fluentd: log 를저장하기위해서수정한 fluentd image Docker image 받기 아래화면과같이 docker pull 명령을이용하여서 Docker hub 로부터 loopchain docker image 들을다운받아옵니다. $ docker pull loopchain/looprs $ docker pull loopchain/looppeer $ docker pull loopchain/loopchain-fluentd 23

24 RadioStation 과 2 개의 Peer 로 Blockchain network 구성하기 II. 설치 Tutorial 목적 자신의컴퓨터상에서 Docker 를이용하여 RadioStation 과 Peer 2 개로구성된네트워크환경을구성하고정상적으로동작하는지테스트를합니다. 다음의그림과같은구조로네트워크가구성이됩니다. 디렉토리구성 이문서의내용을따라하게되면다음과같은디렉토리구성이만들어지게됩니다. 24

25 RadioStation 과 2 개의 Peer 로 Blockchain Network 구성하기 II. 설치 Tutorial 설정파일생성 1. 디렉토리생성 로그서버의설정파일폴더를생성하고로그를따로저장할폴더를생성합니다. 그리고, RadioStation 과 Peer 의설정파일을따로보관할폴더를만듭니다. $ mkdir -p fluentd/etc # 로그서버의설정파일폴더를생성. $ mkdir logs # 로그를따로저장할폴더를생성. $ mkdir conf # RadioStation과 Peer의설정파일을따로보관할폴더를생성. 2. log 서버의설정 log 서버의설정파일을작성하고설정파일위치로이동합니다. 이것은모든 log 들을파일로남기는설정입니다. 1) fluent.conf 을아래와같이만듭니다. input1 port bind </source> <match **> # Add your log tag to show in copy <store> # Add your log tag to show in file # Leave log file in path. path /logs/data.*.log symlink_path /logs/data.log time_slice_format %Y%m%d time_slice_wait 10m time_format %Y%m%dT%H%M%S%z compress gzip utc </store> </match> 2) 작성된 fluent.conf 를 fluentd/etc 디렉토리로이동합니다. $ mv fluent.conf./fluentd/etc 25

26 RadioStation 과 2 개의 Peer 로 Blockchain Network 구성하기 II. 설치 Tutorial 3. channel_manage_data.json 작성 이설정파일은 MultiChannel 을사용할때에설정하는파일입니다. 해당파일은 RadioStation 에서사용됩니다. 1) channel_manage_data.json 파일을아래와같이작성합니다. "channel1": "score_package": "loopchain/default" channel1 이라는 channel에서 loopchain/default라는 SCORE를이용합니다. loopchain/default는기본적으로각 peer들이가지고있는 SCORE 파일입니다. 2) 작성된 channel_manage_data.json를 /conf 디렉토리로이동합니다. $ mv channel_manage_data.json./conf 26

27 RadioStation 과 2 개의 Peer 로 Blockchain Network 구성하기 II. 설치 Tutorial 4. rs_conf.json 작성 이설정파일은 RadioStation 의설정들을담고있는파일입니다. 1) rs_conf.json 파일을아래와같이작성합니다. "CHANNEL_MANAGE_DATA_PATH": "/conf/channel_manage_data.json", "LOOPCHAIN_DEFAULT_CHANNEL": "channel1", "ENABLE_CHANNEL_AUTH": false CHANNEL_MANAGE_DATA_PATH: channel_manage_data.json 이어디에있는지지정해줍니다. LOOPCHAIN_DEFAULT_CHANNEL: RadioStation 에서 channel_manage_data.json 에서설정한 channel 중에별도로지정하지않고 request 가들어오면기본적으로사용할 channel 을정합니다. ENABLE_CHANNEL_AUTH: 정해진 Server 들만각 channel 별로들어올수있는제한을하는 Option 입니다.. 2) 작성된 rs_conf.json 를 /conf 디렉토리로이동합니다. $ mv rs_conf.json./conf 27

28 RadioStation 과 2 개의 Peer 로 Blockchain Network 구성하기 II. 설치 Tutorial 5. peer_conf0.json 작성 이설정파일은각 Peer 들의설정을담고있는파일입니다. 1) peer_conf0.json 파일을아래와같이작성합니다. "LOOPCHAIN_DEFAULT_CHANNEL": "channel1", "DEFAULT_SCORE_BRANCH": "master" LOOPCHAIN_DEFAULT_CHANNEL: 해당 peer 가 channel_manage_data.json 에서설정한 channel 중에별도로지정하지않고 request 가들어오면기본적으로사용할 channel 을정합니다. DEFAULT_SCORE_BRANCH: SCORE 를사용할때, 어떤 branch 의것을이용할지를정합니다. 기본값은 master 입니다. 참고로 SCORE 는 git repository 로원격 git repository 의것을 clone 해서쓰거나따로파일로읽어오게해야합니다. 2) 작성된 peer_conf0.json 를 /conf 디렉토리로이동합니다. $ mv peer_conf0.json./conf 28

29 RadioStation 과 2 개의 Peer 로 Blockchain Network 구성하기 II. 설치 Tutorial 5. peer_conf1.json 작성 이설정파일은각 Peer 들의설정을담고있는파일입니다. 1) peer_conf1.json 파일을아래와같이작성합니다. "LOOPCHAIN_DEFAULT_CHANNEL": "channel1", "DEFAULT_SCORE_BRANCH": "master" LOOPCHAIN_DEFAULT_CHANNEL: 해당 peer 가 channel_manage_data.json 에서설정한 channel 중에별도로지정하지않고 request 가들어오면기본적으로사용할 channel 을정합니다. DEFAULT_SCORE_BRANCH: SCORE 를사용할때, 어떤 branch 의것을이용할지를정합니다. 기본값은 master 입니다. 참고로 SCORE 는 git repository 로원격 git repository 의것을 clone 해서쓰거나따로파일로읽어오게해야합니다. 2) 작성된 peer_conf1.json 를 /conf 디렉토리로이동합니다. $ mv peer_conf1.json./conf 29

30 RadioStation 과 2 개의 Peer 로 Blockchain Network 구성하기 II. 설치 Tutorial Docker Container 실행 Docker Container 를실행하는순서는다음과같습니다. 1. Log 서버를실행합니다. $ export TAG=latest # 환경변수를설정합니다. # Log server 컨테이너를실행합니다. $ docker run -d \ --name loop-logger \ --publish 24224:24224/tcp \ --volume $(pwd)/fluentd:/fluentd \ --volume $(pwd)/logs:/logs \ loopchain/loopchain-fluentd:$tag # Log server 컨테이너를정상적으로실행되었는지확인합니다. $ docker ps --filter name=loop-logger CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 268c79cd104b loopchain/loopchain-fluentd:latest "/bin/entrypoint.sh " 6 minutes ago Up 6 minutes 5140/tcp, 24284/tcp, :24224->24224/tcp loop-logger $ 30

31 RadioStation 과 2 개의 Peer 로 Blockchain Network 구성하기 II. 설치 Tutorial 2. RadioStation 을실행합니다. # RadioStation 에서이용할데이타저장공간을만듭니다. $ mkdir -p storagers # RadioStation 컨테이너를실행합니다. $ docker run -d --name radio_station \ -v $(pwd)/conf:/conf \ -v $(pwd)/storagers:/.storage \ -p 7102:7102 \ -p 9002:9002 \ --log-driver fluentd --log-opt fluentd-address=localhost:24224 \ loopchain/looprs:$tag \ python3 radiostation.py -o /conf/rs_conf.json # RadioStation 컨테이너가정상적으로실행되었는지확인합니다. $ docker ps --filter name=radio_station CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 556b407669fc loopchain/looprs:latest "python3 radiostatio " About a minute ago Up About a minute :7102->7102/tcp, /tcp, :9002->9002/tcp radio_station $ 31

32 RadioStation 과 2 개의 Peer 로 Blockchain Network 구성하기 II. 설치 Tutorial 3. Peer 를순차적으로실행합니다.(peer0 실행 ) # Peer 0 번에서이용할데이타저장공간을만듭니다. $ mkdir -p storage0 # Peer0 컨테이너를실행합니다. $ docker run -d --name peer0 \ -v $(pwd)/conf:/conf \ -v $(pwd)/storage0:/.storage \ --link radio_station:radio_station \ --log-driver fluentd --log-opt fluentd-address=localhost:24224 \ -p 7100:7100 -p 9000:9000 \ loopchain/looppeer:$tag \ python3 peer.py -o /conf/peer_conf0.json -p r radio_station:7102 # Peer0 컨테이너가정상적으로실행되었는지확인합니다. $ docker ps --filter name=peer0 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES f18c4e082a30 loopchain/looppeer:latest "python3 peer.py -o " 7 minutes ago Up 7 minutes :7100->7100/tcp, :9000->9000/tcp, /tcp peer0 $ 32

33 RadioStation 과 2 개의 Peer 로 Blockchain Network 구성하기 II. 설치 Tutorial 4. Peer 를순차적으로실행합니다.(peer1 실행 ) # Peer 1 번에서이용할데이타저장공간을만듭니다. $ mkdir -p storage1 # Peer1 컨테이너를실행합니다. $ docker run -d --name peer1 \ -v $(pwd)/conf:/conf \ -v $(pwd)/storage1:/.storage \ --link radio_station:radio_station \ --log-driver fluentd --log-opt fluentd-address=localhost:24224 \ -p 7200:7200 -p 9100:9100 \ loopchain/looppeer:$tag \ python3 peer.py -o /conf/peer_conf1.json -p r radio_station:7102 # Peer1 컨테이너가정상적으로실행되었는지확인합니다. $ $ docker ps --filter name=peer1 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c10d2938efee loopchain/looppeer:latest "python3 peer.py -o " 7 minutes ago Up 7 minutes /tcp, :7200->7200/tcp, 9000/tcp, :9100->9100/tcp peer1 $ 33

34 RadioStation 과 2 개의 Peer 로 Blockchain Network 구성하기 II. 설치 Tutorial 확인하기 제대로설치되고실행이되고있는지확인하는방법은다음과같습니다. 1. RadioStation 의 Channel1 에접속된 Peer 들의정보출력 curl python -m json.tool 명령어를입력합니다. 정상적으로동작하고있다면다음과비슷한메세지가출력이될것입니다. $ curl python -m json.tool % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed :--:-- --:--:-- --:--: "data": "connected_peer_count": 2, "connected_peer_list": [. ( 중간생략 ) ], "registered_peer_count": 2, "registered_peer_list": [. ( 중간생략 ) ], "response_code": 0 $ 34

35 RadioStation 과 2 개의 Peer 로 Blockchain Network 구성하기 II. 설치 Tutorial 2. Peer0 의상태정보를출력 curl python -m json.tool 명령어를입력합니다. 정상적으로동작하고있다면다음과비슷한메세지가출력이될것입니다. $ curl python -m json.tool % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed :--:-- --:--:-- --:--: "audience_count": "0", "block_height": 0, "consensus": "siever", "leader_complaint": 1, "made_block_count": 0, "peer_id": "9f109b10-1b8b-11e8-9ab2-0242ac110004", "peer_target": " :7100", "peer_type": "1", "status": "Service is online: 1", "total_tx": 0 $ 35

36 RadioStation 과 2 개의 Peer 로 Blockchain Network 구성하기 II. 설치 Tutorial 3. Peer1 의상태정보를출력 curl python -m json.tool 명령어를입력합니다. 정상적으로동작하고있다면다음과비슷한메세지가출력이될것입니다. $ curl python -m json.tool % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed :--:-- --:--:-- --:--: "audience_count": "0", "block_height": 0, "consensus": "siever", "leader_complaint": 1, "made_block_count": 0, "peer_id": "c41c e8-bae4-0242ac110005", "peer_target": " :7200", "peer_type": "0", "status": "Service is online: 0", "total_tx": 0 $ 36

37 RadioStation 과 2 개의 Peer 로 Blockchain Network 구성하기 II. 설치 Tutorial 4. log 가저장되고있는지확인. 현재튜토리얼에서는 /logs 폴더에 RadioStation 과 Peer0 의로그가저장되고있습니다. 이를확인하기위해서 /logs 폴더안에파일들이생성되고있는지확인합니다. $ ls $(pwd)/logs/ data.b5669f50a57554db1a74bc2c19ddb6c16.log data.log time_slice_format %Y%m%d data _0.log.gz data _0.log.gz data.b5669f50a57554db1a74bc2c19ddb6c16.log.meta $ 37

38 RadioStation 과 2 개의 Peer 로 Blockchain Network 구성하기 실행스크립트작성 II. 설치 Tutorial 실제 loopchain 운영의편의를위해서위와같이매번명령어를직접입력하기보다는실행스크립트작성이필요합니다. 다음과같이총 3 개의실행스크립트를작성하고실행해보겠습니다. 1. 시작 - start.sh ( 새로운컨테이너실행 ) #!/usr/bin/env bash ############################################## # 환경변수등록 ############################################## export TAG=latest export CONF=$(pwd)/conf export LOGS=$(pwd)/logs export FLUENTD=$(pwd)/fluentd export STORAGE_RS=$(pwd)/storageRS export STORAGE_PEER_0=$(pwd)/storage0 ############################################## # 로그및데이터디렉토리생성 ############################################## if [! -d $LOGS ] then mkdir -p $LOGS fi if [! -d $STORAGE_RS ] then mkdir -p $STORAGE_RS fi if [! -d $STORAGE_PEER_0 ] then mkdir -p $STORAGE_PEER_0 fi ############################################## # 로그서버실행 ############################################## docker run -d \ --name loop-logger \ --publish 24224:24224/tcp \ --volume $FLUENTD:/fluentd \ --volume $LOGS:/logs \ loopchain/loopchain-fluentd:$tag ############################################## # Radio Station 실행 ############################################## docker run -d --name radio_station \ -v $CONF:/conf \ -v $STORAGE_RS/storageRS:/.storage \ -p 7102:7102 \ -p 9002:9002 \ --log-driver fluentd --log-opt fluentd-address=localhost:24224 \ loopchain/looprs:$tag \ python3 radiostation.py -o /conf/rs_conf.json ############################################## # Peer0 실행 ############################################## docker run -d --name peer0 \ -v $(pwd)/conf:/conf \ -v $(pwd)/storage0:/.storage \ --link radio_station:radio_station \ --log-driver fluentd --log-opt fluentd-address=localhost:24224 \ -p 7100:7100 -p 9000:9000 \ loopchain/looppeer:$tag \ python3 peer.py -o /conf/peer_conf0.json -p r radio_station:7102 ############################################## # Peer1 실행 ############################################## docker run -d --name peer1 \ -v $(pwd)/conf:/conf \ -v $(pwd)/storage1:/.storage \ --link radio_station:radio_station \ --log-driver fluentd --log-opt fluentd-address=localhost:24224 \ -p 7200:7200 -p 9100:9100 \ loopchain/looppeer:$tag \ python3 peer.py -o /conf/peer_conf1.json -p r radio_station:

39 RadioStation 과 2 개의 Peer 로 Blockchain Network 구성하기 II. 설치 Tutorial 2. 종료 - stop.sh ( 실행중인컨테이너를종료 ) #!/usr/bin/env bash docker stop $(docker ps -q --filter name=loop-logger --filter name=radio_station --filter name=peer0 --filter name=peer1) 3. 삭제 - delete.sh ( 종료된컨테이너를삭제 ) #!/usr/bin/env bash docker rm -f $(docker ps -aq --filter name=loop-logger --filter name=radio_station --filter name=peer0 --filter name=peer1) 39

40 III. SCORE 구축

41 Local computer 에서 SCORE 를불러오는 Tutorial III. SCORE 구축 목적 이 Tutorial 에서는사용자의컴퓨터에서 Docker 로 loopchain 을실행하면서 Github 에있는 SCORE 를사용하는것을실습하여봅니다. SCORE 저장소생성 1. GitHub 에서 SCORE sample 을 fork 해오기 Github 에서 SCORE Sample 프로젝트 ( 를 fork 하여서 SCORE 개발환경을위한테스트용 SCORE 저장소를생성합니다. 41

42 Local computer 에서 SCORE 를불러오는 Tutorial III. SCORE 구축 2. SCORE 저장소와 SSH 통신을위해 SSH 키를생성하기 ssh-keygen 명령어를사용하셔서 id_tutorial 이라는이름으로생성합니다. 아래화면을참고하시고 GitHub 의자신의이메일주소로 SSH 키를생성하셔야합니다. 상세한내용은외부링크를참고해주세요. 만약 Sierra 혹은그이후의 macos 를사용하시는분들은링크의내용을참고하셔서추가적으로진행하셔야하는내용이있으니꼭확인하시고따라하십시오. $ ssh-keygen -t rsa -b C "your_ @example.com" Generating public/private rsa key pair. Enter file in which to save the key (/Users/user_id/.ssh/id_rsa): /Users/user_id/.ssh/id_tutorial... $ ls -la ~/.ssh/ grep id_tutorial -rw donghanlee staff :45 id_tutorial -rw-r--r-- 1 donghanlee staff :45 id_tutorial.pub 42

43 Local computer 에서 SCORE 를불러오는 Tutorial III. SCORE 구축 3. GitHub 에 Deployment key 를등록하기 앞서 Fork 한 SCORE 저장소에 SSH public key 내용을 ( 예 :id_tutorial.pub) 를등록합니다. 1) Public key 의내용을확인합니다. $ cat.ssh/id_tutorial.pub ssh-rsa...your_public_key... == your_ @example.com 2) Public key 의내용을아래처럼 Fork 한 SCORE package 의 deployment key 로등록합니다. 43

44 Local computer 에서 SCORE 를불러오는 Tutorial III. SCORE 구축 환경설정 Local computer 에서 RadioStation 과 2 개의 Peer 로 Blockchain network 구성하기내용을기반으로 SCORE 환경설정을하겠습니다. 해당파일과디렉토리를복사하여서다른디렉토리로만들고아래내용대로추가하거나수정합니다. 1. RadioStation 설정 - SCORE 저장소경로설정 channel_manage_data.json 을열어서 score_package 의값으로 your_github_id/contract_sample" 수정합니다. "channel1": "score_package": "your_github_id/contract_sample" 44

45 3. 변 Local computer 에서 SCORE 를불러오는 Tutorial III. SCORE 구축 2. 시작스크립트인 start.sh 스크립트의 peer 부분을수정 1) 환경변수추가등록 export SSH_KEY_FOLDER=/Users/user_id/.ssh/id_tutorial 2) SSH key 경로설정 -v "$SSH_KEY_FOLDER:/root/.ssh/id_tutorial" 3) SCORE 저장소도메인설정 -e "DEFAULT_SCORE_HOST=github.com 변경된 start.sh 파일내용 ``` ############################################## # 환경변수등록 ############################################## export SSH_KEY_FOLDER=/Users/user_id/.ssh/id_tutorial ############################################## # Peer0 실행 ############################################## docker run -d --name peer0 \... -v $SSH_KEY_FOLDER:/root/.ssh/id_rsa \ -e "DEFAULT_SCORE_HOST=github.com" \... ############################################## # Peer1 실행 ############################################## docker run -d --name peer1 \... -v $SSH_KEY_FOLDER:/root/.ssh/id_rsa \ -e "DEFAULT_SCORE_HOST=github.com" \... ``` 45

46 Local computer 에서 SCORE 를불러오는 Tutorial III. SCORE 구축 환경설정확인 1. loopchain 도커컨테이너를모두실행 : start.sh $./start.sh 2. peer 목록조회 $ curl python -m json.tool "data": "connected_peer_count": 2, "connected_peer_list": [...,... ], "registered_peer_count": 2, "registered_peer_list": [...,... ], "response_code": 0 현재 Blockchain network 에연결된 Peer 들을보여줍니다. connected_peer_count 와 registered_peer_count 의값이같아야합니다. 46

47 Local computer 에서 SCORE 를불러오는 Tutorial III. SCORE 구축 3. Peer 상태조회 $ curl python -m json.tool "audience_count": "0", "block_height": 0, "consensus": "siever", "leader_complaint": 1, "made_block_count": 0, "peer_id": "d b2-11e8-b58b-0242ac110004", "peer_target": " :7100", "peer_type": "1", "status": "Service is online: 1", "total_tx": 0 Peer 의 block 들의높이, 상태, Tx 의갯수등을보여줍니다. 4. SCORE 버전조회 $ curl python -m json.tool "all_version": [ "f58b8b3e955984a09674a1f74c d706c", "b39064b358b84798f20f024fca066a113ec88b18", "99923ce139350cf8f37ef9f72fddf3f327da4d7a",.( 중간생략 ).. "e38140e76766f2e51f30858a0ee3c82a90b9c258", "af7c49743fecd315d4e fbdae9b92dead7", "bcc0d0f05d1a219cd4ed47955a86b0e16d1b2778" ], "id": "your_github_id/contract_sample", "status": 0, "version": "f58b8b3e955984a09674a1f74c d706c" 현재올라온 SCORE 의버전들을보여줍니다. SCORE 는내부에서 Git 으로버전을관리하기때문에 Git 상에서각버전의 SHA-1 hash 를보여줍니다 47

48 Local computer 에서 SCORE 를불러오는 Tutorial III. SCORE 구축 5. SCORE Transaction 생성 $ curl -H "Content-Type: application/json" -X POST -d '"jsonrpc":"2.0","method":"propose","params":"proposer":"realestateagent", "counterparties": ["leaseholder","jinho"], "content": "Theloop APT , lease for 3 months from 3th April,2018", "quorum": "3"' python -m json.tool "more_info": "", "response_code": "0", "tx_hash": "7bc856e972da62a6cba3deff71e74e848174fc1e28feaae66f58ff f0a" 새로운 Transaction 을만들기위해서, 해당 SCORE 의 invoke() 아래구현된함수를부릅니다. 이를위해, 해당함수를부를수있는 json-rpc 2.0 형태의 JSON 을만들어부릅니다. 여기서는 propose 라는함수를불러본것입니다. 이결과로 Tx 의 Hash 값을되돌려줍니다. 6. SCORE Transaction 조회 - tx_hash 사용 (7bc856e972da62a6cba3deff71e74e848174fc1e28feaae66f58ff f0a) $ curl python -m json.tool "response": "code": 0, "jsonrpc": "2.0", "response_code": "0" 앞서만든 Tx 의 hash 를가지고결과를조회해봅니다. response_code 가 0 면정상입니다. 48

49 Local computer 에서 SCORE 를불러오는 Tutorial III. SCORE 구축 7. SCORE Transaction 실행결과조회 (Query) $ curl -H "Content-Type: application/json" -X POST -d '"jsonrpc": "2.0","channel":"channel1","method":"get_user_contracts","id":"11233","params":"user_id":"jinho"' python -m json.tool "response": "code": 0, "id": "11233", "jsonrpc": "2.0", "response": "user_contracts": [ "approvers": [ "RealEstateAgent" ], "content": "Theloop APT , lease for 3 months from 3th April,2018", "contract_id": 1, "counterparties": [ "leaseholder", "jinho" ], "proposer": "RealEstateAgent", "quorum": "3" ], "response_code": "0"] 만들어진 Transaction 을찾기위해서, 해당 SCORE 의 query() 아래구현된함수를부릅니다. 이를위해, 해당함수를부를수있는 json-rpc 2.0 형태의 JSON 을만들어부릅니다. 여기서는 user_contracts 라는함수를불러본것입니다. 49

50 Local computer 에서 SCORE 를불러오는 Tutorial III. SCORE 구축 8. peer 상태조회 (block_height, made_block_count,total_tx 변화확인 ) $ curl python -m json.tool "audience_count": "0", "block_height": 1, "consensus": "siever", "leader_complaint": 1, "made_block_count": 1, "peer_id": "d b2-11e8-b58b-0242ac110004", "peer_target": " :7100", "peer_type": "1", "status": "Service is online: 1", "total_tx": 1 앞서만든 Tx 로 total_tx 가증가된것을확인할수있습니다. 50

51 loopchain SCORE 개발에대한정보정리 III. SCORE 구축 SCORE 개발 SCORE의개발은 3단계로나뉘어집니다. 1. 비지니스모델타당성검증 2. 모델구현및 Unit Test 3. Integration Test 및모델배포 비지니스모델타당성검증 SCORE 안에서는다음과같은내용을통한비지니스모델은불가능합니다. 랜덤값에의존하는비지니스모델 : SCORE 안에서랜덤값을생성하거나, 실행하는모델은불가하나, 블록의해시혹은트랜잭션을이용한랜덤값이용은가능합니다. 외부의데이터에의존성이있는비지니스모델 : SCORE 안에서다른사이트를호출하거나, 외부의데이터를요구하는모델은아직불가능하나향후고려되고있습니다. 시간에따라행동하는혹은실행시간에따라내용이바뀌는모델 : 현재시간 ( 실행시간 ) 은사용불가능하며, 블록의시간혹은트랜잭션시간으로대체는가능합니다. 부동소수점처리불가 : CPU 에따라부동소수점표현방식이달라질수있으므로모든연산은정수단위에서처리해야합니다. 내부변수재사용금지 : 특정한변수를 Cache 해놓았다가쓰는것은금지되어야합니다. 51

52 loopchain SCORE 개발에대한정보정리 III. SCORE 구축 구현 SCORE 를작성하거나, 개발할때는 coverage 90% 이상을목표로개발하여야하며, 퍼포먼스도고려되어야합니다. 폴더및실행구조 / score / 회사명 ( 기관명 ) / 패키지명. ex) /score/loopchain/default/ deploy 폴더명은사용불가 원격 repository를사용하지않을경우다음과같이가능합니다. 회사명 ( 기관명 )_ 패키지명.zip 으로 repository 전체를압축하여 score에저장하여실행 패키지설명및실행에대한상세내용은 package.json 파일로정의하며, package.json 정의에대한내용은다른가이드에서설명합니다. 52

53 loopchain SCORE 개발에대한정보정리 III. SCORE 구축 Unit Test 모든테스트코드는 SCORE 의패키지루트에있어야하며, 차후 repository 등록전에실행됩니다. SCORE 와분리해서논리적인별도의 Module 을만들어서 Unit Test 를만들어서수행해야합니다. Integration Test RadioStation / Peer 를실행합니다. POST 로 /api/v1/transactions 로아래처럼데이터를보냅니다. "jsonrpc": "2.0", "id": 1, "method": "foo", "params": "param1":"value1... packages.json 에서얻은정의한함수의이름과데이터에맞춰 Transaction 을만들어준다. 형식은 JSON 2.0 RPC 방식에맞춰준다. Invoke / Query 모두같은방식으로호출된다. 함수이름으로구분한다. 53

54 loopchain SCORE 개발에대한정보정리 III. SCORE 구축 SCORE 배포및관리 <local develop folder를사용하는방법 > 1. configure_user.py 파일을추가합니다. (configure_default.py 와같은위치 ) ALLOW_LOAD_SCORE_IN_DEVELOP = 'allow' DEVELOP_SCORE_PACKAGE_ROOT = 'develop' DEFAULT_SCORE_PACKAGE = 'develop/[package]' 2. /score/develop/[package] 폴더를만듭니다. [package] 는원하는이름으로작성합니다. (sample 을사용하는경우 test_score 로합니다.) 3. /score/sample-test_score/* 파일을새로운폴더로복사합니다. 4. loopchain 네트워크를실행하여확인합니다. <zip 파일을사용하는방법 > 1. 임의의폴더에서 score 를작성합니다. ("local develop folder를사용하는방법 " 에서작성한 SCORE 복사하여도됩니다.) 2. package.json 의 "id" 값을 "[company_name]-[package]" 로수정합니다. 3. $ git init. 으로해당폴더를 local git repository 로설정합니다. 4. $ git add. 으로폴더의모든파일을 repository 에추가합니다. 5. $ git commmit -a 로 SCORE 파일들을 git 에 commit 합니다. 6. $ zip -r../[company_name]_[package].zip./ 으로 repository 를 zip 으로압축합니다. 7. zip 파일을 /score/ 아래에둡니다. (/score/[company_name]_[package].zip) 8. configure_user.py 파일을추가합니다. (configure_default.py 와같은위치 ) DEFAULT_SCORE_PACKAGE = '[company_name]/[package]' 9. loopchain 네트워크를실행하여확인합니다. 54

55 loopchain SCORE 개발에대한정보정리 III. SCORE 구축 <repository 를사용하는방법 > SCORE 의배포는특별히관리되는 repository 를사용할수있습니다. 차후다수의 repository 를검색하여, 순위별로배포하는방안도검토중입니다. remote repository 에서관리하지않는스코어는내부 repository 가포함된 zip 파일에서관리할수있습니다. peer 에서스코어의배포는다음의명령어를사용합니다. Docker 에서실행시 Local 에서실행시 참조 $ docker run -d $DOCKER_LOGDRIVE \ --name $PEER_NAME --link radio_station:radio_station \ -p $PORT:$PORT looppeer:$docker_tag \ python3 peer.py -c $DEPLOY_SCORE \ -r radio_station -d -p $PORT $ python3 peer.py -c $DEPLOY_SCORE -r radio_station -d -p $PORT DEPLOY_SCORE 는기관명 / 패키지명입니다. PEER_NAME 은 Peer 의이름을지칭합니다. PORT 는 radio_station 의위치 IP:PORT 로설정됩니다. 55

56 IV. Appendix.

57 RESTful API - RadioStation IV. Appendix. GET /api/v1/peer/list?channel=channel_name Radio Station 에등록 / 연결된 Peer 정보를가져온다 Response Body "registered_peer_count": "int: 등록된 Peer 의수 ", "connected_peer_count": "int: 연결된 Peer 의수 ", "registered_peer_list": " 등록된 Peer 의정보목록 " [ "order": "Radio Station 에등록된 Peer 에할당된고유순번 ", "peer_id": "Peer ID", "group_id": "Peer group 의 ID", "target": "Peer 의 IP: Port' 로이루어진문자열 ", "auth": "Peer 의 public key 정보 ( 인증서 )", "token": "Radio station 이 Peer 에게발급한토큰 ", "status_update_time": "Peer 의연결상태정보가업데이트된시간 ", "status": "int: Radio station 과 Peer 의연결상태. (unknown:0, connected:1, disconnected:2)", "peer_type": "grpc proto 에정의된 peer 타입의문자값 (peer:"0", leader:"1")", "..." ], "connected_peer_list": " 연결된 Peer 의정보목록 " [ "order": "Radio Station 에등록된 Peer 에할당된고유순번 ", "peer_id": "Peer ID", "group_id": "Peer group 의 ID", "target": "Peer 의 IP: Port' 로이루어진문자열 ", "auth": "Peer 의 public key 정보 ( 인증서 )", "token": "Radio station 이 Peer 에게발급한토큰 ", "status_update_time": "Peer 의연결상태정보가업데이트된시간 ", "status": "int: Radio station 과 Peer 의연결상태. (unknown:0, connected:1, disconnected:2)", "peer_type": "grpc proto 에정의된 peer 타입의문자값 (peer:"0", leader:"1")", "..." ]

58 RESTful API - RadioStation IV. Appendix. GET /api/v1/peer/leader?channel=channel_name Leader Peer 의정보를가져온다 Response Body "response_code": "int : RES_CODE", "data": "order": "Radio Station 에등록된 Peer 에할당된고유순번 ", "peer_id": "Peer ID", "group_id": "Peer group 의 ID", "target": "Peer 의 IP: Port' 로이루어진문자열 ", "auth": "Peer 의 public key 정보 ( 인증서 )", "token": "Radio station 이 Peer 에게발급한토큰 ", "status_update_time": "Peer 의연결상태정보가업데이트된시간 ", "status": "int: Radio station 과 Peer 의연결상태. (unknown:0, connected:1, disconnected:2)"

59 RESTful API - RadioStation IV. Appendix. GET /api/v1/peer/status?peer_id=peer 의 ID&group_id=Peer 의 group ID&channel=channel_name Parameter 로전달한 target 정보와일치하는 Peer 의상태정보를가져온다 Response Body "response_code": "int : RES_CODE", "data": "made_block_count": " 해당 Peer 가생성한 block 의수 ", "status": "Peer 의연결상태 ", "audience_count": " 해당 Peer 를 subscription 중인 Peer 의수 ", "consensus": " 합의방식 (none:0, default:1, siever:2)", "peer_id": "Peer 의 ID", "peer_type": "Leader Peer 여부 ", "block_height": "Blockchain 내에서생성된 Block 수 ", "total_tx": "int: Blockchain 내에서생성된 Transaction 수 ", "peer_target": "Peer 의 grpc target 정보 "

60 RESTful API - RadioStation IV. Appendix. GET /api/v1/conf loopchain 의모든 Configuration 목록을가져온다. Response Body "response_code": "int : RES_CODE", "data": [ "name": "Configuration 이름 ", "value": "String 타입의 Configuration 값 ", "type": "int : Configuration 값의데이터타입 (string:0, int:1, float:2)", "..." ]

61 RESTful API - RadioStation IV. Appendix. GET /api/v1/conf?name=configuration 이름 loopchain 의 Configuration 중특정값을 Configuration 이름기준으로가져온다. Response Body "response_code": "int : RES_CODE", "data": "name": "Configuration 이름 ", "value": "String 타입의 Configuration 값 ", "type": "int : Configuration 값의데이터타입 (string:0, int:1, float:2)"

62 RESTful API - RadioStation IV. Appendix. POST /api/v1/conf loopchain 의특정 Configuration 을설정한다. Request Body "response_code": "int : RES_CODE", "data": "name": "Configuration 이름 ", "value": "String 타입의 Configuration 값 ", "type": "int : Configuration 값의데이터타입 (string:0, int:1, float:2)" Content-Type : application/json Request-body : Raw 데이터로써, JSON 형태의데이터 Response Body "response_code": "int : RES_CODE", "message": "message"

63 RESTful API - RadioStation IV. Appendix. GET /api/v1/cert/list/ca CA 인증서를발급합니다. Response Body "response_code": "int : RES_CODE", "message": "message" GET /api/v1/cert/list/peer Peer 의인증서를발급합니다. Response Body "response_code": "int : RES_CODE", "message": "message"

64 RESTful API - RadioStation IV. Appendix. GET /api/v1/cert/issue/ca Radio station 이발급한 CA 인증서를가져옵니다. Response Body "response_code": "int : RES_CODE", "data": "cert_type": " 인증서타입 (signature:0, encryption:1, ca:2)", "subject": " 공개키주체정보 ", "issuer": " 발급주체정보 ", "serial_number": " 일련번호 ", "not_after": " 인증서만료일 ", "cert_pem": " 인증서 "

65 RESTful API - RadioStation IV. Appendix. GET /api/v1/cert/issue/peer Radio station 이발급한 Peer 인증서목록을가져옵니다. Response Body "response_code": "int : RES_CODE", "data": [ "cert_type": " 인증서타입 (signature:0, encryption:1, ca:2)", "subject": " 공개키주체정보 ", "issuer": " 발급주체정보 ", "serial_number": " 일련번호 ", "not_after": " 인증서만료일 ", "cert_pem": " 인증서 ", "..." ]

66 RESTful API - Peer IV. Appendix. GET /api/v1/status/peer?channel=channel name loopchain 의현재상태를가져옴 (block height, total tx 등 ) Response Body "status": "Service is online: 1", "audience_count": 0, "consensus": "siever", "peer_id": "ac b-11e7-b072-a45e60c5e043", "peer_type": "1"

67 RESTful API - Peer IV. Appendix. GET /api/v1/status/score?channel=channel name loopchain 의 SCORE 상태를가져옴 (Score version, 배포된버전, SCORE 아이디 ) Response Body "id": "score/certificate", "status": 0, "version": "5b95c851bb90219cacce8444b4667eed4af73935", "all_version": [ "5b95c851bb90219cacce8444b4667eed4af73935", "b40e09a84e2f25d91b10b7b8c89a3f3fbd9309a4", "67398e1c42929f85002dda c8408a2556", "61819fefe9a e94e889af6a74fc53715", "da54c689fb538342ae af2e2cf2311ce96", "1b13778e65831f bc9139fe5e13162db0", "29682ba50a586e534d52d647fb65f1a749d59036", "a222b096ef4a5c6f90c77736ac3914c39f55f2c5", "9c529558b9636e1d1aca6b2a8807f0ba3df474bf", "0c601c48e034dffa5b3a3f4336e15f285a45f3a9", "3447ef8db315a4addd499b e10b3907d", "82f4f85786ef73e0d020244c1697c6918fca20ec", "81e7c40f5aab0546be6bb1398e8016f5a7e1a120", "a41b3e0dcaeca653e26f11b4c75e5c15766f761e", "5ead8aba390687a2b0768f60711a170c998e40aa", "d3924a4336fb7a2ed1d86f22d57c488b4be8432f", "d7d02cf9825ad879eb0e79f6f6ac1b81738e52aa", "7d590db788c0a81a7caeb938b8204a737d63dd71", "a62cf913ffdc8b497b1f6ecfd6d0d731d02506db", "5edd70fda c62157a6717b950e16ae", "084dc91f607ffe5a8d6cfa5f366a3706e8cd6b2b", "5bc674d2e f93a56bb24d7c46a679fc", "4701abc7c666f59559fea3d f30708e7" ]

68 RESTful API - Peer IV. Appendix. POST /api/v1/query 스코어가실행된결과조회 Request Body POST /api/v1/query "jsonrpc": "2.0", "channel": "channel_name", "method": "get_name", "id": "test_query", "params": "id": "1", Content-Type : application/json Request-body : Raw 데이터로써, JSON형태의데이터 jsonrpc : 반드시 2.0으로설정 method : SCORE안에호출할 Function 이름 params : JSON으로구성된 SCORE안에호출할 Function의 parameters.

69 RESTful API - Peer IV. Appendix. Response Body "response_code": "int : RES_CODE", "response": "jsonrpc": "2.0", "code": 0, "response": "name": "godong", "id": "test_query" Content-Type : application/json response_code : Request-body : Raw 데이터로써, JSON 형태의데이터 jsonrpc : 반드시 2.0 으로설정. code : SCORE 안에서실행한결과. response : 결과로넘어오는 JSON body

70 RESTful API - Peer IV. Appendix. GET /api/v1/transactions?hash= 찾으려는트랜잭션해시 &channel=channel_name 트랜잭션해시로블록체인에저장된데이터를가져옴. Response Body "response_code" : "int : RES_CODE", "data" : " 트랜잭션생성시보낸데이터 ", "meta" : "peer_id" : " 트랜잭션을생성한피어아이디 ", "score_id" : " 실행한 SCORE id", "score_version" : " 실행한 SCORE version", "more_info" : " 추가정보 "

71 RESTful API - Peer IV. Appendix. GET /api/v1/transactions/result?hash= 찾으려는트랜잭션해시 &channel=channel_name Score 실행결과를 Transaction Hash 를통해가져옴 Response Body "response_code" : "int : RES_CODE", "response" : "code" : 0( 성공 ), 2( 아직 commit되지않음 ), 9000 Exception "message" : " 실패시실패메시지 "

72 RESTful API - Peer IV. Appendix. /api/v1/transactions 트랜잭션을생성하여 SCORE 를실행. Request Body "jsonrpc": "2.0", "channel": "channel_name", "method": "get_bid", # SCORE안에호출할 Function 이름 "id": "test_query", # 비동기응답시이용할예정. 현재는사용안함. "params": # JSON으로구성된 SCORE안에호출할 Function의 parameters. "name": "1", "identity": "2" Content-Type : application/json Request-body : Raw 데이터로써, JSON 형태의데이터 Response Body "response_code" : "int : RES_CODE", "tx_hash" : " 트랜잭션해시 ", "more_info" : " 추가정보 "

73 RESTful API - Peer IV. Appendix. /api/v1/transactions 트랜잭션을생성하여 SCORE 를실행. Request Body "jsonrpc": "2.0", "channel": "channel_name", "method": "get_bid", # SCORE안에호출할 Function 이름 "id": "test_query", # 비동기응답시이용할예정. 현재는사용안함. "params": # JSON으로구성된 SCORE안에호출할 Function의 parameters. "name": "1", "identity": "2" Content-Type : application/json Request-body : Raw 데이터로써, JSON 형태의데이터 Response Body "response_code" : "int : RES_CODE", "tx_hash" : " 트랜잭션해시 ", "more_info" : " 추가정보 "

74 RESTful API - Peer IV. Appendix. GET /api/v1/blocks?channel=channel name 마지막블록의 hash 데이터를가져온다. Response Body "response_code" : "int RES_CODE", "block_hash" : "block_hash", "block_data_json" : "block_data_json" GET /api/v1/blocks?channel=channel name&hash= 찾으려는블록해시 블록해시에알맞은블록에서헤더데이터로 filter 에있는데이터를가져오고 txfilter 에있는데이터를트랜잭션데이터에추가하여블록데이터를가져옵니다. Response Body "block_hash" : " 블록해시 ", "block_data_json" : "prev_block_hash" : " 이전블록해시 ", "merkle_tree_root_hash" : " 머클루트 ", "time_stamp" : " 블록생성시간 ", "height" : " 블록높이 ", "peer_id" : " 블록생성피어 id", "tx_data_json" : [ "tx_hash" : " 트랜잭션해시 ", "timestamp" : " 트랜잭션생성시간 ", "data_string" : " 트랜잭션에들어간데이터 ", "peer_id" : " 트랜잭션을생성한피어 " ]

75 설정 IV. Appendix. < Log level 설정하기 > LOOPCHAIN_LOG_LEVEL 을이용하세요. 아래중하나의 String 값을가지면됩니다. 기본값은 "DEBUG" 입니다. ( 제일많이모든로그를보여줍니다.) 옵션값 : CRITICAL,ERROR, WARNING, INFO, DEBUG ( 오른쪽에서왼쪽으로갈수로더많은로그를남김 ) < Peer 의외부 IP 설정 > LOOPCHAIN_HOST 에 IP 값을설정합니다. 기본적으로 Peer 는시작할때, 해당 Peer 가속한 Network 에서사설 IP(Private IP) 가지고다른 Peer 들과통신하려고합니다. 외부와통신하지않고내부 Network 로만동작하는경우에는문제가없습니다. 그러나상황에따라서공용 IP(Public IP) 를가지고통신하는것이나을수있습니다. 예를들어, Network 를구성하는 Node 들이기존인터넷망을이용하거나 VPN 을이용해서통신을하는경우, Peer 의 IP 는기존인터넷망이나 VPN 에서접근가능한 IP 여야합니다. 하지만, 안타깝게도 Docker 상에서는이런상황에서 IP 를가져올수가없습니다. 그래서 LOOPCHAIN_HOST 를이용해서다른 Peer 들과통신을하기위해사용할공용 IP 를지정할수있습니다. LOOPCHAIN_HOST:$ 현재 node 가보여주어야하는 IP

76 설정 IV. Appendix. <SCORE 불러오는 Repository URL 바꾸기 > DEFAULT_SCORE_HOST: 현재 Blockchain 서비스에서 SCORE 를가져오기위해사용할 Git repository 의 URL 을설정해주면됩니다. Docker 로 Peer 를실행할때의 DEFAULT_SCORE_HOST 옵션으로 SCORE 를가져올 Git service URL 을지정합니다. $ docker run -d --name peer0 \... -e "DEFAULT_SCORE_HOST=github.com" \...

77 설정 IV. Appendix. <Multichannel -1> Multichannel 을사용하기위해서는 SCORE 와 Peer 의정보에대해서알고있어야합니다. 1. `channel_manage_data.json` 을수정합니다. channel 의이름, channel 에서실행되는 SCORE 의이름그리고, channel 에 join 하는 peer 들의목록을작성합니다. "%CHANNEL_NAME1%": // 1st channel name "score_package": "your_score_package", // 이채널에서실행되는 SCORE의이름 "peers": [ "peer_target": "%IP%:%PORT%" // 채널에포함되는 peer의정보 & 리스트,... ], "%CHANNEL_NAME2%": // 2nd channel name "score_package": "your_score_package", // 이채널에서실행되는 SCORE의이름 "peers": [ "peer_target": ""%IP%:%PORT%" // 채널에포함되는 peer의정보 & 리스트,... ]

78 설정 IV. Appendix. <Multichannel -2> 예를들어서 wework_0, wework_1 채널이각각 SCORE score/code1, score/code2 을사용한다면다음과같이작성이될것입니다. "wework_0": "score_package": "score/code1", "peers": [ "peer_target": "~~~~",... ], "wework_1": "score_package": "score/code2", "peers": [ "peer_target": "~~~~",... ]

79 설정 IV. Appendix. <Multichannel -3> 2. 설정파일을사용하여서 RadioStation 을실행합니다. 추후에 Docker 로 blockchain 을로컬컴퓨터에서구현하는예제에서자세히다시설명이되겠지만다음과같은순서로 RadioStaion 이설정파일을읽으면서실행이됩니다. $./radiostation.py -o rs_config.json 1) RadioStaion 이실행될때가장먼저 rs_conf.json 설정파일이먼저로딩됩니다. rs_conf.json 파일에 channel_manage_data.json 파일의위치가있습니다. "CHANNEL_MANAGE_DATA_PATH" : "./channel_manage_data.json", "ENABLE_CHANNEL_AUTH" : true parameter는다음과같은의미가있습니다. CHANNEL_MANAGE_DATA_PATH: Multichannel 을위한환경설정파일의위치와이름 ENABLE_CHANNEL_AUTH true = channel에등록된채널만 join이가능하다. false= 어떤 peer도등록이가능하다. 따로 peer 목록이없는경우에사용. 2) channel_manage_data.json 파일에서 MultiChannel 에대한환경설정을읽어옵니다.

80 설정 IV. Appendix. <Multichannel -4> 3. Peer 를설정파일을이용하여서실행합니다. peer_config.json 파일이 peer 에서사용하는설정파일입니다. "LOOPCHAIN_DEFAULT_CHANNEL" : "wework_0", "DEFAULT_SCORE_BRANCH": "master" parameter 들은다음과같은의미가있습니다. LOOPCHAIN_DEFAULT_CHANNEL : 이 peer 에서사용하는기본채널 DEFAULT_SCORE_BRANCH : 사용하는 SCORE 의 Branch. 기본값은 master 입니다. 터미널에서다음과같은명령어로실행하면됩니다. $./peer.py -o peer_config.json

81 설정 IV. Appendix. <RESTful 응답의성능높이기 > USE_GUNICORN_HA_SERVER : 실제운영단계에들어가는 Node 가많은 RESTful API 에대한 Request 들을잘받을수있게 gunicorn web service 에서쓸지말지결정해주는변수입니다. 기본값은 False 입니다. 실제서비스에올릴때는반드시 True 로설정되어야합니다. <Network 가느릴경우조절해야하는것들 > 상황에따라서느린네트워크에운용을하게된다면여러가지네트워크속도에장애가있는지아닌지확인하고설정을바꿔야합니다. Case 1. RadioStaion 의 Hart beat 의시간조절 RadioStation 은리더장애를파악하기위해주기적으로 Peer 들에게 Heart Beat 를보내고허용된횟수만큼리더가응답이없을경우리더를교체하는과정을수행합니다. 그러나네트워크사정이설치되는환경에따라다를것이기때문에아래의변수들을 RadioStation 에서설정해주셔야합니다. SLEEP_SECONDS_IN_RADIOSTATION_HEARTBEAT : RadioStation 이 Peer 의 Status 를확인하는시간. 단위는 Second. 기본값은 30 초. NO_RESPONSE_COUNT_ALLOW_BY_HEARTBEAT: RadioStation 이 Status 확인이안되는 Leader 를교체할횟수. 기본값은 5 회. "SLEEP_SECONDS_IN_RADIOSTATION_HEARTBEAT" X "NO_RESPONSE_COUNT_ALLOW_BY_HEARTBEAT" 횟수만큼리더응답이없으면 RadioStation 이리더를교체합니다. Case 2. Peer 들의연결 Timeout 설정하기 네트워크상태에따라서아래변수들을수정해야할수있습니다. 보통의경우에는설정할필요가없지만네트워크가매우안좋은상황에는시도해볼수있습니다. GRPC_TIMEOUT: grpc 연결하는시간의 Timeout 한계치. 단위는 Second. GRPC_TIMEOUT_BROADCAST_RETRY: grpc 로 data 를 broadcasting 하는시간의 Timeout 한계치. 단위는 Second.

82 설정 IV. Appendix. <Hardware 성능의문제로 Block 에담기는 Tx 숫자를조절 > Blockchain 은검증된여러 Tx 들을담고있는 Block 들의연결입니다. 그러나 Hardware 와 Network 의제약으로이를조절해야할경우, 그리고 Tx 의크기가너무크게될때, 아래의변수들을수정해주십시오. 참고로한개의 Tx 안에담기는정보가 3MB 이하로쓰기를권장합니다. MAX_BLOCK_TX_NUM: 블록의담기는트랜잭션의최대개수 LEADER_BLOCK_CREATION_LIMIT: Leader 의 block 생성개수. 한 Leader 가이개수이상의 Block 을만들면다른 Peer 로 Leader 가변경. BLOCK_VOTE_TIMEOUT: Block 에대한투표응답을기다리는최대시간. 단위는 Seconds.

83 설정 IV. Appendix. <KeyLoad 설정방법 > <loopchain Key 구성요소 > loopchain 에서는보안통신, 트랜잭션서명등을위하여인증서와키옵션을설정해주어야합니다. loopchain 에서사용하는키는다음과같습니다. Channel 별서명키 ecdsa secp256k X.509 인증서, Public key <Channel 별서명키옵션설정 > loopchain 에서는트랜잭션생성및블록생성시각 Peer 를검증하기위하여공개키기반암호화알고리즘을통해인증서명을사용합니다. 이때사용하는알고리즘은 ecdsa secp256k 를사용하고인증서형태와 Public key 형태를지원합니다. loopchain Peer 는키를로드하기위해공개키의형태와 (cert, public key), 키세트로드방식, 키위치등을설정하여야합니다. json 형태로옵션을설정해야하며다음예제는키옵션별로세팅해야될세팅을설명합니다. Ex) channel1 = key_file 을통해 load 한다면아래와같이해준다. "CHANNEL_OPTION" : "channel1" : "load_cert" : false, "consensus_cert_use" : false, "tx_cert_use" : false, "key_load_type": 0, "public_path" : "public_key path", "private_path" : "private_key path", "private_password" : "private_key password"

84 설정 IV. Appendix. 각 Parameter들의내용들은다음과같습니다. load_cert :load할인증서의 type 이 cert 면 true, public key 면 false consensus_cert_use: block 및투표서명에사용할공개키타입 (true : cert, false : public key) tx_cert_use : Transaction서명및검증에사용할공개키타입 (true : cert, false : public key) key_load_type : 0 (File에서읽음 ) public_path : Public key가있는위치 private_path : Private key가있는위치 private_password : Private key의 Password.

85 Thank you

말은 많은 Blockchain 2

말은 많은 Blockchain 2 loopchain-블록체인으로 진짜 서비스 만들어보기 말은 많은 Blockchain 2 진짜 만든 것은 있나? 뭐가 많이 있기는 한데 우리가 써먹어 볼건 있나요? 3 그런데 이런 일이 일어났습니다. 4 뭘 만든건가요?: 블록체인 기반 인증서 발급 각 증권사를 통해 인증서 발급 요청 후 인증서 발급에 필요한 정보를 기반으로 거래를 생성하고 이에 대한 Smart

More information

loopchain_SCORE_dev

loopchain_SCORE_dev loopchain SCORE development 주의 : 이슬라이드의내용은통보없이달라질수있으니참고바랍니다. 1. Dapp 이란무엇인가? 1.1 Dapp이란? 1. Dapp이란 무엇인가 Decentralized Application ü Dapp은 Decentralized Application의 약자로 블록체인 기술을 활용한 탈중앙화된 어플리케이션. ü 코드가

More information

PowerPoint Presentation

PowerPoint Presentation Hyperledger Fabric 개발환경구축및예제 Intelligent Networking Lab Outline 2/64 개발환경구축 1. Docker installation 2. Golang installation 3. Node.Js installation(lts) 4. Git besh installation 예제 1. Building My First Network

More information

API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Docum

API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Docum API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 2012.11.23 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Document Distribution Copy Number Name(Role, Title) Date

More information

1) 인증서만들기 ssl]# cat >www.ucert.co.kr.pem // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat [ 개인키

1) 인증서만들기 ssl]# cat   >www.ucert.co.kr.pem // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat [ 개인키 Lighttpd ( 멀티도메인 ) SSL 인증서신규설치가이드. [ 고객센터 ] 한국기업보안. 유서트기술팀 1) 인증서만들기 [root@localhost ssl]# cat www.ucert.co.kr.key www.ucert.co.kr.crt >www.ucert.co.kr.pem // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat

More information

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc NTAS and FRAME BUILDER Install Guide NTAS and FRAME BUILDER Version 2.5 Copyright 2003 Ari System, Inc. All Rights reserved. NTAS and FRAME BUILDER are trademarks or registered trademarks of Ari System,

More information

1) 인증서만들기 ssl]# cat >www.ucert.co.kr.pem // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat [ 개인키

1) 인증서만들기 ssl]# cat   >www.ucert.co.kr.pem // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat [ 개인키 Lighttpd ( 단일도메인 ) SSL 인증서신규설치가이드. [ 고객센터 ] 한국기업보안. 유서트기술팀 1) 인증서만들기 [root@localhost ssl]# cat www.ucert.co.kr.key www.ucert.co.kr.crt >www.ucert.co.kr.pem // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat

More information

1. 안드로이드개발환경설정 안드로이드개발을위해선툴체인을비롯한다양한소프트웨어패키지가필요합니다 툴체인 (Cross-Compiler) 설치 안드로이드 2.2 프로요부터는소스에기본툴체인이 prebuilt 라는이름으로포함되어있지만, 리눅스 나부트로더 (U-boot)

1. 안드로이드개발환경설정 안드로이드개발을위해선툴체인을비롯한다양한소프트웨어패키지가필요합니다 툴체인 (Cross-Compiler) 설치 안드로이드 2.2 프로요부터는소스에기본툴체인이 prebuilt 라는이름으로포함되어있지만, 리눅스 나부트로더 (U-boot) 1. 안드로이드개발환경설정 안드로이드개발을위해선툴체인을비롯한다양한소프트웨어패키지가필요합니다. 1.1. 툴체인 (Cross-Compiler) 설치 안드로이드 2.2 프로요부터는소스에기본툴체인이 prebuilt 라는이름으로포함되어있지만, 리눅스 나부트로더 (U-boot) 만별도로필요한경우도있어툴체인설치및설정에대해알아봅니다. 1.1.1. 툴체인설치 다음링크에서다운받을수있습니다.

More information

RHEV 2.2 인증서 만료 확인 및 갱신

RHEV 2.2 인증서 만료 확인 및 갱신 2018/09/28 03:56 1/2 목차... 1 인증서 확인... 1 인증서 종류와 확인... 4 RHEVM CA... 5 FQDN 개인 인증서... 5 레드햇 인증서 - 코드 서명 인증서... 6 호스트 인증... 7 참고사항... 8 관련링크... 8 AllThatLinux! - http://allthatlinux.com/dokuwiki/ rhev_2.2_

More information

Windows Server 2012

Windows Server  2012 Windows Server 2012 Shared Nothing Live Migration Shared Nothing Live Migration 은 SMB Live Migration 방식과다른점은 VM 데이터파일의위치입니다. Shared Nothing Live Migration 방식은 Hyper-V 호스트의로컬디스크에 VM 데이터파일이위치합니다. 반면에, SMB

More information

Install stm32cubemx and st-link utility

Install stm32cubemx and st-link utility STM32CubeMX and ST-LINK Utility for STM32 Development 본문서는 ST Microelectronics 의 ARM Cortex-M 시리즈 Microcontroller 개발을위해제공되는 STM32CubeMX 와 STM32 ST-LINK Utility 프로그램의설치과정을설명합니다. 본문서는 Microsoft Windows 7

More information

Secure Programming Lecture1 : Introduction

Secure Programming Lecture1 : Introduction Malware and Vulnerability Analysis Lecture3-2 Malware Analysis #3-2 Agenda 안드로이드악성코드분석 악성코드분석 안드로이드악성코드정적분석 APK 추출 #1 adb 명령 안드로이드에설치된패키지리스트추출 adb shell pm list packages v0nui-macbook-pro-2:lecture3 v0n$

More information

github_introduction.key

github_introduction.key Github/Git Starter Guide for Introductory Level Curtis Kim @ KAKAO Why Github/Git? - :, - - Q1 :? - Q2 :? - Q3 : ( )? - Q4 :? - Github/Git. Old Paradigm : - - a.java.. Git. - - - - - - - - - (commit &

More information

untitled

untitled Push... 2 Push... 4 Push... 5 Push... 13 Push... 15 1 FORCS Co., LTD A Leader of Enterprise e-business Solution Push (Daemon ), Push Push Observer. Push., Observer. Session. Thread Thread. Observer ID.

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 DApp Development with loopchain 목차 I. DApp이란무엇인가? II. Dapp 체크리스트 III. Dapp Development with loopchain IV. Way Together I. DApp 이란무엇인가? DApp 이란? I. Dapp 이란무엇인가 Decentralized Application DApp은 Decentralized

More information

PowerPoint Template

PowerPoint Template JavaScript 회원정보 입력양식만들기 HTML & JavaScript Contents 1. Form 객체 2. 일반적인입력양식 3. 선택입력양식 4. 회원정보입력양식만들기 2 Form 객체 Form 객체 입력양식의틀이되는 태그에접근할수있도록지원 Document 객체의하위에위치 속성들은모두 태그의속성들의정보에관련된것

More information

리눅스설치가이드 3. 3Rabbitz Book 을리눅스에서설치하기위한절차는다음과같습니다. 설치에대한예시는우분투서버 기준으로진행됩니다. 1. Java Development Kit (JDK) 또는 Java Runtime Environment (JRE) 를설치합니다. 2.

리눅스설치가이드 3. 3Rabbitz Book 을리눅스에서설치하기위한절차는다음과같습니다. 설치에대한예시는우분투서버 기준으로진행됩니다. 1. Java Development Kit (JDK) 또는 Java Runtime Environment (JRE) 를설치합니다. 2. 3. 3Rabbitz Book 을리눅스에서설치하기위한절차는다음과같습니다. 설치에대한예시는우분투서버 기준으로진행됩니다. 1. Java Development Kit (JDK) 또는 Java Runtime Environment (JRE) 를설치합니다. 2. 3Rabbitz Book 애플리케이션파일다운로드하여압축파일을풀고복사합니다. 3. 3Rabbitz Book 실행합니다.

More information

ISP and CodeVisionAVR C Compiler.hwp

ISP and CodeVisionAVR C Compiler.hwp USBISP V3.0 & P-AVRISP V1.0 with CodeVisionAVR C Compiler http://www.avrmall.com/ November 12, 2007 Copyright (c) 2003-2008 All Rights Reserved. USBISP V3.0 & P-AVRISP V1.0 with CodeVisionAVR C Compiler

More information

ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE (Online Upgrade) ORANGE CONFIGURATION ADMIN O

ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE (Online Upgrade) ORANGE CONFIGURATION ADMIN O Orange for ORACLE V4.0 Installation Guide ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE...1 1....2 1.1...2 1.2...2 1.2.1...2 1.2.2 (Online Upgrade)...11 1.3 ORANGE CONFIGURATION ADMIN...12 1.3.1 Orange Configuration

More information

SBR-100S User Manual

SBR-100S User Manual ( 1 / 13 ) SBR-100S 모델에 대한 사용자 펌웨어 업그레이드 방법을 안내해 드립니다. SBR-100S 는 신규 펌웨어가 있을시 FOTA(자동업데이트) 기능을 통하여 자동 업그레이드가 되며, 필요시 사용자가 신규 펌웨어를 다운받아 수동으로 업그레이드 할 수 있습니다. 1. 준비하기 1.1 연결 장치 준비 펌웨어 업그레이드를 위해서는 SBR-100S

More information

Chapter 1

Chapter 1 3 Oracle 설치 Objectives Download Oracle 11g Release 2 Install Oracle 11g Release 2 Download Oracle SQL Developer 4.0.3 Install Oracle SQL Developer 4.0.3 Create a database connection 2 Download Oracle 11g

More information

Windows 8에서 BioStar 1 설치하기

Windows 8에서 BioStar 1 설치하기 / 콘텐츠 테이블... PC에 BioStar 1 설치 방법... Microsoft SQL Server 2012 Express 설치하기... Running SQL 2012 Express Studio... DBSetup.exe 설정하기... BioStar 서버와 클라이언트 시작하기... 1 1 2 2 6 7 1/11 BioStar 1, Windows 8 BioStar

More information

Remote UI Guide

Remote UI Guide Remote UI KOR Remote UI Remote UI PDF Adobe Reader/Adobe Acrobat Reader. Adobe Reader/Adobe Acrobat Reader Adobe Systems Incorporated.. Canon. Remote UI GIF Adobe Systems Incorporated Photoshop. ..........................................................

More information

Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Cras

Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Cras Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Crash Unity SDK... Log & Crash Search. - Unity3D v4.0 ios

More information

HLS(HTTP Live Streaming) 이용가이드 1. HLS 소개 Apple iphone, ipad, ipod의운영체제인 ios에서사용하는표준 HTTP 기반스트리밍프로토콜입니다. 2. HLS 지원대상 - 디바이스 : iphone/ipad/ipod - 운영체제 :

HLS(HTTP Live Streaming) 이용가이드 1. HLS 소개 Apple iphone, ipad, ipod의운영체제인 ios에서사용하는표준 HTTP 기반스트리밍프로토콜입니다. 2. HLS 지원대상 - 디바이스 : iphone/ipad/ipod - 운영체제 : HLS(HTTP Live Streaming) 이용가이드 1. HLS 소개 Apple iphone, ipad, ipod의운영체제인 ios에서사용하는표준 HTTP 기반스트리밍프로토콜입니다. 2. HLS 지원대상 - 디바이스 : iphone/ipad/ipod - 운영체제 : ios 3.0 이상 - 콘텐츠형식 : MP4 (H264,AAC ), MP3 * 디바이스별해상도,

More information

Microsoft Word - windows server 2003 수동설치_non pro support_.doc

Microsoft Word - windows server 2003 수동설치_non pro support_.doc Windows Server 2003 수동 설치 가이드 INDEX 운영체제 설치 준비과정 1 드라이버를 위한 플로피 디스크 작성 2 드라이버를 위한 USB 메모리 작성 7 운영체제 설치 과정 14 Boot Sequence 변경 14 컨트롤러 드라이버 수동 설치 15 운영체제 설치 17 운영체제 설치 준비 과정 Windows Server 2003 에는 기본적으로

More information

슬라이드 1

슬라이드 1 Pairwise Tool & Pairwise Test NuSRS 200511305 김성규 200511306 김성훈 200614164 김효석 200611124 유성배 200518036 곡진화 2 PICT Pairwise Tool - PICT Microsoft 의 Command-line 기반의 Free Software www.pairwise.org 에서다운로드후설치

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Deep Learning 작업환경조성 & 사용법 ISL 안재원 Ubuntu 설치 작업환경조성 접속방법 사용예시 2 - ISO file Download www.ubuntu.com Ubuntu 설치 3 - Make Booting USB Ubuntu 설치 http://www.pendrivelinux.com/universal-usb-installer-easy-as-1-2-3/

More information

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D313939392D382E687770>

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D313939392D382E687770> i ii iii iv v vi 1 2 3 4 가상대학 시스템의 국내외 현황 조사 가상대학 플랫폼 개발 이상적인 가상대학시스템의 미래상 제안 5 웹-기반 가상대학 시스템 전통적인 교수 방법 시간/공간 제약을 극복한 학습동기 부여 교수의 일방적인 내용전달 교수와 학생간의 상호작용 동료 학생들 간의 상호작용 가상대학 운영 공지사항,강의록 자료실, 메모 질의응답,

More information

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher( 실행할페이지.jsp); 다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp"); dispatcher.forward(request, response); - 위의예에서와같이 RequestDispatcher

More information

1. What is AX1 AX1 Program은 WIZnet 사의 Hardwired TCP/IP Chip인 iinchip 들의성능평가및 Test를위해제작된 Windows 기반의 PC Program이다. AX1은 Internet을통해 iinchip Evaluation

1. What is AX1 AX1 Program은 WIZnet 사의 Hardwired TCP/IP Chip인 iinchip 들의성능평가및 Test를위해제작된 Windows 기반의 PC Program이다. AX1은 Internet을통해 iinchip Evaluation 1. What is AX1 AX1 Program은 WIZnet 사의 Hardwired TCP/IP Chip인 iinchip 들의성능평가및 Test를위해제작된 Windows 기반의 PC Program이다. AX1은 Internet을통해 iinchip Evaluation Board(EVB B/D) 들과 TCP/IP Protocol로연결되며, 연결된 TCP/IP

More information

슬라이드 1

슬라이드 1 NeoDeveloper 설치가이드 차례 1. 환경 3 2. 설치 3 2.1 웹서버설치 3 Tomcat 7 3 JDK 1.6 3 2.2 NeoDeveloper 설치 3 Neo Developer 서버구성 3 Demo용 User Application 구성 4 Neo Developer 서버 Data File 4 Client 개발 Tool 설치 4 3. 설정 5 3.1

More information

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate ALTIBASE HDB 6.1.1.5.6 Patch Notes 목차 BUG-39240 offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG-41443 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate 한뒤, hash partition

More information

< 목차 > Ⅰ. 개요 3 Ⅱ. 실시간스팸차단리스트 (RBL) ( 간편설정 ) 4 1. 메일서버 (Exchange Server 2007) 설정변경 4 2. 스팸차단테스트 10

< 목차 > Ⅰ. 개요 3 Ⅱ. 실시간스팸차단리스트 (RBL) ( 간편설정 ) 4 1. 메일서버 (Exchange Server 2007) 설정변경 4 2. 스팸차단테스트 10 (https://www.kisarbl.or.kr) < 목차 > Ⅰ. 개요 3 Ⅱ. 실시간스팸차단리스트 (RBL) ( 간편설정 ) 4 1. 메일서버 (Exchange Server 2007) 설정변경 4 2. 스팸차단테스트 10 Ⅰ. 개요 실시간스팸차단리스트 (RBL) 는메일서버를운영하는누구나손쉽게효과적으로스팸수신을차단하는데이용할수있도록한국인터넷진흥원 (KISA)

More information

1. Windows 설치 (Client 설치 ) 원하는위치에다운받은발송클라이언트압축파일을해제합니다. Step 2. /conf/config.xml 파일수정 conf 폴더에서 config.xml 파일을텍스트에디터를이용하여 Open 합니다. config.xml 파일에서, 아

1. Windows 설치 (Client 설치 ) 원하는위치에다운받은발송클라이언트압축파일을해제합니다. Step 2. /conf/config.xml 파일수정 conf 폴더에서 config.xml 파일을텍스트에디터를이용하여 Open 합니다. config.xml 파일에서, 아 LG U+ SMS/MMS 통합클라이언트 LG U+ SMS/MMS Client Simple Install Manual LG U+ SMS/MMS 통합클라이언트 - 1 - 간단설치매뉴얼 1. Windows 설치 (Client 설치 ) 원하는위치에다운받은발송클라이언트압축파일을해제합니다. Step 2. /conf/config.xml 파일수정 conf 폴더에서 config.xml

More information

C# Programming Guide - Types

C# Programming Guide - Types C# Programming Guide - Types 최도경 lifeisforu@wemade.com 이문서는 MSDN 의 Types 를요약하고보충한것입니다. http://msdn.microsoft.com/enus/library/ms173104(v=vs.100).aspx Types, Variables, and Values C# 은 type 에민감한언어이다. 모든

More information

BY-FDP-4-70.hwp

BY-FDP-4-70.hwp RS-232, RS485 FND Display Module BY-FDP-4-70-XX (Rev 1.0) - 1 - 1. 개요. 본 Display Module은 RS-232, RS-485 겸용입니다. Power : DC24V, DC12V( 주문사양). Max Current : 0.6A 숫자크기 : 58mm(FND Size : 70x47mm 4 개) RS-232,

More information

1. efolder 시스템구성 A. DB B. apache - mod-perl - PHP C. SphinxSearch ( 검색서비스 ) D. File Storage 2. efolder 설치순서 A. DB (MySQL) B. efolder Service - efolder

1. efolder 시스템구성 A. DB B. apache - mod-perl - PHP C. SphinxSearch ( 검색서비스 ) D. File Storage 2. efolder 설치순서 A. DB (MySQL) B. efolder Service - efolder Embian efolder 설치가이드 efolder 시스템구성 efolder 설치순서 Installation commands 1. efolder 시스템구성 A. DB B. apache - mod-perl - PHP C. SphinxSearch ( 검색서비스 ) D. File Storage 2. efolder 설치순서 A. DB (MySQL) B. efolder

More information

Webtob( 멀티도메인 ) SSL 인증서갱신설치가이드 본문서는주식회사한국기업보안에서 SSL 보안서버인증서설치를위해작성된문서로 주식회사한국기업보안의동의없이무단으로사용하실수없습니다. [ 고객센터 ] 한국기업보안. 유서트기술팀 Copyright 201

Webtob( 멀티도메인 ) SSL 인증서갱신설치가이드 본문서는주식회사한국기업보안에서 SSL 보안서버인증서설치를위해작성된문서로 주식회사한국기업보안의동의없이무단으로사용하실수없습니다. [ 고객센터 ] 한국기업보안. 유서트기술팀 Copyright 201 Webtob( 멀티도메인 ) SSL 인증서갱신설치가이드. [ 고객센터 ] 한국기업보안. 유서트기술팀 02-512-9375 멀티및와일드인증서의경우포트번호를동일하게설정이가능하다. (https 통신으로 443 으로통일가능 ) 1. 발급받으신인증서를해당 SSL 폴더에업로드또는저장합니다. [root@localhost New]$ cp star.ucert.co.kr* /webtob/ssl

More information

Microsoft Word - src.doc

Microsoft Word - src.doc IPTV 서비스탐색및콘텐츠가이드 RI 시스템운용매뉴얼 목차 1. 서버설정방법... 5 1.1. 서비스탐색서버설정... 5 1.2. 컨텐츠가이드서버설정... 6 2. 서버운용방법... 7 2.1. 서비스탐색서버운용... 7 2.1.1. 서비스가이드서버실행... 7 2.1.2. 서비스가이드정보확인... 8 2.1.3. 서비스가이드정보추가... 9 2.1.4. 서비스가이드정보삭제...

More information

PRO1_04E [읽기 전용]

PRO1_04E [읽기 전용] Siemens AG 1999 All rights reserved File: PRO1_04E1 Information and S7-300 2 S7-400 3 EPROM / 4 5 6 HW Config 7 8 9 CPU 10 CPU : 11 CPU : 12 CPU : 13 CPU : / 14 CPU : 15 CPU : / 16 HW 17 HW PG 18 SIMATIC

More information

OPCTalk for Hitachi Ethernet 1 2. Path. DCOMwindow NT/2000 network server. Winsock update win95. . . 3 Excel CSV. Update Background Thread Client Command Queue Size Client Dynamic Scan Block Block

More information

<31332DB9E9C6AEB7A2C7D8C5B72D3131C0E528BACEB7CF292E687770>

<31332DB9E9C6AEB7A2C7D8C5B72D3131C0E528BACEB7CF292E687770> 보자. 이제 v4.6.2-1 로업데이트됐다. 그림 F-15의하단처럼 msfupdate를입력해 root @bt:~# msfudpate 그림 F-16 과같이정상적으로업데이트가진행되는것을볼수있다. 이후에는 msfupdate를입력하면최신업데이트모듈과공격코드를쉽게유지할수있다. 그림 F-16 msfupdate의진행확인 G. SET 업데이트문제해결 백트랙을기본설치로운영을할때에는

More information

1217 WebTrafMon II

1217 WebTrafMon II (1/28) (2/28) (10 Mbps ) Video, Audio. (3/28) 10 ~ 15 ( : telnet, ftp ),, (4/28) UDP/TCP (5/28) centralized environment packet header information analysis network traffic data, capture presentation network

More information

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다.

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다. Eclipse 개발환경에서 WindowBuilder 를이용한 Java 프로그램개발 이예는 Java 프로그램의기초를이해하고있는사람을대상으로 Embedded Microcomputer 를이용한제어시스템을 PC 에서 Serial 통신으로제어 (Graphical User Interface (GUI) 환경에서 ) 하는프로그램개발예를설명한다. WindowBuilder:

More information

[Brochure] KOR_TunA

[Brochure] KOR_TunA LG CNS LG CNS APM (TunA) LG CNS APM (TunA) 어플리케이션의 성능 개선을 위한 직관적이고 심플한 APM 솔루션 APM 이란? Application Performance Management 란? 사용자 관점 그리고 비즈니스 관점에서 실제 서비스되고 있는 어플리케이션의 성능 관리 체계입니다. 이를 위해서는 신속한 장애 지점 파악 /

More information

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자 SQL Developer Connect to TimesTen 유니원아이앤씨 DB 팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 2010-07-28 작성자 김학준 최종수정일 2010-07-28 문서번호 20100728_01_khj 재개정이력 일자내용수정인버전

More information

DocsPin_Korean.pages

DocsPin_Korean.pages Unity Localize Script Service, Page 1 Unity Localize Script Service Introduction Application Game. Unity. Google Drive Unity.. Application Game. -? ( ) -? -?.. 준비사항 Google Drive. Google Drive.,.. - Google

More information

아래 항목은 최신( ) 이미지를 모두 제대로 설치하였을 때를 가정한다

아래 항목은 최신( ) 이미지를 모두 제대로 설치하였을 때를 가정한다 공유기사용환경에서 MNC-V100 환경설정하기 다음설명은 AnyGate GW-400A (Http://www.anygate.co.kr) 를사용하는네트워크환경에서 MNC-V100 을연결하여사용하는법을설명합니다. 공유기내부네트워크환경설정공유기를사용하는환경에서공유기의설정을아래그림과같이설정하시면 MNC-V100의설정을변경하지않아도모비캠과연결할수있습니다. ( 공유기의환경을변경하기어려운경우에는

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 1 Tizen 실습예제 : Remote Key Framework 시스템소프트웨어특론 (2014 년 2 학기 ) Sungkyunkwan University Contents 2 Motivation and Concept Requirements Design Implementation Virtual Input Device Driver 제작 Tizen Service 개발절차

More information

PWR PWR HDD HDD USB USB Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl Cable PC PC DDNS (

PWR PWR HDD HDD USB USB Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl Cable PC PC DDNS ( PWR PWR HDD HDD USB USB Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl Cable PC PC DDNS (http://ddns.hanwha-security.com) Step 1~5. Step, PC, DVR Step 1. Cable Step

More information

PCServerMgmt7

PCServerMgmt7 Web Windows NT/2000 Server DP&NM Lab 1 Contents 2 Windows NT Service Provider Management Application Web UI 3 . PC,, Client/Server Network 4 (1),,, PC Mainframe PC Backbone Server TCP/IP DCS PLC Network

More information

(SW3704) Gingerbread Source Build & Working Guide

(SW3704) Gingerbread Source Build & Working Guide (Mango-M32F4) Test Guide http://www.mangoboard.com/ http://cafe.naver.com/embeddedcrazyboys Crazy Embedded Laboratory www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 1 Document History

More information

MAX+plus II Getting Started - 무작정따라하기

MAX+plus II Getting Started - 무작정따라하기 무작정 따라하기 2001 10 4 / Version 20-2 0 MAX+plus II Digital, Schematic Capture MAX+plus II, IC, CPLD FPGA (Logic) ALTERA PLD FLEX10K Series EPF10K10QC208-4 MAX+plus II Project, Schematic, Design Compilation,

More information

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx To be an Android Expert 문양세강원대학교 IT 대학컴퓨터학부 Eclipse (IDE) JDK Android SDK with ADT IDE: Integrated Development Environment JDK: Java Development Kit (Java SDK) ADT: Android Development Tools 2 JDK 설치 Eclipse

More information

Sena Device Server Serial/IP TM Version

Sena Device Server Serial/IP TM Version Sena Device Server Serial/IP TM Version 1.0.0 2005. 3. 7. Release Note Revision Date Name Description V1.0.0 2005-03-7 HJ Jeon Serial/IP 4.3.2 ( ) 210 137-130, : (02) 573-5422 : (02) 573-7710 email: support@sena.com

More information

YUM(Yellowdog Updater,Modified) : RPM 패키지가저장된서버 ( 저장소 ) 로부터원하는패키지를자동으로설치한다. : YUM 도구는 RPM 의패키지의존성문제를해결

YUM(Yellowdog Updater,Modified) : RPM 패키지가저장된서버 ( 저장소 ) 로부터원하는패키지를자동으로설치한다. : YUM 도구는 RPM 의패키지의존성문제를해결 YUM(Yellowdog Updater,Modified) : RPM 패키지가저장된서버 ( 저장소 ) 로부터원하는패키지를자동으로설치한다. : YUM 도구는 RPM 의패키지의존성문제를해결해주어 RPM 패키지설치시자동적으로의존성문제를 처리하여 RPM 패키지를안전하게설치, 제거, 업그레이드등의작업을스스로하는도구 YUM 설정 (/etc/yum.conf) [main]

More information

28 THE ASIAN JOURNAL OF TEX [2] ko.tex [5]

28 THE ASIAN JOURNAL OF TEX [2] ko.tex [5] The Asian Journal of TEX, Volume 3, No. 1, June 2009 Article revision 2009/5/7 KTS THE KOREAN TEX SOCIETY SINCE 2007 2008 ko.tex Installing TEX Live 2008 and ko.tex under Ubuntu Linux Kihwang Lee * kihwang.lee@ktug.or.kr

More information

TTA Journal No.157_서체변경.indd

TTA Journal No.157_서체변경.indd 표준 시험인증 기술 동향 FIDO(Fast IDentity Online) 생체 인증 기술 표준화 동향 이동기 TTA 모바일응용서비스 프로젝트그룹(PG910) 의장 SK텔레콤 NIC 담당 매니저 76 l 2015 01/02 PASSWORDLESS EXPERIENCE (UAF standards) ONLINE AUTH REQUEST LOCAL DEVICE AUTH

More information

ETL_project_best_practice1.ppt

ETL_project_best_practice1.ppt ETL ETL Data,., Data Warehouse DataData Warehouse ETL tool/system: ETL, ETL Process Data Warehouse Platform Database, Access Method Data Source Data Operational Data Near Real-Time Data Modeling Refresh/Replication

More information

Apache install guide

Apache install guide APACHE INSTALL GUIDE 2.X.X VERSION INAMES CO. LTD. 목차 1. 사전준비 mod_ssl OpenSSL 인증서파일 4. 확인및테스트 서비스구동확인 네트워크상태확인 방화벽확인 실제브라우저테스트 2. 주의사항 신규및갱신구분 CSR 직접생성여부 5. 이슈 *:80 443 포트 VirtualHost 대상 Error_log 3. 인증서설치

More information

4S 1차년도 평가 발표자료

4S 1차년도 평가 발표자료 모바일 S/W 프로그래밍 안드로이드개발환경설치 2012.09.05. 오병우 모바일공학과 JDK (Java Development Kit) SE (Standard Edition) 설치순서 Eclipse ADT (Android Development Tool) Plug-in Android SDK (Software Development Kit) SDK Components

More information

ICAS CADWorx SPLM License 평가판설치가이드

ICAS CADWorx SPLM License 평가판설치가이드 ICAS CADWorx SPLM License 평가판설치가이드 CADWorx SPLM License 평가판설치가이드 설치권장사항 Operating System Compatibility ( 반드시 AutoCAD 가설치되어있어야합니다.) 추천시스템 3.0 GHz Intel Pentium IV or greater Windows XP Professional or later

More information

DE1-SoC Board

DE1-SoC Board 실습 1 개발환경 DE1-SoC Board Design Tools - Installation Download & Install Quartus Prime Lite Edition http://www.altera.com/ Quartus Prime (includes Nios II EDS) Nios II Embedded Design Suite (EDS) is automatically

More information

<3833C8A35FB0F8C7D05FC6AEB7BBB5E55F F466C6F77B8A65FC8B0BFEBC7D15FC8BFB0FAC0FBC0CE5FBCD2BDBA5FC7FCBBF35FB0FCB8AE5F F322E687770>

<3833C8A35FB0F8C7D05FC6AEB7BBB5E55F F466C6F77B8A65FC8B0BFEBC7D15FC8BFB0FAC0FBC0CE5FBCD2BDBA5FC7FCBBF35FB0FCB8AE5F F322E687770> 2014.2.10.[ 제 83 호 ] GIT Flow 를활용한효과적인소스형상관리 Part 2 : GIT Flow 실습과활용예제 소프트웨어공학센터경영지원 TF 팀 C o n t e n t s Ⅰ. GIT Flow 소개 Ⅱ. Branch 전략 Ⅲ. 실제사용예제 Ⅳ. 결론 SW 공학트렌드 동향분석 Webzine Ⅲ. 실제사용예제 1. GIT Flow 사용준비 GIT

More information

Backup Exec

Backup Exec (sjin.kim@veritas.com) www.veritas veritas.co..co.kr ? 24 X 7 X 365 Global Data Access.. 100% Storage Used Terabytes 9 8 7 6 5 4 3 2 1 0 2000 2001 2002 2003 IDC (TB) 93%. 199693,000 TB 2000831,000 TB.

More information

리눅스기초

리눅스기초 1 목차 Github 개요 Github 계정만들기 Github 저장소만들기 Github 저장소를이용한작업하기 팀구성하여공동작업하기 2 System Security Lab@Myongji Univ. GitHub github.com git 기반의공개 SW 호스팅사이트 웹사이트를통해팀프로젝트에필요한유용한기능을제공 소스코드, 커밋히스토리, 브랜치등을확인 이슈추적하기

More information

단계

단계 본문서에서는 Tibero RDBMS 에서제공하는 Oracle DB Link 를위한 gateway 설치및설정방법과 Oracle DB Link 사용법을소개한다. Contents 1. TIBERO TO ORACLE DB LINK 개요... 3 1.1. GATEWAY 란... 3 1.2. ORACLE GATEWAY... 3 1.3. GATEWAY 디렉터리구조...

More information

게시판 스팸 실시간 차단 시스템

게시판 스팸 실시간 차단 시스템 오픈 API 2014. 11-1 - 목 차 1. 스팸지수측정요청프로토콜 3 1.1 스팸지수측정요청프로토콜개요 3 1.2 스팸지수측정요청방법 3 2. 게시판스팸차단도구오픈 API 활용 5 2.1 PHP 5 2.1.1 차단도구오픈 API 적용방법 5 2.1.2 차단도구오픈 API 스팸지수측정요청 5 2.1.3 차단도구오픈 API 스팸지수측정결과값 5 2.2 JSP

More information

BEA_WebLogic.hwp

BEA_WebLogic.hwp BEA WebLogic Server SSL 설정방법 - Ver 1.0-2008. 6 개정이력 버전개정일개정내용 Ver 1.0 2008 년 6 월 BEA WebLogic Server SSL 설명서최초작성 본문서는정보통신부 한국정보보호진흥원의 보안서버구축가이드 를참고하여작성되었습니다. 본문서내용의무단도용및사용을금합니다. < 목차 > 1. 개인키및 CSR 생성방법

More information

XCom v2.x User's Manual

XCom v2.x User's Manual Linkgenesis Co., Ltd. ( 주 ) 링크제니시스 Protection Key Guide for XCom SECS Driver v2.x XCom SECS Driver v2.x Protection Key Manual Document v2.1.1k 목차 XCOM PROTECTION KEY 개요... 1 XCOM PROTECTION KEY 개요...

More information

MySQL-Ch10

MySQL-Ch10 10 Chapter.,,.,, MySQL. MySQL mysqld MySQL.,. MySQL. MySQL....,.,..,,.,. UNIX, MySQL. mysqladm mysqlgrp. MySQL 608 MySQL(2/e) Chapter 10 MySQL. 10.1 (,, ). UNIX MySQL, /usr/local/mysql/var, /usr/local/mysql/data,

More information

아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상

아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상 Android 용 Brother Image Viewer 설명서 버전 0 KOR 아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상표입니다. Android는

More information

슬라이드 1

슬라이드 1 UGENS SNC Techinical Report OEL6 + 12C RAC 사원최재정 UGENS SNC 목차 1. 12c 설치된곳에자료수집 2. SERVER DB 삭제 3. 12c grid 설치 4. oracle 12c 설치 5. 확인 2 Vi.bash_profile if [ -f ~/.bashrc ]; then. ~/.bashrc fi # User specific

More information

Splentec V-WORM Quick Installation Guide Version: 1.0 Contact Information 올리브텍 주소 : 경기도성남시분당구구미로 11 ( 포인트타운 701호 ) URL: E-M

Splentec V-WORM Quick Installation Guide Version: 1.0 Contact Information 올리브텍 주소 : 경기도성남시분당구구미로 11 ( 포인트타운 701호 ) URL:   E-M Splentec V-WORM Quick Installation Guide Version: 1.0 Contact Information 올리브텍 주소 : 경기도성남시분당구구미로 11 ( 포인트타운 701호 ) URL: http://www.olivetech.co.kr E-Mail: tech@olivetech.co.kr TEL: 031-726-4217 FAX: 031-726-4219

More information

4. CSR 값확인. (vi csr.pem) CSR(Certificate Signing Request) 즉, 인증서서명요청입니다. 이는자신이설치할웹서버에서 DN 값, 각종정보를암호화한파일로써 한국전자인증 신청란에서붙여넣으면됩니다. 인증서설치 1. 직접 CSR 및 KEY

4. CSR 값확인. (vi csr.pem) CSR(Certificate Signing Request) 즉, 인증서서명요청입니다. 이는자신이설치할웹서버에서 DN 값, 각종정보를암호화한파일로써 한국전자인증 신청란에서붙여넣으면됩니다. 인증서설치 1. 직접 CSR 및 KEY 키생성및 CSR 생성 키생성을위해 OpenSSL 설치디렉토리에서아래명령대로생성 1. 랜덤넘버생성 $ openssl md5 * > rand.dat 2. 키쌍생성 openssl genrsa -rand rand.cat -des3 1024 > key.pem 3. 생성된키쌍을이용하여 CSR 생성 openssl req -new -key key.pem > csr.pem

More information

USB USB DV25 DV25 REC SRN-475S REC SRN-475S LAN POWER LAN POWER Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl C

USB USB DV25 DV25 REC SRN-475S REC SRN-475S LAN POWER LAN POWER Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl C USB USB DV25 DV25 REC SRN-475S REC SRN-475S LAN POWER LAN POWER Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl Cable PC PC Step 1~5. Step, PC, DVR Step 1. Cable Step

More information

chapter4

chapter4 Basic Netw rk 1. ก ก ก 2. 3. ก ก 4. ก 2 1. 2. 3. 4. ก 5. ก 6. ก ก 7. ก 3 ก ก ก ก (Mainframe) ก ก ก ก (Terminal) ก ก ก ก ก ก ก ก 4 ก (Dumb Terminal) ก ก ก ก Mainframe ก CPU ก ก ก ก 5 ก ก ก ก ก ก ก ก ก ก

More information

메뉴얼41페이지-2

메뉴얼41페이지-2 데이터 기반 맞춤형 성장관리 솔루션 스마트빌 플러스 은행계좌등록 은행계좌를 조회하여 등록합니다. 신용카드등록 신용카드를 조회하여 등록합니다. 금융정보 자동수집을 위하여 인증서이름, 아이디, 비밀번호를 등록합니다. 통합 자동 수집 금융정보 통합 자동수집을 실행합니다 은행계좌등록 은행계좌를 조회하여 등록합니다. 신용카드등록 신용카드를 조회하여

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 (Host) set up : Linux Backend RS-232, Ethernet, parallel(jtag) Host terminal Target terminal : monitor (Minicom) JTAG Cross compiler Boot loader Pentium Redhat 9.0 Serial port Serial cross cable Ethernet

More information

Interstage5 SOAP서비스 설정 가이드

Interstage5 SOAP서비스 설정 가이드 Interstage 5 Application Server ( Solaris ) SOAP Service Internet Sample Test SOAP Server Application SOAP Client Application CORBA/SOAP Server Gateway CORBA/SOAP Gateway Client INTERSTAGE SOAP Service

More information

Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일

Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일 Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 Introduce Me!!! Job Jeju National University Student Ubuntu Korean Jeju Community Owner E-Mail: ned3y2k@hanmail.net Blog: http://ned3y2k.wo.tc Facebook: http://www.facebook.com/gyeongdae

More information

목차 1. 사전준비 mod_ssl OpenSSL 인증서파일 2. 주의사항 신규및갱신구분 CSR 직접생성여부 3. 인증서설치 httpd.conf 설정 httpd-ssl.conf 설정 갱신설치 서비스재시작 4. 확인및테스트 서비스구동확인 네트워크상태확인 방화벽확인 실제브라

목차 1. 사전준비 mod_ssl OpenSSL 인증서파일 2. 주의사항 신규및갱신구분 CSR 직접생성여부 3. 인증서설치 httpd.conf 설정 httpd-ssl.conf 설정 갱신설치 서비스재시작 4. 확인및테스트 서비스구동확인 네트워크상태확인 방화벽확인 실제브라 APACHE INSTALL GUIDE 1.3.X VERSION -ANYCERT- 목차 1. 사전준비 mod_ssl OpenSSL 인증서파일 2. 주의사항 신규및갱신구분 CSR 직접생성여부 3. 인증서설치 httpd.conf 설정 httpd-ssl.conf 설정 갱신설치 서비스재시작 4. 확인및테스트 서비스구동확인 네트워크상태확인 방화벽확인 실제브라우저테스트

More information

Polly_with_Serverless_HOL_hyouk

Polly_with_Serverless_HOL_hyouk { } "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "polly:synthesizespeech", "dynamodb:query", "dynamodb:scan", "dynamodb:putitem", "dynamodb:updateitem", "sns:publish", "s3:putobject",

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 1.About GIT 박재석대표 / 투씨드 1. About GIT History 2005 년리누스토발즈에의해 Linux 커널프로젝트지원을위해제작된버전관리도구 12 년간지속적인발전및꾸준한성장세 1. About GIT Concept 분산형버전관리시스템 Reverse Delta 방식이아닌변경에대한 Snapshot 방식 1. About GIT Architecture

More information

Week13

Week13 Week 13 Social Data Mining 02 Joonhwan Lee human-computer interaction + design lab. Crawling Twitter Data OAuth Crawling Data using OpenAPI Advanced Web Crawling 1. Crawling Twitter Data Twitter API API

More information

<4D F736F F F696E74202D C61645FB3EDB8AEC7D5BCBA20B9D720C5F8BBE7BFEBB9FD2E BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D C61645FB3EDB8AEC7D5BCBA20B9D720C5F8BBE7BFEBB9FD2E BC8A3C8AF20B8F0B5E55D> VHDL 프로그래밍 D. 논리합성및 Xilinx ISE 툴사용법 학습목표 Xilinx ISE Tool 을이용하여 Xilinx 사에서지원하는해당 FPGA Board 에맞는논리합성과정을숙지 논리합성이가능한코드와그렇지않은코드를구분 Xilinx Block Memory Generator를이용한 RAM/ ROM 생성하는과정을숙지 2/31 Content Xilinx ISE

More information

IRISCard Anywhere 5

IRISCard Anywhere 5 이 빠른 사용자 가이드는 IRISCard Anywhere 5 및 IRISCard Corporate 5 스캐너의 설치와 시작을 도와 드립니다. 이 스캐너와 함께 제공되는 소프트웨어는: - Cardiris Pro 5 및 Cardiris Corporate 5 for CRM (Windows 용) - Cardiris Pro 4 (Mac OS 용) Cardiris 의

More information

김기남_ATDC2016_160620_[키노트].key

김기남_ATDC2016_160620_[키노트].key metatron Enterprise Big Data SKT Metatron/Big Data Big Data Big Data... metatron Ready to Enterprise Big Data Big Data Big Data Big Data?? Data Raw. CRM SCM MES TCO Data & Store & Processing Computational

More information

bn2019_2

bn2019_2 arp -a Packet Logging/Editing Decode Buffer Capture Driver Logging: permanent storage of packets for offline analysis Decode: packets must be decoded to human readable form. Buffer: packets must temporarily

More information

Microsoft Word - Armjtag_문서1.doc

Microsoft Word - Armjtag_문서1.doc ARM JTAG (wiggler 호환 ) 사용방법 ( IAR EWARM 에서 ARM-JTAG 로 Debugging 하기 ) Test Board : AT91SAM7S256 IAR EWARM : Kickstart for ARM ARM-JTAG : ver 1.0 ( 씨링크테크 ) 1. IAR EWARM (Kickstart for ARM) 설치 2. Macraigor

More information

희망브리지

희망브리지 Building Your First Amazon VPC V3.5 2016.10 Index 01. Overview 02. Create the base VPC 03. Launch EC2 instances 04. Manually create public & private subnet 05. Launch a bastion windows host 06. Connect

More information

API 매뉴얼

API 매뉴얼 PCI-DIO12 API Programming (Rev 1.0) Windows, Windows2000, Windows NT and Windows XP are trademarks of Microsoft. We acknowledge that the trademarks or service names of all other organizations mentioned

More information

Microsoft PowerPoint 웹 연동 기술.pptx

Microsoft PowerPoint 웹 연동 기술.pptx 웹프로그래밍및실습 ( g & Practice) 문양세강원대학교 IT 대학컴퓨터과학전공 URL 분석 (1/2) URL (Uniform Resource Locator) 프로토콜, 호스트, 포트, 경로, 비밀번호, User 등의정보를포함 예. http://kim:3759@www.hostname.com:80/doc/index.html URL 을속성별로분리하고자할경우

More information

6. 설치가시작되는동안 USB 드라이버가자동으로로드됩니다. USB 드라이버가성공적으로로드되면 Setup is starting( 설치가시작되는중 )... 화면이표시됩니다. 7. 화면지침에따라 Windows 7 설치를완료합니다. 방법 2: 수정된 Windows 7 ISO

6. 설치가시작되는동안 USB 드라이버가자동으로로드됩니다. USB 드라이버가성공적으로로드되면 Setup is starting( 설치가시작되는중 )... 화면이표시됩니다. 7. 화면지침에따라 Windows 7 설치를완료합니다. 방법 2: 수정된 Windows 7 ISO Windows 7 설치및 PCIE RAID 설정정보 DK173 초판 11월 2016 A. Windows 7 및 USB 드라이버설치 칩셋사양에따라 Windows 7 설치중에 USB 키보드 / 마우스를사용하려면시스템에서 USB 드라이버를사전로드해야합니다. 이절에서는 USB 드라이버사전로드방법과 Windows 7 설치방법에대해서설명합니다. 방법 1: SATA ODD

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 BOOTLOADER Jo, Heeseung 부트로더컴파일 부트로더소스복사및압축해제 부트로더소스는웹페이지에서다운로드 /working 디렉터리로이동한후, wget으로다운로드 이후작업은모두 /working 디렉터리에서진행 root@ubuntu:# cp /media/sm5-linux-111031/source/platform/uboot-s4210.tar.bz2 /working

More information

Microsoft PowerPoint - 11주차_Android_GoogleMap.ppt [호환 모드]

Microsoft PowerPoint - 11주차_Android_GoogleMap.ppt [호환 모드] Google Map View 구현 학습목표 교육목표 Google Map View 구현 Google Map 지원 Emulator 생성 Google Map API Key 위도 / 경도구하기 위도 / 경도에따른 Google Map View 구현 Zoom Controller 구현 Google Map View (1) () Google g Map View 기능 Google

More information

SK IoT IoT SK IoT onem2m OIC IoT onem2m LG IoT SK IoT KAIST NCSoft Yo Studio tidev kr 5 SK IoT DMB SK IoT A M LG SDS 6 OS API 7 ios API API BaaS Backend as a Service IoT IoT ThingPlug SK IoT SK M2M M2M

More information