AMA Recap (1) Move的起源以及Starcoin为什么选择move

Published at August 9, 2022 By Starcoin.

img

  1. Move工程师时薪1200美元现象

    **Tim:**最近看到一条Twitter消息,说Move工程师现在非常受欢迎,每小时薪资报价1200 美元,也引起了很多讨论和转发,虽然还没确认这条消息的具体情況,如果属实的话,1200美元可能就是说明了Move生态的发展受到了很多关注,引起了行业里面很多的项目的进入,从而导致了这样一些关键代码的人员在这个时候有一个非常高的薪资。

    **Jiefeng Yang:**如果说是短期的Move的完成一些关键的开发任务或者做一个关键的技术咨询,我认为有可能是可以达到这个薪酬的,但是如果是全职的 Move 开发,这个薪资可能不具有普遍性。

    **Jolestar:**侧面反映了这个市场对Move开发者需求已经多起来了,市场上的投资者和创业者对人才的资源的感受要比开发者快一拍,所以会造成满足需要的人才的短缺现象,有溢价也是正常的。

    1. Move的起源以及Starcoin为什么选择move

    Tim:

    聊到Move的起源,行业内的朋友可能了解到这个技术已经出来有好几年,最早的时候是在2019年左右Libra这个项目,当时还叫Facebook,发明了一个叫Move这样一套技术,扎克伯格的一个很大的愿景是做一个一篮子的这个稳定币啊,包括美元、欧元、日元,因为他当时也提出了一个很基本的问题,就是这个金融服务没有做到一个普惠,实际上在很多非发达的这个国家的人们使用一些金融工具的门槛还非常高,在扎克伯格眼里面希望全世界的用户可以公平的使用这样一些工具,比如说他持有一些crypto,可以预防他所在的这个政府滥发货币后资产贬值。另外呢,它也可以获得一些利息增加一些收入。这个愿景非常好,最后为了解决这个愿景,他提出了基于Move的一整套解决方案。后来的事大家看新闻也知道了,引起监管方的一些警惕,双方拉锯很久,Libra项目也做了很多取舍,甚至最后更名为Diem,目标也是只发行美元的稳定币。但在今年年初的新闻是Facebook将这个项目出售,最近就是大家关注到的,Diem的一些团队成员创业来做Move的公链。这方面的信息很透明,感兴趣的朋友可以上网查阅了解。

    Starcoin的发展没受到和这个项目的结束有太直接的影响,早在2018年的时候就开始尝试,起初是为了解决区块链可扩展的问题,所以我们当时在做这个性能的这个研究,尝试了很多这个分层的这些方案,包括我们的这个分层的设想,当时刚好就知道了Move,但碰到了问题是Libra和Dem,没有正式发布,所以这个代码在剧烈的变化当中,存在很多不兼容。Starcoin实际上花了半年的这个时间,很艰苦的一个选择,最后在2021年5月份就是主网上线了,情况比较好,基本达到了一个稳定的情况。

    Jolestar:

    Libra 的白皮书是 2019年6月份发布的, Westar Labs 在7月份起了一个 Stargate 的项目,就是在 Libra 基础上做 Layer2 的。我们当时做了一个第一 Move 的五子棋游戏,是在 Layer2 上运行的一个游戏。当时 Move 其实还没有源码语言,只是一个中间态的语言,叫 MoveIR。

    后来我们决定做 Layer1,面临一些问题,因为 Move 本身并没有考虑到一些公链的场景。我们在让 Move 支持公链这方面,做了很多改进。再后来今年年初 Aptos 出来之后一起分享讨论过这些问题。现在 Move 整体上作为一个独立的社区项目,在多链支持方面做了很多改进,保证各链对 Move 的可扩展性的基础上,探索如何把最基础的这些共性抽取出来,多个项目共享。可以说 Move 进到一个新的阶段了

    Jiefeng Yang:

    Move 语言是我和区块链开发结缘的开始。因为我去年想转到区块链这个领域做一些事情,如果是让我去搞底层公链的一些东西的话,可能我不会很快就可以进入这个领域。我接触到 Move 语言之后,觉得好像这是蛮简单的一个东西,上手比较快。如果是用 之类的智能合约语言去开发区块链上的应用的话,我可能不是很感兴趣,不过这也是个人口味吧(倒不是说 就多难学)。总之,正是因为有了 Move 语言,我觉得我可以很快地进入区块链这个领域,尝试开始在这里面做一些应用。

    Q:有开发者想了解一下Move和Rust的区别?

    Jolestar:

    我前段时间正好做了一个分享,就是通过 Rust 和 Move 的对线性类型的使用比较一下二者的区别。二者语法挺像,都是用了线性类型的这样的一些特性。但是 Rust 里,它只用这个特性去做内存回收,并没有把这个特性暴露给开发者。而在智能合约里,而我们需要让程序去感知到这个外部世界的什么东西是稀缺的,什么东西是重要的,我们需要让开发者能去标明某个类型,它到底是不是一种稀缺的资产,能不能被随意丢弃。如果说一个类型不能 copy 也不能被 drop,那它就是一个重要的资源的。我觉得这是最关键的一个点。

    其实比较起来还是比较复杂,之前有写过一些文章,大家感兴趣可以看看。

    听众:

    说到 Move 和 Rust 区别的时候,我非常有感慨,因为我在 Move 上开发过一些应用。最近也有在研究 Solana,用 Rust 开发智能合约。

    我的一个很大的感受就是说,如果用 Rust 去开发一个 Dapp 的话,大概率你还是会回到像之前开发 Web2 应用的那种方式去 — — 那种思维方式。你会把所有的数据结构作为“信息”去处理。你实际上是要通过它的“链”提供给你的智能合约的抽象模型去解决问题。但是这样对开发者来说是一个很痛苦的事情。就是说,我需要时刻去关注安全问题。

    但是在 Move 上开发的感受是什么呢?首先,我觉得其实入门的门槛是挺高的,因为它的那个思维方式是不一样的。就是我需要通过去定义“结构”来表示资源,然后结构还有不同“能力”的区分。但是一旦你习惯了这个编程模式之后,你会觉得所有东西在区块链上就应该是这个样子的。

    我可以定义一种数据结构来表示资源,它是一个线性类型。我通过声明对结构的“能力”的限制,就定义了它的稀缺性。就像 Jolestar 刚说的,它是一个顺其自然的一个过程。所以我觉得 Move 在区块链上,它面向资源的方式非常适合做 Dapp 的开发。

    leeqiang:

    我们move有后发优势,在solidity上有个应用较为广泛的第三方库:openzeppelin,我们可以提供类似的功能或框架,减少开发者重复造轮子,提高开发效率、代码质量。

    对比面向对象的语言,我们move有继承特性吗?

    Jolestar:

    这些基础的类似于 Solidity 中的 openzeppelin 的扩展,社区开发者已经在 starcoin-framework-commons 中把大部分工具库给实现了。

    社区的小伙伴久等啦!

    以上是Twitter Space AMA(0730.2022)回顾的第一部分,第二和第三部分会陆续在本周推送,请持续关注哦。