下一代智能合约开发语言(一)

这篇具有很好参考价值的文章主要介绍了下一代智能合约开发语言(一)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

背景

过去的三个月可能是我过去几年离一百万最近的一次,错过了aptos的空投,几分钟就可以做一个任务,最后空投了150APT代币,最高时价值4W。。。真的是真金白银的教训。不过作为一个开发者,看到的更多是区块链未来的价值,所以开始真正投入到智能合约开发的学习中去,新开一个系列Move语言与智能合约开发,move语言就是aptos链上智能合约开发的语言,也是其特色之一。

什么是Move

Move是一种新的智能合约的开发语言,它和C,C++一样都是一种编程语言,但是其主要用于编写智能合约,那么什么又是智能合约呢,以下是维基百科的定义,由此可知智能合约是指根据协定能够自动执行、控制活记录相关事件和行为的计算机程序或交易协议。这里我们可以先简单把智能合约理解成一个程序,区块链和智能合约更多内容之后会专门讲解(又开一个新坑)。可以做一个简单的类比,区块链就是一个操作系统,而智能合约就会运行在这个操作系统上的应用程序,不同的操作系统编写应用程序的语言也不同,在aptos上move就是编写智能合约的语言。

A smart contract is a computer program or a transaction protocol that is intended to automatically execute, control or document legally-relevant events and actions according to the terms of a contract or an agreement.

环境配置

还是那句话,工欲善其事,必先利其器。首先需要安装move的命令行工具move-cli,
使用以下命令就可以安装,前提是已经安装过cargo,关于cargo的安装可以自行google。

cargo install --path move/language/tools/move-cli

cargo install --git https://github.com/diem/move move-cli --branch main

安装完成后还需要配置环境变量,一般情况下move-cli会安装在~/.cargo/bin目录下,所以需要把这个路径加入到环境变量中去,然后使用以下命令,如果正常执行则说明安装成功。

move

然后使用以下命令新建一个move项目,用VS Code打开就可以开始使用move开始编程了。

move package new <package_name>

move中一些特殊概念

与其他的智能合约编程语言如Solidity不同,Move试图将脚本和模块分离开,脚本可以让开发者在事务中添加更多的逻辑而且在存储时间和资源时更加灵活,而模块则是让开发者去扩展区块链的功能以及通过诸多选项去定制智能合约,首先我们会先了解如何去编写Move的脚本。

基本类型

与其他的编程语言一样,Move也内置了一些基本的数据类型,但是由于是专门针对智能合约的开发场景,所以内置的数据类型与一般熟知的编程语言并不相同,Move内置的数据类型有整型(u8, u64, u128),布尔类型boolean以及地址类型address。

整型

Move中整型又u8,u64和u128三种,以下代码说明了如何去声明变量以及赋值。

script {
    fun main() {
        // 定义一个空变量然后赋值
        let a: u8;
        a = 10;

        //定义一个变量并赋值
        let a: u64 = 10;

        //简单赋值
        let a = 10u128;

        //在函数或者表达式中可以讲整型视为不可变的值
        if (a < 10u8) {};

        //在一般情况下不需要指明类型

        if (a < 10) {};

    }
}

在需要比较值时不同类型的值要进行转化,转换成同一类型的值时才能进行比较,在Move中使用as关键字实现类型转换,不同类型的值是无法比较的,例子如下:

script {
    fun main() {
       let a: u8 = 10;
       let b: u64 = 100;

        //只有相同类型的数据才能比较
       if (a == (b as u8)) abort 11;

       if ((a as u64 == b)) abort 11;
    }
}
布尔类型Boolean

在Move中Boolean的定义与其他语言中布尔类型的定义别无二致,都是只有两个值true和false。

script {
    fun main() {
      let b: bool;
      b = true;

      let b: bool = true;

      let b = true;
      let b = false;
    }
}
地址类型Address

地址类型算是编写智能合约语言相较于其他语言特有的类型,它代表了一个区块链的地址,用于发送代币和引入模块,在不同的区块链对于地址类型的定义也不同如在Diem中地址是16字节的16进制数,在dfinance的DVM中地址有"wallet1"的前缀。

script {
    fun main() {
      let addr: address;

    //可以通过{{}}获取地址
      addr = {{sender}};
    // Diem中是16字节的16进制数
      addr = 0x....;

    // 在dfinance DVM中地址又“wallet1”的开头

      addr = wallet1...;

    }
}

注释

为了使程序更加可读,注释是必不可少的,与大部分语言相同,Move的注释也有两种,单行注释和多行注释。

单行注释
script {
    fun main() {
     // 单行注释
    }
}
多行注释
script {
    fun main() {

     /*多行注释多行注释多行注释多行注释多行注释多行注释
     多行注释多行注释多行注释多行注释*/

    }
}

最后

这篇文章主要介绍了Move语言开发的环境配置和一些基本概念。更多文章可以关注公众号QStack。文章来源地址https://www.toymoban.com/news/detail-782047.html

到了这里,关于下一代智能合约开发语言(一)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【译】如何建立一家下一代“人工智能”公司

    原作:丹尼尔·塞克斯顿 引言:通过不易觉察的路径 /Gemini翻译/ dall e,尼古拉·特斯拉启发的时光机   如果你回到1915年的美国,当时三分之一的工人是农民,你会告诉一个农民要做些什么呢? 农业正在蓬勃发展。铁路提供了前所未有的市场准入机会。小麦和玉米的价格飙升

    2024年04月08日
    浏览(70)
  • AI智能助手的未来:与人类互动的下一代人工智能技术

    智能助手是一种基于人工智能技术的应用程序或设备,旨在帮助用户完成各种任务、提供信息和服务。智能助手通常具备 语音识别 、 自然语言处理 和 机器学习 等技术,使其能够 理解和解释用户的指令 、 问题或请求 ,并以相应的方式 作出回应 。 智能助手可以运行在智能

    2024年02月11日
    浏览(63)
  • 【AI智能助手的未来】与人类互动的下一代人工智能技术

    智能助手是一种基于人工智能技术的应用程序或设备,旨在帮助用户完成各种任务、提供信息和服务。智能助手通常具备 语音识别 、 自然语言处理 和 机器学习 等技术,使其能够 理解和解释用户的指令 、 问题或请求 ,并以相应的方式 作出回应 。 智能助手可以运行在智能

    2024年02月07日
    浏览(72)
  • 阿里云EMR 2.0:定义下一代云原生智能数据湖

    摘要:本文整理自阿里云高级技术专家/数据湖存储负责人郑锴(铁杰);阿里云高级技术专家/开源大数据OLAP负责人范振(辰繁)在 阿里云EMR2.0线上发布会 的分享。 本篇内容主要介绍了阿里云云原生数据湖分析解决方案的三个核心要素: 1.全托管,湖存储; 2.一站式,湖管理;

    2024年02月05日
    浏览(54)
  • “Copilot”:微软下一代人工智能,重新定义你的工作

    人类是天生具有梦想、创造和创新的本能。我们渴望做能够实现我们目标的工作——写出伟大的小说、做出惊人的发现、建立强大的社区,照顾病人等等。与工作本质的联系是我们内心深处的渴望。但是今天,我们花费太多时间在枯燥乏味的任务上,这些任务耗费了我们的时

    2024年02月13日
    浏览(57)
  • 汽车芯片大变局?PC/手机阵营「拼杀」下一代智能座舱“王位”

    编者按:去年以来,游戏上车正在成为新潮流。 汽车智能化的未来芯片之争,正在进入新一轮周期。其中,相比于自动驾驶,智能座舱的变化速度更快,格局不确定性更大。 本周, 在美国CES展上,英特尔公司正式宣布,将推出一系列AI增强的汽车芯片,首家量产搭载车企将

    2024年02月22日
    浏览(55)
  • 概念解析 | 无线智能空口:打造下一代无线通讯网络的关键技术

    注1:本文系“概念解析”系列之一,致力于简洁清晰地解释、辨析复杂而专业的概念。本次辨析的概念是:无线智能空口。 “空口\\\"是无线通信中的一个专业术语,它主要用于描述无线通信设备与设备之间的通信接口。我们可以将其理解为无线通信设备发送和接收信息的\\\"嘴

    2024年02月10日
    浏览(46)
  • 搭载下一代人工智能技术,微软推出Power Automate流程挖掘产品

    在近日的Microsoft Inspire大会中,微软揭晓了他们即将推出的Power Automate流程挖掘产品,并计划在8月1日正式对外开放。 试用地址:https://powerautomate.microsoft.com/zh-cn/#home-signup 这款产品搭载了下一代人工智能技术,有助于组织轻松洞察业务运行的全景,最大程度地理解流程,利用

    2024年02月17日
    浏览(71)
  • 试图替代 Python 的下一代AI编程语言:Mojo

    Mojo 是一种创新的编程语言,结合了 Python 的可用性和 C 的性能。它旨在成为人工智能 (AI) 开发的首选语言,因为它允许开发人员编写既快速又易于阅读的代码。 这里有一些关键点, Modular 是一种新的编程语言,旨在应对整个 AI 堆栈的编程挑战。 Mojo 旨在成为一种创新且可扩

    2024年02月09日
    浏览(51)
  • 技术速览|Meta Llama 2 下一代开源大型语言模型

    AI 使用大型语言模型(LLM)来理解和生成自然语言。LLM 可以从大量文本中学习并创建有关各种主题的文本,并可以完成比如编写代码、生成歌词、总结文章等任务。但有些 LLM 相关课程成本高昂且封闭,而现有的开放课程数量十分有限。这就是 Meta 推出新的开源 LLM Llama 2 的原

    2024年02月16日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包