區塊鏈開發指南
內容描述
本書首先介紹基礎密碼學、算法、P2P協議、腳本等區塊鏈基礎原理與技術,然後以比特幣和以太坊兩大區塊鏈平臺為例,指導讀者搭建測試環境,對區塊鏈進行編譯,建立私鏈與測試鍊等,幫助開發者創建自己的私鏈,實現智能合約、挖礦等區塊鏈特定編程實例。
目錄大綱
目錄
推薦序一區塊鏈的價值實現
推薦序二區塊鏈,推動金融代際躍升的新力量
推薦序三區塊鏈技術的現實和未來
前言
第1章區塊鏈基礎1
1.1交易和交易鏈2
1.1.1比特幣地址3
1.1.2交易的本質3
1.1.3輸入和輸出5
1.1.4交易類型5
1.1.5找零地址6
1.2區塊和區塊鏈8
1.2.1區塊結構8
1.2.2創世塊10
1.2.3區塊鏈原理13
1.3挖礦、礦池14
1.3.1挖礦原理與區塊的產生14
1.3.2挖礦難度16
1.3.3礦池原理與商業模式18
1.4腳本系統19
1.4.1腳本特點20
1.4.2腳本運行過程24
1.4.3腳本操作碼解讀25
1.4.4腳本執行過程26
1.5合約應用案例27
1.5.1合約應用原理28
1.5.2示例1:提供押金證明29
1.5.3示例2:擔保和爭端調解30
1.5.4示例3:保證合約30
1.5.5示例4:使用外部狀態32
1.5.6示例5:跨鏈交易34
1.5.7示例6:支付證明合約35
1.5.8示例7:特定對象的快速調整(微)支付36
1.5.9示例8:多方 中心化彩票37
參考資料37
第2章區塊鏈進階39
2.1外帶數據39
2.1.1 OP_RETURN外帶數據39
2.1.2 Multi-Signatures外帶數據40
2.2 Counterparty 40
2.2.1Counterparty附生鏈的實現機制詳解41
2.2.2發送41
2.2.3訂單42
2.2.4發行42
2.2.5廣播43
2.2.6賭約43
2.3挖礦算法解析43
2.3.1 PoW挖礦算法及分析43
2.3.2 PoS股權證明算法及分析44
2.3.3DPoS股份授權證明算法及分析45
2.4 Sidechains 45
2.4.1側鏈背景45
2.4.2技術原理46
2.5最新比特幣技術49
2.5.1 IBLT 49
2.5.2隔離見證50
2.5. 3閃電網絡51
2.5.4 RSMC 51
2.5.5 HTLC 52
參考資料53
第3章密碼學基礎54
3.1 Hash函數54
3.1.1技術原理54
3.1.2 SHA-1算法55
3.1.3 SHA-2算法57
3.1.4 SHA-3算法64
3.1.5 RIPEMD160算法65
3.2橢圓曲線密碼66
3.2.1橢圓曲線方程67
3.2.2公鑰和私鑰的產生算法68
3.3 ECDSA數字簽名69
3.4 Schnorr數字簽名70
3.4. 1技術思想70
3.4.2Schnorr與ECDSA的異同70
3.5 Bloom f?ilter 71
3.5.1技術原理71
- 5.2應用案例72
第4章比特幣區塊鏈開發74
4.1 Bitcoin的編譯過程74
4.1.1 Ubuntu下的編譯74
4.1.2 Mac下的編譯75
4.1.3 Windows下的編譯76
4.2代碼剖析77
4.2. 1主要模塊77
4.2.2初始化和啟動79
4.2.3 P2P網絡80
4.2.4交易和區塊89
4.2.5腳本系統89
4.2.6挖礦91
4.2.7私鑰92
4.3性能實戰93
4.3.1建立私鏈93
4.3.2優化改進96
4.4 API開發97
4.4.1命令行調用97
4.4.2 RPC API調用接口100
4.4.3如何調用API進行開發103
4.4.4通過命令實現區塊鏈的查詢實例103
第5章以太坊智能合約開發109
5.1以太坊109
5.1.1以太坊的定義109
5.1.2下一代區塊鏈109
5.1.3以太坊虛擬機110
5.1.4以太坊的工作原理110
5.2以太坊賬戶管理111
5.2.1賬戶111
5.2.2鑰匙文件112
5.2.3創建賬號112
5.3更新、備份、恢復賬號115
5.3.1更新賬號115
5.3.2賬號備份和恢復116
5.4公有鏈、聯盟鏈、私有鍊及網絡配置117
5.4.1以太坊網絡117
5.4.2公有鏈、私有鍊和 聯盟鏈117
5.4.3如何連接118
5.4.4更快地下載區塊鏈119
5.4.5靜態節點、信任節點和啟動節點120
5.5搭建測試網絡和私有鏈121
5.5.1 Modern測試網121
5.5.2設置本地私有測試網121
5.6賬戶、交易核心概念及投注合約解析125
5.6.1外有賬戶與合約賬戶125
5.6.2什麼是交易126
5.6.3什麼是消息126
5.6.4什麼是gas 126
5.6. 5估算交易成本127
5.6.6賬戶交互示例:投注合約128
5.7深入淺出智能合約131
5.7.1合約的定義131
5.7.2以太坊高級語言131
5.7.3寫合約131
5.7.4編譯合約132
5.7.5創建和部署合約134
5.7.6與合約互動135
5.7.7合約元數據136
5.7.8測試合約和交易137
5.8如何部署、調用智能合約138
5.8.1 RPC 138
5.8.2慣例138
5.8.3部署合約139
5.8.4和智能合約互動141
5.8.5 Web3.js 142
5.8.6控制台143
5.8.7查看合約與交易143
5.9智能合約案例實戰143
參考資料146
第6章Fabric原理和實操147
6.1超級賬本項目背景147
6 .2 Fabric簡介149
6.3系統架構150
6.3.1交易150
6.3.2區塊鏈數據結構150
6.3.3節點151
6.4交易背書的基本流程155
6.4.1客戶端創建交易後發送到它所選擇的背書節點156
6.4.2背書節點模擬交易,然後生成背書籤名157
6.4.3提交客戶端獲取交易的背書,通過排序服務廣播158
6.4.4排序服務向所有節點投遞交易消息158
6.5背書策略159
6.5.1背
作者介紹
作者簡介
深圳銀鍊科技CEO, 深圳大學ATR國防科技重點實驗室博士。