所處部份 主講內容 技術要點 學習目標
第二部份:
區塊鏈后端技術體系:
Go語言高并發服務器開發 1.Linux命令 1.Linux下的目錄結構;2.工作日程應用命令;3.Ubuntu下的軟件安裝和卸載 課程設計理念:
高并發服務器開發,掌握Linux操作系統groutines協程/進程/線程管理和網絡socket編程,熟練編寫C/S客戶機服務器通信程序,理解Go協程的調度器機制具備常見高并發服務器開發,游戲服務器開發能力。
區塊鏈的學習知識體系,是后端編程的知識體系,以太坊,瑞波幣,比特幣目前主流的區塊鏈成型項目多數都是選擇Go語言和C++語言實現,所以搭建后端服務編程知識體系才是打好區塊鏈開發的首選基石,對于今后發展至為重要。
可掌握的核心能力:
1.具備常用后臺服務器開發方向基本知識和常用技能,并具備基本的開發能力;
2.掌握gouroutine、channel等go語言并發機制和高并發服務器解決方案;
3.掌握Linux平臺系統編程;
4.掌握網絡編程協議,實現網絡間點對點通信。
可解決的現實問題:
能夠實現包括服務器后臺、服務器數據庫的開發。
2.linux開發與調試工具 1.Go語言Linux下IDE開發工具安裝與配置;2.文件描述符,虛擬地址空間;3.Linux系統IO函數;4.阻塞和非阻塞的概念
3.系統I/O操作 1.os包;2.文件屬性相關函數;3.鏈接相關概念及函數;4.目錄操作相關概念及函數
4.進程與IPC通信 1.進程相關的概念;2.進程操作相關函數;3.孤兒進程;4.僵尸進程;5.進程回收;6.進程間通信
5.線程與同步 1.互斥量;2.死鎖以及解決方案;3.讀寫鎖;4.條件變量;5.條件變量實現生產消費者模型;6.線程同步解決哲學家就餐問題;7.Sync包
6.goroutine協程與調度器 1.Goroutine協程的概念;2.Goroutine調度器機制;
3.協程的高并發編程
7.channel管道與CSP同步機制 1.CSP通訊順序同步機制;2.channel管道及特性;
3.緩存channel與非緩存channel;4.并發的循環;5.select
8.網絡協議與網路編程 1.OSI七層模型結構;2.TCP/IP 4層模型結構;3.B/S、C/S優缺點對比;4.常見網絡協議格式;5.套接字;網絡字節序;6.IP地址轉換函數;7.編寫TCP的C/S網絡程序;8.UDP通信機制與模型;9.本地套接字;10.三次握手建立連接過程;11.四次握手斷開連接過程;12.滑動窗口概念;13.錯誤處理函數封裝;14.TCP狀態轉換;15.2MSL概念;16.端口復用方法;17.半關閉;18.socket網絡編程
9.Go高并發服務器開發實戰 1.socket客戶端編程;2.socket服務端編程;3.案例:并發的時鐘服務器;4.案例:并發的回顯服務器;5.實戰:高并發網絡聊天室
10.Go并發的爬蟲系統開發實戰 1.url基本概念;
2.http協議;
3.正則表達式;
案例:并發的百度貼吧爬蟲
案例:高并發內涵段子爬蟲
第三部份:
去中心化前端開發與web服務器開發 1.關系型數據庫-mysql 1.mysql表的約束;2.mysql中出現的中文亂碼問題;3.mysql函數庫連接數據庫;4.mysql API訪問數據庫;5.使用基礎類API實現mysql客戶端工具;6.預處理類API訪問mysql數據庫;7.使用api修改mysql事務特性 課程設計理念:
去中心化Dapp的頁面開發還是基于傳統的Web2.0的技術,html/css/javascript是整個互聯網頁面的基石,學好他們打好基礎非常的重要。
Beego是目前大型互聯網公司主流的web服務器框架,由于Go的先天性支持高并發,所以很多大型互聯網公司都在web服務框架做Go語言的轉型,可以輕松實現億萬級別的高并發,更加節約企業運營成本。
可掌握的核心能力:
1、 可根據產品原型圖,開發web網站的前端界面;
2、 可根據業務流程圖,開發web網站的后臺業務;
3、 可根據web框架設計,開發對應的數據庫;
4、 緩存服務器的操作和設計;
5、 異步任務的實現。
可解決的現實問題:
1、高并發全功能的web網站開發;
2、提供數據響應速度靈活運用緩存;
3、根據實際問題設計出相應數據庫表。
2.no-sql緩存型數據庫-redis 1.key-value存儲方式特性;2.redis的環境安裝和redigo驅動安裝;
3.redis中key相關操作;4.redis中string相關操作;5.redis中list相關操作;6.redis中hash相關操作;7.redis中set和sort-set相關操作
3.分布式文件系統fastDFS 1.分布式概念;2.tracker、storage、client相關配置;
3.fastDFS中go的api封裝
4.前端開發 1.靜態頁面:html入門;css入門;css高級;css高級;
2.動態頁面:JavaScript編程;DOM操作;JQuery;JQuery高級;JQuery高級;3.前端框架Vue.js
5.git 1.代碼版本控制工具git的常用指令;2.git的團隊開發組建;
3.git代碼倉庫的創建與管理
6.beego框架 1.beego的框架環境搭建:
2.controller設計:
參數配置;
路由設置;
session控制;
多種格式數據輸出;
請求數據處理;
3.model設計:
ORM使用;
CRUD操作;
高級查詢;
原生SQL查詢
4.view設計:
模板語法指南;
模板處理
7.大項目一 項目:RESTful接口設計電商項目
第四部份:
區塊鏈密碼學安全理論與開發 1.常用密碼算法 1.對稱加密體系;2.非對稱加密體系;3.數字簽名;
4.數據機密性;5.身份鑒別;6.數據完整性;7.抗抵賴 課程設計理念:
區塊鏈技術實際上是一種對數據安全的更加完善的和抗風險技術,所以密碼學是區塊鏈技術的必備知識,本部份課程中會包括區塊鏈底層實現中常見的密碼學和安全密碼協議。
可掌握的核心能力:
1.具備常見密碼學原理及安全密碼安全協議知識體系;
2.具備信息安全編程開發能力;
3.為信息安全系統開發和區塊鏈開發提供理論支持。
可解決的現實問題:
能夠解決信息安全加密數據傳輸及認證流程,具備信息安全領域開發能力,可解決中心化體系金融開發。
2.常用密碼協議 1.密碼學安全協議;
2.數字證書認證(CA)中心;
3.公鑰基礎設施PKI系統
3.密碼學開發實戰 1.基于中心化的安全;2.點對點的信息安全機密性、完整性;
3.安全中心:數字證書頒發中心
第五部份:
區塊鏈與智能合約開發 1.區塊鏈概念(鏈與幣、通證) 1.鏈、軟(硬)叉、挖礦、算力、雙花、51%攻擊等;2.共識機制(Pow、PoS、DPoS、Pbft、Raft等);3.智能合約與去中心化;4.公有鏈、私有鏈、聯盟鏈;5.電子錢包、數字貨幣、融資(IPO/ICO);6.通證的價值與流轉;7.行業動態
課程設計理念:
了解區塊鏈系統基本原理,基于Go語言能夠給企業定制區塊鏈系統。
掌握主流區塊鏈(Bitcoin,Ethereum)相關機制與原理,理解各類主流的共識算法(PoW,PoS,DPoS),熟練掌握區塊鏈系統Go開發語言,能基于以太坊編寫智能合約,能編寫和發布代幣;
可掌握的核心能力:
1.掌握主流區塊鏈(Bitcoin,Ethereum)相關機制與原理;
2.理解各類主流的共識算法(PoW,PoS,DPoS);
3.熟練掌握區塊鏈系統Go開發語言;
4.熟悉常見的安全協議和加密算法;
5.熟悉比特幣優化協議和行業標準;
6.能基于以太坊編寫智能合約;
7.能編寫和發布代幣。
可解決的現實問題:
扎實的理論基礎,快速融入各種行業企業區塊鏈相關開發需求。
2.Go語言與區塊鏈系統開發 1.Golang區塊鏈公鏈開發-區塊鏈架構實現;2.Golang區塊鏈公鏈開發-工作量證明;3.Golang區塊鏈公鏈開發-持久化;4.Golang區塊鏈公鏈開發-UTXO交易結構;5.Golang區塊鏈公鏈開發-交易與地址;6.Golang區塊鏈公鏈開發-交易與梅克爾樹;7.Golang區塊鏈公鏈開發-交易與網絡
3.以太坊與智能合約
1.以太坊簡介與環境搭建;
a. Mist錢包
b. MetaMask錢包
c. Remix編譯器
2.智能合約簡介與Solidity語法詳解;
a. 基礎語法:整型、布爾、浮點、internal、external、storage、memory等
b. 高級語法:數組、枚舉、結構、映射、元組等
c. 合約相關:合約、繼承、全局函數、地址、轉賬、事件、修飾器等
4.以太坊源碼概覽與源碼分析 1. 下載、編譯、啟動Go-etherenum;2. Go-etherenum客戶端代碼和Node分析;3. 以太坊RPC通信實例和原理代碼分析;4. Ethereum服務和以太坊P2P協議發送廣播源碼分析;5. 以太坊P2P協議接收廣播的處理和Fetcher源碼分析;6. 以太坊核心BlockChain源碼分析;7. 以太坊通過EVM執行交易過程分析;8. 以太坊Bloom過濾器實現原理及應用場景分析;
5.Node.js簡介 1. ES6介紹;2. ES6變量定義;3. ES6解構賦值;4. ES6函數擴展;5. ES6class語法;6. Nodejs發展歷史;7. Nodejs異步IO機制;8. Nodejs功能介紹;9. npm包下載;10.全局變量;11.path模;12.fs模塊;13.fs模塊reader流;14.pipe的使用;15.http模塊
6.以太坊開發框架 1. 區塊鏈搭建并實現多個節點實現數據交互;
a. 私有鏈搭建
b. 聯盟鏈搭建
2. Truffle框架學習;
a. 部署在不同的環境中(develop環境、Ganache、私有鏈、ropsten網絡等)
b. 單元測試編寫
c. 內置項目介紹
3. Web3.0.js學習;
4. Embark 框架介紹
7.IPFS 去中心化分布式文件系統 1. IPFS+react;2. 安裝IPFS-api;3. IPFS服務的啟動、關閉、及項目配置;4. IPFS常用數據結構指令;5. IPFS的合約部署
大項目二:以太坊DAPP開發實戰 案例1:以太坊項目實戰-投票系統;案例2:以太坊項目實戰-發行代幣;
案例3: 基于以太坊的去中心化游戲-以太貓開發實戰;
項目: 基于以太坊的去中心化商品競價系統
第六部份:
分布式微服務開發 1.虛擬化VS容器化 1.虛擬化基礎知識;2.常見虛擬化種類及技術實現;
3.容器化基礎知識 虛擬化 VS 容器化 課程設計理念:
區塊鏈實際上是一種分布式的記賬本,分布式的概念對于區塊鏈開發很重要,該部份課程重要解決企業常見虛擬化部署及微服務相關分布式主流技能,Go語言作為Docker的開發語言,更是捧紅了分布式的生態,所以分布式助于更加理解區塊鏈的去區中心化。
可掌握的核心能力:
1.具備市場主流大數據分布式技術;
2.具備go語言高并發后臺開發能力;
3.具備docker虛擬化容器技術;
4.具備分布式微服務架構設計能力。
可解決的現實問題:
1.解決企業容器虛擬化技術;
2.解決企業從資源的利用率和可用性優化方案;
3.解決傳統PaaS企業,采用Micro Service(微服務)的方式來實現他們的應用。
2.Docker與Kubernetes(k8s)實戰 1.Docker快速入門;2.Docker鏡像管理;3.Docker容器管理;4.Docker數據管理;5.Docker網絡管理;6.Docker集群管理;7.Kubernetes設計架構;8.Kubernetes集群與部署;9.基于Docker本地運行Kubernetes
3.分布式編程理論 1. 高可用設計; 2. 負載均衡; 3. 集群
4.Go語言與微服務 1.微服務的優勢;2.docker容器構建微服務;3.protobuf微服務交互協議;4.gRPC遠程調度機制;5.服務發現;6.基于go-micro微服務實戰
第七部份:
區塊鏈系統框架開發 1.區塊鏈Hyperledger Fabric聯盟鏈框架 1.Hyperledger Fabric框架概述;2.Hyperledger Fabric框架架構設計;3.Hyperledger Fabric SDK解析;4.Hyperledger Fabric 模塊組成 課程設計理念:
hyperledger是IBM公司支持,linux基金會孵化的區塊鏈商業級開發平臺。hyperledger Fabric是完全用Go語言實現的,hyperledger是可以廣泛運用在私有鏈和聯盟鏈上,國內有眾多的大公司加入了hyperledger聯盟。
可掌握的核心能力:
1.具備區塊鏈及相關產業的工作經驗;
2.具備類Hyperledger,以太坊等公開區塊鏈項目開發能力;
3.具備智能合約及其使用場景;
4.具備掌握Bitcoin,Ethereum,HyperLedger Fabric的區塊鏈相關機制與原理;
5.熟悉;Hyperledger Fabric Technology的各種組件(Peers、Orderer、MSP、CA ...);
6.能夠使用Go語言編寫智能合約鏈碼;
7.熟悉hyperledger febric的部署。
可解決的現實問題:
1.區塊鏈底層產品的設計、研發工作;
2.區塊鏈應用層產品的設計、研發工作;
3.研究底區塊鏈底層協議及實現,參與優化重構。
市場價值:
熟練學習和掌握后,可滿足企業開發的初中級、甚至高級需求,根據市場反饋數據看,薪資普遍在 15000-30000元 /月。
2.Go語言智能合約的開發與部署 1.實現智能合約接口;2.智能合約的依賴關系;3.智能合約的數據格式;
4.智能合約的接口解析
3.Hyperledger Fabric + Go/Node.js API 1.Fabric Go/Node.js 開發實戰;2.背書策略解析;3.Ledger設計;
4.Channel安裝部署與開發;5.轉賬交易;6.掛單交易;7.Escrow與 Payment Channel 交易
4. 華為BCS區塊鏈平臺開發實戰 1.華為云平臺區塊鏈服務簡介;2.云平臺區塊鏈服務搭建;
3.鏈代碼管理;4.鏈代碼編寫;5.個人認證鏈代碼;6.項目區塊鏈服務系統搭建;7.交易信息上鏈
5.EOS開發實戰 1.EOS介紹與白皮書解讀;2.DApp要求與DPOS共識算法;3.賬戶與并行執行;4.Token模型與資源使用;5.基于EOS的智能合約開發
6.大項目三: 6.微服務分布式租房去中?心化系統
第八部份:
Golang面試強化與腳本編程 1.Go與數據結構 1.Go語言與隊列;2.Go語言與鏈表;3.Go語言與堆棧;3.Go語言與二叉樹 課程設計理念:
區塊鏈的技能要求工程師掌握常見的數據結構與算法,為了更好通過筆試及面試,添加了Go的相關區塊鏈算法的面試強化部份
可掌握的核心能力:
1、Unix/Linux下Shell編程開發;
2、掌握Shell的函數語法和工具制作;
3、掌握Linux常用Shell指令和問題定位方法;
面試強化訓練;
4、掌握項目發布的流程規范;
5、掌握常用數據結構與算法;
6、了解項目生命周期及項目常見開發模式。
可解決的現實問題:
1、區塊鏈相關算法;
2、Go語言常見面試算法;
3、項目生命周期理解;
復習和鞏固所學知識,進行專題面試強化。
2.Go與常用算法 1.冒泡排序;2.選擇排序;3.快速排序;4.二分查找;5.歸并排序;6.堆排序
3.UnixShell腳本高級編程 1.高級指令引入;2.Shell函數;3.Shell特殊用法;4.Shell案例實戰 |