geth 如何在私有链导出私钥

我们在私链上通过geth生成账号地址后,会在你的私链存储位置生成 keystore 文件。如何获取你的账户地址对应的私钥呢?

 

1. 安装 keythereum 库

keythereum 是以太坊提供的用于生成、导入和导出key的js库。

源码地址:https://github.com/ethereumjs/keythereum

安装方法:

npm install keythereum

 

2. 导出私钥

调用 importFromFile recover 方法得到私钥:

function getPrivateKey(){
        var keythereum = require('keythereum');
        var fromkey = keythereum.importFromFile("账户地址", "私链datadir所在位置");
        //recover 输出为 buffer 类型的私钥
        var privateKey = keythereum.recover('该账户的密码', fromkey);
        console.log(privateKey.toString('hex'));
}

 

3. MetaMask导出私钥

导出私钥也可以使用 metamask 钱包导出。

先将对应 geth 节点的 keystore 中对应地址的 json 文件导入 metamask,创建一个账户。

然后利用 metamask 的私钥导出功能就可以得到结果。

 1. 参数说明ETHEREUM选项: --config value TOML 配置文件 --datadir "/home/user4/.ethereum" 数据库和keystor ...