docker-ethereum
Версия docker
docker version
Версия ethereum
docker run --rm -it ethereum/client-go version
Version: 1.8.18-unstable
Рабочий каталог
Я использую программирование на Golang, поэтому:
Каталог установлен в $GOPATH/src/github.com/ikaiguang/docker-ethereum Вы можете настроить рабочий каталог по своему усмотрению.
cd path/to/your_path
git clone https://github.com/ikaiguang/docker-ethereum.git
# work path
cd path/to/your_path/docker-ethereum
Сеть docker
docker network create --subnet 172.200.0.0/16 ethereum-node
Отдельный узел
# docker 网路
docker network create --subnet 172.200.0.0/16 ethereum-node
# 工作目录
cd $GOPATH/src/github.com/ikaiguang/docker-ethereum
# 节点目录
cd alone_node
# 启动
docker run -itd --restart=always \
--name ethereum-node \
--network ethereum-node --ip 172.200.0.30 \
-v $(pwd)/ethereum_conf:/ethereum_conf \
-v $(pwd)/ethereum_data:/ethereum_data \
-p "58545:18545" \
-p "58546:18546" \
-p "50303:10303" \
ethereum/client-go \
--datadir "/ethereum_data" \
--identity "node1" \
--nodiscover \
--dev --dev.period 1 \
--networkid 147852369 \
--ipcdisable \
--rpcport 18545 \
--wsport 18546 \
--port 10303 \
--verbosity 6 \
--rpc --rpcaddr "0.0.0.0" \
--rpccorsdomain "*" \
--rpcapi "eth,net,web3,rpc,admin,personal,clique,debug,miner,shh,txpool" \
console
# Автоматический майнинг: --dev --dev.period 1
# Ограничение rpc api опций: --rpcapi "db,eth,net,web3,personal,admin"
# modules: admin:1.0 clique:1.0 debug:1.0 eth:1.0 miner:1.0 net:1.0 personal:1.0 rpc:1.0 shh:1.0 txpool:1.0 web3:1.0
Прочее
# log
docker logs -f ethereum-node
# exec
docker exec -it ethereum-node /bin/sh
# restart
docker restart ethereum-node
# remove
docker rm -f ethereum-node
Операции с узлом
# Подключение к узлу
# В контейнере docker
geth attach http://127.0.0.1:18545
# На хост-машине
geth attach http://127.0.0.1:58545
# Другие примеры подключения
# geth attach ipc:<datadir>/geth.ipc
# geth attach ws://191.168.1.1:18546
# Идентификатор узла
admin.nodeInfo.enode
# Добавление узла
# admin.addPeer("enode://node_id@ip:port")
# (ifconfig); (ifconfig|grep netmask|awk '{print $2}'); (ip a)
admin.addPeer
# Информация об узле
net.listening
net.peerCount
admin.peers
# Аккаунт
eth.accounts
# Баланс
eth.getBalance
# Рабочий путь
cd $GOPATH/src/github.com/ikaiguang/docker-ethereum/cluster_node1
# Создание аккаунта 1
docker run --rm -it \
-v $(pwd)/ethereum_conf:/ethereum_conf \
-v $(pwd)/ethereum_data:/ethereum_data \
ethereum/client-go \
--datadir "/ethereum_data" \
account new
# Создание аккаунта 2
docker run --rm -it \
-v $(pwd)/ethereum_conf:/ethereum_conf \
-v $(pwd)/ethereum_data:/ethereum_data \
ethereum/client-go \
--datadir "/ethereum_data" \
account new
# Изменение alloc адреса в файле genesis.json в каталоге ethereum_conf для всех узлов на созданные два адреса
90e440e8b7bb0ccc780b614c75956d475cef16a3
7c6262d1b3d8db591bafa71b716e44b5b298c669
# Сеть docker
docker network create --subnet 172.200.0.0/16 ethereum-node
# Рабочий путь
cd $GOPATH/src/github.com/ikaiguang/docker-ethereum/cluster_node1
# Инициализация genesis.json
docker run --rm -it \
-v $(pwd)/ethereum_conf:/ethereum_conf \
-v $(pwd)/ethereum_data:/ethereum_data \
ethereum/client-go \
--datadir "/ethereum_data" \
init
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )