Это ситуация, которая в настоящее время трудно достичь, но тем не менее, возможно, при перемещении wallet.dat файлов вокруг, и потенциально может оставить вас навсегда испорченного кошелек.
Рассмотрим следующий сценарий:
- Алиса получает монету 50BTC
- Алиса создает резервную копию своего бумажника
- Алиса переходит в автономном режиме
- Боб импортирует бумажник в
- Боб посылает 20BTC Кэрол (отправка 30BTC изменение в резервный ключ)
- Алиса идет онлайн, прежде чем сделка Боба заканчивается в блоке, или как-то не получает блок, он находится в еще
- Алиса посылает 10BTC Тед, используя монету 50BTC в качестве входных данных
В сети уже знает о расходах Боба монеты 50BTC, так что не будет больше принимать транзакции Алисы. Алиса должна быть с помощью изменения монеты 30BTC, но не знает об этом еще. Результатом является то, что Алиса имеет сделку в своем кошельке, который никогда не будет принято в сети, но Алиса все еще предполагает, что это справедливо. Еще хуже, Элис будут пытаться использовать изменение 40BTC этой сделки в дальнейших операциях, а также и те сделки (и все в результате его изменений) не будут приняты сетями либо.
Вы можете возразить, что копирование wallet.dat FILES вокруг всегда опасное дело, но мне не нравится идея, что не зная о транзакции происходит с помощью одного из ваших собственных ключей потенциально может нарушить вещи.
Я работаю на патч, чтобы обнаружить случаи, когда blockchain конфликты с бумажником, но вопрос: что делать, когда это произойдет?
Некоторые возможности:
- Пограничный случай, не беспокоить
- Молча уронить сделку обижая из бумажника (очень легко)
- По крайней мере, дать предупреждение в графическом интерфейсе (легко, но что делать в bitcoind?)
- Марк сделка каким-то образом как неактивные, и показать это в GUI и RPC вызовов (необходим ряд изменений, в том числе обновления для wallet.dat формат, если вы хотите держать их постоянно)
- Попробуйте обновить транзакцию, используя материалы, которые существуют (после подтверждения пользователя в GUI или с помощью специального вызова RPC)
- Автоматически пытаться воссоздать операции (вероятно, слишком опасно)