Solidity智能合約應用開發(微課版)
翟玉廣,賈麗潔,劉洪海
- 出版商: 人民郵電
- 出版日期: 2026-01-01
- 售價: $360
- 語言: 簡體中文
- 頁數: 217
- ISBN: 7115682054
- ISBN-13: 9787115682055
-
相關分類:
區塊鏈 Blockchain
尚未上市,歡迎預購
相關主題
商品描述
本書從初學者的角度出發,介紹智能合約應用開發的核心技術與編程語言語法。內容包括區塊鏈與智能合約的基本概念、智能合約的編寫與測試方法,以及智能合約在實際項目中的應用。重點講解Solidity編程語言的基本語法、函數定義與使用、面向對象編程技術,以及開發環境的配置和使用方法。本書通過有代表性的項目案例,指導學生實現智能合約的開發、部署與調試,並探討其在金融、管理、供應鏈等領域的應用。通過學習本書,學生能夠掌握智能合約的開發技能,並具備獨立開發智能合約應用的能力。
本書可以為職業院校學生學習智能合約應用開發提供系統性指導,幫助學生了解並掌握智能合約的基本概念與開發技能。
作者簡介
翟玉廣,碩士,高級工程師,副教授,濟南職業學院計算機系教師,省級優質校專業群、省級品牌專業群、省級精品課團隊、省級教學團隊、省級特色專業團隊主要成員。從事區塊鏈、人工智能、網絡技術等相關方向的教學和研究,主要講授《智能合約應用開發》、《聯盟鏈應用開發》、《Python程序設計》、《機器學習》、《智能視覺》、《Linux系統管理》、《數據庫系統管理》等專業和基礎課程。有多年企業軟件開發的工作經驗,長期從事軟件項目的設計和研發,參與出版了多部計算機類教材和課程資源建設,擁有多項軟件著作權和發明專利
目錄大綱
項目1 認識區塊鏈與智能合約 1
1.1 區塊鏈和以太坊 2
1.1.1 區塊鏈介紹 2
1.1.2 以太坊介紹 6
1.2 認識智能合約 6
1.2.1 智能合約介紹 6
1.2.2 智能合約原理 7
1.3 智能合約的開發環境 11
1.3.1 Remix 11
1.3.2 VS Code 16
任務1.1 在Remix上部署智能合約 19
任務1.2 在WeBASE-Front上部署智能合約 20
項目2 開啟Solidity編程之旅 25
2.1 基礎語法 26
2.1.1 基本編寫規則 26
2.1.2 基礎關鍵字 27
2.1.3 變量與常量 28
2.1.4 運算符優先級 29
2.2 數據類型 30
2.2.1 基本數據類型 30
2.2.2 覆合數據類型 33
2.3 字面量與單位 36
2.3.1 Solidity字面量 37
2.3.2 以太單位和時間單位 38
2.4 變量分類和存儲 40
2.4.1 變量分類與作用域 40
2.4.2 變量的存儲位置 41
2.5 條件語句 44
2.5.1 if條件語句 44
2.5.2 if...else條件語句 44
2.5.3 if...else if條件語句 45
2.6 循環語句 45
2.6.1 while循環 45
2.6.2 do...while循環 46
2.6.3 for循環 46
2.6.4 break及continue語句 47
任務2.1 查找100以內的質數 47
任務2.2 投票選舉統計 49
任務2.3 借書管理(一) 50
項目3 深入理解Solidity函數 55
3.1 函數的定義和調用 56
3.1.1 函數的定義 56
3.1.2 函數的調用 58
3.1.3 函數可見性與可變性 59
3.2 函數修飾器 62
3.2.1 函數修飾器的概念 62
3.2.2 函數修飾器的使用 63
3.3 構造函數與自毀函數 64
3.3.1 構造函數 64
3.3.2 自毀函數 65
3.4 函數重載 66
3.4.1 函數重載的概念 66
3.4.2 函數重載的使用 66
3.5 轉賬函數 67
3.5.1 轉賬的概念 67
3.5.2 接收以太的函數 67
3.5.3 發送以太的函數 71
3.6 加密函數與編碼函數 74
3.6.1 加密函數 74
3.6.2 編碼函數 75
任務3.1 眾籌合約 78
任務3.2 藏品拍賣 80
任務3.3 借書管理(二) 82
項目4 探索合約繼承與接口的使用 87
4.1 合約繼承 88
4.1.1 合約繼承的概念 88
4.1.2 合約繼承中的函數重寫 89
4.1.3 合約繼承中的構造函數 90
4.1.4 修飾器的繼承與重寫 91
4.2 抽象合約與接口 92
4.2.1 抽象合約 92
4.2.2 Solidity接口 93
4.3 Solidity庫 95
4.3.1 庫介紹 95
4.3.2 庫的使用方法 96
任務4.1 用戶管理接口 97
任務4.2 統計學生成績 99
任務4.3 借書管理(三) 101
項目5 處理合約中的異常與錯誤 107
5.1 異常處理的概念 108
5.1.1 智能合約中的異常與錯誤 108
5.1.2 拋出與捕獲異常 109
5.2 異常處理函數 110
5.2.1 require()函數 110
5.2.2 assert()函數 111
5.2.3 revert()函數 112
5.2.4 3個函數的區別 112
5.3 try/catch異常捕獲 114
5.3.1 try/catch的語法 114
5.3.2 主動拋出異常的捕獲 116
任務5.1 猜數遊戲 117
任務5.2 重入攻擊漏洞修覆 120
任務5.3 借書管理(四) 124
項目6 正確使用事件和日誌 130
6.1 日誌處理 131
6.1.1 Remix控制臺終端日誌 131
6.1.2 Solidity中的日誌函數 132
6.2 事件處理 133
6.2.1 事件的概念 133
6.2.2 事件的使用 133
任務6.1 電影評價管理 135
任務6.2 借書管理(五) 139
項目7 學習智能合約的測試方法 144
7.1 測試方法和步驟 145
7.1.1 智能合約測試方法 145
7.1.2 智能合約測試步驟 146
7.2 使用Truffle進行合約測試 146
7.2.1 測試環境的安裝 146
7.2.2 Truffle測試步驟 150
7.2.3 Truffle Console模式 157
7.3 Remix中的單元測試 159
7.3.1 啟用單元測試插件 159
7.3.2 Remix單元測試方法 160
任務7.1 投票合約的Truffle測試 163
任務7.2 影評管理合約的Truffle測試 165
項目8 Web3.js的使用與實踐 170
8.1 Web3.js介紹 171
8.1.1 Web3.js的概述 171
8.1.2 Web3.js的安裝 171
8.2 使用Web3.js訪問智能合約 174
8.2.1 通過腳本訪問合約 174
8.2.2 監聽合約中的事件 178
8.2.3 通過Web3.js進行轉賬 181
8.2.4 瀏覽器頁面中的合約交互 185
任務8.1 投票合約的HTML頁面 189
任務8.2 猜數遊戲的HTML頁面 196
項目9 綜合案例:校園物品共享系統 205
9.1 項目介紹 206
9.1.1 系統架構設計 206
9.1.2 系統功能設計 207
9.2 項目實現 208
9.2.1 定義狀態變量 208
9.2.2 實現功能函數 209
9.3 項目部署測試 213
9.4 項目總結 217
參考文獻 218
