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

04以太坊测试网(Testnets) 什么是测试网? 测试网络(简称testnet)用于模拟以太网主网的行为。有一些公开的测试网络可以替代以太坊区块链。这些网络上的货币毫无价值,但它们仍然很有用,因为合约和协议变更的功能可以在不中断以太网主网或使用真实货币的情况下进行测试。当主网(简称mainnet)即将包含对以太坊协议的任何重大改变时,其测试主要在这些测试网络上完成。这些测试网络也被大量开发人员用于在部署到主网之前测试应用程序。 ... 阅读详情

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

以太坊理解 1.钱包,钱包是一个程序,主要原理是使用rpc远程调用,和以太坊上的某个节点进行交互,也就是和以太坊进行交互,同时钱包重要的功能还有对以太坊账户的管理。 2.以太坊只有黄皮书,里面定义了以太坊的协议,以太坊的客户端只要按照以太坊协议来实现,比如开放固定的端口等,就视为一个以太坊节点。比较知名的客户端有geth,默认被视为”官方客户端“,使用go开发。可以用它来搭建本地私链,不过本地私链只有一个节点,我感觉意义不是很大,作为合约的测试环境还可以。 3.以太坊有很多链,我们常说的以太坊是以太坊主链,链id为1, 阅读详情

相关推荐

以太坊区块链浏览器搭建

链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 当然,读者若要实践,那么电脑上必须已经搭建好了geth,并且命令“geth version”能显示版本信息;针对以太坊各个链(私链,公链,测试链)都可以用该篇文章来搭建区块链浏览器,且步骤几乎一模一样,若有疑惑,或者遇到问题,请看文末笔者给出的邮箱地址,欢迎一起探讨学习。 笔者搭建环境:ubuntu16 + npm、...

weixin_44172023的博客 2892

三步轻松快速搭建以太坊私链测试

三步轻松快速搭建以太坊私链

qq_40482198的博客 2775

Python Flask如何开发以太坊智能合约

将数据存储在数据库中是任何软件应用程序不可或缺的一部分。无论如何控制该数据库都有一个该数据的主控。区块链技术将数据存储到区块链网络内的区块中。因此,只要某个节点与网络同步,它们就会获得区块中数据的副本。因此,该技术中没有特定的数据主控。 在本教程中,我们将编写一份智能合约(我将进一步解释),以便在区块链上保留用户数据。我们将使用python web3(web3的python库)来开发和部署智能合...

mongo_node的专栏 663

以太坊 USDT-ERC20合约 注释版

第二步:检测ETH手续费是否大于0.0035ETH,大于则即可调用接口转出USDT ,转账完毕。ETH以太坊网络gas limit和gas price设置。第三步:ETH手续费不足则 调用之前准备的ETH手续费资金池地址,往这个地址里面转入至少0.0035的ETH。等下次执行转账时即可转账成功。第一步:首先通过获取地址余额接口(name=usdt_erc20),查询USDT余额包括ETH手续费余额。ERC20的USDT,就是以太坊的代币。转账手续费低,速度快。

软件工程小施同学 的专栏 6443

web3j 以太坊客户端 Infura 签名

ConsenSys的Infura服务提供了在云端运行的以太坊客户端的能力,所以你不必自己运行一个独立的以太坊客户端以便与以太坊一起工作。 当你注册这个服务时,你可以提供一个token令牌,你可以使用它连接到相关的以太坊网络: 以太网网络/公有链: https://mainnet.infura.io/<your-token> 以太坊测试网络/测试链(Rinkeby): http...

mongo_node的专栏 2065

告别点不亮!STM32F103驱动HT1621段码屏的常见坑点与调试心得

本文详细解析了STM32F103驱动HT1621段码屏的五大常见问题及解决方案,包括硬件连接、时序控制、RAM地址映射等关键难点。通过实测数据和代码示例,帮助开发者快速排查显示异常问题,提升驱动开发效率。特别针对HT1621与STM32F103的兼容性问题提供了专业调试建议。

weixin_30925435的博客 380

Web3怎么本地测试连接以太坊?

你之所以用 Infura 或 Alchemy,是因为你不想自己运行一个以太坊节点,而他们帮你提供了稳定的节点接口。非常关键的问题,下面我给你讲清楚:你已经有 API Key(可以访问网络),现在需要的是钱包私钥和合约地址,这两个是你自己“生成”和“部署”出来的。

Theoweb3|优快云 wwh1st|GitHub theoweb3|TG theo_liu|X theoweb33|gmail wwh9th 华语区Web3基础设施建设者;Web3开源社区共建者;博客沉淀去中心化等各类工程经验。 2037

Claude Skills 深度讲解

阶段 1:Function Call(2023)├─ 大模型可以调用外部工具├─ 问题:缺乏对任务的深度理解└─ 局限:工具调用简单线性阶段 2:MCP 上下文工程(2024)├─ 大模型有了更丰富的上下文和工具├─ 问题:仍然需要手动编写复杂的 Prompt└─ 局限:每次对话都需要重新加载上下文阶段 3:Claude Skills(2025)├─ 大模型有了「能力模块」的概念├─ 可以动态加载、组合、执行专门的工作流├─ 真正实现了「知识的模块化和复用」

u013134676的博客 1465

接入以太坊(Ethereum)测试网络

什么是测试网络以太坊为了方便智能合约的开发、学习和测试,开启了一条全新的区块链,与主网络特性相同,但测试网络中的以太币价值更低,也更容易得到。这样不至于在主网络上开发出现 BUG 造成以太币的损失。当然我们也可以搭建私有的测试网络,不过区块链的去中心化特点,需要更多的节点运行才能达到理想效果,好在以太坊有公开的测试网络,而我们接入也更容易。以太坊测试网络RopstenRopsten也是以太坊官方提...

Astra 1万+

Ubuntu服务器通过IPV6端口转发搭建幻兽帕鲁私服实战

本文详细介绍了在Ubuntu服务器上通过IPV6端口转发搭建幻兽帕鲁私服的完整教程。针对只有公网IPV6地址的服务器环境,提供了从硬件检查、端口转发工具配置到游戏服务器安装的全流程解决方案,帮助玩家轻松实现多人联机游戏体验。

weixin_30652491的博客 490

电工识图入门:从电气符号到控制逻辑的完整指南

电工图纸是电气工程领域的通用语言,无论是设备安装、线路检修还是系统设计,看不懂图纸就像航海没有海图。很多初学者面对复杂的电气符号和线路走向感到无从下手,实际上只要掌握正确的识图方法,就能从简单的照明电路逐步过渡到复杂的自动化控制系统。 本文将从最基础的电气符号和图纸类型讲起,通过实际图纸案例解析,带你建立完整的识图逻辑。你将学会如何区分主回路和控制回路,如何追踪电流路径,以及如何结合图纸进行故障排查。无论你是电工新手、设备维护人员还是相关专业学生,这套方法都能帮你快速提升图纸理解能力。 1. 电气图纸基础:

chengyixian7877的博客 338

区块链100讲:如何安装以太坊钱包和搭建本地测试链geth(流程展示)

人生总是奇妙的,一旦你努力去做一件事,如果结果不是你想象的那样,那么老天一定会给你一个更好的结果。–《我在未来等你》 今天就以区块链的学习开始吧,站在巨人(hiblock社区和一帮对新技术有共同兴趣爱好的伙伴)的肩膀之上,应该可以看的更远,而且起点也更容易。 1 以太坊钱包(Mist/Ethereum wallet)的安装 注: 比特币定位于一个应用,以太坊定位于一个平台。...

HiBlock的博客 4738

线性代数学习笔记(十)——矩阵运算(二)

本篇笔记讲解矩阵的幂运算和矩阵的转置,其中矩阵进行幂运算的前提是矩阵为方阵,矩阵幂运算的两条性质与数的幂运算规则类似;矩阵转置的定义与行列式转置类似,但要注意由于矩阵的行数和列数不同,所以转置之后行数和列数变换。

li2008kui的专栏 1万+

区块链:搭建简单以太坊Geth私有链

在Geth环境下,搭建一个私有测试链,并掌握以太坊的基本命令。

m0_74343871的博客 1888

VS Code + EIDE + Clangd 构建 Keil/MDK 嵌入式开发新范式

嵌入式C/C++开发长期受限于传统IDE的语法理解弱、导航卡顿、跨工程复用难等问题。Clangd作为基于AST的现代语言服务器,结合EIDE对Keil uVision和ARM MDK工程文件(.uvprojx)的深度解析能力,可将编译配置、芯片型号、内存模型、扩展关键字等语义精准翻译为标准compile_commands.json,从而实现智能跳转、宏展开识别、结构体实时展开等高阶编辑体验。该方案不替换Keil/MDK编译与烧录流程,仅升级代码理解层,天然兼容STC8051、STM32 Cortex-M、G

weixin_34321753的博客 354

公文流转系统

