乙太坊 Solidity 智慧合約開發
嘉文
- 出版商: 機械工業
- 出版日期: 2020-03-01
- 定價: $354
- 售價: 8.5 折 $301
- 語言: 簡體中文
- 頁數: 259
- 裝訂: 平裝
- ISBN: 7111646428
- ISBN-13: 9787111646426
- 
    相關分類:
    
      區塊鏈 Blockchain
 
立即出貨 (庫存 < 4)
買這商品的人也買了...
- 
                
                   $505MATLAB GUI 程序設計 $505MATLAB GUI 程序設計
- 
                
                   $299深入淺出 SSD:固態存儲核心技術、原理與實戰 $299深入淺出 SSD:固態存儲核心技術、原理與實戰
- 
                
                   $414區塊鏈開發實戰:以太坊關鍵技術與案例分析 $414區塊鏈開發實戰:以太坊關鍵技術與案例分析
- 
                
                   區塊鏈智慧合約開發與安全防護實作 區塊鏈智慧合約開發與安全防護實作$480$408
- 
                
                   區塊鏈智能合約與 DApp 實務應用 區塊鏈智能合約與 DApp 實務應用$520$411
- 
                
                   數位影像處理 (Gonzalez & Woods : Digital Image Processing, 4/e) 數位影像處理 (Gonzalez & Woods : Digital Image Processing, 4/e)$880$862
- 
                
                   $403區塊鏈 DAPP 開發入門、代碼實現、場景應用 $403區塊鏈 DAPP 開發入門、代碼實現、場景應用
- 
                
                   $556電腦視覺與深度學習實戰:以 MATLAB、Python 為工具 $556電腦視覺與深度學習實戰:以 MATLAB、Python 為工具
- 
                
                   強者用 PyTorch:實作史上最經典 AI 範例 強者用 PyTorch:實作史上最經典 AI 範例$690$545
- 
                
                   $267圖像工程 (中冊):圖像分析, 4/e $267圖像工程 (中冊):圖像分析, 4/e
- 
                
                   GAN 對抗式生成網路 (GANs in Action: Deep learning with Generative Adversarial Networks) GAN 對抗式生成網路 (GANs in Action: Deep learning with Generative Adversarial Networks)$750$593
- 
                
                   小輕快跨平台:王的編輯器 Visual Studio Code 聖經 小輕快跨平台:王的編輯器 Visual Studio Code 聖經$880$695
- 
                
                   $322基於Matlab的數字圖像處理 $322基於Matlab的數字圖像處理
- 
                
                   $403深度學習理論及實戰 (MATLAB 版) $403深度學習理論及實戰 (MATLAB 版)
- 
                
                   $469區塊鏈應用開發指南 : 業務場景剖析與實戰 $469區塊鏈應用開發指南 : 業務場景剖析與實戰
- 
                
                   $296區塊鏈+:落地場景與應用實戰 $296區塊鏈+:落地場景與應用實戰
- 
                
                   $556MATLAB 2020 GUI 程序設計從入門到精通 $556MATLAB 2020 GUI 程序設計從入門到精通
- 
                
                   不當礦工當老闆:自己動手開發區塊鏈應用業務 不當礦工當老闆:自己動手開發區塊鏈應用業務$780$616
- 
                
                   秒懂設計模式 秒懂設計模式$480$379
- 
                
                   TensorFlow 深度學習 — 手把手教你掌握 100個精彩案例 (Python版) TensorFlow 深度學習 — 手把手教你掌握 100個精彩案例 (Python版)$534$507
- 
                
                   $301智能合約技術與開發 $301智能合約技術與開發
- 
                
                   $305區塊鏈+ 技術與實踐 $305區塊鏈+ 技術與實踐
- 
                
                   動手學 GitHub!現代人不能不知道的協同合作平台 動手學 GitHub!現代人不能不知道的協同合作平台$600$510
