- (1) В настоящее время, есть только около 11 МБ на сумму заголовков блоков (135000 блоков х 80 байт / блок), который должен занять очень короткий промежуток времени, чтобы загрузить, и просто секунд проверить хэш-целостность всей blockchain [заголовки]. Тем не менее, глобальный список транзакций значительно больше, и в настоящее время загружен в полном объеме по официальному клиенту BTC, все время.
- (2) Заголовки блока не дают никакой информации о том, какие операции были включены в блок, только корень Merkle дерева (хэш) из списка транзакций для этого блока. Затем, если клиент хочет знать и проверить BTC адрес баланса (без любого ELSES' помощи), он должен загрузить список транзакций для каждого блока, по крайней мере, вернуться к первоначальным coinbase операциям всех монет, содержащихся в адресе.
- (3) Вам не нужно весь блок цепь для передачи / приема BTC, вам нужно только заголовки блоков. Клиент Можно создавать сообщения транзакции и подписать их без списков транзакций. Он не мог проверить, была ли сделка действительна, но сделка будет отвергнута сетью в любом случае, если это не действует.
- (4) Только шахтеры нужен весь блок цепь, так что они могут успешно и быстро, проверить сделки, которые они пытаются включить в свои блоки.
- (5) Клиент, который получает только заголовки (при условии, что это правильная цепь), не должен доверять другие узлам вокруг него так много при запросе данных. Например, если он запрашивает и получает список транзакций только для блока X, он может быстро построить и проверить дерево Merkle против заголовка блока X. Он не может проверить всю историю, но по-видимому, если он имеет самую длинную / правильную blockchain, эти операции, должно быть, были действительны для включения в блоке.
Поэтому в первую очередь, можно упаковать сделки перечислены в нечто вроде битого торрент файла и распространять их как один гигантский кусок сжатых данных? Первые 134000 блоков не изменятся, так почему требуют BTC узлов / сети, чтобы заполнить все запросы блока-данные? Бит-торрент предназначен для обработки этого. И если я не ошибаюсь, кто-то приобретает 1 ГБ данных блока должен быть в состоянии загрузить что, как 10 минут, и проверить весь набор менее чем за 10 минут на современном компьютере. Для этого потребуется протокол бит-торрент, которые будут включены в клиенте BTC, но кажется, что это будет стоит. Пакет каждые 5000 блоков в новый файл btc_Blk0_to_Blk1.torrent и пусть блок-цепи распределяется таким образом. Сеть BTC будет только для обработки запросов для наиболее последних блоков.
Во-вторых, было бы возможно реализовать новый вид сообщения на BTC сети, которая позволяет облегченные-клиентам использовать тяжеловесные клиентов предоставлять только соответствующую историю транзакций, если они не хотят, чтобы весь блок цепи? Легкий клиент знает, что адрес X является моим, и хочет, чтобы проверить баланс и целостность адреса. Таким образом, он посылает этот специальный запрос для адреса X и клиент в сети, которая имеет полную цепочку можно отправить список номеров блоков / хэш, которые имеют отношение к этому адресу. Затем легкий клиент только должен запросить этот список полных блоков из сети. Опять же, поскольку он имеет "верный" blockchain заголовки, не должно быть никаких проблем, доверяя произвольные узлы, чтобы дать ему правильный блок листинг. Клиент может продолжать загружать каждый новый блок, как это транслируется, но отказаться от него, если он не имеет отношения к себе.
Я хочу продлить это обсуждение, но это сообщение достаточно давно уже! Может быть, я буду останавливаться, пока я не знаю, что мои предположения верны.
-Eto