Генератор случайных чисел на базе данных из БЧ

23 дня назад
79 в ru

Здравствуйте. Была надобность внедрить открытый честный ГСЧ в один проект, и я начал искать разные решения. Нашёл https://github.com/gropox/randomblockchain. Очень этому рад, т.к. в этом ранее ничего не понимал.

Суть:

  1. Указывается 2 блока;
  2. При помощи api метода get_block берётся witness_signature у каждого из них;
  3. Создаётся хеш из их суммы;
  4. Он представляет собой большое шестнатиричное число. При помощи bidInteger сообщается языку программирования, что это так.
  5. В результате получаем большое число, которое делим по модулю на 3.

Остаток является этим случайным числом.

В репозитории был пример страницы, которая позволяет проверить честность ГСЧ, т.е. производит те же вычисления и выводит результат.
Я её загрузил на сервер и сделал так, чтобы можно было сообщать блокчейн, номера блоков и количество участников.
Пример: https://dpos.space/randomblockchain/?chain=golos&participants=3&block1=31442759&block2=31443430

При загрузке она локально подключается к выбранному блокчейну и при помощи get_block получает witness_signature,
После нажатия по кнопке "Вычислить счастливое число" производит вычисления и выводит результат.

Всё ок работает. Правда доступны не все блоки, поскольку производится подключение к публичной Ноде @lex, которая хранит лишь историю за 7 дней.
В Steem и, вроде бы, Viz всё впорядке.

Доступные блокчейны

  • steem
  • viz
  • golos

(пишутся буквами в нижнем регистре).

Где это может быть полезно:

  1. В проектах с ГСЧ;
  2. В конкурсах, где определяется победитель или победители случайным образом. Например, можно взять блок с постом анонса конкурса и постом о результатах.
  3. Где-то ещё... Лень сейчас всё вспоминать.

Всё

Удачи во всём.

С уважением, незрячий программист, автор и делегат @denis-skripnik.

Порядок сортировки:  Популярное

@denis-skripnik, через get_block можно получить за всё время и на моей ноде, это плагин database_api, он есть даже на делегатских нодах (не обязательно полную ноду).

Неделя только для контента (в рамках активного окна выплат) + тяжелые запросы get_account_history и get_ops_in_block.

·
79
  ·  22 дня назад

@lex Понятно. Благодарю за информацию.

73
  ·  23 дня назад

Hello, @denis-skripnik. You received 90% upvote from Flotilia.


Здравствуйте, @denis-skripnik. Вы получили 90% апвот от Флотилии.

73
  ·  23 дня назад

@denis-skripnik молодец!)))

·
79
  ·  22 дня назад

@flotilia Благодарю.

73
  ·  23 дня назад

@denis-skripnik но ты эту идею сразу и предложил. А потом еще и обдумал и видимо разработал. Очень хорошо!

·
79
  ·  22 дня назад

@flotilia Ну изначально хотел другое реализовать. Вот только нашёл решение от Георгия @ropox и решил использовать его, а не делать велосипед. Лишь страницу для проверки честности улучшил, добавив получение witness_signature из блоков и ссылки на них.

·
·
73
  ·  22 дня назад

@denis-skripnik ты молодец!

67
  ·  23 дня назад

@denis-skripnik гениально денис

·
79
  ·  22 дня назад

@zimaolga Благодарю.

81
  ·  22 дня назад

@denis-skripnik, Поздравляю!
Ваш пост был упомянут в моем хит-параде в следующей категории:

  • Потенциальных Выплаты - 8 позицию - 231,766 GBG

Hello, @denis-skripnik. You received 78.76% upvote from UPRomo for burned GBG. Promoted this post in the queue: @denis-skripnik.
Possible profit of like -51.54% (may vary greatly due to fluctuations in the pool).

The instruction for burning, for promotion or a drop of posts.

Invest in UPRomo and promote increase in number of the burned GBG.

Agreement on the use of service UPRomo.


Здравствуйте, @denis-skripnik. Вы получили 78.76% апвот от UPRomo за сожженные GBG. Продвигали этот пост в очереди: @denis-skripnik.
Возможная доходность апа -51.54% (может сильно отличаться из-за колебаний пула).

Инструкция по сжиганию для продвижения или задвигания постов.

Инвестируйте в UPRomo и способствуйте увеличению количества сжигаемых GBG.

Соглашение об использовании UPRomo.