【从0学习Solidity】合约入门 Hello Web3

【学习Solidity的基础】入门智能合约开发 Hello Web3

📱不写代码没饭吃上架主页
在这里插入图片描述

在强者的眼中,没有最好,只有更好。我们是全栈开发领域的优质创作者,同时也是阿里云专家博主。
✨ 关注我们的主页,探索全栈开发的无限可能!
🔥我们与您分享最新的技术洞察和实战经验,助您在移动应用开发领域取得成功。
📌欢迎访问我们的微信公众号:不写代码没饭吃,获取更多精彩内容、实用技巧、行业资讯等。您关注的是我们前进的动力!
💼我们还担任阿里云专家博主的角色,为您提供更深入的技术指导和解答疑点。
🌟期待与您一起在移动开发的世界中,不断进步和创造!

文章目录

  • 【学习Solidity的基础】入门智能合约开发 Hello Web3
    • Solidity 简介
    • 开发工具:Remix
    • 编写第一个 Solidity 程序
    • 编译和部署代码
    • 总结

Solidity 简介

Solidity 是一种编程语言,用于编写以太坊虚拟机(EVM)智能合约。掌握 Solidity 是参与区块链项目的必备技能,因为大部分区块链项目都是开源的。如果能够理解代码,就能够避免许多亏钱的项目。

Solidity 具有以下两个特点:

  1. “基于对象”:学会 Solidity 可以帮助你在区块链领域找到好的工作机会,从而实现挣钱和结识新伴侣。
  2. “高级”:不熟悉 Solidity 在加密货币领域可能显得不够专业。

开发工具:Remix

在本教程中,我们将使用 Remix 来运行和测试 Solidity 合约。Remix 是以太坊官方推荐的智能合约集成开发环境(IDE),适合新手使用。通过在浏览器中使用 Remix,你可以快速开发和部署合约,无需在本地安装任何软件。

网址:https://remix.ethereum.org ↗

Remix 中,左侧菜单栏有三个按钮,分别对应文件(用于编写代码)、编译(用于运行代码)和部署(将合约部署到区块链上)。点击“创建新文件”按钮(Create New File),即可创建一个空白的 Solidity 合约。

在这里插入图片描述

编写第一个 Solidity 程序

这个简单的程序只包含 1 行注释和 3 行代码:

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.4;contract HelloWeb3 {string public _string = "Hello Web3!";
}

我们来逐行解析这段代码,学习 Solidity 源文件的结构:

  1. 第 1 行是注释,用于说明代码所使用的软件许可证(license),这里使用的是 MIT 许可证。如果不写许可证,编译时会出现警告(warning),但程序仍然可以运行。Solidity 的注释以“//”开头,后面跟着注释内容。这些注释不会被程序执行。
  // SPDX-License-Identifier: MIT
  1. 第 2 行声明了源文件所使用的 Solidity 版本,因为不同版本的语法有所差异。这行代码表示源文件只能使用 0.8.4 版本的编译器进行编译(第二个条件由 ^ 提供)。Solidity 的语句以分号(;)结尾。
 pragma solidity ^0.8.4;
  1. 第 3-4 行是合约部分。第 3 行创建了一个合约(contract),并将其命名为 HelloWeb3。第 4 行是合约的内容,声明了一个公共的字符串变量 _string,并将其赋值为 “Hello Web3!”。
contract HelloWeb3 {string public _string = "Hello Web3!";
}

接下来,我们将更详细地介绍 Solidity 中的变量。

编译和部署代码

Remix 的代码编辑页面中,按下 Ctrl + S 即可对代码进行编译,非常方便。

编译完成后,点击左侧菜单栏的“部署”按钮,进入部署页面。

在这里插入图片描述

默认情况下,Remix 会使用 Remix 虚拟机(之前称为 JavaScript 虚拟机)来模拟以太坊链,以运行智能合约。这类似于在浏览器中运行一个测试链。Remix 还会为你分配一些测试账户,每个账户中都有 100 ETH(测试代币),你可以自由使用。点击“Deploy”(黄色按钮),即可部署我们编写的合约。

在这里插入图片描述

部署成功后,你会在下方看到名为 HelloWeb3 的合约。点击 _string,即可看到显示的内容为 “Hello Web3!”。

总结

本节课程中,我们简要介绍了 SolidityRemix 工具,并完成了第一个 Solidity 程序 —— HelloWeb3。接下来,我们将继续深入学习 Solidity

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【斗罗Ⅱ】最强武魂揭秘,98级玄老、95级言少哲神兽级武魂曝光

Hello,小伙伴们,我是小郑继续为大家深度解析【绝世唐门】 在斗罗大陆动画绝世唐门中,98级玄老已经登场,他是一个很随意的老人,乍眼一看,似乎是一个邋里邋遢、好吃懒做的人,但是实际上他却是史莱克学院重量级…

Linux(CentOS7)下如何配置多个Tomcat容器?

一、在 liunx 系统安装 jdk 1、安装jdk(yum install 安装) 查看是否系统是否自带jdk并卸载 rpm -qa |grep java rpm -qa |grep jdk rpm -qa |grep gcj 其中,GCJ是GNU的Java编译器,可以把java程序编译成本地代码,编译成功后的可…

JixiPix Artista Impresso Pro for mac(油画滤镜效果软件)

JixiPix Artista Impresso pro Mac是一款专业的图像编辑软件,专为Mac用户设计。它提供了各种高质量的图像编辑工具,可以帮助您创建令人惊叹的图像。该软件具有直观的用户界面,使您可以轻松地浏览和使用各种工具。 它还支持多种文件格式&…

