美文网首页
掌握这套框架思维,你的智能合约开发将进入开挂状态!

掌握这套框架思维,你的智能合约开发将进入开挂状态!

作者: 642155e30a13 | 来源:发表于2018-11-15 15:35 被阅读33次

    原创: 卖课的小姐姐

    各位同学好,我是一块链习卖课的小姐姐。今天,我们想要郑重且欣喜的为大家介绍一堂刚上线不久的重量级课程:

    「以太坊智能合约开发(进阶)课」

    现在这门课程已经历“内测”+“第一期”的考验,马上就要开启第二期了,在开启之前,我们想要为它再次发声。

    因为以我们所见,这绝对是一堂极其所值,能让你感到超预期的课程,且会源源不断地为你带来惊喜(今天就有1个惊喜,待你挖掘)。

    第一,在第一期正式上线的当天,开放的30个名额在24小时内就全部被报满且超额!

    这背后意味着——

    它是一块链习史上唯一一门属于高客单价(3999元)的课程,却能在如此短的时间内被报满的课程,以往只是低客单价的、入门级的系列课程才能达到这样的效果。

    说实话,当时课程名额下降的速度,让我们深刻地记住了属于智能合约开发者人的疯狂。

    第二,资深区块链游戏开发者、区块链大型沙盘类游戏evolutionland的负责人锤姐亲自参与了这门课的内测,参与过后,她留下两句评价——

    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!

    「一块链习」技术社区链接全世界最极客的区块链开发者,共同学习区块链技术知识与开发实战,为每一位开发者提供有深度的、持续的价值与帮助。

                                                       关注「一块链习」

                                             与全球区块链开发者一块学习

    相关文章

      网友评论

          本文标题:掌握这套框架思维,你的智能合约开发将进入开挂状态!

          本文链接:https://www.haomeiwen.com/subject/axuyfqtx.html