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.