Уважаемые пользователи Голос!
Сайт доступен в режиме «чтение» до сентября 2020 года. Операции с токенами Golos, Cyber можно проводить, используя альтернативные клиенты или через эксплорер Cyberway. Подробности здесь: https://golos.io/@goloscore/operacii-s-tokenami-golos-cyber-1594822432061
С уважением, команда “Голос”
GOLOS
RU
EN
UA
finantech
5 лет назад
cyberway

Bandwidth Blockchain CyberWay

image.png

Активность пользователя в сети ограничивается выделенной ему пропускной способностью — ресурсами bandwidth. С уменьшением объема выделяемых ресурсов bandwidth активность пользователя снижается. Доля bandwidth выделяется пользователю в соответствии со средствами, находящимися на его балансе и зарезервированными на использование bandwidth. Доля bandwidth вычисляется отдельно для ресурсов CPU, NET, RAM и Storage. Ресурсы bandwidth находятся на балансе приложения и выделяются пользователю непосредственно при выполнении им транзакции в системе, что обеспечивает динамическое их распределение. Ниже изложены принципы выделения пользователю ресурсов bandwidth в CyberWay

Выделение ресурсов по принципу разделяемого bandwidth

Распределенное приложение может иметь на своем балансе единый ресурс bandwidth и использовать его как разделяемый bandwidth. В этом случае для выделения пользователю доли bandwidth созданная им транзакция должна быть подписана двумя ключами — личным ключом пользователя и личным ключом аккаунта приложения. Приложением создается пара личного и публичного (англ. private-public) ключей, принадлежащих данному аккаунту. Личный ключ аккаунта хранится в защищенной части сервиса (веб-сайта), публичный ключ — в блокчейне. Публичный ключ используется для контроля соответствия подписей аккаунтов в транзакции подписям, которые принадлежат зарегистрированным в блокчейне аккаунтам и хранятся в блокчейне как образцовые

Структурная схема выделения ресурсов bandwidth по принципу разделяемого bandwidth

image.png

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

Выделение ресурсов по принципу приоритетного bandwidth

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

Чтобы предоставить пользователям равные условия, в CyberWay реализован метод распределения ресурсов по принципу приоритетного bandwidth. Общая полоса пропускания разделяется на две зоны:

  • зона гарантированной полосы пропускания (в классическом EOS-варианте), обеспечивающая выделение аккаунту доли ресурсов в соответствии с его количеством заблокированных токенов;
  • зона приоритетной полосы пропускания, выделяемая аккаунту в соответствии с его приоритетом.

Пользователь, имеющий значительную сумму системных токенов, может перевести их (частично или в полном объеме) в заблокированное состояние и пользоваться зоной гарантированной полосы пропускания. Пользователь, не имеющий такой возможности, может пользоваться зоной приоритетной полосы пропускания. Порядок включения транзакций в блок в данной полосе пропускания зависит от приоритета аккаунта.

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


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

*Решение о том, в какой пропорции общая полоса пропускания (bandwidth) распределяется между зонами гарантированной и приоритетной полос, принимается валидаторами.

Выделение ресурсов bandwidth

В случае, если у пользователя недостаточно системных токенов, зарезервированных (staked) на приобретение ресурсов bandwidth (или они полностью отсутствуют), он может воспользоваться услугами одного из провайдеров, владеющего такими ресурсами и готовым их предоставить во временное пользование. Для этого пользователю (или самому провайдеру) необходимо в создаваемой им транзакции добавить операцию на предоставление ресурсов bandwidth

Услуга выполняется непосредственно логикой смарт-контракта на конечном узле провайдера, указанного в запросе. Решение о предоставлении аккаунту ресурсов bandwidth принимается на уровне смарт-контракта. Логика смарт-контракта проверяет наличие имени аккаунта в таблице зарегистрированных пользователей, а также наличие на балансе смарт-контракта необходимого количества зарезервированных (staked) токенов для выделения ресурсов bandwidth. В случае выполнения данных условий указанному в запросе аккаунту разрешается выделить ресурсы bandwidth. Логикой смарт-контракта на полученный запрос высылается подтверждение!

Ресурсы bandwidth, необходимые для выполнения транзакции, списываются с баланса смарт-контракта провайдера.

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

.Структурная схема алгоритма обработки запроса на выделение ресурсов bandwidth

image.png

В случае, если ни один из смарт-контрактов не может выделить ресурсы bandwidth указанному в запросе аккаунту, транзакция не выполняется и пользователю высылается сообщение об отказе.

Для успешного выполнения транзакции достаточно наличие только одной подписи — личным ключом пользователя.

Основные отличия алгоритмов выделения ресурсов bandwidth в EOS и CyberWay
В системе EOS ресурсы bandwidth выделяются приложением всем аккаунтам независимо от их активности. В приложении могут быть пользователи как с высокой, так и с низкой активностью, а также пользователи, отсутствующие в системе длительное время. Выделенные ресурсы bandwidth пользователям с низкой активностью как бы становятся невостребованными, вследствие чего в приложении ограничиваются используемые ресурсы bandwidth, которые могли бы быть выделены на привлечение новых пользователей.

CyberWay обеспечивает распределение ресурсов CPU, NET, RAM и Storage с учетом степени активности пользователей и наличием оставшихся ресурсов в приложении. Поскольку ресурсы bandwidth находятся на балансе приложения, то в случае появления в системе пользователей с низкой активностью или их исчезновения, решение о перераспределении ресурсов остается за приложением.

Поэтому ресурсы bandwidth в CyberWay используются более эффективно.

В системе CyberWay выделяемые аккаунту ресурсы bandwidth в части CPU (NET) ресурсы bandwidth не закрепляются за пользователями и находятся на балансе приложения.

Операции выполняются за счет приложения. Пользователям с низкой активностью выделяется минимальное количество ресурсов. В случае появления в системе пользователей с высокой активностью или нехватки ресурсов недостающая их часть выкупается у системы.

Выводы

Blockchain CyberWay реализована подсистема bandwidth, обеспечивающая использование ресурсов узлов (нод) более оптимально.

cyberwayblockchainbandwidthgolosmanualfintechcyberinvestcommunityblog
62
118.602 GOLOS
На Golos с December 2018
Комментарии (0)
Сортировать по:
Сначала старые