Вернуться   Биткоин Форум > Разработка и Техническое Обсуждение
30 августа 2014, 4:19:54 PM   # 1
 
 
Сообщения: 983
Цитировать по имени
цитировать ответ
по умолчанию Re: Обрезка старых блоков с диска

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


Всем кто хочет заработать Биткоины без вложений - рекомендую сайт http://bitcoin-zarabotat.ru
Интересно, может ли это быть хорошей идеей, чтобы дать пользователям возможность (не обязательный, а не по умолчанию), чтобы удалить старые блоки с диска (отмененных и блок файлов). Это может позволить им работать "полные узлы" с намного меньше требуемого дискового пространства - но все же trustlessness как реальный полный узел.

От копания в коде, я нашел эти места, где используются / чтения файлов:

Отменить файлы:

  • ConnectBlock (письменно) и DisconnectBlock (чтение): Очевидные места, но они только "недавний" файлы (самое большее до последней контрольной точки).
  • VerifyDB на высоком уровне: Удаление старых блоков, очевидно, мешает нам проверку их целостности, но это не проблема.

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

Блокировать файлы:

  • ConnectTip / DisconnectTip: Они нужны только последние из них, так что удаление "старый" блоки (до последней контрольной точки) должны быть в порядке.
  • -индексировать и друзей, -printblock, getblock RPC, PrintBlockTree: Очевидно, но это "дополнительные функции" что не является необходимым для запуска узла. Пользователи, которые хотят использовать их должны быть достаточно сложными, чтобы знать, что они делают, решая подрезать блоки с диска.
  • VerifyDB на высоком уровне: То же, с отмен файлами.
  • getrawtransaction (без индекса Ого) и повторное сканирование для бумажника операций: Это также функциональность, которая не является строго необходимым, чтобы запустить узел. Опять же, пользователи, которые PRUNE блоки должны знать, что они делают и что это может поставить под угрозу способность импортировать закрытые ключи и тому подобное.
  • Обработка сети запрашивает для блоков: См. Ниже

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

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

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


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


30 августа 2014, 5:30:16 PM   # 2
 
 
Сообщения: 7
Цитировать по имени
цитировать ответ
по умолчанию Re: Обрезка старых блоков с диска

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





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

30 августа 2014, 6:09:59 PM   # 3
 
 
Сообщения: 2366
Цитировать по имени
цитировать ответ
по умолчанию Re: Обрезка старых блоков с диска

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

Стирание само по себе уже реализована в патчи поставленный в GitHub, который, скорее всего, будут объединены в ближайшее время. Она требует выключения бита обслуживания узла сети, как не в состоянии сделать это было бы очень вредно для сети (вызвать новые узлы не в состоянии начальной загрузки в разумные сроки). Важно также, чтобы не удалить самые последние блоки, так как они потенциально необходимы для реорганизации.

То, что я надеюсь, что в конечном итоге сделать здесь есть регулятор, где вы можете установить количество пространства, которое вы хотите использовать (при условии минимума, который, по крайней мере достаточно для самых последних блоков и chainstate), хост затем выбрать равномерно случайная последовательность блока диапазонов, чтобы сохранить, вплоть до их максимального. Самонастройки могут затем продолжить, как правило, даже если ни один из сверстников не были доступны, которые имели все блоки. Подход кэширования вы упоминаете, кажется, не делает много смысла для меня, так как доступ к очень старым блокам равномерно вероятно, ... основываясь, что вы сэкономить на запросах открывает глупую дос-атаку, некоторые идут и извлекают блок 66,666 из всех узлов снова и снова, чтобы сделать это один блок супер популярным за счет всех остальных.

Если вы хотите работать над этим, я мог бы предложить, начиная с 4481 + 4468 и работы по делая это так, чтобы глубина, что отмена хранятся файлы отличаются от блока файлов (например, держать отменить для 2016 блоков и блоков для 288) и сделать это так, если блоки необходимы для REORG за пределами блока ограничения он может пойти повторно за ними.

Другой путь будет работать над улучшением поддержки ключевого днем ​​рождения в wallet-, например, комплексная поддержка даты на импортируемые ключей, а также поддержка пересканирование диапазонов, где вы не имеете блоки с помощью фильтрации цветения.

