産品特色
編輯推薦
適讀人群 :本書適用於以下讀者:區塊鏈技術人員,區塊鏈技術愛好者,立誌進入區塊鏈技術領域的相關人員。 (1)4位作者均為資深區塊鏈技術專傢,是區塊鏈領域早期的技術實踐者、布道者和創業者,對以太坊(源碼級彆)技術和Hyperledger Fabric有深入的研究和豐富的實踐經驗,是Hyperledger核心項目代碼貢獻者。
(2)本書得到瞭ChinaLedger技術委員會主任白碩、MATRIX首席AI科學傢、阿希鏈CTO錢漢濤、元界CTO陳浩等多位專傢的高度評價和聯袂推薦。
(3)即便零基礎,也能快速掌握以太坊和比特幣的基本概念、關鍵技術、工作原理和DApp開發方法。
內容簡介
本書是“區塊鏈開發實戰”係列的第2本,旨在讓零基礎的讀者也能迅速掌握以太坊的各種基本概念、關鍵技術、工作原理、Dapp開發方法。作者是國內區塊鏈領域的早期實踐者和布道者,在區塊鏈技術開發領域積纍瞭豐富的項目經驗,這本書得到瞭ChinaLedger技術委員會主任白碩、MATRIX區塊鏈首席AI科學傢鄧仰東、阿希鏈CTO錢漢濤、元界CEO陳浩等多位專傢的鼎力推薦。
全書主要內容在邏輯上分為三個部分:
第一部分 準備篇(第1~2章)
這部分介紹瞭從事區塊鏈開發需要具備的預備知識,如區塊鏈的各種概念的瞭解、開發環境的搭建和開發工具的使用等。
第二部分 以太坊篇(第3~11章)
這部分是本書的核心內容,係統、全麵地講解和分析瞭以太坊的各種基本概念、核心技術、工作原理,以及DApp開發方法。如以太坊的安裝、編譯、運行、私有鏈的搭建和運行、編程接口、智能閤約語言Solidity的語法及其IDE、Solidity智能閤約的編譯和部署、Truffle框架的使用、DApp的架構與開發流程等。
第三部分 擴展篇(附錄)
詳細介紹瞭比特幣的工作原理、運行方式、功能模塊、編程接口,以及基於比特幣的應用開發方法,對於想研究比特幣技術原理和從事比特幣應用開發的讀者來說,是一份難得的資料。
作者簡介
吳壽鶴
資深區塊鏈技術專傢, IONChain(離子鏈)首席架構師,HyperLedger核心項目開發人員,同時對以太坊相關技術有深入研究。是國內區塊鏈技術領域的早期實踐者和布道者,一直積極推動區塊鏈技術的傳播和應用落地,是國內知名區塊鏈技術社區“區塊鏈兄弟”的聯閤創始人,目前從事基於物聯網的區塊鏈底層基礎平颱的開發。
個人主頁:
馮翔
資深區塊鏈技術專傢, IONChain(離子鏈)CTO,上海旺鏈科技區塊鏈研究院負責人,Hyperledger核心項目核心代碼開發者。中國區塊鏈技術的早期探索者和傳播者,創立瞭有廣泛影響力的區塊鏈技術社區“區塊鏈兄弟”。已經參與過多個基於區塊鏈技術的落地項目,現在階段主要緻力於區塊鏈技術和傳統行業的融閤,尤其關注區塊鏈技術和物聯網技術的結閤。
劉濤
上海旺鏈信息科技有限公司CEO,IONChain(離子鏈)創始人,緻力於結閤中國本土情況的區塊鏈研究開發,現為復旦大學區塊鏈研究生課程講師。前埃森哲高級總監,在高科技製造、汽車、金融行業有超過15年的業務谘詢和技術架構經驗,曾擔任華為、Alcatel-lucent、上汽通用、平安、中國移動高端外部顧問。
周廣益
上海指旺金科CEO,中國區塊鏈技術的早期探索者,36Kr、未央網、共享財經等媒體特約作傢,現為復旦大學軟件學院特聘講師。
精彩書評
以太坊是一個“區塊鏈+智能閤約”平颱,開啓瞭區塊鏈2.0時代。從區塊鏈1.0到區塊鏈2.0,不是簡單的平颱升級,而是為隻有交換價值的區塊鏈創造瞭使用價值,在使用價值和交換價值之間進行交門。從此,數字貨幣不僅可以模仿現實貨幣進行交易轉賬,還可以以數字世界中獨特的方式在程序代碼中“飛一會兒”。這是非常瞭不起的大事件。
這是一本介紹如何在以太坊上進行應用開發的工具書。書中從一個程序員的視角,將在以太坊上從事開發工作必備的知識和技能做瞭係統性的講解,並附有大量實例。全書基礎紮實、內容實用,適閤區塊鏈開發者學習參考。
——白碩 ChinaLedger技術委員會主任/中科院博士生導師
以太坊是區塊鏈2.0的代錶,它提齣的“區塊鏈+智能閤約”模式,在區塊鏈技術史上具有裏程碑意義,使得以太坊技術被迅速普及並構建瞭龐大的生態體係。這是一本教你如何從零基礎開發以太坊DApp的工具書,全方位地講解瞭以太坊的基礎概念、關鍵技術、工作原理、開發方法,並有多個綜閤性的實戰案例,能讓讀者迅速掌握理論知識並具備基本的實操能力,對於初學者而言,是一本難得的好書。
——鄧仰東 MATRIX鏈首席人工智能科學傢
這兩本書理論與實踐相結閤,首先分彆詳講解瞭Hyperledger Fabric和以太坊的架構、原理和核心技術,然後介紹瞭應用開發的方法,結閤多個具體案例展示瞭如何應用Hyperledger Fabric和以太坊技術開發區塊鏈應用係統。內容翔實具體、深入淺齣,更令人驚喜的是,讀者從這兩本書中不僅能學到如何使用進行區塊鏈應用開發,還能品味到作者解決問題的技巧和對區塊鏈的深入思考,是學習區塊鏈應用開發實戰的精品。
——錢漢濤 阿希鏈CTO
以太坊已成為公鏈技術競爭力的開放標準之一,活躍的開發者社區以及相對豐富的DApp類型促成瞭良好的應用生態,以太坊也極大地推動瞭區塊鏈的發展。而以超級賬本為代錶的DLTs(分布式賬本技術)則從企業層麵補足瞭公鏈技術的一些不足,在受限環境中能發揮分布式係統的優勢。以太坊和超級賬本技術的應用和發展,離不開像本書的4位作者這樣的布道者和貢獻者,他們無私地將自己在實踐中總結齣來的經驗呈現在瞭這兩本書中,對於區塊鏈開發的初學者而言,具有很重要的學習和參考價值。
——陳浩 元界CTO
目錄
Contents?目 錄
前言
第1章 全麵認識區塊鏈 1
1.1 區塊鏈技術的起源和解釋 1
1.2 區塊鏈的核心技術及其特性 2
1.2.1 區塊鏈技術的特性 3
1.2.2 區塊鏈的分布式存儲技術特性 3
1.2.3 區塊鏈的密碼學技術特性 4
1.2.4 區塊鏈中的共識機製 8
1.2.5 區塊鏈中的智能閤約 12
1.3 區塊鏈技術演進過程 13
1.4 區塊鏈技術的3個缺點 13
1.5 區塊鏈技術常見的4個錯誤認識 14
1.6 區塊鏈技術的應用領域 15
1.6.1 區塊鏈在金融行業的應用 15
1.6.2 區塊鏈在供應鏈中的應用 16
1.6.3 區塊鏈在公證領域的應用 17
1.6.4 區塊鏈在數字版權領域的應用 18
1.6.5 區塊鏈在保險行業的應用 19
1.6.6 區塊鏈在公益慈善領域的應用 21
1.6.7 區塊鏈與智能製造 22
1.6.8 區塊鏈在教育就業中的應用 23
1.7 區塊鏈的其他常見技術框架 24
1.8 本章小結 25
第2章 實戰準備 26
2.1 開發環境準備 26
2.1.1 操作係統的配置 26
2.1.2 Docker的使用 27
2.1.3 Git的使用 30
2.2 開發語言 30
2.2.1 GO語言 30
2.2.2 Node.js 32
2.3 常用工具 32
2.3.1 Curl 32
2.3.2 tree 33
2.3.3 Jq 33
2.4 本章小結 34
第3章 以太坊介紹 35
3.1 瞭解以太坊 35
3.2 以太坊發展路綫 36
3.3 以太坊內置貨幣 37
3.4 以太坊交易吞吐量 38
3.5 以太坊賬戶 39
3.6 智能閤約 40
3.7 Gas與GasPrice 41
3.8 工作量證明算法 41
3.9 以太坊網絡類型 42
3.10 以太坊客戶端 43
3.11 本章小結 44
第4章 以太坊的編譯、安裝與運行 45
4.1 在Ubuntu下安裝 45
4.2 在MacOS下安裝 46
4.3 在Windows下安裝 46
4.4 以Docker方式安裝 47
4.5 運行以太坊 47
4.6 本章小結 47
第5章 以太坊私有鏈的搭建與運行 48
5.1 搭建一個私有鏈 48
5.2 以太坊JavaScript控製颱命令 53
5.3 以太坊CLI控製颱命令 64
5.3.1 賬戶管理 64
5.3.2 區塊數據管理 65
5.4 以太坊TestRPC測試鏈搭建 69
5.5 本章小結 78
第6章 以太坊的編程接口 79
6.1 web3.js API 79
6.1.1 安裝web3.js並創建實例 79
6.1.2 賬戶相關API 80
6.1.3 交易相關API 80
6.1.4 區塊相關API 87
6.2 JSON-RPC API 87
6.2.1 賬戶相關API 88
6.2.2 交易相關API 89
6.2.3 區塊相關API 94
6.3 本章小結 95
第7章 Solidity IDE和Solidity快速入門 96
7.1 三種Solidity IDE 96
7.1.1 browser-solidity 96
7.1.2 Atom 97
7.1.3 IntelliJ IDEA 97
7.2 Solidity快速入門:編寫一個簡單的銀行閤約案例 99
7.3 本章小結 101
第8章 Solidity語法詳解 102
8.1 注釋 102
8.2 整型和布爾型 103
8.2.1 整型 103
8.2.2 布爾型 104
8.3 地址 104
8.4 字節數組 105
8.4.1 固定長字節數組 105
8.4.2 動態長度字節數組 105
8.5 類型轉換和類型推斷 106
8.5.1 類型轉換 106
8.5.2 類型推斷 107
8.6 時間單位和貨幣單位 107
8.6.1 時間單位 107
8.6.2 貨幣單位 108
8.7 數組和多維數組 108
8.7.1 數組 108
8.7.2 多維數組 109
8.8 映射/字典 109
8.9 結構體與枚舉 111
8.9.1 結構體 111
8.9.2 枚舉 112
8.10 全局變量 112
8.11 控製結構 113
8.12 函數 114
8.13 事件 122
8.14 閤約 124
8.15 繼承 125
8.16 抽象閤約 127
8.17 接口 128
8.18 庫 128
8.19 Using for 128
8.20 引入其他源文件 129
8.21 狀態變量/局部變量 129
8.22 數據位置 130
8.22.1 數據位置概述 130
8.22.2 數據位置之間相互轉換 130
8.23 異常處理 132
8.24 編寫安全solidity智能閤約最佳實踐 133
8.24.1 盡早拋齣異常 133
8.24.2 結構化函數代碼順序 134
8.24.3 在支付時使用pull模式而不是push模式 134
8.24.4 整數上溢和下溢 136
8.25 本章小結 137
第9章 Solidity 閤約編譯、部署 138
9.1 編譯閤約 138
9.1.1 安裝solc編譯工具 138
9.1.2 開始編譯閤約 139
9.2 部署閤約 141
9.2.1 啓動以太坊geth節點 141
9.2.2 部署智能閤約 143
9.3 調用閤約 145
9.4 本章小結 146
第10章 Truffle詳解 147
10.1 什麼是Truffle 147
10.2 安裝Truffle 148
10.3 創建並初始化項目 149
10.4 創建閤約 150
10.5 編譯閤約 150
10.6 遷移閤約 151
10.7 閤約交互 156
10.7.1 交易 156
10.7.2 調用 157
10.7.3 閤約抽象 157
10.7.4 與閤約交互 158
10.7.5 添加一個新閤約到網絡 159
10.7.6 使用現有閤約地址 160
10.7.7 嚮閤約發送以太幣 161
10.8 測試閤約 163
10.9 JavaScript測試 164
10.10 Solidity測試 165
10.11 Truffle 配置文件 167
10.12 依賴管理 169
10.13 本章小結 171
第11章 以太坊DApps應用開發實戰 172
11.1 DApps架構與開發流程 172
11.1.1 DApps架構 VS Web應用架構 172
11.1.
前言/序言
Preface?前 言為何寫作本書近年來區塊鏈技術逐步占據各大技術類網站的頭條,各種基於區塊鏈特性的想法和創新層齣不窮。這些繁榮是區塊鏈技術在幕後默默支撐的,可是人們經常忽略區塊鏈的技術而把投資、融資、保值等金融屬性和區塊鏈畫上瞭等號。其實區塊鏈本質上還是一門技術。區塊鏈技術源於比特幣,經過近幾年的發展,已經超越比特幣逐步形成一門單獨的技術體係。目前區塊鏈技術已經滲透到各行各業中,比如區塊鏈技術同大數據、人工智能等技術産生瞭讓人意想不到的化學反應。我們有理由相信區塊鏈技術在未來一定會成為IT基礎技術之一,成為每個IT技術人員必備的基礎技能。
同時我們也可以看到區塊鏈技術在國內外的發展非常迅速。在國外,IBM發起瞭超級賬本項目,並把超級賬本項目的源碼捐獻給瞭Linux基金,藉助社區的力量來發展。全球已經有將近200多個公司和組織加入瞭超級賬本,成為超級賬本項目的會員。當然其他巨頭也隨之跟進,微軟早就和以太坊達成瞭戰略閤作協議。互聯網巨頭Google、社交媒體行業的龍頭Facebook等在區塊鏈領域均有所布局。
但是在繁榮的背後我們也應該看到危機,目前區塊鏈技術在實際項目中的應用還存在不少問題。我們認為齣現這種情況是因為目前區塊鏈技術的實用化還存在以下障礙:技術新,學習資料匱乏。區塊鏈技術是最近幾年剛剛興起的一門綜閤技術,目前資料特彆是中文資料還是比較缺乏的。
技術種類多,有一定的學習成本。區塊鏈是一門綜閤型的技術,如果把每個單項技術列齣來學習並不難,但是當把這些技術組閤起來之後學習難度就大大增加瞭。
可藉鑒的成功案例少。由於區塊鏈技術是一門比較新的技術,因此目前缺少比較成功的案例。即使諸如IBM等巨頭開發瞭一些成功案例,但是由於各種各樣的原因,目前並沒有公開,這些都給廣大技術人員學習區塊鏈技術特彆是把區塊鏈技術應用到具體項目中造成瞭一定的障礙。
這些問題的存在是我們編寫“區塊鏈開發實戰”係列圖書的目的,第一批有兩本書同時麵世,分彆是基於Hyperledger Fabric和以太坊進行區塊鏈開發實戰。我們希望讀者通過這兩本書,在瞭解區塊鏈的基本概念和核心技術的同時,能夠將區塊鏈技術更多應用到具體的項目中,解決現有技術無法解決的一些行業痛點。
讀者對象這兩本書都非常適閤區塊鏈開發工程師、區塊鏈架構師、區塊鏈技術愛好者閱讀。
其中:
Hyperledger Fabric部分更適閤對Hyperledger Fabric和比特幣技術感興趣的相關技術人員;以太坊部分更適閤以太坊愛好者、以太坊DAPP開發者、比特幣開發者等。
主要內容《區塊鏈開發實戰:Hyperledger Fabric關鍵技術與案例分析》這本書以Hyperledger Fabric和比特幣這兩個典型區塊鏈技術平颱的核心技術、開發方法和相關的項目案例為核心內容,此外,還提供瞭大量的命令腳本和代碼示例供讀者參考,力圖使讀者在最短的時間內掌握這兩個平颱的使用方法。
全書分為三個部分:
第一部分(第1~2章):首先從基本認識的角度對區塊鏈進行瞭宏觀上的介紹,包括區塊鏈技術的起源和演進過程、區塊鏈核心技術及其特性、區塊鏈技術的缺點和常見錯誤認識,以及區塊鏈技術的應用領域和常見的技術框架;然後介紹瞭進行區塊鏈開發需要掌握的技術和使用的工具。
第二部分(第3~13章):主要講解瞭Hyperledger Fabric的核心技術、原理、開發方法,以及多個項目案例。包括Hyperledger的全麵介紹、Fabric的技術特性和快速入門、Fabric的核心模塊和賬號體係、Fabric的智能閤約和編程接口、Fabric的係統架構與設計、Fabric項目案例的開發流程和方法,以及幾個綜閤性的案例,如區塊鏈瀏覽器、供應鏈金融、食品溯源等。
第三部分(附錄):主要講解瞭比特幣的原理、運行方式、重要模塊和編程接口,同時還講解瞭一個比特幣客戶端的案例。
《區塊鏈開發實戰:以太坊關鍵技術與案例分析》本書詳細講解瞭以太坊和比特幣這兩個典型的區塊鏈技術平颱的技術特性、原理、開發方法,同時也配有多個綜閤性的項目實例。
全書分為三個部分:
第一部分(第1~2章):首先從基本認識的角度對區塊鏈進行瞭宏觀上的介紹,包括區塊鏈技術的起源和演進過程、區塊鏈核心技術及其特性、區塊鏈技術的缺點和常見錯誤認識,以及區塊鏈技術的應用領域和常見的技術框架;然後介紹瞭進行區塊鏈開發需要掌握的技術和使用的工具。
第二部分(第3~11章):主要講解瞭以太坊的基本使用、技術特性、工作原理、開發方法和項目案例。首先介紹瞭以太坊的各種核心概念——編譯、安裝、運行,以及私有鏈的搭建和運行等基礎內容;其次詳細講解瞭Solidity語法、Solidity IDE、Solidity智能閤約的編譯部署,以及Solidity的智能閤約框架Truffle;最後講解瞭DApps開發的方法和流程。
第三部分(附錄及後記):主要講解瞭比特幣的原理、運行方式、重要模塊和編程接口,同時還講解瞭一個比特幣客戶端的案例。
為什麼兩本書有重復內容大傢可能注意到,兩本書有部分內容是重復的,這麼安排並不是為瞭湊篇幅,而是經過精心考慮的。主要原因如下:
以太坊和Hyperledger Fabric是兩個不同的技術平颱,涉及的技術都非常多,讀者一般不會同時學習並在這兩個平颱上進行開發,於是我們沒有將這兩個主題的內容放到一本書中,這樣便於讀者按需選擇。
兩本書的前兩章是相同的,因為這兩章的內容對兩個平颱的用戶來說是通用的,而且是都需要瞭解和學習的。
兩本書關於比特幣的內容是相同的,因為比特幣係統是齣現最早、運行最穩定的區塊鏈技術平颱,它的很多概念和核心技術對其他區塊鏈平颱有非常好的藉鑒意義,值得所有區塊鏈開發者學習。
主要特色這兩本書是作者
區塊鏈開發實戰:以太坊關鍵技術與案例分析 epub pdf mobi txt 電子書 下載 2024
區塊鏈開發實戰:以太坊關鍵技術與案例分析 下載 epub mobi pdf txt 電子書