Ethereum geth: недостаточно памяти

У меня часто возникала проблема утечки памяти при работе с узлом ethereum (Geth). Я не мог понять причину, проблема возникла в неопределенный момент времени. Сервер мог проработать неделю, а иногда и день ломался. Развиваемся в локальной сети: "chainId": 15

Мой genesis.json

{
"config": {
    "chainId": 15,
    "homesteadBlock": 0,
    "eip155Block": 0,
    "eip158Block": 0
},
"difficulty": "0x400",
"gasLimit": "0x2100000",
"alloc": {
    "7a69b359e86893efa3d9732e4c65ced51567edd0": 
     { "balance": "0x1337000000000000000000" }     
}}

На стороне сервера: 4 процессора / 8 ГБ памяти / Ubuntu 18.04 x64

Команда для запуска:

geth --rpcapi personal,web3,eth --mine --minerthreads 4 --rpccorsdomain '0.0.0.0:5000' --rpc --networkid 1999 --datadir ./ --rpcvhosts 127.0.0.1 --port 30304 --rpcport 8546 --rpcaddr 0.0.0.0

Go версии 1.11.1

Geth версии 1.8.17-stable-8bbe7207


person MrNinjamannn    schedule 08.11.2018    source источник


Ответы (1)


Я проверил совет: https://github.com/ethereum/go-ethereum/issues/16377#issuecomment-430642197

Могу сказать, что это сработало. Наш сервер работает стабильно 3 недели.

Мои действия:

1. Разрешить только определенный IP-адрес для открытого порта RPC на сервере, где установлен ваш узел:

$ iptables -A INPUT -p tcp --dport [rpc port] -s [ip who is using your node] -j ACCEPT

2. Измените параметры запуска:

$ geth --rpcapi personal,web3,eth --mine --minerthreads 2 --rpccorsdomain ['ip who is using your node:port'] --rpc --networkid 1999 --datadir ./ --rpcvhosts 127.0.0.1 --port 30304 --rpcport [rpc port] --rpcaddr [ip server where your node is installed]

3. для майнинга не рекомендую использовать все ядра процессора, пусть сервер дышит спокойно:

--mine --minerthreads 2

4. серверы с большой памятью стоят дороже, для внутренней сети должно хватить 2ГБ. Используйте файл SWAP:

как включить: https://www.digitalocean.com/community/tutorials/how-to-add-swap-space-on-ubuntu-18-04

Мой статус после последней ошибки:  введите описание изображения здесь

person MrNinjamannn    schedule 08.11.2018