Вернуться   Биткоин Форум > Разработка и Техническое Обсуждение
23 мая 2011, 7:05:33 AM   # 1
 
 
Сообщения: 481
Цитировать по имени
цитировать ответ
по умолчанию Re: [ИСПРАВЛЕНО] Скрипт вычисляет 71% freeable сделок

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


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

Поэтому я дал ему идти. Я надеюсь, что кто-то будет проверять мою логику, тем более, что я новичок в Python.

$ Время ЦСИ / bitcointools / freeable.py
загруженные 125925 блоки
201085 из 544296 ТХ freeable (исправленный: 387616 из 544296 ТХ)
63328760 из 168627001 ТХ байт freeable (исправленный: 123285900 168627001 из ТХ байтов)

реальные 0m47.131s
0m43.799s пользователей
SYS 0m2.744s
$ Ls -l .bitcoin / blk0 * .dat
-RW ------- 1 jtobey jtobey 180119823 2011-05-23 00:42 .bitcoin / blk0001.dat

(Отредактировано: исправлена ​​ошибка http://forum.bitcoin.org/index.php?topic=9461.msg137059#msg137059) Разница в bitcointools:
Код:
дифференциал --git а / deserialize.py б / deserialize.py
Индекс fe0cb09..a67645b 100644
--- а / deserialize.py
+++ б / deserialize.py
@@ -75,6 +75,7 @@ Защита deserialize_TxOut (д, owner_keys = нет):
 
 Защиту parse_Transaction (VDS):
   d = {}
+  Пуск = vds.read_cursor # XXX брейки BCDataStream абстракции, мы заботимся?
   d [ 'версии'] = vds.read_int32 ()
   n_vin = vds.read_compact_size ()
   д [ 'txIn'] = []
@@ -85,6 +86,7 @@ Def parse_Transaction (VDS):
   для г в xrange (n_vout):
     д [ 'txOut']. добавить (parse_TxOut (VDS))
   д [ 'Locktime'] = vds.read_uint32 ()
+  д [ 'ТХ'] = vds.input [начать: vds.read_cursor]
   возвращение d
 Защиту deserialize_Transaction (д, transaction_index = нет, owner_keys = нет):
   результат = "% D ТХ в,% d из \ п"% (LEN (д [ 'txIn']), длина (д [ 'txOut']))
дифференциал --git а / freeable.py б / freeable.py
Новый режим файла 100755
индекс 0000000..c79f458
--- / DEV / нуль
+++ б / freeable.py
@@ -0,0 +1,87 @@
+#! / USR / бен / окр питон
+#
+# Чтение базы данных блока, выяснить, как много сделок
+# Может быть очищены и сколько байт они занимают.
+# TODO: узнать, сколько хэш Меркла может быть удалены.
+#
+от bsddb.db импорта *
+ведение журнала импорта
+импорт ОС
+импорт SYS
+
+от BCDataStream импорта *
+от блока импорта scan_blocks
+от десериализации импорта parse_Block
+от Util импорта determine_db_dir, create_env
+импорт Crypto.Hash.SHA256, как SHA256
+
+импорт binascii # отладки
+
+Защита основные ():
+  импорт optparse
+  парсер = optparse.OptionParser (использование ="% Проги [опция]")
+  parser.add_option ("--datadir", Приемник ="каталогу_данных", По умолчанию = None,
+                    помощь ="Искать файлы здесь (по умолчанию Bitcoin по умолчанию)")
+  (Опционы, арг) = parser.parse_args ()
+
+  если options.datadir не None:
+    db_dir = determine_db_dir ()
+  еще:
+    db_dir = options.datadir
+
+  пытаться:
+    db_env = create_env (db_dir)
+  кроме DBNoSuchFileError:
+    logging.error ("Не удалось открыть " + Db_dir)
+    sys.exit (1)
+
+  blockfile = открыт (os.path.join (db_dir, "BLK% 04d.dat"% (1)), "Р.Б.")
+  block_datastream = BCDataStream ()
+  block_datastream.map_file (blockfile, 0)
+
+  блоки = []
+  Защиту gather_stats (block_data):
+    block_datastream.seek_file (block_data [ 'nBlockPos'])
+    blocks.append (parse_Block (block_datastream))
+    возвращающие
+
+  scan_blocks (db_dir, db_env, gather_stats)
+  blocks.reverse ()
+  печать 'загружен', LEN (блоки), 'блоки'
+
+  Тх = {}
+  total_tx = 0
+  freeable_tx = 0
+  total_bytes = 0
+  freeable_bytes = 0
+
+  для данных в блоках:
+    coinbase = True
+    для TxN в данных [ «операции»]:
+      tx_hash = SHA256.new (SHA256.new (TXN [ 'ОГО']). дайджест ()). дайджест ()
+      #Распечатать '> », Binascii.hexlify (tx_hash)
+      tx_bytes = Len (TXN [ 'ТХ'])
+      TX [tx_hash] = (tx_bytes, длина (TXN [ 'txOut']))
+      total_tx + 1 =
+      total_bytes + = tx_bytes
+
+      если coinbase:
+        coinbase = False
+      еще:
+        для txin в TxN [ 'txIn']:
+          #Распечатать '< », Binascii.hexlify (txin [ 'prevout_hash'])
+          (Байты, жить) = Ой [txin [ 'prevout_hash']]
+          если жить == 1:
+            freeable_bytes + = байт
+            freeable_tx + 1 =
+            дель ТХ [txin [ 'prevout_hash']]
+          еще:
+            ТХ [txin [ 'prevout_hash']] = (байты, жить - 1)
+
+  db_env.close ()
+
+  печать freeable_tx, 'из', total_tx, 'ТХ freeable'
+  печать freeable_bytes, 'из', total_bytes, 'ТХ байтов freeable'
+
+если __name__ == '__main__':
+    главный()
Джон TOBEY сейчас офлайн Пожаловаться на John Tobey   Ответить с цитированием Мультицитирование сообщения от John Tobey Быстрый ответ на сообщение John Tobey


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


23 мая 2011, 10:27:20 AM   # 2
 
 
Сообщения: 416
Цитировать по имени
цитировать ответ
по умолчанию Re: [ИСПРАВЛЕНО] Скрипт вычисляет 71% freeable сделок

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





201085 из 544296 ТХ freeable
63328760 из 168627001 ТХ байт freeable


Хорошая работа! Я надеюсь, что я получу вокруг проверить это в ближайшее время.

Одна из сложностей - Хотя вы можете выбросить сделки, вы должны держать Merkle хэша дерево окурков, так что это примерно 32 байт в транзакцию (потому что высота дерева низкая), который вы должны хранить.

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

23 мая 2011, 11:33:26 AM   # 3
 
 
Сообщения: 1526
Цитировать по имени
цитировать ответ
по умолчанию Re: [ИСПРАВЛЕНО] Скрипт вычисляет 71% freeable сделок

Отличная работа! Симуляция Merkle коллапс дерева, вероятно, гораздо сложнее, но даже тот факт, что 36% могут быть удалены сегодня велик. Я бы ожидать, что число только идти вверх, как экономика набирает обороты.

Не могли бы вы обновить страницу вики с результатами?
Майк Хирн сейчас офлайн Пожаловаться на Mike Хирн   Ответить с цитированием Мультицитирование сообщения от Mike Хирн Быстрый ответ на сообщение Mike Хирн

23 мая 2011, 2:15:36 PM   # 4
 
 
Сообщения: 481
Цитировать по имени
цитировать ответ
по умолчанию Re: [ИСПРАВЛЕНО] Скрипт вычисляет 71% freeable сделок

Отличная работа! Симуляция Merkle коллапс дерева, вероятно, гораздо сложнее, но даже тот факт, что 36% могут быть удалены сегодня велик. Я бы ожидать, что число только идти вверх, как экономика набирает обороты.

Не могли бы вы обновить страницу вики с результатами?

Обновлено: "По состоянию на май 2011 года, программа не выполняет обрезку, а экономия рассчитывается {ссылка здесь} на 37% сделок, или 35% от сырья блока байтов."

У меня не будет времени, чтобы рассчитать дерево обрезков Merkle. Я полагаю, нижняя граница является счетчиком транзакций 32 раз, а верхняя граница вдвое больше, чем. Добавление прежний номер к freeable ТХ байт и деления исходного размера файла дает мне 38,7%, что несколько выше, чем скорость в обоих транзакций количества транзакций и байтов. Это кажется мне неправильным, но я не дал ему серьезные мысли.
Джон TOBEY сейчас офлайн Пожаловаться на John Tobey   Ответить с цитированием Мультицитирование сообщения от John Tobey Быстрый ответ на сообщение John Tobey

23 мая 2011, 2:32:09 PM   # 5
 
 
Сообщения: 481
Цитировать по имени
цитировать ответ
по умолчанию Re: [ИСПРАВЛЕНО] Скрипт вычисляет 71% freeable сделок

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

OOH! Исправлена ​​ошибка.  "ТХ [txin [ 'prevout_n']]" должно быть "ТХ [txin [ 'prevout_hash']]", Это улучшает Статы совсем немного:

загруженные 125925 блоки
387616 из 544296 ТХ freeable (71,2%)
123285900 168627001 из TX байт freeable (73,1%)

(387616 * 32 + 123285900) / 180119823 = 75,3%, по-прежнему слишком высока подозреваю.

Обновление вики ...
Джон TOBEY сейчас офлайн Пожаловаться на John Tobey   Ответить с цитированием Мультицитирование сообщения от John Tobey Быстрый ответ на сообщение John Tobey

24 мая 2011, 2:43:44 AM   # 6
 
 
Сообщения: 2870
Цитировать по имени
цитировать ответ
по умолчанию Re: [ИСПРАВЛЕНО] Скрипт вычисляет 71% freeable сделок

Я получаю подобные номера с использованием данных BBE. 391288 сделки и 124638004 байт более 126191 блоков.
theymos сейчас офлайн Пожаловаться на theymos   Ответить с цитированием Мультицитирование сообщения от theymos Быстрый ответ на сообщение theymos

24 мая 2011, 1:25:48 PM   # 7
 
 
Сообщения: 481
Цитировать по имени
цитировать ответ
по умолчанию Re: [ИСПРАВЛЕНО] Скрипт вычисляет 71% freeable сделок

Я получаю подобные номера с использованием данных BBE. 391288 сделки и 124638004 байт более 126191 блоков.

Спасибо за проверку.
Джон TOBEY сейчас офлайн Пожаловаться на John Tobey   Ответить с цитированием Мультицитирование сообщения от John Tobey Быстрый ответ на сообщение John Tobey



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

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

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

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW