GO語言區(qū)塊鏈應用開發(fā)從入門到精通
定 價:89 元
當前圖書已被 62 所學校薦購過!
查看明細
- 作者:高野
- 出版時間:2021/5/1
- ISBN:9787301321348
- 出 版 社:北京大學出版社
- 中圖法分類:TP312
- 頁碼:324
- 紙張:
- 版次:1
- 開本:16開
本書全面地介紹了Go語言區(qū)塊鏈應用工程師所需要的基礎知識和各種技術,主要分為基礎篇、進階篇和實戰(zhàn)篇三部分。全書共7章,其中1~2章為基礎篇,介紹Go語言環(huán)境安裝、基礎語法、函數(shù)編程、容器編程、面向對象編程、并發(fā)編程以及網(wǎng)絡編程;3~5章為進階篇,第3章介紹區(qū)塊鏈基本原理、發(fā)展歷程、行業(yè)應用案例,第4章主要介紹智能合約,包括solidity基礎語法,多個經(jīng)典案例,以及Go語言如何調用智能合約,第5章主要介紹區(qū)塊鏈原理的程序化實踐,包括Go語言實現(xiàn)Base58編碼、P2P網(wǎng)絡、PoW共識、區(qū)塊鏈組塊以及UTXO賬戶模型實現(xiàn);6~7章為實戰(zhàn)篇,介紹2個實戰(zhàn)項目,第6章介紹如何實現(xiàn)Go語言版的區(qū)塊鏈錢包項目,內(nèi)容包括助記詞生成、私鑰存儲、Coin交易以及Token交易等內(nèi)容,第7章介紹如何實現(xiàn)一個版權交易系統(tǒng),內(nèi)容包含如何去設計區(qū)塊鏈應用系統(tǒng)、后端功能如何與區(qū)塊鏈相結合,它既是一個區(qū)塊鏈系統(tǒng)應用項目,也是一個Go語言Web服務器項目。本書適合想從事GO語言區(qū)塊鏈開發(fā)的程序員及GO語言愛好者閱讀。
高野,2006年畢業(yè)于吉林大學計算機科學與技術專業(yè),曾先后就職于中國聯(lián)通、恒生電子、飛創(chuàng)科技、傳智播客,現(xiàn)任柏鏈道捷CTO。十多年開發(fā)和授課經(jīng)驗,熟悉以太坊、EOS等主流公鏈以及各聯(lián)盟鏈平臺應用開發(fā),研發(fā)了國內(nèi)第一個區(qū)塊鏈應用教學項目——版權交易系統(tǒng),研發(fā)了國內(nèi)首個EOS應用開發(fā)培訓課程,多次參加高校師資培訓、線上線下教學和技術分享活動,培養(yǎng)過的學生遍布全球。
第1章 初識 Go 語言...· 2
1.1 為什么要學習 Go 語言 .3
1.1.1 Go 語言的前世今生..... 3
1.1.2 Go 語言能做什么...... 4
1.2 Go 語言開發(fā)環(huán)境搭建.·5
1.2.1 多平臺開發(fā)環(huán)境搭建.... 5
1.2.2 Go 語言 IDE 開發(fā)工具介紹............... 11
實訓:查看并使用 Go 語言命令行幫助手冊......... 13
本章總結 ... 15
第2章 Go 語言基礎語法................ 16
2.1 數(shù)據(jù)類型與定義 .... 17
2.1.1 數(shù)據(jù)類型豐富........17
2.1.2 如何定義變量.......· 18
2.1.3 如何定義常量.......· 20
2.1.4 如何優(yōu)雅地定義枚舉類型................ 21
2.1.5 不用害怕指針.......· 23
2.2 分支與循環(huán) ....... 24
2.2.1 if 語句的寫法 .......· 24
2.2.2 一個關鍵字支持所有循環(huán)方式............. 26
2.3 函數(shù) ..· 27
2.3.1 Go 語言函數(shù)的特色....·27
2.3.2 函數(shù)閉包..........· 30
2.4 容器編程 ........· 33
2.4.1 數(shù)組的使用......... 34
2.4.2 什么是切片......... 36
2.4.3 map 的使用......... 38
2.5 面向對象編程 .....· 41
2.5.1 自定義結構......... 41
2.5.2 方法封裝..........· 42
2.5.3 結構體內(nèi)嵌......... 44
2.5.4 接口....· 47
2.6 并發(fā)編程 ........· 49
2.6.1 并發(fā)的概念與 Go 并發(fā)的設計.............· 50
2.6.2 并發(fā)經(jīng)典案例.......· 52
2.6.3 同步與 channel......· 54
2.6.4 單方向 channel......· 58
2.6.5 定時器... 62
2.7 網(wǎng)絡編程......... 63
2.7.1 文件 IO 處理 ........ 64
2.7.2 TCP 協(xié)議簡介 ....... 68
2.7.3 TCP 服務器搭建 .....· 70
2.7.4 HTTP 協(xié)議簡介 ......75
2.7.5 HTTP 服務器搭建 ....·77
實訓:基于 TCP 協(xié)議的并發(fā)聊天室 ..............79
本章總結 ... 86
第3章 區(qū)塊鏈原理、發(fā)展與應用..........· 88
3.1 區(qū)塊鏈基本原理 .... 89
3.1.1 區(qū)塊鏈技術為什么會產(chǎn)生................ 89
3.1.2 什么是 hash 函數(shù) ..... 90
3.1.3 P2P 網(wǎng)絡簡介.......· 92
3.1.4 PoW 共識算法....... 93
3.1.5 UTXO 模型 ........· 94
3.2 區(qū)塊鏈發(fā)展歷程 .... 95
3.2.1 區(qū)塊鏈發(fā)展現(xiàn)狀...... 95
3.2.2 區(qū)塊鏈 2.0 時代 ......·97
3.2.3 區(qū)塊鏈行業(yè)未來展望...·97
3.3 區(qū)塊鏈開發(fā)技術選型 . 98
3.3.1 DApp 架構分析......· 98
3.3.2 公鏈與聯(lián)盟鏈之爭....· 99
3.4 區(qū)塊鏈行業(yè)應用示例 ................ 100
3.4.1 數(shù)字金融..........100
3.4.2 電子存證..........101
3.4.3 食品安全..........103
實訓:區(qū)塊鏈理論在線 demo 演示 ..............104
本章總結 .. 104
第4章 Go 語言區(qū)塊鏈初級應用開發(fā).......· 105
4.1 智能合約開發(fā) ....· 106
4.1.1 合約開發(fā)環(huán)境搭建....106
4.1.2 初識 Solidity.......·114
4.1.3 智能合約有哪些數(shù)據(jù)類型...............·122
4.1.4 什么是內(nèi)建對象.....·126
4.1.5 智能合約的函數(shù).....·128
4.1.6 函數(shù)修飾符........·132
4.1.7 巧用復合類型 ......133
4.1.8 斷言處理與自定義修飾符 ..............·136
4.1.9 經(jīng)典智能合約案例....138
4.1.10 智能合約開發(fā)技巧 ...146
4.2 Go 語言與智能合約調用..............·154
4.2.1 合約函數(shù)如何被調用..·154
4.2.2 智能合約被調用的基本步驟..............154
4.2.3 調用合約時如何簽名..·160
4.2.4 如何訂閱合約的 event.·163
實訓:編寫一個銀行合約....168
本章總結 ..·169
第5章 Go 語言區(qū)塊鏈高級應用開發(fā).......· 170
5.1 Go 語言與區(qū)塊鏈開發(fā)準備.............171
5.1.1 Go 語言與 hash 函數(shù)..·171
5.1.2 Go 語言與 Base58 編碼 ................·172
5.1.3 Go 語言與默克爾樹...·174
5.1.4 Go 語言實現(xiàn) P2P 網(wǎng)絡.·178
5.2 Go 語言實現(xiàn) PoW 共識算法 ............183
5.2.1 區(qū)塊定義與數(shù)據(jù)串行化.183
5.2.2 PoW 算法實現(xiàn)......·186
5.3 區(qū)塊數(shù)據(jù)如何持久化 ................ 190
5.3.1 Go 語言與 boltDB 實戰(zhàn).190
5.3.2 區(qū)塊數(shù)據(jù)如何持久化 .·192
5.3.3 區(qū)塊數(shù)據(jù)如何遍歷 ...195
5.4 Go 語言實現(xiàn) UTXO 模型..............196
5.4.1 如何定義交易.......197
5.4.2 如何判斷 CoinBase 交易................199
5.4.3 如何使用 CoinBase 交易................199
5.4.4 如何查找賬戶的 UTXO ................·203
5.4.5 如何發(fā)送交易.......206
5.5 區(qū)塊鏈賬戶地址如何生成 .............·210
5.5.1 公鑰加密與數(shù)字簽名 .·210
5.5.2 生成區(qū)塊鏈賬戶地址..·213
實訓:結合區(qū)塊鏈賬戶地址,發(fā)送區(qū)塊鏈交易......·217
本章總結 ..·218
第6章 Go 語言離線錢包開發(fā)............220
6.1 區(qū)塊鏈錢包原理 ...·221
6.1.1 區(qū)塊鏈錢包的核心原理.221
6.1.2 助記詞如何生成與驗證.223
6.1.3 如何存儲私鑰.......230
6.2 區(qū)塊鏈錢包核心功能實現(xiàn) .............·237
6.2.1 flag 使用與開發(fā)框架搭建 ...............·238
6.2.2 錢包如何支持 Coin 轉移 ................241
6.2.3 錢包如何支持 Coin 查詢 ................246
6.2.4 ERC-20 標準與實現(xiàn) ..·248
6.2.5 錢包如何支持 token 轉移...............·254
6.2.6 錢包如何支持 token 查詢...............·256
6.2.7 交易明細查詢.......257
本章總結 ..·261
第7章 Go 語言圖片版權交易系統(tǒng)開發(fā)......262
7.1 項目需求分析與通證設計 .............·263
7.1.1 項目需求與痛點分析..·263
7.1.2 項目整體設計.......264
7.1.3 ERC-721 標準與實現(xiàn)..265
7.2 項目核心功能實現(xiàn) ..276
7.2.1 Go 語言 Echo 框架搭建 ................·276
7.2.2 注冊實現(xiàn)..........281
7.2.3 登錄與 session 處理...285
7.2.4 圖片上傳處理.......289
7.2.5 拍賣功能實現(xiàn).......298
7.2.6 投票功能實現(xiàn).......308
本章總結 ..·311
參考文獻.. 312