Bitcoind демон в докере
Bitcoind демон в докере
С появлением докера необходимость в различных установочных скриптов и инструкций сошла на нет. Теперь для того, чтобы поднять свою биткойн ноду достаточно написать пару команд ну и конечно запустить докер хост.
Для запуска нам нужно сделать два действия:
- Создать volume, где будем хранить наши данные (блокчейн цепочки):
docker volume create --name=bitcoind-data
- Запустить сам docker image:
docker run -v bitcoind-data:/bitcoin --name=bitcoind-node -d \ -p 8333:8333 \ -p 127.0.0.1:8332:8332 \ kylemanna/bitcoindСмените порты 8333 и 8332 на свои значения.
Пример работы JSON-RPC для bitcoind.
Скрипт бекапа для Grafana dasboards
Скрипт бекапа для Grafana dasboards
Написал простой скрипт для автоматизации бекапов дашбоардов из графаны:
#!/bin/bash
WARN_COLOR='\x1b[33;01m'
NO_COLOR='\x1b[0m'
OK_COLOR='\x1b[32;01m'
set -e
echo -e ${WARN_COLOR}
echo "===> Initializing wizzy ..."
echo -e ${NO_COLOR}
wizzy init
echo -e ${WARN_COLOR}
echo "===> Setting environment variables ..."
echo -e ${NO_COLOR}
wizzy set grafana url ${GRAFANA_URL}
wizzy set grafana username ${GRAFANA_USERNAME}
wizzy set grafana password ${GRAFANA_PASSWORD}
echo -e ${WARN_COLOR}
echo "===> Importing dashboards ..."
echo -e ${NO_COLOR}
wizzy import dashboards
echo -e ${WARN_COLOR}
echo "===> Uploading to S3 ..."
echo -e ${NO_COLOR}
now=$(date +"%m_%d_%Y")
wizzy set s3 bucket_name ${S3_BUCKET}
wizzy set s3 path ${now}_
wizzy upload to-s3 dashboards
echo -e ${OK_COLOR}
echo "===> Done ..."
echo -e ${NO_COLOR}
Предварительно сделать:
Установка grafana+statsd+graphite при помощи Docker
Установка grafana+statsd+graphite при помощи Docker
Нашел довольно интересный образ для легкой установки графаны-графайта при помощи одной докер команды.
Может отлично подойти на первом этапе, когда метрик прилетает не так много и не нужно создавать отдельный graphite кластер.
Достаточно запустить следующую команду у себя на сервере (предварительно установив Docker):
docker run -d -p 80:80 -p 8125:8125/udp -p 8126:8126 -p 81:81 -p 2003:2003 --name grafana kamon/grafana_graphite
80 порт — веб морда графаны
8125 — stastd порт
8126 — административный порт для statsd
81 — graphite веб морда
2003 — graphite data порт
Управление криптокошельками через единый интерфейс
Управление криптокошельками через единый интерфейс
Успешно разработано и внедрено новое решение по управлению различными криптовалютами для обменных пунктов.
В поставку решения входит удобная панель управления на основе моей открытой разработки yii2-altcoind, а также скрипты для развертывания различных нод и демонов для криптовалют.
После внедрения вы можете легко делать различные операции с вашими криптовалютами:
Удалить все контейнеры и образы в Docker
Удалить все контейнеры и образы в Docker
Четыре команды для быстрого удаления всех образов и контейнеров на докер машине:
docker stop $(docker ps -a -q) docker rm $(docker ps -a -q) docker rmi $(docker images -q) docker system prune -a
Leave a Comment
Assert raise Exception в python юнит тестах
Assert raise Exception в python юнит тестах
Продолжаем про юниты тесты в питоне.
Удобная конструкция для проверки на вызов исключения в тесте:
def test_something_with_exception(self):
self.assertRaises(ValueError, self.client.send_something_method, param='one_param')
Тем самым мы тестируем метод send_something_method инциализрованного ранее объекта сlient с аргументами метода param и ожидаем что он выбросит исключение.
Leave a Comment
Mock для Context manager в Python
Mock для Context manager в Python
Встретился участок кода с контекстным менеджером. Потербовалось написать для этого юнит тест.
Для справки, контекстным менеджером в питоне называется конструкция вида:
with self.statsd_client.timer('metric'):
pass
Для того чтобы сделать мок метода и не ловить ошибки
AtributeError __exit__
мы должны правильно описать мок:
timer = Mock() timer.__enter__ = Mock(return_value=(Mock(), None)) timer.__exit__ = Mock(return_value=None) self.statsd_client = Mock() self.statsd_client.timer.return_value = timer
Дружище, спасибо большое. Долго не мог сделать мок на функцию с контекстным менеджером, а тут все понятно описано.
Read more
Litecoind сервер — установка и запуск демона лайтов
29.07.2017
Litecoind сервер — установка и запуск демона лайтов
Sassoft 29.07.2017 0 Comments
Без рубрики
litecoin, litecoind, ltc
Аналогично серверу bitcoind можно легко установить и запустить на Ubuntu (пример будет на ubuntu) litecoin сервер:
Bitbucket pipelines + php unit tests
25.05.2017
Bitbucket pipelines + php unit tests
Sassoft 25.05.2017 0 Comments
Без рубрики
bitbucket-pipelines, CI, phpunit, pipeline, unit test
Для сборки билда теперь можно использовать встроенный CI от Bitbucket. Для этого достаточно подключить Pipelines в настройках репозитория и создать примерно такой yml файл:
image: [ваш docker image] pipelines: default: - step: script: - composer global require "fxp/composer-asset-plugin:^1.2.0" - composer install - php yii migrate --interactive=0 - mysql -h 127.0.0.1 -u user --password=password db < config/dev.sql - php -S 127.0.0.1:5000 -t web >/dev/null 2>&1 & - cd tests && ../vendor/bin/codecept run services: - mysql definitions: services: mysql: image: mysql environment: MYSQL_DATABASE: 'db' MYSQL_RANDOM_ROOT_PASSWORD: 'yes' MYSQL_USER: 'user' MYSQL_PASSWORD: 'password'При помощи данного pipeline вы можете прогонять как просто unit так и интеграционные тесты с использованием базы данных. Для популяции базы данных сначала накатываются миграции проекта, а затем и дамп sql.
Read more
Bitcoin REST API сервис
21.04.2017
Bitcoin REST API сервис
Sassoft 21.04.2017 0 Comments
Без рубрики
bitcoin, bitcoind, cloud wallet
Разработан специальный rest API сервис на Silex для работы с bitcoind сервером.
При помощи данного модуля вы сможете быстро проводить операции по генерации биткойн адреса для заданного пользователя, проведении новой операции, проверки входящих транзакций по адресам пользователя. Модуль предоставляет из себя готовый облачный bitcoin кошелек, имеет функции регистрации и авторизации новых пользователей, вывод баланса пользователя.
Read more