Представляем Onchain Game Engine MUD V2.На прошлой неделе @latticexyz выпустила свой игровой фреймворк MUD V2, который представил две новые функции: хранение данных вне цепи и контроль доступа к миру. Давайте разберемся, что это такое.ПРЕДСТАВЛЯЕМ ВТОРУЮ ВЕРСИЮ MUDПри разработке MUD v2 мы сосредоточились на двух основных аспектах:Первый аспект: Сделать процесс создания и работы с onchain приложениями чрезвычайно простым. В MUD v2 мы избавились от рутинной работы, такой как индексация и настройка систем событий, а также упростили обновление контрактов. MUD в этом отношении удивительно банален: он просто работает.Второй аспект: Дать возможность любому стороннему разработчику строить на основе существующего приложения, развертывая код и добавляя логику в уже существующий onchain мир. Мы считаем, что эта функция MUD откроет новую категорию приложений, создаваемых сообществом, которые не требуют дополнительных затрат на совместную разработку и приблизят Ethereum и EVM к их изначальному обещанию совместимости.Чтобы реализовать эти идеи, мы разработали две основные технологии для MUD v2 за последний год: Store и World.НОВЫЙ ДИСКОВЫЙ ДВИГАТЕЛЬ ДЛЯ EVM: STOREЧтобы упростить создание onchain приложений, мы отказались от модели хранения, реализованной в компиляторе Solidity, и заменили ее системой хранения, определяемой во время выполнения, которая может использоваться несколькими контрактами. Этот движок называется Store. Мы любим думать о нем как о моменте SQLite для EVM.В этом контексте "определяемая во время выполнения" относится к системе хранения, которую можно расширять после компиляции и развертывания контракта. Учитывая, что EVM имеет неизменяемый байт-код, включение шаблона доступа к хранилищу приложения в байт-код контракта на этапе компиляции кажется разумным, и именно это делает компилятор Solidity. Но то, что когда-то было разумным способом работы с состоянием EVM почти 10 лет назад, стало серьезным ограничением. Onchain развертывания продолжают увеличиваться: они охватывают несколько контрактов, написаны несколькими разработчиками и обновляются со временем.Мы считаем, что пришло время перенести управление хранилищем от компилятора к ядру, которое будет выступать в роли промежуточного слоя между приложениями и состоянием EVM, так же как ранние операционные системы позволяли нескольким приложениям работать на одном компьютере, сегментируя состояние и перемешивая доступ к ЦП.Store позволяет вам делать новые вещи onchain, о которых вы даже не подозревали. В терминологии Store структуры данных, хранящиеся в хранилище EVM, называются таблицами. Они очень похожи на таблицы в реляционных базах данных. Например, Store позволяет добавлять новые таблицы во время выполнения без повторного развертывания вашего контракта или выполнения обновления с какими-либо страшными пробелами в хранилище https://t.co/bI5ct7cbCV или пространственным именованием хранилища https://t.co/dXAyIItZGl. Подобно ядру обычного компьютера, Store защитит ваше состояние от повреждения хранилища, заставляя потребителей этого состояния проходить через системный вызов на ядре. С помощью этих системных вызовов Store также может вызывать часть кода каждый раз, когда обновляется конкретная запись, например, чтобы реализовать определенные проверки или разрешения на эти данные.Store генерирует события при каждом изменении состояния. Это позволяет клиентским приложениям оставаться в курсе событий при каждом блоке и позволяет индексаторам восстанавливать состояние Store. Никогда больше не пишите событие Solidity, забудьте о Graph и удалите тот огромный кусок вашего клиентского кода, который бомбардирует RPC вызовами функций отображения в момент загрузки и подписывается на дюжину событий, чтобы оставаться в синхронизации.Чтобы сделать процесс включения максимально простым, Store является отдельной библиотекой. Это замена системе хранения Solidity, которую можно использовать в любом смарт-контракте. Store не заставляет приложения переосмысливать, как они работают и проектируются.НОВЫЙ СПОСОБ СТРОИТЬ ПРИЛОЖЕНИЯ ONCHAIN: WORLDС MUD v2 одной из наших целей было продвинуть другой путь для разработчиков и сообществ в создании и расширении onchain приложений. Чтобы представить этот новый способ создания onchain, мы разработали World: фреймворк смарт-контрактов, построенный на основе Store.World представляет собой новую парадигму для приложений на EVM. Вы можете воспринимать это как общественный компьютер: он существует как многопользовательское ядро, принимающее вклады – будь то код или состояние – от любого участника сети.Смарт-контракты, добавленные в World, не имеют состояния, при этом все записи и таблицы контролируются и защищаются самим World. Ни один смарт-контракт не может вызвать повреждение хранилища или получить доступ к несанкционированным областям состояния.World обладает программируемым управлением доступом, которое позволяет любому фрагменту состояния или логики контролировать, какая учетная запись (или другой фрагмент логики) может к ним обращаться. Это дает возможность строить иерархии доверия, позволяя ненадежным смарт-контрактам читать состояние и взаимодействовать с правилами, не позволяя им напрямую записывать в хранилище.Эта иерархия доверия позволяет команде определить набор цифровой физики на блокчейне, который может быть использован любым участником сообщества: она обеспечивает соблюдение правил создания, изменения и уничтожения в полном объеме. World предотвращает изменения без выполнения соответствующих правил. Никто не может создать токены из ничего или телепортировать космический корабль на другую сторону вселенной.World также имеет встроенную делегацию. Это можно рассматривать как супер обобщенную версию transferFrom из стандарта токенов ERC20: transferFrom позволяет смарт-контрактам инициировать переводы токенов от имени пользователей в рамках установленного лимита токенов.World обобщает эту концепцию лимита для любого действия на блокчейне: любые сущности внутри World – будь то люди, DAO или другие смарт-контракты – могут разрешать другим выполнять действия от их имени при выполнении определенных условий. Например, это позволяет игрокам в блокчейн-мире делегировать управление своими активами рынку или оффчейн-боту. Они также могут использовать это для участия в сделках без эскроу или сложных торговых операций с другими участниками.Создавая на основе World, вы получаете все эти функции сразу.СОСТОЯЩИЕ ИЗ СОБРАННЫХ ЭЛЕМЕНТОВ БЛОКЧЕЙН МИРЫ С MUD V2Совместно, Store и World представили значительную возможность: позволить сторонним разработчикам добавлять код в работающие приложения безопасным образом. Возможность для сообщества строить на основе общего мира никогда не была реализована ранее в каких-либо системах смарт-контрактов, будь то EVM или другие. Мы считаем, что этот ключевой аспект MUD v2 окажет долговременное влияние на экосистему блокчейн-технологий, и потребуется время, чтобы полностью понять новые цифровые конструкции, которые стали возможны благодаря этому развитию.Для нас было очень приятно видеть, как ранние пользователи MUD v2 активно используют эту модель для своих приложений. С MUD v2 вы можете "загрузить код" в Primodium https://t.co/jxcq93ikIL, игру о завоевании космоса и производстве на блокчейне, следуя их документации для разработчиков https://t.co/Xdwuza8jQ7. Если вам повезет попасть на один из их хакатонов, вы можете строить на основе физики Project Awakening https://t.co/hQgZFw4t4L, чтобы повысить свои шансы на выживание, сотрудничая с другими игроками. А если инженерия в космосе вам не по душе, Sky Strife https://t.co/gMNYQjEgLG и Biomes AW https://t.co/GmEEKurcCJ позволяют вам создавать в мире свои собственные системы стимулов, чтобы победить игрока, уничтожить конкретный юнит или накопить достаточно ресурсов для вашей альянса.Новый способ строительства, представленный World, приближает нас к видению Автономных Миров. Теперь возможно создать набор цифровой физики, определяющий, как мир создает и трансформирует, и впоследствии уничтожить корневой доступ к себе; навсегда закрепляя канонический набор правил без ограничения функциональности: любой в мире – как люди, так и машины – могут взаимодействовать с этими правилами и строить на их основе общества и инженерные конструкции.Эта статья была написана @mud_devhttps://t.co/6X5ifF0P1S