智能合約技術與開發

江海、熊麗兵、段虎

  • 出版商: 清華大學
  • 出版日期: 2022-03-01
  • 售價: $354
  • 貴賓價: 9.5$336
  • 語言: 簡體中文
  • ISBN: 7302595844
  • ISBN-13: 9787302595847
  • 立即出貨 (庫存 < 3)

  • 智能合約技術與開發-preview-1
  • 智能合約技術與開發-preview-2
  • 智能合約技術與開發-preview-3
智能合約技術與開發-preview-1

買這商品的人也買了...

商品描述

本書是區塊鏈智能合約開發中級教材的上冊,主要介紹了智能合約平臺部署和智能合約開發環境搭建,Solidity編程等相關知識。全書共分8章,內容包括區塊鏈智能合約開發概述、智能合約平臺、智能合約開發測試與部署、Solidity編程基礎、Solidity高級編程、Solidity合約與實例、智能合約安全、以太坊虛擬機。本書可用於“1+X”證書制度試點工作中的區塊鏈智能合約開發職業技能等級證書教學和培訓,也適合作為應用型本科、職業院校、技師學院的教材,同時也適合作為從事區塊鏈智能合約開發的技術人員的參考用書。

目錄大綱

目錄

第1章智能合約原理

1.1智能合約的定義

1.2為什麽需要智能合約

1.3智能合約的技術實現

1.4智能合約的模型

1.5智能合約的運行機制

第2章智能合約平臺

2.1以太坊概述

2.2以太坊架構

2.3智能合約

2.4賬戶

2.5賬戶狀態

2.6以太坊虛擬機

2.7gas

2.8以太坊交易

2.8.1價值傳遞

2.8.2創建智能合約

2.8.3調用合約方法

2.9區塊

2.10以太坊客戶端

2.10.1geth安裝

2.10.2geth使用

2.11以太坊錢包

2.12以太坊網絡

2.12.1主網網絡

2.12.2測試網絡

2.12.3私有網絡、開發者模式

2.12.4模擬區塊鏈網絡

2.12.5以太坊貨幣單位

2.13以太坊歷史回顧

2.13.1奧林匹克

2.13.2邊疆

2.13.3家園

2.13.4DAO分叉

2.13.5拜占庭

2.13.6君士坦丁堡

2.13.7伊斯坦布爾

2.13.8以太坊2.0

第3章智能合約的開發、測試與部署

3.1什麽是智能合約

3.2Remix

3.2.1基礎模塊

3.2.2典型模塊

3.2.3單元測試

第4章Solidity編程基礎

4.1Solidity中的變量

4.1.1狀態變量

4.1.2局部變量

4.1.3全局變量

4.1.4Solidity變量名

4.2Solidity數據類型

4.2.1值類型

4.2.2引用類型

4.2.3類型轉換

4.3函數調用

4.3.1參數

4.3.2返回值

4.3.3函數可見性

4.3.4狀態可變性(mutability)

4.4變量的作用域

4.5控制結構

4.6合約

4.6.1可見性

4.6.2構造函數

4.6.3使用new創建合約

4.6.4constant狀態常量

4.6.5immutable不可變量

4.6.6view()函數

4.6.7pure()函數

4.6.8getter()函數

4.6.9receive()函數

4.6.10fallback()函數

4.6.11函數修改器

4.6.12函數重載

4.6.13事件

4.7錯誤處理及異常

4.7.1錯誤處理函數

4.7.2require()還是assert()

4.7.3try/catch

4.8Solidity全局變量及API

4.8.1區塊和交易屬性API

4.8.2ABI編碼及解碼函數API

4.8.3數學和密碼學函數API

第5章Solidity高級編程

5.1合約繼承

5.1.1多重繼承

5.1.2父合約構造函數

5.1.3抽象合約

5.1.4函數重寫

5.2接口

5.3庫

5.3.1內嵌庫

5.3.2鏈接庫

5.3.3using for

5.4應用程序二進制接口

5.4.1ABI編碼

5.4.2函數選擇器

5.4.3參數編碼

5.4.4通過ABI編碼調用函數

5.4.5ABI接口描述

5.5gas優化

5.5.1變量打包

5.5.2選擇適合的數據類型

5.5.3內存和存儲

5.5.4減少存儲

5.5.5其他建議

5.6使用內聯匯編

5.6.1匯編基礎概念

5.6.2Solidity中引入匯編

5.6.3匯編變量定義與賦值

5.6.4匯編中的塊和作用域

5.6.5匯編中訪問變量

5.6.6for循環

5.6.7if判斷語句

5.6.8匯編switch語句

5.6.9匯編函數

5.6.10元組

5.6.11匯編缺點

第6章Solidity合約

6.1OpenZeppelin

6.2SafeMath安全算數運算

6.3地址工具

6.4ERC165接口實現

6.5ERC20代幣

6.5.1標準ERC20實現

6.5.2WETH實現

6.6ERC777功能型代幣

6.6.1ERC1820接口註冊表

6.6.2ERC777標準

6.6.3ERC777實現

6.6.4實現Hook函數

6.7ERC721

6.7.1ERC721代幣規範

6.7.2ERC721實現

第7章智能合約的安全性

7.1安全事件

7.2安全原則

7.3已知的經典漏洞攻擊方法

7.3.1重入攻擊

7.3.2算術溢出

7.3.3delegatecall導致意外代碼的執行

7.3.4未檢查返回值

7.3.5拒絕服務

7.3.6錯誤命名構造函數

7.4總結

第8章以太坊虛擬機

8.1什麽是以太坊虛擬機

8.1.1概述

8.1.2賬號

8.1.3交易

8.1.4gas

8.1.5存儲、主存和棧

8.1.6指令集

8.1.7消息調用

8.1.8代理調用/代碼調用和庫

8.1.9日誌

8.1.10創建合約

8.1.11移除合約

8.2EVM工作原理

8.2.1EVM解釋執行流程

8.2.2創建合約流程

8.2.3調用合約流程

8.2.4Solidity編譯為EVM字節碼

8.3EVM指令集

8.3.1算術運算指令

8.3.2位移運算指令

8.3.3比較操作指令

8.4gas

8.4.1執行階段的gas計量

8.4.2gas計量原則

8.4.3gas消耗和gas價格

8.4.4區塊的gas限制

8.5WASM拓展

8.5.1什麽是WASM

8.5.2WASM的特點

8.5.3WASM的優勢

8.5.4WASM有哪些對開發者友好的特點

8.5.5WASM在大型項目中的應用

參考文獻