Вернуться   Биткоин Форум > Разработка и Техническое Обсуждение
18 октября 2012, 9:39:07 PM   # 1
 
 
Сообщения: 1092
Цитировать по имени
цитировать ответ
по умолчанию Re: Генерация тестовых блоков для производственной сети.

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


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

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

Мэтт Corallo имеет программу под названием pulltester, которая может помочь с этим, хотя я оставлю ему возможность объяснить, что более подробно, если он пожелает.

Я перечислю здесь блоки я знаю, что нужно проверить, хотя там может быть больше блоков, которые будут полезны (вкл. Для других реализаций). Много испытаний может быть сделано на функции проверки без необходимости отдельных блоков для каждого случая, это может показаться много вещей не хватает.

Все эти блоки должны быть действительны для вещей, упомянутых исключением. Это включает в себя правильный хэш.

Блоки после генеза блока со следующими проблемами (то есть на высоту 1.):

* Блок с нулевыми сделками.
* Блок с неправильным корнем Merkle.
* Блок с первой транзакции не в coinbase.
* Блок с неконечной сделкой coinbase
* Блок с нулевыми выходами
* Блок с размером 1000001 байт.
* Блок с плохой монеты базового размера сценария (< 2 или > 100).

Блоки после испытательных блоков 100 шахтера, которые сделаны с этим кодом: https://github.com/bitcoin/bitcoin/blob/master/src/test/miner_tests.cpp

* Блок со смесью sigops (вкл. P2SH) с 20000 sigops (Это является допустимым).
* То же самое, но с 20001 sigops.
* Блок расходы coinbase с высоты 2.
* Блок с не-coinbase операции, которая не является окончательным.
* Блок с расходами транзакций выходом транзакции ранее внутри этого блока (Valid).
* Блок с расходами транзакций выходом транзакции позднее внутри этого блока.
* Два входа ссылающегося же выход в двух различных операциях в блоке.
* Блок с транзакцией с недостоверным вводом сценарием.
* Блок ввода с ссылками вывод, что не существует.
* Блок с coinbase значением, равным вознаграждением блокировать плюс несколько операционных издержек (действительных).
* Блок с монетой базового значением, равным вознаграждением блокировать плюс несколько операционных издержек плюс один.
* Блок с временной меткой 1231006525.

Также нужно проверить некоторые неясные части блок-цепи реорганизации.

Это может быть сделано с ветвью, которая идет от филиала, созданного с 100 испытательных блоков и становится главной цепи. Затем несколько блоков могут быть добавлены к этой ветви, так что ветвь с 100 блоков может быть расширена, не став основной цепью. Потом еще ветвление этой отрасли (не расширение), которая становится основной отраслью.

Таким образом, чтобы начать с будут эти блоки

Код:
A: 0 -> 1
B: `-> 1 ... 99 -> 100

Затем новая основная цепь необходима, что ветви предыдущей главной цепи:

Код:
A: 0 -> 1
B: `-> 1 ... 99 -> 100
C: `-> 100 -> 101

Тогда эта новая отрасль расширяется, чтобы освободить место для расширения другой отрасли.

Код:
A: 0 -> 1
B: `-> 1 ... 99 -> 100
C: `-> 100 -> 101 -> 102

Теперь другая ветвь распространяется:

Код:
A: 0 -> 1
B: `-> 1 ... 99 -> 100 -> 101 -> 102
C: `-> 100 -> 101 -> 102

Тогда новая основная цепь состоит из:

Код:
A: 0 -> 1
B: `-> 1 ... 99 -> 100 -> 101 -> 102
D: \ `-> 102 -> 103
C: `-> 100 -> 101 -> 102

Что, что тесты, является реорганизацией в том случае, когда новая основная цепь делает использование родительской ветви с предыдущими данными проверки и которая требует дальнейшей проверки. В этом случае блок B101 не был полностью подтвержден до реорганизации, так как полная проверка выполняется только на блоках, которые входят в основной цепи или при реорганизации. Это только одна часть кода, который нуждается в тестировании.

Также было бы хорошо иметь больше блоков с недействительным блоком для B101, как бы обеспечить недопустимый блок в родительской ветви в то время делать полную проверку поймают. B101 необходимо будет недействительным определенным образом. Дайте B101 недопустимое значение выходного coinbase. Это будет работать.

Так что необходимо C100, C101, C102, B101, B102, D102, D103, где B является филиалом с использованием тестовых шахтер блоков.

А также еще один набор B101, B102, D102, D103 с некорректным B101.

К сожалению, что это сбивает с толку.

Также нужно проверить филиал подрезки код, но я не понять это, пока я на самом деле закодировал. 

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


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


18 октября 2012, 9:48:11 PM   # 2
 
 
Сообщения: 755
Цитировать по имени
цитировать ответ
по умолчанию Re: Генерация тестовых блоков для производственной сети.

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





Как уже упоминалось, я написал небольшой инструмент для тестирования кода проверки блока / Reorg сравнить мой полный узел-реализации в bitcoinj для эталонного клиента, который оказывается достаточно хорошо проверки соответствия с существующей спецификации почти любого полностью проверочной Bitcoin узел, который реализует важные части протокола P2P.

Вы можете найти его по адресу: http://jenkins.bluematt.me/pull-tester/files/ (Его в настоящее время используется как часть тягового-тестер для тестирования новых тянет, как они приходят в опорному клиента).
Его в настоящее время с помощью Alt-цепи, так что он может динамически генерировать блоки с крошечным дифф. Его на моем ГЭТ к-это в конечном итоге список TODO на самом деле добывать блоки, придавая им действительную военнопленного таким образом, что они работают на постоянного клиента, но лишь немногие строки патч, что любой клиент должен быть в состоянии осуществить, так что я чувствую нет спешка ... (хотя это всегда было бы хорошо, если бы кто-то подошел и сделал это)

Вы можете увидеть список тестов, которые он выполняет в http://jenkins.bluematt.me/pull-tester/files/FullBlockTestGenerator.java.  Она поражает многие случаи, перечисленных (хотя это имеет определенный список вилка тестируется а не делать тонны вилок в то время). Это, однако, ударил 100 охвата% линии достижимых линий в блок проверки на опорном клиента, поэтому, несмотря на отсутствие несколько случаев, это не очень хорошую работу (если кто-то хочет написать в случае, Id быть очень рад объединить их).  

Я бы ожидать полного осуществления узла для тестирования с использованием по меньшей мере:
Тесты ОГО / сценарий управляемых данных в https://github.com/bitcoin/bitcoin/tree/master/src/test/data и тянуть тестер выше (просто начать заплатанной узел на локальном и запустить банку).
Мэтт Corallo сейчас офлайн Пожаловаться на Matt Corallo   Ответить с цитированием Мультицитирование сообщения от Matt Corallo Быстрый ответ на сообщение Matt Corallo



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

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

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

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW