Реальная история.
Одним из недостатков с обрезкой является то, что вы повторно загрузить все для переиндексации.
При загрузке blockchain, ссылка клиент пропускает проверку подписи, пока не достигнет последней контрольной точки. Это значительно ускоряет обработку, а затем замедляется.
Там нет никакой потери в безопасности самовывозом контрольных точек. Когда блок опознан, контрольная точка может храниться в базе данных. Это было бы "мягкий" контрольно-пропускной пункт. Это означало бы, что проверка подписи не имеет не произойдет до этого момента.
В 0.12, последний блок будет контрольная точка имеет высоту 295000. Блок составляет более 18 месяцев. Ядро должно проверить все блоки, которые были получены в течение последних 18 месяцев.
При загрузке, ядро будет загружать блоки от 0 до 295000 без выполнения подпись проверки, а затем полностью проверяет все от 295000 до 399000. Если переиндексация запрашивается, то он должен подтвердить 100К блоки во второй раз. Там нет значения безопасности при этом, что.
Вместо этого клиент может записать хэш для блоков, которые уже были проверены. Если блок больше чем 2016 блоков глубока и имеет высоту, которая делится на 5000, а затем мягкой контрольной точки блок.
Вполне возможно, что новая библиотека проверки подписи решает проблему. Это сделало бы проблему спорного.
В игуаны я сохраняю как первый blockhash и хэш (2000 блоков) для каждого blockhdrs на каждые 2000 блоков. Это позволяет проверить весь заголовок, как это происходит в и параллельно загрузке всех пучков блоков в каждом заголовке, с гарантией, что это будет правильный набор блоков;
Благодаря затрачивает ссылку еще невидимые выходов, полная проверка подписи не может быть 100% сделана, пока все пакеты не будут обработаны во втором проходе (первый проход получает необработанные блоки), однако много вещей могут быть проверены во время второго прохода, и я создает только для чтения файлов для каждого пучка.
Так как они только для чтения файлов, весь набор из них может быть введен в SquashFS, чтобы уменьшить его размер до 15GB (вероятно, будет 20GB, когда я получаю все данные в файл расслоение). Считанные только файлы включают в себя таблицу цветения фильтра подстановок так по памяти, отображающих их, он получает структуру в памяти, которые непосредственно могут быть использованы для запросов, без какого-либо времени, необходимого при запуске. Еще одно преимущества только для чтения формата является то, что когда-то подтверждено, оно не меняется, поэтому оленья кожа необходимости держать получение проверить каждый рестарт. [Я хотел бы добавить некоторые проверки, чтобы убедиться, что файлы изменены на гавань предотвращения внешней темперы.]
Так как это займет всего 30 минут для двух проходов, я думаю, что будет добавить третий проход для проверки подписи, чтобы избежать необходимости делать частичные проверки Sig, а затем возобновить, и т.д.
Кроме того, мой дизайн не требует, индексирование, как все данные непосредственно поместить в пачке файлы с достаточным количеством информации индексации в них, чтобы быть в состоянии сделать необходимые операции. Именно поэтому набор данных вырос до 25GB. Если больше скорости требуется для запросов другого слой индексации может быть добавлен сразу все файлы пучок приходит, но я вижу достойную производительность для большинства запросов без этого слоя на данный момент.
Джеймс