Вернуться   Биткоин Форум > Разработка и Техническое Обсуждение
6 июля 2012, 4:58:50 PM   # 1
 
 
Сообщения: 1050
Цитировать по имени
цитировать ответ
по умолчанию Re: Обрезка в опорном клиенте: ultraprune режима

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


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

Всем привет,

Я внедрил новую систему проверки блок / транзакций для ссылочного клиента, называется "ultraprune",

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

Учитывая, что почти все операции, выполняемые на blockchain не требуют полного предыдущих операций, но только их неизрасходованные выходы, казалось расточительным использовать полностью индексированный blockchain для всего. Вместо этого мы храним базу данных только неизрасходованные выходы транзакций. После некоторых усилий, чтобы писать пользовательский компактные сериализации для них, я мог бы уменьшить объем, необходимый для такого набора данных менее 70 МБ. Это хранится в файле базы данных BDB (coins.dat), и с индексацией и накладными расходами, и занимает около 130 МБ.

Теперь, это не достаточно. Вы не можете иметь полное остроумие узла только эти выходов. В частности, он не может отменить блок связи, не может выполнить повторное сканирование для бумажника операций, и не может служить цепь к другим узлам. Это, однако, довольно редкие операции. Чтобы компенсировать это, мы продолжаем Неиндексированные но целые блоки (только каждый блок в отдельном файле, на данный момент), а также "расстегивать" информация для соединенных между собой блоков вокруг в дополнение к coins.dat. Нам также нужен индекс блока с метаданными о всех сохраненных блоках, который занимает около 40 МБ на данный момент (хотя это может быть легко уменьшено тоже). Обратите внимание, что это означает, что мы теряем способность найти фактическую сделку в цепочке от TXID, но это не является необходимым для нормальной работы. Такой индекс может быть повторно добавлен позже, если это необходимо.

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

Так, в целом, он позволяет запускать полный узел (сейчас) с:
  • 130 MB coins.dat
  • 40 MB chain.dat
  • размер нераспределенных блоков, + 12%, что для отмены информации.

О, это также быстрее. Я протестированные полный импорт из blockchain (187800 блоков) на моем ноутбуке (2.2GHz i7, 8 GiB RAM, 640 Гб спиннинг жесткого диска) в 22-е минуты. Это было с локального диска, а не из сети (которая имеет дополнительные накладные расходы, и ограничивается ограничениями пропускной способности). То есть с некоторой тонкой настройкой, хотя.

Если люди хотят экспериментировать с ней, видеть мой "ultraprune" филиал на GitHub:  https://github.com/sipa/bitcoin/tree/ultraprune.

Обратите внимание, что это экспериментальная, и имеет некоторые недостатки:
  • Вы не можете найти (полную) сделку от всего своего TXID.
  • если у вас есть операции, которые зависят от неподтвержденных транзакций, тем не получит повторно распространяться
  • только блок загрузки и реорганизации будут несколько проверены; Используйте на свой риск
  • меньше проверки согласованности возможно в базе данных, и еще меньше реализованы

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


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


6 июля 2012, 5:18:39 PM   # 2
 
 
Сообщения: 1708
Цитировать по имени
цитировать ответ
по умолчанию Re: Обрезка в опорном клиенте: ultraprune режима

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





Re: блоки хранящихся на диск:
1) Я заметил, делать что-то подобное, что с более поздним 500Кбом блоками, если сжать их, они идут вниз до 300 / 350KB
2) ранние блоки только 200 байт или так, но (на мой Mac) занимают 4KB на диске. Это повышает общий размер всех блоков на диске по 500Мб.
3) для жесткого диска хорошее количество, что 22 минут, чтобы сделать полный импорт голова времени поиска (5мс * 200000 = 1000secs)

Для 2) и 3) Я задавался вопросом об объединении небольших блоков, записей почтового индекса в почтовый файлы, чтобы уменьшить диск потери и время поиска. Для маленьких блоков до, скажем, блок 100k они никогда не будут Reorg-е изд так пакетирования их не имеет значения. Вы могли бы иметь «содержащий почтовый файл» в индексе блока.

Я играл с правилом, как "добавить в текущий почтовый индекс, если он содержит менее 500 записей и составляет менее 1 МБ.

Для 3) SSD будет ускорить процесс очень.
jim618 сейчас офлайн Пожаловаться на jim618   Ответить с цитированием Мультицитирование сообщения от jim618 Быстрый ответ на сообщение jim618

6 июля 2012, 6:58:44 PM   # 3
 
 
Сообщения: 924
Цитировать по имени
цитировать ответ
по умолчанию Re: Обрезка в опорном клиенте: ultraprune режима

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

7 июля 2012, 1:00:15 AM   # 4
 
 
Сообщения: 1050
Цитировать по имени
цитировать ответ
по умолчанию Re: Обрезка в опорном клиенте: ultraprune режима

Re: блоки хранящихся на диск:
1) Я заметил, делать что-то подобное, что с более поздним 500Кбом блоками, если сжать их, они идут вниз до 300 / 350KB

Правильно, сами блоки, безусловно, также сжимаемые. Обычай сериализатор может удалить много избыточности тоже уже: подписи в 64 вместо 72 байт, открытые ключи сжаты до 33 байт, а не тратить 4 байта для версии, Locktime, nsequence, ...

котировка
2) ранние блоки только 200 байт или так, но (на мой Mac) занимают 4KB на диске. Это повышает общий размер всех блоков на диске по 500Мб.

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

котировка
3) для жесткого диска хорошее количество, что 22 минут, чтобы сделать полный импорт голова времени поиска (5мс * 200000 = 1000secs)

Не обязательно. Есть кассы на нескольких уровнях, и когда многие файлы создаются в секунду, я уверен, что OS ПАРТИЙ их вместе в один или только несколько записей.

котировка
Для 2) и 3) Я задавался вопросом об объединении небольших блоков, записей почтового индекса в почтовый файлы, чтобы уменьшить диск потери и время поиска. Для маленьких блоков до, скажем, блок 100k они никогда не будут Reorg-е изд так пакетирования их не имеет значения. Вы могли бы иметь «содержащий почтовый файл» в индексе блока.

Я играл с правилом, как "добавить в текущий почтовый индекс, если он содержит менее 500 записей и составляет менее 1 МБ.

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



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

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

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

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW