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

📝 Разработка эффективных контрактов (Daniel Larimer)

Одна из основных сложностей, с которыми сталкиваются пользователи блокчейна EOS – дефицитность ресурсов ЦПУ. Есть два способа решить эту проблему: повысить производительность процессора или снизить требования к нему, при этом повысив эффективность. Block One работает над повышением производительности, но только от разработчиков приложений зависит, будут ли они писать более эффективные контракты, чтобы понизить требования к ЦПУ.

Недавно я делал обзор единичной транзакции в одно действие, которое породило 28 дочерних действий. Эти действия включали в себя 10 переводов (а также относящиеся к ним уведомления для отправителя и получателя), 3 действия по выплатам и коммуникацию между 4-мя взаимосвязанными контрактами.

В дизайне этого приложения применятся довольно много копипастного кода для контракта их токена, а также множество атомарных микро-платежей, которые работают с EOS и их собственным токеном DICE. Такой модульный дизайн имеет несколько преимуществ в плане безопасности (минимизация времени обработки токенов смарт-контрактом), но платит за это высокой загрузкой ЦПУ. Каждое действие должно установить и снести свою собственную среду исполнения, заверить свои собственные права доступа и произвести другие излишние расчёты. В общей сложности эта операция заняла 5.37 мс времени ЦПУ (в среднем по 0.2 мс на одно встроенное действие).

Того же результата можно достичь, внеся следующие изменения:

  1. Слить независимые контракты (betdicetoken, betdicegroup и betdicelucky) в один контракт.
  2. После слияния можно избавиться от всех коммуникаций между контрактами. Токены DICE можно выпустить и разместить на соответствующих балансах владельца аккаунта, не создавая никаких встроенных действий.
  3. Разрешить пользователям поддерживать баланс вклада с помощью betdicegroup. Таким образом пользователи без труда смогут один раз внести средства, несколько раз сделать ставку и один раз вывести. Такой подход избавит от необходимости постоянно обращаться к контракту eosio.token. Остатки на пользовательском счёте можно быстро и эффективно обновлять через внутреннюю связь с контрактом betdice, не уведомляя при этом получателя или отправителя о каждом микро-платеже.

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

В не столь далёком предстоящем обновлении EOSIO мы сможем дать разработчику приложения возможность платить за использование ЦПУ отдельно по каждой транзакции. Это означает, что пользователям не нужно будет тратить свои ресурсы, чтобы поиграть в игру, а разработчик сможет монетизировать использование ЦПУ иными способами. В рамках этой системы эффективная разработка контрактов снизит капитальные затраты разработчика приложения на 80% и более. Сегодняшние приложение переносят эти затраты на плечи пользователя, которому обычно нужно либо купить долю, либо занять её.

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

Intel, Apple и Microsoft могут повысить производительность своих приложений лишь до определенного уровня за счет улучшения аппаратной части и операционных систем. Самые большие прорывы в производительности всё равно сосредоточены в руках разработчиков приложений. С приложениями на блокчейне всё работает точно так же, поэтому мы советуем вам следить за их развитием!


Переведено @blockchained

Оригинал поста: ЗДЕСЬ


Если вам нравится то, что мы делаем - поддержите блокпродьюсера blockchained в сети EOS


Телеграм чат: https://t.me/EOS_RU


Загрузите десктопное приложение с открытым исходным кодом RuDex


Вы можете торговать токенами EOS на RuDEX

0
133.704 GOLOS
На Golos с January 2017
Комментарии (1)
Сортировать по:
Сначала старые