-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

EOS實戰與源碼分析

( 簡體 字)
作者:劉文彬類別:1. -> 程式設計 -> 區塊鏈
譯者:
出版社:電子工業出版社EOS實戰與源碼分析 3dWoo書號: 51387
詢問書籍請說出此書號!

缺書
NT售價: 345

出版日:6/1/2019
頁數:276
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787121369285
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

2017年,區塊鏈、加密貨幣、ICO(公募)的聲音吵鬧了整個夏天,截至9月,聲音才漸漸消失。許多技術人員借此了解了區塊鏈技術,并且被區塊鏈的技術藍圖所震撼,激發了強大的興趣,為自己能夠置身于一個技術蓬勃發展的時代而感到榮幸。

筆者正是其中之一。在同樣的時間,一頭扎進區塊鏈的世界,從區塊鏈1.0時代的比特幣到2.0時代的以太坊,再到3.0時代的EOS。呈現在眼前的區塊鏈世界就像一個技術萬花筒,深深地吸引筆者不斷向前探索。
目前,EOS是區塊鏈炙手可熱的技術之一。它如同一個完整的操作系統,用戶或者機構可基于它構建各種應用程序。下一代區塊鏈不是ICO,而是大規模的各行各業的DApp的興起,所以能夠做好大型商業應用基建工作的公鏈將成為未來區塊鏈的寵兒。目前,呼喊著百萬級TPS、手續費為0、快速部署DApp的EOS無疑切中了所有的要點。
筆者作為EOS開源項目的貢獻者,在超級節點的運維工作過程中,系統地研究了區塊鏈的底層技術。后來筆者深入區塊鏈的應用領域,總結了很多心得體會。本書共有8章,可分為使用手冊與源碼分析兩部分。使用手冊部分主要介紹如何快速啟動單節點EOS鏈、終端交互命令cleos的使用,并模擬公鏈的配置與啟動。源碼分析部分主要介紹源代碼調試、EOS數據持久化機制、系統智能合約架構以及插件系統。
無論是正在使用EOS的軟件工程師、測試工程師、運維工程師、架構師,還是熱衷新技術的產品經理、管理人員,本書都具備很強的輔導和參考價值。
EOSIO是構建EOS的開源項目,是一個由block.one公司開發的、基于區塊鏈結構設計的、能夠支持水平和垂直擴展的、去中心化的應用平臺,提供了賬戶、認證、數據庫、異步通信和跨平臺、跨集群的定時應用。同時,有望支持每秒百萬級事務,完全零費率,并可以快速且容易地部署去中心化應用。
EOS中的易混淆名詞
? EOS,目前指的是基于ERC20在以太坊上發行的代幣體系,用于block.one公司開發軟件與社區運營。
? EOSIO,由block.one開發的可構建公鏈的軟件源代碼。
? EOS platform,采用EOSIO軟件構建的公鏈平臺。
? DApp,此處指的是未來在EOS公鏈平臺上基于EOSIO軟件開發部署的去中心化應用,通常是由智能合約實現的,但在EOS中也可以通過插件的方式實現。

