掌握這套框架思惟,你的智能合約開發將進入開掛狀態!

原創: 賣課的小姐姐程序員

各位同窗好,我是一塊鏈習賣課的小姐姐。今天,咱們想要鄭重且欣喜的爲你們介紹一堂剛上線不久的重量級課程:算法

「以太坊智能合約開發(進階)課」編程

如今這門課程已經歷「內測」+「第一期」的考驗,立刻就要開啓第二期了,在開啓以前,咱們想要爲它再次發聲。設計模式

由於以咱們所見,這絕對是一堂極其所值,能讓你感到超預期的課程,且會源源不斷地爲你帶來驚喜(今天就有1個驚喜,待你挖掘)。數組

第一,在第一期正式上線的當天,開放的30個名額在24小時內就所有被報滿且超額!安全

這背後意味着—— 它是一塊鏈習史上惟一一門屬於高客單價(3999元)的課程,卻能在如此短的時間內被報滿的課程,以往只是低客單價的、入門級的系列課程才能達到這樣的效果。微信

說實話,當時課程名額降低的速度,讓咱們深入地記住了屬於智能合約開發者人的瘋狂。數據結構

第二,資深區塊鏈遊戲開發者、區塊鏈大型沙盤類遊戲evolutionland的負責人錘姐親自參與了這門課的內測,參與事後,她留下兩句評價——app

1)在過去我看過聽過見過的各類智能合約課程裏,我以爲這門課是最好的,或者是惟一的; 2)若是你是一個已經度過了新人執行打雜期間的智能合約開發從業者,沒有上過這門課,你可能會後悔。數據結構和算法

第三,最最值得一提的是結業比賽上的其中一個小組同窗們在48小時內共同協做作出了一個小項目,實現了在智能合約開發上的顯著成長。

下面是他們所作的Dapp簡介:

「The King of Fighters 97 Dapp」

每一輪對抗賽中,由兩位玩家各自指派三位英雄出征,做爲一個總體進行對抗,每位英雄的出場順序由玩家決定,每英雄相互可出拳、腿、必殺、防護四種招數,每次出招狀況均爲隨機,每次攻擊均爲會扣減英雄的生命值,防護可抵消或者保護生命值。

當一方玩家的一位英雄在對抗中生命值爲零後,該玩家的第二位英雄自動跟對方玩家勝出的英雄繼續戰鬥,直到兩位玩家中有一位玩家中三位英雄的生命值所有爲零時,其中一方玩家獲勝,該輪對戰遊戲結束。

如下是合約代碼結構:

第四,第一期課程結束後,這門紛紛得到同窗們的稱讚和小建議,這裏不妨直接分享給你學員的真實反饋——

@史遠同窗: 一個偶然的機會看到了智能合約高級編程課的招生海報,當時我就感受到了這個課的不同凡響,第一時間報了名。填寫學習目的時,我寫的是「但願可以節省自學智能合約編程的時間」,如今在課程結束時,我能夠確定地說,這個目的100%達到了,並且收穫多得多。

好久沒有過集體學習的經歷了,在此次學習的過程當中,再次體會到了集體學習的快樂,每次都期待着新課程的發佈和老師對做業的批改。

老師嚴謹細緻的課程設計和講解,耐心負責的班長助教,以及活躍的學習羣,都此次快樂而且高效的學習中不可或缺的因素。

楊老師的水平天然不用多說,教課遊刃有餘。並且我印象最深的就是楊老師對於學生的問題太耐心了,有幾回我本身都很差意思再一直問下去了,楊老師仍是會連着發好幾條六十秒的語音,把問題解釋的很是清晰。很是感謝老師!

班長和助教催交做業也是課程特點之一,要是沒按時寫做業,天天都會有小姐姐找你聊天的。感謝班長和助教們這麼負責任,讓我一次都不敢晚交做業!

除了緊湊的課程外,還安排了每日打卡的活動,致使我這一個月徹底沒有了娛樂時間,可是堅持每日打卡也讓個人收穫很是的大,爲了打卡查資料、學新知識、對已有的知識進行了系統的整理,從別的同窗的打卡中也學習到了不少。再加上每週一次的專題直播活動,極大擴寬了視野,加深了對區塊鏈各類相關知識的理解。

在課程結束的時候,不得不說,遇到這個課程真的是很幸運。

