大家好!我叫Josh Hannan,是Dapper实验室Flow团队的智能合约工程师。我叫Josh Hannan,是Dapper Labs的Flow团队的一名智能合约工程师。距离我上次发帖已经有一段时间了。对于Flow团队来说,这是一个忙碌的时期。Flow团队的工作进展很快,我们有很多很棒的工作在进行中!以下是我的工作内容。以下是我一直在做的事情。
Epoch智能合约
你有机会看一下流量定投智能合约了吗?如果你还没有,我建议你先看看文档,然后了解一下赌注合约的工作原理。它不是你典型的NFT合约,所以里面可能有一些有趣的设计模式和工具,你会发现很有用的
Flow Staking合约只是一组Cadence合约的一部分,Flow将用它来管理Epochs,即在运行网络时设置节点身份表和节点准备下一个Epoch的一周时间。该协议这部分的核心逻辑是通过智能合约处理的,我们越来越接近将其引入主网了
我们将很快准备好更多的文件,但如果你对智能合约的作用感到好奇,我已经为智能合约创建了一些流程改进建议(FLIPs)。
我们还有一个开放的功能分支,其中包含所有的代码和测试,如果你想深入其中,了解更多,并有可能留下反馈。
FEATURE: Epoch contracts by joshuahannan - Pull Request #63 - onflow/flow-core-contracts
这是epoch智能合约的功能分支。它将包含所有与即将推出的智能合约有关的合同。
github.com
访问我的博客文章的中心位置!
Dapper Labs的团队很友好地做了一篇官方博文,列出了我在这个系列中的所有博文!
流程:Cadence开发者洞察力。与Josh Hannan的学习经历
Josh Hannan是一名高级智能合约工程师,为Dapper Labs的Flow生态系统做出了贡献,他在这里分享...
www.onflow.org
每次我发布新的博客时,他们都会更新这个帖子,所以它将始终是一个你可以用来访问我所有博客的单一地方。欢迎把它收藏起来,以便将来参考。
如果你没有使用Flow或Cadence的经验,我强烈建议你去那里,并开始使用我的第一个博客!😃
访问控制
每个Solidity用户在开始用Cadence编程时都会问一个问题:"我如何检查msg.sender?"。在以太坊上,检查msg.sender是用来识别调用函数的账户并适当修改该函数的行为。这样做是以太坊上身份、权限、所有权和安全性的关键。一个ERC-20合约让用户通过检查msg.sender来发送代币,看看哪些代币需要移动。一个治理合约通过检查msg.sender来登记调用者的投票,这样他们就不能再投票了。还有很多例子。
Cadence没有msg.sender,Cadence代码也没有事务级的方法来唯一地识别其调用者。这不仅仅是因为它还没有被添加。在Cadence中,交易可以由一个以上的账户签署,所以从那里获得msg.sender甚至没有意义。
所有这些都意味着,在Solidity中由单个中央合同检查msg.sender来实现的任务,在Cadence中需要不同的方法。Cadence的设计是有意的,它遵循基于能力的安全模型而不是基于访问控制列表的模型。我们相信,这种设计为代码的健壮性和安全性提供了明显的优势。
Flow团队的一位智能合约工程师Rhea Myers创建了一份文件,描述了为什么我们不能在Cadence中使用msg.sender,我们用什么来代替,以及这个功能很重要的各种不同使用案例的例子。能力安全是Cadence设计中最重要的方面之一,如果你想建立自己的智能合约,了解它是至关重要的。
在这里查看瑞亚的文件。
被认为是有害的味精
每个Solidity用户在开始用Cadence编程时都会问的一个问题是 "我如何检查msg.sender?"。在...
docs.onflow.org
在接下来的几篇博文中,我将从Rhea的文件中选取一些例子并加以扩展,提供如何为各种类型的智能合约使用功能的分步教程。
总结
我希望这些信息对你有用!像往常一样,如果你有任何问题或建议,请通过我们的某个渠道与我联系!
Flow Discord:https://discord.gg/flow
Flow Github:https://github.com/onflow/flow
下一次见!👋
非常感谢雷亚-迈尔斯,他提供了灵感、介绍,以及我在文章中谈到的大部分内容的主要主题!