A-Bolt
Legendary
Offline
Activity: 2325
Merit: 2363
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
May 02, 2019, 09:03:55 AM |
|
Прунинг работает так: вы задаёте фиксированный размер хранилища блоков опцией командной строки -prune=<n>. Это фиксированный размер, сколько зададите - столько и будет занимать места на диске база блоков (но не меньше 550МБ). И эта база не будет расти со временем, старые блоки автоматически будут удаляться, чтобы выдерживать целевой размер базы. Размер этой базы никак не зависит от количества потраченных выходов (вы его сами задаёте). Реально реализованный механизм прунинга не имеет никакого отношения к тому, что писал Накамото в разделе "7. Экономия дискового пространства". Поэтому, ваша фраза "при размере всего блокчейна 200 гиг, в режиме прунига он весит 2 гиг" не имеет никакого смысла. Старым клиентам новые клиенты дают урезанные неполноценные блоки, влезающие в 1МБ, что никак не доказывает, что новые клиенты хранят witness где-то там отдельно, как вы сказали "Эта часть записывается за пределами блока". Ваша фраза "Эта часть записывается за пределами блока" не подтверждается ничем, ни сегвитовскими BIP-ами (BIP141, BIP143), ни исходниками SegWit-совместимых клиентов. Выполните в консоле команду getblock 00000000000000000015700c792c59cda0380d5e3c3e16ba555cc3cfd6d6bb7d 0 она вам выдаст сериализованный блок в HEX-формате. Какой у него будет размер в байтах? Вот этот размер и показывают блок-эксплореры.
|
|
|
|
fxpc
Sr. Member
![*](https://bitcointalk.org/Themes/custom1/images/star.gif) ![*](https://bitcointalk.org/Themes/custom1/images/star.gif) ![*](https://bitcointalk.org/Themes/custom1/images/star.gif)
Offline
Activity: 1316
Merit: 420
KTO EC/\U HUKTO?
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
May 02, 2019, 09:12:38 AM |
|
Про ссд тесты похожи на правду. Для хдд я ни разу в жизни не видел, чтобы 200 мег копировались за секунду... или за две... или даже за пять секунд. (
Так это линейно, то есть без фрагментации и естественно на другой диск. Вот только что проверил с одного забитого HDD на другой скопировал файл 1.4ГБ, заняло 15 секунд, в тестах на пустых дисках как раз будет в районе 200. Диски у меня правда сильно дороже хлама за 60$.
|
|
|
|
GGUL
Legendary
Offline
Activity: 1468
Merit: 1102
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
May 02, 2019, 09:19:43 AM Last edit: May 02, 2019, 09:47:55 AM by GGUL |
|
Сеть из 25 майнеров, 1000 фулл нод и 1000 000 spv кошельков будет функционировать, если отвалится часть майнеров. Будет работать, даже если все фулл-ноды отвалятся. Возможно медленно, но будет. И уж тем более ничего страшного не будет, если часть spv-кошельков выйдут из сети. Это, что ни на есть, классический пример децентрализованной системы по Вашему определению.
Уверены? Тогда условия задачи: "В результате вспышки на Солнце, навсегда отвалилось 100% майнеров и 100% фулл нод, но выжили несколько spv кошельков. Вопрос: когда сеть биткоина восстановит свою работу?" Вообще-то я руководствовался Вашим же определением децентрализации. ![Smiley](https://bitcointalk.org/Smileys/default/smiley.gif) Хорошо. Возьмем Ваш пример с "настоящей децентрализацией", где нет spv-кошельков. "В результате вспышки на Солнце, навсегда отвалилось 100% майнеров и 100% фулл нод. Вопрос: когда сеть биткоина восстановит свою работу?" Результат такой же. Вывод из Вашего примера: spv-кошельки не уменьшают децентрализацию. ![Smiley](https://bitcointalk.org/Smileys/default/smiley.gif) Я не понимаю, что Вы хотите доказать. Spv-кошельки не самодостаточны. Это часть системы. Фулл-ноды тоже часть системы. И тоже не самодостаточны. Без майнеров они встанут. Основа Биткоина - это майнеры. И Вы забыли еще одно очень важное свойство децентрализованных систем, назовем его открытостью.
Абсолютно необязательное свойство. Вы меня слегка разочаровали. От человека, который болеет за децентрализацию Биткоина, услышать такой ответ... Без этого свойства не было бы Биткоина. Кому нужна криптовалюта, если для того, чтобы воспользоваться им, нужно спрашивать разрешение. А spv кошелек это тоже не сервер биткоина. Мы же все еще про spv и про их якобы децентрализацию тут? )) Вот вам аналогия: абсолютно любой человек с любого браузера может подключиться к серверам пейпала. Значит ли это, что пейпал децентрализованная система? Причем в 100 раз более децентрализованная чем биткоин, потому что к этому вашему биткоину не так-то просто подключиться через браузер (я лично не умею).
Странный вопрос. Если мы с разных точек подключаемся к одному серверу (или к серверам одной компании), как это может делать что-то децентрализованным. А spv-кошельком мы не обязаны подключаться к одной фулл-ноде, (или к фулл-нодам одной компании). А потом. 1. Чтобы подключиться к пейпалу, нужно получить от него разрешение. 2. Пейпал контролирует твои средства, которые ты ему обязать доверить. 3. Ты не можешь уйти к другому пейпалу. Вернее, другой "пейпал" будет точно таким же, как и этот. Между системами клиенты+ пейпал, spv-кошельки+фуллноды пропасть. Такая же, как между серверами Visa и майнерами Биткоина.
|
|
|
|
kzv (OP)
Legendary
Offline
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
May 02, 2019, 11:01:08 AM Last edit: May 02, 2019, 11:32:40 AM by kzv |
|
Прунинг работает так: вы задаёте фиксированный размер хранилища блоков опцией командной строки -prune=<n>. Это фиксированный размер, сколько зададите - столько и будет занимать места на диске база блоков (но не меньше 550МБ). И эта база не будет расти со временем, старые блоки автоматически будут удаляться, чтобы выдерживать целевой размер базы.
Размер этой базы никак не зависит от количества потраченных выходов (вы его сами задаёте). Реально реализованный механизм прунинга не имеет никакого отношения к тому, что писал Накамото в разделе "7. Экономия дискового пространства". Поэтому, ваша фраза "при размере всего блокчейна 200 гиг, в режиме прунига он весит 2 гиг" не имеет никакого смысла.
На самом деле прунинг реализованный в биткоине очень похож на то, что описывал Сатоши. Бесследно старые блоки не удаляются и размер базы прунинга не равен тому. который вы задаете в параметре prune. Я задал prune=2000 и сейчас у меня база биткоина (.bitcoin/blocks + .bitcoin/chainstate) занимает 5 гигов. Сами догадаетесь почему так или надо разжевывать? Старым клиентам новые клиенты дают урезанные неполноценные блоки, влезающие в 1МБ,
То есть вы хотите сказать. что есть тру-блоки, а есть "неполноценные"? И уж не хотите ли вы высказать какую-то пропагандисткую ересь типа, что тру-блоки состоят из двух частей? Или даже не дай бог скажете, что часть тру-блока которая не посылается старикам никак не влияет на хэш блока ![Shocked](https://bitcointalk.org/Smileys/default/shocked.gif) что никак не доказывает, что новые клиенты хранят witness где-то там отдельно, как вы сказали "Эта часть записывается за пределами блока".
Уверены в этом? ![Wink](https://bitcointalk.org/Smileys/default/wink.gif) getblock 00000000000000000015700c792c59cda0380d5e3c3e16ba555cc3cfd6d6bb7d 0 она вам выдаст ... ... выдаст фотографию голой тетки в трусах. Но голая тетка в трусах это не голая тетка, как ни странно )) Хорошо. Возьмем Ваш пример с "настоящей децентрализацией", где нет spv-кошельков. "В результате вспышки на Солнце, навсегда отвалилось 100% майнеров и 100% фулл нод. Вопрос: когда сеть биткоина восстановит свою работу?" Результат такой же.
Ответ неверный )) Если останется хотя бы одна фулл нода, то восстановить нормальную работу сети можно будет хардфорком, который стряпается за пару часов. И Вы забыли еще одно очень важное свойство децентрализованных систем, назовем его открытостью. Абсолютно необязательное свойство.
Вы меня слегка разочаровали. От человека, который болеет за децентрализацию Биткоина, услышать такой ответ...
Без этого свойства не было бы Биткоина. Кому нужна криптовалюта, если для того, чтобы воспользоваться им, нужно спрашивать разрешение.
Децентрализация и криптовалюта это вещи перпендикулярные: один раз пересеклись и все. Хотим говорить про децентрализацию интернет платежей - обсуждаем криптовалюту. Хотим говорить про децентрализацию как технологию в целом - обсуждаем все возможные решения. Если мы с разных точек подключаемся к одному серверу (или к серверам одной компании), как это может делать что-то децентрализованным. А spv-кошельком мы не обязаны подключаться к одной фулл-ноде, (или к фулл-нодам одной компании).
Децентрализация нужна не только и не столько для анархии, а нужна для устойчивости к сбоям. 1000 серверов пейпала имеют намного бОльшую устойчивость, чем 1000 фулл нод биткоина при равном количестве тонких клиентов. То есть с точки зрения сохранности данных, децентрализация биткоина проигрывает стандартным системам. Децентрализация с точки зрения анархии, для биткоина тоже вопрос очень спорный. 25 майнеров это сильно меньше чем число независимых акционеров визы и даже меньше количества дармоедов в аппарате правительства большинства стран. То есть желающие с помощью биткоина получить свободу от своего государства - идут в рабство к другому, пока непризнанному, и потому кажется как бы и несуществующему государству. 1. Чтобы подключиться к пейпалу, нужно получить от него разрешение. 2. Пейпал контролирует твои средства, которые ты ему обязать доверить. 3. Ты не можешь уйти к другому пейпалу. Вернее, другой "пейпал" будет точно таким же, как и этот.
Это все только потому, что пейпал вынужден соблюдать законы государств где работает. Пока государство не придумало, как прищемить яйца 25 майнерам одновременно, но как только придумает - биткоин станет еще хуже пейпала.
|
|
|
|
A-Bolt
Legendary
Offline
Activity: 2325
Merit: 2363
|
На самом деле прунинг реализованный в биткоине очень похож на то, что описывал Сатоши. Бесследно старые блоки не удаляются и размер базы прунинга не равен тому. который вы задаете в параметре prune. Я задал prune=2000 и сейчас у меня база биткоина (.bitcoin/blocks + .bitcoin/chainstate) занимает 5 гигов. Сами догадаетесь почему так или надо разжевывать?
А чего тут догадываться? Кручу-верчу запутать хочу, как говорили напёрсточники во времена оны. Есть база данных блоков - bitcoin/blocks, к ней применяется прунинг и размер этой базы подгоняется под параметр prune=2000. Есть база данных непотраченных выходов (UTXO) - .bitcoin/chainstate, к ней прунинг не применяется, она может расти или уменьшаться в зависимости от текущего количества UTXO в сети. Вы берёте и сваливаете в одну кучу размер базы, к которой применяется прунинг и размер базы, к которой прунинг не применяется. Получаете результат, который не соответствует вашему prune=2000. Всё логично. То есть вы хотите сказать. что есть тру-блоки, а есть "неполноценные"?
Да. Полноценными блоками обмениваются SegWit-совместимые клиенты, а старым клиентам подсовываются блоки, в которых из транзакций вырезан witness. И уж не хотите ли вы высказать какую-то пропагандисткую ересь типа, что тру-блоки состоят из двух частей? Или даже не дай бог скажете, что часть тру-блока которая не посылается старикам никак не влияет на хэш блока ![Shocked](https://bitcointalk.org/Smileys/default/shocked.gif) Вы мне свои утверждения не приписывайте. Вы до сих пор не ответили, в каком астрале хранятся witness-данные транзакций, если они, по-вашему, хранятся не в блоках. Что касается хеша блока, я уже говорил: 1. Транзакции в новом формате, включающий в себя witness, хешируются при помощи дерева Меркла, и корневой хеш помещается в один из выходов coinbase-транзакции. 2. Coinbase-транзакция вместе с остальными транзакциями, но уже в старом формате (без witness) хешируются при помощи дерева Меркла и корневой хеш помещается в параметр merkleroot заголовка блока. 3. Ну, а заголовок блока, включающий в себя merkleroot, принимает участие в вычислении хеша блока. Таким образом, хеш блока зависит, в том числе, и от witness-данных транзакций. что никак не доказывает, что новые клиенты хранят witness где-то там отдельно, как вы сказали "Эта часть записывается за пределами блока".
Уверены в этом? ![Wink](https://bitcointalk.org/Smileys/default/wink.gif) Вах! Мамой клянус, да? Вы придумали себе какое-то таинственное место, где хранятся witness-данные транзакций, а доказать существование этого места не в состоянии. getblock 00000000000000000015700c792c59cda0380d5e3c3e16ba555cc3cfd6d6bb7d 0 она вам выдаст ... ... выдаст фотографию голой тетки в трусах. Но голая тетка в трусах это не голая тетка, как ни странно )) Голая тётка - это я понимаю, а где хранятся отдельно от блоков witness-данные транзакций - это я не понимаю.
|
|
|
|
kzv (OP)
Legendary
Offline
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
May 02, 2019, 01:39:56 PM |
|
Есть база данных блоков - bitcoin/blocks, к ней применяется прунинг и размер этой базы подгоняется под параметр prune=2000. Есть база данных непотраченных выходов (UTXO) - .bitcoin/chainstate, к ней прунинг не применяется, она может расти или уменьшаться в зависимости от текущего количества UTXO в сети.
Вы берёте и сваливаете в одну кучу размер базы, к которой применяется прунинг и размер базы, к которой прунинг не применяется. Получаете результат, который не соответствует вашему prune=2000. Всё логично.
Ну вот и получаем: блоки хранятся вместе с непотраченными входами. Все непотраченные входы лежат на моем диске вне зависимости от прунинга. Сатоши сказал: блоки с потраченными входами весят 80 байт. Это он хорошо сказал... Только Сатоши забыл посчитать: а сколько будет НЕпотраченных входов? Даже примерно не прикинул, но мы можем сейчас это увидеть экспериментально. И вот в суровой реальности никак 80 байт на блок не получается, ни при каком прунинге. Вы до сих пор не ответили, в каком астрале хранятся witness-данные транзакций, если они, по-вашему, хранятся не в блоках.
Насколько мне известно сегвит данные пишут в тот же файл что и блоки. Однако это не делает сегвит данные частью блока. Ибо как вы сами же сказали - эти данные можно и не посылать другим нодам, в отличии от данных самого блока. Что касается хеша блока, я уже говорил: 1. Транзакции в новом формате, включающий в себя witness, хешируются при помощи дерева Меркла, и корневой хеш помещается в один из выходов coinbase-транзакции. 2. Coinbase-транзакция вместе с остальными транзакциями, но уже в старом формате (без witness) хешируются при помощи дерева Меркла и корневой хеш помещается в параметр merkleroot заголовка блока. 3. Ну, а заголовок блока, включающий в себя merkleroot, принимает участие в вычислении хеша блока. Таким образом, хеш блока зависит, в том числе, и от witness-данных транзакций.
Хорошее описание, из которого я теперь окончательно понял следующее: witness данные транзакций в блок не пишутся ))
|
|
|
|
neiros
Legendary
Offline
Activity: 3542
Merit: 1100
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
May 02, 2019, 04:37:44 PM Last edit: May 03, 2019, 01:31:54 AM by neiros |
|
То есть вы хотите сказать. что есть тру-блоки, а есть "неполноценные"?
Да. Полноценными блоками обмениваются SegWit-совместимые клиенты, а старым клиентам подсовываются блоки, в которых из транзакций вырезан witness. Далёк я немного от SegWit, конечно, считаю его тупиковым путем развития и стараюсь не забивать голову всякой чепухой, но чего-то вы тут намудрили, похоже. Хеш (id) транзакций не может быть разным для старых и новых клиентов. От этого же зависит и хеш дерева Меркла и, соответственно, хеш самого блока. Транзакции для всех клиентов должны быть одинаковыми. А вот как уже эти клиенты интерпретируют для себя эти транзакции, тут другой вопрос.
|
|
|
|
A-Bolt
Legendary
Offline
Activity: 2325
Merit: 2363
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
May 02, 2019, 06:00:57 PM |
|
Ну вот и получаем: блоки хранятся вместе с непотраченными входами. Все непотраченные входы лежат на моем диске вне зависимости от прунинга. Сатоши сказал: блоки с потраченными входами весят 80 байт. Это он хорошо сказал... Только Сатоши забыл посчитать: а сколько будет НЕпотраченных входов? Даже примерно не прикинул, но мы можем сейчас это увидеть экспериментально. И вот в суровой реальности никак 80 байт на блок не получается, ни при каком прунинге.
Согласен. Действительно 80 байт на блок не выходит. Но это не означает, что Накамото полагал что большинство блоков будут пустыми. Это означает, что он ошибся в оценке количества непотраченных выходов и зависимости этого количества от времени. Понятно, что количество UTXO где-то как-то зависит от наполняемости блоков, но зависимость тут неоднозначная. Например, можно рассылать спам транзакции на множество разных адресов, и тут же собирать их на один адрес. При этом, блоки будут заполнены под завязку, а количество UTXO будет незначительно. Мне представляется, что количество UTXO зависит от количества реальных живых пользователей: чем больше людей, тем больше они используют адресов и тем больше с этими адресами связано UTXO. Ну, вот такое допущение сделал Накамото. В конце концов, он не позиционировал Bitcoin в качестве конкурента Visa по количеству транзакций в секунду. Все делают допущения в условиях недостатка информации. Вы, когда оценивали рост блокчейна в 1.5 ТБ в год, тоже сделали допущение, что все 30-мегабайтные блоки должны быть заполнены под завязку. А как оно на самом деле было бы при таких размерах блока - неизвестно. Насколько мне известно сегвит данные пишут в тот же файл что и блоки. Однако это не делает сегвит данные частью блока. Ибо как вы сами же сказали - эти данные можно и не посылать другим нодам, в отличии от данных самого блока.
Witness-данные записываются внутри транзакций. Транзакции записываются внутри блока. Блок представляется в виде байтового потока (сериализуется) и записывается в виде последовательности байт в файл базы данных блоков (blk*.dat). Это легко проверить: внутри любого blk*.dat можно найти при помощи HEX-редактора сериализованный блок и обнаружить в нём транзакции с witness-данными. Если witness-данные оказываются внутри сериализованного блока, то как можно считать, что witness-данные - это не часть блока? Я самолично сейчас обнаружил двухмегабайтный блок 00000000000000000015700c792c59cda0380d5e3c3e16ba555cc3cfd6d6bb7d внутри файла blk01590.dat. И он таки реально занимает место на диске больше 2МБ. И разработчики Bitcoin Core с этим размером согласны: getblock 00000000000000000015700c792c59cda0380d5e3c3e16ba555cc3cfd6d6bb7d { "hash": "00000000000000000015700c792c59cda0380d5e3c3e16ba555cc3cfd6d6bb7d", "confirmations": 3485, "strippedsize": 565164, "size": 2297675, "weight": 3993167, "height": 570816,
О чём мы спорим? О том что размер блока не может превышать 1 МБ? Ну так, вот вам блок, он на вашем диске тоже занимает 2297675 байт. И все эти 2297675 байт передадутся по сети другому SegWit-совместимому клиенту, когда он будет запрашивать блоки. Хорошее описание, из которого я теперь окончательно понял следующее: witness данные транзакций в блок не пишутся ))
Но Холмс, как вы пришли к этому умозаключению?
|
|
|
|
kzv (OP)
Legendary
Offline
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
May 02, 2019, 06:58:21 PM |
|
Транзакции записываются внутри блока. Блок представляется в виде байтового потока (сериализуется) и записывается в виде последовательности байт в файл базы данных блоков (blk*.dat). Это легко проверить: внутри любого blk*.dat можно найти при помощи HEX-редактора сериализованный блок и обнаружить в нём транзакции с witness-данными. Если witness-данные оказываются внутри сериализованного блока, то как можно считать, что witness-данные - это не часть блока?
Ну вот вы смотрите данные хекс редактором, а я читаю исходники. О чем говорит эта строчка? https://github.com/bitcoin/bitcoin/blob/master/src/validation.cpp#L3108 if (block.vtx.empty() || block.vtx.size() * WITNESS_SCALE_FACTOR > MAX_BLOCK_WEIGHT || ::GetSerializeSize(block, SER_NETWORK, PROTOCOL_VERSION | SERIALIZE_TRANSACTION_NO_WITNESS) * WITNESS_SCALE_FACTOR > MAX_BLOCK_WEIGHT) return state.DoS(100, false, REJECT_INVALID, "bad-blk-length", false, "size limits failed");
По моему тут на чистом английском написано: блок не должен быть нулевым И размер всех транзакций в блоке * 4 должен быть меньше или равен 4 мегабайтам И размер блока на диске * 4 должен быть меньше или равен 4 мегабайтам. Я что-то неправильно понимаю?
|
|
|
|
Coin-1
Legendary
Offline
Activity: 2562
Merit: 2261
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
May 02, 2019, 07:54:27 PM |
|
3. Заголовок пустого блока будет составлять около 80 байт. Из расчета скорости генерации блока раз в десять минут получаем 80*6*24*365=4.2 Мб в год. Для среднестатистического на 2008 год компьютера с 2 Гб оперативной памяти с учетом закона Мура, предсказывающего рост на 1.2 Гб в год, хранение данных не будет проблемой, даже если все заголовки блоков будут находиться в памяти. Наивно не правда ли )) ? Сатоши считает сколько места на диске занимают заголовки пустого блока. То есть он изначально рассчитывал, что а) большинство блоков будут всегда пустые б) большинство пользователей будут хранить только заголовки. Реальность оказалась не такой. В условиях ажиотажа блоки идут переполненные, а для настоящей децентрализации пользователям нужно хранить у себя блоки целиком. И тут нужно вспомнить историчекий факт: в первых версиях биткоина, максимальный размер блока был ограничен не 1 Мб как сейчас, а 30 Мб! Теперь посчитаем, как должен был бы посчитать Сатоши если бы не хотел слукавить: 80*30*1048576*6*24*365 = 4.2 Мб в год 1540 Гб в год Вот так вот: если бы Сатоши в момент написания своей статьи действительно верил в то, что биткоинами будет активно пользоваться весь мир, то он бы представил расчет где база блокчейна растет на 1.5 терабайта в год! Скорее всего он и вправду верил, но понимал, что такой расчет отпугнет от его системы чуть менее чем всех и потому посчитал немного по другому )) Здесь в описании Bitcoin допущена не ошибка, а, скорее, недомолвка. Возможно, на момент написания bitcoin.pdf в 2008 году Сатоши Накамото считал блокчейном (то есть, цепочкой блоков) только заголовки блоков с MerkleRoot, которые связаны между собой через хеширование SHA256D, а транзакции предполагалось хранить отдельно. По факту block-chain Bitcoin является block-header-chain, то есть цепочкой заголовков блоков. Разумеется, каждая транзакция является неотъемлемой частью блока, без которой невозможно верифицировать весь блокчейн полностью. В общем-то, Сатоши указал, что он в вычислениях имеет в виду хранение заголовков блоков, скорее, в оперативной памяти (in memory), поэтому я не считаю этот постулат ошибкой.
|
|
|
|
A-Bolt
Legendary
Offline
Activity: 2325
Merit: 2363
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
May 02, 2019, 08:36:12 PM |
|
Ну вот вы смотрите данные хекс редактором, а я читаю исходники. О чем говорит эта строчка? https://github.com/bitcoin/bitcoin/blob/master/src/validation.cpp#L3108 if (block.vtx.empty() || block.vtx.size() * WITNESS_SCALE_FACTOR > MAX_BLOCK_WEIGHT || ::GetSerializeSize(block, SER_NETWORK, PROTOCOL_VERSION | SERIALIZE_TRANSACTION_NO_WITNESS) * WITNESS_SCALE_FACTOR > MAX_BLOCK_WEIGHT) return state.DoS(100, false, REJECT_INVALID, "bad-blk-length", false, "size limits failed");
По моему тут на чистом английском написано: блок не должен быть нулевым И размер всех транзакций в блоке * 4 должен быть меньше или равен 4 мегабайтам И размер блока на диске * 4 должен быть меньше или равен 4 мегабайтам. Я что-то неправильно понимаю? Имеем такие константы: MAX_BLOCK_WEIGHT = 4000000 WITNESS_SCALE_FACTOR = 4 Вот это мне понятно: ::GetSerializeSize(block, SER_NETWORK, PROTOCOL_VERSION | SERIALIZE_TRANSACTION_NO_WITNESS) * WITNESS_SCALE_FACTOR > MAX_BLOCK_WEIGHT В переводе на русский: Если из сериализованного блока выкинуть witness-данные, то его размер не должен превышать 4000000/4 = 1000000 байт. Вот это мне непонятно: block.vtx.size() * WITNESS_SCALE_FACTOR > MAX_BLOCK_WEIGHT vtx - вроде как имеет тип std::vector, значит метод size() возвращает количество элементов в векторе, а не общий занимаемый размер. Ну, короче, не понимаю смысл этой проверки. Но это ещё не все проверки размера блока. Дальше видим:if (GetBlockWeight(block) > MAX_BLOCK_WEIGHT) { return state.DoS(100, false, REJECT_INVALID, "bad-blk-weight", false, strprintf("%s : weight limit failed", __func__)); где GetBlockWeight это: return ::GetSerializeSize(block, PROTOCOL_VERSION | SERIALIZE_TRANSACTION_NO_WITNESS) * (WITNESS_SCALE_FACTOR - 1) + ::GetSerializeSize(block, PROTOCOL_VERSION); Тут уже всё понятно прописано, как в методичке: Block size
Blocks are currently limited to 1,000,000 bytes (1MB) total size. We change this restriction as follows:
Block weight is defined as Base size * 3 + Total size. (rationale[3])
Base size is the block size in bytes with the original transaction serialization without any witness-related data, as seen by a non-upgraded node.
Total size is the block size in bytes with transactions serialized as described in BIP144, including base data and witness data.
The new rule is block weight ≤ 4,000,000. То есть, правило такое: размер_блока_без_witness * 3 + полный_размер_блока < 4000000
|
|
|
|
GGUL
Legendary
Offline
Activity: 1468
Merit: 1102
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
May 03, 2019, 09:28:22 AM Last edit: May 03, 2019, 09:42:21 AM by GGUL |
|
Хорошо. Возьмем Ваш пример с "настоящей децентрализацией", где нет spv-кошельков. "В результате вспышки на Солнце, навсегда отвалилось 100% майнеров и 100% фулл нод. Вопрос: когда сеть биткоина восстановит свою работу?" Результат такой же.
Ответ неверный )) Если останется хотя бы одна фулл нода, то восстановить нормальную работу сети можно будет хардфорком, который стряпается за пару часов. Мой ответ то верный. ![Smiley](https://bitcointalk.org/Smileys/default/smiley.gif) Ведь по Вашим же условиям "навсегда отвалилось 100% фуллнод". А тут вдруг раз, и из рукава появляется "одна выжившая фуллнода". Шулерство пошло. Вернее, детский сад. Шулера обычно похитрее. ![Smiley](https://bitcointalk.org/Smileys/default/smiley.gif) И Вы забыли еще одно очень важное свойство децентрализованных систем, назовем его открытостью. Абсолютно необязательное свойство.
Вы меня слегка разочаровали. От человека, который болеет за децентрализацию Биткоина, услышать такой ответ...
Без этого свойства не было бы Биткоина. Кому нужна криптовалюта, если для того, чтобы воспользоваться им, нужно спрашивать разрешение.
Децентрализация и криптовалюта это вещи перпендикулярные: один раз пересеклись и все. Хотим говорить про децентрализацию интернет платежей - обсуждаем криптовалюту. Хотим говорить про децентрализацию как технологию в целом - обсуждаем все возможные решения. Я именно и обсуждаю децентрализацию криптовалют. И я писал выше: "Биткоин обладает таким свойством". Что, кстати, предполагает, что какие-то децентрализованные системы могут не обладать таким свойством. И когда в ответ: "абсолютно необязательное свойство". Если мы с разных точек подключаемся к одному серверу (или к серверам одной компании), как это может делать что-то децентрализованным. А spv-кошельком мы не обязаны подключаться к одной фулл-ноде, (или к фулл-нодам одной компании).
Децентрализация нужна не только и не столько для анархии, а нужна для устойчивости к сбоям. 1000 серверов пейпала имеют намного бОльшую устойчивость, чем 1000 фулл нод биткоина при равном количестве тонких клиентов. То есть с точки зрения сохранности данных, децентрализация биткоина проигрывает стандартным системам. Децентрализация с точки зрения анархии, для биткоина тоже вопрос очень спорный. 25 майнеров это сильно меньше чем число независимых акционеров визы и даже меньше количества дармоедов в аппарате правительства большинства стран. То есть желающие с помощью биткоина получить свободу от своего государства - идут в рабство к другому, пока непризнанному, и потому кажется как бы и несуществующему государству. Я думаю, что мы пришли к криптовалютам не потому, что они надежнее с точки зрения сохранения данных. Если бы нас волновало только это, то криптовалют бы не было. Поэтому Ваше утверждение, что децентрализация криптовалют нужна для устойчивости к сбоям, по меньше мере, звучит странно на страницах форума по криптовалюте. Децентрализация (открытая) нужна для независимости. Устойчивость к сбоям это побочный эффект от децентрализации. Одно решение суда, и все счета Пейпала могут быть заблокированы, а сервера конфискованы. Какая тут сохранность данных. И 1000 серверов Пейпала Вас не спасет, если Пейпал решит заблокировать Ваши средства. Мне не будет греть душу мысль о том, что мои данные в Пейпале хорошо хранятся, если я не будут иметь доступ к ним. 1. Чтобы подключиться к пейпалу, нужно получить от него разрешение. 2. Пейпал контролирует твои средства, которые ты ему обязать доверить. 3. Ты не можешь уйти к другому пейпалу. Вернее, другой "пейпал" будет точно таким же, как и этот.
Это все только потому, что пейпал вынужден соблюдать законы государств где работает. Пока государство не придумало, как прищемить яйца 25 майнерам одновременно, но как только придумает - биткоин станет еще хуже пейпала. Пейпал вынужден, потому что не децентрализован. Он, как минимум, находится в юрисдикции одного государства. Вы опять забываете про открытость системы. Будут щемить яйца, будут появляться другие пулы, в другом месте, в другом государстве. И это же свойство делает всякие попытки получить контроль над системой бессмысленными и бесперспективными. Назовите хотя бы субъекта, у которого есть шансы, с Вашей точки зрения, получить контроль над Биткоином. Иначе, Ваше утверждение выглядит голословным.
|
|
|
|
kzv (OP)
Legendary
Offline
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
May 03, 2019, 03:41:52 PM |
|
То есть, правило такое: размер_блока_без_witness * 3 + полный_размер_блока < 4000000
Короче я понял, сейчас есть два определения: "максимальный размер блока" и "максимальный вес блока". Максимальный размер блока = 1 мегабайт. Максимальный вес блока = 4 мегабайт. Мой ответ то верный. ![Smiley](https://bitcointalk.org/Smileys/default/smiley.gif) Ведь по Вашим же условиям "навсегда отвалилось 100% фуллнод". А тут вдруг раз, и из рукава появляется "одна выжившая фуллнода". Ладно, давайте объясню правильное решение 1. Если отвалится 100% фулл нод, но останутся 100% spv кошельков, то сеть биткоина не восстановится никогда 2. Если отвалится 100% spv кошельков и все кроме одной фулл ноды, то сеть биткоина восстановится через примерно два часа. Вывод: spv кошельки не являются частью децентрализованной сети биткоина, а фулл ноды - являются. Я думаю, что мы пришли к криптовалютам не потому, что они надежнее с точки зрения сохранения данных. Если бы нас волновало только это, то криптовалют бы не было. Поэтому Ваше утверждение, что децентрализация криптовалют нужна для устойчивости к сбоям, по меньше мере, звучит странно на страницах форума по криптовалюте. Децентрализация (открытая) нужна для независимости. Устойчивость к сбоям это побочный эффект от децентрализации.
У криптовалют есть две составляющие: политическая и техническая. В статье Сатоши в основном обсуждается техническая часть, а этот топик про статью Сатоши. Если рассматривать политическую чать то да, биткоин пока более надежен чем пейпал и виза и другие системы, зависящие от государственной политики. Если рассматривать техническую часть, то биткоин является менее надежным средством для сохранности данных чем любой захудалый совковый банк, не говоря о пейпале с визой. И тенденция у биткоина, к сожалению, уверенно шагает в сторону дальнейшего уменьшения надежности, а помогают этой тенденции как раз таки spv кошельки. Назовите хотя бы субъекта, у которого есть шансы, с Вашей точки зрения, получить контроль над Биткоином. Иначе, Ваше утверждение выглядит голословным.
Я не буду даже пытаться давать подсказки, как прищемить яйца биткоину. Это не в моих интересах. Пусть над этой задачкой самостоятельно думают те, кому это может быть выгодно )
|
|
|
|
GGUL
Legendary
Offline
Activity: 1468
Merit: 1102
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
May 03, 2019, 05:57:08 PM Last edit: May 03, 2019, 06:09:33 PM by GGUL |
|
Мой ответ то верный. ![Smiley](https://bitcointalk.org/Smileys/default/smiley.gif) Ведь по Вашим же условиям "навсегда отвалилось 100% фуллнод". А тут вдруг раз, и из рукава появляется "одна выжившая фуллнода". Ладно, давайте объясню правильное решение 1. Если отвалится 100% фулл нод, но останутся 100% spv кошельков, то сеть биткоина не восстановится никогда 2. Если отвалится 100% spv кошельков и все кроме одной фулл ноды, то сеть биткоина восстановится через примерно два часа. Вывод: spv кошельки не являются частью децентрализованной сети биткоина, а фулл ноды - являются. Детский сад продолжается. При объяснении решения задачи меняется условие задачи. У Пети 3 яблока, у Сережи 4. У кого больше. У Сережи. Неправильно, и достаем из кармана еще 2 яблока. ![Smiley](https://bitcointalk.org/Smileys/default/smiley.gif) Попробуем уточнить понятие децентрализации. Во-первых, децентрализованная система не обязана быть однородной. Однородные сети- это частный и простой случай. У нас есть система, состоит из 3-х подсетей, каждая из которых выполняет свою функцию. Каждая из подсетей децентрализована. Если выходит из строя часть подсети, система продолжает работать. Если из строя выходит вся подсеть, то система выходит из строя. Является ли такая система децентрализованной. Если нет, то где у этой системы центр. Если рассматривать техническую часть, то биткоин является менее надежным средством для сохранности данных чем любой захудалый совковый банк, не говоря о пейпале с визой. И тенденция у биткоина, к сожалению, уверенно шагает в сторону дальнейшего уменьшения надежности, а помогают этой тенденции как раз таки spv кошельки.
Опять Вы кидаете придуманные Вами же утверждения. И опять попадаете впросак. Биткоин работает практически без остановки уже 10й год. Без перерывов на техническое обслуживание. Была в первых годах проблема, которую решили хардфорком. Чтобы совковый банк работал работал с такой надежностью, быть того не может. Это смешно и обсуждать тут нечего. А по поводу Visa: https://lenta.ru/news/2018/06/01/visa/https://www.rbc.ru/finances/01/09/2016/57c837149a7947016001974fя только взял первые ссылки из поиска. Это, что касается работы этих систем. Что касается сохранения данных. Биткоин еще ни разу не терял блокчейн. То есть 0 потерь данных. Как Вы собираетесь доказывать, что у совкового банка, визы и пейпала лучше обстоят дела. Я не знаю. ![Smiley](https://bitcointalk.org/Smileys/default/smiley.gif) Назовите хотя бы субъекта, у которого есть шансы, с Вашей точки зрения, получить контроль над Биткоином. Иначе, Ваше утверждение выглядит голословным.
Я не буду даже пытаться давать подсказки, как прищемить яйца биткоину. Это не в моих интересах. Пусть над этой задачкой самостоятельно думают те, кому это может быть выгодно ) Очень удобная и дешевая отмазка. Становится скучно. ![Smiley](https://bitcointalk.org/Smileys/default/smiley.gif) "Не буду говорить кто, но кто-то обязательно захватит контроль над Биткоином." Это из серии: "Инопланетян не видел, но думаю, что они есть." Таких утверждений насочинять можно море. Большого ума не требуется. Только вот ценности у таких утверждений - ноль.
|
|
|
|
kzv (OP)
Legendary
Offline
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
May 03, 2019, 06:16:18 PM |
|
Попробуем уточнить понятие децентрализации.
Во-первых, децентрализованная система не обязана быть однородной. Однородные сети- это частный и простой случай. У нас есть система, состоит из 3-х подсетей, каждая из которых выполняет свою функцию. Каждая из подсетей децентрализована.
Я понял ваше понятие децентрализации! Децентрализация это когда нет центра. Правильно? Хотите поиграть в дословное буквоедство? Что же, давайте, только предупреждаю, что походу дела несколько упоминаний детсада это классическая проекция. Ну детсад, дак детсад: покажите мне центр пейпала для начала. Чтобы совковый банк работал работал с такой надежностью, быть того не может. Это смешно и обсуждать тут нечего.
Хорошо смеяться последним. А последним посмеется тот, кто доживет до момента когда в сети биткоина будет одна фулл нода и 100500 сиксилионов радостных децентрализованных spv кошельков.
|
|
|
|
GGUL
Legendary
Offline
Activity: 1468
Merit: 1102
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
May 03, 2019, 06:45:28 PM |
|
Попробуем уточнить понятие децентрализации.
Во-первых, децентрализованная система не обязана быть однородной. Однородные сети- это частный и простой случай. У нас есть система, состоит из 3-х подсетей, каждая из которых выполняет свою функцию. Каждая из подсетей децентрализована.
Я понял ваше понятие децентрализации! Децентрализация это когда нет центра. Правильно? Хотите поиграть в дословное буквоедство? Что же, давайте, только предупреждаю, что походу дела несколько упоминаний детсада это классическая проекция. Ну детсад, дак детсад: покажите мне центр пейпала для начала. Во-первых, я взял Ваше определение децентрализации и расширил для неоднородных систем. Во-вторых, у централизованной системы вроде должен быть центр. А у децентрализованной системы центр вроде как должен отсутствовать. И это вроде как даже логично. ![Smiley](https://bitcointalk.org/Smileys/default/smiley.gif) А Вы думаете, у Пейпала нет центра, нет руководства. Каждый отдел Пейпала работает так, как хочет, и никому не подчиняется. Чтобы совковый банк работал работал с такой надежностью, быть того не может. Это смешно и обсуждать тут нечего.
Хорошо смеяться последним. А последним посмеется тот, кто доживет до момента когда в сети биткоина будет одна фулл нода и 100500 сиксилионов радостных децентрализованных spv кошельков. Боюсь, что можете не дождаться момента, когда надо начинать смеяться. ![Smiley](https://bitcointalk.org/Smileys/default/smiley.gif) И это очередное утверждение, в котором обсуждать и нечего.
|
|
|
|
KTChampions
Legendary
Online
Activity: 2450
Merit: 1931
Leading Crypto Sports Betting & Casino Platform
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
May 03, 2019, 06:52:25 PM |
|
А Вы думаете, у Пейпала нет центра, нет руководства. Каждый отдел Пейпала работает так, как хочет, и никому не подчиняется.
Если какой-то якобы существующий центр Пэйпала начнет творить дичь, то его можно легко нагнуть через суды. Чем вам не децентрализация? А в децентрализованном блокчейне как вы нагнете пул контролирующий 51% сети (китайцев короче)?
|
..Stake.com.. | | | ▄████████████████████████████████████▄ ██ ▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄ ██ ▄████▄ ██ ▀▀▀▀▀▀▀▀▀▀ ██████████ ▀▀▀▀▀▀▀▀▀▀ ██ ██████ ██ ██████████ ██ ██ ██████████ ██ ▀██▀ ██ ██ ██ ██████ ██ ██ ██ ██ ██ ██ ██████ ██ █████ ███ ██████ ██ ████▄ ██ ██ █████ ███ ████ ████ █████ ███ ████████ ██ ████ ████ ██████████ ████ ████ ████▀ ██ ██████████ ▄▄▄▄▄▄▄▄▄▄ ██████████ ██ ██ ▀▀▀▀▀▀▀▀▀▀ ██ ▀█████████▀ ▄████████████▄ ▀█████████▀ ▄▄▄▄▄▄▄▄▄▄▄▄███ ██ ██ ███▄▄▄▄▄▄▄▄▄▄▄▄ ██████████████████████████████████████████ | | | | | | ▄▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▄ █ ▄▀▄ █▀▀█▀▄▄ █ █▀█ █ ▐ ▐▌ █ ▄██▄ █ ▌ █ █ ▄██████▄ █ ▌ ▐▌ █ ██████████ █ ▐ █ █ ▐██████████▌ █ ▐ ▐▌ █ ▀▀██████▀▀ █ ▌ █ █ ▄▄▄██▄▄▄ █ ▌▐▌ █ █▐ █ █ █▐▐▌ █ █▐█ ▀▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▀█ | | | | | | ▄▄█████████▄▄ ▄██▀▀▀▀█████▀▀▀▀██▄ ▄█▀ ▐█▌ ▀█▄ ██ ▐█▌ ██ ████▄ ▄█████▄ ▄████ ████████▄███████████▄████████ ███▀ █████████████ ▀███ ██ ███████████ ██ ▀█▄ █████████ ▄█▀ ▀█▄ ▄██▀▀▀▀▀▀▀██▄ ▄▄▄█▀ ▀███████ ███████▀ ▀█████▄ ▄█████▀ ▀▀▀███▄▄▄███▀▀▀ | | | ..PLAY NOW.. |
|
|
|
kzv (OP)
Legendary
Offline
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
May 03, 2019, 07:31:30 PM |
|
Во-первых, я взял Ваше определение децентрализации и расширил для неоднородных систем. Во-вторых, у централизованной системы вроде должен быть центр. А у децентрализованной системы центр вроде как должен отсутствовать. И это вроде как даже логично. ![Smiley](https://bitcointalk.org/Smileys/default/smiley.gif) А Вы думаете, у Пейпала нет центра, нет руководства. Каждый отдел Пейпала работает так, как хочет, и никому не подчиняется. Все хорошо и логично до тех пор, пока не переходим к конкретике... Система не может считаться децентрализованной если она неработоспособна без конкретной, малой части системы. То есть центр в централизованной системе это не обязательно одна единственная точка, а вполне может быть несколько сотен членов совета директоров например... или пара тысяч фулл нод... Боюсь, что можете не дождаться момента, когда надо начинать смеяться. ![Smiley](https://bitcointalk.org/Smileys/default/smiley.gif) А я боюсь, что дождусь, но смеяться не буду.
|
|
|
|
GGUL
Legendary
Offline
Activity: 1468
Merit: 1102
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
May 03, 2019, 07:56:48 PM |
|
Во-первых, я взял Ваше определение децентрализации и расширил для неоднородных систем. Во-вторых, у централизованной системы вроде должен быть центр. А у децентрализованной системы центр вроде как должен отсутствовать. И это вроде как даже логично. ![Smiley](https://bitcointalk.org/Smileys/default/smiley.gif) А Вы думаете, у Пейпала нет центра, нет руководства. Каждый отдел Пейпала работает так, как хочет, и никому не подчиняется. Все хорошо и логично до тех пор, пока не переходим к конкретике... Система не может считаться децентрализованной если она неработоспособна без конкретной, малой части системы. То есть центр в централизованной системе это не обязательно одна единственная точка, а вполне может быть несколько сотен членов совета директоров например... или пара тысяч фулл нод... Все верно. Кроме "пара тысяч фулл нод". Совет директоров состоит из нескольких сотен членов. Но совет вырабатывает одно решение на всех. Не может один член совета принять и реализовывать одно решение, а второй член принять другое решение и исполнять его, третий член - еще какое-то. Будет одно решение. Совет директоров идет как один элемент системы. А фулл-ноды могут. Каждый из них волен поступать так, как хочет. Хорошая попытка. ![Smiley](https://bitcointalk.org/Smileys/default/smiley.gif) p/s/ Можно продемонстрировать на примере. Введение цензуры в отношении каких-платежей. 1. В пейпал. Совет директоров соберется и проголосует. Если большинство за, то цензура вводится. Нет, значит,нет. 2. Фулл-ноды. Никакого голосования нет. Каждая фулл-нода решает, как ему поступить.
|
|
|
|
kzv (OP)
Legendary
Offline
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
May 03, 2019, 07:59:58 PM |
|
А фулл-ноды могут. Каждый из них волен поступать так, как хочет.
В каком смысле ![Huh](https://bitcointalk.org/Smileys/default/huh.gif)
|
|
|
|
|