注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書科學技術(shù)工業(yè)技術(shù)建筑科學建筑設(shè)計深入以太坊智能合約開發(fā)

深入以太坊智能合約開發(fā)

深入以太坊智能合約開發(fā)

定 價:¥99.00

作 者: 楊鎮(zhèn),姜信寶,朱智勝,蓋方宇
出版社: 機械工業(yè)出版社
叢編項:
標 簽: 暫缺

ISBN: 9787111623724 出版時間: 2019-04-01 包裝: 平裝
開本: 16開 頁數(shù): 400 字數(shù):  

內(nèi)容簡介

  這是一部能指導讀者從入門到進階的以太坊智能合約開發(fā)指南。HiBlock區(qū)塊鏈技術(shù)社區(qū)官方出品,4位區(qū)塊鏈技術(shù)專家聯(lián)合撰寫。 從開發(fā)工具與生態(tài)、編程語言(Solidity)、編寫方法、實踐、以太坊虛擬機、合約安全、軟件工程等維度全景呈現(xiàn)以太坊智能合約開發(fā)的各個方面。更重要的是,以實戰(zhàn)為導向,包含若干個翔實、完整的DApp案例講解。 全書共12章,分為4個部分: 準備篇(第1~2章) 介紹了以太坊的必備常識、基礎(chǔ)交互和開發(fā)工具套件。 基礎(chǔ)篇(第3~6章) 詳細講解了智能合約開發(fā)語言 Solidity 的所有語法和編寫合約的基本方法,同時也介紹了編譯器和 Solidity 集成開發(fā)工具的使用。 進階篇(第7~10章) 首先詳細講解了以太坊協(xié)議的細節(jié)和以太坊虛擬機的實現(xiàn)原理和架構(gòu)設(shè)計;然后講解了用于以太坊虛擬機函數(shù)調(diào)用的應(yīng)用二進制編碼的細節(jié),以及公共基礎(chǔ)合約庫 openzeppelin-solidity 的源碼實現(xiàn);*后為智能合約的安全開發(fā)提供了經(jīng)驗性的指導,有極高的參考價值。 實戰(zhàn)篇(第11~12章) 結(jié)合若干 DApp 實例講解了如何基于智能合約來構(gòu)造可用的去中性化應(yīng)用程序。這部分內(nèi)容可以幫助開發(fā)者快速上手構(gòu)建基于以太坊的新一代互聯(lián)網(wǎng)應(yīng)用程序。 本書的附錄中還包含了對以太坊協(xié)議中涉及的部分基礎(chǔ)算法、以太坊虛擬機的費用設(shè)計和指令設(shè)計、 Solidity 內(nèi)聯(lián)匯編等的簡單介紹。

作者簡介

  楊鎮(zhèn) 國內(nèi)區(qū)塊鏈與智能合約領(lǐng)域的技術(shù)專家,有15年的一線軟件研發(fā)和工程項目經(jīng)驗。對以太坊相關(guān)技術(shù)有非常深入的研究,活躍于各個中文區(qū)塊鏈技術(shù)社區(qū),致力于區(qū)塊鏈、智能合約技術(shù)的推廣以及企業(yè)級區(qū)塊鏈應(yīng)用落地的探索。 軟件工程師、架構(gòu)師,區(qū)塊鏈和智能合約技術(shù)布道師、獨立講師。 2018 年初對以太坊黃皮書的中譯版做了獨立校訂和增補更新,并作為管理員和主要校訂人參與了 Solidity 文檔的中譯項目。2018 年 8 月獨立開發(fā)了國內(nèi)為數(shù)不多的以太坊智能合約高級開發(fā)課程(在線視頻課程)。2018 年底作為譯者參加了《精通以太坊》(Mastering Ethereum)中文版(即將出版)的制作工作。截止到 2018 年底,已進行了數(shù)十次線上、線下的區(qū)塊鏈或智能合約技術(shù)分享交流,是區(qū)塊鏈和智能合約領(lǐng)域頗受歡迎的技術(shù)布道師。姜信寶 HiBlock區(qū)塊鏈社區(qū)(HiBlock.One)創(chuàng)始人,專注于區(qū)塊鏈技術(shù)的研究、培訓和推廣。HiBlock區(qū)塊鏈社區(qū)成立于2018年,曾組織Solidity(0.4.22)中文版翻譯項目,線下區(qū)塊鏈技術(shù)沙龍活動60余次,黑客馬拉松3次。 Scrum聯(lián)盟認證講師(Certified Scrum Trainer),敏捷變革中心合伙人,從事敏捷Scrum推廣與宣傳等工作十余年,曾擔任京東敏捷顧問。 朱智勝 軟件工程師、架構(gòu)師,有近10年的一線軟件開發(fā)與架構(gòu)經(jīng)驗,長期從事第三方支付及金融相關(guān)領(lǐng)域的研發(fā)工作。 曾參與火幣錢包及交易所開發(fā),后參與多家交易所和DAPP項目的開發(fā),對以太坊技術(shù)有深入的研究。 熱衷于技術(shù)分享,是CSDN博客專家和講師。獨立完成兩套Drools規(guī)則引擎視頻教程和規(guī)則引擎官方技術(shù)文檔的翻譯。蓋方宇 區(qū)塊鏈技術(shù)專家,一直積極鉆研區(qū)塊鏈底層技術(shù),對比特幣、以太坊等主流公鏈以及底層的共識算法具有比較深刻的理解。同時熱衷于DApp開發(fā),精通Solidity語言,是Solidity官方文檔中譯項目的主要貢獻者之一。目前主要關(guān)注區(qū)塊鏈二層擴容技術(shù),對狀態(tài)通道(State Channel)、側(cè)鏈(Sidechain)頗有研究,是“深入理解Plasma”系列的原創(chuàng)作者。 研究方向包括分布式系統(tǒng)、計算機網(wǎng)絡(luò)、信息安全以及區(qū)塊鏈系統(tǒng),多次在國際學術(shù)會議和期刊上發(fā)表論文。

