-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

Solidity編程:構建以太坊和區塊鏈智能合約的初學者指南

( 簡體 字)
作者:〔印〕瑞提什·莫迪(Ritesh Modi)著類別:1. -> 程式設計 -> 區塊鏈
譯者:
出版社:機械工業出版社Solidity編程:構建以太坊和區塊鏈智能合約的初學者指南 3dWoo書號: 50537
詢問書籍請說出此書號!

缺書
NT售價: 295

出版日:1/1/2019
頁數:
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787111616009
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

我不太確定上次大量聽說關于政府、組織、社區和個人的技術的討論是什么時候。區塊鏈是一種正在世界各地各種組織中進行詳細討論和辯論的技術。區塊鏈不僅僅是一種有限影響我們生活的技術,而是對我們的生活產生了廣泛的影響。不遠的將來,區塊鏈將會觸及我們生活的方方面面——支付賬單,與任何組織進行交易,獲得工資,身份認證,教育結果,活動等。這只是開始,我們剛開始了解去中心化的含義及其影響。

我已經在區塊鏈領域工作了很長一段時間,并且一直是加密貨幣投資者。我是一名技術專家,對比特幣非常著迷,因為它架構奇特。我從未遇到過這樣優越的思維過程和架構,它不僅解決了經濟和社會問題,而且解決了一些技術上未解決的問題,如拜占庭式的一般問題和容錯。它在很大程度上解決了分布式計算的問題。

以太坊以幾乎相似的方式搭建,當第一次聽到并經歷智能合約時,我很敬畏。智能合約是在區塊鏈上部署去中心化應用程序并通過自定義邏輯、策略和規則輕松擴展的最大創新之一。

在編寫這本書時我心懷愉悅,并真誠地希望你也喜歡閱讀和實施Solidity。 我介紹了很多我的Solidity經驗,并盡我所能闡述清楚,希望這本書能讓你成為更好的Solidity開發人員和優秀的程序員。

如果有哪些我可以做的,能夠更好地改善你對這本書的體驗,我洗耳恭聽!

本書目的讀者

為了更好地閱讀本書的內容,需要計算和編程的基本概念和知識。如果你覺得自己沒有這方面的知識,可以通過快速閱讀針對初學者的編程書籍來滿足基本要求。本書主要面向使用區塊鏈為最終客戶和雇主提供高級服務的區塊鏈架構師、開發人員、顧問和IT工程師。如果你想在以太坊上編寫智能合約解決方案,那么本書對你來說非常理想。如果你已經擁有一些JavaScript經驗,那么可以幫助你加快學習速度。

本書主要內容

第1章介紹區塊鏈的基本原理、術語和行話、優勢、嘗試解決的問題以及行業相關性。本章將詳細解釋重要的概念和架構,還將介紹以太坊特有的概念。在本章中,將討論有關其外部擁有的賬戶、合約賬戶、gas和以太幣等概念。以太坊主要基于密碼學,你將了解用于創建交易和賬戶的散列、加解密算法。本章還將詳細解釋如何創建交易和賬戶,如何為每筆交易支付gas,消息調用和交易之間的差異,以及代碼存儲和狀態管理細節。

第2章將指導你使用以太坊平臺創建私有區塊鏈。以太坊生態系統中的另一個重要工具是ganache-cli。本章還將介紹如何安裝ganache-cli并使用它來部署Solidity合約,如何安裝Solidity并使用它來編譯Solidity合約。你還將安裝Mist,這是一個錢包,可以與私有鏈進行交互。Mist用于創建新賬戶,部署并使用合約。本章也將介紹交易中的挖礦。Remix是創建Solidity合約的絕佳工具。

第3章開始Solidity之旅。在本章中,你將通過了解不同版本以及如何使用預編譯指令來學習Solidity基礎知識。本章的另一個重要方面是如何構建智能合約,將從使用重要結構(如狀態變量、函數、常量函數、事件、修改器、fallback、枚舉和結構體)方面深入討論智能合約布局。本章討論并實現任何編程語言中最重要的元素——數據類型和變量,既有簡單數據類型也有復雜數據類型,既有值類型也有引用類型,既有存儲類型也有內存類型,我們會使用示例說明所有這些變量類型。

第4章提供與區塊和交易相關的全局函數和變量、與地址和合約相關的全局函數和變量的實現及使用細節。在一系列智能合約開發時,可以非常方便地使用這些內容。

