草庐IT

猿创征文 | Solidity 智能合约技术成长之路

一个可爱的小朋友 2023-08-15 原文

Solidity 智能合约入门

Solidity 是链上智能合约的开发语言,链上智能合约相当于传统行业的后端,链上应用基本都是由合约 + 前端组成的,虽然不推荐,但部分链上应用也会加入后端进行数据存储,以降低用户的使用成本。

Solidity 这门开发语言并不复杂,只需要您稍微有一点儿编程基础,英文词汇量达到中学生水平,都能看懂基本的合约代码逻辑即可。

最开始强烈推荐先入门 ERC20ERC721 ,理解之后,再去看关联的 ERC1155ERC4907 等以太坊标准,都不会觉得有什么理解上的太大压力。

除此之外,以太坊标准 ERC 为开发者提供了大量开源的合约接口,开发者可轻松用于构建各类链上实用功能。Solidity 智能合约开发,大体上就是 看懂(ERC) + 活用(ERC+开源链上合约代码) + 简单的逻辑调整改造(目的是贴合自己实际需求) 即可完成 ✅。

进行简单的合约开发,推荐您用 Remix IDE;如果您是资深开发人员,更习惯于命令行式的开发和调试,可以选择 Truffle 套件。

能够看懂大部分 ERC 之后,可以尝试看一些成功的链上项目了解更多链上应用的全貌,之后就能尝试自己构建链上应用。推荐您先从 0 开始仿写刚刚学习完的链上项目,就选择简单的即可,多完成几个项目仿写之后,相信您在自由构建的路上,应该不会有太大的困难。但需要注意的是,智能合约中像Dos攻击、短地址攻击、交易顺序依赖、伪随机等被Q烂的漏洞,也需要做到心中有数哦。

下面我会介绍两个开发IDE/工具套件,和推荐入门学习的链上项目,供您参考。

Remix —— 新手友好的可视化 IDE

Remix 是以太坊提供的可视化 Solidity 智能合约开发 IDE ,页面新手友好,在实现合约编辑、一键部署上链、合约接口测试、bug单步调试等全套功能的同时,界面简洁大气,用户还有多种前端风格可选,实用性和美观性上都得到了很好的满足。

Truffle —— 进阶联调抗打小能手

Truffle 套件能够实现 Remix 的功能,是命令行式的交互模式。Truffle 允许你以脚本的模式构建测试文件,后面合约代码的修改,只需一键执行测试文件即可,有时测试文件也需要配合进行微调。如果测试时您用的是 Remix,那可能需要在每次代码调整后,重新手动执行全套的测试流程。在自动化测试方面,Truffle 拔得头筹。

使用 Truffle 时,您可能还需要 Ganache 的辅助支持,以更方便、快捷地获得及查看测试地址的余额信息及链上交易状态。

Dapp 入门

Dapp 的入门学习首先推荐两个使用了 REC721 标准的链上项目:加密猫——CryptoKitty阿蟹——Axie Infinity。CryptoKitty 的合约逻辑非常简单,有兴趣的伙伴可以看一下我的这篇博文教程。Axie Infinity 的合约逻辑涉及权限控制,会稍微复杂一丢丢,我的博文教程也在计划之中了,大家敬请期待。

Defi 入门

Defi 主要是使用 REC20 标准的链上项目,推荐你看借贷相关的 CompoundAave,去中心化交易所相关的 Uniswap 入门。他们可比永续合约、衍生品、期权要友好的多,不需要你有太多的金融知识。

AAVE 是基于 Compound 构建的,目前 AAVE 的合约已经更新到了第三个版本,整体给我的感觉就是第一个版本比较混乱,学习的过程中内心无数次想要尖叫,学完之后就会觉得,也就那样吧。第二个版本代码相对整齐了很多,推荐读代码时容易被各种繁杂内调搞到头大的小伙伴可以略过 V1 直接从 V2 入门。第三版本的代码整洁得就像军事化管理下的干净,不推荐新手直接阅读,容易陷入迷宫困境。

上诉三个 Defi 项目的博文教程也在我的计划之中,V1 的 AAVE 应该会是最先推出的,大家敬请期待。

结语

