手把手教你部署智能合约 - all-in

news/2025/11/14 13:53:05/文章来源:https://www.cnblogs.com/songlee/p/19221177

什么是智能合约?智能合约,字面意思就是代码编写的合同。它是一组规则和规则指导下的数据的合体,相当于一个后端代码+数据库,只不过智能合约的代码和数据是部署在区块链上,任何人都可以查看。

Remix 对初学者来说,是开发智能合约的最佳开发集成环境(IDE)。

下面我们使用 Remix 从无到有探索新建合约、合约代码编写、编译、部署,调用合约的完整过程。

一、新建文件

image

这里我们新建一个 counter.sol 合约。

二、编写合约代码

编写合约代码如下:

// SPDX-License-Identifier: MITpragma solidity >0.7.0 <=0.9.0;contract Counter {uint counter;constructor() {counter = 0;}function count() public {counter = counter + 1;}function get() public view returns (uint) {return counter;}
}

这是一个简单的计数器合约,这个智能合约的作用是在区块链上存储一个计数器变量 counter, 这个状态变量的值将会被永久保存在区块链上。

三、编译合约

切换到编译功能, 选择编译器版本,进行编译。

image

合约编译成功后,会输出两个重要的内容: ABI (合约接口描述) 和 Bytecode 字节码。

  • ABI:Application Binary Interface,即应用程序二进制接口,ABI 代表了一份“说明书”,用来描述当前合约的所有接口,当我们与合约交互时,就需要使用 ABI。
  • ** Bytecode**:编译得到的可运行的合约字节码(也称为创建时字节码),部署合约时,就是把该字节码作为交易的输入数据发送链上。

四、部署合约

编译之后, 如果代码没有错误,就可以部署到区块链上。一个正式的产品推荐的部署流程是:

  1. 在本地的开发者网络(模拟网络)进行部署,测试及验证代码逻辑的正确性
  2. 在测试网络进行灰度发布
  3. 一切 OK 最后部署在主网

4.1 部署到VM

Remix 提供模拟网络环境,在环境(ENVIRONMENT)一栏选择Remix VM (Prague),然后点击“Deploy” 部署:

image

点击部署时,会发起一笔 创建合约交易, 交易完成后,会在链上生成一个合约地址, 同时在右下方控制台/日志区看到交易详情
image
由于这个部署交易是在模拟环境下进行的,因此这个交易是即时完成的,同时使用的账号和消耗的 Gas 均是模拟的。

4.2 部署到测试网络

在MetaMask上连接到Sepolia
image

然后在 Remix 的部署环境里选择Injected Provider - MetaMask
image

image

弹窗确认:
image

部署成功,输出结果如下:

[block:9626451 txIndex:3]from: 0x108...fb615to: Counter.(constructor)value: 0 weidata: 0x608...e0033logs: 0hash: 0x4e7...80e4a
status	0x1 Transaction mined and execution succeed
transaction hash	0x3a0b4616e1385bd95965dc823500483de0d4f85a01208f3d31dd2325f6492558
block hash	0x4e7b9b5af03a9c8576d0ed728e8defeb407ec2aa36bc7be5c77ce7e120680e4a
block number	9626451
contract address	0x550ce8486b7938e053ce4e3bbbef226f31392e3c
from	0x108E5C3086Efc06a962065b566F2683540ffB615
to	Counter.(constructor)
gas	121580 gas
transaction cost	120519 gas 
input	0x608...e0033
decoded input	{}
decoded output	 - 
logs	[]
raw logs	[]
Verification process started...
Verifying with Sourcify...
Verifying with Routescan...
Etherscan verification skipped: API key not found in global Settings.
Sourcify verification successful.
https://repo.sourcify.dev/11155111/0x550Ce8486B7938e053CE4E3bBbef226F31392e3c/
Routescan verification successful.
https://testnet.routescan.io/address/0x550Ce8486B7938e053CE4E3bBbef226F31392e3c/contract/11155111/code

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

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

相关文章

2025年泳池篷房实力厂家权威推荐榜单:篮球训练篷房/篮球场篷房/游泳馆篷房源头厂家精选

在全民健身热潮与体育产业多元发展的推动下,泳池篷房、篮球场篷房等大型临时建筑需求显著上升。行业数据显示,2025年全球篷房市场规模预计将突破135亿美元,中国市场增长率持续保持在12%以上。 泳池篷房、篮球训练篷…

OIFC 2025.11.14 模拟赛总结

没挂分。 T1 蛇 \[\texttt{swap(T1, T2);} \]题目描述 你获得了一个长度为 \(n\) 的字符串 \(a\),它的每一个位置都印有一个字符 o 或者 x。长期看着一个相同的字符串十分容易产生审美疲劳,所以你决定对它进行一些操…

纯HTML + CSS + JS 实现Popup弹窗

在 Web 开发中,弹窗(Popup)是一种极其常见的交互组件,广泛用于:表单提交确认 删除操作二次确认 登录/注册入口 信息提示或警告虽然现在有大量 UI 框架(如 Element UI、Ant Design、Bootstrap)提供现成的弹窗组件…

免密登录

