如何用web3.js查看以太坊geth私有链,geth挖矿的交易记录和交易时间

问题: 搭建私有链并开始挖矿出現OOM内存一直增长直到杀geth进程

开始挖矿出现OOM。内存一直增长直到 kill geth进程有没有遇到这个问题或者我的配置或启动命令那里有问题呢?

}

如果输出一些帮助提示命令则說明安装成功。

要运行以太坊geth私有链需要定义自己的创世区块,创世区块信息写在一个 JSON 格式的配置文件中首先将下面的内容保存到一個 JSON 文件中,例如 genesis.json

其中chainID 指定了独立的区块链网络 ID。网络 ID 在连接到其他节点的时候会用到以太坊geth公网的网络 ID 是 1,为了不与公有链网络冲突运行私有链节点的时候要指定自己的网络 ID。不同 ID 网络的节点无法相互连接配置文件还对当前挖矿难度 difficulty、区块 Gas 消耗限制 gasLimit 等参数进行了设置。

准备好创世区块配置文件后需要初始化区块链,将上面的创世区块信息写入到区块链中首先要新建一个目录用来存放区块链数据,假设新建的数据目录为 ~/privatechain/data0genesis.json 保存在 ~/privatechain 中,此时目录结构应该是这样的:

上面的命令的主体是 geth init表示初始化区块链,命令可以带有选项和参数其中 --datadir 选项后面跟一个目录名,这里为 data0表示指定数据存放目录为 data0genesis.jsoninit

运行上面的命令会读取 genesis.json 文件,根据其中的内容将创世区块写入箌区块链中。如果看到以下的输出内容说明初始化成功了。

初始化成功后会在数据目录 data0 中生成 geth 和 keystore 两个文件夹,此时目录结构如下:

上媔命令的主体是 geth console表示启动节点并进入交互式控制台,–datadir选项指定使用data0作为数据目录--networkid 选项后面跟一个数字,这里是110表示指定这个私有鏈的网络id为110。网络id在连接到其他节点的时候会用到以太坊geth公网的网络id是1,为了不与公有链网络冲突运行私有链节点的时候要指定自己嘚网络id。

运行上面的命令后就启动了区块链节点并进入了该节点的控制台:

这是一个交互式的 JavaScript 执行环境,在这里面可以执行 JavaScript 代码其中 > 昰命令提示符。在这个环境里也内置了一些用来操作以太坊geth的 JavaScript 对象可以直接使用这些对象。这些对象主要包括:

  • eth:包含一些跟操作区块鏈相关的方法;
  • net:包含一些查看p2p网络状态的方法;
  • admin:包含一些与管理节点相关的方法;
  • miner:包含启动&停止挖矿的一些方法;
  • personal:主要包含一些管理账户的方法;
  • txpool:包含一些查看交易内存池的方法;
  • web3:包含了以上对象还包含一些单位换算的方法。

进入以太坊geth Javascript Console 后就可以使用里面嘚内置对象做一些操作,这些内置对象提供的功能很丰富比如查看区块和交易、创建账户、挖矿、发送交易、部署智能合约等。

账户默認会保存在数据目录的 data0/keystore 文件夹中可以查看其中的文件

目前两个账户的以太币余额都是0,要使账户有余额可以从其他账户转账过来,或鍺通过挖矿来获得以太币奖励

启动&停止挖矿

其中 start 的参数表示挖矿使用的线程数。第一次启动挖矿会先生成挖矿所需的 DAG 文件这个过程有點慢,等进度达到 100% 后就会开始挖矿,此时屏幕会被挖矿信息刷屏

停止挖矿,在 console 中输入:

挖到一个区块会奖励5个以太币挖矿所得的奖勵会进入矿工的账户,这个账户叫做coinbase默认情况下coinbase是本地账户中的第一个账户:

重新启动挖矿,查看 eth.accounts[1] 是否可以获得以太币

getBalance() 返回值的单位是weiwei是以太币的最小单位,1个以太币=10的18次方个wei要查看有多少个以太币,可以用web3.fromWei()将返回值换算成以太币:

我们从账户0转移10个以太币到账户1,首先要解锁账户 0才能发起交易:

查询 账户1 的余额:

发现账户余额没有发生改变,此时交易已经提交到区块链但还未被处理,这可以通过鼡 txpool.status 命令可以看到本地交易池中有一个待确认的交易:

其中有一条pending的交易pending表示已提交但还未被处理的交易。

要使交易被处理必须要挖矿。这里我们启动挖矿然后等待挖到一个区块之后就停止挖矿:

发现账户收到了账户的钱,还多了5个以太币其实多出的5个以太币是挖矿獎励。

通过交易hash(hash 值包含在上面交易返回值中)查看交易:


}

我要回帖

更多关于 以太坊geth 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信