第5章教你如何使用if ... else和switch語句編寫具有條件邏輯的合約和函數。循環是任何語言的重要組成部分,Solidity提供了while和for循環用于遍歷數組。本章給出了循環的示例和實現。必須根據一定的條件中斷循環,并根據其他條件繼續循環。

第6章是本書的核心章節。從這章開始,你將編寫真正的智能合約。本章將會討論如何編寫智能合約,如何定義和實現合約,如何使用new關鍵字和已知地址等不同機制創建和部署合約。Solidity提供了豐富的面向對象機制,本章將深入研究面向對象的概念和實現,如繼承、多繼承、聲明抽象類和接口,以及為抽象函數和接口提供實現方法。

第7章展示了如何實現接受輸入和返回輸出的基本函數,以及僅輸出現有狀態而不更改狀態和修改器的函數。修改器有助于在Solidity中更好地組織代碼,并有助于提高合約的安全性和重用合約中的代碼。fallback函數是重要的結構,在函數調用與任何現有函數簽名不匹配時執行。對于將以太幣發送到合約的情況,實現fallback函數也很重要。為了便于理解,將使用示例討論和實現修改器和fallback函數。

第8章從合約開發的角度來看是非常重要的。如果出現錯誤和異常,應將以太幣返回給調用者。本章將使用較新的Solidity結構(如assert、require和revert)深入解釋和實現異常處理,還將討論hrow語句。事件和日志記錄有助于理解合約和函數的執行,本章將展示和解釋事件和日志的實現。

第9章涵蓋了Truffle的基礎知識,你將理解它的概念,創建一個項目并理解項目結構,修改它的配置,通過一個示例了解編寫、測試、部署和遷移合約的整個生命周期。測試合約和編寫合約一樣重要。Truffle提供了測試框架,但還應該編寫測試用例。本章將討論單元測試的基礎知識,使用Solidity編寫單元測試,并對智能合約執行單元測試。通過創建交易并驗證其結果來執行單元測試,本章將展示編寫和執行單元測試的細節。

第10章將使用Remix和事件等多種工具展示如何解決和調試故障。 本章將介紹如何逐行執行代碼,檢查每行代碼執行后的狀態,并相應地更改合約代碼。

閱讀本書的前提條件

本書假定你具有編程的基本知識,理想情況下應具備任意腳本語言的背景。本書的大部分內容需要連接互聯網和使用瀏覽器。有些部分需要一臺機器來部署區塊鏈特定的工具和實用程序,可以使用云端或本地部署的物理機器或虛擬機器。

下載示例代碼

本書的示例代碼可以通過個人賬號下載,也可以訪問華章圖書官網,通過注冊并登錄個人賬號下載。
內容簡介:

Solidity是一種面向合約的語言,其語法受到JavaScript的很大影響,旨在幫助用戶編寫可運行于以太坊虛擬機上的代碼。本書將為你理解Solidity編程語言提供翔實參考,幫助你從頭開始構建以太坊和區塊鏈的智能合約。

本書首先簡要介紹區塊鏈、以太坊及其相關的重要概念或組件;隨后介紹如何安裝所有必要的工具來編寫、測試和調試以太坊上的Solidity合約;之后探索Solidity源文件的布局及如何使用不同的數據類型,介紹構建智能合約時使用的運算符、控制結構和數據結構;最后通過Solidity介紹面向對象編程中的函數調用、返回類型、函數修改器。通過本書,你將了解Solidity編寫合約的本質,掌握Solidity編程技能,能夠在以太坊上編寫、部署和測試智能合約。

通過閱讀本書,你將:

●  學習Solidity和以太坊的基礎知識和基本概念

●  深入探究Solidity語言及其獨特性

●  詳細了解如何使用Solidity編寫智能合約

●  學習開發和部署智能合約的主要工具

●  使用異常處理和錯誤檢查編寫防御性代碼

●  了解Truffle的基本知識和調試過程
目錄:

