Вернуться   Биткоин Форум > Разработка и Техническое Обсуждение
30 сентября 2011, 11:54:28 PM   # 1
 
 
Сообщения: 1428
Цитировать по имени
цитировать ответ
по умолчанию Re: [COMPLETE] Тест Единица для blockchain реорганизации

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


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

Я работаю на том, что мой код будет правильно обрабатывать blockchain реорганизации, особенно с ТМ, которая действует на цепи, но затем аннулировано в REORG, который не включает эту транзакцию. Что мне действительно нужно, это какой-то заголовок&блок данных, который представляет собой blockchain REORG, а также создать блок-тест из него.  

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


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


1 октября 2011, 12:42:46 AM   # 2
 
 
Сообщения: 253
Цитировать по имени
цитировать ответ
по умолчанию Re: [COMPLETE] Тест Единица для blockchain реорганизации

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





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

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

  • Резервное копирование бумажника Wallet 1 (который начинается с деньгами, добытых в Testnet-в-коробке).
  • Есть кошелек 1 подключен к только Кошелек 2. Оставьте Bitcoin экземпляр для бумажника 3 и отключен.
  • Выполните операцию, чтобы переместить все средства из Кошелька 1 Кошелек 2.
  • Выполните добычу на Wallet 2 до тех пор, пока не найдет блок. Поскольку это сеть трудность 1, это должно быть выполнимо даже только с добычей CPU.
  • Закройте Bitcoin экземпляр для Wallet 2 так, что он не подключен.
  • Восстановление резервной копии на кошелек Кошелек 1. Это должно сделать кошелек-забыть сделку, так что вы можете попробовать двойные потратить.
  • Есть кошелек 1 подключен к только Кошелек 3. Оставьте Bitcoin экземпляр для бумажника 2 и отключен.
  • Выполните операцию, чтобы переместить все средства из Кошелька 1 Кошелек 3. (Это попытка дважды израсходует.)
  • Выполните добычу на Wallet 3 до тех пор, пока не найдет два блока. (Это должно дать ему цепь длиннее, чем один Кошелек 2 имеет.)
  • Включите Bitcoin Кошелек-обратно и подключить его к сети. Он должен прочитать более длинную цепь, повторно орг прочь блок он первоначально добытый, и сделка она имела денег будет теперь оно должна быть недействительной, так как кошелек 3 имеет его вместо.

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

1 октября 2011, 1:42:09 AM   # 3
 
 
Сообщения: 1428
Цитировать по имени
цитировать ответ
по умолчанию Re: [COMPLETE] Тест Единица для blockchain реорганизации

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

Вы предложили интересный метод, но я не уверен, если это действительно будет работать, если я не понял, как testnet-в-коробке работ. Будет не все бумажники использовать тот же blk0001.dat файл? Если да, то в момент бумажник "связанный," он будет читать blkfile и увидеть оригинальную сделку и отказаться от попытки сделать новую, противоречивую сделку. Я, наверное, не совсем понимаю, и / или там, наверное, способ взломать его ... но, как вы сказали, что это очень много работы. Я мог бы просто попытаться вручную построить заголовки и транзакцию и ввести их в специальный файл тест blk0001.dat, так как я на самом деле не нужен заголовок хэш, чтобы иметь ведущие нули для теста. Может быть, я просто должен платить кому-то еще, чтобы сделать это ...

Я буду платить 5 BTC баунти за небольшую blk0001.dat файла, содержащего этот тест единицы.  Она должна быть похожа на обычный файл blk0001.dat: содержит последовательность блоков данных с тем же форматом:

Код:
MagicBytes (4В) 
NumBlkBytes (4В)
Заголовок (80B)
numTx (VAR_INT)
Прд1
Tx2
...
TxN

Меня не волнует, как устроены блоки, и заголовки не должны иметь ведущие нули. Предпочтительно это blkfile бы 3 регулярных блоков, чтобы начать, с несколькими разными адресами и несколько регулярных сделок. Затем следующий блок будет 4, который будет содержать две операции, одна быть признаны недействительными. Далее будет блок-4b, который будет иметь один ТХ с использованием тех же результатов, как один из ТХ в 4а, но по другому адресу. Затем блок 5, который будет распространяться 4b и заставить REORG. Я уверен, что я буду ломаться и сделать что-то вроде этого сам, в конце концов, но я предпочел бы платить кому-то сделать это для меня
etotheipi сейчас офлайн Пожаловаться на etotheipi   Ответить с цитированием Мультицитирование сообщения от etotheipi Быстрый ответ на сообщение etotheipi

