幫助中心 | 我的帳號 | 關於我們

以太坊Solidity智能合約開發

  • 作者:編者:嘉文//管健//李萬勝|責編:吉玲//任正一
  • 出版社:機械工業
  • ISBN:9787111646426
  • 出版日期:2020/03/01
  • 裝幀:平裝
  • 頁數:259
人民幣:RMB 59 元      售價:
放入購物車
加入收藏夾

內容大鋼
    本書從零開始介紹Solidity程序開發,從Solidity語言中基礎的關鍵字和語句開始介紹,逐步深入到高級應用,包括設計模式、合約可升級的設計、合約的安全性問題及對策等,並結合EVM的實現,討論solidity語句的彙編實現;對一些原理的講解,提供了相對應的實例,以期更易於理解原理的實現機理;同時,對solidity應用於DApp開發,及使用區塊鏈上的去中心化存儲(IPFs)也有詳細的介紹。
    本書可作為對區塊鏈感興趣的程序開發人員、高校師生等的參考書,也可作為相關課程的培訓教材。

作者介紹
編者:嘉文//管健//李萬勝|責編:吉玲//任正一

目錄
前言
第1章  以太坊簡介
  1.1  以太坊
    1.1.1  不對稱加密體系
    1.1.2  密碼學哈希函數
    1.1.3  對稱點對點網路
    1.1.4  區塊鏈
    1.1.5  以太坊虛擬機
    1.1.6  節點
    1.1.7  礦工
    1.1.8  工作量證明
    1.1.9  去中心化應用
    1.1.10  Solidity
  1.2  智能合約
  1.3  燃料
    1.3.1  為什麼需要燃料
    1.3.2  燃料組成
  1.4  ether
  1.5  賬戶
  1.6  交易
第2章  預備知識
  2.1  簡單的例子
  2.2  工具準備
    2.2.1  編程環境準備
    2.2.2  編程工具準備
    2.2.3  區塊鏈瀏覽器
  2.3  測試環境
    2.3.1  MetaMask訪問測試環境
    2.3.2  測試環境領取測試用幣
    2.3.3  開發時連接測試環境
  2.4  以太坊源碼編譯
第3章  Solidity編程基礎
  3.1  sol文件結構
    3.1.1  編譯開關
    3.1.2  引用其他源文件
    3.1.3  註釋
    3.1.4  合約
    3.1.5  庫
    3.1.6  介面
  3.2  合約文件結構
  3.3  變數類型
    3.3.1  值類型
    3.3.2  引用類型
    3.3.3  字典/映射
    3.3.4  特殊情況
  3.4  操作符
  3.5  語句
    3.5.1  條件語句
    3.5.2  循環語句
    3.5.3  其他

  3.6  修飾符
    3.6.1  標準修飾符
    3.6.2  自定義修飾符
  3.7  數據位置
  3.8  事件
    3.8.1  智能合約返回值給用戶介面
    3.8.2  非同步的帶數據的觸發器
    3.8.3  一種比較便宜的存儲
    3.8.4  事件里的Indexed參數
  3.9  繼承
    3.9.1  單繼承
    3.9.2  多重繼承
  3.10  其他
    3.10.1  內置
    3.10.2  特殊單位
    3.10.3  類型轉換及推斷
    3.10.4  異常
    3.10.5  彙編
第4章  Solidity編程的高級話題
  4.1  This關鍵字
  4.2  ERC20標準介面
    4.2.1  方法
    4.2.2  事件
    4.2.3  OpenZepplin框架
  4.3  ERC721標準介面
    4.3.1  ERC721介面定義
    4.3.2  元數據擴展
    4.3.3  可枚舉擴展
    4.3.4  ERC165標準
  4.4  合約間調用
    4.4.1  函數調用
    4.4.2  依賴注入
    4.4.3  消息調用
    4.4.4  獲取合約間調用的返回值
  4.5  基礎演算法
  4.6  用G0與合約交互
    4.6.1  創建項目
    4.6.2  創建一個簡單的以太坊合約
    4.6.3  用Go訪問以太坊合約
    4.6.4  本地測試
    4.6.5  連接到一個以太坊節點
    4.6.6  為賬戶創建加密的JsON鑰匙
    4.6.7  最後驗證
第5章  ABI介面
  5.1  內存結構
  5.2  函數選擇子
  5.3  類型的定義
  5.4  EVM里的數據表示
    5.4.1  固定長度數據類型的表示
    5.4.2  動態長度數據類型的表示

  5.5  編碼
    5.5.1  簡單的例子
    5.5.2  外部調用例子
    5.5.3  外部方法調用的ABI編碼
  5.6  基於ABI的編程
第6章  智能合約運行原理
  6.1  設計模式
    6.1.1  合約自毀
  6.1  _2 工廠合約模式
    6.1.3  名字登錄
    6.1.4  映射迭代
    6.1.5  撤出模式
  6.2  省燃料
    6.2.1  注意數據類型
    6.2.2  以位元組編碼的形式存儲值
    6.2.3  利用SOLc編譯器壓縮變數
    6.2.4  使用彙編代碼壓縮變數
    6.2.5  合併函數參數
    6.2.6  使用默克爾樹證明減少存儲成本
    6.2.7  無狀態的合約
    6.2.8  在IPFS上存儲數據
    6.2.9  位壓縮
    6.2.10  批處理
    6.2.11  Storage結構類型讀寫分離
    6.2.12  uint256和直接內存存儲
    6.2.13  彙編代碼優化
  6.3  彙編代碼
    6.3.1  棧
    6.3.2  調用數據
    6.3.3  內存
    6.3.4  存儲
  6.4  解構智能合約
    6.4.1  合約創建
    6.4.2  合約本體通用部分
    6.4.3  合約本體特定代碼
第7章  可升級的合約
  7.1  方法
    7.1.1  代理合約
    7.1.2  分離邏輯和數據
    7.1.3  通過鍵值對來分離數據和邏輯
    7.1.4  部分升級
    7.1.5  比較
    』7.1.6  簡單的代理合約例子
  7.2  通用的代理模式
  7.3  btorage
    7.3.1  繼承存儲
    7.3.2  永久存儲
    7.3.3  非結構化存儲
  7.4  Augur
    7.4.1  合約部署

    7.4.2  存儲部署
  7.5  Colony
    7.5.1  存儲部署
    7.5.2  合約部署
  7.6  總結
第8章  編寫安全的合約
  8.1  以太坊已知常見漏洞
    8.1.1  上溢和下溢
    8.1.2  Solidity可見性修飾符的差別
    8.1.3  重入問題
    8.1.4  出乎意料的ether操作
    8.1.5  代理調用
    8.1.6  默認可見性修飾符
    8.1.7  熵隨機源
    8.1.8  外部合約引用
    8.1.9  短地址/參數攻擊
    8.1.10  未驗證的cALL返回值
    8.1.11  競爭條件
    8.1.12  阻塞攻擊
    8.1.13  操縱塊時間戳
    8.1.14  謹慎使用構造函數
    8.1.15  未初始化的存儲指針
    8.1.16  浮點數精度
    8.1.17  交易授權
  8.2  以太坊一些奇怪的特性
    8.2.1  沒有Key的ether
    8.2.2  一次性地址
    8.2.3  一個交易的空投
  8.3  以太坊智能合約——最佳安全開髮指南
    8.3.1  儘早且明確的暴露問題
    8.3.2  在支付時使用(pull)模式而不是(push)模式
    8.3.3  函數代碼的順序:條件,行為,交互
    8.3.4  留意平台局限性
    8.3.5  測試用例
    8.3.6  容錯及自動bug獎勵
    8.3.7  限制可存人的資金
    8.3.8  簡單和模塊化的代碼
    8.3.9  不要從0開始寫所有的代碼
  8.4  代碼審計
  8.5  總結
第9章  DApp開發
  9.1  DApp的特點
  9.2  DApp架構
    9.2.1  客戶端
    9.2.2  伺服器端
    9.2.3  流程詳解
  9.3  以太坊DApp
    9.3.1  環境準備
    9.3.2  項目
    9.3.3  智能合約Solidity編程

    9.3.4  項目部署
  9.4  IPFS DApp
    9.4.1  環境準備
    9.4.2  項目
    9.4.3  編譯運行
第10章  調試
  10.1  編程語言
    10.1.1  事件
    10.1.2  Assert/Require語句
    10.1.3  測試案例
  10.2  Testrpc/Ganache測試環境
  10.3  TIuffle Debugger
    10.3.1  調試界面
    10.3.2  增加和刪除斷點
    10.3.3  如何調試交易
    10.3.4  調試一個食物購物車的合約
  10.4  Remix調試
  10.5  其他工具
    10.5.1  JEB
    10.5.2  Prosityr
    10.5.3  Binaly Ninja
參考文獻

  • 商品搜索:
  • | 高級搜索
首頁新手上路客服中心關於我們聯絡我們Top↑
Copyrightc 1999~2008 美商天龍國際圖書股份有限公司 臺灣分公司. All rights reserved.
營業地址:臺北市中正區重慶南路一段103號1F 105號1F-2F
讀者服務部電話:02-2381-2033 02-2381-1863 時間:週一-週五 10:00-17:00
 服務信箱:bookuu@69book.com 客戶、意見信箱:cs@69book.com
ICP證:浙B2-20060032