《Solidity智能合約開發技術與實戰》教案_第1頁
《Solidity智能合約開發技術與實戰》教案_第2頁
《Solidity智能合約開發技術與實戰》教案_第3頁
《Solidity智能合約開發技術與實戰》教案_第4頁
《Solidity智能合約開發技術與實戰》教案_第5頁
已閱讀5頁,還剩19頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

以太坊Solidity智能合約開發技術與實戰教案院業時師期

學專學講日第三講:第3章Solidity編程基礎院業時師期

學專學講日教學目標與要求:練習開發Solidity的第一個示例程序掌握Solidity常量和變量的概念和定義方法掌握Solidity基本數據類型和使用方法掌握Solidity復合數據類型和使用方法教學主要內家、時間安排及教學方法與手段:一、Solidity的第一個示例程序實時在線Solidity編輯器Remix。使用VisualStudioCode開發Solidity程序。Eureka服務注冊中心的主頁。二、常量和變量常量。變量。三、基本數據類型字符串型。整型。定長浮點型。布爾類型。地址類型。合約類型。四、復合數據類型枚舉類型。結構體。映射。數組。重點和難點:重點:SolidityHelloworld程序、使用VisualStudioCode開發Solidity程序、常量和變量、基本數據類型、復合數據類型難點:復合數據類型復習思考題、作業題:練習使用實時在線Solidity編輯器Remixo練習編寫并運行SolidityHelloworld程序練習使用VisualStudioCode開發Solidity程序了解Solidity常量和變量的定義方法。了解Solidity基本數據類型的使用方法。練習在程序中使用枚舉類型。練習在程序中使用結構體。練習在程序中使用映射。練習在程序中使用數組。教研組意見:負責人簽字:年月日教學后記(實施情況及分析):第四講:第4章常用語句教學目標與要求:◎掌握賦值語句的使用方法◎掌握if語句和if---elseif---else語句等分支語句的使用方法◎掌握for語句、while語句、do…while…語句、continue語句和break語句等循環語句的使用方法教學主要內家、時間安排及教學方法與手段:4-1賦值語句4-21>if語句2、if…elseif…else語句4-3循環語句1、for語句2、while語句3、do…while…語句重點和難點、:重點:賦值語句、分支語句、循環語句難點:循環語句復習思考題、作業題:任務1練習使用賦值語句使用二賦值,實現PUT方法,使用+二和-二等其他賦值運算符進行賦值任務2練習使用分支語句使用if語句,使用if…elseif…else語句。任務3練習使用循環語句使用for語句,使用while語句,使用do…while…語句,使用continue語句,使用break語句。教研組意見:

