區塊鏈開發實戰:以太坊關鍵技術與案例分析
內容描述
這是一本以實戰為導向的區塊鏈項目實戰指南,以以太坊、比特幣兩大區塊鏈應用為主題,講解了這兩大應用方向的關鍵技術,以及7個大型的項目實戰案例。全書一共分為3個部分:部分:區塊鏈技術綜述首先從宏觀上介紹了區塊鏈技術以及相關項目的起源、發展、組成等,然後詳細講解了區塊鏈開發環境的搭建。第二部分:以太坊首先講解了以太坊的關鍵技術,比如以太坊的部署、常用工具、編程接口、公有鏈和私有鏈的搭建、智能合約編程、維護、備份和恢復等,然後是一個代幣系統和一個以太坊錢包的案例。第三部分:比特幣首先講解了比特幣的關鍵技術,比如編程接口、公有鏈、私有鏈等,然後詳細講解了一個比特幣錢包的案例。
目錄大綱
第1章全面認識區塊鏈1
1.1區塊鏈技術的起源和解釋1
1.2區塊鏈的核心技術及其特性2
1.2.1區塊鏈技術的特性3
1.2.2區塊鏈的分佈式存儲技術特性3
1.2.3區塊鏈的密碼學技術特性4
1.2.4區塊鏈中的共識機制8
1.2.5區塊鏈中的智能合約12
1.3區塊鏈技術演進過程13
1.4區塊鏈技術的3個缺點13
1.5區塊鏈技術常見的4個錯誤認識14
1.6區塊鏈技術的應用領域15
1.6.1區塊鏈在金融行業的應用15
1.6.2區塊鏈在供應鏈中的應用16
1.6.3區塊鏈在公證領域的應用17
1.6.4區塊鏈在數字版權領域的應用18
1.6.5區塊鏈在保險行業的應用19
1.6.6區塊鏈在公益慈善領域的應用21
1.6.7區塊鏈與智能製造22
1.6.8區塊鏈在教育就業中的應用23
1.7區塊鏈的其他常見技術框架24
1.8本章小結25
第2章實戰準備26
2.1開發環境準備26
2.1.1操作系統的配置26
2.1.2 Docker的使用27
2.1.3 Git的使用30
2.2開發語言30
2.2.1 GO語言30
2.2.2 Node.js 32
2.3常用工具32
2.3.1 Curl 32
2.3.2 tree 33
2.3.3 Jq 33
2.4本章小結34
第3章以太坊介紹35
3.1了解以太坊35
3.2以太坊發展路線36
3.3以太坊內置貨幣37
3.4以太坊交易吞吐量38
3.5以太坊賬戶39
3.6智能合約40
3.7 Gas與GasPrice 41
3.8工作量證明算法41
3.9以太坊網絡類型42
3.10以太坊客戶端43
3.11本章小結44
第4章以太坊的編譯、安裝與運行45
4.1在Ubuntu下安裝45
4.2在MacOS下安裝46
4.3在Windows下安裝46
4.4以Docker方式安裝47
4.5運行以太坊47
4.6本章小結47
第5章以太坊私有鏈的搭建與運行48
5.1搭建一個私有鏈48
5.2以太坊JavaScript控制台命令53
5.3以太坊CLI控制台命令64
5.3.1賬戶管理64
5.3.2區塊數據管理65
5.4以太坊TestRPC測試鏈搭建69
5.5本章小結78
第6章以太坊的編程接口79
6.1 web3.js API 79
6.1.1安裝web3.js並創建實例79
6.1.2賬戶相關API 80
6.1.3交易相關API 80
6.1.4區塊相關API 87
6.2 JSON-RPC API 87
6.2.1賬戶相關API 88
6.2.2交易相關API 89
6.2.3區塊相關API 94
6.3本章小結95
第7章Solidity IDE和Solidity快速入門96
7.1三種Solidity IDE 96
7.1.1 browser-solidity 96
7.1.2 Atom 97
7.1.3 IntelliJ IDEA 97
7.2 Solidity快速入門:編寫一個簡單的銀行合約案例99
7.3本章小結101
第8章Solidity語法詳解102
8.1註釋102
8.2整型和布爾型103
8.2.1整型103
8.2.2布爾型104
8.3地址104
8.4字節數組105
8.4.1固定長字節數組105
8.4.2動態長度字節數組105
8.5類型轉換和類型推斷106
8.5.1類型轉換106
8.5.2類型推斷107
8.6時間單位和貨幣單位107
8.6.1時間單位107
8.6.2貨幣單位108
8.7數組和多維數組108
8.7.1數組108
8.7.2多維數組109
8.8映射/字典109
8.9結構體與枚舉111
8.9.1結構體111
8.9.2枚舉112
8.10全局變量112
8.11控制結構113
8.12函數114
8.13事件122
8.14合約124
8.15繼承125
8.16抽象合約127
8.17接口128
8.18庫128
8.19 Using for 128
8.20引入其他源文件129
8.21狀態變量/局部變量129
8.22數據位置130
8.22.1數據位置概述130
8.22.2數據位置之間相互轉換130
8.23異常處理132
......
8.24.1儘早拋出異常133
8.24.2結構化函數代碼順序134
8.24.3在支付時使用pull模式而不是push模式134
8.24.4整數上溢和下溢136
8.25本章小結137
第9章Solidity合約編譯、部署138
9.1編譯合約138
9.1.1安裝solc編譯工具138
9.1.2開始編譯合約139
9.2部署合約141
9.2.1啟動以太坊geth節點141
9.2.2部署智能合約143
9.3調用合約145
9.4本章小結146
第10章Truffle詳解147
10.1什麼是Truffle 147
10.2安裝Truffle 148
10.3創建並初始化項目149
10.4創建合約150
10.5編譯合約150
10.6遷移合約151
10.7合約交互156
10.7.1交易156
10.7.2調用157
10.7.3合約抽象157
10.7.4與合約交互158
10.7.5添加一個新合約到網絡159
10.7.6使用現有合約地址160
10.7.7向合約發送以太幣161
10.8測試合約163
10.9 JavaScript測試164
10.10 Solidity測試165
10.11 Truffle配置文件167
10.12依賴管理169
10.13本章小結171
第11章以太坊DApps應用開發實戰172
11.1 DApps架構與開發流程172
11.1.1 DApps架構VS Web應用架構172