Документация
Поиск

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