負責人簽字:年月日教學后記(實施情況及分析):負責人簽字:年月日第五講:第5章智能合約與函數教學目標與要求:.掌握智能合約編程基礎.掌握定義函數的方法.掌握函數修改器和函數參數的使用方法.掌握自毀函數、函數重載、內置函數、外部函數、Fallback函數、抽象合約和接口等編程方法。.掌握Solidity語言的異常處理方法。教學主要內參、時間安挑及教學方法與手段:智能合約編程基礎狀態變量的可見性智能合約的構造函數智能合約之間的繼承函數編程基礎521定義函數函數修飾詞函數的參數函數的高級應用自毀函數函數重載內置函數外部函數導入外部函數函數庫Fallback函數抽象合約和接口抽象合約接口繼承異常處理assert函數require函數revert函數重點、和唯A:重點:狀態變量的可見性、智能合約的構造函數、智能合約之間的繼承、定義函數、函數的參數、自毀函數、函數重載、內置函數、抽象合約、接口、assert函數、require函數、revert函數。難點:通過SpringCloudRibbon和SpringCloudFeign組件實現服務消費者程序負載均衡復習思考題、作業題:1任務1在智能合約中定義公有變量、私有變量和內部變量,練習公有變量getter訪問器的用法。任務2定義智能合約的構造函數。任務3練習智能合約之間的繼承。任務4練習在智能合約中定義函數,練習使用函數修飾詞和函數參數。任務5練習使用自毀函數。任務6練習在智能合約中使用函數的重載。任務7練習使用Solidity語言的內置函數。任務8練習定義函數庫,并在智能合約中導入外部函數。任務9練習使用Fallback函數。任務10練習使用抽象合約。任務11練習使用接口。任務12練習使用assert函數、require函數和revert函數進行異常處理。教研組意見:負責人簽字:年月日教學后記(實施情況及分析):第六講:第6章以太坊JavaScriptAPIWeb3.js教學目標與要求:.了解Web3.js通信模型的工作原理。.掌握安裝Web3.js的方法。.掌握Web3,js區塊編程的方法。.掌握Web3Js以太坊賬戶與交易編程。.掌握Web3.js智能合約編程的方法。教學主要內參、時間安排及教學方法與手段:6-1Web3.js概述1、什么是Web3.js2、安裝Web3.js3、第一個Web3Js的小實例4、在網頁中使用Web3.js5、本章實例的執行環境6、JavaScriptPromise對象6-2區塊編程1、標識一個區塊2、獲取當前區塊編號3、獲取默認區塊4、獲取指定區塊詳情5、獲取指定叔區塊6-3以太坊賬戶與交易編程1、獲取賬戶列表2、默認賬戶和幣基賬戶3、獲取賬戶余額4、獲取指定區塊中的交易數量5、獲取指定區塊中的交易詳情6、根據交易哈希獲取交易對象7、獲取交易的收據對象8、向以太坊網絡提交交易9、估算交易的Gas用量6.4智能合約編程基礎1、以太坊智能合約ABI2、以太坊智能合約的字節碼3、在VisualStudioCode中生成智能合約的ABI和字節碼4、JSON-RPC在Web3.js中與智能合約進行交互1、創建合約對象2、調用合約函數Web3.js開發實例:明日之星投票、編寫投票智能合約2、部署和測試投票智能合約重點和雄點:重點:Web3.js通信模型的工作原理、安裝Web3.js的方法、Web3.js區塊編程的方法、Web3.js以太坊賬戶與交易編程、Web3.js智能合約編程的方法。難點:Web3Js智能合約編程的方法。復習思考題、作業題:任務1安裝Web3.js任務2編寫第一個Web3Js的小實例任務3練習在網頁中使用Web3Js任務4使用JavaScriptPromise對象編程任務5區塊編程任務6以太坊賬戶編程任務7以太坊交易編程任務8生成Solidity智能合約ABI代碼任務9生成Solidity智能合約字節碼任務20利用JSON-RPC將智能合約部署在以太坊網絡中任務21通過JSON-RPC與以太坊智能合約交互任務22在Web3.js中與智能合約進行交互任務22練習實現Web3.js開發實例:明日之星投票教研組意見:負責人簽字:年月日教學后記(實題情況及分析):第一講:第1章區塊鏈技術基礎授課日期:第1天授課節次:4課程名稱:以太坊Solidity智能合約開發實戰任課教師:授課班級:授課地點:授課題目(章、節):第一章區塊鏈技術基礎教學用具:多媒體教學目標與要求:了解經典區塊鏈平臺比特幣的工作原理。了解區塊鏈的工作原理及底層技術。了解智能合約的概念。了解經典區塊鏈編程語言。教學主要內緣、時間安桃及教學方法與手段:從比特幣說起比特幣的發展歷史中本聰發表《比特幣:一種點對點式的電子現金系統》。比特幣網絡的工作原理。比特幣發展歷程什么是比特幣系統?去中心化?比特幣的賬本共識算法和比特幣的挖礦拜占庭將軍問題與共識算法比特幣的挖礦挖礦的難度目標確定和難度調整挖礦形式的演變第七講:第7章事件與日志教學目標與要求:酚掌握事件模型的工作原理掌握Solidity語言定義和觸發事件的方法掌握Web3Js中監聽事件的方法掌握在Remix中查看日志數據的方法掌握底層日志接口編程的方法掌握Web3Js中檢索日志的方法教學主要內參、時間安排及教學方法與手段:一、事件事件模型事件模型在Web3Js中監聽事件二、日志在Remix中查看日志數據底層日志接口檢索日志點、和難點、:重點:事件模型、定義和觸發事件、在Web3.js中監聽事件、在Remix中查看日志數據、底層日志接口、檢索日志難點:在Web3.js中監聽事件、底層日志接口、檢索日志復習思考題、作業題:任務1在Solidity中定義和觸發日志。任務2在Web3.js中監聽事件。任務3在Remix中查看日志數據。任務4通過底層日志接口記錄日志。任務5通過web3.eth.getTransactionReceipt()方法在交易收據中檢索日志。教研組意見:負責人簽字:年月日教學后記(實選情況及分析):第八講:以太坊DApp開發框架Truffle第八講:以太坊DApp開發框架Truffle.了解Truffle開發框架的基本特性。.掌握安裝Truffle開發框架的方法.掌握下載和安裝Ganache的方法.掌握Truffle項目管理方法.掌握使用Truffle框架實現智能合約編程的方法.掌握使用Truffle框架測試合約的方法教學主要內家、時間安挑及教學方法與手段:8-1Truffle開發框架概述Truffle開發框架的基本特性安裝Truffle開發框架選擇以太坊客戶端個人區塊鏈Ganache8-2Truffle項目管理創建項目配置Truffle項目編譯合約824部署合約遷移合約的命令在測試區塊鏈中部署合約遷移腳本文件初始化遷移8-3智能合約編程與合約進行交互合約抽象執行合約函數部署合約向合約發送以太幣TruffleDevelopTruffleDevelop與TruffleConsole的區別使用TruffleDevelop的方法Truffle命令Truffle框架與智能合約MetaCoin交互的前端應用案例示例中的文件項目配置文件package.jsonWebpack配置文件index.jsindex.html運行項目在Truffle框架中使用MetaMask在Chrome瀏覽器中安裝MetaMask錢包在項目模板webpack內置的前端應用中使用MetaMask錢包使用TruffleReact框架開發基于以太坊智能合約的DAppReact前端開發框架簡介卜載項目模板react項目模板react的前端應用目錄結構編譯和部署合約index.jsApp.js運行項目,查看效果重點和難點:重點:安裝Truffle開發框架、個人區塊鏈Ganache,Truffle項目管理、智能合約編程、在Truffle框架中使用MetaMask>使用TruffleReact框架開發基于以太坊智能合約的DApp>測試合約難點:Truffle項目管理、智能合約編程使用TruffleReact框架開發基于以太坊智能合約的DApp、測試合約復習思考題、作業題:任務1安裝Truffle開發框架。任務2下載和安裝個人區塊鏈Ganache任務3創建項目、配置Truffle項目、編譯合約、部署合約任務4使用TruffleDevelop任務5實現使用Truffle框架與智能合約MetaCoin交互的前端應用案例任務6在Truffle框架中使用MetaMask任務7使用TruffleReact框架開發基于以太坊智能合約的DApp任務8使用TruffleReact框架測試合約任務9部署、調試、運行Truffle示例項目寵物商店pet-shop教研組意見:負責人簽字:年月日教學后記(實施情況及分析):第九講:第9章以太坊測試網絡教學目標與要求:.了解以太坊主網絡和測試網絡的區別.掌握獲取測試幣的方法.掌握通過Infura節點集群連接以太坊網絡的方法.掌握在測試網絡中完成以太坊交易的流程和方法教學主要內家、時間安排及教學方法與手段:1主網絡和測試網絡酚以太坊測試網絡概述◎獲取測試幣2通過Infura節點集群連接以太坊網絡注冊Infura賬戶通過Infura連接到以太坊網絡酚白名單部署智能合約到Ropsten網絡9.3在測試網絡中完成以太坊交易以太坊交易的過程通過ethereumjs-tx實現與以太坊的交易完整的交易實例重點和推點:重點:獲取測試幣、注冊Infura賬戶、通過Infura節點集群連接以太坊網絡、部署智能合約到Ropsten網絡、通過ethereumjs-tx實現與以太坊的交易難點:通過Infura節點集群連接以太坊網絡、通過ethereumjs-tx實現與以太坊的交易復習思考題、作業題:任務1使用MetaMask申請Ropsten測試幣。任務2注冊Infura賬戶。任務4通過Infura連接到以太坊網絡。任務5使用infura項目ID和項目密鑰連接Ropsten測試網絡并創建Web3對象。任務6利用Truffle的hdwallet-provider組件將智能合約部署到Ropsten網絡,任務7通過ethereumjs-tx實現與以太坊的交易教研組意見:負責人簽字:年月日教學后記(實施情況及分析):第十講:第10章編寫安全的智能合約教學目標與要求:了解以太坊智能合約設計需要遵循的安全理念了解從軟件工程技術的角度規避風險的方法了解通過規范編寫開發文檔規避風險的方法了解通過設置Bug賞金規避風險的方法掌握常見的針對智能合約的攻擊以及規避這些攻擊的方法理解智能合約開發過程中的安全建議了解智能合約安全審計的過程及方法掌握使用Mythri1分析solidity合約的安全漏洞的方法教學主要內今、時間安排及教學方法與手段:一、以太坊智能合約安全設計的基本原則需要遵循的安全理念從軟件工程技術的角度規避風險開發文檔關于Bug賞金二、常見的針對智能合約的攻擊重入問題搶先交易強制發送以太幣到智能合約三、智能合約開發過程中的安全建議關于以太坊智能合約系統開發的建議Solidity語言的安全問題四、智能合約的安全審計如何對智能合約進行審計一個審計報告的例子使用Mythri1分析solidity合約的安全漏洞重點:需要遵循的安全理念、從軟件工程技術的角度規避風險、常見的針對智能合約的攻擊、關于以太坊智能合約系統開發的建議、Solidity語言的安全問題、如何對智能合約進行審計、使用Mythri1分析solidity合約的安全漏洞難點:常見的針對智能合約的攻擊、Solidity語言的安全問題、如何對智能合約進行審計、使用Mythri1分析solidity合約的安全漏洞復習思考題、作業題:.編寫實現自動下線機制的智能合約.編寫注冊合約.編寫中繼合約.編寫使用熔斷器的合約.編寫通過限定區塊號增速來限速的合約.使用Mythri1分析solidity合約的安全漏洞教研組意見:負責人簽字:年月日教學后記(實施情況及分析):第十一講:總結與回顧教學目標與要求:對Solidity智能合約開發實戰課程所學的重要內容回顧且對學生的學習情況總結教學主要內參、時間安排及教學方法與手段:總結與回顧教研組意見:負責人簽字:年月日教學后記(實施情況及分析):雙花問題支付寶是怎么解決雙花問題的UTXO時間戳分叉區塊鏈技術賦予比特幣價值?傳統互聯網為什么不能承載價值?比特幣為什么可以承載價值1.2區塊鏈的工作原理及底層技術分布式系統的概念區塊鏈的架構設計存儲層網絡層擴展層應用層加密算法對稱加密算法非對稱加密算法國密算法區塊鏈的分類公有鏈私有鏈聯盟鏈區塊鏈為什么會成為國家戰略?區塊鏈技術可以撼動美元的壟斷地位?區塊鏈可以建立全新的社會信用體系區塊鏈技術的發展歷程?區塊鏈1.0?區塊鏈2.0智能合約可遵守性可驗證性隱私性.可執行性區塊鏈的編程語言SolidityJavaJavaScriptPythonC#C++重點和難點:重點:分布式系統的概念、區塊鏈的架構設計、加密算法、區塊鏈技術的發展歷程、智能合約難點:共識算法和比特幣的挖礦、加密算法復習思考題、作業題:任務1了解比特幣的發展歷史任務2了解拜占庭將軍問題與共識算法任務3了解比特幣的挖礦的過程任務4了解什么是雙花問題,支付寶是怎么解決雙花問題的,比特幣是怎么解決雙花問題的任務5了解區塊鏈的架構設計任務6了解加密算法的類型任務7了解國密算法的類型和應用場景任務8了解智能合約的概念任務9了解經典區塊鏈編程語言的情況教研組意見:負責人簽字:年月日教學后記(實施情況及分析):第二講:第2章以太坊區塊鏈授課日期:第3天授課節次:2課程名稱:以太坊區塊鏈任課教師:授課班級:授課地點:授課題目(章、節):第二章以太坊區塊鏈教學用具:多媒體教學目標與要求:.了解以太坊的發展歷史與特色。.掌握以太坊的工作原理。.掌握搭建以太坊私有鏈的方法。教學主要內叁、時間安排及教學方法與手段:以太坊的發展歷史與特色以太坊的誕生和發展以太坊的創始人維塔利克?布特林以太坊的4個發展階段DeFi以太坊和Solidity語言在國際、國內的發展和應用情況以太坊與比特幣系統的對比?相同點?不同點以太坊的工作原理以太坊節點以太坊的狀態機?什么是狀態機?以太坊狀態機以太坊網絡的總體架構存儲層,實現以太坊數據的存儲。網絡層,用于實現以太坊的網絡通信。合約層,EVM(Ethereum

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論