PowerPoint 프레젠테이션

Similar documents
loopchain_SCORE_dev

말은 많은 Blockchain 2

User interface design

PowerPoint 프레젠테이션

Portal_9iAS.ppt [읽기 전용]

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D D382E687770>

[Brochure] KOR_TunA

Yggdrash White Paper Kr_ver 0.18


Mobile Service > IAP > Android SDK [ ] IAP SDK TOAST SDK. IAP SDK. Android Studio IDE Android SDK Version (API Level 10). Name Reference V

Security Issues in the Blockchain as a Service Platform 2019년 8월 30일 ( 금 ) 람다256 오재훈

AGENDA 모바일 산업의 환경변화 모바일 클라우드 서비스의 등장 모바일 클라우드 서비스 융합사례

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

Chap7.PDF

Secure Programming Lecture1 : Introduction

Intro to Servlet, EJB, JSP, WS

I T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r

Interstage5 SOAP서비스 설정 가이드

PowerPoint 프레젠테이션

- 목차 - 1. 개요 가. 아이콘 (ICON) 이란? 나. 주요스펙 1) 기본정보 2) 시장정보 2. 주요팀멤버및재단소개 3. ICON 컨셉및특징 - 독자적인블록체인기술, Loopchain - ICON의블록체인네트워크, 넥서스 (NEXUS) - IISS (ICON I

PCServerMgmt7

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

1217 WebTrafMon II

쿠폰형_상품소개서

ecorp-프로젝트제안서작성실무(양식3)

MS-SQL SERVER 대비 기능

제11장 프로세스와 쓰레드

<4D F736F F D205B4354BDC9C3FEB8AEC6F7C6AE5D3131C8A35FC5ACB6F3BFECB5E520C4C4C7BBC6C320B1E2BCFA20B5BFC7E2>

JavaGeneralProgramming.PDF

Luniverse 사용법 교육자료 presented by Lambda256

thesis

왜 2.0 인가? 비트코인이 아직 발전의 초기단계라면 왜 벌써 이를 뛰어넘는 2.0 플랫폼이 필요한 것일까? 우선 비트코인 기술자체가 완성된 것이 아니고 지속적인 개선과 발전이 필요. 하지만 비트코인은 이미 50억달러가 넘는 경제적 이해관계가 걸려 있는 네트웤. 1차적

Network seminar.key

C# Programming Guide - Types

Egretia_White_Paper_KR_V1.1.pages

SMB_ICMP_UDP(huichang).PDF

Oracle9i Real Application Clusters

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

Intra_DW_Ch4.PDF

PowerPoint Presentation

untitled

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론

Web Application Hosting in the AWS Cloud Contents 개요 가용성과 확장성이 높은 웹 호스팅은 복잡하고 비용이 많이 드는 사업이 될 수 있습니다. 전통적인 웹 확장 아키텍처는 높은 수준의 안정성을 보장하기 위해 복잡한 솔루션으로 구현

Service-Oriented Architecture Copyright Tmax Soft 2005


No Slide Title

최근 블로그

Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3

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

J2EE & Web Services iSeminar


- 목차 - - ios 개발환경및유의사항. - 플랫폼 ios Project. - Native Controller와플랫폼화면연동. - 플랫폼 Web(js)-Native 간데이터공유. - 플랫폼확장 WN Interface 함수개발. - Network Manager clas

월간 CONTENTS 3 EXPERT COLUMN 영화 점퍼 와 트로이목마 4 SPECIAL REPORT 패치 관리의 한계와 AhnLab Patch Management 핵심은 패치 관리, 왜? 8 HOT ISSUE 2016년에 챙겨봐야 할 개인정보보호

슬라이드 1

서현수

bn2019_2

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

loopchain_교육_ _v0.5

Microsoft PowerPoint - Smart CRM v4.0_TM 소개_ pptx

공정한합의알고리즘 : deb 합의알고리즘 (A fair consensus algorithm : deb consensus algorithm) 목차 1. 개요 2. 합의알고리즘의공정성 3. deb 합의알고리즘 4. 공정한노드의역할및신뢰성검증 5. 성능 6. deb 합의알고

API 매뉴얼

untitled

1

RED HAT JBoss Data Grid (JDG)? KANGWUK HEO Middleware Solu6on Architect Service Team, Red Hat Korea 1

Microsoft PowerPoint - 6.pptx

새로운 생태계

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

Microsoft Word - 08_01_블록체인.docx

TTA Verified : HomeGateway :, : (NEtwork Testing Team)

클라우드컴퓨팅확산에따른국내경제시사점 클라우드컴퓨팅확산에따른국내경제시사점 * 1) IT,,,, Salesforce.com SaaS (, ), PaaS ( ), IaaS (, IT ), IT, SW ICT, ICT IT ICT,, ICT, *, (TEL)

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