- 
                
                   Solidity 實戰全書:完整掌握智能合約!成為獨立開發 Dapp 的區塊鏈工程師 Solidity 實戰全書:完整掌握智能合約!成為獨立開發 Dapp 的區塊鏈工程師$650$507
- 
                
                   $332區塊鏈:技術原理與應用實踐 $332區塊鏈:技術原理與應用實踐
商品描述
本書從零開始介紹Solidity程式開發,從Solidity語言中基礎的關鍵字和語句開始介紹,逐步深入到高級應用,包括設計模式、
合約可升級的設計、合約的安全性問題及對策等,並結合EVM的實現,討論Solidity語句的彙編實現;對一些原理的講解,提供了相對應的實例,
以期更易於理解原理的實現機理;同時,對Solidity應用於DApp開發,及使用區塊鏈上的去中心化存儲(IPFS)也有詳細的介紹。
本書可作為對區塊鏈感興趣的程式開發人員、高校師生等的參考書,也可作為相關課程的培訓教材。
目錄大綱
前言
第1章乙太坊簡介1
1 .1乙太坊1
1 .1 .1不對稱加密體系2
1 .1 .2密碼學雜湊函數4
1 .1 .3對稱點對點網絡4
1 .1 .4區塊鏈4
1 .1 .5乙太坊虛擬機器5
1 .1 .6節點5
1 .1 .7礦工5
1 .1 .8工作量證明6
1 .1 .9去中心化應用6
1 .1 .10Solidity6
1 .2智能合約6
1 .3燃料7
1 .3 .1為什麼需要燃料?8
1 .3 .2燃料組成8
1 .4ether9
1 .5帳戶9
1 .6交易10
第2章預備知識11
2 .1簡單的例子11
2 .2工具準備12
2 .2 .1程式設計環境準備12
2 .2 .2程式設計工具準備16
2 .2 .3區塊鏈流覽器26
2 .3測試環境26
2 .3 .1MetaMask訪問測試環境27
2 .3 .2測試環境領取測試用幣27
2 .3 .3開發時連接測試環境28
2 .4乙太坊源碼編譯29
第3章Solidity程式設計基礎31
3 .1sol檔結構31
3 .1 .1編譯開關31
3 .1 .2引用其他原始檔案31
3 .1 .3註釋31
3 .1 .4合約32
3 .1 .5庫32
3 .1 .6接口33
3 .2合約檔結構33
3 .3變量類型33
3 .3 .1數值型別34
3 .3 .2參考類型35
3 .3 .3字典/映射37
3 .3 .4特殊情況37
3 .4操作符38
3 .5語句39
3 .5 .1條件陳述式39
3 .5 .2循環語句40
3 .5 .3其他40
3 .6修飾符40
3 .6 .1標準修飾符40
3 .6 .2自訂修飾符44
3 .7資料位置46
3 .8事件47
3 .8 .1智慧合約返回值給使用者接口48
3 .8 .2異步的帶資料的觸發器49
3 .8 .3一種比較便宜的存儲49
3 .8 .4事件裡的Indexed參數50
3 .9繼承51
3 .9 .1單繼承51
3 .9 .2多重繼承51
3 .10其他52
3 .10 .1內置52
3 .10 .2特殊單位54
3 .10 .3類型轉換及推斷55
3 .10 .4異常56
3 .10 .5彙編56
第4章Solidity程式設計的高級話題59
4 .1This關鍵字59
4 .2ERC20標準接口59
4 .2 .1方法61
4 .2 .2事件62
4 .2 .3OpenZepplin框架62
4 .3ERC721標準接口63
4 .3 .1ERC721接口定義63
4 .3 .2中繼資料擴展75
4 .3 .3可枚舉擴展77
4 .3 .4ERC165標準81
4 .4合約間調用82
4 .4 .1函式呼叫82
4 .4 .2依賴註入84
4 .4 .3消息調用84
4 .4 .4獲取合約間調用的返回值88
4 .5基礎演算法90
4 .6用Go與合約交互93
4 .6 .1創建項目93
4 .6 .2創建一個簡單的乙太坊合約93
4 .6 .3用Go訪問乙太坊合約94
4 .6 .4本地測試94
4 .6 .5連接到一個乙太坊節點98
4 .6 .6為帳戶創建加密的JSON鑰匙98
4 .6 .7最後驗證98
第5章ABI接口102
5 .1內存結構102
5 .2函數選擇子102
5 .3類型的定義102
5 .4EVM裡的資料表示103
5 .4 .1固定長度資料類型的表示104
5 .4 .2動態長度資料類型的表示105
5 .5編碼108
5 .5 .1簡單的例子108
5 .5 .2外部調用例子109
5 .5 .3外部方法調用的ABI編碼112
5 .6基於ABI的程式設計116
第6章智慧合約運行原理118
6 .1設計模式118
6 .1 .1合約自毀118
6 .1 .2工廠合約模式119
6 .1 .3名字登錄120
6 .1 .4映射反覆運算121
6 .1 .5撤出模式122
6 .2省燃料122
6 .2 .1註意資料類型123
6 .2 .2以字節編碼的形式存儲值123
6 .2 .3利用SOLC編譯器壓縮變量123
6 .2 .4使用彙編代碼壓縮變量124
6 .2 .5合併函數參數125
6 .2 .6使用默克爾樹證明減少存儲成本125
6 .2 .7無狀態的合約127
6 .2 .8在IPFS上存儲資料127
6 .2 .9位壓縮127
6 .2 .10批次處理128
6 .2 .11Storage結構類型讀寫分離129
6 .2 .12uint256和直接內存存儲130
6 .2 .13彙編代碼優化130
6 .3彙編代碼130
6 .3 .1棧131
6 .3 .2調用數據131
6 .3 .3內存132
6 .3 .4存儲133
6 .4解構智能合約134
6 .4 .1合約創建138
6 .4 .2合約本體通用部分141
6 .4 .3合約本體特定代碼145
第7章可升級的合約147
7 .1方法147
7 .1 .1代理合約147
7 .1 .2分離邏輯和資料147
7 .1 .3通過鍵值對來分離資料和邏輯147
7 .1 .4部分升級148
7 .1 .5比較148
7 .1 .6簡單的代理合約例子148
7 .2通用的代理模式150
7 .3Storage154
7 .3 .1繼承存儲154
7 .3 .2永久存儲154
7 .3 .3非結構化存儲155
7 .4Augur156
7 .4 .1合約部署156
7 .4 .2存儲部署157
7 .5Colony158
7 .5 .1存儲部署158
7 .5 .2合約部署159
7 .6總結159
第8章編寫安全的合約161
8 .1乙太坊已知常見漏洞 161
8 .1 .1上溢和下溢161
8 .1 .2Solidity可見性修飾符的差別165
8 .1 .3重入問題166
8 .1 .4出乎意料的ether操作170
8 .1 .5代理調用174
8 .1 .6默認可見性修飾符178
8 .1 .7熵隨機源180
8 .1 .8外部合約引用180
8 .1 .9短地址/參數攻擊184
8 .1 .10未驗證的CALL返回值185
8 .1 .11競爭條件186
8 .1 .12阻塞攻擊188
8 .1 .13操縱塊時間戳記190
8 .1 .14謹慎使用構造函數191
8 .1 .15未初始化的存儲指標192
8 .1 .16浮點數精度193
8 .1 .17交易授權194
8 .2乙太坊一些奇怪的特性195
8 .2 .1沒有Key的ether195
8 .2 .2一次性地址197
8 .2 .3一個交易的空投197
8 .3乙太坊智慧合約——最佳安全開發指南198
8 .3 .1儘早且明確的暴露問題198
8 .3 .2在支付時使用(pull)模式而不是(push)模式199
8 .3 .3函數代碼的順序:條件,行為,交互200
8 .3 .4留意平臺局限性201
8 .3 .5測試用例203
8 .3 .6容錯及自動

 
     
     
     
     
     
     
     
    