1 октября 2011, 6:52:47 PM   # 4
 
 
Сообщения: 253
Цитировать по имени
цитировать ответ
по умолчанию Re: [COMPLETE] Тест Единица для blockchain реорганизации

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

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

16 октября 2011, 1:50:42 PM   # 5
 
 
Сообщения: 1428
Цитировать по имени
цитировать ответ
по умолчанию Re: [COMPLETE] Тест Единица для blockchain реорганизации

ОБНОВИТЬ:  Я создал тест исчерпывающего блока REORG с двойным потратить. Я использовал фактический генезис блок основной сети, а затем создал 3 новые адреса от простых закрытых ключей и выработан около 10 ТХ-х между этими адресами. Я провел несколько часов процессорного времени, чтобы вручную найти Нонс-х, которые дают blockheaders ведущие нули сложности 1, и используется блок-тестирование кода ECDSA дать реальные подписи ТХ в.  Это совершенно действует blockchain, только очень коротким.  (Примечание: на самом деле, это справедливо только если вы установите COINBASE_MATURITY = 1).

Blockchain показана ниже:



Идея состоит в том, чтобы питаться в блоках {0,1,2,3,4} в код первого (blk_0_to_4.dat) в качестве базовой blockchain, а затем кормить в {3А, 4А, 5А} по одному за раз (blk_3A.dat , и т.д). Блок 5А заставит blockchain реорганизацию, в которой есть два coinbase ТХ признаны недействительными, и дважды проводят на C. Там также две операции, которые появляются в обеих цепях, что происходит в реальной REORG. Я использовал фактический генезис блок главной сети, так что если у вас есть блок генезиса жёстко в вашей программе, он не будет задыхаться, когда он находит что-то другое. Это также объясняет, почему нет никаких сделок с адр А на любой другой адрес: я должен был бы иметь закрытый ключ Satoshi (в Я предполагаю, что первый блок был присужден ему).

После загрузки исходного blockchain (блоки 0 до 4), вы должны увидеть следующие остатки: D: 100
После загрузки альтернативной цепи (блоки 3А, 4А, 5А), вы должны увидеть следующие остатки: D: 140

Единичные-тестовые файлы находятся в том же формате, как blk0001.dat:
  
Код:
magicNum (4) + totalBlkByts (4) + заголовок (80) + numTx (var_int) + TX1 + tx2 + ... + TxN
http://dl.dropbox.com/u/1139081/reorgtest/blk_0_to_4.dat
http://dl.dropbox.com/u/1139081/reorgtest/blk_3A.dat
http://dl.dropbox.com/u/1139081/reorgtest/blk_4A.dat
http://dl.dropbox.com/u/1139081/reorgtest/blk_5A.dat
http://dl.dropbox.com/u/1139081/reorgtest/reorgtest.hex

Наконец, здесь есть сырые шестигранный все блоки (в том числе в reorgtest.hex):

