В режиме "prune", узел качает последовательно блок за блоком всю цепочку до тех пор, пока блокчейн не начнет занимать на диске места больше, чем прописано в параметре "prune=xxx". Как только блокчейн станет занимать больше места, узел начнет стирать те блоки, информация из которых уже проверена. Это если коротко...
Стирать целые блоки или удалять информацию о транзакциях с потраченными выходами в блоках?
Ведь Сатоши Накамото предлагает делать именно это отсекать «старые транзакции», т.е. транзакции у которых нет UTXO (непотраченных выходов).
Это технические моменты. Совершенно не интересные.
Технически есть как минимум две базы данных: в одной хранятся блоки, в другой хранятся непотраченные выходы. В принципе, если есть проверенная база UTXO, то база блоков наверное и не нужна вовсе. Ну или на всякий пожарный, на мой взгляд, вполне достаточно хранить только шесть последних блоков на случай длинного орфана которого в истории пока не случалось.
Однако для каких-то внутренних технических причин, минимальный размер базы блоков ограничен константой в 500 Мб, то есть с учетом что максимальный размер блока 3 Мб, то в обрезанном блокчейне должно быть не менее 166 блоков, что примерно равно среднему количеству блоков которые находятся за сутки.