kekoser, 8 октября 2026 - 22:19 Naganbot – бот для русской рулетки с проверяемой случайностью от drand |
Naganbot – это открытый бот, реализующий игру в русскую рулетку. Проект размещён на GitHub и распространяется под открытой лицензией.
Для начала необходимо подготовить файл переменных окружения. Скопируйте шаблон .env.dist в .env и отредактируйте параметры в соответствии с вашей инфраструктурой:
cp .env.dist .env
Описание каждой переменной содержится в комментариях внутри файла.
Дальше следует собрать или загрузить готовые Docker‑образы. Для этого доступны два make‑скрипта:
make container-build – собрать образ из исходного кода.make container-pull – скачать готовый образ из реестра.Для генерации исходных случайных данных Naganbot использует drand – децентрализованный публичный рандом‑бейкон, поддерживаемый Cloudflare, Protocol Labs и другими участниками. Бот обращается к сети quicknet, где новые раунды публикуются каждые 3 секунды.
Полученный от drand случайный набор байтов подписан криптографически. После получения бот формирует хеш SHA‑256, объединяя полученный набор с идентификатором игры (game_id), и использует полученный хеш для определения исхода:
hash[0:4]) берутся как 32‑битное целое число, берётся остаток от деления на 100. Если результат меньше 3, тип пули считается атомной, иначе – свинцовой.hash[4:12]) интерпретируются как 64‑битное целое, берётся остаток от деления на количество игроков N. Полученный индекс определяет жертву, за исключением атомной пули, при которой все игроки «умирают».Для каждой партии сохраняется ссылка на использованный drand‑бейн, которую можно открыть через эндпоинт /ngjoined.
После завершения игры в ответе от /ngjoined отображается ссылка‑доказательство. Чтобы вручную убедиться в корректности результата, выполните следующие шаги:
randomness) и параметр game[id].randomness из hex в массив байтов.randomness_bytes + game_id_string.%100 → тип пули, байты 4‑12 → %N → индекс жертвы.Поскольку значение случайности генерируется сетью drand до отправки запроса боту, сам бот не может изменить результат игры.
Для запуска готовой конфигурации достаточно выполнить команду:
make start
Эта команда поднимет необходимые контейнеры, и бот начнёт обслуживать запросы.
Naganbot сочетает простую игру в русскую рулетку с публично‑проверяемой случайностью, что позволяет пользователям убедиться в честности результата без дополнительного доверия к серверу.
Источник: GitHub - taranovegor/naganbot: Try your luck at Russian roulette
0 Обсудить → |
Добавить комментарий
Если нужно ответить кому-то конкретно,
лучше нажать на «Ответить» под его комментарием