若是你還想看到更多來自第一期學員的評價和反饋,大致是這樣的——

@謝晉同窗:我還能再學一次嗎?

若是你看到這裏,已經心癢難耐,火燒眉毛的想要報名這門課程。很差意思,還不是時候,由於我要給你的驚喜尚未完!

通過內測以及第一期公測,一塊鏈習和楊鎮老師一直在收集課程反饋建議以及調整課程內容。之因此這樣費勁心思,是由於咱們想要的就是必須保證精心打磨課程內容,努力作到「惟一精品」。

所以,咱們在第二期,從新更新錄製了8節所有的課程內容!😄

而且根據內測、公測的反饋,咱們在課程大綱上作了如下的調整:

開設這門課程的動因

不少人或許不知道,雖然楊鎮老師很早就知道了比特幣,但他我的是 2016 年末纔開始學習和研究區塊鏈技術的。通過了一個月左右的對 fabric 的從入門到放棄後,他把精力集中到了以太坊上。

從 2017 年 3 月到 10 月的大概 7 個月左右的時間裏,他用業餘時間翻譯了以太坊官網的 Homestead 文檔,沒有用任何機器翻譯軟件,徹底是本身讀原文來譯爲中文,雖然當時已經有其餘人作了中文版,但他知道作這個事的目的仍是學習、是積累,這也就是他的風格。

到 2017 年末的時候,楊鎮老師基本上已經知道了以太坊是什麼,它能幹什麼以及它正在幹什麼。然後就發現了目前國內文章質量最高的中文以太坊社區 Ethfans,當時的想法仍是去結合本身對軟件技術的理解和積累去作一些高質量的翻譯、提供一些高質量的內容。

在今年 3 月份的時候,楊鎮老師很幸運參與了 HiBlock 社區組織的 Solidity 官方文檔中譯項目,後來也成爲了管理員,對中譯版作了不少的校正工做;

同時,他開始學習以太坊黃皮書,2017 年下半年曾經看過黃皮書,但當時看不懂,半年以後再來看,感受就簡單了不少。

同時也更深地理解了黃皮書的價值和它開創性的貢獻,尤爲是在借鑑了其餘不少所謂「智能合約平臺」的設計以後。

從今年4月下旬開始他就對黃皮書的中文版(最初由猿哥和高天露中譯)的正文全文進行了獨立的校正和增補更新(結合英文版拜占庭版本的更新),到 5 月初最終完成。

至此,結合 Solidity 文檔中的相關細節,他終於以爲本身真正搞懂了以太坊、搞懂了智能合約。不過,直到今年夏天依然沒有看到市面上有其餘人出這樣一門課程,不管線上仍是線下。

他認爲很是奇怪:爲何智能合約開發的必修基礎課沒有人在講呢?爲何這麼有價值的、水平這麼高的技術文檔沒有人在講呢?那些本身看看社區文檔就能搞定的東西反而那麼多人在講呢?

因此,他以爲應該作一門真正有質量的課,給那些和他同樣關注細節、但願紮紮實實打好基礎、討厭低質量的快餐式學習的同行打造一個能真正幫助他們提升對智能合約的理解、幫助他們儘快從入門到精通的智能合約開發進階課程。

這門課程解決什麼問題?

Solidity 語言基礎

這門課程將首先將介紹 Solidity 語言基礎(Solidity 做爲智能合約開發語言的一些特殊之處) 並結合數個合約實例帶你走進智能合約的世界。

Solidity 是一種結合了 C++、Python 和 Javascript 語言創造出來的爲智能合約開發而定製的語言,雖然它在設計時沒有考慮形式化驗證(智能合約的運行結果是依賴於其自己的合約「狀態」數據和區塊鏈環境數據的,因此最初沒有考慮形式化驗證大概也是能夠理解的),它的數據類型的表現力有限(好比不支持真正的元組類型、不支持多維動態數據的序列化等等)。

但它也確實在事實上簡化了智能合約的開發,是一種上手很容易、對初學者「很友好的」開發語言,它的技術價值是不能否認的。

不過,這種看起來「很簡單的」語言,其實並不簡單,由於有太多不那麼直觀的因素會影響 Solidity 程序的運行;而大部分開發者也許並不那麼理解智能合約的運行環境——以太坊虛擬機(EVM)的各類各樣的技術細節,各類各樣的大坑小坑。

好比 private 函數和 public 函數在調用時到底有什麼不一樣,僅僅是可見性麼?好比數據在內存和存儲(storage)中的結構有什麼區別,爲何我能夠對存儲中的動態數組使用 push 和 pop,而對內存中的就不行?

好比 fallback 函數是如何運做的,它真的不能接收參數也不能有返回值麼?好比 transfer、send 和帶 value 的 call 有什麼區別?又好比 EVM 中複雜的費用設計(尤爲是存儲的使用費)和 gas 返還機制是如何影響合約的 gas 消耗(也就是運行費用)的?

Openzeppelin 源代碼分析 相信已經有愈來愈多的開發者知道了 openzeppelin-solidity 這個項目,在以太坊生態中,這絕對是個偉大的項目。由於它提供了衆多通過社區反覆審計、優化的,可複用的基礎合約模版。

這也是很是很是重要的所謂「最佳實踐」,由於楊鎮老師從剛剛入行時就很是重視可複用的代碼和設計模式。「不要重複造輪子」!尤爲是那些已經被證實很好用的、很安全的「輪子」。

在這個課程的第二部分,就將爲你們逐一解釋這個項目中的全部合約模版的源代碼。學習這些優秀的、通過反覆審計的代碼,對開發者而言就是一個很大的提升,讀懂這裏邊涉及的諸多經典的設計模式,對開發者提升編碼水平、培養良好的編碼習慣也大有裨益。

雖然在老師看來這個項目裏的大部分合約都不須要特別解釋,但仍是仔細的爲你們整理了一個相對比較優化的學習順序,幫助你們快速瞭解這幾十個基礎合約。

而其中關於權限控制、生命週期、支付、懸賞以及 ERC20、Crowdsale、ERC721 等合約模版都是很是有實用價值的可複用代碼。

智能合約安全開發指南

智能合約安全的問題是智能合約開發者必須面對的問題,智能合約開發也是一個典型的上手容易、精通難的技術活兒;因此,做爲進階課程,這個話題也是必需要來談的。

在這個課程的第三部分裏,將首先爲你們介紹目前全部已知的攻擊(針對 Solidity 智能合約),包括重入、算術溢出、意外之財、Delegatecall、默認的可見性、隨機錯覺、外部合約引用、短地址/參數攻擊、未檢查的返回值、競爭條件/預先交易、拒絕服務、時間戳操縱、未初始化的存儲指針、浮點和數據精度、tx.origin 斷定;

全部這些攻擊都會結合具體的代碼片斷來說解,以幫助你們理解其中的原理和細節。

然後,將介紹智能合約安全編碼的通常原則、Solidity 智能合約開發的最佳實踐、軟件工程上的考量以及一些安全輔助工具。

智能合約開發進階 課程的第四部分將繼續深刻介紹智能合約開發的高級話題。在第七課裏,咱們會講解以太坊虛擬機的費用設計、指令設計,簡單地介紹 Solidity 內聯彙編,並講解合約 gas 優化的基本原則。

無論用什麼高級語言編寫的智能合約程序,最終都是會被編譯爲 EVM 指令的,最終都會表示爲 EVM 字節碼;因此從本質上講,理解 EVM 指令纔是智能合約開發的終極目標,這也須要咱們能真正理解 EVM 的棧(stack)、內存(memory)、存儲(storage)、calldata 和 returndata 的結構。

在這個課程的最後一課中,咱們將講解三個程序實例:一個對基礎排序算法的 gas 優化實例、一個針對合約存儲和 gas 返還機制的代碼優化實例以及一個以合約實現的簡化的以太坊協議模擬器。以此來說解一些 Solidity 智能合約開發中可能會遇到的比較複雜的場景以及相應的處理實例。

課程設計和推動計劃 除了以上這些基本課程內容之外,咱們還精心設計了幾個須要你們真正動手的編程做業;對於初級合約開發者而言是有必定挑戰的,須要花一些時間和精力才能完成,很是有益於開發經驗的積累、提升對合約編程的理解,同時這些做業自己也有很高的實用價值。

更驚喜的是楊鎮老師也會單獨爲你們批改每次的做業,給予相應的單獨指導。

