Pages:
Author

Topic: Решаем проблему с размером блока - page 3. (Read 5016 times)

legendary
Activity: 3556
Merit: 1100

Есть у меня одна очень интересная идея, немного затрагивающую эту тему косвенным образом. Вот думаю сформулировать её сейчас здесь, либо подождать пока руки дойдут до её реализации в виде очередного прототипа. Уже скоро наверное месяц как будет, а я ни строчи еще не написал. Другие дела постоянно отвлекают. Никак сосредоточиться не получается.
sr. member
Activity: 280
Merit: 250
Quote from: Schnibble on March 25, 2017, 03:22:18 PM
Если это условие соблюдено(рыночный механизм регулирования комиссии), то все что попадает в первый блок - не спам, а значит фактическую величину комиссии в транзакциях из первого блока можно использовать в качестве базовой величины. И уже отталкиваясь от нее можно определить, что мы будем считать спамом. Например, это может быть все, что менее 1/4 от базовой величины

1й блок это какой? Почему майнеры не будут спамить этот блок с высокими коммисиями? И по спаму, что такое спам? Низкая коммисия это спам? Я так не считаю. Скорее это печально когда транзакцию с низкой коммисией отвергают

Quote from
Лимит в 1MB ограничивает скорость роста блокчейна 6MB в час или 144MB в сутки.
Что бы система самоокупалась при нынешних реалиях средний размер блока должен быть на порядок больше.
При 1.5GB в сутки рост составит 0.5TB в год.

10тб ~ 500$. На 10 лет. Или 50$ в год. Тут я не улавливаю логику коре, тому кому нужен полный чейн это будет дорого содержать, учитывая что цены падают каждый год? При том что разговор был не о 10, а о 2мб+сегвит. После таких финтов начинаешь верить что не все в порядке в датском королевстве. Либо бу сторона шортит, играет на альтах. Либо коре пытается уничтожить бтс
sr. member
Activity: 280
Merit: 250
Quote from
Если очень коротко, то я предлагаю увеличивать размер блока тогда, когда в этом появляется необходимость. То есть изменить правила консенсуса, так, чтобы майнеры могли увеличивать блок, когда очередь mempool транзакций (с достаточной комиссией) переполняется.

это разве не то что предлагает бу? Еще есть важная деталь, чтоб вы там не придумали связанное с увеличением блока, такое предложение не пройдет. Есть отделение коре(сегвит и точка, никаких ХФ, только если форкать алгоритмSmiley ), есть отделение анти коре (ХФ по размеру обязательное условие)
вот предложение эластичного увеличения блока https://bitcointalksearch.org/topic/elastic-block-cap-with-rollover-penalties-1078521
вобще все бы неплохо с сегвитом, но без поддержки майнеров его считай нет.
предложение недавнее от коре дева https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2017-March/013921.html  Ничего нового, просто адекватный взгляд на реальность. Но, тему заминусили типа нехер с терористами переговоры вести фейспалм. Или так, это компромис ради компромиса, бесполезно, невзирая на реальность где сегвит не получит нужной поддержки без этого компромиса
legendary
Activity: 3556
Merit: 1100
newbie
Activity: 28
Merit: 0
Один из крайних случаев при таких 5% может стать таким, что при огромной величине мемпула, блоки будут очень маленькими.
Думаете, майнеры не захотят включать транзакции даже с высокой комиссией? В таком случае, придется еще ужесточать требования для содержимого блоков. Но мне кажется такой проблемы не будет.

Про mempool можно забыть когда консенсус основывается на блоках. Хоть он для всех как бы один, но для каждого разный из-за множества факторов влияющих на скорость прохождения каждой транзакции от узла к узлу, включая константу nMinRelayTxFee и может ещё чего, что сейчас не помню.
Если мы увеличиваем лимит на размер блока, то это уже в любом случае хард-форк. А раз уж мы все-равно изменяем протокол, то можем закрепить и правила формирования mempool как обязательные, и для всех они будут одинаковые. Что касается параметра minRelayTxFee, то логично его поднять до значения 10-20 sat/byte. Все транзакции с меньшей комиссией мы считаем нестандартными и в mempool их включать необязательно. А вот выше 20 sat/byte minRelayTxFee узлам устанавливать нельзя, это да.

