从geth切换到parity遇到的那些坑

本文介绍了从geth切换到parity时遇到的问题,包括目录结构变化、私网搭建方法以及账户解锁的挑战。在parity中,通过调整目录结构的软链接、使用instant_seal.json配置文件来搭建私网,并详细阐述了如何解决账户永久解锁问题,包括使用`personal_sendTransaction`代替`eth_sendTransaction`,以及通过命令行选项实现解锁。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近需要搭建以太坊全节点,刚开始用的是geth,同步了1整天发现最新的70~80个块总是同步不下来,网上一查很多人遇到过这个问题,据说跟SSD的读写速度有关,无奈之下只能放弃,改用parity。
parity是一个和geth类似的以太坊客户端程序,由以太坊黄皮书作者Gavin Woods领导,采用Rust语言编写。试用了一下体验还是挺棒的,同步Ropsten的数据只需要几个小时的时间。但是,parity毕竟和geth还是有很大区别的,首先一点数据的目录结构和存储方式是不同的,另外某些RPC的调用方式也有些差异,踩了一些坑,记录下来希望对后来人有点帮助。

1.目录结构

parity中所有可用的链参考下面的链接:
https://wiki.parity.io/Chain-specification
在使用geth的时候同步主网跟Ropsten测试网一般用下面的命令:

geth --datadir ./gethData
geth --testnet --datadir ./gethData

对应的parity命令如下:

parity --base-path=./parityData
parity --chain ropsten --base-path=./parityData

我们来看一下生成的parityData的目录结构:
├── cache
├── chains
│ ├── ropsten
│ │ ├── db
│ └── ver.lock
├── jsonrpc.ipc
├── keys
│ └── ropsten
│ └── address_book.json
└── network
└── key
可以发现,原先geth里的keystore变成了keys/,geth.ipc变成了jsonrpc.ipc,另外数据库也已动到了chains//db中。因此为了保证以前使用geth的程序能正常工作,最简单的办法就是创建2个软链接:

<
### 如何切换并安装不同版本的 Geth 客户端 为了在 Ubuntu 上切换和安装不同版本的 Geth 客户端,可以按照以下方法操作: #### 使用 Git 版本标签来指定特定版本 当通过源码编译 Geth 时,可以通过 Git 的 `checkout` 命令切换到所需的版本标签。例如要安装 v1.9.24 版本,则先克隆仓库再切换分支。 ```bash git clone https://github.com/ethereum/go-ethereum.git cd go-ethereum git checkout tags/v1.9.24 -b version_1.9.24 make geth ``` 上述命令会创建一个新的本地分支名为 `version_1.9.24` 并指向标记为 `v1.9.24` 的提交位置[^1]。 #### 更新已有的 Geth 至最新稳定版或其他具体版本 如果已经有一个旧版本的 Geth,在更新之前建议备份现有的数据文件夹以防万一。接着拉取最新的更改并重置工作树至目标版本。 ```bash cd /path/to/existing/go-ethereum git fetch origin git reset --hard origin/master # 或者 git checkout <specific_version> make clean all ``` 此过程确保了项目处于期望的状态并且清理掉之前的构建产物以便重新编译新版本[^4]。 #### 配置环境变量使新版本生效 无论何时完成新的 Geth 构建之后都需要设置好路径让系统能够找到它。假设构建输出位于 `/home/user/go-ethereum/build/bin` 下面的话应该这样做: ```bash export PATH=$PATH:/home/user/go-ethereum/build/bin source ~/.profile # 如果是在 .bashrc 或其他地方设置了这个变量则相应调整此处加载方式 ``` 这样就可以全局范围内使用刚编译出来的那个版本了[^5]。 #### 测试安装是否成功 最后一步总是验证一下安装成果,运行帮助选项看看能否正常打印出来即表示大功告成。 ```bash geth help ``` 如果有任何错误提示,请确认前面每步都正确无误地完成了;另外也可以尝试加上 sudo 权限再次尝试[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值