以上就是我推荐的 Solidity 智能合约技术成长之路,从 ERC 标准入门,然后学习常用的开发工具,接着阅读成功链上应用的开源代码,然后可以开始自己尝试仿写构建,最后在了解常见漏洞规避方法的基础上,就能轻松踏上合约开发之路了。

记得,合约开发 == 看懂(ERC) + 活用(ERC+开源链上合约代码) + 简单的逻辑调整改造(目的是贴合自己实际需求)

🆗 ✅ 下课。

有关猿创征文 | Solidity 智能合约技术成长之路的更多相关文章

  1. Unity 热更新技术 | (三) Lua语言基本介绍及下载安装 - 2

    ?博客主页:https://xiaoy.blog.csdn.net?本文由呆呆敲代码的小Y原创,首发于CSDN??学习专栏推荐:Unity系统学习专栏?游戏制作专栏推荐:游戏制作?Unity实战100例专栏推荐:Unity实战100例教程?欢迎点赞?收藏⭐留言?如有错误敬请指正!?未来很长,值得我们全力奔赴更美好的生活✨------------------❤️分割线❤️-------------------------

  2. MIMO-OFDM无线通信技术及MATLAB实现(1)无线信道:传播和衰落 - 2

     MIMO技术的优缺点优点通过下面三个增益来总体概括:阵列增益。阵列增益是指由于接收机通过对接收信号的相干合并而活得的平均SNR的提高。在发射机不知道信道信息的情况下,MIMO系统可以获得的阵列增益与接收天线数成正比复用增益。在采用空间复用方案的MIMO系统中,可以获得复用增益,即信道容量成倍增加。信道容量的增加与min(Nt,Nr)成正比分集增益。在采用空间分集方案的MIMO系统中,可以获得分集增益,即可靠性性能的改善。分集增益用独立衰落支路数来描述,即分集指数。在使用了空时编码的MIMO系统中,由于接收天线或发射天线之间的间距较远,可认为它们各自的大尺度衰落是相互独立的,因此分布式MIMO

  3. ruby-on-rails - 用于门户的 Ruby 技术 - 2

    我刚刚看到whitehouse.gov正在使用drupal作为CMS和门户技术。drupal的优点之一似乎是很容易添加插件,而且编程最少,即重新发明轮子最少。这实际上正是Ruby-on-Rails的DRY理念。所以:drupal的缺点是什么?Rails或其他基于Ruby的技术有哪些不符合whitehouse.org(或其他CMS门户)门户技术的资格? 最佳答案 Whatarethedrawbacksofdrupal?对于Ruby和Rails,这确实是一个相当主观的问题。Drupal是一个可靠的内容管理选项,非常适合面向社区的站点。它

  4. iNFTnews | 周杰伦18年前未发布的作品Demo,藏在了区块链技术里 - 2

    当音乐碰上区块链技术,会擦出怎样的火花?或许周杰伦已经给了我们答案。8月29日下午,B站独家首发周杰伦限定珍藏Demo独家访谈VCR,周杰伦在VCR里分享了《晴天》《青花瓷》《搁浅》《爱在西元前》四首经典歌曲Demo背后的创作故事,并首次公布18年前未发布的神秘作品《纽约地铁》的Demo。在VCR中,方文山和杰威尔音乐提及到“多亏了区块链技术,现在我们可以将这些Demos,变成独一无二具有收藏价值的艺术品,这些Demos可以在薄盒(国内数藏平台)上听到。”如何将音乐与区块链技术相结合,薄盒方面称:“薄盒作为区块链技术服务方,打破传统对于区块链技术只能作为数字收藏的理解。聚焦于区块链技术赋能,在

  5. 玩以太坊链上项目的必备技能(初识智能合约语言-Solidity之旅一) - 2

    前面一篇关于智能合约翻译文讲到了,是一种计算机程序,既然是程序,那就可以使用程序语言去编写智能合约了。而若想玩区块链上的项目,大部分区块链项目都是开源的,能看得懂智能合约代码,或找出其中的漏洞,那么,学习Solidity这门高级的智能合约语言是有必要的,当然,这都得在公链``````以太坊上,毕竟国内的联盟链有些是不兼容Solidity。Solidity是一种面向对象的高级语言,用于实现智能合约。智能合约是管理以太坊状态下的账户行为的程序。Solidity是运行在以太坊(Ethereum)虚拟机(EVM)上,其语法受到了c++、python、javascript影响。Solidity是静态类型

  6. 智能客服 | 浅谈人工智能聊天机器人ChatGPT - 2

    2022年底,OpenAI的预训练模型ChatGPT给人工智能领域的爱好者和研究人员留下了深刻的印象和启发,他展现的惊人能力将人工智能的研究和应用热度推向高潮,网上也充斥着和ChatGPT的各种聊天,他可以作诗、写小说、写代码、讨论疫情问题等。下面就是一些他的神回复:人命关天的坑: 写歌,留给词作者的机会不多了。。。 回答人类怎么样面对人工智能: 什么是ChatGPT?借用网上的一段介绍,ChatGPT是由人工智能研究实验室OpenAI在2022年11月30日发布的全新聊天机器人模型,一款人工智能技术驱动的自然语言处理工具。它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动

  7. ruby - 使用哪种群发消息技术? - 2

    我感到有点困惑——大约24小时以来,我一直在考虑在我的项目中使用哪种组播技术。基本上,我需要的是:创建组(通过一些后端进程)任意客户端广播消息(1:N,N:N)(可能)直接消息(1:1)(重要)使用我自己的后端(例如,通过某种HTTPAPI)对客户端进行身份验证/授权能够通过后端进程(或服务器插件)踢出特定的客户端这是我要的:Ruby或Haxe中的后端相关流程JS+Haxe(Flash9)中的前端—在浏览器中,因此理想情况下通过80/443进行通信,但不一定。因此,这项技术必须能够在HaxeforFlash中轻松访问,最好是Ruby。我一直在考虑:RabbitMQ(或OpenAMQ)、

  8. 企业大数据发展面临问题之存算分离技术思考 - 2

    文章目录概述背景为何要存算分离优势**应用场景**存算分离产品技术流派华为JuiceFSHashDataXSKY概述背景Hadoop一出生就是奔存算一体设计,当时设计思想就是存储不动而计算(code也即是代码程序)动,负责调度Yarn会把计算任务尽量发到要处理数据所在的实例上,这也是与传统集中式存储最大的不同。为何当时Hadoop设计存算一体的耦合?要知道2006年服务器带宽只有100Mb/s~1Gb/s,但是HDD也即是磁盘吞吐量有50MB/s,这样带宽远远不够传输数据,网络瓶颈尤为明显,无奈之举只好把计算任务发到数据所在的位置。众观历史常言道天下分久必合合久必分,随着云计算技术的发展,数据

  9. 焕新古文化传承之路,AI为古彝文识别赋能 - 2

    目录1古彝文与古典保护2古文识别的挑战2.1西文与汉文OCR2.2古彝文识别难点3合合信息:古彝文保护新思路3.1图像矫正3.2图像增强3.3语义理解3.4工程技巧4总结1古彝文与古典保护彝文指的是云南、贵州、四川等地的彝族人使用的文字,区别于现代意义上的彝文,古彝文指的是在民间流通使用的原生态彝文,多达87046字。古彝文的起源距今至少数千年,是世界上最古老的文字之一。对古彝文字集研究有助于理解尚未被翻译成汉文、用字尚未规范化的古籍,更深层、透彻地作用于传统文化保护。古彝文字义对照图(网络资料+邵文苑供图)古籍是不可再生的宝贵资源,应当得到妥善保护。中国的古籍在历史上迭经水火兵燹等自然灾害、

  10. 【华为OD技术面试 | 真八股 】MySQL联合索引,谈springIOC的理解,谈springAOP的理解,Erika和zookeeper等问题 - 2

    文章目录华为OD面试流程1.mysql数据库建了两个字段,且设置了联合索引,如果其中有一个字段为空会出现什么问题?2.谈谈springIOC的理解,有什么好处,解决了什么问题3.谈谈springAOP的理解,切面编程有没有实际应用,有哪些注解,作用是什么,有那些应用场景?4.Erika和zookeeper有了解过吗,作用是什么,主要解决了什么问题5.谈谈JDK、JRE、JVM的理解,区别是什么6.谈谈对泛型的理解7.JVM的组成华为OD面试流程机试:三道算法题,关于机试,橡皮擦已经准备好了各语言专栏,可以直接订阅。性格测试:机试技术一面(本专栏核心)技术二面(本专栏核心)主管面试定级定薪发of

随机推荐