Ответы на вопросы о CyberWay часть 4. Принцип работы Bandwidth в CyberWay


Уважаемые делегаты и члены комьюнити!

Данная статья акцентирует ваше внимание на вопросах от пользователей @denis-skripnik и @ksantoprotein, заданных в комментариях под публикацией аналогичной рубрики и telegram-чате, посвященному транзиту Голоса на платформу CyberWay.

@denis-skripnik: Если у аккаунта DApp 1% токенов, он будет иметь 1% пропускной способности и 1% ресурсов сети, если не учитывать возможное получение токенов из фонда для приложений? Или всё иначе?

@ksantoprotein: Если меня есть 1000 токенов и я проголосовал за валидатора, за хорошего валидатора, чтобы получать процент с его дохода за подписание блоков. то сколько это будет в токенах и будет ли у меня свой bandwidth или он условно заморозится? Другими словами могу ли одновременно выбирать валидатора и пользоваться личным bandwidth или придется пользоваться двухподписным?

Выражаем благодарность @ksantoprotein за вопросы в чате Голос Кор в пятницу ночью.

В CyberWay подсистема bandwidth состоит из трех видов ресурсов (RAM, NET, CPU). В отличие от EOS, пользователю не следует стейкать (замораживать, блокировать) токены на каждый ресурс по-отдельности. Он стейкает определенное количество токенов на bandwidth, в то время как система автоматически рассчитывает суммарное потребление через механизм динамических цен, в зависимости от того, какой ресурс в данный момент потребляется активнее. При проведении больших транзакций дороже NET (например, при размещении объемных постов), при проведении долгих транзакций (например, при сложных вычислениях или работе с памятью) дороже CPU, когда много данных записано в памяти (например, при сохранении постов целиком в стейте) - дороже RAM.

Давайте рассмотрим bandwidth в упрощенной модели на примере игры “Рулетка”, реализованной в виде смарт-контракта.

Начальные условия таковы, что данному контракту не понадобится сохранять большие объемы данных. В основном, все потребление памяти сводится к сохранению кода смарт-контракта в чейне. Следовательно, данное приложение не будет активно конкурировать с другими приложениями за RAM. В результате автоматического расчета потребления, часть застейканных на bandwidth токенов, требуемых для оплаты памяти, заморозится и не будет участвовать в оплате за остальные ресурсы. Ресурс NET имеет несколько иную специфику работы, однако, в случае игры “Рулетка”, объем отправляемых в блокчейн транзакций является небольшим. Это не блог-платформа, поэтому в отношении этого ресурса смарт-контракт не будет конкурировать с другими аккаунтами на платформе.

Основной ресурс, который будет потреблять смарт-контракт, - это CPU. Блокчейн считывает CPU как время выполнения транзакции. Количество транзакций, записываемых в блок, максимально зависит от мощности нод валидаторов. При росте конкуренции в сети валидаторы будут вынуждены покупать более мощное оборудование, и количество транзакций на один блок будет увеличиваться.

Для упрощения модели возьмем 1 000 среднестатистических транзакций в секунду (реально достижимый показатель для CyberWay), или 3 000 транзакций в блок. Все аккаунты в системе не смогут уместить свои транзакции в один блок. Для этого вводится понятие “окно” для подсчета ресурсов. Окно для CPU равняется 1 суткам. Количество транзакций, которое может совершить аккаунт, вычитается от максимального количества транзакций в сутки. Т. е. 1 блок единожды, каждые 3 секунды, в течении суток - это 24 60 60 / 3 = 28800 блоков. В эти блоки поместится максимум 28 800 * 3 000 = 86 400 000 транзакций.

Допустим, смарт-контракт имеет на своем балансе 1 000 CYBER, застейканных на bandwidth (уже с учетом замороженных на хранение контракта), а в системе застейкано всего 150 000 000 CYBER (текущее количество токенов Голос, которое “переедет” на CyberWay). Токены, которые предлагается добавить в Фонд приложений, в распределении bandwidth на старте системы участвовать не будут.

Таким образом, доля контракта “Рулетки” равна 86 400 000 * 1000 / 150 000 000 = 576 транзакций в сутки. Естественно, что реальные транзакции “Рулетки” могут быть разной сложности и “длины” по сравнению со среднестатистическими (например, одна транзакция может обрабатываться в течение 5 среднестатистических транзакций).

Важный момент: игра “Рулетка” - про ставки на выпадающее число, определение выпадающего числа и распределение выигрыша. Соответственно, участники могут оплачивать ставки своим bandwidth. Определение выигрышного числа оплачивает контракт “Рулетки”, а за выигрышем участники могут приходить сами за “свой счет” (оплачивать своим bandwidth). То есть контракту “Рулетки” с балансом 1 000 CYBER весь ресурс CPU на 576 среднестатистических транзакций может и вовсе не понадобиться.


Теперь представим, что к CyberWay присоединится несколько приложений, которым суммарно будет выделено 10% системных токенов из общего Фонда приложений (предполагается выделение до 3% на приложение). Приложения застейкают их на bandwidth, в результате от 576 транзакции контракта “Рулетка” отнимутся 58 транзакций.

В условиях органичного развития сети ноды валидаторов станут мощнее из-за конкуренции между валидаторами. Команда Голос Кор оптимизирует код, и транзакции начнут обрабатываться быстрее, что неизбежно приведет к росту количества транзакций в секунду. Но, вместе с тем, мы предполагаем, что контракт “Рулетка” тоже будет развиваться, и количество системных токенов, которые накопятся на его счету к этому моменту, будет значительно выше начальной 1 000 CYBER в 2 или 3 раза, например.

Обращаем особое внимание на эту статью делегатов и разработчиков приложений: @vik, @arcange, @ropox, @primus, @dmilash, @vvk, @steepshot, @semasping, @captain, @lex, @asuleymanov, @solox, @jackvote, @cats, @denis-golub, @alexna, @ksantoprotein, @eee, @on1x, @sterh, @p2psynergy, @space.creator, @uncleandyv

Также просим внимательно прочесть эту статью всех активных пользователей, которые хотят разобраться с ценностью токенов CYBER, получаемых пользователями Голоса при транзите - мы ждем представителей сообществ Vox Populi @poesie, @istfak, @vp-handmade, @vp-music, @vp-painting, @vp-kulinar-club, @vp-pedsovet, @vp-photo.pro, @vp-zarubezhje, @fractal, @vp-liganovi4kov, @just-life, @rblogger, @vox.mens, руководителей и участников независимых сообществ @chaos.legion и @liga.avtorov; активных блогеров, кураторов и инвесторов @anela, @alexna, @anri, @varwar, @smotritelmayaka, @ksantoprotein, @shenanigan, @chugoi, @olegst, @nikulinsb, @sofya, @eldar-adov, @kudesnikaltay, @biorad, @teeves, @yamoskva, @oagalakova, @evgeny-zaikin, @slon21veka, @frodogrodno, @fainder, @karavai, @galina1, @mishka, а также всех пользователей, которым интересна эта тема.

Каналы коммуникации с Golos•Core

  • https://t.me/goloscoretc (решение технических вопросов, связанных с работой блокчейн, нод, api и др.)
  • https://t.me/joinchat/BLwf_A118xQ57nsM1Q4MPA (канал для вноса предложений от комьюнити, обсуждение перехода на кодовую базу EOS)
  • https://t.me/golos_tools (решение вопросов по различным интерфейсам и дополнительным инструментам, создаваемым Golos•Core)
  • https://t.me/goloscore_analytics (решение вопросов по работе экономики блокчейн, статистическим экономическим данным, аналитике данных)
  • https://t.me/goloscoretech (новостной канал, с актуальной информацией от Golos•Core)

Мы будем очень рады, если вы поддержите делегата @goloscore. Заходите на страничку /~witnesses голосуйте за делегата Golos•Core!
Спасибо за внимание и хорошего дня!

С уважением,

Команда Golos•Core: @andreypf, @korpusenko, @maslenitsa, @muhazokotuha, @zxcat, @annaeq, @anazarov79, @kaynarov, @s-medvedev, @eugin, @dedbaraded, @jimak.


Comments 11


Добавьте, пожалуйста, в список разработчиков @uncleandyv . Спасибо)

09.04.2019 13:34
1

@anela Добрый день! Добавили! :)

09.04.2019 13:38
2

@goloscore, поздравляю! Вы добились некоторого прогресса на Голосе и были награждены следующими новыми бейджами:

Награда за Количество комментариев

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

Вам нравится проект Доска Почета? Проголосуйте за делегата @golosboard, и вы получите еще одну награду!

09.04.2019 14:01
0

Правильно ли я понял, что текущие аккаунты пользователей БЧ Голос после транзита на БЧ CyberWay будут иметь свой личный bandwidth (согласно кол-ва застейканных токенов CYBER) и только новые аккаунты, создаваемые приложениями (напр. golos.io) будет иметь "спонсируемый ими" bandwidth?

09.04.2019 14:54
1

@lex да, именно так. все текущие пользователи получат свой личный бендвич.

10.04.2019 14:37
0

@andreypf, ясно, спасибо!

10.04.2019 14:40
0

Благодарю. Теперь всё понятно.

09.04.2019 15:05
3

ВОПРОС
Анонсируемое новой командой ГолосКлассик приложение golos.id, после перехода ГОЛОСа на СайберВей, собирается подхватить цепочку блокчейна проекта "ГОЛОС" и продолжать выпускать токены golos и gbg, торгуя ими на бирже Рудекс.

В связи с чем у меня вопрос: Будут ли изменены названия токена нового приложения ГОЛОС в рамках перехода на платформу СайберВей, который тоже будут торговаться на бирже Рудекс, или у нас могут появится одинаковые токены на одной и той же децентрализованной бирже от двух разных проектов !?

09.04.2019 19:27
1

@smotritelmayaka хороший вопрос!

09.04.2019 21:05
0

Ваш пост поддержали следующие Инвесторы Сообщества "Добрый кит":
chugoi, ladyzarulem, nikalaich, vasyl73, strecoza, maksina, midnight, sterh, nefer, mishka, gapel, semasping, veta-less, aleos, archibald116, oksana0407
Поэтому я тоже проголосовал за него!

Узнать подробности о сообществе можно тут:
Разрешите представиться - Кит Добрый
Правила
Инструкция по внесению Инвестиционного взноса
Вы тоже можете стать Инвестором и поддержать проект!!!


Если Вы хотите отказаться от поддержки Доброго Кита, то ответьте на этот комментарий командой "!нехочу"


dobryj.kit теперь стал Делегатом! Ваш голос важен для всего сообщества!!!
Поддержите нас:

10.04.2019 08:29
0

хм... все равно многое непонятно, видимо из-за физического непонимая что есть NET CPU и RAM на кибервей (ибо отличие от EOS есть и так понимаю они существенные)/

поэтому видимо надо начать с совсем простых вещей... и вопросов

  1. Для рулетки, чтобы сделать ставку юнит должен отправить со своего аккаунта на аккаунт рулетки условно 1 токен. на голосе считается размер транзакции... это примерно 0.3 кБ и умножается на мультипликатор 10 (в случае transfer). то есть чтобы сделать перевод аккаунт должен владеть не менее 3кБ бендвиша. а как это будет происходит на кибервей? что необходимо "потратить" NET CPU RAM чтобы передать токены от одного пользователя другому? или это бесплатно по бендвиш?
  2. А можно отправить токены другого приложения так же на рулетку? и в трансфере нужно будет просто указать иной asset или необходимо обратить к смарту самого приложения?
  3. далее скрипт рулетки сканирует блоки и находит этот перевод... и исходя из подписи делегата и подписи юнита (на голосе) скрипт вычисляет выпавшее число и сохраняет это число у себя локально, так как для вычисления нового числа помимо сигнатур делегата и юнита в моем скрипте требуется еще так называемая соль (предыдущее значение). то есть я могу и на кибервей спокойно использовать скрипт на своем сервере, а могу попытаться оплатить смарт. то есть мне нужно арендовать RAM где будет хранится смарт и видимо CPU в ходе которого будут происходить необходимые вычисления над каждым спином и видимо еще RAM, чтобы хранить то самое предыдущее число и каждый раз перезаписывать его. при этом смарт реагирует на каждый трансфер в блокчейне, чтобы сгенерировать выпавшее число (ну вот такая логика скрипта, которую сам же разработал и оттестировал как наиболее пригодную, ибо как ни крути подпись юнита можно саму по себе "подогнать", равно как технически можно "подогнать" и подпись делегата под игру.

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

в таком случае для рулетки необходимо, чтобы юнит сделал трансфер токена (это оплата на его совести), а рулетка делает трансфер обратно если проигрыш, то 0.001 токен, если победа, то поболее.

поэтому первичный интерес, а сколько таких переводов сможет сделать рулетка с 1000 токенами в стейке (плюс необходимы токены на свободном балансе, чтобы выплачивать выигрыши).

на голосе я спокойно могу рассчитать сколько надо, и даже упаковывать трансферы разным игрокам в одну транзакцию, немного экономя свой бандвиш. не получится ли на кибервее, что на рулетку сделают десятки тысяч переводов в виде ставок (так понимаю 3000 переводов можно поместить в один блок, который раз в 3 секунды) и в итоге сгенерируется очередь выплат... ну пусть на 1500... (делали ставки на равные шансы). когда мне сейчас не хватает бендвиша, то выплаты я храню локально в стейте и потом отправляю юнитам, когда восстанавливается бендвиш. а что произойдет на кибервее при такой ситуации... скопится вот так 10000 выплат, а перевести не получается, так как нехватает бендвиша.

11.04.2019 09:56
0
My pageSettingsLogout
Cancel Confirm
100%
Cancel Confirm
Cancel Confirm