Код:
Путь к файлу: reorgTest / blk_0_to_4.dat
   f9beb4d9
   1d010000

      01000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
      00000000 3ba3edfd 7a7b12b2 7ac72c3e 67768f61 7fc81bc3 888a5132 3a9fb8aa
      4b1e5e4a 29ab5f49 ffff001d 1dac2b7c
   01

      01000000 01000000 00000000 00000000 00000000 00000000 00000000 00000000
      00000000 00ffffff ff4d04ff ff001d01 04455468 65205469 6d657320 30332f4a
      616e2f32 30303920 4368616e 63656c6c 6f72206f 6e206272 696e6b20 6f662073
      65636f6e 64206261 696c6f75 7420666f 72206261 6e6b73ff ffffff01 00f2052a
      01000000 43410467 55482719 8afdb0fe 67f1a671 30b7105c d6a828e0 3909a679
      62e0ea1f 61deb649 f6bc3f4c ef38c4f3 5504e51e c112de5c 384df7ba 0b8d578a
      4c702b6b f11d5fac 00000000

   f9beb4d9
   d4000000

      01000000 6fe28c0a b6f1b372 c1a6a246 ae63f74f 931e8365 e15a089c 68d61900
      00000000 aee7e7fc 832d028f 454d4fa1 ca60ba2f 1760d35a 80570cb6 3fe0d6dd
      4755087a 81ad5f49 ffff001d 3eadf78a
   01

      01000000 01000000 00000000 00000000 00000000 00000000 00000000 00000000
      00000000 00ffffff ff0404a7 b689ffff ffff0100 f2052a01 00000043 41046868
      0737c76d abb801cb 2204f57d be4e4579 e4f710cd 67dc1b42 27592c81 e9b5cf02
      b5ac9e8b 4c9f49be 5251056b 6a6d011e 4c37f6b6 d17ede6b 55faa235 19e2ac00
      000000

   f9beb4d9
   95010000

      01000000 1b5514b8 3257d924 be7f10c6 5b95b1f3 c0e50081 e1dfd894 3eece5eb
      00000000 7bf583e6 b91af0b6 405d2b25 30488edd 37d5f52a a8b2bd02 472b205a
      9840e789 daaf5f49 ffff001d ac1901ce
   02

      01000000 01000000 00000000 00000000 00000000 00000000 00000000 00000000
      00000000 00ffffff ff04bcba 7261ffff ffff0100 f2052a01 00000043 41046868
      0737c76d abb801cb 2204f57d be4e4579 e4f710cd 67dc1b42 27592c81 e9b5cf02
      b5ac9e8b 4c9f49be 5251056b 6a6d011e 4c37f6b6 d17ede6b 55faa235 19e2ac00
      000000

      01000000 01aee7e7 fc832d02 8f454d4f a1ca60ba 2f1760d3 5a80570c b63fe0d6
      dd475508 7a000000 004a4930 46022100 38fcc428 e8f28ebe a2e8682a 611ac301
      2aedf528 9535f377 6c3b3acf 5fbcff74 022100c5 1c373fab 30abd0e9 a594be13
      8bdd99a2 1cdcdb22 58cf9795 c3d569ac 25c3aa01 FFFFFFFF 0200ca9a 3b000000
      001976a9 14cb2abd e8bccacc 32e893df 3a054b9e f7f227a4 ce88ac00 286bee00
      00000019 76a914ee 26c56fc1 d942be8d 7a24b2a1 001dd894 69398088 ac000000
      00

   f9beb4d9
   96020000

      01000000 979fc396 16bf1dc6 b1f88167 f76383d4 4d65ccd0 fc99b7f9 1bcb2c95
      00000000 f514b5bb 76a2f0e1 2ab5ece6 b677dbc9 a28df272 f429ced3 101ea2cc
      0e2723bc 33b25f49 ffff001d e06e1da7
   03

      01000000 01000000 00000000 00000000 00000000 00000000 00000000 00000000
      00000000 00ffffff ff0432b7 5a74ffff ffff0100 f2052a01 00000043 4104b95c
      249d84f4 17e3e395 a1274254 28b54067 1cc15881 eb828c17 b722a53f c599e21c
      a5e56c90 f340988d 3933acc7 6beb832f d64cab07 8ddf3ce7 32923031 d1a8ac00
      000000

      01000000 017f47ca aade4bd2 5b1dc863 9411600f d5c279e4 02bd01c0 a0b3c703
      caf05cc2 29010000 46022100 008c4930 8ae7eadb 9e9c0de8 1b478869 08df8720
      9bea1cfa d02ba7de 9bb54cf0 6209da6a 0221005b b2e487cb 05464b31 305bd34e
      742d1dd7 0675cfe5 0c80391f c6b2a578 781c9c01 41046868 0737c76d abb801cb
      2204f57d be4e4579 e4f710cd 67dc1b42 27592c81 e9b5cf02 b5ac9e8b 4c9f49be
      5251056b 6a6d011e 4c37f6b6 d17ede6b 55faa235 19e2ffff ffff0100 286bee00
      00000019 76a914c5 22664fb0 e55cdc5c 0cea73b4 aad97ec8 34323288 ac000000
      00

      01000000 017f47ca aade4bd2 5b1dc863 9411600f d5c279e4 02bd01c0 a0b3c703
      caf05cc2 29000000 46022100 008c4930 5dfc506e 455cd745 20b55f30 e23b7c57
      4476d82a 0a93ced9 17b2819e 2cf0089c 022100d0 33afc4b1 39bb5493 d6b35055
      8752692b 04d7f0d2 12ec5cb3 9f9b19c6 a1a29201 4104b95c 249d84f4 17e3e395
      a1274254 28b54067 1cc15881 eb828c17 b722a53f c599e21c a5e56c90 f340988d
      3933acc7 6beb832f d64cab07 8ddf3ce7 32923031 d1a8ffff ffff0100 ca9a3b00
      00000019 76a914c5 22664fb0 e55cdc5c 0cea73b4 aad97ec8 34323288 ac000000
      00

   f9beb4d9
   73010000

      01000000 50f8231e 5fd476f4 70e1ba49 37bc97cb 304136c9 6c765339 308935bc
      00000000 9569f145 11daa8a1 19da79c2 1596a6a4 394f9665 7b15ec3e 2828cadc
      969b3e18 8bb45f49 ffff001d e3a9e568
   02

      01000000 01000000 00000000 00000000 00000000 00000000 00000000 00000000
      00000000 00ffffff ff0425a1 4091ffff ffff0100 f2052a01 00000043 4104678a
      fdb0fe55 48271967 f1a67130 b7105cd6 a828e039 09a67962 e0ea1f61 deb649f6
      bc3f4cef 38c4f355 04e51ec1 12de5c38 4df7ba0b 8d578a4c 702b6bf1 1d5fac00
      000000

      01000000 019b2468 285fc191 b7a033b2 f32b3de8 f0c39d1e ac622f51 32565f1e
      a8ca74ec 8d000000 004a4930 46022100 7a284fa2 1364d749 389ff623 28e837dd
      2676cbe4 e202c076 6e3950cb d0a911e4 0221005a c1541e38 1b6d358d f08cce6a
      2869b76d 5ffe05b6 aaca5c03 ebcba855 9c4ede01 FFFFFFFF 0100f205 2a010000
      001976a9 14c52266 4fb0e55c dc5c0cea 73b4aad9 7ec83432 3288ac00 000000

