29 мая 2014, 3:12:10 PM   # 1
 
 
Сообщений: 27
Цитировать по имени
цитировать ответ
по умолчанию Re: команды getrawtransactionsinblock RPC

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


Всем кто хочет заработать Биткоины без вложений - рекомендую сайт http://bitcoin-zarabotat.ru
Я добавил команду RPC «getrawtransactionsinblock» в bitcoind, в моем локальном исходном коде, и это похоже на то, что будет полезно для других пользователей, особенно если вы пытаетесь разделить функциональность бумажника из Bitcoin ядра.

Стоит ли мне создание запроса тянуть для этого?

Прецедент является то, что я хочу, чтобы просмотреть транзакции в каждом блоке, как они приходят.
Я могу сделать это с getblock и кучей getrawtransaction вызовов, * если * txindex установлен в 1.
Но так как я не отрываясь сделок в произвольных позициях в блоке цепи, я не нужен полный индекс транзакции для этого.
Я знаю, что хэш-блок, который содержит операции, и он должен затем быть возможно получить информацию о транзакции из этого блока, без полного индекса сделки.

Код для новой команды очень проста, и это, по существу, только в следующем, а также несколько небольших изменений, чтобы сделать его доступным как команда RPC:

Код:
Значение getrawtransactionsinblock (сопз массив& PARAMS, BOOL fHelp)
{
    если (fHelp || params.size () < 1)
        бросить runtime_error (
            "getrawtransactionsinblock \ п"
            "Возвращает TXID и необработанные данные транзакции для всех операций в указанном блоке. \ П"
            "\ NArguments: \ п"
            "1. \"хэш \"          (Строка, требуется) Блок-хэш \ N"
            "\ NResult \ п"
            "[(Массив объекта JSON) \ П"
            "  {\ П"
            "    \"TXID \" : \"TXID \"(Строка) ИД транзакции \ п"
            "    \"шестнадцатеричный \" : \"данные\", (Строка) сериализованные, гекс-кодированные данные для «TXID» \ п"
            "  } \ П"
            "  , ... \ п"
            "] \ П"
            "\ NПримеры: \ п"
            + HelpExampleCli ("getrawtransactionsinblock", "\"00000000c937983704a73af28acdec37b049d214adbda81d7e2a3dd146f6ed09 \"")
            + HelpExampleRpc ("getrawtransactionsinblock", "\"00000000c937983704a73af28acdec37b049d214adbda81d7e2a3dd146f6ed09 \"")
        );

    STD :: String strHash = PARAMS [0] .get_str ();
    uint256 хэш (strHash);

    если (mapBlockIndex.count (хэш) == 0)
        бросить JSONRPCError (RPC_INVALID_ADDRESS_OR_KEY, "Блок не найден");

    CBlock блок;
    CBlockIndex * pblockindex = mapBlockIndex [хэш];
    ReadBlockFromDisk (блок, pblockindex);
   
    Массив;

    BOOST_FOREACH (Const CTransaction &TX, block.vtx) {
        Объект txEntry;
        txEntry.push_back (пара ("TXID", Tx.GetHash () GetHex ())).
        CDataStream ssTx (SER_NETWORK, protocol_version);
        ssTx << ТХ;
        Строка strHex = HexStr (ssTx.begin (), ssTx.end ());
        txEntry.push_back (пара ("наговор", StrHex));
        a.push_back (txEntry);
    }

    возвращать;
}

Название довольно долго, но говорит, что он делает на поле.
(Может быть укорочен на что-то вроде «getblocktransactions», я думаю, но это менее ясно, что это делает именно.

Другая возможность могла бы добавить возможность пройти вмещающий blockhash, чтобы getrawtransaction, я думаю, и не требует полного индекса сделки в этом случае.
Это будет еще один способ, чтобы избежать необходимости полного индекса сделки в нашем случае использования, но намного менее эффективным, поскольку он требует намного больше RPC вызовы, чтобы получить все сделки.
Переключение с getblock + getrawtransaction вызовы getrawtransactionsinblock дал нам довольно значительное ускорение.
Сканирование всех сделок, как они приходят кажется, что это должно быть довольно распространенным примером использования таких вещей, как бумажники, которые используют bitcoind в качестве движка для управления сетью, а просто возвращаются все сделки, то это, кажется, как хорошее эффективным решение для такого рода вещей в Генеральная.

Для получения информации, мы используем этот специальный метод в опорном протоколе SwapBill клиента (объявление темы здесь:, клиент исходный код и ридй на GitHub здесь:https://github.com/crispweed/swapbill), Но кажется, что это довольно общее требование, и может быть полезно во многих других случаях!

Томас
crispweed сейчас офлайн Пожаловаться на crispweed   Ответить с цитированием Мультицитирование сообщения от crispweed Быстрый ответ на сообщение crispweed


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


2 июня 2014, 10:21:09 AM   # 2
 
 
Сообщений: 27
Цитировать по имени
цитировать ответ
по умолчанию Re: команды getrawtransactionsinblock RPC

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





Удар!

Если я сделать запрос тянуть для этого, это просто будет игнорировать?

Кто-нибудь еще с помощью Bitcoin RPC и хочет, чтобы иметь возможность быстро обрабатывать все транзакции в блоке?
(Кроме позволяя вам отказаться от требования для txindex, если вы способны обрабатывать Необработанные Операции со самостоятельно, делая это с «getrawtransactionsinblock» есть * много * быстрее, чем getblock и куча getrawtransaction вызовов с многословным установлен верно.)

Есть ли какая-либо причина * не *, чтобы добавить это?

Томас
crispweed сейчас офлайн Пожаловаться на crispweed   Ответить с цитированием Мультицитирование сообщения от crispweed Быстрый ответ на сообщение crispweed

2 июня 2014, 11:20:24 AM   # 3
kjj
 
 
Сообщения: 1302
Цитировать по имени
цитировать ответ
по умолчанию Re: команды getrawtransactionsinblock RPC

Лучше всего, чтобы сделать запрос тянущего и посмотреть. Реальное обсуждение будет происходить на GitHub, в комментариях тянуть. Если вы планируете разрабатывать более, либо вы должны практику использования мерзавца / GitHub в любом случае, или вы уже достаточно опытные, что делает тянуть не будет очень раздражает.

Имейте в виду, что это не особенность, что многие люди будут когда-либо использовать. И люди, которые, вероятно, использовать его уже есть другие пути для достижения тех же целей, возможно, более эффективные способы. Тем не менее, это довольно легкий, и не будет иметь огромное бремя обслуживания в будущем.
kjj сейчас офлайн Пожаловаться на kjj   Ответить с цитированием Мультицитирование сообщения от kjj Быстрый ответ на сообщение kjj

19 июня 2014, 1:18:10 PM   # 4
 
 
Сообщений: 27
Цитировать по имени
цитировать ответ
по умолчанию Re: команды getrawtransactionsinblock RPC

Хорошо, просьба тянуть здесь: https://github.com/bitcoin/bitcoin/pull/4369
crispweed сейчас офлайн Пожаловаться на crispweed   Ответить с цитированием Мультицитирование сообщения от crispweed Быстрый ответ на сообщение crispweed

19 июня 2014, 2:07:25 PM   # 5
 
 
Сообщений: 27
Цитировать по имени
цитировать ответ
по умолчанию Re: команды getrawtransactionsinblock RPC

и .. закрыт
Оказывается, есть второй параметр getblock (не указан в вики), и вы можете позвонить getblock ложь, чтобы получить необработанные данные блоков, которые могут быть разобраны довольно прямолинейно для получения исходных данных транзакции, мне нужно ..
crispweed сейчас офлайн Пожаловаться на crispweed   Ответить с цитированием Мультицитирование сообщения от crispweed Быстрый ответ на сообщение crispweed

26 июня 2014, 8:21:58 AM   # 6
 
 
Сообщений: 27
Цитировать по имени
цитировать ответ
по умолчанию Re: команды getrawtransactionsinblock RPC

Для справки, для тех, кто наступающий на этом посте от поиска или что-то, посмотреть на это сообщение в блоге для рабочей альтернативы команды getrawtransactionsinblock Rpc я предложил выше ..
crispweed сейчас офлайн Пожаловаться на crispweed   Ответить с цитированием Мультицитирование сообщения от crispweed Быстрый ответ на сообщение crispweed



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

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

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

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW