이더리움의 types 패키지
오늘은 core/types폴더에 있는 types패키지를 분석해보았습니다.
types 패키지는 "이더리움 합의와 관련된 데이터 타입을 정의한다" 라고 되어있습니다.
어찌보면, 우리가 이더리움을 이해하기 위해서 가장 기본이 되는 용어(terminology)라고 볼수 있겠죠.
선언된 타입들의 연관관계는 그림과 같습니다. 몇개의 특징 필드에 대해서 알아보면,.
헤더
- 부모해시: 이 부분이 부모를 참조하게 되므로, 블록들이 체인처럼 보일수 있게됩니다.
- coinbase: 블록을 채굴한 주소, 나중에 채굴보상을 이곳으로 받게됩니다.
- 상태 루트해시:
- 트렌젝션 루트해시: 누구에게 얼마를 보낼것인지와 서명정보가 담겨져있습니다. 서명정보를 통해 서명자를 알아내면 서명자가 전송자가 되기 때문에 전송자 필드는 없네요
- 영수증 루트해시:
- 블룸: 블록헤더나 트렌젝션 정보를 검색가능한 필터
- 블록난이도
- 블록번호: 부모 +1
- 블록이 생성된 시간
- 논스
영수증
- 이전상태: 트렌젝션의 실행결과니까 이전상태
- 블룸: 로그는 계약에 대한 이벤트
- 최종 가스 사용량
블록
- 헤더
- 엉클블락들의 헤더
- 트렌젝션들
- 체인의 총난이도: 총난이도가 가장 크다 = 싱크유도 = 내가 가진 체인 정보가 캐노니컬 체인이 될것이다.
트렌젝션
- 수신자
- 전송량
- 서명정보: 서명자/전송자를 유도해낼수 있는 정보임
이정도가 될것 같습니다. 머릿속에 넣어두면 좋을것 같네요.