И какие-либо задержки в 15-20 секунд никакой роли при этом не играют. Консенсуса по мемпулу в таких условиях не может быть в принципе, особенно при 5% которые подразумевается использовать каким угодно способом.
Вы не поняли. Нам не нужен полный консенсус по содержимому мемпула. Консенсус нужен только по тому, какие транзакции следует считать стандартными. Полные ноды не должны отбрасывать их, иначе просто не смогут проверить блок на валидность. Такой консенсус уже имеется, и я предлагаю добавить к нему еще два условия:
1) транзакция должна попасть в мемпулы большинства полных нод и пробыть там какое-то время до того, как будет включена в блок;
2) комиссия за транзакцию должна быть не менее 20 sat/byte

Первое условие необходимо для того, чтобы майнеры не могли бесплатно включать более 5% собственных транзакций в блок - теперь они, наравне со всеми, будут вынуждены сначала разослать их по сети. Второе условие - защита от спама, это ограничивает рост блокчейна.

5% нестандартных транзакций - смягчающее условие, это очень большой запас для того, чтобы ноды всегда приходили к консенсусу. Даже в том случае, если готовый блок каким-то образом поступит раньше, чем некоторые включенные в него транзакции, что на практике почти невозможно.

В любом случае, самая длинная цепочка в конечном итоге строится на PoW, и отбракованные блоки теоретически могут быть включены в блокчейн, но только если большинство майнеров нарушат правила и согласятся их принять. Поэтому, во время оценки PoW для цепочки, ноды и майнеры не должны считать такие блоки, пока за ними не будет построено хотябы 2-3 корректных блока. По этой же причине имеет смысл ограничить единовременное увеличение блока по сравнению со средним размером нескольких предыдущих, скажем не более чем вдвое.

Очень сомневаюсь что кэшбек здесь вообще возможен.
Я имею ввиду, что транзакции с большим кол-вом входов можно пропускать бесплатно либо со скидкой.
legendary
Activity: 3556
Merit: 1100
newbie
Activity: 28
Merit: 0
legendary
Activity: 3556
Merit: 1100
sr. member
Activity: 266
Merit: 250
Oops...
Имеются ли на форуме русскоязычные девелоперы, желающие принять активное участие в обсуждении решения данной проблемы, а возможно и его реализации?

Если они и есть, в чём я немного сомневаюсь, то очень капитально скрываются и шифруются, никак себя не проявляя. Grin



Grin

Какая такая проблема!? Нет проблемы, сказали же вам: догами за розницу раскидаетесь как-нибудь  Grin
newbie
Activity: 28
Merit: 0
Как пользователь я могу только поменять одну систему на другую, а внести в них какие-либо изменения, улучшения, правки или т.п. - нет.
Я думаю, если вы предложите очевидное улучшение, например, сделаете перевод на какой-то язык, то имеете все шансы, что оно будет принято. Что же касается более критических изменений, таких как хард-форк, то даже Core-разработчики уже не могут так просто их вносить. То есть система все еще достаточно децентрализована - сейчас ни одна из сторон конфликта не в состоянии монополизировать Биткоин, и при этом они препятствует это делать друг другу. Я считаю, что происходящее на данный момент это самый лучший сценарий, поскольку мы получаем время на то, чтобы предложить нормальное решение проблемы.

Как разработчик чего-либо своего, в меру своих сил, возможностей и знаний, проблема размера блока передо мной вообще не стоит. Какой необходим будет размер, такой и будет, с учётом пожеланий кого бы то ни было.
Таким образом, вы получите более гибкий процесс разработки, но зато и более централизованный, по такому пути идет, например, Ethereum. Это не хуже и не лучше - просто другая идеология.

Проблему ограниченной пропускной способности и высокой пользовательской комиссии.
Каким образом?
Чтобы ответить на этот вопрос, по сути, мне нужно сразу оформить предложение, как готорое решение в виде BIP. Скорее всего, когда найду время, то так и поступлю. Тогда можно будет обсудить детали.

Хотя, может быть, вы имеете ввиду другой вопрос: "Каким образом внедрить это решение?". У меня есть одна идея, как принудить всех майнеров перейти на новую цепочку. Но я не сторонник радикальных методов, и думаю, что лучший путь - это сделать очень хорошее обоснование, и привести все аргументы, что данное решение является оптимальным. Без политики.
legendary
Activity: 3556
Merit: 1100
В какой то мере, относительно всего остального возможного.
Если я правильно понял, то вы опасаетесь, что при изменении размера блока могут возникнуть какие-то проблемы? Поясните.
Честно говоря меня больше волнует один битый зелёный пиксель на совсем недавно приобретённом мониторе с разрешением 2560x1440, чем решение чужих, всё более монополизирующихся и централизирующихся проблем "потенциальных монополистов и диктаторов(императоров и патриархов) - вымогателей и тунеядцев, асикостроителей и их распространителей,.." Grin Кроме потери времени ничего больше это на даёт.