PowerPoint 프레젠테이션

Microsoft PowerPoint - e pptx

HTML5가 웹 환경에 미치는 영향 고 있어 웹 플랫폼 환경과는 차이가 있다. HTML5는 기존 HTML 기반 웹 브라우저와의 호환성을 유지하면서도, 구조적인 마크업(mark-up) 및 편리한 웹 폼(web form) 기능을 제공하고, 리치웹 애플리케이 션(RIA)을

User Guide

Microsoft Word - 조병호

WeToken白皮书

Agenda 오픈소스 트렌드 전망 Red Hat Enterprise Virtualization Red Hat Enterprise Linux OpenStack Platform Open Hybrid Cloud

요약 1

자바-11장N'1-502

PowerPoint 프레젠테이션

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

Microsoft PowerPoint - web-part03-ch19-node.js기본.pptx

신림프로그래머_클린코드.key

thesis

The Self-Managing Database : Automatic Health Monitoring and Alerting

Mango220 Android How to compile and Transfer image to Target

PowerPoint Presentation

기술 이력서 2.0

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

DBPIA-NURIMEDIA

09-interface.key

02 C h a p t e r Java



초보자를 위한 분산 캐시 활용 전략

ibmdw_rest_v1.0.ppt

놀이동산미아찾기시스템

DW 개요.PDF

FMX M JPG 15MB 320x240 30fps, 160Kbps 11MB View operation,, seek seek Random Access Average Read Sequential Read 12 FMX () 2

Transcription:

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 Application의약자로블록체인기술을활용한탈중앙화된어플리케이션. 코드가탈중앙화된 peer-to-peer network 위에서작동하고, 데이터호출및등록을블록체인데이터베이스로사용하는애플리케이션. 블록체인에 DApp이저장되며, EVM이 DApp을실행시키고, 처리결과들을블록체인에기록. 누구나실행가능하며, 셧다운이없고, 접속제한도없음.

Web App Architecture I. Dapp 이란무엇인가 Web 브라우저 HTML/CSS/Javascript Apache/Nginx Webserver Server Code Java, Python, Ruby DB Cache

Ethereum Dapp Architecture I. Dapp 이란무엇인가 Dapp 브라우저 Dapp 브라우저 HTML/CSS/Javascript Web3js Apache/Nginx Webserver HTML/CSS/Javascript Web3js Apache/Nginx Webserver EVM EVM Blockchain (account data, contract code) Blockchain (account data, contract code) Ethereum Dapp Instance 1 Ethereum Dapp Instance 2

DApp 과프로토콜 I. Dapp 이란무엇인가 프로토콜 (Protocol) 이란? 프로토콜 (Protocol) 또는통신규약은우리가통신하는방식을의미. 인터넷에서대표적인프로토콜은 TCP(Transmission Control Protocol) 과 IP(Internet Protocol). 블록체인에서프로토콜의의미 블록체인기술을바탕으로비트코인과이더리움이만들어졌음. 비트코인, 이더리움등이각노드 (Node) 들을연결하는방식을프로토콜로지칭. Joel Monegro 의 Fat Protocol

DApp 과프로토콜 I. Dapp 이란무엇인가 Technology Blockchain Protocol Ethereum EOS Loopchain Qtum Coin ETH EOS ICON (loopchain based coin) QTM Dapp Cryptokitties Mithril (Plactal) Bluewhale Mediblock

II. DApp 체크리스트

2.1 체크리스트 II. Dapp 체크리스트 신뢰받는제 3 자가필요한아이디어인가? 동일한데이터가분산저장되어야하는가? 거래의투명성이필요한아이디어인가? 의사결정이타인에의해이루어져도되는아이디어인가? 빠른처리속도가필요한아이디어인가? 10

2.1.1 신뢰받는제 3 자가필요한아이디어인가? II. Dapp 체크리스트 블록체인은신뢰받는제 3 의중개기관을배제시킬수있음. 중개은행 은행 A 은행 B 다양한경제주체들이개입되어있는비지니스에서서로간의신뢰가필요할때신뢰받는제 3의중개기관이개입되어신뢰문제를해결하고있다. 에스크로서비스, 은행간해외송금시중개기관, 공인인증서발급등이신뢰를제공하는제 3자의역할을하는것이다. 블록체인이신뢰가필요한산업의해결책이되기위해서는신뢰받는제 3의중개기관이있음으로산업의비효율성을초래하고있는지산업내부프로세스를면밀히파악해야한다.

2.1.2 동일한데이터가분산저장되어야하는가? II. Dapp 체크리스트 블록체인과기존시스템과의데이터저장차이점을인지할것. 블록체인은하나의노드가변화하면그에따라수많은노드가상태값을변경하는구조이므로저장된내용의변경이많이일어나거나소량의정보만을저장하는경우블록체인이적합하다 만약데이터를많이수정할필요가없거나대용량의데이터를저장해야하는사업의경우자료를분산하여저장하기보단기존시스템과같이중앙집중화된저장이효율적인경우기존시스템을사용하는것이효과적이다

2.1.3 데이터의투명성이필요한아이디어인가? (1/3) II. Dapp 체크리스트 데이터의투명성을입증해야하는서비스모델의경우블록체인적용이타당. 블록체인은모든데이터가암호화되어시간순으로블록이연결되어있어과거의기록을수정및위, 변조하는것이불가함. 이러한블록체인의특성으로감독기관및규제준수와더불어거래의투명성을보장해야하는사업의경우블록체인의도입이적합함. 또한기존의감독및관리시스템대비낮은비용이발생하는이점이있음.

2.1.3 데이터의투명성이필요한아이디어인가? (2/3) II. Dapp 체크리스트 데이터공개여부를결정. 블록체인이제공하는매우극단적인투명성은블록체인의최대장점이자단점으로볼수있다. 개인거래내역이나개인민감정보, 업체와의거래내역등을참여노드모두에게공개할시문제점으로발생할수있기때문이다. 이로인하여블록체인네트워크에참여할수있는요건여부등으로구분되어지는 Private Blockcahin과 Public Blockchain 중어떠한블록체인을적용할지결정해야한다

2.1.3 데이터의투명성이필요한아이디어인가? (3/3) II. Dapp 체크리스트 데이터공개이외에도 Private 과 Public 블록체인의차이를인지할것. 구분 Public Blockchain Private Blockchain 네트워크참여자불특정다수신원이판명된참여자 거래생성및검증불특정다수신원이판명된참여자 프라이버시개방서비스채널암호화 처리속도 7~15 TPS 1,000 TPS 이상 블록확정시간 15 초이상 1 초미만 예시 비트코인, 이더리움등 loopchain, Hyperledger, R3 등

2.1.4 의사결정이타인에의해이루어져도되는아이디어인가? II. Dapp 체크리스트 서비스모델의내용및의사결정방식에따라블록체인도입여부를결정. 중앙집중화시스템의경우의사결정을독단적으로가능했다면, 블록체인위에서는토큰이발행되고, 이에투자한사람이나컴퓨팅파워를제공한사람에게의사결정권한이나눠진다 따라서의사결정과정이투명하게공개되어야하는사업의경우오히려블록체인기반의사결정이효율적일수있으나, 장기적인안목을가지고진행해야하는사업의경우블록체인네트워크상의참여자들에의해의사결정방향이왜곡될수있다

2.1.5 빠른처리속도가필요한아이디어인가? (1/2) II. Dapp 체크리스트 블록체인의낮은확장성을인지해서비스모델에적용할것. VS " 아마존 EC2( 가상서버서비스 ) 의미디엄사이즈가격은시간당 0.04 달러다. 이더리움의오버헤드 ( 같은일을처리는데드는비용 ) 는그 100만배수준이다 이더리움이 20 TPS인데반해비자네트워크는 1667 TPS인점을감안할시빠른처리를요하는시스템의적용에는현실적으로어려움이있다

2.1.5 빠른처리속도가필요한아이디어인가? (2/2) II. Dapp 체크리스트 블록체인의낮은확장성을인지해서비스모델에적용할것. 확장성은아래요소들을포괄한다 1) 데이터처리속도 ( 프로세싱, processing speed) 2) 데이터검증속도 ( 검증, validation speed) 3) 데이터전파속도 ( 네트워크, network relay speed) 4) 늘어나는데이터크기 ( 저장공간, storage) 5) 합의구조에참여하는노드갯수 ( 검증인수, the number of validators) 6) 활용및응용프로그램의다양성 ( 어플리케이션, scalability on codes and applications) 7) 온체인 / 오프체인거버넌스 (on-chain/off-chain governance)

