以太坊开发环境

1. 测试网络

可以使用以下命令将以太坊的 Go 语言客户端 Geth 连接到测试网络

bash 复制代码
[admin@daolian ~]$geth --testnet

下图显示了示例输出,该图显示了所选网络的类型以及有关区块链下载的其他各种信息。

Geth 客户端的下载地址如下:

https://geth.ethereum.org

用于测试网络的区块链浏览器可从以下网址获得:

https://ropsten.etherscan.io

该浏览器可用于跟踪以太坊测试网络中的交易和区块。

此外,也有其他测试网络可用,如 Frontier、Morden、Ropsten 和 Rinkeby。可以向 Geth 发出命令行标志以连接到所需的网络:

2. 建立以太坊私有网络

私有网络允许创建一个全新的区块链,这与测试网络或主网都有所不同,因为它使用了自己的创世块和网络 ID。为了创建私有网络,需要 3 个组件:

  • 网络 ID
  • 创世文件
  • 存储区块链数据的数据目录。虽然对数据目录并未做严格的要求,但是如果系统上已经有多个处于活动状态的区块链,则应指定数据目录,以便将单独的目录用于新的区块链。

在主网上,以太坊 Geth 客户端默认情况下能够发现引导节点(Boot Node),因为它们在 Geth 客户端中被硬编码并自动连接;但是在私有网络上,需要通过指定适当的标志和配置来设置 Geth,以便它能够被其他对等方发现或能够发现其他对等方。

除了上面提到的 3 个组件,最好还要禁用节点发现(Node Discovery) ,以使互联网上的其他节点无法发现你的私有网络,这样它就是安全的。如果其他网络恰好具有相同的创世文件和网络 ID,则它们可能会连接到你的私有网络。具有相同网络 ID 和创世区块的机会非常少,尽管如此,还是建议禁用节点发现功能。

2.1 网络 ID

网络 ID 可以是 1 和 3 以外的任何正数,因为 1 和 3 已经分别被以太坊主网和测试网使用。在下面的示例中,为私有网络选择的网络 ID 是 786。

2.2 创世文件

创世文件(Genesis File) 包含自定义创世区块所需的必要字段,这是网络中的第一个区块,并且不指向任何先前的区块。以太坊协议将执行检查以确保互联网上没有其他节点可以参与共识机制,除非它们具有相同的创世区块。网络 ID 通常用作网络的标识。

以下显示了一个自定义的创世文件,该文件在后面的示例中会用到:

2.3 数据目录

这是用于保存以太坊网络的区块链数据的目录。例如,在下面的示例中,该目录是~/etherprivate/。

在 Geth 客户端中,还指定了许多参数以启动(或进一步微调配置) 私有网络。

2.5 静态节点

如果需要连接到一组特定的对等方,则可以将这些节点添加到保存 chaindata 和 keystore 文件的文件夹。

  1. 启动私有网络

启动私有网络的初始命令如下所示:

这将产生如下图所示的输出:

如下图所示,这将为正在运行的私有网络会话打开交互式 JavaScript 控制台。

挖矿开始后,将首次生成有向非循环图(Directed Acyclic Graph,DAG),并产生类似于下图所示的输出

一旦 DAG 生成完毕,即可开始挖矿,Geth 将产生类似于下图所示的输出。在这里可以清楚地看到 Mined 5 blocks back...(已开采 5 个区块)这类的消息。

查看可用对象列表有一个通用技巧,那就是依次按下键盘上的空格键两次和 Tab 键两次。这样将显示可用对象的完整列表,如下图所示:

此外,输入命令后,可以通过按下两次 tab 键自动完成命令。如果按下两次 Tab 键,则还会显示可用方法的列表,如下图所示:

除了上面提到的命令外,为了获得对象可用方法的列表,在输入命令后,还可以输入分号(;)。下图就是一个示例,它显示了适用于 net 的所有方法的列表。

3.1 在私有网络上运行 Mist

该消息如下图所示

这将允许连接到正在运行的私有网络 Geth 会话,并提供所有功能,例如通过 Mist 在私有网络上进行钱包、帐户管理和合约部署等操作,如下图所示:

一旦启动以太坊 Mist 浏览器,它将显示如下图所示的界面,以红底白字明确表示它正在 PRIVATE-NET (私有网络) 模式下运行。

3.2 使用 Mist 部署合约

然后单击屏幕底部的 Deploy (部署)按钮即可。

Mist 将向你询问帐户密码,并显示一个如下图所示的窗口。

输入帐户密码,然后单击 SEND TRANSACTION (发送交易)以部署合约。

合约可用后,可以通过 Mist 使用可用的函数进行交互。这些函数显示在右侧下拉列表中,如下图所示:

这将导致调用选定的合约函数。

下图显示了此过程

相关推荐
dingzd959 小时前
结合指纹防护技术,释放Web3去中心化的潜力
web3·去中心化·区块链·facebook·tiktok·instagram·clonbrowser
OEC小胖胖9 小时前
去中心化身份:2025年Web3身份验证系统开发实践
前端·web3·去中心化·区块链
长安链开源社区10 天前
长安链浏览器「数据看板」 高效洞察数据状态与趋势
web3·区块链·共识算法
MicroTech202510 天前
微算法科技(NASDAQ:MLGO)研发可信共识算法TCA,解决区块链微服务中的数据一致性与安全挑战
运维·算法·区块链·共识算法
闲坐含香咀翠10 天前
Hyperledger Fabric 联盟链网络实操部署指南(二)
区块链
闲坐含香咀翠10 天前
Hyperledger Fabric 联盟链网络实操部署指南(一)
区块链
闲坐含香咀翠10 天前
Fabric联盟链框架开发学习路线指南
区块链
Listennnn10 天前
稳定币是什么、为什么会出现
区块链
代码羊羊11 天前
Solidity内部合约创建全解析:解锁Web3开发新姿势
web3·区块链
白总Server11 天前
轻量化分布式AGI架构:基于区块链构建终端神经元节点的互联网智脑
分布式·microsoft·中间件·架构·区块链·github·agi