[Linux] Уведомления о транзакциях

Тема в разделе "Разработка", создана пользователем Bjork, 24 мар 2016.

  1. Bjork

    Bjork новичок

    Я юзаю bitcoin core и сегодня запилил себе обработку новых входящих транзакций, а точнее нотификации со звуковым эффектом, для удобства, так сказать :cool:

    Нотификации в итоге имеют такой вид:
    [​IMG]

    Все описанное ниже выполнялось на Ubuntu 14.
    Также прикреплю архив с исходниками.

    Для начала установим необходимые пакеты:
    sudo apt-get install notify-osd
    sudo apt-get install mpg123

    notify-osd - виджет уведомление, в ubuntu обычно уже имеется
    mpg123 - для звукового проигрывания mp3 файла
    В моей реализации требуется php, так что его нужно тоже установить.

    Остановим демон Bitcoind и добавим в конфиг вызов нашего скрипта, который будет вызываться по изменениям связанным с кошельком

    bitcoin-cli stop
    sudo nano ~/.bitcoin/bitcoin.conf

    Добавляем строку:
    walletnotify=php /home/bjork/btcdevelop/wallet_alerts.php %s

    Код моего php обработчика:

    Код:
    <?php
    $txid = $argv[1];
    require_once 'jsonRPCClient.php';
    
    //поменяйте логин и пароль на свои, из bitcoin.conf
    $bitcoin = new jsonRPCClient('http://admin:[email protected]:8332/');
    $json = json_encode($bitcoin->gettransaction($txid));
    
    
    $raspars=json_decode($json);
    //покажем только входящие транзакции и именно с 1 подтверждением
    if ((($raspars->details[0]->category) == "receive") && (($raspars->confirmations) < 2))
      {
      $inform ='';
      $inform .='Сумма= '.$raspars->amount;
      $inform .='\nАккаунт= '.$raspars->details[0]->account;
      $inform .='\nПодтверждений= '.$raspars->confirmations;
      $inform .='\nВремя отправки= '.date("Y-m-d H:i:s",$raspars->blocktime);
      $inform .='\nВремя зачисления= '.date("Y-m-d H:i:s",$raspars->timereceived);
    
    // ключ -i путь до иконки, -t время показа
      exec("notify-send 'Пополнение кошелька' '".$inform."' -i /home/bjork/btcdevelop/bitcoin.png -t 3000");
    //проигрыш mp3 оповещения
      exec("mpg123 /home/bjork/btcdevelop/nova_sound.mp3");
      }
    
    exit;
    ?>
    
    Код можно обвесить дополнительными обработками, в зависимости от ваших задач)

    Насколько знаю, bitcoin core под windows имеет такие же надстроечные функции (дерективы
    blocknotify, walletnotify, alertnotify в файле конфигурации bitcoin.conf)

    Надеюсь, кому-нибудь этот материал пригодится ;)
     

    Вложения:

    • Размер файла:
      18,5 КБ
      Просмотров:
      393
    admin и Andriyan21 нравится это.
  2. Andriyan21

    Andriyan21 Постоянный пользователь

    как то Линукс так и не вошел в массы, а когда то в 2007-2008 году шла массовая пропаганда что все гос учреждения будут переводить на линукс и угрожали штрафами за использование нелецензионного программного обеспечения!