19 III. DApp Development with loopchain

SCORE 란? III. DApp Development with loopchain Smart Contract On Reliable Environment loopchain 안에서 Python 을이용한 Smart contract Ethereum 과달리 VM 위가아닌실제장비위에서돌아가는 Smart contract 각 Peer 에서독립적으로실행되며 Block 이확정되는시점에서실행 Block 별로실행하며, 블록체인으로구성하는 Business logic 을구현한다. SCORE container Client RESTful/JSON RPC 2.0 package.jso n SCORE code (*.py) Peer 하나의별도로분리된 Git project 입니다. 20

SCORE 동작 III. DApp Development with loopchain 1. 블록체인에거래생성 7. 거래결과에대한조회요청 2. 블록생성및동기화 loopchain peer 4. 신규블록에포함된거래처리를위한 SCORE 호출 5. 로컬저장소에저장된 SCORE 코드호출 SCORE Container SCORE Block Storage 3. 블록저장소에블록저장 8. SCORE 의 query 함수를호출하여스토리지에저장된결과를반환 SCORE local repository SCORE Storage 6. SCORE 의 invoke 함수호출하여거래실행하고결과를스토리지에저장 0. 거래에대한 SCORE 등록 ( 버전별 ) SCORE Store 5-1. 로컬저장소에저장된 SCORE 가없거나신규버전이면 SCORE Store 에서업데이트 21

bears III. DApp Development with loopchain bears : SCORE development utility for loopchain enterprise SCORE 코드의틀을작성 SCORE code 올려보기 실제 SCORE 에 Request 던지기 POSTman 같은 HTTP client 로해보기 작업환경 macos Linux ( Ubuntu, CentOS) Windows 에서는동작시문제가생길수있습니다 : Cygwin 위에서돌리면문제해결가능 Python 3.6 이상 Virtualenv 16.0 이상 PIP 10.1 이상 Docker V18.03 이상

실행하기 III. DApp Development with loopchain $ bears help

Code 생성하기 III. DApp Development with loopchain $ bears init <project> <project> folder 가만들어진다. 관련된 Source code 들이만들어진다. <project>.py SCORE code: 주요 interface package.json SCORE package의 meta정보를관리 scorecode.py 실제우리가작성할 Business logic들이있는 code scoretool.py 각종 SCORE개발에필요한 utility들

Code 실행하기 III. DApp Development with loopchain $ bears run <project> <project> 를포함해서 docker container 들을이용해서 loopchain 을올립니다.

SCORE 에 request 던지기 III. DApp Development with loopchain Invoke Block 인증이마쳐지고저장될때불리는요청 Query SCORE 의결과를조회하는요청 Invoke 검증되고합의된 Transaction 을가지고실제계약업무를실행하는작업 내부에여러실제작업들에대한함수들이있고이것을 JSON-RPC 방식으로호출한다. Python 으로작성되어서거의대부분의일들을할수있다. 작업된결과는 SCORE DB 에저장한다. NoSQL 방식으로 Key-Value 로저장. Query SCORE DB 에저장된결과를읽어오는작업 내부에여러실제작업들에대한함수들이있고이것을 JSON-RPC 방식으로호출한다. Python 으로작성되어서거의대부분의일들을할수있다.

Invoke 하기 III. DApp Development with loopchain URI : :9000/api/v1/transactions Header : application/json Request 형식 { "jsonrpc":"2.0", "id": ~~, <== must be number "method":..", "params": { } } Response 형식 { "response_code": "0 <== 'Success' is 0. 'Exception' is 9000. "tx_hash": "~~~", "more_info": "" }

Invoke 한결과조회하기 III. DApp Development with loopchain URI : :9000/api/v1/transactions/result?{tx_hash} Header : application/json Response 형식 { "response_code": "0", <== 'Success' is 0. 'Exception' is 9000. "response": { "code": 0, "jsonrpc": "2.0" } }

