• 玩以太坊链上项目的必备技能(初识智能合约语言-Solidity之旅一)


    前面一篇关于智能合约翻译文讲到了,是一种计算机程序,既然是程序,那就可以使用程序语言去编写智能合约了。

    而若想玩区块链上的项目,大部分区块链项目都是开源的,能看得懂智能合约代码,或找出其中的漏洞,那么,学习Solidity这门高级的智能合约语言是有必要的,当然,这都得在公链``````以太坊上,毕竟国内的联盟链有些是不兼容Solidity

    Solidity是一种面向对象的高级语言,用于实现智能合约。智能合约是管理以太坊状态下的账户行为的程序。

    Solidity是运行在以太坊(Ethereum)虚拟机(EVM)上,其语法受到了c++pythonjavascript影响。

    Solidity是静态类型的,支持继承、库和复杂的用户定义类型以及其他功能。

    使用Solidity,您可以为投票、众筹、盲目拍卖和多签名钱包等用途创建合约。

    在部署合约时,你应该使用最新发布的 Solidity 版本。除了特殊情况外,只有最新版本才会收到安全修复。此外,突破性的变化以及新的功能会定期引入。我们目前使用0.y.z版本号来表示这种快速变化的速度。

    Solidity 具有以下两个显著特征(纯属笑谈,别太在意):

    • 1、面向对象:学会之后能挣钱去找对象
    • 2、在币圈混:不会 Solidity ,在圈内显得是那么 low,“瞧,那家伙不会 Solidity,还想混币圈!”

    在线编辑器 remix

    工欲善其事,必先利其器。这句话是很有道理的,不管做什么事或在学习新事物,都要准备好工具,学习新事物也是一样的。

    打开浏览器,在地址栏输入remix.ethereum.org

    打开后的默认界面,包含 Solidity 示例。首次打开可能没那么快,这毕竟国外的站点。

    在这里插入图片描述

    我们在当前工作空间新建一个 solidity 文件,注意,是以sol作为文件的后缀名。

    在这里插入图片描述

    // SPDX-License-Identifier: MIT
    pragma solidity ^0.8.7;
    contract MyToken{
        string public webSite = "Welcome to qiucode.cn";
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述

    代码分析:

    • solidity 也和大多数编程一样,也是使用//作为程序的注释,而本实例中的第一行其实是表明该合约所用的软件许可(license),这里用的是MIT license。如果不写许可,编译时会警告(warning),但程序可以运行。

      // SPDX-License-Identifier: MIT
      
      • 1
    • 而第 2 行 则声明了合约所使用的 solidity 版本,毕竟 solidity 正处于发展阶段,更新迭代比较频繁,不同的版本之间各有差异。这行代码意思是源文件将不允许小于 0.8.7 版本或大于等于 0.9.0 版本的编译器编译(第二个条件由^提供)。Solidity 语句以分号(;)结尾。

      pragma solidity ^0.8.7;
      
      • 1
    • 第3-4行是合约部分,第3行创建合约(contract),并声明合约的名字 MyToken。第4行是合约的内容,我们声明了一个string(字符串)状态 webSite,并给他赋值 “Welcome to qiucode.cn”。

      contract MyToken{
          string public webSite = "Welcome to qiucode.cn";
      }
      
      • 1
      • 2
      • 3

    编译需要点时间,直到出现了绿色小图标,就说明编译成功了。

    在这里插入图片描述

    现在可以不受测试下看看效果如何。

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

  • 相关阅读:
    【C++ 科学计算】C++ 一维数据插值算法
    java游戏制作-拼图游戏
    Maven Dependency 机制
    【算法社区】训练准备和复杂度分析
    平板第三方电容笔怎么样?便宜的ipad触控笔推荐
    el-tree设置节点默认选中并高亮效果
    Linux---(三)基本指令大全
    CSS标准流
    javaHTML5寿光农产品资源展示平台计算机毕业设计MyBatis+系统+LW文档+源码+调试部署
    OpenAI 的 CEO Sam Altman :OpenAI 正在研发下一代 AI 模型 GPT-5 但没有承诺发布时间
  • 原文地址:https://blog.csdn.net/coco2d_x2014/article/details/128194622