在去中心化的世界里,拥有一个完全由自己掌控的以太坊钱包和节点,是深入理解区块链、参与DApp(去中心化应用)以及确保数据主权的关键一步,相比于依赖第三方服务(如MetaMask连接Infura),自己搭建节点能提供更高的安全性、隐私性和数据完整性,本文将为您提供一份详尽的指南,带您一步步完成以太坊钱包与节点的本地部署与搭建。

在动手之前,我们首先要明确两个核心概念:
以太坊钱包 (Ethereum Wallet):
以太坊节点 (Ethereum Node):
关键关系:钱包和节点是分离的,钱包生成和管理您的私钥,而节点负责与以太坊网络通信,您可以:
在开始搭建前,请确保您的环境满足要求:
硬件:
软件:

Geth是以太坊最主流的Go语言客户端之一,功能强大,社区支持完善,我们将以搭建一个全节点为例。
打开您的终端,根据您的操作系统执行以下命令:
对于Ubuntu/Debian系统:

# 安装必要的依赖 sudo apt install -y software-properties-common # 添加以太坊PPA源 sudo add-apt-repository -y ppa:ethereum/ethereum # 再次更新列表并安装geth sudo apt update sudo apt install -y ethereum
对于macOS系统(使用Homebrew):
# 如果尚未安装Homebrew,请先安装 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" # 安装geth brew install ethereum
安装完成后,可以通过 geth version 命令验证是否安装成功。
这是最漫长的一步,您的节点将开始从创世块下载并同步整个以太坊区块链,首次同步可能需要数天甚至数周,具体取决于您的网络和硬件速度。
在终端中,执行以下命令来启动Geth节点:
geth --http --http.addr "0.0.0.0" --http.port "8545" --http.api "eth,net,web3,personal" --syncmode "full" --gcmode "full"
命令参数解析:
--http:启用HTTP-RPC服务,允许钱包和其他应用连接到此节点。--http.addr "0.0.0.0":允许任何IP地址访问此HTTP服务(安全起见,您也可以限制为 0.0.1,仅本地访问)。--http.port "8545":设置HTTP-RPC服务的端口号。--http-api "eth,net,web3,personal":指定开放的API接口。--syncmode "full":设置为全节点同步模式。--gcmode "full":设置为全节点垃圾回收模式,保留所有历史数据。启动后,您会看到终端不断输出同步进度信息,包括同步的区块号、速度和预计剩余时间。请保持终端开启并确保网络稳定,直到同步完成。
您可以通过Geth自带的JavaScript控制台来管理您的节点,打开一个新的终端窗口,输入:
geth attach http://127.0.0.1:8545
进入控制台后,您可以使用以下命令:
eth.blockNumber:查看当前同步到的最高区块号。web3.clientVersion:查看Geth客户端版本。eth.syncing:检查同步状态,如果返回 false,表示同步已完成。在Geth控制台中,您可以创建一个全新的钱包账户,这个账户将直接存储在您的本地节点上,由您完全掌控。
// 在geth控制台中执行
personal.newAccount("请设置一个非常强壮的密码")
执行后,控制台会返回一个以 0x 开头的字符串,这就是您的新账户地址。请务必安全地记录下您的地址和密码!
您已经拥有了一个运行中的本地节点和一个本地账户,我们将配置一个钱包(以MetaMask为例)来连接它。
personal.exportPrivateKey("您的账户地址") 将返回的私钥复制到MetaMask的导入框中,并设置账户名称。
My Local Node。http://127.0.0.1:8545。1(以太坊主网的链ID)。ETH。