你好!我叫 Josh Hannan,是 Dapper Labs Flow 团队的智能合约工程师。自 2017 年初以来,我一直在区块链领域,花了几年时间从事以太坊项目,并于 2019 年 9 月开始与 Flow 团队合作。在 Dapper Labs,我编写 Cadence 智能合约和 文档,并协助社区工作。
我每周会写一次短文(假设我能在最后期限完成)关于什么是 Cadence,目前 在我的博客顶部是关于 Cadence 的文章。我还将重点介绍我遇到的社区中有趣 的项目!
Cadence 是一门令人着迷的语言,我想尽我所能开始更多有关它的介绍。
什么是 Flow?
可以,您可以在这里花些时间。我第一次看这个架构就重复观看了大约 10 分钟。
Flow 是为下一代应用程序,游戏以及为其提供动力的数字资产而构建的新区块 链。Flow 的独特架构使其无需分片即可进行扩展,同时仍提供每个人都希望从 区块链获得的相同的去中心化和安全性。
从哪儿开始了解 Flow?
最近,人们对 Flow 产生了很多新的兴趣。也许每个人都制定了新年计划,以了 解 Flow?也许在 Elon Musk 的 TweetTM中也会提到了 Flow?也许有一款基于 Flow 的 NFT 游戏正在迅速流行,并吸引了想要为其开发工具和其他类似体验的 开发人员?这都是有可能的。
无论哪种方式,Flow 社区中都有很多新人,并且很多人想了解 Cadence。虽然 并不总是很清楚,但是从哪里开始,以及在学习了基础知识之后就应该去哪里。 首先,如果您是区块链的新手,我强烈建议您在继续 Cadence 之旅之前,先找 到指南或在线课程,向您介绍分布式分类账技术的基础知识(超出本文范围)。 我还建议您阅读 Flow Primer,以对 Flow 区块链的体系结构有一个基本的了解。 Flow Primer: 开发世界的区块链
步骤 1:Cadence 简介
在尝试学习语言之前,必须先理解, Cadence 语言的创造做了哪些伟大的工作,
理解 Cadence 背后的原理以及为什么采用这样重要的设计决策。我还建议您查阅 Dapper Labs 首席技术官,Flow and Cadence 的首席架构师 之一 Dete Shirley 的博客文章。他解释了为什么 Cadence 编程模型(面向资源 的编程)是数字资产的理想模型。
Decentology 的另一篇博客文章介绍了 Flow and Cadence 账户模型: Flow 与以太坊的账户模型有何不同? 他们在概述 Flow 编程和独特的账户模型方面介绍得很好。
步骤 2:Cadence 教程
接下来,您应该完成所有的 Cadence 教程,从“第一步”开始,到“投票合同”
结束。这些教程使用真实合约来逐步引导您了解 Cadence 的重要功能。
这些教程将帮助您熟悉 Flow Playground,这是一个出色的工具,可以在浏览 器中快速编写和手动测试智能合约!
playground 示例
还有一个 Visual Studio 代码插件您可以安装,具备语法高亮和 VSCode 内置 Flow 区块链模拟器!很整洁吧?
步骤 3:标准实现
正如您将在教程中了解的那样,即使实际上并不需要,许多区块链项目都使用同质化代币(fungible tokens),非同质化代币(non-fungible tokens)或同时使用这两种。 我们强烈建议您使用两种类型的标准接口,以便与其他智能合约互操作。它们各自位于单独的 Github 存储库中。
步骤 4:Cadence 合约实践
至此,我相信您已经完全被 Cadence 吸引了,并且正在跃跃欲试,所以请看看 其他人使用这种令人难以置信的编程语言所构建的项目。
下面是我们在在测试网和/或主网上运行的 Cadence 智能合约的一些很好的例 子。(我可能有一点偏见,因为我帮助写了一些。)
Flow 核心合约: 此项目包含作为核心 Flow 协议一部分的智能合约和交
易。他们包含 Flow Token,交易,费用,抵押等等的行为。
Kitty 物品: Flow 和 Crypto kitties 团队最近构建的 NFT 游戏,该应用
程序完成了令人惊叹的示例,该示例使用最新的 Flow 开发最佳实践在
testnet 上运行。让开发者可以通过完整应用程序作为参考进行 Cadence
和 Flow 开发!
NBA Top Shot: 您可能已经听说过这一项目。自 2020 年 6 月以来,
NBA Top Shot 及其市场一直在 Flow Mainnet 上运行,并已变得极为流
行。免责声明:Top Shot 合同是很久以前写的,因此使用了一些过时的
Cadence 设计模式,不建议在以后的大多数 NFT 项目中使用。Kitty Items 项目是 Cadence 最佳实践的一个更好的例子。
结论
如果您学到了这里,恭喜!希望您现在应该拥有足够的工具和知识,以便在 Cadence 中编写自己的智能合约。
在整个过程中,您将拥有整个 Flow 团队和社区来为您提供支持!请不要犹豫, 通过我们的 Discord 服务器,Flow 论坛或 Flow Github 存储库中的问题与我们联系。
您是否还知道其他对新手有用的资源或有趣的项目?请随意评论您的想法,我可能会在以后的帖子中加入它们!
Flow Discord: https://discord.gg/flow
Flow Forum: https://forum.onflow.org
Flow Github: https://github.com/onflow/flow
下周见!