Files
bitmessage/README.ru-RU.md
T
bitdeals git user 335ee52c0d
Build docker image and push to registry.bitdeals.org / main-build-job (push) Successful in 27s
docs: Russian README, cross-linked, with the examples fixed
Same pairing the bitdeals-ng repositories use: each file points at the
other under its first heading, and both examples are byte-identical across
the two so they cannot drift.

The examples were not safe to copy. They published the API on every
interface next to the default credentials it documents, carried no volume
-- so keys.dat, the node's Bitmessage identity, was lost on every image
update -- and the docker run one was missing a line continuation and did
not run at all. Ports are now on loopback, the volume is there, and the
run was checked verbatim on a host.

Also: stopresendingafterxdays is documented as 30, which is what run.sh
actually defaults to, not 60; the seed phrase is noted as regenerated per
start; and a short Notes section records what cost time to find out -- '%'
is unusable in the API password, clients have to percent-encode
credentials, and the health check waits for a network connection.
2026-08-02 13:52:05 +00:00

4.9 KiB

Общие сведения

English version: README.md

PyBitmessage — клиент P2P-протокола обмена сообщениями Bitmessage, служащий для отправки шифрованных сообщений как одному адресату, так и множеству подписчиков.

Клиент PyBitmessage, работающий демоном в docker-контейнере с включённым XML-RPC API.

Репозиторий описывает только развёртывание в docker.

Использование

Контейнер создаёт детерминированные адреса Bitmessage на основе переменной BITMESSAGE_SEED_PHRASE.

Ниже — примеры, с которых удобно начать создание контейнера.

XML-RPC API полностью управляет демоном и не имеет TLS. Задайте свои учётные данные и оставьте порт на loopback.

docker-compose

services:
  pybitmessage:
    build:
      context: https://git.bitdeals.org/private/bitmessage.git
      dockerfile: ./docker/Dockerfile
    image: registry.bitdeals.org/bitmessage
    environment:
      - BITMESSAGE_API_USER=CHANGE_ME
      - BITMESSAGE_API_PASSWORD=CHANGE_ME
      - BITMESSAGE_SEED_PHRASE=bitmessage_seed_phrase
      - BITMESSAGE_SEED_ADDRESSES=1
      - BITMESSAGE_TTL=172800
      - BITMESSAGE_STOPRESENDINGAFTERXDAYS=60
    ports:
      - 127.0.0.1:8442:8442
    volumes:
      - bitmessage:/home/bitmessage

volumes:
  bitmessage:

docker cli

docker run -d \
  -e BITMESSAGE_API_USER=CHANGE_ME \
  -e BITMESSAGE_API_PASSWORD=CHANGE_ME \
  -e BITMESSAGE_SEED_PHRASE=bitmessage_seed_phrase \
  -e BITMESSAGE_SEED_ADDRESSES=1 \
  -e BITMESSAGE_TTL=172800 \
  -e BITMESSAGE_STOPRESENDINGAFTERXDAYS=60 \
  -p 127.0.0.1:8442:8442 \
  -v bitmessage:/home/bitmessage \
  registry.bitdeals.org/bitmessage

Параметры

Образы контейнера настраиваются параметрами, передаваемыми при запуске.

Параметр Назначение
-p 127.0.0.1:8442 Порт API. Внутри контейнера демон всегда слушает 0.0.0.0, поэтому доступность определяет то, что опубликовано
-v /home/bitmessage Каталог данных: keys.dat (личность, настройки) и messages.dat. Без него после каждого обновления это новый узел
-e BITMESSAGE_API_USER Пользователь XML-RPC API. По умолчанию: bitmessage_api_user — измените
-e BITMESSAGE_API_PASSWORD Пароль XML-RPC API. По умолчанию: bitmessage_api_password — измените, см. «Замечания»
-e BITMESSAGE_SEED_PHRASE Парольная фраза для создания детерминированных адресов. По умолчанию: генерируется заново при каждом старте, то есть адреса каждый раз другие. Используется только при BITMESSAGE_SEED_ADDRESSES больше 0
-e BITMESSAGE_SEED_ADDRESSES Количество создаваемых детерминированных адресов. По умолчанию: 0
-e BITMESSAGE_TTL Срок жизни вновь отправляемых сообщений, в секундах. По умолчанию: 172800
-e BITMESSAGE_STOPRESENDINGAFTERXDAYS Прекратить повторную отправку недоставленного сообщения через X дней. По умолчанию: 30
-e BITMESSAGE_APIVARIANT Предоставляемый API: xml или json-RPC. По умолчанию: legacy

Замечания

  • % в пароле API использовать нельзя: он ломает собственный чтец конфигурации PyBitmessage, и любой вызов API отвечает 500, притом что keys.dat выглядит правильным. Остальные символы допустимы, контейнер их экранирует.
  • Клиенты обязаны кодировать учётные данные — они попадают в http://user:password@host:port/, где @, #, / и : меняют разбор URL. Скрипты этого образа кодируют, ваш клиент должен тоже.
  • Контейнер становится здоровым, когда у демона появилось сетевое соединение, — на новом узле это несколько минут. Начальный период ожидания заодно покрывает стартовый VACUUM файла messages.dat.