Третий путь работает над кодированием для сигнализации разреженного блоков- Я хотел бы видеть его так, что узлы имеют компактную случайные начальное число (например, может быть просто 32 бита), где зная текущую высоту, семян, и количество диапазонов блоков, вы знаете, какие диапазоны узел имеет (например, работу нравится, как выбрать Св.нут равномерные случайные записи более большие объемы данных не нужно больше, чем N хранение). У меня есть одно решение, но оно требует O (N) вычисления с текущей высоты на равных, чтобы выяснить, что находится в пределах пэром в настоящее время, и, возможно, лучше это возможно. Мое мышление является то, что мы бы выделить немного службы, который говорит "Я держу последние 2016 блоков плюс некоторый редкий диапазон" и сети сообщение, чтобы рекламировать семена разреженного диапазона на соединении. (В дальнейшем мы бы создать новое сообщение адр, что позволяет просто включить семена непосредственно).



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

31 августа 2014, 9:52:14 AM   # 4
 
 
Сообщения: 983
Цитировать по имени
цитировать ответ
по умолчанию Re: Обрезка старых блоков с диска

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

Да, я знаю, - переход на UTXO набор для проверки ОЙ устраняет необходимость блокировать доступ файлов для мест, упомянутых кроме.

Стирание само по себе уже реализована в патчи поставленный в GitHub, который, скорее всего, будут объединены в ближайшее время. Она требует выключения бита обслуживания узла сети, как не в состоянии сделать это было бы очень вредно для сети (вызвать новые узлы не в состоянии начальной загрузки в разумные сроки). Важно также, чтобы не удалить самые последние блоки, так как они потенциально необходимы для реорганизации.

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

То, что я надеюсь, что в конечном итоге сделать здесь есть регулятор, где вы можете установить количество пространства, которое вы хотите использовать (при условии минимума, который, по крайней мере достаточно для самых последних блоков и chainstate), хост затем выбрать равномерно случайная последовательность блока диапазонов, чтобы сохранить, вплоть до их максимального. Самонастройки могут затем продолжить, как правило, даже если ни один из сверстников не были доступны, которые имели все блоки. Подход кэширования вы упоминаете, кажется, не делает много смысла для меня, так как доступ к очень старым блокам равномерно вероятно, ... основываясь, что вы сэкономить на запросах открывает глупую дос-атаку, некоторые идут и извлекают блок 66,666 из всех узлов снова и снова, чтобы сделать это один блок супер популярным за счет всех остальных.

Да, я знаю, что идея кэширования имеет много проблем. Я также думал о случайном удалении блоков таким образом, чтобы все узлы вместе будут иметь полную историю доступной даже если каждый узел имеет только часть - но я не пошел так далеко, как вы делали с "predicatable" блок диапазонов. Мне нравится эта идея очень много! Если вы пытаетесь самонастройки и в настоящее время не имеете подсоединенные сверстников, которые имеют отдельный блок, вы бы случайно подключиться к новым аналогам, пока вы не получите один? Или реализовать метод явным образом задать сеть "который имеет этот диапазон блоков"?

Если вы хотите работать над этим, я мог бы предложить, начиная с 4481 + 4468 и работы по делая это так, чтобы глубина, что отмена хранятся файлы отличаются от блока файлов (например, держать отменить для 2016 блоков и блоков для 288) и сделать это так, если блоки необходимы для REORG за пределами блока ограничения он может пойти повторно за ними.

Мое мнение таково, что отмененных файлы являются хорошей отправной точкой - они только используется для цепных реорганизацию;, поэтому вопросы сетей нет с ними. Если вы держите только за последнюю пару блоков в них (или к последней контрольной точке), вы должны иметь точно такую ​​же функциональность, как в настоящее время, не так ли? Так почему бы не удалить их до последней контрольной точки, не отключив "сеть" флаг службы, или даже делать это всегда (не только тогда, когда включен в явном виде)? Это похоже на первый логический шаг ко мне (если нет проблем я пропавший без вести с таким подходом).

