SPV: Упрощенная проверка оплаты (Оригинал SPV идея исходит от бумаги Сатоси Накамото в)
Код:
BIP:
Название: SPV улучшения для легкого бумажника
Автор: Чжоу Ци, Bither Team
Статус: Pre-проект
Тип: Стандарты Track
Создано:
Название: SPV улучшения для легкого бумажника
Автор: Чжоу Ци, Bither Team
Статус: Pre-проект
Тип: Стандарты Track
Создано:
улучшение SPV для легкого бумажника.
СПВ режим Bitcoin света бумажника
С ростом данных Bitcon blockchain (>30GB), обычные пользователи должны использовать легкий кошелек для удобства.
Текущая реализация SPV
Режим SPV хранит только самые последние блок заголовков. Когда пользователь использует свет бумажника в первый раз, свет бумажник будет синхронизировать с узлами Bitcoin от точки гляделки из заголовка блока.
Это означает, что разработчики бумажника должны подготовить заголовок точки, начиная с установочным пакетом кошельков. Для небольшой синхронизации данных, разработчики должны обновить пакеты периодически даже только для обновления начальной точки.
Это, безусловно, является проблемой.
Как решить эту проблему
Мы полагаем, что bitcoind следует добавить простой сервис, чтобы получить блок-хэш по номеру блока. Это улучшение очень легко для протокола ядра Bitcoin, но поможет SPV светлого режима бумажник много.
BIP детали:
getblockhash
Сообщение getblockhash содержит только один uint32_t поле, которое означает, что высота блока, чтобы указать нужный блок.
Узел Биткойна, который получает информацию getblockhash может послать сообщение и. инв сообщение содержит только блок хэш с высотой точки.
Сообщение и поддерживаются, нам нужно только поддерживать сообщение getblockhash.
В команде Rpc bitcoind, в getblockhash уже реализован, поэтому мы считаем, что bitcoind поддержка этой связи возможно.
связи конкретного узла может быть следующее:
- 1. Подключение к узлу, и получить версию сообщения узла. Сообщение версия включая его текущую максимальную высоту блока п представлять.
- 2. Вычислить высоту блока м для представления.
Код:
если п% 2016 < 100
т = п - (п% 2016) - 2016
еще
т = п - (п% 2016)
т = п - (п% 2016) - 2016
еще
т = п - (п% 2016)
- 3. Отправить getblockhash сообщений
- 4. Прием и сообщения. Таким образом, мы получаем хэш точки BLOCK начиная в.
- 5. Отправить getheaders сообщение. (Сообщение getheaders нужно блокировать только хэш).
- 6. Не получать информацию заголовка блока и циркуляционный 5,6 до синхронизации до последнего блока.
Осуществление анализа
безопасности
Мы гарантируем, что число заголовка блока принимается по меньшей мере, 100 Light клиент проверяет блоки по крайней мере, 100, а также избежать риска blockchain разветвлений в некоторой степени привели.
Чжоу Ци
Bither Team