區塊鏈 2.0實戰 : 以太坊 + Solidity 編程從入門到精通
內容描述
網絡中的各種區塊鏈知識雖然很多但難以構建成體系,本書根據讀者的需求,以完整的體系介紹了當前最流行的區塊鏈技術。全書從總體出發,介紹了區塊鏈的發展歷程、典型應用、在社會生活各方面的應用前景,並進一步深入到基礎技術層面,詳細介紹了區塊鏈技術的各個組成部分,最後介紹了區塊鏈2.0——以太坊的發展情況和開發編程,引導本書讀者由遠及近、由感性到理性、從原理到實踐,建立起了全面的區塊鏈知識體系,引導讀者逐步深入地掌握區塊鏈技術,並具備應用以太坊編程語言開發分佈式應用程序的初步能力。本書以全球化的眼光專註於區塊鏈技術的體系搭建,定位高端,專業性強,內容全面,便於實操,既適合金融行業的投資人員研究和掌握區塊鏈的技術與商業價值,也適合想在區塊鏈領域從事創業發展的創業者,還可以作為編程開發人員的參考資料,也適用於各類想瞭解區塊鏈技術的大專院校作為學習資料。
目錄大綱
第1章區塊鏈基礎1
1.1什麼是區塊鏈1
1.1.1定義區塊鏈2
1.1.2區塊鏈運行流程和特點5
1.1.3區塊鏈類型6
1.2區塊鏈的發展經過和現狀7
1.2.1區塊鏈產生的背景7
1.2.2比特幣的誕生9
1.2.3比特幣的底層技術是區塊鏈11
1.2.4區塊鏈全球發展的不均衡特點12
1.2.5區塊鏈在全球的發展現狀13
1.3區塊鏈在中國的發展現狀18
1.3.1重視底層突破,區塊鏈技術創新加速18
1.3.2資本快速進入,區塊鏈融資增長迅猛19
1.3.3全產業鏈佈局,區塊鏈應用領域逐步拓展19
1.3.4抱團發展,各種區塊鏈行業組織紛紛成立20
1.4中國區塊鏈行業發展前景21
1.4.1 90後創業者人群大量入場22
1.4.2大型企業積極參與,區塊鏈技術基礎更加深厚22
1.4.3各地政府高度支持區塊鏈23
第2章區塊鏈的商業價值24
2.1區塊鏈在銀行業的應用24
2.1.1區塊鏈對銀行業的改變25
2.1.2國內銀行業的區塊鏈應用25
2.2區 塊鏈與電子商務28
2.3區塊鏈在法律行業的應用30
2.3.1區塊鏈證據31
2.3.2智能交易31
2.3.3區塊鏈權證32
2.4區塊鏈應用於影音娛樂和媒體業33
2.5區塊鏈在醫療行業的應用35
2.6結語37
第3章區塊鏈技術原理39
3.1比特幣帶來了區塊鏈39
3.2比特幣白皮書41
3.2.1簡介41
3.2.2交易42
3.2.3時間戳服務器43
3.2. 4工作量證明44
3.2.5網絡45
3.2.6激勵46
3.2.7回收硬盤空間46
3.2.8簡化的支付確認47
3.2.9價值的組合與分割48
3.2.10隱私49
3.2.11計算49
3.2 .12結論52
3.3比特幣系統的參與者53
3.4比特幣區塊56
3.4.1比特幣交易過程56
3.4.2比特幣挖礦57
3.5長鏈與短鏈59
3.6比特幣的安全性61
3.7比特幣挖礦設備的發展62
3.7.1比特幣挖礦設備的發展階段63
3.7.2礦機與礦場64
3.7.3礦池66
3.7.4雲挖礦的應用68
3.8比特幣交易中的非對稱加密69
3.8.1非對稱加密原理69
3.8.2生成錢包地址72
3.8.3交易加密過程73
3.9從比特幣到區塊鏈75
3.10區塊鏈的系統框架77
3.11分佈式網絡79
3.11.1分佈式網絡(又稱P2P網絡) 79
3.11.2分佈式網絡的特點80
3.11.3分佈式網絡的兩種架構81
3.12廣播與驗證機制83
3.12.1廣播84
3.12.2驗證85
第4章區塊鏈共識機制87
4.1共識機制的意義87
4.2工作量證明機制(PoW) 88
4.2.1哈希函數89
4.2 .2工作量證明的基本原理90
4.2.3比特幣的工作量證明過程91
4.2.4工作量證明機制PoW的優缺點94
4.3權益證明機制(PoS) 94
4.3.1 PoS與PoW的區別95
4.3 .2 PoS區塊創建98
4.3.3 PoS發展過程99
4.4授權股權證明機制(DPoS) 100
4.4.1 DPoS概述100
4.4.2選舉見證人101
4.4.3授權代表102
4.5區塊鏈的三大類型103
4.5.1公有鏈103
4.5.2私有鏈105
4.5.3聯盟鏈107
第5章區塊鏈數據結構110
5.1區塊鏈的數據結構110
5.1.1區塊的數據結構111
5.1.2區塊鏈數據結構的技術基礎112
5.1.3哈希值113
5.1.4 Merkle根114
5.1.5時間戳117
5.1.6難度目標值Difficulty Target 118
5.1 .7 Nonce隨機數120
5.2區塊鏈技術的算法121
5.2.1哈希算法概況121
5.2.2 SHA256算法124
5.3橢圓曲線加密算法131
5.3.1橢圓曲線加密算法的特點131
5.3.2橢圓曲線加密算法的數學原理132
5.3.3橢圓曲線加密算法的加密原理138
5.4區塊鏈運行機理140
5.5區塊鏈的交易機理141
5.5.1交易流程141
5.5.2比特幣錢包143
5.5.3交易身份驗證144
5.6區塊鏈的造鏈機理146
5.6.1驗證接收信息146
5.6.2創建區塊149
5.7區塊數據解讀154
第6章以太坊Ethereum區塊鏈162
6.1以太坊概述162
6.2以太坊的創立和發展163
6.3以太坊技術原理166
6.3.1以太坊與比特幣的聯繫166
6.3.2以太坊賬戶168
6.3.3交易和消息169
6.3.4燃料(Gas) 170
6.3.5合約172
6.3.6智能合約示例178
6.3.7以太坊挖礦180
6.3.8以太坊區塊184
第7章以太坊應用開發基礎196
7.1以太坊開發環境的建立196
7.2 Geth開發環境199
7.2.1初次啟動199
7.2.2命令行安裝模式200
7.2.3 Geth的使用201
7.2.4 Geth在私有鏈上的應用203
7.3輕節點模式208
7.3.1 Ganache圖形界面208
7.3.2安裝Truffle 210
7.3.3運行Ganache 212
7.4網頁模式214
7.5 Mist瀏覽器218
7.5.1 Mist安裝219
7.5.2 Mist應用222
7.6用MetaMask建立開發賬戶226
7.7以太坊開發的編程語言Solidity 230
7.7.1 Solidity簡介231
7.7.2 Solidity語言的常用語句231
7.7.3 Solidity程序初步解讀237
第8章Solidity開發基礎240
8.1 Solidity語言的數據類型241
8.1.1數值類型241
8.1.2地址類型243
8.1.3字節數組245
8.1.4地址常量246
8.1.5有理數和整數常量246
8.1.6字符串常量247
8.1.7十六進制常量248
8.1.8枚舉類型248
8.1.9函數類型249
8.1.10數據位置252
8.1.11數組253
8.1.12結構structs 256
8.1.13映射(mapping) 258
8.1.14包含左值的運算符259
8.1.15刪除delete 259
8.1.16基本類型的轉換260
8.1.17類型推導261
8.2 Soldity語言的表達式和控制結構262
8.2.1函數的輸入參數和輸出參數262
8.2.2控制結構263
8.2.3返回多元值263
8.2.4函數調用263
8.2.5函數參數的顯名調用264
8.2.6省略函數參數的名稱265
8.2.7在合約中創建新合約265
8.2.8解構賦值和返回多元值266
8.2.9範圍和聲明267
8.2.10錯誤處理:斷言、請求、還原與異常268
8.3以太坊合約271
8.3.1創建合約271
8.3.2可見性273
8.3.3取值函數275
8.3.4函數修飾符276
8.3.5常數狀態變量278
8.3.6視圖函數278
8.3.7純函數(Pure Functions) 279
8.3.8後備函數(Fallback Functions) 279
8.3.9函數重載280
8.3.10事件281
8.3 .11繼承283
8.3.12構造器286
8.3.13抽象合約287
8.3.14接口288
8.3.15庫288
8.3.16用於“using for” 292
8.4 Solidity彙編293
8.4.1內聯彙編293
8.4.2句法295
8.4.3操作碼295
8.4.4訪問外部變量和函數298
8.4.5本地彙編變量的聲明299
8.4.6賦值300
8.4.7 if語句300
8.4.8 switch語句300
8.4.9循環301
8.4.10函數302
8.4.11獨立彙編302
第9章Solidity語言開發以太坊遊戲305
9.1以太坊遊戲的特點305
9.2以太坊遊戲開發準備307
9.3以太坊遊戲Influence代碼框架309
9.4以太坊遊戲Influence源代碼解讀312
9.4. 1遊戲界面313
9.4.2庫文件lib 315
9.4.3遊戲主功能:小行星拍賣324
9.4.4遊戲主功能:小行星代幣332
9.4.5小結342
後記深入區塊鏈,用技術改變未來34
作者介紹
黃振東
經濟管理學碩士,上市公司海外投資總監,長期關注全球金融、商業與投資領域的發展趨勢,專注於金融、投資併購和互聯網科技領域的前沿探索,應用深厚的理論框架和實踐經驗進行解讀和分析,致力於從理論和實際操作層面掌握創新金融科技