1. 시작하며
1.1. 이 책의 목적
1.2. 대상 독자
1.3. 사전 지식
1.4. 기재 범위
1.5. 참고 자료
1.6. 저작권
2. 이더리움이란
2.1. 이더리움의 시작
2.2. 이더리움 로드맵
2.3. 암호화폐 이더리움
2.4. 퍼블릭 블록체인과 프라이빗 블록체인
3. 구성 컴포넌트
3.1. 개발 기반 컴포넌트
3.2. 실행 기반 컴포넌트
3.3. 이용 기반 컴포넌트
4. 시스템 구성
4.1. 소프트웨어 구성
4.2. 하드웨어 구성
4.3. 기존 시스템과의 연계
5. 이더리움 실행 노드(geth)
5.1. geth 기능 개요
5.2. 데이터 디렉터리
5.3. geth 이용자
5.4. geth 이용자 인터페이스
5.5. 프로세스 간 통신
5.6. geth 커맨드
5.7. geth API
5.7.1. geth API 분류
5.7.2. DApp API 이용
6. 프라이빗 블록체인 만들기
6.1. geth 인스톨
6.2. 프라이빗 블록체인 정의
6.2.1. 데이터 디렉터리 작성
6.2.2. 제네시스 파일 작성
6.2.3. 네트워크 ID 지정
6.3. 프라이빗 블록체인 초기화
6.4. 프라이빗 블록체인 기동 시 옵션 결정
6.5. 프라이빗 블록체인 기동
6.5.1. geth 기동 커맨드
6.5.2. geth 복수 피어 접속
7. 이더리움 가상 머신
7.1. 처리 개요
7.1.1. 어카운트
7.1.2. 처리 분류
7.1.3. 처리 흐름
7.1.4. 애플리케이션 예시
7.2. EOA
7.2.1. EOA 조작
7.2.2. Ether 할당
7.2.3. EOA에서 트랜잭션 송신
7.2.4. EOA와 장애 대처 방법
7.3. 컨트랙트
7.3.1. 컨트랙트의 배치, 연계, 소멸
7.3.2. 컨트랙트 호출
7.4. Event
7.4.1. Event 실장 예시
7.4.2. Event를 사용한 활용 예시
7.4.3. Event 사용 시 주의점
8. Solidity 프로그래밍
8.1. 컨트랙트에 사용 가능한 특별한 변수
8.2. 컨트랙트 프로그램 예시: 구조
8.3. 컨트랙트 프로그램 예시: Visibility Specifiers
8.4. 컨트랙트 프로그램 예시: Mapping
8.5. 컨트랙트 프로그램 예시: 계승
8.6. 컨트랙트 프로그램 예시: Modifiers
9. 컨트랙트 개발 순서
9.1. solc 컴파일러를 이용한 컨트랙트 개발
9.1.1. solc 컴파일러 인스톨
9.1.2. 컨트랙트 작성
9.1.3. 컨트랙트 컴파일
9.1.4. 컨트랙트 배치 ?블록체인 등록
9.1.5. 컨트랙트 실행
9.2. Remix를 이용한 컨트랙트 개발
9.2.1. 컨트랙트 컴파일
9.2.2. 컨트랙트 배치 ?블록체인 등록
9.2.3. 컨트랙트 실행
10. 트랜잭션 실행 수수료
10.1. gas란
10.2. gas 소비(gasUsed)
10.3. gas 가격(gasPrice)
10.4. 채굴자 보수
10.5. 트랜잭션 실행과 gas
10.6. 소비 gas 계산
10.7. 프라이빗 환경에서의 gas
11. 채굴(마이닝)
11.1. 채굴 메커니즘
11.1.1. 합의 형성 메커니즘의 문제와 해결책
11.1.2. 채굴 시간 단축에 의한 문제와 해결책
11.1.3. PoW에서 PoS로
11.2. Casper
12. 블록체인
12.1. 블록체인 논리 구조
12.1.1. 어카운트 베이스를 이용한 상태 관리
12.1.2. 블록과 트랜잭션
12.1.3. 트리 구조
12.2. 블록체인 헤더
12.2.1. 블록체인 헤더 정보
12.2.2. 블록체인 헤더 정보 취득
12.3. 트랜잭션 기록
12.3.1. 트랜잭션 정보
12.3.2. 트랜잭션 정보 취득
12.4. 어카운트 기록
12.4.1. 어카운트 정보
12.4.2. 어카운트 정보 취득
12.4.3. 블록체인과 Account state 관계
12.5. 트랜잭션 실행 결과(receipts)
12.5.1. 트랜잭션 실행 결과 정보
12.5.2. 트랜잭션 실행 결과 정보 취득
13. Web3 베이스 레이어 서비스