區塊鏈底層設計 Java 實戰
內容描述
2018 年是中國區塊鏈發展的元年,火熱的市場環境下,各互聯網公司紛紛試水區塊鏈落地項目。本書以區塊鏈原理及其對應的Java 實現為主線展開,詳細剖析區塊鏈底層技術,主要內容包括區塊鏈的底層架構、密碼學原理、P2P 網絡原理、分佈式一致性算法、知名公鏈區塊設計、知名公鏈區塊存儲技術、知名公鏈幣的設計、聯盟鏈管理後台的原理等。讀者在學完本書後,可自行設計聯盟鏈。本書內容基於Java 語言,為讀者打開了區塊鏈底層研發大門。
目錄大綱
第1章區塊鏈簡介/ 1
1.1戲說區塊鏈/ 2
1.2正說區塊鏈/ 3
1.3區塊鏈的未來:聯盟鏈/ 5
1.4小結/7
第2章區塊鏈架構/ 8
2.1比特幣架構/ 9
2.2以太坊架構/ 10
2.3 Hyperledger架構/ 13
2.4區塊鏈通用架構/6
2.5小結/ 19
第3章密碼學. 20
3.1加密與解密/ 21
3.1.1加密與解密簡介/ 21
3.1 .2 Java實現/22
3.2哈希/46
3.2.1散列函數簡介/46
3.2.2 SHA-256 Java實戰/47
3.3 Merkle樹/50
3.3.1 Merkle樹簡介/50
3.3.2 Merkle樹Java實戰/52
3.4小結/63
第4章P2P網絡構建/ 64
4.1 P2P簡介/65
4.2區塊鏈P2P網絡實現技術總結/66
4.3基於WebSocket構建P2P網絡/68
4.3.1 WebSocket介紹/. 68
4.3.2基於WebSocket構建P2P網絡/ 69
4.4基於t-io構建P2P網絡/. 78
4.4.1 t-io介紹78
4.4.2 t-io的主要用法/ 80
4.4.3基於t-io構建P2P網絡. 83
4.5小結/96
第5章分佈式一致性與共識算法/97
5.1區塊鏈的分佈式/98
5.2 Paxos算法/ 99
5.3 ZooKeeper中的分佈式一致算法實現/ 100
5.4二、三階段提交協議/ 103
5.4.1二階段提交協議/ 104
5.4.2三階段提交協議/105
5.5區塊鏈中的分佈式一致性/106
5.5.1 PoW算法/107
5.5.2 PoW算法在比特幣系統的源碼實現/107
5.5.3以太坊的PoW實現/.109
5.6聯盟鏈中PBFT的實現/ 111
5.6.1什麼是PBFT/112
5.6.2 PBFT基於WebSocket的實現/ 114
5.6.3 PBFT基於t-io的實現/128
5.7小結/ 147
第6章區塊設計/ 148
6.1比特幣的區塊設計. 149
6.2以太坊的區塊設計. 151
6.3 Hyperledger的區塊設計/152
6.4 Java版區塊設計/ 153
6.5小結/ 160
第7章區塊存儲/ 161
7.1區塊存儲技術/ 162
7.2用Java實現文件存儲/ 163
7.2.1 Guava文件操作/163
7.2.2 Guava實現文件存儲/165
7.3用Java實現SQLite存儲/170
7.3.1 SQLite介紹/170
7.3.2 SQLite的使用/ 171
7.4用Java實現LevelDB存儲/185
7.4.1 LevelDB介紹/185
7.4.2 LevelDB的使用186
7.5用Java實現RocksDB存儲/ 191
7.5.1 RocksDB介紹/ 191
7.5.2 RocksDB的使用192
7.6用Java實現CouchDB存儲/ 195
7.6.1 CouchDB介紹/ 195
7.6.2 CouchDB的使用196
7.7小結/ 201
第8章聯盟鏈中的幣設計202
8.1比特幣的幣設計/203
8.2以太幣的激勵機制/206
8.3 Java版聯盟鏈的幣設計與實現/208
8.3.1管理後台幣的配置/208
8.3.2 Java實現幣交易212
8.4小結/ 235
第9章聯盟鏈管理後台/ 236
9.1超級賬本的成員管理/237
9.2 Java版聯盟鏈成員管理設計與實現/.238
9.2.1加入聯盟模塊的設計與實現/ 239
9.2.2聯盟成員認證模塊/246
9.2.3聯盟成員密鑰分發模塊/ 257
9.3小結/ 260
第10章聯盟鏈的運營/261
10.1聯盟鏈會員章程/262
10.2聯盟鏈代碼使用方式/ 269
10.3聯盟鏈代碼升級/272
10.4聯盟鏈代碼安全/273
10.5聯盟鏈激勵體系運營/273
10.6小結/ 274
附錄A TextNG /275
附錄B Mockito / 279
附錄C CouchDB的安裝/ 283
後記/286
作者介紹
牛冬,中科院軟件研究所碩士畢業,先後就職於人人網、先鋒金融集團、阿里巴巴,現任職於好未來教育科技集團,作為區塊鏈研發負責人。