Третий путь работает над кодированием для сигнализации разреженного блоков- Я хотел бы видеть его так, что узлы имеют компактную случайные начальное число (например, может быть просто 32 бита), где зная текущую высоту, семян, и количество диапазонов блоков, вы знаете, какие диапазоны узел имеет (например, работу нравится, как выбрать Св.нут равномерные случайные записи более большие объемы данных не нужно больше, чем N хранение). У меня есть одно решение, но оно требует O (N) вычисления с текущей высоты на равных, чтобы выяснить, что находится в пределах пэром в настоящее время, и, возможно, лучше это возможно. Мое мышление является то, что мы бы выделить немного службы, который говорит "Я держу последние 2016 блоков плюс некоторый редкий диапазон" и сети сообщение, чтобы рекламировать семена разреженного диапазона на соединении. (В дальнейшем мы бы создать новое сообщение адр, что позволяет просто включить семена непосредственно).

Это звучит как интересная задача для меня. Как насчет этого подхода: Используйте некоторые семена инициализации ПСЧА (может быть что-то простое, как линейная конгруэнция), а затем создать равномерно распределены (на некотором интервале) случайные числа N1, N2, ... и выбрать размеры для блока диапазонов S1, S2 , ... (может быть выбран таким образом, что блоки Si образуют один блок из файла 17 Мбайт). Затем сохранить эти диапазоны:

[N1, N1 + S1),
[N1 + N2, S1 +, N1 + S1 + N2 + S2)
...

Является ли это O (п) подход, который вы отметили? Я не думаю, что О (п) с п быть высота блока слишком плохо. Тем не менее, я считаю, что это теоретически возможно выбрать диапазоны для Ni, а также значения для Si таким образом, что вы получите O (журнал N):

Ni в случайном порядке [2 ^ I, 2 ^ (г + 1)),
Si = 2 ^ I

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

31 августа 2014, 12:12:22 PM   # 5
 
 
Сообщения: 1148
Цитировать по имени
цитировать ответ
по умолчанию Re: Обрезка старых блоков с диска

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

Почему бы не просто хранить блоки через равные промежутки времени? Что такое преимущество, что делает его (псевдо) случайных?

Например, смещение и размер может быть включен в поле услуг. С 16 бит, можно указать размер 8 бит, а 8 бит смещения. 

Узел будет держать 256 блоков из каждого (размера * 256) на смещении (OFFSET размера *) (а также последние 2016 блоков).

Это позволило бы узлы, чтобы указать, что они только хранить 1/255 цепи. Узлы, которые хотят хранить менее не могут быть поддержаны. Настройка размера для всех нулей будет означать, что он не хранит редкие блоки. 

При максимальном размере (255), то узел будет хранить 256 блоков из каждых 65280.

Это означает, что узел всегда хранит блоки в 256 блоке "работает" которые делают его более легким для загрузки.

Некоторые биты могут быть сохранены, делая поле SIZE быть степенью 2. С 3 бита, он будет по-прежнему поддерживает все полномочия 2 до 256. 

Менеджер адреса может быть обновлен таким образом, что он гарантирует, что он имеет 3-4 узлов, чтобы покрыть каждый блок, когда отбрасывая адрес. "getaddr" сообщение может быть отрегулировано таким образом вы можете запросить определенный блок.

Eсть BIP для таможенных служб. 

Автор также включал проект для обнаружения пользовательских услуг, но никогда не включил его в BIP.

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

2 сентября 2014, 8:39:13 AM   # 6
 
 
Сообщения: 2366
Цитировать по имени
цитировать ответ
по умолчанию Re: Обрезка старых блоков с диска

котировка
Почему бы не просто хранить блоки через равные промежутки времени? Что такое преимущество, что делает его (псевдо) случайных?

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

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

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

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

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

Так что те, по крайней мере, мотивации я в основном думали о там.

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

Pieter размещены на Bitcoin-разработки о служебных битов для этого ... не хотя это говорит о редкой поддержки блоков, но только бит, указывающий, что вы можете некоторое количество самых последних блоков. (Он также сделал некоторые измерения, которые показали, что вероятность запроса стала довольно однородной после того, как около 2000 блоков глубоких, очевидно, последние блоки были гораздо более часто запрашиваемым из-за узлы, находящихся на форуме в течение всего нескольких дней / недель).

котировка
Да, я знаю, что идея кэширования имеет много проблем. Я также думал о случайном удалении блоков таким образом, чтобы все узлы вместе будут иметь полную историю доступной даже если каждый узел имеет только часть - но я не пошел так далеко, как вы делали с "predicatable" блок диапазонов. Мне нравится эта идея очень много! Если вы пытаетесь самонастройки и в настоящее время не имеете подсоединенные сверстников, которые имеют отдельный блок, вы бы случайно подключиться к новым аналогам, пока вы не получите один? Или реализовать метод явным образом задать сеть "который имеет этот диапазон блоков"?

