以太坊私链搭建与预置账号密码,快速启动开发与测试环境

OKX欧易app

OKX欧易app

欧易交易所app是全球排名第一的虚拟货币交易所,注册领取6万元盲盒礼包!

APP下载   官网注册

以太坊私链搭建与预置账号密码,快速启动开发与测试环境

以太坊私链搭建与预置账号密码,快速启动开发与测试环境

在区块链应用的开发、测试与学习过程中,搭建一个本地或私有的以太坊网络(即“私链”)是至关重要的一步,相较于测试网(如Ropsten, Goerli)或主网,私链提供了完全可控、无需成本、高自由度的环境,而为了方便开发调试和快速上手,为私链预置已知账号和密码(更准确地说是“私钥”和“地址”)是一个非常常见的需求,本文将详细介绍以太坊私链的搭建以及如何预置账号密码,助您快速启动开发与测试工作。

为何需要预置账号密码?

在以太坊网络中,账号的本质是由一对密钥组成的:私钥(Private Key) 和 公钥(Public Key),以及由公钥生成的 地址(Address),私钥相当于密码,拥有私钥就控制了该地址上的资产和操作权限。

在私链环境中预置账号密码,主要基于以下几点考虑:

  1. 快速测试:无需每次都通过挖矿或转账来获取测试币,可以直接使用预置的、拥有初始余额的账号进行合约部署、交易发送等操作。
  2. 确定性结果:开发者和测试人员可以预先知道账号信息,方便复现特定的测试场景和调试问题。
  3. 简化流程:避免了繁琐的账号创建和助记词管理,专注于业务逻辑的实现和验证。
  4. 团队协作:团队成员可以使用统一的预置账号,确保测试环境的一致性。

以太坊私链搭建常用工具

搭建以太坊私链有多种工具可选,其中最常用的是:

  • Geth (Go-Ethereum):以太坊官方的Go语言实现功能全面,是搭建私链的经典工具。
  • Parity:另一个功能强大的以太坊客户端,同样支持私有网络搭建。
  • Hardhat / Truffle:这两个是以太坊开发框架,它们通常内置了简化私链搭建和管理的功能,例如Hardhat Network和Truffle Develop,更适合智能合约开发。

本文将以Geth为例,介绍如何搭建私链并预置账号。

使用Geth搭建私链并预置账号密码

准备工作

确保您已经安装了Geth,您可以通过以太坊官方文档或包管理器(如apt, brew, yum等)进行安装。

创建自定义创世块配置文件

创世块是区块链的起始块,每个私有网络都需要一个独特的创世块配置文件,创建一个名为custom genesis.json的文件,内容如下:

{
  "config": {
    "chainId": 12345, // 私链的ID,确保与主网、测试网不同
    "homesteadBlock": 0,
    "eip150Block": 0,
    "eip155Block": 0,
    "eip158Block": 0,
    "byzantiumBlock": 0,
    "constantinopleBlock": 0,
    "petersburgBlock": 0,
    "istanbulBlock": 0,
    "berlinBlock": 0,
    "londonBlock": 0,
    "mergeNetsplitBlock": 0,
    "ethash": {}
  },
  "alloc": {}, // 在这里预置账号和初始以太币
  "coinbase": "0x0000000000000000000000000000000000000000",
  "difficulty": "0x40000",
  "extraData": "",
  "gasLimit": "0xffffffff",
  "nonce": "0x0000000000000042",
  "mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
  "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
  "timestamp": "0x00"
}

关键在于alloc字段,我们将在这里预置账号。

预置账号(生成私钥并分配余额)

假设我们想预置两个账号:

  • 账号1:私钥 0x1234567890123456789012345678901234567890123456789012345678901234,地址 0x742d35Cc6634C0532925a3b844Bc454e4438f44e,初始余额 10000 ETH。
  • 账号2:私钥 0x5678901234567890123456789012345678901234567890123456789012345678,地址 0x8ba1f109551bD432803012645Hac136c6Ee8a3e5,初始余额 20000 ETH。

我们需要将这两个账号的信息(地址和初始余额)填入alloc字段。注意:创世块配置中通常只填地址和余额,不直接填私钥,私钥由开发者自行妥善保管。

修改后的custom genesis.json如下:

{
  "config": {
    "chainId": 12345,
    "homesteadBlock": 0,
    "eip150Block": 0,
    "eip155Block": 0,
    "eip158Block": 0,
    "byzantiumBlock": 0,
    "constantinopleBlock": 0,
    "petersburgBlock": 0,
    "istanbulBlock": 0,
    "berlinBlock": 0,
    "londonBlock": 0,
    "mergeNetsplitBlock": 0,
    "ethash": {}
  },
  "alloc": {
    "0x742d35Cc6634C0532925a3b844Bc454e4438f44e": {
      "balance": "0x2386f26fc10000" // 10000 ETH in wei (1 ETH = 1e18 wei)
    },
    "0x8ba1f109551bD432803012645Hac136c6Ee8a3e5": {
      "balance": "0x47b760e00000000" // 20000 ETH in wei
    }
  },
  "coinbase": "0x0000000000000000000000000000000000000000",
  "difficulty": "0x40000",
  "extraData": "",
  "gasLimit": "0xffffffff",
  "nonce": "0x0000000000000042",
  "mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
  "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
  "timestamp": "0x00"
}

