1. 程式人生 > >《區塊鏈開發指南 (區塊鏈技術叢書)》PDF版

《區塊鏈開發指南 (區塊鏈技術叢書)》PDF版

點選下載:
《區塊鏈開發指南 (區塊鏈技術叢書)》
這裡寫圖片描述
內容簡介 · · · · · ·
本書首先介紹基礎密碼學、演算法、P2P協議、指令碼等區塊鏈基礎原理與技術,然後以比特幣和以太坊兩大區塊鏈平臺為例,指導讀者搭建測試環境,對區塊鏈進行編譯,建立私鏈與測試鏈等,幫助開發者建立自己的私鏈,實現智慧合約、挖礦等區塊鏈特定程式設計例項。
作者簡介 · · · · · ·
申屠青春,金鍊盟常務副祕書長、銀鏈科技CEO、深圳金融標準委員會會員、深圳大學博士,高階工程師,深圳市高層次人才,深圳市政府採購評審專家。曾獲2008年深圳科技創新獎、2009年廣東省科技進步三等獎,獲得發明專利授權4項,獲2012年深圳發明獎。2012年創立銀鏈科技,2013年開始研究區塊鏈,2016年轉向金融行業,併發起成立金鍊盟。
宋波,曾在某外企支付公司任職中國區軟體開發部經理,負責ATM, EMV IC銀行卡,Kiosk等產品,現在某比特幣公司負責移動IM的開發工作,先後參與了錢包,演算法交易,區塊鏈,交易引擎,礦池及APP等產品的開發。
張鵬,博士,講師,碩士生導師。2005年獲海軍工程大學電腦科學與技術專業學士學位;2008年、2011年分獲深圳大學訊號與資訊處理專業碩士、博士學位。隨後進入深圳大學工作,現為資訊工程學院講師,中國密碼學會會員。研究方向為密碼學與資訊保安。近年來主持或參與本領域的國家、省、市科技計劃專案多項,申請國家發明專利10餘項,在本領域核心學術刊物上發表文章20多篇,其中多篇被SCI、EI檢索。
汪曉明,朝夕網路CEO,10年網際網路技術產品經驗,在跨境電商、大資料、區塊鏈等領域有豐富的跨界經驗。作為區塊鏈技術早期探索者,一直積極推動區塊鏈技術在國內的傳播和應用落地,已推出面向金融機構的區塊鏈數字資產和供應鏈產品。同時發起了有行業影響力的區塊鏈視訊節目《明說》,持續影響著更多人蔘與到區塊鏈技術的研究和推廣中。
季宙棟,萬達網路科技集團先進技術研究中心副總經理,萬達區塊鏈負責人、(工信部)中國區塊鏈技術與產業發展論壇副祕書長,超級賬本中國技術工作組委員。專注網際網路金融業務創新及金融科技實踐,參與了工信部區塊鏈白皮書及相關標準編制工作,ISO/IEC TC307中國代表團成員,牽頭工信部區塊鏈開源社群工作。
左川民,畢業於西南交通大學,先後在多家知名企業任技術專家,高階架構師職位。2015年開始從事區塊鏈技術的研究工作,曾負責積分割槽塊鏈專案區塊鏈架構設計,專注於區塊鏈技術框架Fabric的技術研究,目前為深圳科協、金鍊盟等機構Fabric技術框架培訓講師,同時作為中國首批區塊鏈系統功能測試評審專家參與區塊鏈系統評審。
目錄 · · · · · ·
推薦序一 區塊鏈的價值實現
推薦序二 區塊鏈,推動金融代際躍升的新力量
推薦序三 區塊鏈技術的現實和未來
前言
第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 zui新比特幣技術 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
3.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 背書策略規範 159
6.5.2 交易評估與背書策略 159
6.5.3 背書策略示例 160
6.6驗證總賬(1.0版本之後的功能)和原始總賬檢查點(精簡) 160
6.6.1 驗證總賬 160
6.6.2 原始總賬檢查點 161
6.7 Fabric V1.0開發者快速入門 163
6.7.1 前置條件和系統配置 163
6.7.2下載原始碼,建立Fabric網路 164
6.7.3 生成配置檔案 164
6.7.4使用Docker建立Fabric網路&建立/加入通道(賬本) 165
6.7.5 示例合約執行過程解析 165
6.7.6 檢視智慧合約執行日誌 166
6.7.7 手工建立和加入通道 166
6.7.8使用命令列工具部署、呼叫、查詢智慧合約 167
6.7.9 開發環境故障排除 168
6.7.10 Fabric常用的Docker命令 168
6.8 智慧合約開發 169
6.8.1 智慧合約的定義 169
6.8.2GO語言智慧合約的開發和部署 169
6.8.3 Java智慧合約的編寫與部署 174
6.8.4 開發和提交程式碼 180
相關術語 182
附錄A 國內區塊鏈聯盟介紹 184
…………………….