智能合约部署教程--Ganache--以太坊

下载安装Ganache

Ganache是Truffle Suite的一部分,是一个用于以太坊区块链开发的个人区块链模拟器。它可以在本地计算机上快速启动一个以太坊网络,帮助开发者进行智能合约的开发、测试和部署。

下载图形化界面

进入Ganache官网--Ganache - Truffle Suite,点击download即可下载适配电脑的版本,下载后的文件为appx版本,将其改为.exe即可成功运行

如果官网下载缓慢,出现长时间下载不下来的情况,可以访问GitHub相关连接,找到exe版本进行下载--Releases · trufflesuite/ganache-ui

下载后直接按步骤安装即可。

若依然下载缓慢,此处附上网盘链接

Ganache-2.7.1-win-x64-setup.exe
链接: https://pan.baidu.com/s/1rfDnjF01tCi4eWsSR_Pv1w?pwd=tm8k 提取码: tm8k 

使用Ganache

双击打开,会出现如下界面

点击QUICKSTART,即可启动一个本地以太坊区块链,并显示10个预设账户及其相关信息,如下图所示

从左往右每一列:

  • Address

    • 以太坊地址(0x 开头的公钥地址)。

    • 示例:0x3f8811Fb5FCab296BBA443d8baAB27588314d64c

  • Balance

    • 该地址当前持有的 ETH 数量。

    • 示例:99.91 ETH100.00 ETH

  • TX Count

    • 交易计数(也可以理解为该地址的交易次数或 nonce)。

    • 在以太坊中,nonce(或 TX Count)通常表示“这个地址已经发起过多少笔交易”。

    • 示例:125

  • Index

    • 该地址在此列表(或账户集合)中的索引编号。

    • 例如,在本地开发工具(如 Ganache)里,会按照顺序给每个测试账户一个索引。

    • 示例:012

智能合约部署

remix设置

进入remix

点击新建文件,起名为1.sol

在其中添加如下代码块

// SPDX-License-Identifier: MIT
// 许可证声明,表明本合约采用 MIT 许可证,通常用于开源项目

pragma solidity ^0.8.0;
// 声明 Solidity 编译器版本要求,这里表示使用 0.8.0 或更高的版本(直到不兼容的版本)

contract TestSimple {
    // 定义一个公共无符号整数 x,并初始化为 1
    // public 修饰符会让 Solidity 自动生成一个 getter 函数
    // 这样就可以从合约外部调用 TestSimple.x() 来读取 x 的值
    uint public x = 1;
}

点击类似S的按钮,选择编译器版本为0.8.x,再运行。

若运行成功,需要进行相关设置。

注意:将EVM改成London,否则合约可能部署失败。

EVM(Ethereum Virtual Machine)版本指定了合约要兼容的以太坊虚拟机升级。以太坊网络在不同阶段会进行硬分叉或升级,每次升级会引入新的特性或对某些操作码进行修改。

账户设置

接下来,在插件中找到Matamask钱包。注意:一定要在remix界面打开插件,不能打开matamask网页。点击左上角添加自定义网络。

具体设置内容参考Ganache中设置里server内容

注意:链ID若写5777不成功,可以换成1337

账户添加

在Ganache中点击小钥匙,将私钥PRIVATE KEY复制,进入matamask添加账户,点击导入账户,将刚才复制的私钥粘贴

此时可以看到账户导入成功,

可以看到账户余额

部署智能合约

在remix中点击以太坊标识,将环境改为matamask,account改为刚才添加的账户后点击deploy

这时候会出现一个请求:

点击确认即可,如果无法部署,可以改一下GAS LIMIT,将其改高一点。

此时合约已经正确部署,在Ganache中看到tx count数量会增加1,点击block会看见相关信息。

  • Block 7

    • 区块编号(Block Number),表明这是区块链上的第 7 个区块。区块编号是按时间顺序递增的。

  • Gas Used(114125)

    • 当前区块中所有交易实际消耗的总 gas 量。

    • Gas 是在以太坊网络上执行交易或智能合约所需的计算成本单位。

  • Gas Limit(10000000)

    • 当前区块的 gas 上限。这个值限制了本区块中所有交易的最大 gas 总和。

    • 如果交易所需的 gas 超过此上限,就无法打包进该区块。

  • Mined On(2023-03-22 09:12:43)

    • 区块被“挖出”或“打包”的时间戳,也就是该区块在区块链上被确认的时间(在本地开发环境中,这个时间可能由模拟器或本地节点决定)。

  • Block Hash(0x3535c18ec...)

    • 区块哈希值,是区块的唯一标识符。

    • 通过区块内所有数据(包括交易列表、前一个区块哈希等)计算得来。

    • 一旦区块数据改变,哈希也会随之改变。

在remix界面也会看到如下信息

  • [Block: 7 txIndex: 1]

    • Block: 7:该笔交易被打包进了区块编号 7。

    • txIndex: 1:表示这是该区块中第 1 笔交易(交易在区块中的顺序索引)。

  • from: 0x28...

    • 发起交易的以太坊地址,简称“发送方地址”。

  • to: TestSimple.(constructor)

    • 交易目标是 TestSimple 合约的构造函数(constructor)。

    • to 显示为合约名加“(constructor)”时,代表这是一次“创建合约”的交易,而不是对现有合约的调用。

  • value: 0 wei

    • 这笔交易中发送的 ETH 数量是 0 wei(wei 是以太坊中最小的计量单位)。

    • 即没有额外转账,只是部署合约。

  • data: 0x6080...

    • 交易的输入数据(input data),一般包括构造函数的字节码或合约部署的字节码等。

    • 在部署合约时,这里会包含合约编译后的 EVM 字节码。

  • logs: 0

    • 表示这笔交易在执行过程中没有触发任何事件(Event),因此产生的日志数量为 0。

  • hash: 0xbcd5...

    • 交易哈希(Transaction Hash),是交易的唯一标识符。

    • 可以在区块浏览器中通过此哈希查找具体交易信息。

  • status: 0x1 Transaction mined and execution succeed

    • status: 0x1:表示交易执行成功。

    • 如果是 0x0,通常代表交易失败或被回滚。

    • “Transaction mined and execution succeed” 说明交易已被打包进区块且成功执行。

  • block hash: 0x8df6...

    • 区块哈希(Block Hash),区块的唯一标识。

    • 由区块内的所有信息(包括交易、前一区块哈希等)通过加密算法生成。

  • block number: 7

    • 与上方“Block: 7”对应,表示该交易所在的区块编号。

  • contract address

    • 这里显示了一个新生成的地址(如果是合约部署交易)。

    • 说明部署成功后,合约最终被分配到这个地址。

  • from

    • 再次列出发送方地址。

  • to

    • 再次显示此次交易的目标(部署合约时通常为空或显示“constructor”)。

  • gas: 114625

    • 这笔交易实际消耗的 gas 数量。

  • transaction hash

    • 与上面“hash: 0xbcd5...”相同,是该交易的哈希值。

  • input / decoded input

    • 详细的交易输入数据,以及解码后的人类可读信息(如果有函数参数,会在 decoded input 中显示具体参数值)。

  • decoded output

    • 如果调用合约函数有返回值,这里会显示解码后的返回值(合约部署一般没有返回值)。

  • logs / raw logs

    • 交易中触发的事件(Event)会在此列出,

    • logs 是经过初步解析后的事件日志,

    • raw logs 是原始日志数据(十六进制等)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值