Вернуться   Биткоин Форум > Разработка и Техническое Обсуждение
24 июня 2011, 11:59:26 AM   # 1
 
 
Сообщения: 266
Цитировать по имени
цитировать ответ
по умолчанию Re: разбор getwork blockheaders с BitCoinJ

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


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

Я пытался кормить поле данных getwork в класс BitCoinJ Блока для синтаксического анализа, но я получаю мусор результатов:

Это результат JSON:

Код:
{
    "ошибка": ноль,
    "Я бы": 2,
    "результат": {
        "данные": "000000013aef333a9788611a61cee16e0d555b989015425446f0776c00000478000000009d0221ae1fe47f5963e1b868dbe6388070888400ffcce91c7b60e4f157ed70f44e047b5d1a0c2a1200000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000080020000",
        "hash1": "00000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000010000",
        "Midstate": "b5160a8f1c6ade7fc3cac93d31f5f34a5d53faa48b04fa549126c7d6cd4fe791",
        "цель": "0000000000000000000000000000000000000000000000122a0c000000000000"
    }
}

Это то, что я получаю от разбора его BitCoinJ:

Код:
Размер: 128
Трудность: 304745498
одноразовое значение: 0
Время: 1568343118
Мое время системы: 1308916582
Версия: 16777216
Хэш: fa336f7e89b73b44ca1ec41b597c03f92c1e9e68a06789d10517ed1fe9cd9c38

Единственное, что кажется правильным является одноразовым значением.

Я пытался обратить вспять байт, но до сих пор мусор. Должен ли я быть компенсируя возможно?
пузанковых сейчас офлайн Пожаловаться на пузанковых   Ответить с цитированием Мультицитирование Сообщения От пузанковых БЫСТРЫЙ ответ на сообщение пузанковых


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


24 июня 2011, 1:26:41 PM   # 2
kjj
 
 
Сообщения: 1302
Цитировать по имени
цитировать ответ
по умолчанию Re: разбор getwork blockheaders с BitCoinJ

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





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

24 июня 2011, 1:45:10 PM   # 3
 
 
Сообщения: 266
Цитировать по имени
цитировать ответ
по умолчанию Re: разбор getwork blockheaders с BitCoinJ

ОК, так что вы знаете, если они проложенные в начале или в конце? Это всего лишь простой вопрос обрезки массива байт? Анализатор, вероятно, не предназначен для обработки результатов в getwork. В соответствии с этим в конструкторе:

/ ** Создает объект блока из формата Биткойн проволоки. * /

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

24 июня 2011, 2:20:34 PM   # 4
kjj
 
 
Сообщения: 1302
Цитировать по имени
цитировать ответ
по умолчанию Re: разбор getwork blockheaders с BitCoinJ

Я не могу сказать, не глядя на функции, и я презираю Java, так что ... Надеюсь, кто знаком с bitcoinj будет поп и помощь. Может быть, сменим тему нити.

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

24 июня 2011, 4:27:56 PM   # 5
 
 
Сообщения: 1526
Цитировать по имени
цитировать ответ
по умолчанию Re: разбор getwork blockheaders с BitCoinJ

Да, этот конструктор не предназначен, чтобы взять выходной getwork.

Предположительно, проблема заключается в следующем коде из FormatHashBuffers:

Код:
    // Byte подкачки все входной буфер
    для (INT I = 0; я < SizeOf (TMP) / 4; я ++)
        ((Неподписанные INT *)&TMP) [I] = ByteReverse (((беззнаковое INT *)&TMP) [I]);

Но то, что вы пытаетесь сделать? Если вы хотите построить шахтер я не думаю, что вам не придется разобрать вывод getwork. Протокол getwork что-то другое.
Майк Хирн сейчас офлайн Пожаловаться на Mike Хирн   Ответить с цитированием Мультицитирование сообщения от Mike Хирн Быстрый ответ на сообщение Mike Хирн

25 июня 2011, 12:00:18 AM   # 6
 
 
Сообщения: 266
Цитировать по имени
цитировать ответ
по умолчанию Re: разбор getwork blockheaders с BitCoinJ

Я думал, что это может быть проблема с порядок байтов. Никогда не приходилось иметь дело с ним, прежде чем в моей маленькой Java пузырь.

Скорее всего, использование для анализа возвращенного getwork проверить его перед передачей его на входе. Или, возможно, даже для создания работы для последующих клиентов. Я знаю, что bitcoinj действительно сосредоточен на том, клиент конечного пользователя атм так на самом деле не построен с тех рода вещей в виду, но, казалось разумным попробовать рычаги некоторые из кода, и это полезно, особенно в качестве учебного упражнения.

постскриптум Майк, то Javadoc и комментарии являются большими, я узнал больше, чем от тех, у меня есть из вики.

p.p.s. Я искать все мое затмение рабочее пространство для ссылок на FormatHashBuffers и даже сделал поиск текста для фрагментов коды, но не там. Я только что проверил багажник, так что если это часть проекта я должен иметь его? -- возгласы выглядел немного ближе, и это не ява ...
пузанковых сейчас офлайн Пожаловаться на пузанковых   Ответить с цитированием Мультицитирование Сообщения От пузанковых БЫСТРЫЙ ответ на сообщение пузанковых

