Это приложение проверяет пришетшие траназкции на AML
Имеет доступ к таблицам: blockchain_tx, deposit, withdrawal
Впервые:
cap production systemd:puma:setup
cap production systemd:daemon:setup
cap production systemd:amqp_daemon:setup
cap production master_key:setup
Последующие разы:
cap production deploy
https://www.rabbitmq.com/tutorials/tutorial-six-ruby.html
RPC Сообщения отправлять в exchange meduza с route_key=check_transaction
Пример payload:
{
'txid' => 'transaction id',
'cc_code' => 'BTC',
'source' => 'belomor'
}
Незабываем обавить properties для обратного ответа:
:reply_to: Commonly used to name a callback queue.
:correlation_id: Useful to correlate RPC responses with requests.
В ответ прилетает следующая структура в exchange meduza
{
address_transaction: 'address or transaction id', # Проверенный адрес или транзакция
cc_code: 'BTC',
action: 'block'|'pass',
analysis_result_id: 123, # ID Результатов анализа в базе meduza
}
AMQP::TransactionChecker- подписывается на очередь в rabbimq, принимает от нее заказы на проверку адресов и кидает их вPendingAnalysisDaemons::PendingExecutorкаждые 2 секунды пробегается поPendingAnalysis, проверяет их черезValegaAnalyzer, создаётTransactionAnalysisс результатами, устанаилвает статусPendingAnalysisвdone.