初始化并启动私链

打开终端,执行以下命令初始化私链:

geth --datadir "./my_private_chain" init custom genesis.json
  • --datadir 指定了链数据的存储目录。

启动私链节点:

geth --datadir "./my_private_chain" --networkid 12345 --nodiscover --console
  • --networkid 必须与genesis.json中的chainId一致。
  • --nodiscover 防止节点被公网发现,保持私有。
  • --console 启动后自动进入JavaScript控制台,方便交互。

在控制台中管理预置账号

启动成功后,您会进入Geth控制台,我们可以使用预置账号的私钥来解锁账号并进行操作。

  • 导入账号(使用私钥):

    personal.importRawKey("0x1234567890123456789012345678901234567890123456789012345678901234", "password1")

    这里的"password1"是为该账号设置的密码,您可以根据需要设定,导入成功后会返回账号地址,确认与alloc中的一致。

    对第二个账号执行相同操作:

    personal.importRawKey("0x5678901234567890123456789012345678901234567890123456789012345678", "password2")
  • 解锁账号: 在进行交易前,需要解锁账号:

本文来自用户投稿,不代表币大大立场,如若转载,请注明出处:https://czxurui.com/jys/317954.html

上一篇 2026年09月20日
下一篇 2026年09月20日

相关推荐

  • 以太坊对人民币最新价格,波动中的机遇与挑战

    以太坊对人民币最新价格,波动中的机遇与挑战 以太坊(ETH)作为全球第二大加密货币,其与人民币(CNY)的汇率动态一直是市场关注的焦点,截至2024年10月,以太坊对人民币价格呈现震荡上行趋势,最新价格约为1.2万-1.3万元人民币/枚(具体价格实时变动,受交易所与市场行情影

    2026-09-29 17:30:02
    1 0
  • 以太坊合并后显卡价格,从矿卡退潮到消费级市场的理性回归

    以太坊合并后显卡价格,从矿卡退潮到消费级市场的理性回归 2022年9月,以太坊完成“合并”(The Merge),从工作量证明(PoW)转向权益证明(PoS),标志着“挖矿时代”的终结,这一事件曾让全球显卡市场迎来剧烈震荡,尤其是价格走势,成为玩家与行业关注的焦点。 合并前:显

    2026-09-29 17:30:02
    1 0
  • 以太坊的缔造者,Vitalik Buterin 与他的去中心化愿景_2

    以太坊的缔造者,Vitalik Buterin 与他的去中心化愿景 在加密货币和区块链领域,如果说比特币是“数字黄金”的启蒙者,那么以太坊(Ethereum)则是“世界计算机”的开拓者,作为全球第二大加密货币平台和智能合约的先驱,以太坊的诞生不仅重塑了区块链的应用边界,更催生了De

    2026-09-29 17:30:02
    1 0
  • 当社交巨头遇上区块链,马克·扎克伯格与以太坊的潜在交集与未来展望

    当社交巨头遇上区块链,马克扎克伯格与以太坊的潜在交集与未来展望 马克扎克伯格,作为Meta(前Facebook)公司的掌舵人,一直是全球科技界的焦点人物,以其对社交媒体、虚拟现实(VR)和增强现实(AR)的深刻影响而闻名,而以太坊,作为第二大加密货币和领先的智能合约平台,

    2026-09-29 17:30:02
    2 0
  • 以太坊与比特币,谁更好看?一场关于价值、生态与未来的视觉盛宴

    以太坊与比特币,谁更好看?一场关于价值、生态与未来的视觉盛宴 当人们讨论“以太坊和比特币哪个好看”时,或许有人会笑:加密货币是代码与算法的产物,何来“好看”一说?但若将“好看”定义为视觉设计的独特性、生态系统的丰富性、应用场景的多样性,以及未来想象力的延展

    2026-09-29 17:30:02
    2 0
  • 以太坊今天行情价格多少?最新动态与市场分析

    以太坊今天行情价格多少?最新动态与市场分析 截至当前,以太坊(ETH)的价格行情受多重因素影响,呈现动态波动态势,根据最新市场数据(以发稿前实时行情为准),以太坊价格约在 $3,200-$3,300美元区间震荡,具体价格因交易所和报价平台略有差异,24小时涨跌幅在2%以内,整体

    2026-09-29 16:30:01
    3 0

发表回复

8206

评论列表(0条)

    暂无评论

binance币安交易所
已有2000万用户加入币安交易所

立即下载