Вернуться   Биткоин Форум > Разработка и Техническое Обсуждение
22 августа 2013, 4:33:22 PM   # 1
 
 
Сообщения: 1092
Цитировать по имени
цитировать ответ
по умолчанию Re: Где находится поле для версии «getblocks» и «getheaders»?

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


Всем кто хочет заработать Биткоины без вложений - рекомендую сайт http://bitcoin-zarabotat.ru
Согласно странице протокола спецификации вики "getblocks" а также "getheaders" сообщения имеют поле версии: https://en.bitcoin.it/wiki/Protocol_specification#getblocks

Я не могу найти, где это находится в Bitcoin Satoshi исходного кода клиента. Все, что я могу видеть это блок объект локатора и стоп хэш быть установлен. Может кто-нибудь просветить меня?
MatthewLM сейчас офлайн Пожаловаться на MatthewLM   Ответить с цитированием Мультицитирование сообщения от MatthewLM Быстрый ответ на сообщение MatthewLM


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


22 августа 2013, 5:15:29 PM   # 2
 
 
Сообщений: 26
Цитировать по имени
цитировать ответ
по умолчанию Re: Где находится поле для версии «getblocks» и «getheaders»?

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





По этой ссылке, это версия протокола, который вы вели переговоры с удаленным узлом.

Твое жёстко. 70001, например.

Подключение к другому узлу и обмену "версия" сообщения, но их версия сообщение говорит, что они используют протокол версии 60001 вместо этого.

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

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

22 августа 2013, 5:21:54 PM   # 3
 
 
Сообщений: 26
Цитировать по имени
цитировать ответ
по умолчанию Re: Где находится поле для версии «getblocks» и «getheaders»?

!#% (&! @ #) (! @ #%!) (@ #%&! @ #) (%&! @ #) (%&! @ # ()%&! @ #) (%&! @ #) (%&@) # (%&!) @ (#%&! # @) (%&! @ #) (%&! # @) (%&! @ #) (%&#!) @ (&%
Глупый форум только что удалили мой последующий пост, потому что я отправил менее чем за 6 минут назад. ГРР.

Во всяком случае - только мысль, что меня поразило:

Возможно getheaders и getblocks предназначен один день, чтобы быть переданы между узлами?

Например:
Подключение к узлу 1. Вы высылаете getheaders.
Узел 1 говорит "WTF я не знаю!" и передает его вместе с узлом 2.
Узел 2 необходимо знать версию протокола, потому что вы не подключены к нему.
Узел 2 отвечает, и узел 1 передает его обратно к вам.

Кто знает. Я Newb.

Но в getblocks, это определенно OK, чтобы установить его на договорной версии протокола. Я делаю это, и мне удается загрузить весь blockchain каждый раз без проблем.
joshlang сейчас офлайн Пожаловаться на joshlang   Ответить с цитированием Мультицитирование сообщения от joshlang Быстрый ответ на сообщение joshlang

22 августа 2013, 6:04:04 PM   # 4
 
 
Сообщения: 1092
Цитировать по имени
цитировать ответ
по умолчанию Re: Где находится поле для версии «getblocks» и «getheaders»?

Спасибо за ответ. Единственное беспокойство у меня есть, я не могу найти, где версия находится в исходном коде на всех. "getblocks" отправляется с PushGetBlocks, который:

Код:
недействительным PushGetBlocks (CNode * pnode, CBlockIndex * pindexBegin, uint256 hashEnd)
{
    // Фильтр из повторяющихся запросов
    если (pindexBegin == pnode->pindexLastGetBlocksBegin && hashEnd == pnode->hashLastGetBlocksEnd)
        вернуть;
    pnode->pindexLastGetBlocksBegin = pindexBegin;
    pnode->hashLastGetBlocksEnd = hashEnd;

    pnode->PushMessage ("getblocks", CBlockLocator (pindexBegin), hashEnd);
}

Так что это толкая сообщение "getblocks", Но только с блоком локатора и hashEnd. Где это версия? Я не могу найти его установить в BeginMessage () или EndMessage (). Также он находится в CBlockLocator ...
MatthewLM сейчас офлайн Пожаловаться на MatthewLM   Ответить с цитированием Мультицитирование сообщения от MatthewLM Быстрый ответ на сообщение MatthewLM

22 августа 2013, 8:14:34 PM   # 5
 
 
Сообщений: 26
Цитировать по имени
цитировать ответ
по умолчанию Re: Где находится поле для версии «getblocks» и «getheaders»?

Вот:

Код:
класс CBlockLocator
{
...
IMPLEMENT_SERIALIZE
    (
        если (! (nType & SER_GETHASH))
            READWRITE (nVersion);
        READWRITE (vHave);
    )
...
};

Забавно - это там вроде как побочный эффект
joshlang сейчас офлайн Пожаловаться на joshlang   Ответить с цитированием Мультицитирование сообщения от joshlang Быстрый ответ на сообщение joshlang

22 августа 2013, 8:42:43 PM   # 6
 
 
Сообщения: 1092
Цитировать по имени
цитировать ответ
по умолчанию Re: Где находится поле для версии «getblocks» и «getheaders»?

Ах спасибо. Попытка прочитать исходный код может быть немного как идти через лабиринт. Я не люблю макросы используются для реализации целых кусков кода. Оказывается, с помощью этого кода, который иногда хэш значение CBlockLocator разыскивается? Понятия не имею, почему это не является.

Кроме того, я обнаружил, что CDataStream использует версию MIN_PROTO_VERSION (См 237 net.h), который затем может быть использован в "getblocks" Сообщения.
MatthewLM сейчас офлайн Пожаловаться на MatthewLM   Ответить с цитированием Мультицитирование сообщения от MatthewLM Быстрый ответ на сообщение MatthewLM

22 августа 2013, 8:44:09 PM   # 7
 
 
Сообщений: 26
Цитировать по имени
цитировать ответ
по умолчанию Re: Где находится поле для версии «getblocks» и «getheaders»?

Лабиринт?

Больше похож на мясорубку
joshlang сейчас офлайн Пожаловаться на joshlang   Ответить с цитированием Мультицитирование сообщения от joshlang Быстрый ответ на сообщение joshlang



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

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

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

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW