-
>
全國計算機等級考試最新真考題庫模擬考場及詳解·二級MSOffice高級應用
-
>
決戰行測5000題(言語理解與表達)
-
>
軟件性能測試.分析與調優實踐之路
-
>
第一行代碼Android
-
>
JAVA持續交付
-
>
EXCEL最強教科書(完全版)(全彩印刷)
-
>
深度學習
以太坊智能合約開發實戰 版權信息
- ISBN:9787111623717
- 條形碼:9787111623717 ; 978-7-111-62371-7
- 裝幀:一般膠版紙
- 冊數:暫無
- 重量:暫無
- 所屬分類:>>
以太坊智能合約開發實戰 本書特色
本書從區塊鏈的概念、原理、核心技術和應用四個方面,系統地介紹了以太坊區塊鏈開發的相關知識。其中,重點介紹了以太坊的相關概念和原理、以太坊客戶端Geth、以太坊常用智能合約開發工具、Solidity語言和智能合約開發等內容,并實現了眾籌合約和代幣合約兩個項目實戰案例,可以讓讀者對智能合約開發的整體流程有一個全面的了解。另外,書中結合示例對Web3.js的相關知識也做了詳細介紹,以幫助讀者更好地理解和利用以太坊的相關數據。
本書內容豐富,講解通俗易懂,案例典型,實用性強,特別適合區塊鏈技術愛好者和智能合約開發的相關從業人員閱讀,也適合區塊鏈底層研究人員閱讀。另外,本書還適合作為區塊鏈培訓機構作為相關課程的培訓教材使用。
以太坊智能合約開發實戰 內容簡介
本書從區塊鏈的概念、原理、核心技術和應用四個方面,系統地介紹了以太坊區塊鏈開發的相關知識。其中,重點介紹了以太坊的相關概念和原理、以太坊客戶端Geth、以太坊常用智能合約開發工具、Solidity語言和智能合約開發等內容,并介紹了眾籌合約和代幣合約兩個項目實戰案例,可以讓讀者對智能合約開發的整體流程有一個全面的了解。另外,書中結合示例對web3.js的相關知識也做了詳細介紹,以幫助讀者更好地理解和利用以太坊的相關數據。 本書共17章,分為4篇,涵蓋的主要內容有區塊鏈的概念、原理與底層技術;以太坊的相關概念與原理;以太坊相關協議;以太坊客戶端Geth;以太坊智能合約的其他常用工具與客戶端;Solidity語言的基本概念與數據類型;使用Solidity進行以太坊智能合約開發;通過web3.js與以太坊區塊鏈數據進行交互;眾籌智能合約與代幣智能合約項目實戰案例。 本書內容豐富,講解通俗易懂,案例典型,實用性強,特別適合區塊鏈技術愛好者和智能合約開發的相關從業人員閱讀,也適合區塊鏈底層研究人員閱讀。另外,本書還適合區塊鏈培訓機構作為相關課程的培訓教材。
以太坊智能合約開發實戰 目錄
第1篇 基礎理論與原理
第1章 與區塊鏈的**次親密接觸 2
1.1 什么是區塊鏈 2
1.1.1 區塊鏈簡介 2
1.1.2 區塊鏈的鏈式結構 3
1.1.3 區塊鏈上的區塊常見數據 4
1.2 工作量證明機制(PoW) 6
1.2.1 區塊鏈遭遇的問題 6
1.2.2 PoW模型 8
1.2.3 PoW為什么能防止篡改 9
1.3 權益證明機制(PoS) 11
1.3.1 什么是PoS 12
1.3.2 PoS的優勢與劣勢 12
1.4 委托權益證明(DPoS) 12
1.5 權威證明(PoA) 13
1.6 區塊鏈的應用 13
1.7 本章小結 13
第2章 去中心化應用——DApp 15
2.1 DApp簡介 15
2.1.1 什么是DApp 15
2.1.2 DApp網絡組建過程 16
2.1.3 DApp的優點 16
2.1.4 DApp存在的問題 16
2.2 中心化與去中心化 17
2.2.1 身份驗證 17
2.2.2 通信 17
2.2.3 數據交互 17
2.2.4 系統維護 18
2.3 DApp網絡與通信 18
2.3.1 P2P網絡與WWW 19
2.3.2 P2P網絡拓撲結構類型 20
2.3.3 小結 21
2.4 DApp貨幣與中心化數據交互 22
2.4.1 DApp貨幣 22
2.4.2 中心化應用獲取去中心化數據 22
2.4.3 去中心化應用獲取中心化數據 22
2.5 常見的DApp 23
2.5.1 比特幣 23
2.5.2 以太坊 23
2.5.3 IPFS存儲系統 23
第3章 比特幣那些事 25
3.1 比特幣簡介 25
3.1.1 比特幣公鑰與私鑰 25
3.1.2 數字簽名 26
3.2 橢圓曲線算法 26
3.2.1 群 26
3.2.2 橢圓曲線算法定義 28
3.2.3 橢圓曲線幾何運算 29
3.2.4 橢圓曲線算法的代碼實現 30
3.2.5 橢圓曲線加密與簽名原理 37
3.3 比特幣私鑰、公鑰與地址 39
3.3.1 從私鑰到地址 39
3.3.2 公鑰壓縮 40
3.3.3 私鑰格式 41
3.3.4 私鑰與安全 41
3.4 比特幣交易 44
3.4.1 交易簡介 44
3.4.2 交易輸出 44
3.4.3 交易輸入 44
3.4.4 交易費 45
3.4.5 付款至公鑰哈希(P2PKH) 45
3.4.6 多重簽名與P2SH 46
3.5 比特幣錢包 46
3.5.1 錢包簡介 46
3.5.2 生成助記詞 47
3.5.3 從助記詞生成種子 48
3.5.4 從種子生成HD錢包 48
3.5.5 HD錢包密鑰路徑 50
3.6 比特幣相關資源 51
第4章 以太坊 52
4.1 以太坊簡介 52
4.1.1 什么是以太坊 52
4.1.2 以太坊虛擬機(EVM) 53
4.1.3 以太坊智能合約與高級語言 53
4.1.4 以太幣單位 54
4.1.5 以太坊發行版本與提案 54
4.2 以太坊賬戶 55
4.2.1 外部賬戶 55
4.2.2 合約賬戶 56
4.2.3 外部賬戶與合約賬戶的異同 56
4.3 以太坊交易 57
4.3.1 gas、gasPrice與gasLimit 57
4.3.2 gasUsed與交易花費 58
4.3.3 什么是以太坊交易與消息 58
4.4 以太坊網絡 59
4.4.1 以太坊網絡簡介 59
4.4.2 以太坊與Kademlia 59
4.4.3 以太坊客戶端 61
4.5 挖礦 62
4.5.1 什么是挖礦 62
4.5.2 挖礦獎勵 62
4.5.3 以太坊區塊 63
4.6 GHOST協議 64
4.6.1 區塊時間 64
4.6.2 區塊分叉 65
4.6.3 普通分叉帶來的問題 66
4.6.4 GHOST協議的具體內容 67
4.7 Ethash算法之DAG 68
4.7.1 什么是DAG 68
4.7.2 DAG生成過程 69
4.7.3 為什么要使用DAG 69
4.8 Ethash算法 70
4.8.1 Ethash算法簡介 70
4.8.2 Ethash算法流程 70
4.9 本章小結 71
第2篇 開發工具
第5章 智能合約開發常用工具 74
5.1 Git簡介 74
5.1.1 Git安裝 74
5.1.2 Git常用命令 75
5.1.3 Git資源推薦 76
5.2 Node.js簡介 76
5.2.1 什么是Node.js 76
5.2.2 Node.js安裝 77
5.3 NPM簡介 78
5.3.1 npm config命令 78
5.3.2 NPM與語義化版本 80
5.3.3 npm install命令 82
5.3.4 NPM鏡像 83
5.3.5 NPM的其他常用命令 84
5.4 webpack簡介 85
5.4.1 認識webpack 85
5.4.2 webpack首秀 85
5.4.3 webpack 與webpack-dev-server 87
5.4.4 webpack常用功能與配置 90
5.4.5 webpack總結 92
5.5 Postman簡介 92
5.5.1 認識Postman 93
5.5.2 Postman的簡單用法 94
5.5.3 Postman腳本 95
5.6 LevelDB簡介 96
5.6.1 認識LevelDB 96
5.6.2 LevelDB文件 97
5.6.3 SST結構與數據查找 99
第6章 以太坊私鏈神器——Ganache 102
6.1 Ganache簡介 102
6.1.1 什么是Ganache 102
6.1.2 ganache-cli命令安裝 103
6.1.3 Ganache圖形界面 104
6.2 Ganache常見命令參數 106
6.2.1 挖礦時間 106
6.2.2 主機端口與網絡 106
6.2.3 gas相關參數 106
6.2.4 其他參數 106
6.3 Ganache賬戶 107
6.3.1 能多給我點錢嗎 107
6.3.2 能多給我幾個賬戶嗎 108
6.3.3 助記詞相關參數 108
6.3.4 指定賬戶 108
6.3.5 鎖定賬戶與解鎖 109
6.4 Ganache與JavaScript 109
6.4.1 在工程中引用Ganache的Provider 109
6.4.2 在工程中啟動Ganache的Server 110
6.4.3 配置工程中依賴的Ganache 111
6.5 Ganache交易相關RPC方法 112
6.5.1 eth_sendTransaction方法 113
6.5.2 eth_getTransactionCount方法 115
6.5.3 eth_getTransactionReceipt方法 116
6.5.4 eth_getTransactionByHash方法 116
6.5.5 交易相關的其他方法 117
6.6 Ganache賬戶相關RPC方法 117
6.6.1 eth_accounts方法 118
6.6.2 eth_getBalance方法 118
6.6.3 eth_coinbase方法 119
6.7 Ganache區塊相關RPC方法 119
6.7.1 eth_getBlockByHash方法 119
6.7.2 eth_getBlockByNumber方法 122
6.7.3 其他相關方法 122
6.8 Ganache日志相關RPC方法 123
6.8.1 eth_newFilter方法 123
6.8.2 eth_getFilterLogs方法 124
6.8.3 eth_getLogs方法 125
6.8.4 其他關聯方法 126
6.9 Ganache的其他RPC方法 127
6.9.1 web3_clientVersion方法 127
6.9.2 net_version方法 127
6.9.3 eth_getCode方法 128
6.9.4 eth_sign方法 129
第7章 以太坊官方客戶端——Geth 130
7.1 Geth簡介 130
7.1.1 Geth是什么 130
7.1.2 Geth安裝 130
7.1.3 Geth相關目錄 132
7.1.4 Geth相關工具 134
7.2 Geth子命令 134
7.2.1 Geth子命令概述 135
7.2.2 Geth子命令之account 136
7.2.3 Geth子命令之console與attach 137
7.2.4 Geth子命令之copydb與removedb 137
7.3 Geth啟動參數 138
7.3.1 Geth數據同步模式 138
7.3.2 Geth網絡相關參數 138
7.3.3 Geth以太坊相關參數 139
7.3.4 Geth RPC相關參數 140
7.3.5 Geth挖礦相關參數 141
7.3.6 Geth ethash算法參數 142
7.3.7 Geth交易池配置 142
7.3.8 Geth日志參數 145
7.3.9 Geth的其他參數 146
7.4 Geth啟動實例 146
7.4.1 Geth啟動單個節點 146
7.4.2 Geth啟動多節點組網 148
7.5 Geth控制臺與管理接口 149
7.5.1 admin模塊 149
7.5.2 debug模塊 150
7.5.3 miner模塊 151
7.5.4 personal模塊 152
7.5.5 txpool模塊 153
7.6 keystore文件 153
7.6.1 keystore文件簡介 153
7.6.2 從密鑰到密鑰文件 154
7.6.3 從密鑰到密鑰文件流程驗證 155
第8章 以太坊錢包與瀏覽器 158
8.1 MetaMask插件 158
8.1.1 MetaMask簡介 158
8.1.2 MetaMask安裝 159
8.1.3 **次使用MetaMask 160
8.1.4 MetaMask的連接配置 161
8.1.5 MetaMask的其他配置 162
8.1.6 MetaMask賬戶管理 163
8.1.7 MetaMask交易 164
8.1.8 小結 165
8.2 Ethereum Wallet錢包 166
8.2.1 Ethereum Wallet簡介 166
8.2.2 安裝Ethereum Wallet與Mist 166
8.2.3 使用Ethereum Wallet 169
8.3 Mist與Ethereum Wallet 170
8.3.1 Ethereum Wallet與Mist的區別 171
8.3.2 Mist的配置與使用 171
8.3.3 小結 172
8.4 MyEtherWallet網頁錢包 172
8.4.1 MyEtherWallet簡介 173
8.4.2 MyEtherWallet合約交互 174
8.4.3 MyEtherWallet離線交易 175
8.4.4 MyEtherWallet的其他功能 177
第3篇 Solidity與智能合約開發
第9章 Solidity初遇 180
9.1 Solidity簡介 180
9.1.1 什么是Solidity 180
9.1.2 智能合約示例 181
9.1.3 Solidity編譯版本 182
9.2 Solidity編輯器 182
9.2.1 Sublime編輯器 182
9.2.2 Atom編輯器 185
9.2.3 IDEA編輯器 187
9.3 Remix編輯器 188
9.3.1 Remix簡介 188
9.3.2 Remix文件管理 189
9.3.3 Remix編輯面板與控制臺 190
9.3.4 Remix編譯與運行面板 191
9.3.5 Remix基本配置面板 193
9.3.6 Remix分析配置面板 194
9.4 Solidity常見概念 196
9.4.1 狀態變量 196
9.4.2 局部變量 196
9.4.3 Solidity函數 197
9.4.4 返回多值 197
9.4.5 構造函數 198
9.4.6 異常 200
9.4.7 Solidity注釋與文檔 201
9.5 Solidity運算符 203
9.5.1 Solidity運算符簡介 203
9.5.2 Solidity運算符注意事項 204
9.6 Solidity控制結構 205
9.6.1 控制結構簡介 205
9.6.2 判斷語句 205
9.6.3 for循環 206
9.6.4 while與do…while循環 206
9.6.5 continue與break 207
9.6.6 三目運算符 208
9.7 可見性修飾符 209
9.7.1 public修飾符 209
9.7.2 internal修飾符 210
9.7.3 private修飾符 213
9.7.4 external修飾符 214
9.8 函數其他修飾符 216
9.8.1 constant修飾符 216
9.8.2 view修飾符 217
9.8.3 pure修飾符 217
第10章 Solidity數據類型 219
10.1 數據類型簡介 219
10.1.1 值類型 219
10.1.2 引用類型 220
10.1.3 小結 221
10.2 Booleans類型 221
10.2.1 Booleans類型簡介 221
10.2.2 Booleans類型支持的運算符 221
10.3 Integers類型 223
10.3.1 Integers類型簡介 223
10.3.2 Integers類型支持的運算符 224
10.3.3 Integers整除問題 225
10.4 定點數類型 226
10.4.1 定點數類型簡介 226
10.4.2 定點數類型支持的運算符 227
10.5 字面量 227
10.5.1 字符串字面量 227
10.5.2 十六進制字面量 229
10.5.3 有理數字面量 230
10.6 Enum類型 231
10.6.1 枚舉類型簡介 231
10.6.2 枚舉類型實例 231
10.7 mapping類型 232
10.7.1 mapping類型簡介 232
10.7.2 mapping類型實例 232
10.8 struct類型 233
第11章 Solidity數據類型進階 235
11.1 Solidity固定大小字節數組 235
11.1.1 固定大小字節數組類型 235
11.1.2 固定大小字節數組支持
以太坊智能合約開發實戰 作者簡介
唐盛彬,就職于國內領先的手機游戲平臺當樂網(d.cn),主要負責當樂游戲中心App平臺的SDK及區塊鏈游戲眾籌平臺DOGI.IO的智能合約開發工作。熟悉以太坊,對以太坊底層原理和相關協議有較為深入的研究;熟悉以太坊智能合約開發的核心技術與常用工具,如Solidity語言、web3.js、Truffle和Geth等;對使用Solidity語言進行以太坊智能合約開發有豐富的實戰經驗,特別是在眾籌和代幣開發等相關領域。
- >
煙與鏡
- >
中國歷史的瞬間
- >
朝聞道
- >
羅曼·羅蘭讀書隨筆-精裝
- >
二體千字文
- >
小考拉的故事-套裝共3冊
- >
自卑與超越
- >
苦雨齋序跋文-周作人自編集