Мое мышление является то, что изначально вы должны подключиться к узлу, чтобы выяснить, какие диапазоны у него есть (например, мы просто добавить рукопожатия для этого к протоколу p2p), и вы бы просто отключить сверстник, которые не были полезны для вы, а также узнать, кто имеет то, что (например, если вам нужны блоки 1000-2000, но найти 100000-110000 вы будете знать, куда идти позже), но последнее сообщение адреса должно быть пересмотрены таким образом, чтобы он мог нести данные с ним. Так что ваши коллеги расскажут вам о том, какие узлы могут иметь блоки вам нужно.

котировка
Мое мнение таково, что отмененных файлы являются хорошей отправной точкой - они используются только для цепной реорганизации;, поэтому вопросы сетей нет с ними. Если вы держите только за последнюю пару блоков в них (или к последней контрольной точке), вы должны иметь точно такую ​​же функциональность, как в настоящее время, не так ли? Так почему бы не удалить их до последней контрольной точки, не отключив "сеть" флаг службы, или даже делать это всегда (не только тогда, когда включен в явном виде)? Это похоже на первый логический шаг ко мне (если нет проблем я пропавший без вести с таким подходом).
Мы (по крайней мере, Sipa и I) планирование на удаление контрольно-пропускных пунктов почти полностью после заголовков первого слито. Они действительно разрушительные для рассуждения людей о модели безопасности, а также заголовки первыми удаляют практически фактические их использование. (Вместо этого они будут преобразованы в "chainwork достаточность" число, например, сколько работы лучшая цепь должна иметь, и что-то, чтобы положить бумажник в безопасный режим и выдает ошибку, если большая REORG бывает).

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

В целом я обеспокоен запрещая какую-либо конкретную глубину, за которой узел должен отказаться от reorg- любого вообще или, по крайней мере, не каким-либо, что отдаленно коротко. Риск заключается в том, что если кто-то создает REORG в этом пределе они могут полностью разделить консенсус. (Например, пусть половина узлы получают один блок, который пересекает порог затем объявить REORG). Вдвойне так, если учесть, угловые случаи начального блока загрузки, например, как где вы получите узел застрял на фиктивные цепях (хотя бы часть идеи позади теста достаточности).

котировка
Является ли это O (п) подход, который вы отметили? Я не думаю, что О (п) с п быть высота блока слишком плохо.
Да, вот в принципе. Единственная причина, я не очень нравится, O (N), возможно, ваша база данных адра имеет 100000 entries- 3/4 из которых являются фиктивным мусор потушить сломанные или вредоносные узлами. Теперь вам нужно сделать изрядное количество работы, чтобы выяснить, какие всматривается вы должны попробовать.

котировка
Тем не менее, я считаю, что это теоретически возможно выбрать диапазоны для Ni, а также значения для Si таким образом, что вы получите O (журнал N):

Ni в случайном порядке [2 ^ I, 2 ^ (г + 1)),
Si = 2 ^ I

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

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

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

2 сентября 2014, 10:10:11 PM   # 7
 
 
Сообщения: 1148
Цитировать по имени
цитировать ответ
по умолчанию Re: Обрезка старых блоков с диска

котировка
Почему бы не просто хранить блоки через равные промежутки времени? Что такое преимущество, что делает его (псевдо) случайных?

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

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

Если SIZE была сила 2, то вы могли бы быть в пределах 50% от X ГБ в любое время. После того как вы > X ГБ данных, хранящихся, вы двойном размере. Это приводит к тому, что половина данных, которые будут удалены.

Узел мог бы выбрать 8-битное смещение в начале и просто продолжать использовать это.

OFFSET можно было бы умножить на 256, чтобы дать фактическое смещение.

Размер = 256 означает хранение всех блоков
SIZE = 512 означает хранение каждую секунду "бег" 256 блоков
Размер = 1024 означает хранение каждый 4-й "бег" 256 блоков

Например, с OFFSET установлен на 3 и размер набора 256 первоначально;

Run 0 (0 - 255)
Выполнить 1 (256 - 511)
Выполнить 2 (512 - 767)
Run 3 (768 - 1023)
....

После SIZE удваивается, а затем все четные пробеги удаляются и не сохраняются в будущем.

Run 0 (0 - 255)
Выполнить 1 (256 - 511)
Выполнить 2 (512 - 767)
Run 3 (768 - 1023)

а затем работает только с индексом 3 модой 4

Run 0 (0 - 255)
Выполнить 1 (256 - 511)
Выполнить 2 (512 - 767)
Run 3 (768 - 1023)

Максимальный размер будет 65536, что означало бы хранить одну "бег" 256 из каждых 65536 блоков (или 1/256 всех блоков).

С 16 бит, смещение может быть увеличена до 12 бит и размер сохранены как сила. Трассы быть увеличена до 4096 блоков и узлов может свидетельствовать о том, что они будут хранить 1/4096 блоков.

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

Это будет случайным образом на основе OFFSET быть случайным, так что нет необходимости знать, что другие узлы делают. Так будет только 256 (или 4096) возможных смещений, то менее вероятно, что некоторые блоки будут потеряны.

котировка
Мы (по крайней мере, Sipa и I) планирование на удаление контрольно-пропускных пунктов почти полностью после заголовков первого слито. Они действительно разрушительные для рассуждения людей о модели безопасности, а также заголовки первыми удаляют практически фактические их использование. (Вместо этого они будут преобразованы в "chainwork достаточность" число, например, сколько работы лучшая цепь должна иметь, и что-то, чтобы положить бумажник в безопасный режим и выдает ошибку, если большая REORG бывает).

Интересно. Планируете ли вы иметь максимальное количество блоков эвристика? Например, равноправный может еще спам с большим количеством низких заголовков сложности. Это, очевидно, менее проблематично, чем когда они могли послать 1MB блокировать спам.

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

8 сентября 2014, 7:36:05 AM   # 8
 
 
Сообщения: 983
Цитировать по имени
цитировать ответ
по умолчанию Re: Обрезка старых блоков с диска

Одна из проблем, с моим предложением (а также другие один за TierNolan) является то, что в простейшей форме, это позволяет настроить часть цепи Вы готовы хранить, а не Фактический размер хранения.  Я думаю, что gmaxwell предпочитает последний, и я также думаю, что последнее лучше вещь, с точкой зрения из-пользователя опыта. Я думаю, что мое предложение с логарифмической сложностью может быть настроен, чтобы дать настраиваемый размер диска (или, по меньшей мере, конфигурируемый абсолютное число блоков в магазине), делая число Si не только растут с I, но и уменьшение общей высоты цепи.

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

Вы хотите меня сделать некоторые математику и работать более подробную информацию о том, как выбрать Si и какие статистические свойства мое предложение имеет? Стоит ли усилий, и возможное решение реализовать?
Domob сейчас офлайн Пожаловаться на Domob   Ответить с цитированием Мультицитирование сообщения от Domob Быстрый ответ на сообщение Domob

9 сентября 2014, 12:09:41 AM   # 9
 
 
Сообщения: 1148
Цитировать по имени
цитировать ответ
по умолчанию Re: Обрезка старых блоков с диска

Одна из проблем, с моим предложением (а также другие один за TierNolan) является то, что в простейшей форме, это позволяет настроить часть цепи Вы готовы хранить, а не Фактический размер хранения

Дело в том, что вы можете просто держать сокращение вдвое. Если у вас есть предел 500MB, и вы храните на 25%, то, как только она попадает 500MB, забросьте покрытие до 12,5%, а сразу же, вы можете удалить 50% того, что вы сохранили и падение использования диска 250МБ.

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

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

9 сентября 2014, 5:19:59 AM   # 10
 
 
Сообщения: 983
Цитировать по имени
цитировать ответ
по умолчанию Re: Обрезка старых блоков с диска

Одна из проблем, с моим предложением (а также другие один за TierNolan) является то, что в простейшей форме, это позволяет настроить часть цепи Вы готовы хранить, а не Фактический размер хранения

Дело в том, что вы можете просто держать сокращение вдвое. Если у вас есть предел 500MB, и вы храните на 25%, то, как только она попадает 500MB, забросьте покрытие до 12,5%, а сразу же, вы можете удалить 50% того, что вы сохранили и падение использования диска 250МБ.

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

Если вы только готовы хранить 1%, то будут дырки. Причина держать смежные блоки, они могут быть загружены и проверены как единое целое.

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



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

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

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

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW