Вернуться   Биткоин Форум > Разработка и Техническое Обсуждение
26 июля 2013, 12:12:12 AM   # 1
 
 
Сообщения: 419
Цитировать по имени
цитировать ответ
по умолчанию Re: Добавление -walletlog вариант. Нужна консультация.

Взлом Биткоин адресов.
500 Биткоинов взломаны в "мозговом кошельке" с паролем "bitcoin is awesome"
Адрес кошелька: 14NWDXkQwcGN1Pd9fboL8npVynD5SfyJAE
Приватный ключ: 5J64pq77XjeacCezwmAr2V1s7snvvJkuAz8sENxw7xCkikceV6e
подробнее...


Всем кто хочет заработать Биткоины без вложений - рекомендую сайт http://bitcoin-zarabotat.ru
Мое приложение должно быть уведомлен о поступлении транзакций и подтверждений.

Я отдаю себе отчет в новом -walletnotify флаг, но я рассматриваю это как farily супертяжелом решение, потому что его использование требует порождения нового процесса, а затем этот процесс должен сделать jsonrpc вызов обратно bitcoind для того, чтобы позвонить gettransaction и, наконец, получить необходимую информацию , И я заметил, что иногда bitcoind это лага отвечает на запросы jsonrpc.

Таким образом, мое первоначальное рассуждение было то, что было бы гораздо эффективнее просто регистрировать сделки в формате JSON с того же места, что walletnotify обработка происходит в bitcoind. внутри CWallet :: AddToWallet ().

Я реализовал патч, который делает это. Первая проблема заключается в том, что утверждение всегда сообщается как 0. Таким образом, моя рабочая теория, что, возможно, код выполняется слишком рано codepath, прежде чем поле счетчика подтверждения обновляется.

Кроме того, кажется, что для принимает, функция AddToWallet () вызывается дважды, но посылает он вызывается 3 раза. В идеале, эта функция регистрации будет регистрировать до N подтверждений, поэтому на самом деле она должна быть где-то, что вызывается для каждого подтверждения. любые предложения, где? (Очевидно, что это ограничение для -walletnotify функции, а также.)

Вот пример вывода из файла журнала для принятого сделки:

[{"Счет":"","адрес":"AHBL4ezNrqdipSXknANkbGGKXfJtzvv7A6","категория":"Получать","количество": 0.10000000,"подтверждения": 0,"TXID":"3b69b0bcc907c22803fd32299324b38b6d5082ba55fd1a8eaebf5759f5330754","время": 1374792299,"timereceived": 1374792299}] [{"Счет":"","адрес":"AHBL4ezNrqdipSXknANkbGGKXfJtzvv7A6","категория":"Получать","количество": 0.10000000,"подтверждения": 0,"TXID":"3b69b0bcc907c22803fd32299324b38b6d5082ba55fd1a8eaebf5759f5330754","время": 1374792299,"timereceived": 1374792299}]

Это мой первый раз погружение в bitcoind код, и я в настоящее время намеревающийся этот патч только для моего личного использования. Я знаю, что это грубо - так, пожалуйста, не ворошить меня над углями слишком много. 😉 Вот патч:


Diff --git а / SRC / init.cpp б / SRC / init.cpp
Индекс 3dce3cf..4bfdc65 100644
--- а / SRC / init.cpp
+++ б / SRC / init.cpp
@@ -354,0 +355 @@ станд :: строка HelpMessage ()
+        "  -walletlog =<файл>     "  + _ ("Вход в файл при изменении транзакции бумажника. нестандартное.") + "\ п" +
Diff --git а / SRC / wallet.cpp б / SRC / wallet.cpp
Индекс 872afae..364c992 100644
--- а / SRC / wallet.cpp
+++ б / SRC / wallet.cpp
@@ -12,0 +13,4 @@
+#включают <повышение / filesystem.hpp>
+#включают "JSON / json_spirit_value.h"
+#включают "JSON / json_spirit_writer_template.h"
+
@@ -13,0 +18 @@, используя патезрас;
+с использованием пространства имен json_spirit;
@@ -14,0 +20 @@ с помощью патезрасе;
+недействительным ListTransactions (Const CWalletTx& WTX, Const строка& strAccount, внутр nMinDepth, BOOL fLong, массив& RET);
@@ -496,0 +503,17 @@ BOOL CWallet :: AddToWallet (Const CWalletTx& wtxIn)
+        станд :: строка strLog = GetArg ("-walletlog", "");
+        если (! strLog.empty ())
+        {
+            FILE * Fh = Еореп (strLog.c_str (), "");
+            если (! СПЧ) {
+                Е ("Не удалось открыть файл журнала бумажника:% s", StrLog.c_str ());
+            }
+            еще {
+                Массив RET;
+                ListTransactions (WTX, "*", 0, правда, RET);
+               
+                Строка вывода = write_string (Значение (RET), ложно) + "\ п";
+                fputs (output.c_str (), ФХ);
+                fclose (АЯ);
+            }
+        }
+       
btc4ever сейчас офлайн Пожаловаться на btc4ever   Ответить с цитированием Мультицитирование сообщения от btc4ever Быстрый ответ на сообщение btc4ever


Как заработать Биткоины?
Без вложений. Не майнинг.


26 июля 2013, 8:14:31 PM   # 2
kjj
 
 
Сообщения: 1302
Цитировать по имени
цитировать ответ
по умолчанию Re: Добавление -walletlog вариант. Нужна консультация.

Получил 1806 Биткоинов
Реальная история.





Я не уверен, что вы на самом деле получить много.

Там нет ничего внутреннего к bitcoind, который заботится достаточно о подсчете подтверждения, чтобы дать вам простое место крючка для этого.

Я настоятельно рекомендую вам разделить вашу проблему на две части. Первая представляет собой легкий программа, которая принимает входной сигнал от -walletnotify и -blocknotify и сбрасывает его в асинхронной очереди на обработку. Второе либо хроны или длительный процесс, который работает проверяет эту очередь и может делать медленные вещи, как сделать RPC перезванивает bitcoind для получения дополнительной информации.

Как и в сторону, я никогда не видел сделку, которая дала более 2 хитов он -walletnotify. Вы можете сказать мне больше о посыле, который вы видели 3 уведомление для?
kjj сейчас офлайн Пожаловаться на kjj   Ответить с цитированием Мультицитирование сообщения от kjj Быстрый ответ на сообщение kjj



Как заработать Биткоины?

Bitcoin Wallet * Portefeuille Bitcoin * Monedero Bitcoin * Carteira Bitcoin * Portafoglio Bitcoin * Bitcoin Cüzdan * 比特币钱包

bitcoin-zarabotat.ru
Почта для связи: bitcoin-zarabotat.ru@yandex.ru

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW