如何搭建以太坊测试链(附教程)

2023-11-15

image

在以太坊项目实际开发中,我们必须要有一个测试环境,因为产品环境是需要消耗GAS的。因此我们希望在测试环境测试无误之后再发布到产品环境以太坊链上去。本篇教程讲述如何搭建本地的测试链。

1

Testnets

以太坊的测试网络环境被称为Testnets,拥有几乎和以太坊等效的功能。因此可以在Testnets上开发和测试自己的智能合约,测试发币等等,作为上链前的评估环境。

目前Testnets环境有不少,受到开发者喜爱的主要有以下三种:

以上项目属于公共的Testnets,可以无需本地搭建直接使用,参考对应的文档接入即可,也可以使用Geth命令行工具连接到这些公共Testnets网络中。

下面我们要介绍的是需要自己DIY的Testnets项目,适用于本地小规模测试,或者没有外网访问的测试环境中,就是ganache-cli项目(https://github.com/trufflesuite/ganache-cli)。

2

ganache-cli

曾经这个项目被称为testrpc,现在已经增强了功能,并且重命名为ganache-cli,也由etherenum项目组迁移到了truffle项目组的名下,作为truffle框架下的一个子项目。

安装它需要使用npm:

$ npm install -g ganache-cli

快速启动只需要空参运行ganache-cli即可:

$ ganache-cli

Ganache CLI v6.1.6 (ganache-core: 2.1.5)

Available Accounts

==================

(0) 0x721e4416f6290230274be32f3d68e8194403f5de (~100 ETH)

(1) 0xefbd7fd54126b3a755cce16ab80b6f018eb2cc4a (~100 ETH)

(2) 0x3af60c2747c737b37a49cbdaf6d4e3f80794cbcf (~100 ETH)

(3) 0x35456a4255a0e8d2525ffd2eccd16e88b8242de7 (~100 ETH)

(4) 0xba6b44714329f4578d785b6132e942b8f920ca07 (~100 ETH)

(5) 0xfbb8c6da1c3bcfb7e285210f2404364112877a1b (~100 ETH)

(6) 0x33e90bf0bc85d18f1fd104aaae22722ab046cfc4 (~100 ETH)

(7) 0x88a7e5c3ebd8c36f84dded2b7e15a59473153cf3 (~100 ETH)

(8) 0xe025cdf4066b6d8079438dd9eb9d8a30f82a7f1d (~100 ETH)

(9) 0x5da32eb8ca2c8fd14c745776633924e4d87cfbe4 (~100 ETH)

Private Keys

==================

(0)0x7a11088361c7cad64acadce8deaae666a6721d02837523663cb46683b4ed7cda

(1)0x3619c935a7f965449a0104935e4e631cba9077c0783cbf77fe0c5f92fd8bb763

(2)0x9ac7a2914d651ef3afba681c1c2035909ae6ca93b86ee8fa367b0373c63f9379

(3)0x7e4651e35c7e9956e7a18eb4f721fad81a0e608736cda6bdfee6a5ff9ee8b99d

(4)0x11f3144b6f041601e80bfeb6fab4b74caff28fd9fb1cdbf3435967deee308592

(5)0xf747fbd7e8e85fbf76d6f7c8eb4244d3b72655d5e86648daab6d020f98a0a251

(6)0x065d754b60b856a42a6418e13fb625632122433d9b3263b686265fb67cfc550b

(7)0x2857ecc4b378de190265245825dc42443370262c119b894dc61f88564d491252

(8)0xa86da3e1e8fc33bbd4fcfab2461af10e7d6eaa16002fb9db582aedf8ff92881c

(9)0x4a50bb4a4d4d29df2e894ad9d18086e079b7a3e8b8e4960649c5043268e73ae5

HD Wallet

==================Mnemonic:      hip achieve device country identify gun drive nest danger run outside window

Base HD Path:  m/44'/60'/0'/0/{account_index}

Gas Price

==================

20000000000

Gas Limit

==================

6721975

Listening on 127.0.0.1:8545

可以看到默参运行会直接创建10个钱包账户,初始化一些以太币,并且有非常多的Gas和足够的Gas Limit,通常来说也足够运行智能合约的测试了。

更多可用参数可以参考ganache-cli –help的输出,可能比较有用的是持久化钱包(–db参数)和监听0.0.0.0(–host参数),以便组建以太坊Testnets。比如这样:

# 在某一台主机(我这里是192.168.31.100)上运行

$ mkdir -p ganache_db  # 数据库目录必须事先创建,否则程序运行报错

$ ganache-cli -h 0.0.0.0 --db ganache_db/

....

HD Wallet

==================

Mnemonic:      crucial peanut biology duck casino safe laugh crowd over enrich crane turkey

Base HD Path:  m/44'/60'/0'/0/{account_index}

Gas Price

==================

20000000000

Gas Limit

==================

6721975

Listening on 0.0.0.0:8545

我们以某一台主机为master,监听0.0.0.0,运行ganache-cli,其他参数全都默认。在另一台主机再启动一个ganache-cli,指明从master节点上进行fork:

$ mkdir -p ganache_db

$ ganache-cli -h 0.0.0.0 -f http://192.168.31.100:8545 --db ganache_db/

...

Gas Price

==================20000000000

Gas Limit

==================

6721975

Forked Chain

==================

Location:    http://192.168.31.100:8545

Block:       0

Network ID:  1531668183776

Time:        Mon Jul 16 2018 00:25:09 GMT+0900

Listening on 0.0.0.0:8546

最后出现了Forked Chain字样,这样就可以在多个节点上部署区块链,模拟区块链的网络环境。

启动模拟环境之后,使用metamask(https://metamask.io/)就可以连接到测试网络上,测试交易了,可以参考官方文档进行操作: https://truffleframework.com/docs/advanced/truffle-with-metamask

大概的步骤如下:

启动ganache-cli之后,在终端输出可以看到类似于这样的字样:

HD Wallet

==================

Mnemonic:      hard verb crunch rare direct universe mean gold claw need neutral carry

Base HD Path:  m/44'/60'/0'/0/{account_index}

按照metamask网站((https://metamask.io/))的链接,安装chrome或firefox插件之后,打开插件图标,经过一系列的Accept操作之后,进入页面,选择Localhost 8545(如果修改过默认监听端口,那么请使用最后的Custom RPC):

image

然后选择Import Existing DEN(因为ganache-cli已经帮我们初始化好了账户,不用自己重新创建了)。在弹出界面中钱包种子填入终端上的Menmonic,初始化密码自己填一个,满足8位即可:

image

之后就可以看到简单的钱包账户界面了:

image

通过Import Account功能就可以导入其他创建好的账户了:

image

同样账户的私钥已经打印到终端上了,直接用就可以了。

本文作者:HiBlock区块链技术布道群-冯宇Ops

原文发布于简书

原文链接:https://www.jianshu.com/p/904aaae80320

加微信baobaotalk_com,加入技术布道群

以下是我们的社区介绍,欢迎各种合作、交流、学习:)

image

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何搭建以太坊测试链(附教程) 的相关文章

随机推荐

  • ESP32-IDF环境搭建以及使用

    1默认已经安装了esp32 idf和vscode配置 离线版的esp32idf安装 windows eap32安装这里参考博客ESP32c3开发环境搭建 IDF V4 4离线版安装使用 esp idf v4 4 2 可能会遇到的问题 问题篇
  • 修改elementUI样式未生效问题(挂载到了body标签上)

    修改挂载到body标签上elementUI样式问题 目录 修改挂载到body标签上elementUI样式问题 前言 一 适用范围 二 示例 1 目标 2 实现思路 修改自带样式方法 最后看效果 总结 前言 在使用element ui库的时候
  • Aspose.Slides for Java Crack

    Aspose Slides for Java Crack Added support for changing the color of leader lines in pie charts Added new AfterAnimation
  • 2012年终总结 - I T征途

    2012年终总结 I T征途 在2012年年初的时候 自己曾写了一个规划 2012 这一年我该做些啥 里面简单的介绍了一下2012年 我应该做的事儿 如今到了为2012结账的时候 我想借助那篇文档来总结这一年我的所作所为 2012年 我该给
  • 用Sipp 对Asterisk 进行性能测试的工作笔记-1

    公司需要 对Asterisk 进行一定的性能测试 测试目标 1 IVR 支持多少路2 一对一通话 支持多少路3 不同编解码的性能影响 4 通话中 录音 支持多少路 测试工具 sipp http sipp sourceforge net 辅助
  • createrepo:创建本地源

    4月20日 createrepo 创建本地源 repodata作为软件的仓库 其目录下有四个必要文件 filelists xml gz other xml gz primary xml gz 和repomd xml md 意思是 metad
  • IDEA 中 .properties文件的中文显示乱码问题的解决办法

    今天使用IDEA 搭建Spring Boot 项目 配置application properties 配置文件 录入中文 在右下角出现如下截图提示语 重新打开application properties 文件出现汉字乱码 依据提示信息修改源
  • “你爱我,我爱你,蜜雪冰城甜蜜蜜“秋天的第一杯奶茶!Python安排!!

    立秋了 大家秋天的第一杯奶茶都安排上了么 前一段时间我相信很多人都被 你爱我 我爱你 蜜雪冰城甜蜜蜜 这首歌洗脑了 所以今天就爬取了某度地图上蜜雪冰城门店分布 看看全国有多少家蜜雪冰城 能不能满足大家的需求啦 哈哈哈 数据采集 首先 我们打
  • Linux部署宝塔

    1 linux服务器安装宝塔 宝塔地址 https www bt cn new download html 点击上方地址 进入下方页面 点击安装版本 复制第一个命令 得确认你服务器是centos 远程连接服务器 复制此命令运行 运行成功后
  • [CISCN2019 华东南赛区]Web11 SSTI

    这道SSTI 差点给我渗透的感觉了 全是API 我还想去访问API看看 发现这里读取了我们的ip 我们抓包看看是如何做到的 没有东西 我们看看还有什么提示 欸 那我们可不可以直接修改参数呢 我们传递看看 发现成功了 是受控的 这里我就开始没
  • mysql某批量更新导致死锁

    查询当前数据库全部线程 show full processlist 查询当前运行的全部事务 select from information schema innodb trx 查询锁情况 select from information sc
  • 碰撞改变材质颜色_bp

    感谢来自程序员的暴击 学习资料来于 https www bilibili com video BV125411h7c4 p 22 最大的收获是 材质编辑器上 1维向量到4维向量的生成 会者不难 难者不会 方法很简单 鼠标左键 数字1就会生成
  • 2023年电赛E题完整设计暨电赛全记录

    目录 一 2023年E题完整设计 lt 1 gt 选择方案 任务一 实现按键按下复位 基础部分 任务二 实现激光点绕边框一周 基础部分 任务三 实现激光点绕A4纸边缘一周 基础部分 任务四 实现绿色激光追踪红色激光 发挥部分 lt 2 gt
  • 【信号与系统】傅里叶变换

    傅里叶变换 文章目录 傅里叶变换 傅里叶级数 基本公式 常用公式 基本性质 其他公式 卷积公式 周期信号的傅里叶变换 抽样信号的傅里叶变换 提供延时的理想滤波器 无失真传输 傅里叶级数 https blog csdn net lafea a
  • 【Flink】Flink 消费kafka报错 AMRMClientAsyncImpl Interrupted while waiting for queue InterruptedException

    1 背景 一个flink etl程序 读取一个kafka集群的数据 到两外一个集群 然后报错 2020 06 06 15 56 00 PM Thread flink akka actor default dispatcher 20 Clas
  • redis缓存一致性延时双删代码实现

    不废话 如下 1 自定义注解 author caoyue 延时双删 Retention RetentionPolicy RUNTIME Documented Target ElementType METHOD public interfac
  • shell脚本判断变量是否包含某个字符串的几种方法

    方法一 利用grep查找 strA long string strB string result echo strA grep strB if result then echo 包含 else echo 不包含 fi 先打印长字符串 然后在
  • 利用SVG滤镜实现水波倒影效果

    SVG滤镜用来增加对SVG图形的特殊效果 多种滤镜巧妙结合起来可以实现很棒的视觉效果 下面利用svg的feTurbulence滤镜和feDisplacementMap来模拟真实的水波倒影特效 效果如下图 代码并不复杂 首先设置两张图片 di
  • 数据包络分析(DEA)——CCR模型

    写在前面 博主本人大学期间参加数学建模竞赛十多余次 获奖等级均在二等奖以上 为了让更多学生在数学建模这条路上少走弯路 故将数学建模常用数学模型算法汇聚于此专栏 希望能够对要参加数学建模比赛的同学们有所帮助 目录 1 模型原理 1 1 模型介
  • 如何搭建以太坊测试链(附教程)

    在以太坊项目实际开发中 我们必须要有一个测试环境 因为产品环境是需要消耗GAS的 因此我们希望在测试环境测试无误之后再发布到产品环境以太坊链上去 本篇教程讲述如何搭建本地的测试链 1 Testnets 以太坊的测试网络环境被称为Testne