合约开发的基本结构剖析及前置知识梳理

前置知识点

上下文变量初步

  • 合约函数的背后是transaction,上下文变量访问的是transaction中的信息
  • 两个上下文变量:tx和msg
    在这里插入图片描述

ERC20

  • 规范
  • 代码实现
  • Metamask测试

ganache-cli的安装

安装

npm install -g ganache-cli

启动

ganache-cli

如果出现以下这种错误提示,这是因为Node.js 和 OpenSSL 之间的兼容性问题引起的。这个问题在 Node.js 17 和更高版本中很常见,因为这些版本更改了对 OpenSSL 的处理方式。
在这里插入图片描述

解决方式:
  • 降级 Node.js 版本,比如16
  • 设置环境变量(可以设置 NODE_OPTIONS 环境变量,以使 Node.js 使用旧版 OpenSSL 接口)
  • 在执行命令时临时设置,如下:
    NODE_OPTIONS=--openssl-legacy-provider ganache-cli
    

正常启动后会开发链会生成一些测试帐号,如下图,端口号为8545,另:网络ID是1337
在这里插入图片描述

Ganache 的 1337 网络 ID(一些有趣的知识点)

Ganache 是一个用于以太坊开发的个人区块链,它允许开发者在本地快速部署和测试智能合约。在默认配置下,Ganache 使用本地 HTTP 服务器来提供 JSON-RPC 接口,通常运行在 http://localhost:8545 上。
Ganache 的 1337 网络 ID

网络 ID(Network ID)是以太坊网络的唯一标识符。默认情况下,Ganache 使用 1337 作为它的网络 ID。这个 ID 用于区分不同的以太坊网络,例如主网、测试网(Ropsten、Kovan、Rinkeby 等)和本地开发网络。

  • 主网 的网络 ID 是 1
  • Ropsten 的网络 ID 是 3
  • Kovan 的网络 ID 是 42
  • Rinkeby 的网络 ID 是 4
为什么选择 1337?

1337 是一个被开发者社区广泛接受的数字,来源于“leet”或“1337 speak”,这是一种互联网文化中的黑客语言,意味着“elite”或“精英”。选择 1337 作为默认的网络 ID 主要是出于以下原因:

  • 避免冲突:使用一个非常高且不常用的数字,可以避免与其他公共网络 ID 的冲突。
  • 便于识别:开发者可以轻松识别和记住这个 ID,因为它具有一定的文化意义。
  • 15
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值