Квитанции, передача файлов и восстановление
Текущий баланс, историческое доказательство и локальный журнал — разные данные. Синхронизированный узел проверяет по State, что доступно сейчас. Квитанция доказывает конкретный прошлый вызов. Журнал показывает сохранённые или импортированные этим кошельком данные. Ни один из них не является общим архивом.
| Артефакт | Содержимое | Где использовать |
|---|---|---|
| Публичное раскрытие | Программа, неизменяемая политика и счётчики одного обязательства | API, CLI, файл контракта |
| Файл контракта | Условия, локальное описание и не более одной подходящей квитанции | F7 Open file |
| Контрактная квитанция | Исходные и возможные новые условия, вызов, включение и рекурсивное доказательство | F7 Open file; API проверки и импорта контрактов |
| Платёжная квитанция | Доказательство включения платежа, в том числе пополнения | F4 Receipts; обычный API квитанций |
Что устанавливает квитанция
Проверка связывает точный вызов, его авторизацию и включение с выбранной цепью узла и аутентифицированным банком рекурсивных доказательств. Квитанция может содержать ограниченный путь последующих заголовков и сохраняет проверяемость после удаления исходного тела блока. Исходные условия присутствуют и при закрытии без преемника.
Квитанция доказывает вызов на указанной высоте, но не доказывает, что выход
до сих пор не потрачен. Проверяйте State по раскрытию и точной паре
(slot_index, creation_id). Повторно использованный слот — другая инкарнация.
При допустимой реорганизации каноничность может измениться; запись осиротевшего
вызова не является текущим подтверждением.
Предел декодированной контрактной квитанции — 1 110 624 байта, включая
ограниченный терминал и до 42 последующих заголовков. Для обычной платёжной
квитанции остаётся отдельный предел 128 KiB. Это разные форматы: контрактную
квитанцию нельзя передать в verifyReceipt или ограничить размером платёжной.
Две стороны и изменяющееся право
- Алиса создаёт и сохраняет условия, пополняет экземпляр и передаёт файл Бобу. Само создание условий не является пополнением.
- Боб открывает файл, проверяет свою роль и текущие средства, затем сохраняет.
- Уполномоченная сторона вызывает контракт. Онлайн-кошельки, наблюдающие его условия, сохраняют подходящие переходы, в том числе действия другой стороны.
- Алиса отключается. Боб делает ещё вызов и сохраняет квитанцию.
- Алиса возвращается после очистки старых тел транзакций. State показывает наличие средств по известному обязательству, но не восстанавливает по хешу неизвестную программу или пропущенного преемника.
- Боб передаёт квитанцию либо файл с обновлением. Алиса проверяет и импортирует, получает условия преемника или доказательство закрытия, снова проверяет State. Собственные записи сохраняются.
Сценарий двух кошельков проверяет пополнение, обе стороны, офлайн, очистку, обмен квитанциями, повторный импорт, закрытие и перезапуск. Это проверка процесса, а не превращение сети в архивный сервис.
Объединение данных
Импорт добавляет проверенные данные и убирает повторы по идентификатору транзакции. Локальное имя, собственные операции и известные состояния сохраняются. Старое раскрытие не заменяет более новое живое состояние. Квитанции могут приходить не по порядку. Файл контракта не синхронизирует весь журнал: при необходимости передавайте дополнительные квитанции отдельно.
walletListObjectReceipts возвращает локально сохранённые вызовы обеих сторон
с текущим признаком canonical. walletImportObjectReceipt проверяет
доказательство и повторно проверяет каноническое включение перед сохранением
исходных и новых условий. Необязательное ожидаемое раскрытие защищает от импорта
постороннего вызова. walletWatchObject сохраняет условия для будущего
наблюдения, но не восстанавливает произвольные уже удалённые вызовы без доказательств.
Резервные копии
Храните секрет и публичные данные контрактов. Библиотека GUI находится в
wallet.contracts.json каталога кошелька. Каталог узла objects/ содержит
наблюдаемые раскрытия и квитанции, включая общие терминалы в objects/terminals/;
contract-activity/ — компактный индекс журнала. Копируйте согласованные каталоги
кошелька и данных при остановленном узле. Пути платформ приведены в
справочнике файлов.
Ключ восстанавливает полномочие, но не произвольные публичные условия. Если все держатели потеряли нужное раскрытие и нет квитанции или сохранённого тела, одно обязательство не позволяет его восстановить. Передача условий и экспорт важных квитанций — часть работы приложения с очищаемой историей.