新到貨2本75折
區塊鏈DAPP開發入門、代碼實現、場景應用

區塊鏈DAPP開發入門、代碼實現、場景應用

  • 定價:474
  • 運送方式:
  • 臺灣與離島
  • 海外
  • 可配送點:台灣、蘭嶼、綠島、澎湖、金門、馬祖
  • 可取貨點:台灣、蘭嶼、綠島、澎湖、金門、馬祖
載入中...
  • 分享
 

內容簡介

本書以DAPP的原理和具體實現為主線索,通過對這些知識的講解,使讀者對DAPP系統開發有更全面的認識,同時把區塊鏈公鏈的相關知識融合進來,使得讀者不僅能夠設計和實現DAPP系統,還能大體理解DAPP的相關知識。

本書分為7章。第1章簡單介紹了區塊鏈的基礎知識,通過一個簡單的智慧合約的代碼,讓讀者對區塊鏈有更直觀的認識;第2章講解了各類整合式開發環境的搭建,尤其是MetaMask外掛程式,使用者需要通過此外掛程式連接乙太坊主網後才能使用DAPP系統;第3章講解了Solidity編譯及部署到公鏈之後的資料表達和函式呼叫方式;第4章介紹了ABI介面的技術細節;第5章和第6章以案例的方式介紹了DAPP開發的細節;第7章講解了DAPP潛在的風險。

希望本書能為廣大系統開發者和投資者提供一些幫助。
 
 
 

作者介紹

李萬勝

NBS Chain創始人,專注于數位資產的存儲和價值轉移的底層技術實現,是中國早期的區塊鏈實踐者,數位貨幣錢包開發者,GitHub等多個開源社區重要貢獻者,區塊鏈自媒體達人,寫過“乙太坊黃皮書分析”“區塊鏈投資邏輯”“Filecoin技術文檔學習筆記”“IPFS深度分析”等文章。先後服務于浪潮、華為、開心網等企業,並在美國與他人聯合創立電子商務公司,後回國創立互金公司,現為北京非對稱區塊鏈有限公司創始人。
 
 
 

目錄

第1章 智能合約概述 1
1.1 區塊鏈基礎知識 1
1.1.1 交易 1
1.1.2 區塊 4
1.1.3 鏈 4
1.1.4 挖礦 5
1.1.5 共識演算法 6
1.1.6 分叉 7
1.1.7 攻擊 8
1.2 乙太坊智慧合約 9
1.2.1 乙太坊 9
1.2.2 EVM 12
1.2.3 智能合約 13
1.2.4 DAPP 14
1.3 簡單的智慧合約 15
1.3.1 示例1 16
1.3.2 示例2 17
1.4 小結 18

第2章 開發環境搭建 20
2.1 Remix的使用 20
2.1.1 程式設計介面 20
2.1.2 運行環境 22
2.1.3 其他設置 24
2.2 Ethereum Wallet的安裝與使用 26
2.2.1 安裝 26
2.2.2 部署合約 28
2.2.3 調試 32
2.2.4 Ethereum Wallet小結 38
2.3 Ganache Truffle的安裝與使用 38
2.3.1 Ganache 38
2.3.2 Truffle 40
2.3.3 安裝總結 45
2.4 MetaMask的配置與使用 45
2.5 小結 47
2.6 課後練習 47

第3章 Solidity程式設計語法 48
3.1 Solidity前導知識 48
3.2 智慧合約的基本構成 50
3.2.1 狀態變數 50
3.2.2 函數 50
3.2.3 函數修飾器 50
3.2.4 事件 51
3.2.5 結構體 51
3.2.6 枚舉類型 52
3.3 Solidity資料類型 52
3.3.1 數值型別 53
3.3.2 參考類型 58
3.3.3 左值操作類型 65
3.3.4 類型轉換原則 66
3.4 全域變數和單位 68
3.4.1 單位 68
3.4.2 全域變數和函數 69
3.5 控制邏輯與運算式 71
3.5.1 控制語句 71
3.5.2 函式呼叫 71
3.5.3 通過new關鍵字創建合約 73
3.5.4 賦值 74
3.5.5 作用範圍與聲明 75
3.5.6 異常處理 76
3.6 智能合約 78
3.6.1 創建合約 78
3.6.2 可見範圍和getter 80
3.6.3 函數修飾符 83
3.6.4 狀態常量 85
3.6.5 函數 86
3.6.6 events 91
3.6.7 繼承 93
3.6.8 抽象合約 97
3.6.9 介面 98
3.6.10 庫 99
3.6.11 using for 102
3.7 Solidity組合語言 103
3.7.1 內嵌式彙編 103
3.7.2 獨立彙編 109
3.8 小結 110
3.9 課後練習 110

第4章 ABI(應用程式二進位介面) 111
4.1 介面調用的基本原理 111
4.2 函式呼叫與參數封裝 115
4.2.1 資料封裝的基礎知識 115
4.2.2 函數選擇 116
4.2.3 參數封裝 117
4.2.4 封裝示例 118
4.3 ABI介面JSON描述 129
4.4 小結 132
4.5 課後練習 133

第5章 ICO、token和DAO 134
5.1 ICO是第一個爆款DAPP 134
5.1.1 被扭曲了的ICO 135
5.1.2 傳統眾籌與乙太坊眾籌 135
5.1.3 眾籌的變種ICO 143
5.2 token 144
5.2.1 token的基本元素 144
5.2.2 改進token 150
5.3 ICO 158
5.4 DAO 162
5.4.1 創建DAO合約 162
5.4.2 使用DAO的方式 170
5.4.3 模擬股票監管的DAO合約 174
5.5 ICO認知誤區與防騙指南 175
5.6 小結 176
5.7 課後練習 177

第6章 DAPP完整實戰 178
6.1 投票 178
6.1.1 Truffle默認案例講解 178
6.1.2 修改為投票系統 187
6.1.3 實戰小結 193
6.2 誓言上鏈 193
6.3 區塊鏈彩票 199
6.3.1 業務架構 199
6.3.2 業務代碼實現 201
6.4 小結 219
6.5 課後練習 219

第7章 智慧合約安全與公鏈技術簡介 220
7.1 合約溢出攻擊實例 220
7.2 智能合約安全性漏洞與建議 224
7.2.1 合約漏洞 224
7.2.2 安全建議 226
7.3 常見的公鏈安全問題 227
7.3.1 雙花攻擊 227
7.3.2 女巫攻擊 228
7.3.3 日食攻擊 229
7.3.4 DDoS攻擊 230
7.4 小結 230
 
 

前言

最早接觸區塊鏈是在2009年,當時我正在華為的一個網路安全部門從事研發工作,我在諾基亞工作的同學徐明亮,讓我為他的美國同事開發一款比特幣錢包應用,我也有幸接觸比特幣的原始程式碼,並嘗試編寫區塊鏈的相關應用。

當時我對區塊鏈的理解尚處在代碼層面,作為一個沒有太多社會經驗的程式師,我認為比特幣、區塊鏈僅僅作為點對點網路,通過密碼學的方式保證資料傳輸和訪問的安全,從性能提高和技術創新的角度看,它並沒有先進性可言。當時我的工作內容就涉及網路與安全(密碼學屬於安全範疇),這個知識背景使得我對比特幣的技術沒有產生特別濃厚的興趣。況且其代碼完全開源,對我來講,這樣的項目一點競爭優勢都沒有。

到2017年,一種新型區塊鏈公鏈專案爆發,它就是乙太坊。當時國內外的區塊鏈專案如火如荼,基於乙太坊發行自己專案的token一時風頭無二,很多投資機構也積極地參與其中。此時我已經參與過多個創業專案,對商業基本邏輯有了初步的認識,對於創業初期面臨的問題也有了較深刻的理解。此時有投資人推薦我從事區塊鏈方向的創業,我也因此重新對比特幣和乙太坊的設計進行了認真學習。當我研讀完乙太坊的白皮書之後,深深地被其技術特點及可以解決的問題範疇所震撼,我會在本書第5章對其涉及的ICO、token和DAO做詳細的講解。不同於比特幣僅僅通過加密對一個數值進行去中心化的安全處理,乙太坊已經可以與現實世界的商業邏輯進行緊密的融合。

從應用場景來說,比特幣僅限於金融領域的應用,而乙太坊已經超出了這個範疇,其第一個爆款DAPP——ICO在近幾年全球的創業圈中掀起了巨大的變革浪潮,雖然它還伴隨著資訊不對稱、技術不對稱等問題,有很多欺詐專案也打著區塊鏈的旗號作惡,但是如果用這樣的技術解決真正有價值的問題,那麼其影響也是巨大的。本書第6章以彩票為例,從代碼到業務模式進行了詳細的講解,通過區塊鏈DAPP解決彩票問題有很大的經濟價值和社會價值。