25 июня 2011, 4:05:47 AM   # 7
 
 
Сообщения: 266
Цитировать по имени
цитировать ответ
по умолчанию Re: разбор getwork blockheaders с BitCoinJ

получил его ... пришлось перебирает его когда-либо перестановки я мог думать, но, наконец, получил почти результат:

Код:
государственный статический сила checkByteSwapped (строковые данные) {
байт [] байт = Hex.decode (данные);
байт [] = оборотов новый байт [bytes.length];
для (INT I = 0; я < bytes.length; I + = 4) {
байты [] = Кусок Arrays.copyOfRange (байты, I, I + 4);
порций = Utils.reverseBytes (порций);
System.arraycopy (фрагмент, 0, об, я, 4);
}
checkBytes (REV);
}

производит:

Код:
смещение: 0
v1 блок:
   предыдущий блок: 00000000000008ee4076724291e1656d84ac61d98bf89dd3656680782aad1a4a
   Merkle корень: 8de49d9cc1dce6cf0a89b95cd5d683eb787e3f6a02072acf69ddab88b8ae01ff
   время: [1308974260] Сб 25 июня 13:57:40 EST 2011
   целевой трудности (Nbits): 437004818
   одноразовое значение: 0

который соответствует последнему блоку blockexplorer. Единственная часть, которая не совпадает является целевой трудности. Блок исследователь говорит: 1379223.4296725

но по крайней мере это прогресс ...
пузанковых сейчас офлайн Пожаловаться на пузанковых   Ответить с цитированием Мультицитирование Сообщения От пузанковых БЫСТРЫЙ ответ на сообщение пузанковых

25 июня 2011, 5:03:57 AM   # 8
 
 
Сообщения: 266
Цитировать по имени
цитировать ответ
по умолчанию Re: разбор getwork blockheaders с BitCoinJ

ОК, так что я только что узнал о компактной форме против длинной формы ... и я, кажется, декодирования трудности близко, но не точно:

Код:
L.println ("************************************************** **********************");
L.println ("смещение: " + I);
L.println (block.toString ());
. Строка Diff = block.getDifficultyTargetAsInteger () ToString (16);
длинные highestDifficult = 0x1d00ffff;
BigDecimal highestDifficulty = новые BigDecimal (Utils.decodeCompactBits (highestDifficult));
Diff = StringUtils.leftPad (разн, 64, '0');
L.println ("макс дифф: " + StringUtils.leftPad (Utils.decodeCompactBits (highestDifficult) .ToString (16), 64, '0'));
L.println ("шестигранный дифф: " + Дифф);
Соотношение BigDecimal = highestDifficulty.divide (новый BigDecimal (block.getDifficultyTargetAsInteger ()), 7, RoundingMode.FLOOR);
L.println ("соотношение: " + Ratio.toPlainString ());
L.println ("************************************************** **********************");

дает мне:

Код:
************************************************** **********************
смещение: 0
v1 блок:
   предыдущий блок: 00000000000003fc392bab7a327a019fce4b48c98d5bc4b0d8d20f6e21e4ce1f
   Merkle корень: 2891334d6466ea274ac50cdb2af50afc889d236689cfe6ace9682b752900985a
   время: [1308977962] Сб 25 июня 14:59:22 EST 2011
   целевой трудности (Nbits): 437004818
   одноразовое значение: 0

макс дифф: 00000000ffff0000000000000000000000000000000000000000000000000000
шестигранный дифф: 0000000000000c2a120000000000000000000000000000000000000000000000
Соотношение: 1379192.2882280
************************************************** **********************

который является довольно чертовски близко к blockexplorer: 1379223.4296725

Кажется странным, что разница очень близко к 32 (31.1414). Может быть, я пюре немного где-то.
пузанковых сейчас офлайн Пожаловаться на пузанковых   Ответить с цитированием Мультицитирование Сообщения От пузанковых БЫСТРЫЙ ответ на сообщение пузанковых

25 июня 2011, 5:57:40 AM   # 9
 
 
Сообщения: 266
Цитировать по имени
цитировать ответ
по умолчанию Re: разбор getwork blockheaders с BitCoinJ

извини продолжает говорить себе ...

Просто замечает, что мой bitcoind клиент возвращается 1379192.28822808 из getdifficulty поэтому был расшифрован правильно.

Странно, хотя этот blockexplorer возвращается другая трудность?
пузанковых сейчас офлайн Пожаловаться на пузанковых   Ответить с цитированием Мультицитирование Сообщения От пузанковых БЫСТРЫЙ ответ на сообщение пузанковых

25 июня 2011, 6:41:40 AM   # 10
 
 
Сообщения: 2870
Цитировать по имени
цитировать ответ
по умолчанию Re: разбор getwork blockheaders с BitCoinJ

BBE в / д / getdifficulty использует старый расчет сложности Bitcoin, которая имеет некоторые проблемы точности. Вы заметите, что трудности сообщили о блочные страницы так же, как ваша.
theymos сейчас офлайн Пожаловаться на theymos   Ответить с цитированием Мультицитирование сообщения от theymos Быстрый ответ на сообщение theymos



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

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

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

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW