區塊鏈編程 Blockchain in Action
Bina Ramamurthy 史躍東 譯
- 出版商: 清華大學
- 出版日期: 2024-06-01
- 售價: $588
- 貴賓價: 9.5 折 $559
- 語言: 簡體中文
- ISBN: 7302664811
- ISBN-13: 9787302664819
-
相關分類:
區塊鏈 Blockchain
- 此書翻譯自: Blockchain in Action
立即出貨 (庫存 < 3)
買這商品的人也買了...
相關主題
商品描述
"● 區塊鏈與其他分佈式系統的比較 ● Solidity開發 ● 身份、隱私和安全 ● 鏈上、鏈下數據及操作 "
目錄大綱
目 錄
第Ⅰ部分 區塊鏈編程入門
第1章 區塊鏈基礎知識 3
1.1 從比特幣到區塊鏈 4
1.2 什麽是區塊鏈 5
1.3 區塊鏈編程 7
1.3.1 去中心化基礎設施 7
1.3.2 分佈式賬本技術 10
1.3.3 去中介化協議 12
1.3.4 信任推動者 13
1.4 激勵場景 14
1.4.1 自動化與一致性數據收集 14
1.4.2 及時共享信息 15
1.4.3 可驗證的合規性 15
1.4.4 可審計的行為出處 15
1.4.5 治理指南 16
1.4.6 行為的歸屬 16
1.4.7 大型流行病管理 16
1.5 回顧 17
1.6 本章小結 17
第2章 智能合約 19
2.1 智能合約的概念 20
2.1.1 比特幣交易與智能合約交易 20
2.1.2 智能合約的功能 21
2.2 智能合約的設計 21
2.2.1 計數器用例圖 22
2.2.2 數據資產、對等參與者、角色、
規則和交易 23
2.2.3 從類圖到合約圖 24
2.3 開發智能合約代碼 25
2.3.1 Solidity語言 25
2.3.2 計數器的智能合約代碼 26
2.4 部署和測試智能合約 27
2.4.1 Remix IDE 27
2.4.2 部署和測試 29
2.4.3 關鍵點 30
2.5 什麽讓區塊鏈合約更智能 30
2.6 去中心化的航空系統用例 32
2.6.1 ASK的定義 32
2.6.2 操作順序 33
2.7 航空公司智能合約 35
2.7.1 對等參與者、數據資產、角色、
規則和交易 36
2.7.2 航空公司智能合約代碼 37
2.7.3 ASK智能合約部署及測試 39
2.8 智能合約設計的重要性 43
2.9 最佳實踐 44
2.10 本章小結 44
第3章 信任與完整性技術 47
3.1 信任和完整性的要素 48
3.1.1 信任 48
3.1.2 完整性 49
3.2 數字民主問題 50
3.2.1 設計解決方案 50
3.2.2 用例圖 50
3.2.3 漸進式代碼開發 51
3.2.4 用戶、資產和交易 52
3.2.5 有限狀態機圖 53
3.2.6 信任中介 56
3.2.7 修飾符的定義及使用 56
3.2.8 包含修飾符的合約圖 57
3.2.9 匯總代碼 58
3.3 測試 60
3.3.1 正面測試 62
3.3.2 負面測試 62
3.4 使用修飾符、require()和revert() 63
3.5 assert()聲明 64
3.6 最佳實踐 66
3.7 回顧 66
3.8 本章小結 67
第4章 從智能合約到Dapp 69
4.1 使用Truffle開發Dapp 71
4.1.1 開發過程 71
4.1.2 安裝Truffle 71
4.1.3 構建Dapp棧 73
4.2 安裝Ganache測試鏈 73
4.3 開發智能合約 74
4.3.1 創建項目文件夾 76
4.3.2 添加智能合約並編譯 77
4.3.3 配置區塊鏈網絡 78
4.3.4 部署智能合約 78
4.4 開發並配置網絡應用 79
4.4.1 開發ballot-app 80
4.4.2 啟動ballot-app 82
4.4.3 安裝MetaMask錢包 83
4.4.4 與Ballot-Dapp交互 85
4.4.5 將網絡客戶端連接到智能合約 86
4.5 回顧 88
4.6 最佳實踐 88
4.7 本章小結 89
第Ⅱ部分 端到端的Dapp開發技術
第5章 安全與隱私 93
5.1 密碼學基礎 94
5.1.1 對稱密鑰加密 95
5.1.2 非對稱密鑰加密 95
5.2 公鑰密碼學與區塊鏈的相關性 96
5.2.1 生成以太坊地址 96
5.2.2 交易簽名 97
5.2.3 在Ropsten上部署智能合約 97
5.2.4 以助記符的形式使用私鑰 98
5.2.5 填充區塊鏈錢包 98
5.2.6 在Ropsten上進行部署和交易 99
5.3 哈希基礎知識 101
5.3.1 文檔的數字簽名 102
5.3.2 分佈式賬本中的哈希數據 102
5.3.3 以太坊區塊頭中的哈希值 102
5.3.4 Solidity哈希函數 103
5.4 哈希的應用 104
5.4.1 盲拍設計 104
5.4.2 盲拍智能合約 105
5.4.3 隱私及安全方面 106
5.4.4 測試BlindAuction合約 108
5.4.5 測試計劃 109
5.5 回顧 111
5.6 最佳實踐 111
5.7 本章小結 111
第6章 鏈上和鏈下數據 113
6.1 鏈上數據 115
6.2 盲拍用例 116
6.2.1 鏈上事件數據 116
6.2.2 帶有事件的盲拍 117
6.2.3 使用Web用戶界面進行測試 121
6.2.4 使用web3 API訪問鏈上數據 125
6.3 鏈下數據:外部數據源 126
6.4 ASK航空公司系統 128
6.4.1 ASK概念 128
6.4.2 Airlines智能合約 130
6.4.3 ASK鏈上數據 133
6.4.4 ASK鏈下數據 133
6.4.5 ASK Dapp的開發流程 133
6.4.6 ASK Web用戶界面 134
6.4.7 合並 135
6.4.8 使用ASK Dapp進行交互 136
6.5 回顧 138
6.6 最佳實踐 139
6.7 本章小結 139
第7章 web3和通道Dapp 141
7.1 web3 API 142
7.1.1 Dapp棧中的web3 142
7.1.2 web3包 143
7.2 通道(channel)的概念 144
7.3 微支付通道 145
7.4 微支付通道用例 145
7.4.1 傳統的銀行解決方案 146
7.4.2 用戶和角色 149
7.4.3 鏈上和鏈下操作 149
7.4.4 MPC智能合約(MPC-contract) 151
7.4.5 MPC應用部署(MPC-app) 153
7.4.6 MPC序列圖 156
7.4.7 MPC執行演示 157
7.4.8 訪問web3 provider 160
7.4.9 MPC擴展 162
7.4.10 微支付通道的意義 163
7.4.11 其他web3包 163
7.5 回顧 164
7.6 最佳實踐 164
7.7 本章小結 165
第8章 使用Infura進行公開部署 167
8.1 節點和網絡 167
8.2 Infura區塊鏈基礎設施 168
8.3 使用Infura進行公開部署 169
8.4 公開部署的端到端流程 171
8.4.1 賬號生成及管理 172
8.4.2 選擇網絡並導入賬戶 173
8.4.3 從faucet處收集以太幣 174
8.4.4 在Infura上創建區塊鏈節點 175
8.4.5 安裝HDWalletProvider 176
8.4.6 配置並部署智能合約 176
8.4.7 配置和部署Web應用 177
8.5 在Infura上部署盲拍Dapp 178
8.5.1 設置盲拍環境 178
8.5.2 分散的參與者 180
8.5.3 配置和部署受益人賬戶 180
8.5.4 配置和部署競標者 182
8.5.5 與已部署的盲拍Dapp交互 183
8.6 在Infura上部署MPC Dapp 186
8.6.1 配置MPC環境 186
8.6.2 配置並部署組織者 188
8.6.3 配置並部署工人 191
8.7 回顧 192
8.8 最佳實踐 192
8.9 本章小結 193
第Ⅲ部分 路線圖及未來之路
第9章 資產代幣化 197
9.1 以太坊標準 198
9.1.1 以太坊改進提案 198
9.1.2 ERC20代幣標準 199
9.1.3 可替代和不可替代的代幣 200
9.2 RES4:不可替代的房地產代幣 201
9.2.1 用例圖 202
9.2.2 合約圖 203
9.2.3 RES4 ERC721兼容代幣 203
9.2.4 RES4 Dapp 205
9.2.5 與RES4 Dapp進行交互 207
9.3 回顧 213
9.4 最佳實踐 213
9.5 本章小結 214
第10章 測試智能合約 215
10.1 智能合約測試的重要性 215
10.1.1 測試類型 216
10.1.2 測試程序的語言選擇 216
10.2 測試計數器智能合約 216
10.2.1 編寫計數器測試腳本 217
10.2.2 正面測試和負面測試 220
10.2.3 運行測試腳本 220
10.3 測試投票智能合約 221
10.3.1 編寫投票測試腳本 221
10.3.2 執行投票測試腳本 223
10.3.3 describe()和it()測試函數 224
10.4 回顧測試腳本的編寫 224
10.5 盲拍測試腳本 225
10.5.1 分析describe()和it()的代碼 227
10.5.2 執行盲拍測試腳本 227
10.5.3 完整的拍賣流程 228
10.6 回顧 228
10.7 最佳實踐 229
10.8 本章小結 229
第11章 Dapp開發路線圖 231
11.1 激勵場景:教育證書 231
11.2 路線圖 232
11.3 問題描述 233
11.3.1 DCC應用的背景 233
11.3.2 設計選擇 234
11.4 分析與設計 234
11.4.1 操作流程及有限狀態機 235
11.4.2 合約圖 236
11.5 開發智能合約 237
11.5.1 數據結構 237
11.5.2 事件 237
11.5.3 修飾符 237
11.5.4 函數 237
11.6 本地部署 241
11.7 使用truffle進行自動化測試 242
11.8 開發Web應用 243
11.8.1 用戶界面設計 244
11.8.2 編寫app.js 246
11.9 測試DCC-Dapp 246
11.10 公開部署 247
11.10.1 在Ropsten-Infura上部署 247
11.10.2 創建用於分發的Web
客戶端 249
11.11 回顧 250
11.12 最佳實踐 250
11.13 本章小結 250
第12章 區塊鏈:未來之路 253
12.1 去中心化身份 253
12.2 自我管理身份 254
12.3 共識與完整性 256
12.3.1 POW 257
12.3.2 POS 257
12.3.3 拜占庭容錯共識 257
12.4 可擴展性 258
12.5 可擴展性解決方案 259
12.5.1 旁路通道 259
12.5.2 區塊大小 259
12.5.3 網絡速度 259
12.6 隱私 259
12.7 公共、私有和許可網絡 260
12.8 保密性 261
12.8.1 開放信息 261
12.8.2 解決方案 262
12.9 安全性 262
12.10 使用加密貨幣進行保護 263
12.11 訪問鏈下數據(預言機) 264
12.12 從基礎到實用系統 265
12.13 展望未來 266
12.14 最佳實踐 267
12.15 回顧 267
12.16 本章小結 268
附錄A UML區塊鏈設計模型 269
附錄B 設計原則 277