| 失效鏈接處理 |
|
第一行代碼——以太坊 PDF 下載
轉(zhuǎn)載自:https://www.jb51.net/books/697209.html
本站整理下載:
版權(quán)歸出版社和原作者所有,鏈接已刪除,請購買正版
用戶下載說明:
電子版僅供預(yù)覽,下載后24小時(shí)內(nèi)務(wù)必刪除,支持正版,喜歡的請購買正版書籍:
http://product.dangdang.com/25344813.html
相關(guān)截圖:
![]()
資料簡介:
本書是一本區(qū)塊鏈開發(fā)技術(shù)圖書。本書立足實(shí)戰(zhàn),深入淺出地從零開始講解以太坊及相關(guān)技術(shù),包括區(qū)塊鏈的基礎(chǔ)概念和理論、利用以太坊創(chuàng)建私有區(qū)塊鏈、編寫智能合約、挖礦、Web3.js API、Solidity語言、Truffle框架、Ganache測試節(jié)點(diǎn)等技術(shù)。本書力求通俗易懂,實(shí)例豐富,步驟詳細(xì)。為了幫助讀者鞏固基礎(chǔ)知識(shí),本書*后還配有兩個(gè)綜合案例分別實(shí)現(xiàn)以太坊在金融領(lǐng)域(發(fā)布代幣)和非金融領(lǐng)域(DApp)的應(yīng)用。 本書適合于區(qū)塊鏈技術(shù)的學(xué)習(xí)者及從業(yè)者使用。
資料目錄:
前言 第1章 區(qū)塊鏈的基本概念與應(yīng)用場景 1.1 基本概念1 1.1.1 去中心化應(yīng)用(DApp) 1 1.1.2 DApp的內(nèi)部貨幣2 1.1.3 比特幣 2 1.1.4 工作量證明(PoW) 3 1.1.5 股權(quán)證明(PoS) 4 1.1.6 51%攻擊 4 1.1.7 以太坊 4 1.1.8 超級(jí)賬本項(xiàng)目 5 1.2 區(qū)塊鏈的應(yīng)用場景 5 1.2.1 金融領(lǐng)域6 1.2.2 征信管理7 1.2.3 資源共享7 1.2.4 物聯(lián)網(wǎng) 8 1.2.5 其他領(lǐng)域8 1.3 小結(jié) 9 第2章 創(chuàng)建第一個(gè)區(qū)塊鏈 2.1 以太坊(Ethereum)開發(fā)環(huán)境搭建 10 2.2 使用geth命令創(chuàng)建以太坊賬戶 13 2.3 刪除以太坊賬戶 15 2.4 gethJavaScript控制臺(tái) 16 2.5 建立私有區(qū)塊鏈與挖礦 18 2.6 小結(jié) 21 第3章 智能合約基礎(chǔ) 3.1 基礎(chǔ)知識(shí)22 3.1.1 Solidity語言概述23 3.1.2 用Solidity語言開發(fā)智能合約 23 3.1.3 使用Remix運(yùn)行智能合約 24 3.2 編寫和測試智能合約 27 3.2.1 安裝本地Remix環(huán)境(Windows、Mac OS X和Linux) 27 3.2.2 安裝testrpc28 3.2.3 使用testrpc測試智能合約 29 3.2.4 IntellijIDEA Solidity插件 33 3.2.5 將Solidity編譯工具與Intellij IDEA集成 36 3.3 其他智能合約IDE 38 3.3.1 VisualStudio擴(kuò)展 38 3.3.2 VisualStudio Code擴(kuò)展 40 3.3.3 SublimeText插件 42 3.4 Solidity工具 42 3.4.1 SolidityREPL 42 3.4.2 solgraph43 3.5 小結(jié) 45 第4章 以太坊節(jié)點(diǎn)與挖礦 4.1 什么是Web3.js46 4.2 安裝Web3.js47 4.3 連接testrpc節(jié)點(diǎn) 48 4.4 連接geth節(jié)點(diǎn) 49 4.5 HttpProvider與IPCProvider 51 4.6 發(fā)布與調(diào)用智能合約 53 4.6.1 編譯智能合約 53 4.6.2 創(chuàng)建以太坊賬戶 54 4.6.3 用Web3.jsAPI發(fā)布智能合約 54 4.6.4 挖礦與掙錢56 4.6.5 重新發(fā)布智能合約 57 4.7 自動(dòng)編譯智能合約 60 4.8 小結(jié) 64 第5章 以太坊中的Web技術(shù) 5.1 Node.js入門 65 5.1.1 使用Node.jsREPL 66 5.1.2 執(zhí)行JavaScript腳本文件 66 5.1.3 Node.jsIDE(WebStorm) 67 5.1.4 在WebStorm中編寫Node.js程序 68 5.2 Express入門 70 5.2.1 安裝express模塊 70 5.2.2 使用express模塊 72 5.2.3 用WebStorm創(chuàng)建Express工程 74 5.2.4 為Express工程添加路由 76 5.2.5 使用Handlebars模板 78 5.3 通過Web方式調(diào)用智能合約 78 5.3.1 在Web頁面中調(diào)用智能合約 79 5.3.2 在服務(wù)端(Node.js)調(diào)用智能合約 84 5.3.3 通過AJAX方式異步調(diào)用智能合約 88 5.4 小結(jié) 90 第6章 Web3.js API詳解 6.1 基礎(chǔ)知識(shí)91 6.1.1 Web3.js簡介 91 6.1.2 Web3.js開發(fā)環(huán)境搭建 92 6.2 Web3 API 93 6.2.1 設(shè)置和獲取Provider93 6.2.2 重置狀態(tài)94 6.2.3 獲取字符串的SHA3哈希碼 94 6.2.4 將值轉(zhuǎn)換為十六進(jìn)制字符串 95 6.2.5 十六進(jìn)制與ASCII互相轉(zhuǎn)換 97 6.2.6 十六進(jìn)制與十進(jìn)制互相轉(zhuǎn)換 98 6.2.7 將數(shù)值或十六進(jìn)制字符串轉(zhuǎn)換為BigNumber 98 6.2.8 使用BigNumber99 6.2.9 單位轉(zhuǎn)換101 6.2.10 核對賬戶地址是否有效 103 6.3 Web3.ethAPI 104 6.3.1 獲取和設(shè)置默認(rèn)賬戶 104 6.3.2 獲取和設(shè)置默認(rèn)區(qū)塊 104 6.3.3 獲取區(qū)塊的同步狀態(tài) 105 6.3.4 捕捉區(qū)塊同步狀態(tài) 106 6.3.5 獲取礦工地址 107 6.3.6 檢測當(dāng)前節(jié)點(diǎn)是否在挖礦 108 6.3.7 獲取以太坊燃料(gas)的平均價(jià)格 109 6.3.8 獲取以太坊節(jié)點(diǎn)中的賬號(hào)地址 109 6.3.9 獲取區(qū)塊編號(hào) 110 6.3.10 獲取賬戶的余額 112 6.3.11 獲取地址某一個(gè)位置存儲(chǔ)的值 113 6.3.12 獲取指定地址中的代碼 113 6.3.13 獲取區(qū)塊信息 114 6.3.14 獲取區(qū)塊中包含的交易數(shù) 116 6.3.15 獲取交易數(shù)據(jù) 117 6.3.16 獲取交易憑證 118 6.3.17 獲取賬戶發(fā)送的交易數(shù) 120 6.3.18 向以太坊網(wǎng)絡(luò)發(fā)送交易 120 6.3.19 發(fā)送簽名交易 122 6.3.20 用賬戶對數(shù)據(jù)進(jìn)行簽名 123 6.3.21 執(zhí)行以太坊虛擬機(jī)中的代碼 124 6.3.22 預(yù)估交易消耗的gas數(shù) 124 6.3.23 如何設(shè)置gas、gasLimit和gasPrice 125 6.4 小結(jié)128 第7章 Solidity語言詳解(一) 7.1 Solidity語言簡介129 7.2 Solidity語言基礎(chǔ)130 7.2.1 編譯器版本指令(pragma) 130 7.2.2 導(dǎo)入其他Solidity源代碼 文件(import) 132 7.2.3 用Web3.jsAPI發(fā)布多個(gè)智能合約 136 7.2.4 用Web3.jsAPI編譯多個(gè)智能合約 140 7.2.5 注釋142 7.3 值類型142 7.3.1 布爾類型(bool) 143 7.3.2 整數(shù)類型(int/uint) 144 7.3.3 浮點(diǎn)數(shù)(fixed) 145 7.3.4 地址類型(address) 145 7.3.5 獲取余額(balance)與轉(zhuǎn)賬(transfer) 146 7.3.6 另一種轉(zhuǎn)賬的方式(send) 149 7.3.7 固定長度的字節(jié)序列 150 7.4 引用類型152 7.4.1 數(shù)據(jù)存儲(chǔ)位置 152 7.4.2 可變長度的字節(jié)序列(bytes) 153 7.4.3 字符串(string)類型 154 7.4.4 使用bytes連接字符串 156 7.4.5 使用第三方庫連接字符串 158 7.4.6 枚舉類型(enum) 159 7.4.7 函數(shù)類型(function) 161 7.4.8 數(shù)組164 7.4.9 結(jié)構(gòu)體(struct) 168 7.5 映射(mapping) 170 7.6 小結(jié)172 第8章 Solidity語言詳解(二) 8.1 表達(dá)式與控制結(jié)構(gòu) 173 8.1.1 函數(shù)參數(shù)與函數(shù)返回值 173 8.1.2 控制結(jié)構(gòu)176 8.1.3 調(diào)用其他合約中的函數(shù) 179 8.1.4 函數(shù)的命名參數(shù) 181 8.1.5 通過new關(guān)鍵字創(chuàng)建合約對象 182 8.1.6 函數(shù)多返回值解構(gòu)和元組賦值 184 8.1.7 變量聲明和作用域 185 8.1.8 錯(cuò)誤處理186 8.2 計(jì)量單位與全局變量 187 8.2.1 以太計(jì)量單位 187 8.2.2 時(shí)間計(jì)量單位 189 8.2.3 block變量190 8.2.4 msg變量191 8.2.5 其他全局變量和函數(shù) 193 8.3 智能合約194 8.3.1 函數(shù)和狀態(tài)變量訪問權(quán)限 194 8.3.2 getter函數(shù)195 8.3.3 自定義修飾符(modifier) 197 8.3.4 常量201 8.3.5 view函數(shù)202 8.3.6 pure函數(shù)204 8.3.7 fallback函數(shù)205 8.3.8 函數(shù)重載206 8.3.9 事件207 8.3.10 合約繼承210 8.3.11 合約構(gòu)造函數(shù) 211 8.3.12 抽象合約211 8.3.13 接口213 8.4 小結(jié)214 第9章 Truffle與Ganache實(shí)戰(zhàn) 9.1 Truffle基礎(chǔ)215 9.1.1 安裝Truffle215 9.1.2 創(chuàng)建Truffle工程 216 9.1.3 Truffle工程的結(jié)構(gòu)216 9.1.4 在Truffle工程中創(chuàng)建自己的合約 217 9.1.5 編譯合約218 9.1.6 部署合約219 9.1.7 測試合約219 9.2 以太坊客戶端 220 9.2.1 Truffle內(nèi)置以太坊客戶端 220 9.2.2 Ganache概述221 9.2.3 安裝Ganache221 9.2.4 用Truffle在Ganache上發(fā)布合約 222 9.3 Truffle高級(jí)應(yīng)用224 9.3.1 用Solidity編寫測試代碼 224 9.3.2 用JavaScript編寫測試代碼 227 9.3.3 捕捉事件和異常 228 9.3.4 使用truffle-contractAPI調(diào)用 合約函數(shù) 231 9.3.5 寫Truffle擴(kuò)展腳本 232 9.4 小結(jié)234 第10章 項(xiàng)目實(shí)戰(zhàn):在以太坊上發(fā)行數(shù)字資產(chǎn) 10.1 數(shù)字資產(chǎn)原理 236 10.2 代幣合約239 10.2.1 ERC20Token接口 239 10.2.2 編寫代幣合約 242 10.2.3 測試代幣合約中的函數(shù) 245 10.2.4 測試代幣合約中的事件 247 10.3 在以太坊上發(fā)布和使用代幣 248 10.3.1 如何將代幣合約部署在以太坊上 249 10.3.2 安裝MetaMask擴(kuò)展 250 10.3.3 創(chuàng)建以太坊賬戶 251 10.3.4 免費(fèi)申請無限量的以太(ether) 254 10.3.5 在以太坊上部署代幣合約 257 10.3.6 代幣交易260 10.4 用Web3.jsAPI完成Titans幣的轉(zhuǎn)賬 265 10.5 以太幣和以太坊代幣的區(qū)別 269 10.6 互聯(lián)網(wǎng)的未來:DApp 270 10.7 小結(jié)271 第11章 項(xiàng)目實(shí)戰(zhàn):支持以太坊的小程序版云筆記 11.1 項(xiàng)目功能概述 272 11.2 微信小程序基礎(chǔ) 273 11.2.1 搭建小程序開發(fā)環(huán)境 273 11.2.2 創(chuàng)建小程序項(xiàng)目 275 11.3 云筆記智能合約 277 11.3.1 編寫和測試云筆記智能合約 277 11.3.2 將CloudNoteService合約部署到以太坊網(wǎng)絡(luò)上 279 11.4 用Note.js和Express開發(fā)小程序服務(wù)端程序 281 11.4.1 編寫調(diào)用CloudNoteService合約函數(shù)的Database類 281 11.4.2 測試Database類 289 11.4.3 為服務(wù)添加集中式存儲(chǔ)功能 291 11.4.4 添加為小程序服務(wù)端路由 294 11.5 開發(fā)云筆記客戶端 296 11.5.1 設(shè)計(jì)云筆記主頁面 296 11.5.2 實(shí)現(xiàn)云筆記主頁面的邏輯代碼 298 11.5.3 設(shè)計(jì)添加云筆記頁面 300 11.5.4 實(shí)現(xiàn)添加云筆記頁面的邏輯代碼 302 11.5.5 設(shè)計(jì)云筆記列表頁面 304 11.5.6 實(shí)現(xiàn)云筆記列表頁面的邏輯代碼 305 11.5.7 設(shè)計(jì)云筆記編輯頁面 307 11.5.8 實(shí)現(xiàn)云筆記編輯頁面的邏輯代碼 309
11.6 小結(jié)310 |




蘇公網(wǎng)安備 32061202001004號(hào)


