-rescan
— это аргумент командной строки, который передается биткойн-клиенту после восстановления wallet.dat из резервной копии.
Биткойн-клиент хранит в кошельке транзакции, влияющие на монеты, которыми он управляет. Если он видит новую транзакцию, он проверяет, влияет ли эта транзакция на какие-либо учетные записи, хранящиеся в кошельке. Если это так, кошелек обновляется. Точно так же, если цепочка реорганизована, кошелек обновляется.
Однако клиент не проверяет, синхронизирован ли кошелек с текущей цепочкой блоков. Чтобы исправить это, rescan
можно использовать команду. Это заставляет клиент при запуске просматривать каждый загруженный блок, искать транзакции, затрагивающие учетные записи в кошельке, и обновлять хранилище транзакций кошелька и балансы, чтобы отразить эту транзакцию.
Есть несколько случаев, когда вам обязательно нужно пересканировать. Например:
Если вы восстановите резервную копию кошелька, в нем будут отсутствовать все транзакции в блоках, которые вы скачали после резервного копирования кошелька. Поскольку клиент не получит эти блоки (поскольку они у него уже есть), обычная логика обновления кошелька не исправит это. Вам нужно будет провести повторное сканирование.
Если вы измените свой кошелек, скажем, добавив в него ключи или удалив из него транзакции, логика обновления кошелька не увидит транзакции. Поэтому, если вы используете программу, отличную от клиента, для изменения вашего кошелька, вам нужно будет повторно сканировать.
Теоретически не должно иметь значения, загружаете ли вы все блоки, а затем повторно сканируете или наоборот. Клиент не будет загружать блоки во время повторного сканирования. И вновь загруженные блоки в любом случае должны обновить кошелек. Логика в основном заключается в том, что это гарантирует, что процесс повторного сканирования увидит блоки, содержащие любые отсутствующие транзакции, а не логику обычного обновления блока. (Они оба должны работать. Но если вам понадобится повторное сканирование, мы все равно знаем, что что-то не так.)
Это также полезно, если вы импортируете в свой кошелек более одного закрытого ключа:
bitcoind importprivkey 1zbcvs.... "My Label" false
bitcoind importprivkey 1zbcvs.... "My Label" false
bitcoind importprivkey 1zbcvs.... "My Label" false
bitcoind stop
# One of the following
bitcoind -rescan
bitcoin-qt -rescan
Стивен Горник
Стивен Горник
Павел Недоба