從技術角度來說,比特幣是一個很難程式設計的架構,如果需要利用區塊鏈加密安全、公開透明、去中心化的特點,在一般情況下,專案方都需要升級整套比特幣原始程式碼,以滿足自己項目的技術需求和業務需求。很多分叉幣都是以這樣的思路升級比特幣的某些特性,然後重新建設自己的生態的。而對於乙太坊來講,智慧合約虛擬機器的引入使得乙太坊成為一個可程式設計的區塊鏈網路,為了達到同樣的目的,專案方只需編寫DAPP即可,無須重新搭建網路和建設生態。從這個角度來講,比特幣網路類似於諾基亞的功能手機,而乙太坊類似于iPhone的智能手機。前者不可程式設計,新特性需要新型號的手機;後者有App Store,用戶可以通過下載App滿足自訂的手機需求。

本書的另一個目的是希望通過代碼及架構設計的講解,把區塊鏈真正的價值和正確的使用方式傳遞給更多的讀者,使得各類詐騙專案不再能輕易地欺騙更多的群眾。在認真研究了乙太坊之後,我欣然接受了投資人的建議,成功融資並開始了區塊鏈公鏈方面的研發。目前我從事的專案主要是對乙太坊進行進一步升級。雖然乙太坊使得區塊鏈可以程式設計,但是其操作物件仍然是抽象的數位貨幣,無法與現實世界中有價值的資產進行關聯。我希望通過區塊鏈對頻寬流量、分散式存儲、CPU算力共用等IT資源進行token激勵和記帳管理,這些資源在現實世界中是有價值的,且其價值是可衡量的。

在專案開發過程中,我整理了很多底層的區塊鏈架構的技術文檔,包括一些智慧合約相關的技術文擋,因為這些資料相對較少,並且區塊鏈熱潮使得很多人對此類知識相對渴望,因此這些技術文檔的讀者逐漸多了起來。2018年,出版社的朋友希望我整理一些資料,編寫成書,讓更多的人可以讀到這些技術文檔。我覺得這對於區塊鏈開發者和投資人來說都是一件非常有意義的事情,因此我欣然答應,這是本書的寫作背景。

因為當前區塊鏈尚處在發展初期,包括乙太坊的程式設計語言Solidity,其版本仍然未達到release版本,因此很多知識可能會發生變化,希望讀者及時跟進官方的資料。歡迎讀者對本書表述不合理的地方提出建議或意見,我一定虛心接受。本書的代碼會放在GitHub上:https://github.com/9992800/ Dapp-on-Ethereum。我僅以本書抛磚引玉,希望更多的科技人才加入區塊鏈行業中來,一起促進區塊鏈的良性發展。同時希望本書對投資人有所説明,提高其分辨騙局專案的能力。
再次感謝出版社對我的信任,以及朋友和親人對我事業的支援。

李萬勝

 
 

詳細資料

  • ISBN:9787121373756
  • 規格:平裝 / 230頁 / 16k / 19 x 26 x 1.15 cm / 普通級 / 單色印刷 / 初版
  • 出版地:中國

最近瀏覽商品

 

相關活動

  • 現代出版,由此開始。商務印書館暢銷展,精選滿888現折88。
 

購物說明

溫馨提醒您:若您訂單中有購買簡體館無庫存/預售書或庫存於海外廠商的書籍,建議與其他商品分開下單,以避免等待時間過長,謝謝。

大陸出版品書況:因裝幀品質及貨運條件未臻完善,書況與台灣出版品落差甚大,封面老舊、出現磨痕、凹痕等均屬常態,故簡體字館除封面破損、內頁脫落...等較嚴重的狀態外,其餘所有商品將正常出貨。 

 

請注意,部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。

調貨時間:若您購買海外庫存之商品,於您完成訂購後,商品原則上約45個工作天內抵台(若有將延遲另行告知)。為了縮短等待的時間,建議您將簡體書與其它商品分開訂購,以利一般商品快速出貨。 

若您具有法人身份為常態性且大量購書者,或有特殊作業需求,建議您可洽詢「企業採購」。 

退換貨說明 

會員所購買的商品均享有到貨十天的猶豫期(含例假日)。退回之商品必須於猶豫期內寄回。 

辦理退換貨時,商品必須是全新狀態與完整包裝(請注意保持商品本體、配件、贈品、保證書、原廠包裝及所有附隨文件或資料的完整性,切勿缺漏任何配件或損毀原廠外盒)。退回商品無法回復原狀者,恐將影響退貨權益或需負擔部分費用。 

訂購本商品前請務必詳閱商品退換貨原則

  • 888現折88
  • 分寸與好運
  • 終結氣候危機