Путь к файлу: reorgTest / blk_3A.dat

   f9beb4d9
   96020000

      01000000 979fc396 16bf1dc6 b1f88167 f76383d4 4d65ccd0 fc99b7f9 1bcb2c95
      00000000 2d18a10c 7f32af3c e3b92a12 8380045a 2d44ffba 2fe37317 6bc2f11e
      dd01aa08 32b25f49 ffff001d f2c86150
   03

      01000000 01000000 00000000 00000000 00000000 00000000 00000000 00000000
      00000000 00ffffff ff041069 b8e0ffff ffff0100 f2052a01 00000043 4104ed83
      704c95d8 29046f1a c2780621 1132102c 34e9ac7f fa1b7111 0658e5b9 d1bdedc4
      16f5cefc 1db0625c d0c75de8 192d2b59 2d7e3b00 bcfb4a0e 860d880f d1fcac00
      000000

      01000000 017f47ca aade4bd2 5b1dc863 9411600f d5c279e4 02bd01c0 a0b3c703
      caf05cc2 29010000 46022100 008c4930 8ae7eadb 9e9c0de8 1b478869 08df8720
      9bea1cfa d02ba7de 9bb54cf0 6209da6a 0221005b b2e487cb 05464b31 305bd34e
      742d1dd7 0675cfe5 0c80391f c6b2a578 781c9c01 41046868 0737c76d abb801cb
      2204f57d be4e4579 e4f710cd 67dc1b42 27592c81 e9b5cf02 b5ac9e8b 4c9f49be
      5251056b 6a6d011e 4c37f6b6 d17ede6b 55faa235 19e2ffff ffff0100 286bee00
      00000019 76a914c5 22664fb0 e55cdc5c 0cea73b4 aad97ec8 34323288 ac000000
      00

      01000000 017f47ca aade4bd2 5b1dc863 9411600f d5c279e4 02bd01c0 a0b3c703
      caf05cc2 29000000 46022100 008c4930 c6b68668 5134337a daf4b5a5 e3e654c9
      12eb3de1 938b9e44 8f3ed6d4 9995f0aa 0221001d 6d972ae1 783ebe81 8f20d038
      bbc57bee a609950e 59b1235f d8da36dc a6e93f01 4104b95c 249d84f4 17e3e395
      a1274254 28b54067 1cc15881 eb828c17 b722a53f c599e21c a5e56c90 f340988d
      3933acc7 6beb832f d64cab07 8ddf3ce7 32923031 d1a8ffff ffff0100 ca9a3b00
      00000019 76a914ee 26c56fc1 d942be8d 7a24b2a1 001dd894 69398088 ac000000
      00