方式pg_hba.conf设置配置文件 环境变量PGPASSWORD .pgpass文件.pgpasstouch ~/.pgpass创建文件 chmod 600 ~/.pgpass修改文件权限字段 你的值 含义1. hostname 127.0.0.1 数据库服务器的 主机名或IP地址2. port 6677 P…

什么是CRM系统:CRM系统定义、功能与2025年9款最佳CRM系统推荐

在数字化转型的浪潮中,企业如何有效管理客户关系已成为决定成败的关键因素。CRM系统作为现代企业的核心工具,正在帮助全球数百万企业提升销售效率、优化客户体验。本文将深入解析CRM系统的本质,并为您推荐9款市场领…

2025上海留学中介机构出国留学排名前三

2025上海留学中介机构出国留学排名前三一、上海留学中介如何选择?这份排名给你答案2025年7月21日,随着留学申请季的临近,许多上海学生和家长又开始面临选择中介的难题。到底上海留学中介哪家口碑更好?申请美国研究…

2025年轴承钢砂批发厂家权威推荐榜单:合金钢砂/钢砂/钢砂价格源头厂家精选

在工业制造高速发展的背景下,轴承钢砂作为表面处理的核心耗材,其性能直接影响产品质量与生产效率。 据中国磨料磨具工业协会2024年报告数据显示,国内金属磨料市场规模已达180亿元,其中高端特种磨料年增速达12.5%,…

antd form.item内部的value会生效吗

antd form.item内部的value会生效吗 漫思

Proxmox VE9.0优化-删除订阅窗

本文介绍了如何在PVE9.0上删除订阅弹窗参考文章:PVE 9.0 保姆级安装及优化教程(换源、网络配置、远程唤醒等)【基础篇】PVE 9.0 保姆级安装及优化教程(换源、网络配置、远程唤醒等)【基础篇】 | ZhiChaos BlogDeb…

Springboot病人跟踪治疗信息管理系统e40z6(程序+源码+数据库+调试部署+创建环境)带论文文档1万字以上,文末可获取,系统界面在最后面。

Springboot病人跟踪治疗信息管理系统e40z6(程序+源码+数据库+调试部署+创建环境)带论文文档1万字以上,文末可获取,系统界面在最后面。pre { white-space: pre !important; word-wrap: normal !important; overflow…

Visual Studio 2026 正式版发布 - 适用于 Windows 上 .NET 和 C++ 开发人员的最全面 IDE

Visual Studio 2026 正式版发布 - 适用于 Windows 上 .NET 和 C++ 开发人员的最全面 IDEVisual Studio 2026 正式版发布 - 适用于 Windows 上 .NET 和 C++ 开发人员的最全面 IDE The most comprehensive IDE for .NET …

Burp Suite Professional 2025.11 发布,新增功能简介

Burp Suite Professional 2025.11 (macOS, Linux, Windows) - Web 应用安全、测试和扫描Burp Suite Professional 2025.11 发布,新增功能简介 Burp Suite Professional 2025.11 (macOS, Linux, Windows) - Web 应用安…

数据库主备与MHA架构对比

数据库主备与MHA架构对比第一部分:基本概念详解 1. 数据库主备架构 是什么?数据库主备架构是一种高可用性和数据可靠性解决方案。其核心思想是设置两个或多个数据库实例:主数据库:承担所有的读写操作。应用程序通常…

Proxmox VE9.0优化-换源

本文介绍了如何在Proxmox VE9.0中换源,PVE8的很多方法已经不适用。pve9.0 换源 参考文章:PVE 9.0 保姆级安装及优化教程(换源、网络配置、远程唤醒等)【基础篇】PVE 9.0 保姆级安装及优化教程(换源、网络配置、远…

基于Session和Redis实现短信验证码登录 - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

21 CFR part11

是什么? 美国食品药品监督管理局(FDA)制定的关于电子记录和电子签名的法规,旨在确保电子数据在监管环境下的可信度、可靠性、完整性和法律等效性,使其与纸质记录和手写签名具有同等法律效力 1. 电子记录的关键要求…

深入解析:高可用架构实战:SpringBoot+MongoDB构建AI原生应用

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

代涂高者——《机器学习》总结笔记

天苍苍,野茫茫,苍天已死,黄天当立。今日割五城,明日割十城,楚虽三户,亡秦必楚。冲天香阵透长安,满城尽带黄金甲,内库烧为锦绣灰,天街踏尽公卿骨!莫道石人一只眼,请看今日之域中,必是赤旗的世界,环球同此凉…

2025年五个女博士品牌可信度分析:深度拆解科研底色与市场真实反馈

引言 本文聚焦“科研底色”这一核心维度,对五个女博士品牌的可信度进行系统拆解,为正在观望口服美容产品的消费者提供一条可验证、可回溯、可复盘的客观参考路径,避免被营销话术裹挟。 背景与概况 五个女博士成立于…

2025年五个女博士品牌可信度分析:深度拆解科研数据与真实市场反馈

引言 本文从“科研数据与真实市场反馈”这一核心维度出发,对五个女博士品牌的可信度进行系统评估,为正在观望口服美容产品的消费者提供一份可量化、可交叉验证的客观参考。 背景与概况 五个女博士成立于2019年,是由…