另外,在時間安排上,以上這些內容會被分攤到四周的時間裏,相對給學習者一個更充足的理解消化時間。

即便如此,考慮到內容自己的難度,這個課程對於學習者來說依然是有很是大的挑戰的。

這是一個精心設計、打磨的包含了很是多技術細節的課程,須要你耐心地學習、理解和積累,是能夠反覆咀嚼消化的,它毫不是那種只須要看一次的實操課或者簡單地對社區文檔的搬運和重複。

從如今開始,報名11月25日開班的以太坊智能合約開發進階課程第二期,不只價格更優惠,並且還有福利相送!具體以下——

1)這門課程將實行「階梯早鳥價格制」,越早報名,優惠越多,課程原價3599元,如今報名只需2899元,優惠價格還有前10個名額,名額滿後,會漲到原價=3599元。

2)這門課程中一個很是大的福利就是——按時完成全部做業,你將得到一半的學費返還!!!

3)那爲了讓各位同窗能對智能合約開發感覺的更深,在第二期的課程裏,咱們特地爲你們準備了一重福利——黑客馬拉松比賽(多是線下喔!),讓你能直接面對面上手實操課程裏所教的所有玩法。

所以,想要報名的同窗,建議趕快掃描下方二維碼前去搶座,動做請快!晚了,不只價格更高,也會面臨沒有名額的風險。

點擊連接,填表報名👇👇👇

yikuailianxi.mikecrm.com/KxQT6AO

目前第二期的報名通道已經所有開啓,點擊連接便可前去填表報名。友情提示:優惠名額有限,晚了可能要漲價了,佔座請快。

全部填寫完報名表的同窗,請記得添加微信號:yikuailianxi,獲取錄取信息。

也許部分同窗還想繼續瞭解下這門以太坊智能合約進階開發課程,那我再簡單介紹下吧——

1.課程名稱:《以太坊智能合約進階開發實戰訓練營》

2.課程導師: 楊鎮老師,資深軟件工程師、區塊鏈技術佈道者。擁有17年+的軟件行業從業經驗,2016年開始學習以太坊,獨立中譯了以太坊Homestead官方文檔、對以太坊黃皮書中文版進行了獨立校正和增補更新、獨立中譯了以太坊分片技術說明。

3.課程時間:11月25日正式開班,預計正常學時1個月,每週更新2節視頻內容。

4.人數:第二期限額50人

5.課程適合對象:已經有 Solidity 初級開發經驗但又作得沒那麼好的開發者;當前以及在從事區塊鏈開發相關工做,但願進一步深造和系統學習以太坊開發相關的程序員;考慮到部份內容對程序設計、數據結構和算法有必定的基礎要求,建議有計算機軟件或相關專業學歷的開發者學習。

6.學習形式: 在線錄播課程+全程強化訓練+1對1導師批改做業點評輔助學習+7名助教帶小組學習+微信班級羣交流。

另外,爲了讓你們真正確認課程是否適合本身,咱們的課程支持1天無條件退款!

7.課程價格:3599元,但實行「階梯早鳥價格制」,每一個班期都會從2899元起售,每滿10人即漲300元,到原價3599元封頂。如今報名,僅需2899元,手慢無!

這裏能夠多說兩句。

按咱們內部討論的預估,這個課程的含金量和價值很是高,必定程度上,它可能會比市面上全部的區塊鏈開發課程價值還高還值錢——你去看看各大招聘網站上那些動輒就30K月薪起步的區塊鏈技術開發者職位就知道了。

並且重點是,這個課程目前業內確實是惟一的,別無他選。

因此,公平來看,咱們其實以爲這個課程的價格不該該過低。但另外一方面,考慮到不少人都對這個課程翹首以盼了好久,一塊鏈習也但願價格能夠儘量親民一些。

因此,咱們最後的決定是——按時完成所有做業的同窗返還一半的學費!!

想要報名的同窗,建議趕快點擊連接前去填表報名搶座啦👇👇👇

yikuailianxi.mikecrm.com/KxQT6AO!

「一塊鏈習」技術社區連接全世界最極客的區塊鏈開發者,共同窗習區塊鏈技術知識與開發實戰,爲每一位開發者提供有深度的、持續的價值與幫助。

關注「一塊鏈習」 與全球區塊鏈開發者一塊學習

相關文章
相關標籤/搜索