Gidhub BE Developer

SmartContract Flow (1)

2018-02-22
goodGid

SmartContract Flow

1. SmartContract 개발 환경

개발 도구와 Compiler 까지를 포함한 범위를 표시

Code를 작성하고 컴파일하면

Byte Code / Function Signature / ABI를 최소한 출력

1-1. Byte Code

SmartContract Code를 컴파일 한 결과

BlockChain에

Contract Creation Transaction을 발생시켜

배포하거나

Contract로의 Message Tx(트랜잭션)이나

Call을 통해 EVM(Ethereum Virtual Machine) 위에서 실행


1-2. Function Signature

Contract내의 함수 이름의 SHA3한 Hash값의 4Byte 값으로,

Contract의 함수를 실행시킬 때

Transaction의

to: 주소에는 Contract Address

data: 부분에는 이 method signature 4Byte와 함께

파라미터 값이 payload로 들어간다.


1-3. ABI(Application Binary Interface)

- 특정 언어나 플랫폼에 종속되지 않은 방식으로

기술된 Application Interface에 대한 정의


- ABI는 컴파일러 혹은 ABI Generator가 출력하는데,

이 ABI에는 SmartContract의 함수와 Parameter에 대한

Metadata가 정의 되어있음.


- ABI를 갖고 JavaScript 언어 기반의 어플리케이션을 만들 때

객체를 만들게 할 수 있고,

쉽게 그 객체의 Method를 호출하는 것 만으로

Contract의 함수가 호출 되도록 할 수 있음



2. BlockChain Engine

- Ethereum Node를 의미


- 모든 Smart Contract와 관련된 Transaction 처리와

Contract 실행을 위한 EVM은 Node가 갖고 있다.


3. Applications

- Smart Contract는 Logic만 갖고 있다.

- 사용자나 외부 시스템과의

상호작용을 위해서는

당연히 Application이 필요하다.


Comments

Content