提供大量的指令稿和相關程式的原始程式碼檔案,這些都來自實際的專案,透過這些指令和原始程式碼讀者可以了解到相關區塊鏈技術平台的操作細節。
適合:區塊鏈開發工程師、區塊鏈架構師、區塊鏈技術感興趣者、以太坊同好、以太坊DAPP 開發者、比特幣開發者。
作者簡介:
吳壽鶴
資深區塊鏈技術專家, IONChain(離子鏈)首席架構師,HyperLedger核心專案開發人員,同時對乙太坊相關技術有深入研究。知名區塊鏈技術社區「區塊鏈兄弟」的聯合創始人,目前從事基於物聯網的區塊鏈底層基礎平台的開發。
馮 翔
資深區塊鏈技術專家, IONChain(離子鏈)CTO,上海旺鏈科技區塊鏈研究院負責人,Hyperledger核心專案核心代碼開發者。「區塊鏈兄弟」聯合創始人。致力於區塊鏈技術和傳統行業的融合,尤其關注區塊鏈技術和物聯網技術的結合。
劉 濤
上海旺鏈資訊科技有限公司CEO,IONChain(離子鏈)創始人,現為復旦大學區塊鏈研究生課程講師。在高科技製造、汽車、金融行業有超過15年的業務諮詢和技術架構經驗,曾擔任華為、Alcatel-lucent、上汽通用、平安、中國移動高端外部顧問。
周廣益
上海指旺金科CEO,中國區塊鏈技術的早期探索者,36Kr、未央網、共用財經等媒體特約作家,現為復旦大學軟體學院特聘講師。
作者序
為何寫作本書
近年來區塊鏈技術逐步佔據各大技術類別網站的頭條,各種以區塊鏈特性為基礎的想法和創新層出不窮。這些榮景是區塊鏈技術在後台默默支撐的,可是人們經常忽略區塊鏈的技術而把投資、融資、保值等金融屬性和區塊鏈畫上了等號。其實區塊鏈本質上還是一種技術。區塊鏈技術源於比特幣,經過近幾年的發展,已經超越比特幣逐步形成一種單獨的技術系統。目前區塊鏈技術已經滲透到各行各業中,例如區塊鏈技術同大數據、人工智慧等技術產生了讓人意想不到的化學反應。我們有理由相信區塊鏈技術在未來一定會成為IT基礎技術之一,成為每個IT技術人員必備的基礎技能。
同時我們也可以看到區塊鏈技術在國內外的發展非常迅速。在國外,IBM發起超級帳本專案,並把超級帳本專案的原始程式捐獻給Linux基金,借助社區的力量來發展。全球已有將近200多個公司和組織加入超級帳本,成為超級帳本專案的會員。當然其他巨頭也隨之跟進,微軟早就和以太坊達成戰略合作協定。網際網路巨頭Google、社交媒體業的龍頭Facebook等在區塊鏈領域均有所布局。
但是在繁榮的背後我們也看到危機,目前區塊鏈技術在實際專案中的應用還會有不少問題。這是因為目前區塊鏈技術的實用化還有以下障礙:
●技術新,學習資料匱乏。區塊鏈技術是最近幾年剛剛興起的一種綜合技術,目前資料特別是中文資料還是比較缺乏的。
●技術種類多,有一定的學習成本。區塊鏈是一種綜合型的技術,如果把每個單項技術列出來學習並不難,但是當把這些技術組合起來之後學習難度就大幅增加了。
●可參考的成功案例少。由於區塊鏈技術是一種比較新的技術,因此目前缺少比較成功的案例。即使諸如IBM等巨頭開發了一些成功案例,但是由於各種各樣的原因,目前並沒有公開,這些都給廣大技術人員學習區塊鏈技術,特別是把區塊鏈技術應用到實際專案中造成一定的障礙。
這些問題的存在是我們撰寫「區塊鏈開發實戰」系列圖書的目的,我們希望讀者透過書了解區塊鏈的基本概念和核心技術的同時,能夠將區塊鏈技術更多應用到實際的專案中,解決現有技術無法解決的一些企業痛點。
❉ 適合讀者群
適合區塊鏈開發工程師、區塊鏈架構師、區塊鏈技術同好、以太坊同好、以太坊DAPP 開發者、比特幣開發者。
❉ 主要內容
本書詳細說明以太坊和比特幣這兩個典型的區塊鏈技術平台的技術特性、原理、開發方法,同時配合多個綜合性的專案實例。
全書分為三個部分:
●第一部分(第1~2章):首先從基本認識的角度對區塊鏈進行巨觀上的介紹,包含區塊鏈技術的起源和演進過程、區塊鏈核心技術及其特性、區塊鏈技術的缺點和常見錯誤認識,以及區塊鏈技術的應用領域和常見的技術架構;然後介紹進行區塊鏈開發需要掌握的技術和使用的工具。
●第二部分(第3~11章):說明以太坊的基本使用、技術特性、工作原理、開發方法和專案案例。首先介紹以太坊的各種核心概念——編譯、安裝、執行,以及私有鏈的架設和執行等基礎內容;其次詳細說明Solidity語法、Solidity IDE、Solidity智慧合約的編譯部署,以及Solidity的智慧合約架構Truffle;最後說明DApps開發的方法和流程。
●第三部分(附錄及後記):主要說明比特幣的原理、執行方式、重要模組和程式設計介面,同時還說明一個比特幣用戶端的案例。
主要特色
本書是作者在參與許多區塊鏈專案之後提煉而成,具有以下特點:
●既沒有高深的理論也沒有晦澀難懂的公式,力求透過最簡單通俗的語言和大量的圖表讓讀者能夠了解區塊鏈技術的精髓。
●提供大量的指令指和相關程式的原始程式碼檔案,這些指令稿和原始程式碼檔案都來自實際的專案,我們整理後展現給讀者,透過這些指令和原始程式碼,讀者可以了解到相關區塊鏈技術平台的操作細節。
●提供了大量的專案案例,幫助讀者更進一步地了解區塊鏈技術和業務場景的結合。
●與專業的區塊鏈技術社區--「區塊鏈兄弟」深度合作,讀者可到社區中與作者和其他讀者進行深入交流。
本書相關原始程式碼下載網址:github.com/blockchain-technical-practice。
致謝
本書能夠完成首先要感謝機械工業出版社華章公司的楊福川先生為本書的順利出版付出的努力。同時要感謝區塊鏈技術社區的全體「兄弟」,你們對區塊鏈的探索和執著是我們創作的動力,你們對區塊鏈的付出和努力給我們提供了創作的素材。在撰寫本書的過程中無論是提問題的「兄弟」,還是回答問題的專家「兄弟」,感謝你們。
最後,感謝所有加入的區塊鏈技術討論群組,在和你們的交流中我們發現了本書的價值。
為何寫作本書
近年來區塊鏈技術逐步佔據各大技術類別網站的頭條,各種以區塊鏈特性為基礎的想法和創新層出不窮。這些榮景是區塊鏈技術在後台默默支撐的,可是人們經常忽略區塊鏈的技術而把投資、融資、保值等金融屬性和區塊鏈畫上了等號。其實區塊鏈本質上還是一種技術。區塊鏈技術源於比特幣,經過近幾年的發展,已經超越比特幣逐步形成一種單獨的技術系統。目前區塊鏈技術已經滲透到各行各業中,例如區塊鏈技術同大數據、人工智慧等技術產生了讓人意想不到的化學反應。我們有理由相信區塊鏈技術在未來一定會成為IT基礎技術之一,成為每...
目錄
前言
01 | 全面認識區塊鏈
1.1 區塊鏈技術的起源和解釋
1.2 區塊鏈的核心技術及其特性
1.3 區塊鏈技術演進過程
1.4 區塊鏈技術的3個缺點
1.5 區塊鏈技術常見的4個錯誤認識
1.6 區塊鏈技術的應用領域
1.7 區塊鏈的其他常見技術架構
1.8 本章小結
02 | 實戰準備
2.1 開發環境準備
2.2 開發語言
2.3 常用工具
2.4 本章小結
03 | 以太坊介紹
3.1 了解以太坊
3.2 以太坊發展路線
3.3 以太坊內建貨幣
3.4 以太坊交易傳輸量
3.5 以太坊帳戶
3.6 智慧合約
3.7 Gas與GasPrice
3.8 工作量證明演算法
3.9 以太坊網路類型
3.10 以太坊用戶端
3.11 本章小結
04 | 以太坊的編譯、安裝與執行
4.1 在Ubuntu下安裝
4.2 在MacOS下安裝
4.3 在Windows下安裝
4.4 以Docker方式安裝
4.5 執行以太坊
4.6 本章小結
05 | 以太坊私有鏈的架設與執行
5.1 架設一個私有鏈
5.2 以太坊JavaScript主控台指令
5.3 以太坊CLI主控台指令
5.4 以太坊TestRPC測試鏈架設
5.5 本章小結
06 | 以太坊的程式設計介面
6.1 web3.js API
6.2 JSON-RPC API
6.3 本章小結
07 | Solidity IDE 和Solidity 快速入門
7.1 三種Solidity IDE
7.2 Solidity快速入門:撰寫一個簡單的銀行合約案例
7.3 本章小結
08 | Solidity 語法詳解
8.1 註釋
8.2 整數和布林型
8.3 位址
8.4 位元組陣列
8.5 類型轉換和類型推斷
8.6 時間單位和貨幣單位
8.7 陣列和多維陣列
8.8 對映/字典
8.9 結構與列舉
8.10 全域變數
8.11 控制結構
8.12 函數
8.13 事件
8.14 合約
8.15 繼承
8.16 抽象合約
8.17 介面
8.18 函數庫
8.19 Using for
8.20 引用其他原始檔案
8.21 狀態變數/區域變數
8.22 資料位置
8.23 例外處理
8.24 撰寫安全solidity智慧合約最佳做法
8.25 本章小結
09 | Solidity 合約編譯、部署
9.1 編譯合約
9.2 部署合約
9.3 呼叫合約
9.4 本章小結
10 | Truffle 詳解
10.1 什麼是Truffle
10.2 安裝Truffle
10.3 建立並初始化專案
10.4 建立合約
10.5 編譯合約
10.6 移轉合約
10.7 合約互動
10.8 測試合約
10.9 JavaScript測試
10.10 Solidity測試
10.11 Truffle 設定檔
10.12 依賴管理
10.13 本章小結
11 | 以太坊DApps 應用程式開發實戰
11.1 DApps架構與開發流程架構
11.2 案例:去中心化微博
11.3 本章小結
附錄A 比特幣的原理和執行方式
附錄B 比特幣的bitcoin-cli模組詳解
附錄C 比特幣系統的程式設計介面
附錄D 比特幣系統用戶端專案實戰
附錄E 區塊鏈相關術語
後記
前言
01 | 全面認識區塊鏈
1.1 區塊鏈技術的起源和解釋
1.2 區塊鏈的核心技術及其特性
1.3 區塊鏈技術演進過程
1.4 區塊鏈技術的3個缺點
1.5 區塊鏈技術常見的4個錯誤認識
1.6 區塊鏈技術的應用領域
1.7 區塊鏈的其他常見技術架構
1.8 本章小結
02 | 實戰準備
2.1 開發環境準備
2.2 開發語言
2.3 常用工具
2.4 本章小結
03 | 以太坊介紹
3.1 了解以太坊
3.2 以太坊發展路線
3.3 以太坊內建貨幣
3.4 以太坊交易傳輸量
3.5 以太坊帳戶
3.6 智慧合約
3.7 Gas與GasPrice
3.8 工作量證明演算法
3.9 以太坊網路類型
3....