名詞解釋
EOS中有很多專用名詞,下面通過表格列舉展示。
EOS專用名詞解釋
序號 名詞 解釋
1 Account 賬戶,由用戶自定義創建,可包含語義的賬戶名字。這比區塊鏈只有一個加密長串地址作為賬戶要方便很多
2 Authority 權力,要與Permission做好區分。Permission是權限的意思,相比權力更加具體,而Authority通常用于校驗某賬戶是否有做某件事的權力
3 Block 縮寫為Blk,每個區塊可包含0個或者多個事務
4 DAC 分權自治集體或者分權自治公司
5 DAO 分權自治組織
6 Deferred Transaction 縮寫為defTx,延期事務。該事務是由智能合約創建的,會在未來的某個時間被執行。這個事務也能夠創建另一個在其之后的事務。因此,延期事務可以創建無限循環的順序事務。用戶授權一個延期事務必須指定到執行的時刻應擁有足夠的帶寬,存儲執行預期事務
7 DLT 分布式賬本技術。分布式賬本也被稱作共享式賬本,是一個基于復制、共享及同步數字化資產的跨站點、跨國家、跨機構的數據庫
8 DPoS 授權權益證明。此外,也可以代表民主即權益證明。DPoS是共識算法的一種,即區塊生產者能夠針對事務或者區塊的真實性、可驗證性、不可逆性等特性達成共識的一種方法
9 Key pair 縮寫為keys,一個密鑰對,包括公鑰和其對應的私鑰
10 Larimer 一種EOS的計量單位,等于0.000 1 EOS,如同以太坊中的Wei
11 Master Password 用于解鎖或者解密一個錢包文件的密碼
12 Action 一個對區塊鏈的改變動作。一個或者多個動作可組成一個事務
13 Non-Producing Node 非生產節點,也可以理解為普通節點。這是一個完整的區塊鏈節點,能夠智能觀察和驗證區塊,只能維護本地區塊鏈的拷貝。一個普通節點可以在一個“備用池”中,通過投票流程成為生產節點,即具備出塊權的超級節點;也會被投票出局,成為一個普通節點進入“備用池”。但值得注意的是,大多數普通節點并不在“備用池”中
14 Oracle 在區塊鏈和智能合約的上下文中是一個代理,被智能合約用于找到和驗證外部世界中實際發生的真實數據并提交到區塊鏈上
15 Peer-to-Peer 簡稱P2P,即對等計算機網絡,是一種在對等者之間分配任務和工作負載的分布式應用構架
16 Permission 加權安全機制,通過評估其簽名確定一個信息是否被正確授權
17 Private key 用于簽名事務的私鑰
18 Public key 縮寫為pub key,公鑰,在事務間傳輸
19 Scope 作用域,智能合約的作用域,賬號可寫入同一個作用域的(自己的)合約,但對于其他作用域的合約,該賬號不能寫入數據,只能讀取
20 Smart Contract 縮寫為SC,智能合約,一個計算機協議,旨在促進、驗證或者執行談判
21 Standby Pool 100個全節點的集合,渴望被選中為21個超級節點之一。實際上已經擁有超級節點的能力。當區塊鏈需要替換一個超級節點時,就會從備用池中選擇它
22 Transaction 縮寫為Tx,一般稱作事務,是一個完整的原子的區塊鏈的變化,一個或者多個消息的組合。在EOS中通常是由一個智能合約執行的續表
23 Wallet 錢包,會生成一個加密錢包文件或者是通過客戶端進行管理,如cleos管理私鑰以及用一個安全的方式促進事務的簽名。錢包可以被鎖定或者解鎖
24 Block Producer 縮寫為bp,21個超級節點之一,正在出塊輪次的超級節點
內容簡介:

在區塊鏈世界,區塊鏈1.0時代是比特幣,區塊鏈2.0時代是以太坊,區塊鏈3.0時代是EOS。EOS如同一個完整的操作系統,用戶或者機構可基于它構建各種應用程序。本書共有8章,可分為使用手冊與源碼分析兩部分。使用手冊部分主要介紹如何快速啟動單節點EOS鏈、終端交互命令cleos的使用,并模擬公鏈的配置與啟動。源碼分析部分主要介紹源代碼調試、EOS數據持久化機制、系統智能合約架構以及插件系統。無論是正在使用EOS的軟件工程師、測試工程師、運維工程師、架構師,還是熱衷新技術的產品經理、管理人員,本書都具備很強的輔導和參考價值。
目錄:

第1章 加密算法 1
1.1 單向哈希函數 1
1.2 對稱加密 2
1.3 非對稱加密 3
1.4 本章小結 3

第2章 啟動單節點EOS鏈 4
2.1 源代碼結構 4
2.2 編譯工程 4
2.2.1 腳本eosio_build.sh 5
2.2.2 常見錯誤 6
2.3 安裝命令 6
2.4 啟動nodeos 7
2.4.1 nodeos命令詳解 7
2.4.2 啟動一個獨立節點 8
2.4.3 RPC API 10
2.5 錢包服務keosd 11
2.6 Docker啟動 12
2.7 本章小結 14

第3章 終端交互命令cleos 15
3.1 cleos命令概述 15
3.2 create命令 16
3.3 convert腳本命令 17
3.3.1 打包事務 17
3.3.2 解包事務 18
3.3.3 打包action數據 19
3.4 get命令 20
3.5 set命令 21
3.5.1 設置賬戶權限 22
3.5.2 設置action權限 23
3.6 transfer命令 24
3.7 net命令 25
3.8 錢包操作 25
3.8.1 創建錢包 25
3.8.2 導入私鑰 26
3.8.3 創建密鑰 26
3.8.4 列舉錢包 27
3.8.5 查看私鑰 27
3.9 sign命令 27
3.10 push命令 28
3.11 multisig命令 28
3.11.1 準備環境 28
3.11.2 準備賬戶 29
3.11.3 普通轉賬 29
3.11.4 創建提案 30
3.11.5 查看提案 31
3.11.6 審批提案 33
3.11.7 執行提案 34
3.11.8 權重為1的情況 35
3.12 超級權限sudo命令 36
3.13 系統命令system 36
3.14 本章小結 37

第4章 構建公鏈網絡 38
4.1 公鏈網絡概述 38
4.2 bbt腳本構建公鏈 38
4.2.1 bbt腳本幫助文檔 39
4.2.2 執行bbt腳本 41
4.3 公鏈資源管理 42
4.3.1 抵押帶寬 43
4.3.2 投票與代理投票 47
4.3.3 贖回帶寬 49
4.3.4 買賣內存資源 50
4.4 公鏈啟動重點步驟 51
4.4.1 創建系統賬戶 51
4.4.2 創建普通賬戶(資源管理) 52
4.4.3 注冊生產候選人 55
4.4.4 查看生產候選人 55
4.4.5 查看賬戶資源 56
4.4.6 為候選人投票 56
4.4.7 生產者認領獎勵 57
4.5 啟動結束掃尾工作 58
4.5.1 查看出塊計劃 58
4.5.2 處理eosio賬戶 59
4.5.3 處理系統賬戶 60
4.5.4 處理system合約 60
4.6 手動構建多機多節點網絡 60
4.6.1 初始節點準備 61
4.6.2 連接多機多節點 62
4.7 本章小結 63

第5章 源代碼調試入門 64
5.1 調試環境搭建 64
5.2 調試nodeos命令 66
5.2.1 CMakeList.txt 66
5.2.2 application 66
5.2.3 插件初始化 68
5.2.4 啟動插件 72
5.2.5 執行插件 74
5.2.6 斷開和異常處理 75
5.3 調試cleos創建賬戶 75
5.3.1 入口main函數 75
5.3.2 get info熱身 76
5.3.3 開始調試 78
5.3.4 事務相關參數 79
5.3.5 回調函數 80
5.3.6 context_free_actions 84
5.3.7 獲取必需密鑰 86
5.3.8 簽名事務 86
5.3.9 打包事務 87
5.4 本章小結 88

第6章 數據持久化 89
6.1 blocks.log日志庫 89
6.1.1 Merkle Tree 89
6.1.2 區塊鏈數據結構 91
6.1.3 數據持久化概述 96
6.1.4 block_log接口 98
6.1.5 repair_log函數 99
6.2 chainbase狀態庫 101
6.2.1 并發訪問 102
6.2.2 undo操作 103
6.2.3 持久化處理 107
6.2.4 移植性 110
6.2.5 multi_index 111
6.2.6 與blocks.log對比 114
6.3 controller控制器 114
6.3.1 控制器概覽 114
6.3.2 控制器的信號 118
6.3.3 控制器實現概覽 123
6.3.4 待確認庫/分叉庫 124
6.3.5 快照技術 130
6.4 本章小結 136

第7章 智能合約 137
7.1 簡介 137
7.2 合約開發工具集 138
7.2.1 安裝cdt 138
7.2.2 編譯合約 139
7.2.3 部署合約 139
7.2.4 執行合約動作 140
7.2.5 編寫合約 140
7.2.6 李嘉圖合約 141
7.2.7 更新合約 141
7.2.8 調試合約 142
7.3 eosio.token 通證 142
7.3.1 創建token 142
7.3.2 發行token 143
7.3.3 token轉賬 145
7.3.4 余額減少 146
7.3.5 余額增加 147
7.4 eosio.system系統設置 148
7.4.1 概覽 148
7.4.2 更新已入選生產節點 150
7.4.3 系統合約管理出塊 153
7.4.4 初始化主幣 155
7.4.5 非常規賬戶競拍 156
7.4.6 創建賬戶 158
7.5 本章小結 160

第8章 插件系統源代碼解析 161
8.1 chain_plugin鏈行為核心 161
8.1.1 接口列表 161
8.1.2 同步只讀 162
8.1.3 異步讀寫 164
8.1.4 API插件的生命周期 166
8.1.5 結構體成員序列化 166
8.1.6 chain插件生命周期 167
8.1.7 RPC接口實現 170
8.2 http_plugin 基礎RPC 194
8.2.1 EOS插件通信模式 194
8.2.2 add_api函數 196
8.2.3 add_handler函數 197
8.2.4 url_handlers集合 198
8.2.5 處理HTTP請求 198
8.2.6 生命周期 200
8.3 producer_plugin生產區塊 206
8.3.1 生命周期 207
8.3.2 同步區塊 210
8.3.3 同步事務 213
8.3.4 區塊上鏈 218
8.3.5 區塊不可逆 220
8.3.6 最后不可逆 221
8.3.7 鏈的條幅日志 223
8.3.8 倒計時器 224
8.3.9 循環計劃出塊 226
8.3.10 校驗生產區塊 229
8.3.11 生產區塊 230
8.3.12 啟動出塊管理 231
8.4 mongo_db_plugin狀態持久化 232
8.4.1 生命周期 233
8.4.2 信號管理 236
8.4.3 隊列 237
8.4.4 擦除數據庫 238
8.4.5 初始化插件 239
8.4.6 區塊消費 241
8.4.7 接收事務信號處理 243
8.4.8 應用事務信號處理 245
8.4.9 接收區塊信號處理 246
8.4.10 不可逆區塊信號處理 248
8.5 txn_test_gen_plugin測試TPS插件 250
8.5.1 插件的整體架構 250
8.5.2 創建測試賬戶接口 251
8.5.3 啟動測試接口 256
8.5.4 終止程序接口 261
8.5.5 TPS 261
8.6 本章小結 262
序: