EVM 구조 - 스택영역 : 연산에 필요한 데이터를 저장하기 위한 공간

     256비트 크기의 값들이 저장, 스택의 최대크기 1024

 

   - 데이터 영역: 이더리움에 트랜잭션을 요청했을 전송되는

     데이터들이 기록되는 저장 공간

 

   - 로그 : 스마트 컨트랙트가 실행될 부가적인 정보를 기록하기 위한 공간

로그영역에 기록된 데이터를 읽으려면 web3.js 이용해서 DApp

개발해야 조회 검색이 가능

 

   - 스토리지 : 블록체인에 영구적으로 기록하기 위한 저장 공간

     / 매핑구조이며 256비트 크기 사용

     모든 어카운트는 독자적으로 스토리지를 보유하고 있으며,

     다른 어카운트 스토리지에서 데이터를 읽거나 기록할수 없음

 

    - 메모리 : 함수를 호출하거나 메모리 연산을 수행할 임시로 사용되는 영역

   이더리움에서 메시지 호출 깨끗하게 초기화된 메모리 영역을 제공

   바이트 단위로 메모리 주소 접근가능 읽을때는 256비트단위로 제한

 

컨트랙트 함수의 가시성 - external : EOA 다른 컨트랙트에서 호출 가능하지만 동일한 내부에

    서는 불가능, 매개변수들이 콜데이터 영역에 기록

    -public : EOA 다른 컨트랙트에서 호출 가능, 매개변수가 항상 메모리

   기록

    -internal : 함수를 선언한 컨트랙트와 상속받은 컨트랙트에서 호출가능

   

    -private : 함수를 선언한 컨트랙트에서만 호출가능

 

컨트랙트 함수의 상태 변경성 - pure : 읽기X, 상태변경X, 이더전송X

 

   - view : 읽기O, 상태변경X, 이더전송X

 

   - payable : 읽기O, 상태변경O, 이더전송O

 

   - 기본(non-payable) : 읽기O, 상태변경O, 이더전송X



References

박재현,오재훈,박혜영. "코어 이더리움 프로그래밍" 


'Ethereum' 카테고리의 다른 글

Private Network 구축하기  (0) 2018.07.28
이더리움 플랫폼 구성  (1) 2018.07.28

+ Recent posts