公文录入区 | QLineEdit(文号/标题)、QComboBox(公文类型/紧急程度)、QTextEdit(正文)、QListWidget(附件列表)、QPushButton(上传附件/保存草稿/提交审批) |// 按时间范围获取。QStringList userNames = {"张三", "李四", "王五", "赵六", "钱七", "孙八", "周九", "吴十", "郑十一", "王十二"};

寒寒豆豆软件公司的博客 551

以太坊系列二:以太坊Geth环境搭建以及开启以太坊操作

一、简介 使用以太坊可以在多种不同的终端环境中使用,例如你可以在Geth终端(go语言所写)中使用以太坊,也可以在Parity终端(rust所写)、aleth终端(c++写)中使用。本文介绍ubuntu下的Geth终端环境的搭建,Geth终端环境的搭建可以在官网直接下载(https://geth.ethereum.org/downloads/)安装包安装,也可以下在Geth源码编译安装。 二、...

weixin_33656634的博客 1630

全网最详细的UAVCAN/DroneCAN链路开发(官方DroneCAN消息+自定义DroneCAN消息)附DroneCAN项目源码

全网最详细的UAVCAN/DroneCAN链路移植开发(官方DroneCAN消息+自定义DroneCAN消息)附工程移植源码

Bit_Dong的博客 3246

手把手教你用 Geth 在5分钟内搭建一个私有测试链(附 genesis.json 配置详解)

本文详细介绍了如何使用Geth在5分钟内快速搭建以太坊私有测试链,包括环境准备、Geth安装、创世区块配置(genesis.json)的深度解析,以及私有链的初始化、启动和常见问题排查。通过实战指南,开发者可以轻松创建完全可控的测试环境,适用于智能合约开发和区块链应用测试。

weixin_30312563的博客 257

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

以太坊智能合约:从概念到实操指南

智能合约是一组自动执行预定义规则的代码,类似于我们生活中的自动售货机。当用户选择商品并支付后,售货机会自动释放商品,用户不必担心交易的信任问题,因为售货机按照预设的程序操作。类似地,信用卡的自动还款也是一种实现了智能合约逻辑的机制:在设定自动还款之后,到期时系统会自动扣款。智能合约的这一概念,在数字货币和区块链领域得到了更深入的应用和发展。2008年,一个化名为中本聪的人或团队发表了《比特币:一种点对点的电子现金系统》论文,这标志着比特币的诞生。

Reveone的博客 4905

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

以太坊—各个功能站点——东科教育

以太坊官网:https://ethereum.org/ (需要翻墙)该网站为以太坊的官方网站,有详细的以太坊介绍和各种连接地址,推荐详细看一看; 以太坊所有源码地址(官方):https://github.com/ethereum/ 该github为以太坊...

吾日三省吾身 1249

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

以太坊学习路线——(二、上)搭建testrpc测试链

这篇博客演示的基本操作系统环境是CentOS 7,参考书籍:以太坊开发实战——以太坊关键技术与案例分析 第五章(吴寿鹤、冯翔、刘涛、周广益 著)。首先请自行搜索安装并更新nodejs到较高版本。 一.搭建testrpc 1.安装 $ npm install -g ethereumjs-testrpc 2.使用 [root@localhost geth]# testrpc Ethe...

菜鸟博客 2759

Web3与智能合约交互实战(附代码)

在最初学习以太坊的时候,我们需要一种友好的方式(比如一个web页面)来与智能合约交互,问题的答案是web3.js。

HiBlock的博客 2965

保姆级教程:在Ubuntu上用Geth搭建以太坊私链,并部署你的第一个智能合约

本教程详细介绍了在Ubuntu系统上使用Geth搭建以太坊私链的全过程,包括环境准备、私有链初始化、账户管理以及智能合约的部署与交互。通过实战步骤和常见问题解决方案,帮助开发者快速掌握以太坊私链搭建和智能合约开发的核心技能,适合区块链初学者和开发者参考。

weixin_30247781的博客 678

以太坊区块链_区块链之以太坊搭建私有链

文章引言以太坊私有链搭建,可以给想接触和玩的新手提供一个入门体验,你们真正感受下区块链的魅力。还有就是在测试环境中也可以的,以太坊主网数据同步始终都是一个硬伤,硬盘消耗太大而且国内同步一般很难完全实现的了,下面的文章就是为了更大家提供一定的方便,详细的讲解里面的步骤。实战案例新建创世文件新建以太坊工程目录mkdir -p /home/ubuntu/data/eth_data新建创世配置文件vim ...

weixin_39704374的博客 254
上一篇: 区块链100讲:Truffle——一个更简单的部署智能合约的方法
下一篇: 区块链100讲:关于DApp的问与答
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值