Вернуться   Биткоин Форум > Разработка и Техническое Обсуждение
2 октября 2014, 3:38:53 PM   # 1
 
 
Сообщения: 2
Цитировать по имени
цитировать ответ
по умолчанию Re: Почему VARINT не используется в сериализации CBlockHeader и других базовых классов?

Взлом Биткоин адресов.
500 Биткоинов взломаны в "мозговом кошельке" с паролем "bitcoin is awesome"
Адрес кошелька: 14NWDXkQwcGN1Pd9fboL8npVynD5SfyJAE
Приватный ключ: 5J64pq77XjeacCezwmAr2V1s7snvvJkuAz8sENxw7xCkikceV6e
подробнее...


Всем кто хочет заработать Биткоины без вложений - рекомендую сайт http://bitcoin-zarabotat.ru
Что является причиной того, что CVarInt не используется для сериализации в основных классах в Bitcoin?

Сом примеры будут:
CBlockHeader.nVersion
CTransaction.nVersion
CTransaction.nLockTime
COutPoint.n

Я понимаю, что CVarInt используется только для "внутренний" типы хранения (CTxInUndo, CDiskBlockIndex и другие), но я не понимаю, почему.

Есть ли у него что-то делать с этим классы, которые упорядочиваются по сети не должны использовать сжатые формы, или есть компромисс сжатого дискового пространства по сравнению вычислительных накладных расходов в сжатия / распаковки?

Или это просто наследие вещь, что протокол не сжимают с самого начала, и формат застрял вокруг с тех пор?



tinkert85 сейчас офлайн Пожаловаться на tinkert85   Ответить с цитированием Мультицитирование сообщения от tinkert85 Быстрый ответ на сообщение tinkert85


Как заработать Биткоины?
Без вложений. Не майнинг.


2 октября 2014, 3:49:09 PM   # 2
 
 
Сообщения: 1862
Цитировать по имени
цитировать ответ
по умолчанию Re: Почему VARINT не используется в сериализации CBlockHeader и других базовых классов?

Получил 1806 Биткоинов
Реальная история.





Или это просто наследие вещь, что протокол не сжимают с самого начала, и формат застрял вокруг с тех пор?

Мое предположение было бы, что - лично мне очень не нравится "двоичный" протоколы (и интернет в основном не использует их), как вы только что в конечном итоге с большим количеством головных болей с сериализации.
CIYAM сейчас офлайн Пожаловаться на CIYAM   Ответить с цитированием Мультицитирование сообщения от CIYAM Быстрый ответ на сообщение CIYAM

2 октября 2014, 4:02:29 PM   # 3
 
 
Сообщения: 2
Цитировать по имени
цитировать ответ
по умолчанию Re: Почему VARINT не используется в сериализации CBlockHeader и других базовых классов?

Спасибо за быстрый ответ!

Это хорошая причина, и хорошее предположение. Но, формат блока уже использует некоторые "байт сжатого" целые числа, в частности, размер всех векторов, фл, вин и Vout. Этот формат, насколько я понимаю под названием компактного размера и отличаюсь некоторыми из класса CVarInt.

Ниже приведен фрагмент из спецификации протокола, где они явно говорят о том, что CVarInt используется только для локального хранения данных, но не говорит почему.

https://en.bitcoin.it/wiki/Protocol_specification#Variable_length_integer
"Современный BitcoinQT имеет также CVarInt класс, который реализует еще более компактное целое с целью локального хранилища (которое несовместимо с "Компактный размер" Описанная здесь). CVarInt не является частью протокола."

Любые идеи по поводу приведенной выше цитаты?
tinkert85 сейчас офлайн Пожаловаться на tinkert85   Ответить с цитированием Мультицитирование сообщения от tinkert85 Быстрый ответ на сообщение tinkert85

2 октября 2014, 4:42:27 PM   # 4
 
 
Сообщения: 1862
Цитировать по имени
цитировать ответ
по умолчанию Re: Почему VARINT не используется в сериализации CBlockHeader и других базовых классов?

Любые идеи по поводу приведенной выше цитаты?

К сожалению - я не знаю точно, почему это могло быть (вопросы порядком байтов возможно?).
CIYAM сейчас офлайн Пожаловаться на CIYAM   Ответить с цитированием Мультицитирование сообщения от CIYAM Быстрый ответ на сообщение CIYAM

2 октября 2014, 5:10:54 PM   # 5
 
 
Сообщения: 1484
Цитировать по имени
цитировать ответ
по умолчанию Re: Почему VARINT не используется в сериализации CBlockHeader и других базовых классов?

Я думаю, потому что они делают детерминизм проще с точки зрения блока заголовка или структуры ТХ. Там были некоторые незначительные раздражения вокруг CryptoNote с помощью varint в заголовках блоков. Например, некоторые программисты для горняков предположительно входящих размер полезной нагрузки заголовка из 80 байт, но если трудности перетекает вы в конечном итоге с 81 байт. Таким образом, когда заголовок разливалась 80 байт из-за сложности шахтеры сломалась.
tacotime сейчас офлайн Пожаловаться на tacotime   Ответить с цитированием Мультицитирование сообщения от tacotime Быстрый ответ на сообщение tacotime



Как заработать Биткоины?

Bitcoin Wallet * Portefeuille Bitcoin * Monedero Bitcoin * Carteira Bitcoin * Portafoglio Bitcoin * Bitcoin Cüzdan * 比特币钱包

bitcoin-zarabotat.ru
Почта для связи: bitcoin-zarabotat.ru@yandex.ru

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW