В продолжение предыдущего поста о DEXBot на Golos, более подробнее о технической стороне вопроса и нюансах.
Для аудита стоит обратить внимание на репозитарии:
- бот (https://github.com/golos-blockchain/dexbot)
- адаптер (https://github.com/golos-blockchain/graphene-golos)
- библиотека (https://github.com/golos-blockchain/python-bitshares)
в forked from
указаны репо для сравнения до-после доработки
Если тестировать бота вам удобнее на "фантиках" в тестовой сети (нода apibeta.golos.today
и пр.), нужно сбросить ключи напр. с https://devwallet.golos.today в интересуемом аккаунте. Потому что у десятков тысяч аккаунтов в тестовой сети одинаковые ключи, их проверка занимает много времени, возникает ошибка.
Пример запуска в тестовой сети
Создание папок
mkdir ~/test-dexbot-data ~/test-dexbot-config ~/test-dexbot-data/bitshares ~/test-dexbot-data/dexbot &&
touch ~/test-dexbot-data/dexbot/history.csv &&
chmod -R 777 ~/test-dexbot-data/ ~/test-dexbot-config/
Запуск настройки
sudo docker run -it --rm -v ~/test-dexbot-config:/home/dexbot/.config/dexbot -v ~/test-dexbot-data:/home/dexbot/.local/share golosblockchain/dexbot:test dexbot-cli configure
Вводите пароль для шифрования ключей в хранилище бота. Далее открывается окно CLI-интерфейса и приступаете к добавлению вашего первого воркера/аккаунта к нему/стратегии...
Запуск бота
sudo docker run -d --name test-dexbot -e UNLOCK=1234 -v ~/test-dexbot-config:/home/dexbot/.config/dexbot -v ~/test-dexbot-data:/home/dexbot/.local/share golosblockchain/dexbot:test dexbot-cli run &&
sudo docker logs --tail 50 -f test-dexbot
В параметре UNLOCK
пароль, заданный в шаге ранее.
Остановка бота
sudo docker stop test-dexbot &&
sudo docker rm test-dexbot
Смена параметров в дальнейшем возможна и через редактирование файла
sudo nano ~/test-dexbot-config/config.yml
далее Ctrl+O, подтверждаем Enter, выходим Ctrl+X
и перезапускаем бота...
Своя нода и хотите свой адаптер?
Копируете репозиторий адаптера
git clone https://github.com/golos-blockchain/graphene-golos
Редактируете файл graphene-golos/config/default.json
меняя адрес ноды на свою, если локальная, например ws://127.0.0.1:8094 (поддерживается только WebSocket, поскольку бот использует каллбеки, которые на HTTPS работают ненадежно).
Запустить, скачаются образы (можно закомментировать параметр image
в graphene-golos/docker-compose.yml и образы соберутся локально)
cd graphene-golos
sudo docker compose up
По окончанию, появиться строчка Listening 3001
После чего запустить бот, как это было описано в посте, добавив адрес вашего адаптера (оно же ноды ADD_NODE
) в списке через CLI-интерфейс
либо отредактировать файл конфигурации бота
sudo nano ~/golos-dexbot-config/config.yml
далее Ctrl+O, подтверждаем Enter, выходим Ctrl+X
и перезапускаем бота...
На этом, бот + адаптер + нода = всё в ваших руках :)
При желании объединить в единый компоуз-файл для запуска.
Локальная нода может быть указана дополнительной к основной, и в зависимости от латенси автоматически использоваться как наиболее шустрая...