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

news2024/12/23 18:25:01

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

而若想玩区块链上的项目,大部分区块链项目都是开源的,能看得懂智能合约代码,或找出其中的漏洞,那么,学习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";
}

在这里插入图片描述

代码分析:

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

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

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

    contract MyToken{
        string public webSite = "Welcome to qiucode.cn";
    }
    

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

在这里插入图片描述

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

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/64129.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

管理RMAN备份_维护RMAN备份和仓库记录

1.RMAN备份和仓库维护概述 1.1.备份和仓库维护的目的 建议的维护策略是配置一个快速恢复区域,一个备份保留策略和一个归档 redo日志删除策略。在这种情况中,数据库按需要自动维护和删除备份与归档redo日志。然而,有时…

[附源码]Python计算机毕业设计Django水果管理系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

阿里P8专家爆出:入职阿里必备的598道java面试题,内含算法

前言 之前也给大家分享过很多的面试题和大佬的面试经验,相信大家也已经利用到了,也顺利找到了工作,并拿到了高薪。 今天就给大家分享阿里P8专家长期以来面试所问到的java面试题,总共有598道(含算法)&…

PCL 使用MLS 上采样

移动最小二乘法MLS(Moving Lest Squares)简要介绍_Figure 09的博客-CSDN博客_移动最小二乘法 深入理解移动最小二乘法曲面拟合代码(MLS2D.m)_残影丶的博客-CSDN博客_mls2d PCL 点云采样_Σίσυφος1900的博客-CSDN博客 上采样…

和数集团浅谈区块链技术如何赋能数字政务?

在“十四五”提高数字政府建设水平的大环境下,构建数字政务发展体系是国家治理现代化的必然选择。2021年是2035远景目标的开局之年,《十四五规划纲要》中明确将区块链列为“十四五”七大数字经济重点产业之一。数字政务的体系架构和创新机理,离不开新兴技术融合互通…

移动通信:分集技术(时间分集,频率分集,空间分集,SC,MRC,EGC)学习笔记

文章目录Micro diversityTime DiversityFrequency DiversitySpatial DiversityCombination of signalsSelection CombiningMaximal Ratio CombiningEqual Gain CombiningReferences分集技术是用来补偿衰落信道损耗的,它通常通过两个或更多的接收天线来实现。同均衡器…

越早越好,突破职业瓶颈,2023年考PMP项目管理有何好处?

考PMP没有行业和职业的限制,只要是需要感兴趣的人就可以报考。 适合任何领域行业的项目。 是通用的项目管理理念。 那么 # 考了PMP会有什么益处呢?# ---带你30秒看完,从六个方面讲 01 职场加分项 目前国内很多的大型企业在招聘的时候会有…

矿泉水溴酸盐超标如何解决?除溴酸盐设备有哪些?

水生产企业多使用臭氧消毒,不过,水生产企业不存在水运输路途遥远的问题,因此可以使用臭氧消毒。同时,也是因为臭氧在消毒后会直接变成氧气,所以不会有使用氯消毒后的那种味道,不会影响矿泉水的口感&#xf…

SpringBoot的创建的使用

哈喽呀,你好呀,欢迎呀,快来看一下这篇宝藏博客吧~~~ 目录 1、Spring Boot快速扫盲 2、Spring Boot 项目创建 3、运行项目 4 、输出hello world 5、注意事项--包路径错误 6、小结 1、Spring Boot快速扫盲 在创建SpringBoot项目前,我们得…

大数据1.5 使用Vim编辑器

一、安装Vim编辑器 执行命令:yum -y install vim 二、三种工作模式 1、命令模式 执行命令:vim test.txt,进入默认的命令模式 2、输入模式 在输入模式下,Vim 可以对文件执行写操作,类似于在 Windows 系统的文档中…

常见的排序算法

常见排序算法前言排序分类一、插入排序直接插入排序希尔排序二、选择排序直接选择排序堆排序三、交换排序冒泡排序快速排序1、hoare版本2、挖坑法3、前后指针版本快排时间复杂度分析快排的优化4、快排非递归实现(利用栈实现)5、快排非递归实现&#xff0…

节省时间的分层测试,到底怎么做?

为什么要做分层测试 从软件工程的角度,结合软件开发的V模型、MVC架构、测试金字塔,综合起来便于理解。 1、借鉴与软件开发的V模型 从V模型的底部往右上方向,先做单元测试,再做集成测试一直到最后的验收测试。 2、来源于MVC架构…

SSM房屋租赁系统

SSM房屋租赁系统该项目采用的技术实现一、系统功能技术栈二、关键代码1.首页运行截图总结该项目采用的技术实现 后台框架:Spring、SpringMVC、MyBatis UI界面:jQuery 、JSP 数据库:MySQL 提示:以下是本篇文章正文内容&#xff…

C++ 三大特性之-多态

简介 面向对象有三大特性:封装、继承、多态 多态:一个接口,多种实现 C有两种多态形式: 静态多态动态多态 静态多态 静态多态:编译期间的多态,即在编译阶段就能确定好最终要调用哪个方法。静态多态的函数调…

python简单实现网络爬虫

前言 在这一篇博客中,我会用python来实现一个简单的网络爬虫。简单的爬取一下一些音乐网站、小说网站的标题、关键字还有摘要!所以这个爬虫并不是万能爬,只针对符合特定规则的网站使用。(只使用于爬标题、关键字和摘要的&#xff…

[附源码]计算机毕业设计基于SpringBoot的在线作业批改系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

SORT4 SORT项目代码解析

SORT系列 SORT-1 项目配置运行-WINDOWS SORT-2 卡尔曼滤波推导和示例 SORT-3 匈牙利算法和SORT类 SORT-4 SORT项目代码解析 本项目地址 SORT项目逐层详解 main if __name__ __main__# 设置交互模式、参数、文件路径|# 创建 SORT 对象mot_tracker Sort(max_age, min_hits,io…

Python学习基础笔记二十七——内置函数

内置函数的概念:就是python直接提供给你使用的所有函数。 1、作用域相关: 1)globals(): 获取全局变量的字典; 2)locals():获取执行本方法所在命名空间内局部变量的字典; 2、迭代器…

(二)SpringCloud+Security+Oauth2 微服务初步集成

一 引言 本文主要好介绍了SpringCloudSecurityOauth2 的初步集成,项目源码地址oauth2.0集成案例,以下案例主要是核心源码的解释,案例源码请查看案例源码 二 项目结构说明 oauth-server oauth认证中心 oauth-client oauth客户端 oauth-nacos 注册中心和配置中心 oauth-common …

IDM究竟有哪些优势 IDM的几种超实用功能

作为一款体积只有10M的下载软件,IDM却常年霸占着各软件评测榜的前列。它的界面简洁清爽,使用过程中无弹窗、无广告,小小的体积竟能将下载速度提升5倍!该软件一进入中国市场,便受到了广大用户的追捧,被大家亲…