Emercoin Docker
Docker compose образ для Emercoin core
Зачем это всё надо?
Docker позволяет создать изолированный контейнер с кошельком Emercoin внутри и отдельным хранилищем (volume: blockhain_data) для блокчейна. Это дает кроссплатформенность (можно запускать на любой ОС, где можно установить Docker), возможность обновлять версии кошелька Emercoin в "один клик". Использовать в своих проектах функционал кошелька через интерфейс RPC JSON.
На данный момент есть две версии:
- Core Fast Start — Для тех, кто не хочет долго ждать синхронизации блокчейна после установки (~3-4 часа). Удобно, но рекомендуется использовать только в ознакомительных целях, так-как предзакаченный блокчейн противоречит идеологии децентрализации.
- Core — классическая версия, просто кошелек Эмеркоина в контейнере. Требуется время для синхронизации с сетью.
Для старта с нуля:
Установить Git Установить Docker и docker-compose
Склонировать репозитарий и перейти в папку с проектом:
git clone https://github.com/emercoin/docker && cd docker
Запустить сборку контейнера с Emercoin:
для обычной версии Core
docker-compose up -d
для версии Core Fast Start:
docker-compose -f docker-compose-fs.yaml up -d
Контейнер запущен, требуется время, чтобы скачать блокчейн (~3-5 часов), но некоторые данные можно получить уже сейчас. По умолчанию для соединения с контейнером используется порт 6662
- адрес: 127.0.0.1
- пользователь: emcrpc
- пароль: emcpass
- метод: POST тело запроса пример {"method": "getinfo" }
Сменить пароль в контейнере:
docker-compose exec emc bash changepass.sh
docker-compose restart emc
Как проверить, что контейнер работает нормально?
Нужно отправить POST (с помощью Postman, например) по адресу http://emcrpc:[email protected]:6662
, тело запроса {"method": "getinfo" }
В Python:
import requests url = "emcrpc:[email protected]:6662" payload = "{\"method\": \"getinfo\" }" headers = { 'Content-Type': 'application/json' } response = requests.request("POST", url, headers=headers, data = payload) print(response.text.encode('utf8'))
В командной строке c помощью Curl: (sudo apt-get update && sudo apt-get install curl) - если Curl не установлен
curl --location --request POST 'emcrpc:[email protected]:6662' \ --header 'Content-Type: application/json' \ --data-raw '{"method": "getinfo" }'
если все ок, ответом будет выдача в формате JSON:
{ "result": { "fullversion": "v0.7.10emc", "version": 71000, "protocolversion": 70015, "walletversion": 130000, "balance": 0.000000,
Управление сборкой
Остановить контейнер:
docker-compose stop emc
Удалить контейнеры:
docker-compose down
При этом база блокчейна, wallet.dat и emercoin.conf не удаляется. Она остается в volume docker_emercoin_data.
Удалить базу блокчейна
docker volume rm docker_emercoin_data
Внимание! эта команда удаляет так-же wallet.dat