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