【求助】搭建私有链并开始挖矿出现OOM。内存一直增长直到杀geth进程
发布于 2 个月前 作者 hyunwoo222 30322 次浏览 来自 新手入门

搭建以太坊私有链

Dockerfile
-----------------------------------
FROM ubuntu

LABEL version="1.0"
LABEL maintainer="test@outlook.com"

ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install --yes software-properties-common
RUN add-apt-repository ppa:ethereum/ethereum
RUN apt-get update && apt-get install --yes geth

COPY genesis.json /home/root/genesis.json
RUN chown -R root:root /home/root/genesis.json

USER root
WORKDIR /home/root
ENTRYPOINT bash
-----------------------------------

- 构建Docker镜像
docker build -t eth_node .
- 启动Docker镜像
docker run --rm  -it -p 8546:8545  -v /eth/data/node1:/home/root --name eth_dev_node1 eth_node
- 进入/eth/data/node1/ 创建 genesis.json 创世纪
``
{
  "alloc": {
  },
  "config": {
    "chainId": 1800,
    "homesteadBlock": 0,
    "eip155Block": 0,
    "eip158Block": 0
  },
  "nonce": "0x000000000000002a",
  "difficulty": "0x002000",
  "mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
  "coinbase": "0x0000000000000000000000000000000000000000",
  "timestamp": "0x00",
  "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
  "extraData": "0x",
  "gasLimit": "0x2fefd8"
}
  • 进入节点 docker exec -it {cointainerId} /bin/bash

  • geth   版本 geth version 1.8.12-stable

  • 初始化 geth --datadir /home/root/ init genesis.json

  • 启动命令 nohup geth --datadir /home/root/ --identity “NODE_1” --gcmode archive --rpc --rpccorsdomain “*” --networkid=1800 --rpc --rpcaddr 0.0.0.0 --rpcport “8545” --port “30303” --rpcapi “db,eth,net,web3,admin,personal,miner” --nodiscover --cache 16 &

  • 进入geth geth attach geth.ipc

  • 创建账号 personal.newAccount(“123456”)

  • 启动挖矿 miner.start(1)

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

7 回复

可以试试设置swap交换分区

@manxiaqu 谢谢~ 我机器16G的内存也启动后挖矿一段时间后内存爆。创世纪配置和启动命令是没有问题吧?

@hyunwoo222 --cache 16 是使用16MB, 之前我碰到过一次这个问题(未设置swap分区的主机),网上查了下,可能是没有swap引起的,虽然在我设置过后也出现过这个问题,但是基本是正常的。

@manxiaqu Thank you~ 我试试

在docker启动的端口8546上链接其他节点过,现在端口号修改后重新启动就可以了,或许同步节点异常导致内存爆。

不要用POW,用POA

@maiiz 嗯 下一步研究研究,有POA方面比较好的资料吗?

回到顶部