shaneson.eth

Posted on Oct 29, 2022Read on Mirror.xyz

Aptos Move 开发经验闲谈

距离10月1号,刚好快1个月了。

那个时候,我利用国庆假期,把代码重构,部署正式网,写aptos-web3,跑通Aptos SDK~

项目审计结束,而且准备上线了。有很多经验想记录下来,不管是留给后人也好,还是留给自己,应该很有意义。

如何入门Move?

我目前除了我在读的内部文档,我没有找到过更好的 aptos move入门教程。所以,下面这篇Move Book可以暂时先入门,但是离上手还远远不足。

https://www.chainfeeds.xyz/feed/detail/6f7bba60-8a0e-466c-a219-b2d243405556

如何练习Move?

官方的文档太过简单,从入门到大神的本质是需要不断的练习和实践。所以我们需要很多的开源用例,去测试,运行,和实践。这里推荐官方的Turial文档,把里面的项目全部过一遍。那你就已经具备了开发Move项目的能力了。

这里有全部常用的项目代码模版:

  1. Token

  2. NFT

  3. Dex ( uniswap V2 )

  4. Diem 稳定币

https://github.com/move-language/move

如何深入Move?

我个人觉得,除了要掌握Aptos和EVM系的存储差异之外,最重要最重要的是,理解:面向资源编程。贴一个我上周分享的一页PPT。直接面向资源的存储和写入,可以让编程开发不需要再去理解很高层的动态抽象,不需要像EVM那样理解数据存储在合约状态的逻辑,直接面向底层的存储和读取,让开发者更加清楚底层逻辑。(当然了,假如对c/c++, rust这类不熟悉的话,可能就会很难受了)

在turial实践的过程中,不断地去感受Move的核心思想和EVM系的差异。

如何成为真正的大神? --- std库是关键

我几乎可以断言,假如把aptos-core的std库从头到尾过一遍,熟悉每一个函数的用法,灵活掌握权限和存储的底层逻辑,那么几乎可以开发任何的事情。因为Aptos Move的开发本质上其实是基于std库的二次开发,Move里最高级的用法其实都体现在std库里,只要过一遍,心里只要有一个底,那么用起来就可以信手拈来。

最惊艳的能力? pda,让合约具有存储私钥的能力。

让所有EVM开发者都赞叹不已的,必然是pda的用户。把这个能力用活,可以做到:

  1. 批量用户的创建

  2. 批量用户的管理

  3. 执行交易时的风险隔离,通过合约来保证绝对安全

  4. 合约可以实现金库管理员的绝对控制,用合约来管理管理员的权限

Aptos