Почему BIP 141 (segwit) определяет как размер, так и вес виртуальной транзакции ?
Кажется, что вес всего в четыре раза превышает размер виртуальной транзакции (или наоборот, в зависимости от того, что вы определите в первую очередь). Зачем нужны оба?
Лимит транзакций в segwit определяется исключительно весом транзакции и ограничением веса блока в 4 000 000 единиц веса.
Размер виртуальной транзакции не использовался для расчета лимита, поскольку при точном вычислении он является дробным. Bitcoin Core использует только целые числа в коде консенсуса и, таким образом, перешел к весу транзакции с активацией segwit.
Размер виртуальной транзакции предоставляется просто как удобный способ сравнения эффективного размера транзакции SegWit с размерами транзакций до SegWit.
Добавление цитаты из раздела для уточнения: BIP141 определяет следующие условия в отношении размера транзакции:
Вес транзакции
определяется как базовый размер транзакции * 3 + общий размер транзакции (т. е. тот же метод, что и для расчета веса блока из базового размера и общего размера).Размер виртуальной транзакции
определяется как вес транзакции / 4 (округляется до следующего целого числа).Базовый размер транзакции
— это размер сериализованной транзакции с удаленными данными-свидетелями.Общий размер транзакции
— это размер транзакции в байтах, сериализованный, как описано в BIP144, включая базовые данные и данные-свидетели.
Карел Билек
vsize
— виртуальный размер — из RPC, а не веса.Марч
Питер Уилле
Карел Билек
Питер Уилле
Карел Билек
Карел Билек