目錄
推薦序一
推薦序二
推薦序三
前言
第一部分 瞭解區塊鏈
第1章 加密貨幣就是貨幣 2
1.1 加密貨幣簡史 2
1.2 什麼是加密貨幣 3
1.3 加密貨幣就是貨幣 4
1.4 加密貨幣可靠嗎 4
1.5 總結 6
1.6 參考 6
第2章 區塊鏈,承載人類信用的基石 7
2.1 利益,現實世界的內在驅動力 7
2.2 信用,決定著利益轉移的方嚮 7
2.3 未來趨勢 9
2.4 應用場景 9
2.5 風險提示 11
2.6 總結 12
2.7 參考 12
第3章 共識機製,可編程的利益轉移規則 13
3.1 機製,左右産品走嚮的根源 13
3.2 PoW:工作量證明機製 14
3.3 PoS:股權證明機製 15
3.4 DPoS:授權股權證明機製 16
3.5 億書對DPoS機製的改進 17
3.6 總結 17
3.7 參考 18
第4章 區塊鏈架構設計 19
4.1 基本概念 19
4.2 架構圖 20
4.3 協議層 20
4.4 擴展層 22
4.5 應用層 22
4.6 編程實現 23
4.7 知識圖譜 25
4.8 總結 26
4.9 參考 27
第二部分 Node.js入門指南
第5章 Node.js在幣圈流行麼 30
5.1 Node.js在開源社區很流行 30
5.2 Node.js在幣圈也同樣流行 32
5.2.1 Github自帶搜索 32
5.2.2 自製查詢工具 32
5.3 Github上前10個應用的簡介 34
5.4 結論 36
5.5 總結 36
5.6 參考 36
第6章 Node.js讓前端開發像子彈飛一樣 37
6.1 項目需求 37
6.2 技術選型 37
6.3 Node.js簡介 38
6.4 開發步驟 39
6.4.1 搭建環境 39
6.4.2 新建工程 40
6.4.3 前端組件 40
6.4.4 前端流程 42
6.4.5 學習API 43
6.4.6 數據整理 44
6.4.7 D3.js渲染 46
6.4.8 代碼調試 48
6.4.9 部署發布 48
6.5 總結 51
6.6 參考 51
第7章 Node.js讓後颱開發像前端一樣簡單 53
7.1 需求 53
7.2 開發 54
7.2.1 安裝Express 54
7.2.2 創建簡單應用 54
7.2.3 使用模闆引擎 55
7.2.4 使用靜態文件服務 55
7.2.5 後颱請求Github API 56
7.2.6 模塊化重構 57
7.2.7 測試和部署 61
7.3 總結 61
7.4 參考 62
第8章 你必須知道的幾個Node.js編碼習慣 63
8.1 一切都是數據流 63
8.2 事事皆迴調 65
8.3 異常要捕捉 67
8.4 總結 72
8.5 參考 73
第三部分 源碼解讀
第9章 億書,一個麵嚮未來的自齣版平颱 76
9.1 億書是什麼 76
9.2 使用場景 76
9.3 主要特點 77
9.4 核心功能 77
9.5 技術架構 78
9.6 總結 79
9.7 參考 79
第10章 入口程序app.js解讀 80
10.1 源碼與類圖 80
10.2 解讀 80
10.2.1 配置處理 80
10.2.2 異常捕捉 82
10.2.3 模塊加載 83
10.3 總結 86
第11章 一個精巧的P2P網絡實現 88
11.1 源碼、類圖與流程圖 88
11.2 解讀 89
11.2.1 路由擴展 89
11.2.2 節點路由 92
11.2.3 節點保存 94
11.3 總結 98
11.4 參考 98
第12章 加密和驗證 99
12.1 源碼、類圖與流程圖 99
12.2 概念 101
12.2.1 私鑰和公鑰 101
12.2.2 加密貨幣地址 101
12.2.3 加密過程 101
12.2.4 驗證過程 102
12.3 實踐 102
12.4 總結 104
12.5 參考 104
第13章 地址 105
13.1 源碼、類圖與流程圖 105
13.2 解讀 105
13.2.1 公共API 107
13.2.2 Hash地址 109
13.2.3 彆名地址 110
13.2.4 注冊用戶名 111
13.2.5 聯係人列錶 113
13.3 總結 115
13.4 參考 115
第14章 簽名和多重簽名 116
14.1 源碼 116
14.2 解讀 116
14.2.1 簽名 116
14.2.2 多重簽名 120
14.3 總結 125
第15章 交易 126
15.1 源碼與類圖 126
15.2 解讀 128
15.2.1 交易的本質 128
15.2.2 交易的生命周期 129
15.2.3 億書的交易類型 129
15.2.4 交易的基本流程 130
15.2.5 轉賬交易分析 136
15.3 總結 141
15.4 參考 141
第16章 區塊鏈 142
16.1 源碼、類圖與流程圖 142
16.2 解讀 143
16.2.1 區塊鏈是什麼 143
16.2.2 區塊鏈的特點 147
16.2.3 區塊鏈開發應該解決的問題 148
16.2.4 億書區塊鏈數據庫設計 148
16.2.5 億書區塊鏈的實現 149
16.3 總結 162
16.4 參考 163
第17章 DPoS機製 164
17.1 源碼與類圖 164
17.2 受托人數據庫錶 165
17.3 解讀 167
17.3.1 拜占庭將軍問題 167
17.3.2 億書DPoS機製概述 169
17.3.3 注冊受托人 170
17.3.4 投票 170
17.3.5 塊(時段)周期 170
17.3.6 受托人(循環)周期 172
17.3.7 奬勵周期 174
17.4 總結 176
17.5 參考 176
第四部分 開發實踐
第18章 函數式編程入門經典 178
18.1 什麼是函數式編程 178
18.1.1 麵嚮對象的編碼方式 179
18.1.2 函數式編程的方式 179
18.1.3 函數式編程的延伸 180
18.2 函數式編程的優勢 181
18.3 函數式編程的基本原則 181
18.3.1 直接把函數賦值給變量 182
18.3.2 使用最普適的方式命名 182
18.3.3 避免依賴外部變量 183
18.3.4 麵對this值時,小心加小心 184
18.4 怎樣進行函數式編程 184
18.4.1 柯裏化:動態産生新函數 184
18.4.2 組閤:自由組閤新函數 186
18.4.3 注釋:簽名函數的行為和目的 187
18.4.4 容器:處理控製流、異常、異步和狀態的獨立模塊 189
18.4.5 數據驗證仿函數 191
18.4.6 錯誤處理仿函數 191
18.4.7 異步處理仿函數 194
18.4.8 嵌套處理仿函數 195
18.5 總結 197
18.6 參考 198
第19章 輕鬆從JavaScript文件生成UML類圖 199
19.1 工具簡要介紹 199
19.2 能從中學點什麼 201
19.3 關於抽象語法樹 201
19.4 工具實現過程 202
19.4.1 基本需求 202
19.4.2 架構流程和代碼結構 203
19.5 總結 204
19.6 參考 204
第20章 命令行開發介紹 205
20.1 commander 205
20.2 概念定義 205
20.3 用法介紹 206
20.4 案例分析 208
20.5 總結 209
20.6 參考 209
第21章 一張圖學會使用async組件進行異步流程控製 210
21.1 概念定義 211
21.2 流程類彆 211
21.3 用法分類 212
21.4 腦圖 213
21.5 總結 215
21.6 參考 215
第22章 靜態網站開發全景掃描 216
22.1 億書官網介紹 216
22.1.1 資源信息 216
22.1.2 功能特點 217
22.2 靜態網站開發方案 218
22.3 與Ember.js的“前仇舊恨” 218
22.4 理解Ember.js幾個讓人迷亂的深“坑” 219
22.4.1 什麼是前端框架 219
22.4.2 一定要使用它的命令行工具Ember-cli 219
22.4.3 在瀏覽器上安裝使用Ember-inspector插件 219
22.4.4 Ember.js提倡的MVC模型裏沒有瞭VC 220
22.4.5 有瞭組件,自然就沒瞭全局模闆layout和局部模闆partial 220
22.4.6 玩轉Ember.js的必經之路 220
22.4.7 學會插件開發,把一切現成的插件裝進Ember.js裏 221
22.5 總結 222
22.6 參考 222
第23章 開發通用的HTML組件 223
23.1 插件簡介 224
23.2 概念解讀 225
23.3 開發過程 226
23.3.1 插件的基本情況 226
23.3.2 插件的工程結構 227
23.3.3 插件的開發設計 229
23.3.4 加載第三方庫 231
23.3.5 測試插件 232
23.3.6 藍圖模闆 233
23.3.7 輔助工具 234
23.4 Ember.js的鈎子方法介紹 235
23.4.1 contentFor鈎子方法 235
23.4.2 寫入命令行 235
23.4.3 其他鈎子方法 236
23.5 總結 236
23.6 參考 236
第24章 三張圖讓你全麵掌握加密解密技術 237
24.1 密碼學縱覽 237
24.2 場景與算法 237
24.3 Node.js中的加密和解密、簽名和認證 237
24.4 趣味實踐 241
24.4.1 場景 241
24.4.2 需求 241
24.4.3 方案 241
24.4.4 編碼 241
24.5 參考 243
第25章 在時間和數據計算方麵應該注意的問題 244
25.1 時間戳處理問題 244
25.1.1 問題再現 244
25.1.2 時間戳的重要性 245
25.1.3 不同産品對時間處理的需求 245
25.1.4 時間處理的基本原理 245
25.1.5 JavaScript語言的Date對象 246
25.1.6 實踐 247
25.2 數據計算處理問題 248
25.2.1 問題再現 248
25.2.2 終極答案 249
25.3 參考 249
第26章 測試 251
26.1 概念解釋 251
26.2 框架流程 252
26.3 測試框架與庫介紹 252
26.4 實踐 253
26.5 總結 257
26.6 參考 257
第五部分 附錄
附錄A 區塊鏈相關術語 260
附錄B 區塊鏈相關名詞 273
附錄C 關於區塊鏈俱樂部 280
後記 282
↑摺 疊
· · · · · · (
收起)