譯者序
前言
審校者簡介
第1章 區塊鏈、以太坊和智能合約 1
1.1 什么是區塊鏈 2
1.2 為什么是區塊鏈 3
1.3 加密技術 4
1.3.1 散列 5
1.3.2 數字簽名 7
1.4 以太幣 7
1.5 gas 8
1.6 區塊鏈和以太坊架構 9
1.6.1 區塊如何互相連接 10
1.6.2 交易和區塊如何互相連接 11
1.7 以太坊節點 12
1.7.1 EVM 12
1.7.2 以太坊挖礦節點 13
1.7.3 如何挖礦 14
1.8 以太坊賬戶 15
1.8.1 外部賬戶 16
1.8.2 合約賬戶 16
1.9 交易 16
1.10 區塊 20
1.11 端到端的交易 21
1.12 什么是合約 22
1.13 什么是智能合約 22
1.14 如何部署合約 27
1.15 本章小結 27
第2章 安裝以太坊和Solidity 29
2.1 以太坊網絡 29
2.1.1 主網 30
2.1.2 測試網絡 30
2.1.3 私有網絡 31
2.1.4 聯盟網絡 31
2.2 Geth 31
2.3 搭建一個私有網絡 35
2.4 ganache-cli 40
2.5 Solidity編譯器 43
2.6 web3 JavaScript庫 43
2.7 Mist錢包 45
2.8 MetaMask 47
2.9 本章小結 51
第3章 Solidity介紹 53
3.1 以太坊虛擬機 53
3.2 Solidity和Solidity文件 54
3.2.1 預編譯指令 55
3.2.2 注釋 56
3.2.3 import語句 57
3.2.4 合約 58
3.3 合約的結構 59
3.3.1 狀態變量 60
3.3.2 結構 62
3.3.3 修改器 63
3.3.4 事件 64
3.3.5 枚舉 65
3.3.6 函數 66
3.4 Solidity中的數據類型 68
3.4.1 值類型 68
3.4.2 引用類型 69
3.5 存儲和內存數據位置 71
3.5.1 規則1 71
3.5.2 規則2 71
3.5.3 規則3 72
3.5.4 規則4 72
3.5.5 規則5 72
3.5.6 規則6 74
3.5.7 規則7 75
3.5.8 規則8 76
3.6 字面量 77
3.7 整型 78
3.8 布爾型 79
3.9 字節數據類型 80
3.10 數組 82
3.10.1 固定數組 83
3.10.2 動態數組 83
3.10.3 特殊數組 84
3.10.4 數組屬性 86
3.11 數組的結構 86
3.12 枚舉 88
3.13 地址 89
3.14 映射 90
3.15 本章小結 94
第4章 全局變量和函數 97
4.1 var類型變量 97
4.2 變量聲明提前 99
4.3 變量作用域 100
4.4 類型轉換 101
4.4.1 隱式轉換 102
4.4.2 顯式轉換 102
4.5 區塊和交易全局變量 104
4.5.1 交易和消息全局變量 105
4.5.2 tx.origin 和msg.sender的區別 105
4.6 加密全局變量 106
4.7 地址全局變量 107
4.8 合約全局變量 107
4.9 本章小結 108
第5章 表達式和控制結構 109
5.1 Solidity表達式 109
5.2 if決策控制 111
5.3 while循環 113
5.4 for循環 114
5.5 do...while循環 115
5.6 break語句 116
5.7 continue語句 117
5.8 return語句 118
5.9 本章小結 119
第6章 編寫智能合約 121
6.1 智能合約 121
6.2 編寫一個簡單的合約 122
6.3 創建合約 123
6.3.1 使用new關鍵字 123
6.3.2 使用合約地址 124
6.4 構造函數 125
6.5 合約組合 126
6.6 繼承 127
6.6.1 單繼承 127
6.6.2 多級繼承 129
6.6.3 分層繼承 130
6.6.4 多重繼承 130
6.7 封裝 132
6.8 多態性 132
6.8.1 函數多態性 133
6.8.2 合約多態性 133
6.9 方法覆蓋 135
6.10 抽象合約 136
6.11 接口 137
6.12 本章小結 139
第7章 函數、修改器和fallback函數 141
7.1 函數輸入和輸出 141
7.2 修改器 143
7.3 view函數、constant函數和pure函數 146
7.4 地址相關函數 148
7.4.1 send方法 149
7.4.2 transfer方法 151
7.4.3 call方法 151
7.4.4 callcode方法 154
7.4.5 delegatecall方法 154
7.5 fallback函數 154
7.6 本章小結 157
第8章 異常、事件與日志 159
8.1 錯誤處理 160
8.1.1 require語句 160
8.1.2 assert語句 162
8.1.3 revert語句 163
8.2 事件與日志 163
8.3 本章小結 167
第9章 Truffle基礎與單元測試 169
9.1 應用程序開發生命周期管理 169
9.2 Truffle 170
9.3 使用Truffle進行開發 171
9.4 使用Truffle進行測試 176
9.5 本章小結 178
第10章 合約調試 179
10.1 調試 179
10.1.1 Remix編輯器 180
10.1.2 使用事件 183
10.2 使用Block Explorer 183
10.3 本章小結 186
序: