Post
Topic
Board Кодеры
Re: Решаем проблему с размером блока
by
neiros
on 07/04/2017, 05:35:45 UTC

Более приближенный к реальности вариант вашей идеи.



1
2
3
4
5
6
7
8
9
XX
блок
T
T
T
T
T
T
T
T
T
T
матрица
T
TT
TTT
TTTT
TTTTT
TTTTTT
TTTTTTT
TTTTTTTT
TTTTTTTTT
TTTTTTTTTT
<< поток тр.
 T   T      T
  T T  T
 T  T T
   TT     T  T
    T T    T
 T   T  T T
   T  TTT  
TT  T  T    T
  T  TT T  T
  T T  TTT T
  транзакции с величиной комиссии
>= 9SK
>= 8SK
>= 7SK
>= 6SK
>= 5SK
>= 4SK
>= 3SK
>= 2SK
>= 1SK
(спам)< 1SK
Как я понимаю, здесь вы продолжаете идею рыночного регулирования комиссии...

Вы же этого хотите?


Блок формируется по этой матрице и состоит из примерно равных частей каждой её части
Коэффициент SK динамически изменяется через некую функцию по определённому количеству последних блоков(мемпул фтопку).
Пользователи и майнеры сами выбирают какую комиссию заплатить и какие транзакции добавить в блок. Так что части могут получиться любые, хотя, это не проблема. Но если вы откажетесь от консенсуса по мемпулу, то майнеры смогут подделывать комиссию.

Пользователи и майнеры конечно выбирают как долго и какая транзакция будет висеть неподтверждённой.
Мемпул в данном варианте довольно большой, размером в несколько блоков, или даже десятков, и более. Состоит, как это видно, их нескольких очередей транзакций с примерно одинаковыми комиссиями, или тем что вы заложите в свой SK, для каждой очереди. Чем больше комиссия, тем быстрее попадает она в блокчейн, а чем меньше комиссия, тем дольше она стоит в очереди. И это не отменяет те исключения, когда по "блату" какие-нибудь транзакции пройдут вне очереди.

И забудьте вы про консенсус по мемпулу. Не может быть консенсуса по тому, что неизвестно.


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

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

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

Что касается варианта с фиксированным лимитом на комиссию, то он предельно всем понятен и предсказуем. Да, в случае очень значительного роста курса (раз в 100, допустим) может потребоваться этот лимит немного уменьшить. Но эта проблема легко решается софт-форком, так что не беда.

Наиболее разумный роадмап, как мне кажется следующий:
1. Спам-фильтр на уровне обмена между полными нодами (это даже без софт-форка можно делать)
2. Спам-фильтр на уровне блокчейна (софт-форк, при поддержке >75% майнеров)
3. Снятие жесткого ограничения на размер блока (хард-форк, при поддержке >95% майнеров)
4. Внедрение механизма рыночного регулирования комиссии (софт-форк)

В принципе, последний пункт можно начинать внедрять уже на 2-3 этапе...
Действуйте и внедряйте. Grin Перед вами открыты все пути и дороги...