query 하기 III. DApp Development with loopchain URI : 9000:/api/v1/query Header : application/json Request 형식 { "jsonrpc":"2.0", "id": ~~, <== Must be string in Query. "method":..", "params": { } } Response 형식 { 'code' : integer value. <== 'Success' is 0. 'Exception is 9000. 'result : }

package.json { "id":"hello", "version":"1.0.0", "auth":{ "name":"your_team_name", "email":"your_team_email", "org":"your_organization" }, "dependencies":{}, "description":"your_own_description", "repository":{}, "homepage":"http://www.theloop.co.kr", "function":{ "invoke":[ { "method":"invoke_foo1", "params": { "key":"string", "value":"string" }, "description":"example of function in invoke." } ], "query":[ { "method":"query_foo1", "params": { "key":"string" }, "description":"example of function in query." } ] }, "main":"hello" } PackageID: [Company name]-[package] 를추천 invoke: Tx 를만들때, invoke() 시실행하게될함수들에대해정의하는부분 query: Tx 에 query() 시쓸함수들에대해정의하는부분 읽어들일 Python code 이름 III. DApp Development with loopchain

package.json { "id":"hello", "version":"1.0.0", "auth":{ "name":"your_team_name", "email":"your_team_email", "org":"your_organization" }, "dependencies":{}, "description":"your_own_description", "repository":{}, "homepage":"http://www.theloop.co.kr", "function":{ "invoke":[ { "method":"invoke_foo1", "params": { "key":"string", "value":"string" }, "description":"example of function in invoke." } ], "query":[ { "method":"query_foo1", "params": { "key":"string" }, "description":"example of function in query." } ] }, "main":"hello" } III. DApp Development with loopchain scorecode.py 안의 SCOREBusiness class 의 member 함수이름

scorecode.py III. DApp Development with loopchain SCOREBusinessLogic : 실제 Business logic 을구현해넣는 class 여러개의 SCORE DB (No SQL) 을설정할수있다. ScoreHelperDatabase 를이용. Member 함수에넣고 package.json 에함수의형태를기록하면사용가능

ScoreHelperDatabase SCORE 내부에서이용하는 DB NoSQL Key, Value 모두 byte array 로저장해야된다. 처음시작할때, 고유한 DB 이름을이용해야한다. 기능 put(key, value) : 쓰기 get_in_invoke(key): Invoke 할때, 읽어오기 get_in_query(key): Query 할때, 읽어오기 delete(key): 데이타삭제하기 III. DApp Development with loopchain Ex) Byte array: 바로디스크에쓸수있는형식 >>> b'\xcf\x84o\xcf\x81\xce\xbdo\xcf\x82'.deco de('utf-16') ' 蓏콯캁澽苏 ' >>> b'\xcf\x84o\xcf\x81\xce\xbdo\xcf\x82'.deco de('utf-8') 'τoρνoς' 주의 get_in_invoke(key) 를 Query 할때쓰거나 get_in_query(key) 를 Invoke 할때쓰면오류가생길수있다.

[ 참조 ] SCORE 로개발하면안되는것들 III. DApp Development with loopchain 랜덤값에의존하는비지니스모델 SCORE 안에서랜덤값을생성하거나, 실행하는모델은불가하나, 블록의해쉬혹은트랜잭션을이용한랜덤값이용은가능합니다. 외부의데이터에의존성이있는비즈니스모델 SCORE 안에서다른사이트를호출하거나, 외부의데이터를요구하는모델은아직불가능하나향후고려되고있습니다. 시간에따라행동하는혹은실행시각에따라내용이바뀌는모델 현재시각 ( 실행시각 ) 은사용불가능하며, 블록의시각혹은트랜잭션시각으로대체는가능합니다. 부동소수점처리불가 CPU 에따라부동소수점표현방식이달라질수있으므로모든연산은정수단위에서처리해야합니다. 내부변수재사용금지 특정한변수를 Cache 해놨다가쓰는일은없어야합니다. 34

35 IV. Way Together

DApp on ICON IV. Way Together IV. Way Together Tokenized Advertising Alliance Protocol (http://webloc.io) AIRBLOC is a decentralized personal data protocol (https://airbloc.org) An open platform connecting customers and beauty companies (http://www.cosmochain.io) And so on

불금의 ICON NEW KIDS ON THE BLOCK(CHAIN) IV. Way Together 주최 주관 : 양석원 ( 전디캠프팀장 ), AD4th 후원 : ICON Foundation 일시 : 매달 1 회신청 : D.CAMP (http://dcamp.kr/event)

Way Together IV. Way Together 맨체스터에서런던까지가장빨리가는방법은무엇인가? - 영국의한신문사 [ 좋은친구 ] 와함께가는것이다. Way Together with

How to together? 더루프는채용중 로켓펀치를통해서상시채용중 https://www.rocketpunch.com/companies/theloop/jobs Dapp 아이디어가있어요! 불금의아이콘, 매월 1 회, D.Camp

Thank you