区块链之以太坊合约开发工具——Metamask钱包和Remix IDE

以太坊(Ethereum)是一个建立在区块链技术之上的去中心化应用平台。它允许任何人在其平台上创建和使用通过区块链技术运行的去中心化应用(DApp)。

一、Metamask钱包

钱包是管理账户的重要工具,用户可以使用钱包创建账户、进行交易签名,并在需要时连接到区块链节点来执行交易。需要注意的是,钱包本身并不存储用户的资产,而是管理访问这些资产的密钥和签名功能。

MetaMask 是一个浏览器插件,支持多种主流浏览器,如 Chrome、Firefox 和 Opera。它不仅可以用于管理账户,还可以用于部署和执行智能合约。开发者通常使用 MetaMask 与 Remix IDE 等工具结合使用,以便更轻松地开发和测试智能合约。

1、MetaMask插件下载

MetaMask 有移动端版本和浏览器插件(也称为扩展程序)版本, 本文介绍的浏览器版。MetaMask 在 Chrome谷歌浏览器(同Microsoft Edge浏览器)、FireFox火狐浏览器 均提供了插件。

我们打开MetaMask钱包的官网首页 https://metamask.io/ 后,可以点接跳转到插件市场安装。

2、创建钱包账号

点击MetaMask图标进入,按照系统提示输出密码和助记词完成钱包账户的创建。

出现了以下账户的界面即完成了钱包账户的创建

这里account下面的字符串就是钱包的地址,地址类似于银行卡账号,钱包之间转账就是使用该地址。

3、给账户钱包充值

创建好账户后,在体验转账或交易之前, 我们需要先给账号充值,我们可以先去测试网的水龙头(Faucet)获取一些测试。下面是faucet的一些网站。

https://chaintool.tech/faucet

这里我们使用sepolia示例

https://cloud.google.com/application/web3/faucet/ethereum/sepolia

回到MetaMask下找到sepolia下的地址

然后点击receive 0.05 sepolia ETH,等待一会后会看到下图交易成功的提示,并刷新MetaMask界面,账户接收到了0.05 sepolia ETH。

二、Remix IDE

Remix 对初学者来说,是开发智能合约的最佳开发集成环境(IDE),它无需安装,可以直接快速上手。

Remix 开箱即用,你可以打开 Remix 网站:Remix - Ethereum IDE , 进入到 Remix IDE:

1、新建合约

既可以新建文件、也可以从本机或 GitHub 加载文件,这里我们新建一个 counter.sol 合约。

2、合约代码编写

可以在代码区输入示例代码

复制代码
//SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

contract Counter {
    uint counter;

    constructor() {
        counter = 0;
    }

    function count() public {
        counter = counter + 1;
    }

    function get() public view returns (uint) {
        return counter;
    }
}

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

count()函数让计数器加1,get()函数用来获取计数器值。

智能合约不需要编写入口函数(如main函数),其实编译器会帮助合约生成main入口函数,EVM 在入口函数里用函数选择器去匹配调用的函数。

3、合约编译

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

ABI 是 Application Binary Interface,即应用程序二进制接口,ABI 用来描述当前合约的所有接口,当我们与合约交互时,就需要使用 ABI。

Bytecode 是部署合约所需的字节码(也称为创建时字节码),部署合约时,就是把该字节码作为交易的输入数据发送链上。

4、合约部署

编译之后, 如果代码没有错误,就可以部署到区块链网络上。

一个正式的产品推荐的部署流程是:

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

(1)部署到VM

通常这些都有默认值,初学者使用默认值即可。

点击deploy后可看到成功部署到VM的输出

(2)部署到真实网络

部署到真实网络,不管是测试网还是主网,在 Remix 的环境里选择Injected Provider - MetaMask

Remix 会加载我们在 MetaMask 中选择的网络,之前在第一部分MetaMask中我选择的事Sepolia,所以这里加载出来的是sepolia环境,并弹出下图中的交易对话框。

让我们确认交易费用,点击"确认"时,同时会对这笔交易签名,并发送到 sepolia 网络中。

待交易完成后,同样会在功能操作区域的下方列出合约地址及对应的函数。

(3)调用合约函数

橙色按钮来这个动作会修改区块链的状态,蓝色按钮则表示调用仅仅是读取状态。

根据我们之前编写的智能合约的逻辑,count功能是让状态加一,也就是会发起一笔交易,交易打包后,计数器变量加1;点击get可以获得当前计数器的值。

Remix 对初学者非常友好,非常适合开发小合约及验证性代码。

对于大一点的的项目,在本地开发结合 GitHub 管理代码是更理想的选择,就很适合使用 HardhatFoundry 开发框架。

相关推荐
miner.Fan18 小时前
阿瓦隆 A1146 Pro 63T:性能与设计详解,探索区块链挖矿新高度
区块链
StockPP18 小时前
全球股票API接口:一站式接入印度股票实时行情数据指南
区块链
yzx99101320 小时前
构建下一代互联网:解码Web3、区块链、协议与云计算的协同演进
c语言·开发语言·人工智能·自动化·区块链
大白猴21 小时前
【大白话解析】OpenZeppelin 的 ReentrancyGuard 库:以太坊防重入攻击安全工具箱(附源代码)
区块链·智能合约·solidity·以太坊·evm·重入攻击·恶意合约
TechubNews21 小时前
Moonchain:「新加坡大华银行」加持下连接现实金融与链上经济的价值通道
金融·区块链
taxunjishu1 天前
基于 CC-Link IE FB 转 DeviceNet 技术的三菱 PLC 与发那科机器人在汽车涂装线的精准喷涂联动
网络·人工智能·物联网·机器人·自动化·汽车·区块链
Sui_Network1 天前
Yotta Labs 选择 Walrus 作为去中心化 AI 存储与工作流管理的专用数据层
大数据·javascript·人工智能·typescript·去中心化·区块链
木西2 天前
React Native DApp 开发全栈实战·从 0 到 1 系列(流动性挖矿-合约部分)
web3·智能合约·solidity
大翻哥哥2 天前
Python 2025:量子计算、区块链与边缘计算的新前沿
python·区块链·量子计算
AWS官方合作商2 天前
构建企业级区块链网络:基于AWS EC2的弹性、高可用解决方案
网络·区块链·aws