定 價(jià):¥99.00
作 者: | 楊鎮(zhèn),姜信寶,朱智勝,蓋方宇 |
出版社: | 機(jī)械工業(yè)出版社 |
叢編項(xiàng): | |
標(biāo) 簽: | 暫缺 |
ISBN: | 9787111623724 | 出版時(shí)間: | 2019-04-01 | 包裝: | 平裝 |
開(kāi)本: | 16開(kāi) | 頁(yè)數(shù): | 400 | 字?jǐn)?shù): |
推薦序
贊譽(yù)
前言
第一部分 準(zhǔn)備篇
第1章 快速了解以太坊2
1.1 以太坊是什么2
1.2 以太坊的歷史和發(fā)展路線圖5
1.3 以太坊的基本概念8
1.3.1 賬戶(accounts)8
1.3.2 合約(contracts)9
1.3.3 交易(transaction)和消息(message)9
1.3.4 氣(gas)10
1.4 以太幣(ether)12
1.4.1 以太幣的發(fā)行12
1.4.2 以太幣的單位13
1.4.3 以太坊挖礦13
1.5 以太坊測(cè)試網(wǎng)絡(luò)13
1.6 以太坊客戶端14
1.7 以太坊生態(tài)系統(tǒng)全景掃描15
1.7.1 Swarm15
1.7.2 ENS15
1.7.3 Whisper16
1.7.4 其他相關(guān)項(xiàng)目16
1.8 本章小結(jié)17
第2章 以太坊基礎(chǔ)交互及基礎(chǔ)開(kāi)發(fā)工具詳解18
2.1 以太坊客戶端的下載、安裝及簡(jiǎn)介18
2.1.1 Geth下載18
2.1.2 Geth安裝19
2.1.3 Geth啟動(dòng)與數(shù)據(jù)目錄結(jié)構(gòu)20
2.1.4 網(wǎng)絡(luò)環(huán)境分類20
2.2 核心命令和參數(shù)解析21
2.2.1 如何獲得命令及參數(shù)21
2.2.2 常見(jiàn)基礎(chǔ)操作命令22
2.2.3 常見(jiàn)web3j交互命令23
2.3 Remix詳解26
2.3.1 Remix簡(jiǎn)介26
2.3.2 Remix實(shí)戰(zhàn)27
2.4 本章小結(jié)32
第二部分 基礎(chǔ)篇
第3章 智能合約開(kāi)發(fā)語(yǔ)言Solidity基礎(chǔ)34
3.1 智能合約與Solidity簡(jiǎn)介34
3.2 Solidity基礎(chǔ)語(yǔ)法35
3.2.1 版本雜注35
3.2.2 import的用法35
3.2.3 代碼注釋36
3.2.4 數(shù)據(jù)類型36
3.2.5 全局變量52
3.2.6 表達(dá)式和控制結(jié)構(gòu)55
3.3 Solidity語(yǔ)言速查表63
3.4 Solidity源代碼書(shū)寫(xiě)風(fēng)格68
3.5 本章小結(jié)82
第4章 Solidity編譯器83
4.1 安裝Solidity編譯器83
4.1.1 直接獲取可執(zhí)行程序包83
4.1.2 從源代碼編譯構(gòu)建84
4.1.3 Solidity編譯器版本號(hào)詳解86
4.2 使用Solidity編譯器87
4.2.1 命令行編譯器87
4.2.2 編譯器輸入、輸出的JSON描述88
4.3 合約元數(shù)據(jù)93
4.4 本章小結(jié)96
第5章 Solidity智能合約編寫(xiě)97
5.1 創(chuàng)建智能合約97
5.2 可見(jiàn)性控制99
5.3 getter函數(shù)100
5.4 函數(shù)修飾器102
5.5 狀態(tài)常量104
5.6 函數(shù)104
5.6.1 view函數(shù)105
5.6.2 pure函數(shù)105
5.6.3 fallback函數(shù)106
5.6.4 函數(shù)重載107
5.7 事件108
5.8 繼承110
5.8.1 基類構(gòu)造函數(shù)110
5.8.2 多重繼承111
5.8.3 線性化114
5.9 抽象智能合約114
5.10 接口115
5.11 庫(kù)116
5.12 using for的用法119
5.13 本章小結(jié)121
第6章 Solidity集成開(kāi)發(fā)工具簡(jiǎn)介122
6.1 Truffle122
6.1.1 Truffle簡(jiǎn)介122
6.1.2 快速體驗(yàn)123
6.1.3 用Truffle的開(kāi)發(fā)過(guò)程124
6.1.4 Truffle高級(jí)用法134
6.2 Embark136
6.2.1 Embark安裝137
6.2.2 Embark快速開(kāi)始138
6.2.3 Embark常規(guī)用法139
6.2.4 智能合約的配置與調(diào)用143
6.2.5 Embark去中心化存儲(chǔ)145
6.2.6 Embark去中心化通信148
6.3 其他工具(Remix)149
6.3.1 Solidity編輯與編譯149
6.3.2 Solidity合約部署150
6.4 本章小結(jié)151
第三部分 進(jìn)階篇
第7章 深入理解以太坊虛擬機(jī)154
7.1 區(qū)塊鏈范式154
7.2 狀態(tài)、交易、收據(jù)和區(qū)塊155
7.2.1 狀態(tài)155
7.2.2 交易156
7.2.3 收據(jù)157
7.2.4 區(qū)塊158
7.2.5 以太坊基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)匯總160
7.2.6 理解gas161
7.3 交易執(zhí)行162
7.4 執(zhí)行模型—以太坊虛擬機(jī)163
7.4.1 EVM概述164
7.4.2 EVM基礎(chǔ)操作碼164
7.4.3 EVM代碼的執(zhí)行166
7.5 合約創(chuàng)建167
7.6 消息調(diào)用168
7.7 區(qū)塊定稿170
7.8 本章小結(jié)172
第8章 應(yīng)用二進(jìn)制接口174
8.1 函數(shù)選擇器174
8.2 參數(shù)編碼175
8.2.1 類型的規(guī)范表達(dá)175
8.2.2 編碼的形式化說(shuō)明176
8.2.3 編碼實(shí)例178
8.3 動(dòng)態(tài)類型的使用180
8.4 事件184
8.5 合約接口的JSON描述185
8.6 處理元組類型186
8.7 非標(biāo)準(zhǔn)打包模式188
8.8 本章小結(jié)189
第9章 OpenZeppelin源代碼詳解190
9.1 通用基礎(chǔ)合約191
9.1.1 地址工具(AddressUtils.sol)191
9.1.2 橢圓曲線簽名操作(ECRecovery.sol)192
9.1.3 限制子合約的余額(LimitBalance.sol)194
9.1.4 Merkle證明(Merkle-Proof.sol)195
9.1.5 拒絕重入(Reentrancy-Guard.sol)196
9.2 算術(shù)運(yùn)算197
9.2.1 基本算術(shù)(Math.sol)197
9.2.2 安全算術(shù)(SafeMath.sol)198
9.3 自?。╥ntrospection)200
9.3.1 ERC165(ERC165.sol)200
9.3.2 接口查找基礎(chǔ)合約(Supports-InterfaceWithLookup.sol)201
9.4 歸屬權(quán)(用戶權(quán)限)202
9.4.1 歸屬權(quán)(Ownable.sol)202
9.4.2 用戶角色(Roles.sol)204
9.4.3 基于角色的訪問(wèn)控制(RBAC.sol)205
9.4.4 超級(jí)用戶(Superuser.sol)208
9.4.5 聯(lián)系方式(Contactable.sol)210
9.4.6 歸屬權(quán)轉(zhuǎn)移請(qǐng)求(Claimable.sol)210
9.4.7 有時(shí)限的歸屬權(quán)轉(zhuǎn)移請(qǐng)求(DelayedClaimable.sol)211
9.4.8 歸屬權(quán)繼承(Heritable.sol)212
9.4.9 合約不歸屬于合約(HasNoContracts.sol)215
9.4.10 合約不持有以太幣(HasNoEther.sol)216
9.4.11 合約可找回token(Can-ClaimToken.sol)218
9.4.12 合約不持有token(HasNo-Tokens.sol)218
9.4.13 合約什么都不持有(NoOwner.sol)219
9.5 訪問(wèn)控制220
9.5.1 簽名保