探索以太坊私有网络:eth-private-net
项目简介
eth-private-net
是一个直观的工具,它使您能够在个人计算机上快速设置一个本地运行的三个节点的以太坊私有网络。该工具简化了初始化、启动和连接节点的过程,内置了三个预设身份(Alice、Bob 和 Lily),并提供教程,引导您完成简单的操作,如挖矿和转账以太币,以及部署和执行简单的智能合约——FreeBeer
。
这个项目源于作者对以太坊工具复杂性的困扰,他发现许多信息分布在不同文档中,缺乏一个聚合点来集中展示最有教育意义的例子,帮助理解和实验构建、部署和运行智能合约。此外,它还允许您反复从已知干净状态重置网络,以供实验之用。
技术剖析
要使用 eth-private-net
,确保已经安装了 geth
并将其添加到 $PATH
中。geth
是一个 Go 语言实现的以太坊协议,并提供了与以太坊网络交互的命令行工具。您可以下载预编译二进制文件或按照安装指南从 Homebrew 或源代码进行安装。
在以太坊网络中,基础货币单位是以太币,但大多数操作只需要以太币的很小一部分,因此我们会提及各种以太币的小额单位(如 Wei、GWei、Szabo 等)。
身份与初始化
私有网络带有三个预先配置的身份,每个都用 foobar123
密码保护:
- Alice:
0xdda6ef2ff259928c561b2d30f0cad2c2736ce8b6
- Bob:
0x8691bf25ce4a56b15c1f99c944dc948269031801
- Lily:
0xb1b6a66a410edc72473d92decb3772bad863e243
每个用户的标识存储在 ./[NAME]/keystore/UTC-...
。
从创世区块初始化网络只需运行 ./eth-private-net init
。如果你想重置所有账户余额,可以运行 ./eth-private-net clean
。
运行私有测试网络
通过 start
命令轻松启动 alice
、bob
或 lily
的节点:
→ ./eth-private-net start alice
这将启动一个以太坊节点,加载指定的身份,并打开一个控制台,让您开始与私有网络互动。控制台是一个 JavaScript 的 REPL,预装了与以太坊交互所需的所有命令。
矿工与交易
您可以检查任何用户的余额,例如 Alice:
# 作为 alice:
> eth.getBalance("0xdda6ef2ff259928c561b2d30f0cad2c2736ce8b6")
1000000000000000000
通过 admin.nodeInfo.enode
获取 Alice 的节点唯一标识,然后使用 admin.addPeer
将 Bob 的节点连接到 Alice。
智能合约与应用
利用控制台,您甚至可以开始挖掘,通过执行 miner.start()
开始挖掘,并通过 eth.getBalance(eth.coinbase)
查看采矿收益。接下来,尝试转账,解锁账户并发送交易:
# 作为 alice:
> personal.unlockAccount(eth.coinbase)
> txn = eth.sendTransaction({ from: alice, to: lily, value: web3.toWei(1, "szabo") })
这样就完成了向 Lily 账户转账 1 个 Szabo 的过程,Alice 需支付一笔交易费用给矿工 Bob。
项目特点
- 快速设置:一键式私有网络初始化。
- 容易理解:清晰的教程引导,适合初学者。
- 可复用性:易于重置网络至初始状态。
- 实战体验:涵盖挖矿、转账、智能合约等核心功能。
无论您是开发者、教育者还是区块链爱好者,eth-private-net
都是一个理想的起点,为您提供了一个安全且可控的环境,探索以太坊的世界。现在就开始您的以太坊之旅吧!