说说IO多路复用

分析&回答 IO多路复用 I/O multiplexing 这里面的 multiplexing 指的其实是在单个线程通过记录跟踪每一个Sock(I/O流)的状态(对应空管塔里面的Fight progress strip槽)来同时管理多个I/O流。直白点说:多路指的是多个socket连接,复用指的是复用一个…

非科班菜鸡算法学习记录 | 代码随想录算法训练营第53天|| 1143.最长公共子序列 1035.不相交的线 53. 最大子序和 动态规划

1143. 最长公共子序列 知识点:动规 状态:不会 思路: 用dpij表示两个串中到i-1和j-1个字符结束的最长公共子序列长度(不用特殊初始化) class Solution { public:int longestCommonSubsequence(string text1, string …

Web of Science批量导出

目录 如何用Web of Science检索学术信息问题批量导出 Web of Science检索结果 如何用Web of Science检索学术信息 进入 Web of Science 检索页面: https://www.webofscience.com/wos/woscc/basic-search 根据需求填写过滤条件,点击 search 进入搜索详…

C# char曲线控件

一、char曲线显示随机数数据 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Runtime.InteropServices; using System.Text; using System.Threading; using Syst…

完全平方数

题目链接 完全平方数 题目描述 注意点 返回 和为 n 的完全平方数的最少数量 解答思路 初始想到使用动态规划,后续数字的完全平方数可以由前面数字的完全平方数求得,对于任意数字,可以计算其减去从1…i之间(保证做减操作后的值…

【操作系统】一文快速入门,很适合JAVA后端看

作者简介: 目录 1.概述 2.CPU管理 3.内存管理 4.IO管理 1.概述 操作系统可以看作一个计算机的管理系统,对计算机的硬件资源提供了一套完整的管理解决方案。计算机的硬件组成有五大模块:运算器、控制器、存储器、输入设备、输出设备。操作…

Kubernetes技术--k8s核心技术 Secret

1.概述 Secret 解决了密码、token、密钥等敏感数据的配置问题,而不需要把这些敏感数据暴露到镜像或者 Pod Spec中。Secret可以以 Volume 或者环境变量的方式使用。 作用 加密数据存储在/etc中,使得pod容器以挂载volume方式进行访问。在进行的数据存储中是以base64加密的方式…

SQL 语句学习总结:

1. 四范式&&范式好处: 数据库范式是数据表设计的规范,在范式规范下,数据库里每个表存储的重复数据降到最少(这有助于数据的一致性维护),同时在数据库范式下,表和表之间不再有很强的数据…

服务器数据恢复-vmware ESXI虚拟机数据恢复案例

服务器数据恢复环境: 从物理机迁移一台虚拟机到ESXI,迁移后做了一个快照。该虚拟机上部署了一个SQLServer数据库,存放了5年左右的数据。ESXI上有数十台虚拟机,EXSI连接了一台EVA存储,所有的虚拟机都在EVA存储上。 服务…

【综述】跨模态可信感知

文章目录 跨模态可信感知综述摘要引言跨协议通信模式PCP网络架构 跨模态可信感知跨模态可信感知的概念跨模态可信感知的热点研究场景目前存在的挑战可能改进的方案 参考文献 跨模态可信感知综述 摘要 随着人工智能相关理论和技术的崛起,通信和感知领域的研究引入了…

Linux系统下的zabbix监控平台(单机安装服务)

目录 一、zabbix的基本概述 二、zabbix构成 1.server 2.web页面 3.数据库 4.proxy 5.Agent 三、监控对象 四、zabbix的日常术语 1.主机(host) 2.主机组(host group) 3.监控项(item) 4.触发器(trigger) 5.事件(event) 6.动作(a…

Aspose导出word使用记录

背景:Aspose系列的控件,功能实现都比较强大,可以实现多样化的报表设计及输出。 通过这次业务机会,锂宝碳审核中业务功需要实现Word文档表格的动态导出功能,因此学习了相关内容,在学习和参考了官方API文档的…

PSP - 蛋白质结构预测 OpenFold Multimer 训练模型的数据加载

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/132597659 OpenFold Multimer 是基于深度学习的方法,预测蛋白质的多聚体结构和相互作用。利用大规模的蛋白质序列和结构数据&#xff…

数据结构|栈和队列以及实现

栈和队列 一、栈1.1栈的概念及结构1.2栈的实现 二、队列2.1队列的概念及结构2.2队列的实现 一、栈 1.1栈的概念及结构 栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和数据删除的一端称为栈顶,另一端称为栈…

vue的第2篇 开发环境vscode的安装以及创建项目空间

一 环境的搭建 1.1常见前端开发ide 1.2 安装vs.code 1.下载地址:Visual Studio Code - Code Editing. Redefined 2.进行安装 1.2.1 vscode的中文插件安装 1.在搜索框输入“chinese” 2.安装完成重启,如下变成中文 1.2.2 修改工作区的颜色 选中[浅色]…

HBuilderX修改manifest.json设置,解决跨域问题(CORS、Cross-Origin)

搭建一个前台uniapp,后台springboot的开发环境时,遇到了跨域问题。 console提示错误信息: Access to XMLHttpRequest at http://10.0.180.203/api/cms/getAdList?apId1 from origin http://localhost:8080 has been blocked by CORS policy…

微服务--Gatway:网关

routes: - id:order_route(路由唯一 标识,路由到order) uri:http://localhost:8020 #需要转发的地址 #断言规则(用于路由规则的匹配) predicates: -path/order-serv/** -pathlb://order-service # lb: 使用nacos中的本地…