圖書目錄

推薦序
贊譽
前言
第一部分 準備篇
第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 以太坊測試網(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)項目16
1.8 本章小結(jié)17
第2章 以太坊基礎(chǔ)交互及基礎(chǔ)開發(fā)工具詳解18
2.1 以太坊客戶端的下載、安裝及簡介18
2.1.1 Geth下載18
2.1.2 Geth安裝19
2.1.3 Geth啟動與數(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 常見基礎(chǔ)操作命令22
2.2.3 常見web3j交互命令23
2.3 Remix詳解26
2.3.1 Remix簡介26
2.3.2 Remix實戰(zhàn)27
2.4 本章小結(jié)32
第二部分 基礎(chǔ)篇
第3章 智能合約開發(fā)語言Solidity基礎(chǔ)34
3.1 智能合約與Solidity簡介34
3.2 Solidity基礎(chǔ)語法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 表達式和控制結(jié)構(gòu)55
3.3 Solidity語言速查表63
3.4 Solidity源代碼書寫風格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編譯器版本號詳解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智能合約編寫97
5.1 創(chuàng)建智能合約97
5.2 可見性控制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 庫116
5.12 using for的用法119
5.13 本章小結(jié)121
第6章 Solidity集成開發(fā)工具簡介122
6.1 Truffle122
6.1.1 Truffle簡介122
6.1.2 快速體驗123
6.1.3 用Truffle的開發(fā)過程124
6.1.4 Truffle高級用法134
6.2 Embark136
6.2.1 Embark安裝137
6.2.2 Embark快速開始138
6.2.3 Embark常規(guī)用法139
6.2.4 智能合約的配置與調(diào)用143
6.2.5 Embark去中心化存儲145
6.2.6 Embark去中心化通信148
6.3 其他工具(Remix)149
6.3.1 Solidity編輯與編譯149
6.3.2 Solidity合約部署150
6.4 本章小結(jié)151
第三部分 進階篇
第7章 深入理解以太坊虛擬機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í)行模型—以太坊虛擬機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)用二進制接口174
8.1 函數(shù)選擇器174
8.2 參數(shù)編碼175
8.2.1 類型的規(guī)范表達175
8.2.2 編碼的形式化說明176
8.2.3 編碼實例178
8.3 動態(tài)類型的使用180
8.4 事件184
8.5 合約接口的JSON描述185
8.6 處理元組類型186
8.7 非標準打包模式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ù)運算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 基于角色的訪問控制(RBAC.sol)205
9.4.4 超級用戶(Superuser.sol)208
9.4.5 聯(lián)系方式(Contactable.sol)210
9.4.6 歸屬權(quán)轉(zhuǎn)移請求(Claimable.sol)210
9.4.7 有時限的歸屬權(quán)轉(zhuǎn)移請求(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 訪問控制220
9.5.1 簽名保

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號