Как пользователь я могу только поменять одну систему на другую, а внести в них какие-либо изменения, улучшения, правки или т.п. - нет.

Как разработчик чего-либо своего, в меру своих сил, возможностей и знаний, проблема размера блока передо мной вообще не стоит. Какой необходим будет размер, такой и будет, с учётом пожеланий кого бы то ни было. И если будет, и неизвестно когда.


Чего то я не совсем улавливаю какую проблему вы хотите решить. (очередными "костылями и подпорками" - условиями и ограничениями)
Проблему ограниченной пропускной способности и высокой пользовательской комиссии.
Каким образом?
newbie
Activity: 28
Merit: 0
В какой то мере, относительно всего остального возможного.
Если я правильно понял, то вы опасаетесь, что при изменении размера блока могут возникнуть какие-то проблемы? Поясните.

Чего то я не совсем улавливаю какую проблему вы хотите решить. (очередными "костылями и подпорками" - условиями и ограничениями)
Проблему ограниченной пропускной способности и высокой пользовательской комиссии.
legendary
Activity: 3556
Merit: 1100
kzv
legendary
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
Есть биткоин классик, есть анлимитед.
... Майнеры видят у кого какой клиент и кого больше. ...

А как майнеры видят, у кого какой клиент?

https://en.bitcoin.it/wiki/Protocol_documentation#Common_structures

Code:
Field Size 	Description 	Data type 	Comments
4 version int32_t Identifies protocol version being used by the node
8 services uint64_t bitfield of features to be enabled for this connection
8 timestamp int64_t standard UNIX timestamp in seconds
26 addr_recv net_addr The network address of the node receiving this message
Fields below require version ≥ 106
26 addr_from net_addr The network address of the node emitting this message
8 nonce uint64_t Node random nonce, randomly generated every time a version packet is sent. This nonce is used to detect connections to self.
? user_agent var_str User Agent (0x00 if string is 0 bytes long)
4 start_height int32_t The last block received by the emitting node
Fields below require version ≥ 70001
1 relay bool Whether the remote peer should announce relayed transactions or not, see BIP 0037


Code:
0000   f9 be b4 d9 76 65 72 73 69 6f 6e 00 00 00 00 00  ....version.....
0010   64 00 00 00 35 8d 49 32 62 ea 00 00 01 00 00 00  d...5.I2b.......
0020   00 00 00 00 11 b2 d0 50 00 00 00 00 01 00 00 00  .......P........
0030   00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ff  ................
0040   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
0050   00 00 00 00 00 00 00 00 ff ff 00 00 00 00 00 00  ................
0060   3b 2e b3 5d 8c e6 17 65 0f 2f 53 61 74 6f 73 68  ;..]...e./Satosh
0070   69 3a 30 2e 37 2e 32 2f c0 3e 03 00              i:0.7.2/.>..
newbie
Activity: 28
Merit: 0
Я же хочу найти такой диапазон комиссии, чтобы попадание транзакции в первый блок было достаточно дорогим для большинства пользователей, но при этом они все еще могли попасть в блокчейн в разумные сроки и за разумную цену.
Это желание для очень узкого спектра возможных вариантов.
Вы имеете ввиду в текущей ситуации с блоком 1MB? Диапазон комиссии то можем выбрать какой угодно вплоть до (0;+∞).

Из этого следуют разнообразные манипуляции каких угодно пулов/майнеров с первым блоком, что порождает ещё некоторое количество дополнительных проблем, которые нужно будет решать.
Да, я это понимаю. На самом деле, в этом месте проблем я вижу не так уж много. Если мы не будем увеличивать размер блока больше, чем это необходимо, то для манипуляций майнеров в них просто не останется места. Таким образом, майнеры не смогут бесплатно добавлять транзакции даже в свои блоки, поскольку теряют на том, что могли бы включить чужую транзакцию. Хотя, если они будут майнить очень много собственных транзакций, то все еще смогут подделывать размер комиссии в них (она же все равно к ним возвращается). Но, во-первых, это же не все транзакции, и средними значениями комиссии будет манипулировать труднее. Во-вторых, манипулировать комиссией своих транзакций в большую сторону смогут только соло майнеры. Ну и самое главное, мне думается, что ориентироваться нужно не на транзакции в готовых блоках, а на самые приоритетные транзакции в mempool. Здесь майнерам уже будет невозможно подделывать комиссию.
legendary
Activity: 3556
Merit: 1100
Какое то здесь своеобразное, что то вроде дежавю, имеет место быть, как мне кажется. Smiley

Я же хочу найти такой диапазон комиссии, чтобы попадание транзакции в первый блок было достаточно дорогим для большинства пользователей, но при этом они все еще могли попасть в блокчейн в разумные сроки и за разумную цену.
Это желание для очень узкого спектра возможных вариантов.


А поскольку, как вы правильно заметили, обменный курс у нас неопределенный, то нужно, чтобы этот диапазон определялся рыночным путем. Если это условие соблюдено, то все что попадает в первый блок - не спам, а значит фактическую величину комиссии в транзакциях из первого блока можно использовать в качестве базовой величины.
Из этого следуют разнообразные манипуляции каких угодно пулов/майнеров с первым блоком, что порождает ещё некоторое количество дополнительных проблем, которые нужно будет решать.
newbie
Activity: 28
Merit: 0
Тут сразу нужно определиться, что есть спам. Слишком мелкие транзакции это довольно неопределённое понятие при неопределённом курсе. Поэтому предлагаю считать спамом абсолютно любую транзакцию с нулевой комиссией.
Да. Здесь размышления еще ведутся на абстрактном уровне. Под мелкими транзакциями, конечно же, подразумевались транзакции с мелкой комиссией.

Насчет, нулевой комиссии. Боюсь, что такой вариант нам не подходит, поскольку может быстро приводить к росту блокчейна. Я же хочу найти такой диапазон комиссии, чтобы попадание транзакции в первый блок было достаточно дорогим для большинства пользователей, но при этом они все еще могли попасть в блокчейн в разумные сроки и за разумную цену. А поскольку, как вы правильно заметили, обменный курс у нас неопределенный, то нужно, чтобы этот диапазон определялся рыночным путем. Если это условие соблюдено, то все что попадает в первый блок - не спам, а значит фактическую величину комиссии в транзакциях из первого блока можно использовать в качестве базовой величины. И уже отталкиваясь от нее можно определить, что мы будем считать спамом. Например, это может быть все, что менее 1/4 от базовой величины. Изменяя эту константу мы теперь можем регулировать скорость заполнения блокчейна или соотношение его доступности для рядовых пользователей и степени децентрализации полных нод.
legendary
Activity: 3556
Merit: 1100
newbie
Activity: 28
Merit: 0
Не вижу предмета для обсуждения.
Предмет обсуждения в процессе. Пока что я обозначаю основные проблемы и делюсь своими идеями по их решению. О технических деталях и тем более готовых клиентах говорить рано.

Если очень коротко, то я предлагаю увеличивать размер блока тогда, когда в этом появляется необходимость. То есть изменить правила консенсуса, так, чтобы майнеры могли увеличивать блок, когда очередь mempool транзакций (с достаточной комиссией) переполняется.
newbie
Activity: 28
Merit: 0
На данный момент пользователи конкурируют за право их транзакций быть включенными в блок путем добавления в них некоторой комиссии. Можно попробовать отличать полезные транзакции от "мусора" по ее размеру. Но, к сожалению в текущей реализации рыночный механизм регулирования комиссии работает неэффективно, поскольку майнеры включают в блок только те транзакции, комиссия за которые превышает определенный порог. Все остальные остаются в очереди и ожидают пока этот порог снизится. Для того, чтобы рыночный механизм регулирования комиссии работал эффективно, необходима дополнительная мотивация. В идеале майнеры должны учитывать время ожидания транзакций в очереди, когда принимают решение об их включении в блок. Так, чтобы ранние транзакции даже с меньшей комиссией могли получить преимущество перед более поздними. В принципе это можно и нужно реализовывать методом софт-форка, но такое изменение консенсуса может значительно затруднить принятие нашего решения сообществом...

Попробую обосновать, для чего нам нужен механизм рыночного регулирования комиссии. Если он будет корректно работать, то пользователи получат выбор: заплатить дорого, чтобы включить транзакцию в первый же блок, либо подождать и сэкономить на комиссии. Таким образом, если величина комиссии определяется рынком, то мы можем использовать это значение для различения полезных транзакций от спама. Кроме того, следует принять во внимание, что в случае избыточного увеличения размера блока, мы можем просто сломать механизм регулирования комиссии, так как все полезные транзакции очень дешево смогут проходить в первый же блок, а майнеры и вовсе получат возможность проводить свои транзакции бесплатно или заполнять блоки флудом.
Pages:
Jump to: