122 / 736PRUNE

Pruned Node

Полный узел с сокращённым архивом блоков

Проверять Bitcoin самостоятельно можно и без хранения всей его истории на диске. Pruned Node обрабатывает старые блоки, а затем может удалить их, сохраняя состояние, необходимое для проверки новых платежей.

Pruned Node — это Full Node, который сам проверяет правила Bitcoin, но не хранит все старые блоки вечно. Он экономит место ценой более ограниченного доступа к истории. Это не уменьшает ваши средства и не заменяет резервную копию кошелька.

Анна хочет пользоваться Bitcoin, не полагаясь на чужой сервер при проверке платежей. Но на домашнем компьютере нет места для полного архива блоков — пакетов подтверждённых транзакций. Ей может подойти Pruned Node. При обычном Initial Block Download (первоначальной синхронизации узла) он последовательно загружает и проверяет историю, а затем удаляет старые обработанные файлы. Вся история не обязана находиться на диске одновременно, но пройти её при такой синхронизации всё равно нужно. [2] [5]

Pruning — это управляемое удаление старых данных. Bitcoin Core удаляет подходящие для этого файлы блоков и связанные undo-данные, позволяющие отменить изменения, внесённые блоком. Представьте рабочие документы, результаты которых уже внесены в постоянно обновляемую сводку. Локальные копии документов исчезают, но последствия действительных платежей остаются. Другие узлы могут продолжать хранить те же блоки. [3] [7]

Ключевую роль играет набор UTXO — выходов транзакций, которые ещё не потрачены. Каждый выход содержит сумму и условия её расходования. Узел обновляет набор и благодаря этому выявляет, например, попытку повторно потратить уже потраченный выход. Он также хранит индекс блоков с заголовками — короткими записями, связывающими блоки. Набор UTXO не является списком счетов или историей всех платежей. [2] [6]

Сеть может некоторое время следовать двум действительным ветвям, а затем продолжить другую ветвь с большей накопленной работой. Такой переход называют реорганизацией. Накопленная работа отражает сложность поиска действительных блоков, подтверждённую их Proof of Work — доказательством вычислительной работы. Узлу нужно отменить последствия некоторых блоков, поэтому он сохраняет запас недавних блоков и undo-данных. Возврат за пределы сохранённой истории может потребовать повторного получения данных или восстановления состояния. Ограничение диска не делает давние платежи абсолютно необратимыми. [5] [7]

Цель автоматического pruning в Bitcoin Core относится к файлам блоков и undo, а не ко всей папке данных узла. Базы данных, кошельки и другие файлы занимают дополнительное место. Удаляются целые файлы, причём необходимый запас должен сохраняться. Поэтому целевой размер не является жёстким потолком. Выбирая диск, учитывайте и эти потребности: лимит архива не равен общему размеру узла. [1] [4] [7]

Full в названии Full Node означает самостоятельную проверку правил, а не обязанность вечно хранить каждый блок. Архивный узел и узел с pruning при одинаковых настройках проверки отклоняют одни и те же недействительные блоки. Сам pruning не отключает проверки. Цифровая подпись подтверждает разрешение на платёж с помощью закрытого ключа — секретного числового значения, не раскрывая сам ключ. Например, assumevalid позволяет при определённых условиях пропустить часть исторической проверки подписей, но это отдельная настройка. Она может применяться к обоим типам узлов и не является следствием маленького диска. [5] [6]

Узел Анны по-прежнему получает и проверяет новые транзакции и доступные блоки и может передавать их дальше. Но отправить старый блок, файл которого удалён, он не может. Поэтому владельцы полных архивов важны и для новых узлов. Pruned Node не отключён от сети и не является просто лёгким кошельком, полагающимся на чужую проверку; он лишь предоставляет меньше исторических данных. [10]

Позже Анна восстанавливает кошелёк, которым пользовалась несколько лет назад. Кошелёк — приложение или устройство для получения и отправки биткоинов. Чтобы снова найти её транзакции, программа просматривает соответствующие блоки; это называется rescan. Если блоков локально нет, импорт ключа или descriptor их не вернёт. Descriptor описывает построение адресов и условия расходования. Для восстановления может понадобиться заново получить историю. Поэтому отсутствие старого платежа на экране само по себе не означает потерю биткоинов. [8] [9]

Важны и приложения, подключённые к узлу. Обозревателю всей истории нужны другие данные, чем кошельку, отслеживающему новые платежи. Например, Bitcoin Core v29.0 не позволяет совмещать pruning с txindex — вспомогательным индексом для поиска транзакций в сохранённых блоках. Это не запрет всех индексов. Перед выбором режима проверьте требования своей программы: последующее увеличение лимита не воссоздаёт удалённые файлы. [1]

Pruned Node подходит, если вы хотите сами проверять Bitcoin без постоянного поиска по всему архиву. Обычная первоначальная загрузка истории при этом не исчезает; AssumeUTXO делает узел доступным для использования раньше благодаря другому механизму. Главное: ни блоки, ни набор UTXO не служат резервной копией приватных ключей, разрешающих расходование средств. Копия кошелька и проверенный порядок восстановления нужны при любом размере архива. [2] [9]

Для полной картины прочитайте эту статью вместе с Initial Block Download, AssumeUTXO, Block Propagation, vByte, Bitcoin, Bitcoin Core. На эту статью также ссылаются Initial Block Download, AssumeUTXO, Utreexo, Compact Block Filters.

DOC · 001Bitcoin Core v29.0 — pruning configurationДокументация DOC · 002Bitcoin Core 0.11 release notesДокументация DOC · 003Bitcoin Core — prune blockchain RPCДокументация DOC · 004Bitcoin Core — getblockchaininfoДокументация DOC · 005Bitcoin Core — validationДокументация DOC · 006Bitcoin Developer Guide — Block ChainДокументация DOC · 007Bitcoin Core v29.0 — Block file storageДокументация DOC · 008Bitcoin Core v29.0 — rescanblockchainДокументация DOC · 009Bitcoin Core v29.0 — Wallet imports and backupДокументация DOC · 010Bitcoin Core v29.0 — Network block servingДокументация
Обновлено: Сначала источники · Не является инвестиционной рекомендацией