Путь к файлу: reorgTest / blk_4A.dat

   f9beb4d9
   d4000000

      01000000 dd63f62e f59d5b6a 6da2a364 07f76e4e 28026a3f d3a46700 d2844247
      00000000 7fa55061 fc4bd2a3 558da5bd 1e2f9492 25ec6a44 a1e52c1b 9a1aed35
      5dd5d305 8ab45f49 ffff001d f83345c6
   01

      01000000 01000000 00000000 00000000 00000000 00000000 00000000 00000000
      00000000 00ffffff ff04e81e 7029ffff ffff0100 f2052a01 00000043 4104678a
      fdb0fe55 48271967 f1a67130 b7105cd6 a828e039 09a67962 e0ea1f61 deb649f6
      bc3f4cef 38c4f355 04e51ec1 12de5c38 4df7ba0b 8d578a4c 702b6bf1 1d5fac00
      000000

Путь к файлу: reorgTest / blk_5A.dat

   f9beb4d9
   73010000

      01000000 28161021 bfa20402 69b4e1d4 f78cdf77 258048f6 d1428214 4cc01d55
      00000000 db4a7250 0780d4ad afee03d5 ff2e0c5e a9545eb2 b1e73914 947d3c3d
      c6c1c3b0 e2b65f49 ffff001d 261f5142
   02

      01000000 01000000 00000000 00000000 00000000 00000000 00000000 00000000
      00000000 00ffffff ff042e69 6e7affff ffff0100 f2052a01 00000043 4104678a
      fdb0fe55 48271967 f1a67130 b7105cd6 a828e039 09a67962 e0ea1f61 deb649f6
      bc3f4cef 38c4f355 04e51ec1 12de5c38 4df7ba0b 8d578a4c 702b6bf1 1d5fac00
      000000

      01000000 019b2468 285fc191 b7a033b2 f32b3de8 f0c39d1e ac622f51 32565f1e
      a8ca74ec 8d000000 004a4930 46022100 7a284fa2 1364d749 389ff623 28e837dd
      2676cbe4 e202c076 6e3950cb d0a911e4 0221005a c1541e38 1b6d358d f08cce6a
      2869b76d 5ffe05b6 aaca5c03 ebcba855 9c4ede01 FFFFFFFF 0100f205 2a010000
      001976a9 14c52266 4fb0e55c dc5c0cea 73b4aad9 7ec83432 3288ac00 000000


Addr А: 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa (PrivKey: <недоступен>  (Satoshi))
Addr Б: 1NiEGXeURREqqMjCvjCeZn6SwEBZ9AdVet (PrivKey: bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb)
Addr С: 1KXFNhNtrRMfgbdiQeuJqnfD7dR4PhniyJ (PrivKey: cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc)
Addr D: 1JyMKvPHkrCQd8jQrqTR1rBsAd1VpRhTiE (PrivKey: dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd)


Я подключил эти данные через мой собственный код blockchain орг / Reorg, и подтвердил, что все работает, как ожидалось. Существовал некоторые трудности при первом с несовпадением хэш, но это все было разработано. Пожалуйста, дайте мне знать, если вы хотели бы это в другой форме, так как это очень легко использовать мои инструменты Python для преобразования данных в другой формат.

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

16 октября 2011, 6:43:06 PM   # 6
 
 
Сообщения: 1652
Цитировать по имени
цитировать ответ
по умолчанию Re: [COMPLETE] Тест Единица для blockchain реорганизации

Хорошая работа!

Это почти точно направление я направляюсь с рамками тестирования кросс-платформенной я работаю, хотя я планировал хранить блоки в формате JSON и планирует использовать структуру Twisted / Trial Питона кормить различные цепи к реализации, чтобы увидеть, если они принимают или отвергают их.

Я отвлекся от выпуска 0,5, а затем уведен снова, потому что я не мог сопротивляться экспериментировать с "OP_EVAL" Идея и multisignature Bitcoin адрес ...
Гэвин Андресен сейчас офлайн Пожаловаться на Гэвин Андресен   Ответить с цитированием Мультицитирование сообщения от Gavin Andresen Быстрый ответ на сообщение Гэвин Андресен

16 октября 2011, 8:18:30 PM   # 7
 
 
Сообщения: 1428
Цитировать по имени
цитировать ответ
по умолчанию Re: [COMPLETE] Тест Единица для blockchain реорганизации

Хорошая работа!

Это почти точно направление я направляюсь с рамками тестирования кросс-платформенной я работаю, хотя я планировал хранить блоки в формате JSON и планирует использовать структуру Twisted / Trial Питона кормить различные цепи к реализации, чтобы увидеть, если они принимают или отвергают их.

Я отвлекся от выпуска 0,5, а затем уведен снова, потому что я не мог сопротивляться экспериментировать с "OP_EVAL" Идея и multisignature Bitcoin адрес ...


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

Я до сих пор не получили в сети на всех, поэтому я все еще копался на битовом уровне, а не на все, что знакомы с JSON. Но данные легко могут быть преобразованы в любой другой формат. В шестнадцатеричном файле, каждый "блок" из гекса соответствует одному объекту. Так оно и должно быть легко извлечь любой заголовок или Тх в этом blockchain. Или, если вы дадите мне некоторые рекомендации / ссылки на JSON, я могу преобразовать его довольно легко: я, вероятно, следует интегрировать JSON писатель / анализатор в моем коде, так или иначе.


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

17 октября 2011, 11:08:46 AM   # 8
 
 
Сообщения: 253
Цитировать по имени
цитировать ответ
по умолчанию Re: [COMPLETE] Тест Единица для blockchain реорганизации

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

17 октября 2011, 11:40:36 AM   # 9
 
 
Сообщения: 1526
Цитировать по имени
цитировать ответ
по умолчанию Re: [COMPLETE] Тест Единица для blockchain реорганизации

Вы можете увидеть, как это делается в BitCoinJ здесь:

  http://code.google.com/p/bitcoinj/source/browse/trunk/tests/com/google/bitcoin/core/ChainSplitTests.java

(Это не все связанные тесты блок цепи, очевидно).

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

17 октября 2011, 1:37:11 PM   # 10
 
 
Сообщения: 868
Цитировать по имени
цитировать ответ
по умолчанию Re: [COMPLETE] Тест Единица для blockchain реорганизации

Хорошая работа!

Это почти точно направление я направляюсь с рамками тестирования кросс-платформенной я работаю, хотя я планировал хранить блоки в формате JSON и планирует использовать структуру Twisted / Trial Питона кормить различные цепи к реализации, чтобы увидеть, если они принимают или отвергают их.

Я отвлекся от выпуска 0,5, а затем уведен снова, потому что я не мог сопротивляться экспериментировать с "OP_EVAL" Идея и multisignature Bitcoin адрес ...

Gavin, ты отказался от каких-либо усилий, чтобы использовать bitcoinjs / nodejs материал Стефана для этого тестирования рамки?
Стив сейчас офлайн Пожаловаться на Steve   Ответить с цитированием Мультицитирование сообщения от Steve Быстрый ответ на сообщение Steve

17 октября 2011, 2:24:35 PM   # 11
 
 
Сообщения: 1652
Цитировать по имени
цитировать ответ
по умолчанию Re: [COMPLETE] Тест Единица для blockchain реорганизации

Gavin, ты отказался от каких-либо усилий, чтобы использовать bitcoinjs / nodejs материал Стефана для этого тестирования рамки?

Я никогда не начинал с bitcoinjs / nodejs, потому что я не программист JavaScript (и я слишком занят, чтобы занять время, чтобы узнать).

Было бы прекрасно, если бы кто-нибудь является программист JavaScript решил показать мне, как легко было бы и взял bitcoinjs / nodejs и создали действительно хорошую основу тестирования кросс-реализации с кучей тестовых цепей.

RE: точка Майка, что создание полной сложности тестовых цепей является боль в заднице: Я думаю, что один раз боль стоит, потому что я не думаю, что мы можем рассчитывать на каждый Bitcoin Implementor делает его легко запустить их реализацию в блок-тестовый режим с супер-низкой сложности. И создавая трудности-1 блоков с GPU на самом деле чертовски быстро ...
Гэвин Андресен сейчас офлайн Пожаловаться на Гэвин Андресен   Ответить с цитированием Мультицитирование сообщения от Gavin Andresen Быстрый ответ на сообщение Гэвин Андресен

17 октября 2011, 2:33:39 PM   # 12
 
 
Сообщения: 868
Цитировать по имени
цитировать ответ
по умолчанию Re: [COMPLETE] Тест Единица для blockchain реорганизации

RE: точка Майка, что создание полной сложности тестовых цепей является боль в заднице: Я думаю, что один раз боль стоит, потому что я не думаю, что мы можем рассчитывать на каждый Bitcoin Implementor делает его легко запустить их реализацию в блок-тестовый режим с супер-низкой сложности. И создавая трудности-1 блоков с GPU на самом деле чертовски быстро ...
Что делать, если клиент сделал это так, чтобы вы могли изменить желаемую скорость создания блока? Не будет ли это единственная вещь, которую вы должны были бы клиент для поддержки? Если вы установите его на 1 секунду вместо 10 минут, то трудности не должны подниматься выше 1, а все остальные коды могут работать без изменений (что делает режим тестирования как можно более реалистичным, делая это легко генерировать блоки).
Стив сейчас офлайн Пожаловаться на Steve   Ответить с цитированием Мультицитирование сообщения от Steve Быстрый ответ на сообщение Steve

17 октября 2011, 4:41:50 PM   # 13
 
 
Сообщения: 1428
Цитировать по имени
цитировать ответ
по умолчанию Re: [COMPLETE] Тест Единица для blockchain реорганизации

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


Это хороший пункт о COINBASE_MATURITY. Я забыл о том, что когда я делал тест, но я не есть хороший способ вокруг него. Причина, почему я сделал это испытание было так, что я, как человек, может проверить точное состояние blockchain в памяти на каждом шаге, чтобы убедиться, что мой код обрабатывает все это правильно. Это становится значительно более сложным, если я должен иметь более 100 блоков. Так что вы правы, для этого теста вы должны изменить COINBASE_MATURITY 1.
etotheipi сейчас офлайн Пожаловаться на etotheipi   Ответить с цитированием Мультицитирование сообщения от etotheipi Быстрый ответ на сообщение etotheipi

18 июня 2013, 8:49:34 PM   # 14
 
 
Сообщения: 1428
Цитировать по имени
цитировать ответ
по умолчанию Re: [COMPLETE] Тест Единица для blockchain реорганизации

Обновить:

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

Конечно, все это время проволочки, я никогда не понимал, что это уже есть (кажется, вроде очевидно, задним числом). Испытание было написано с целью запуска блоков через [1, 2, 3, 4, 3А, 4А, 5A] (Где сине-подчеркивание представляет собой блок, который вызывает в REORG). Но нет никаких причин, вы не можете сделать [1, 2, 3, 3А, 3, 4, 4A, 5A]. Тогда 3A на самом деле "оригинал", Блок 4 тянет тебя из этой ветви, то 5 тянет вас назад к исходной ветви. Он эффективно обнажает свой код транзакции, который является действительным, а затем дважды израсходованы, а затем вернулся обратно к действительным, когда исходная цепь снова становится самым длинным.

Кроме того, кто-то просто отвечал на вопрос о тестировании Reorg, поэтому я думал, что шишка эту тему, так как она была написана так давно, но по-прежнему остается полезным (по крайней мере, для меня).
etotheipi сейчас офлайн Пожаловаться на etotheipi   Ответить с цитированием Мультицитирование сообщения от etotheipi Быстрый ответ на сообщение etotheipi

19 июня 2013, 7:30:10 AM   # 15
 
 
Сообщения: 1526
Цитировать по имени
цитировать ответ
по умолчанию Re: [COMPLETE] Тест Единица для blockchain реорганизации

Круто. Мэтт сделал очень большую работу по созданию принятия блока и регрессивные тесты (которые включают в себя повторные Orgs) для bitcoinj. Вы можете видеть это здесь:

https://code.google.com/p/bitcoinj/source/browse/core/src/test/java/com/google/bitcoin/core/BitcoindComparisonTool.java

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



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

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

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

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW