Пост
Поделитесь своими знаниями.
Как создать читаемый байт-код для Move with Miden Assembly?
Я пытаюсь поэкспериментировать с написанием компилятора Move, используя Miden Assembly в качестве цели компилятора. Я хочу создать читаемый байт-код для скомпилированной программы Move. Есть ли простой способ добиться этого?
- Move CLI
Ответы
2Вы можете ознакомиться sui move disassemble
с этой командой, которая может помочь вам создать читаемый байт-код.
Если вы пытаетесь создать компилятор Move, предназначенный дляMiden Assembly, вы решаете уникальную экспериментальную задачу. На данный момент не существует официального набора инструментов, позволяющего подключать Move напрямую к виртуальной машине Miden, поэтому вам придется вручную сопоставлять Move IR (промежуточное представление) или байт-код с Miden Assembly. Чтобы сделать это простым способом, вы можете начать с компиляции кода Move с помощью интерфейса командной строки Move для генерации байт-кода или IR, а затем создать слой перевода, который возьмет этот код и отправит инструкции по сборке, удобные для Miden. Этот процесс включает создание собственного бэкенда, который понимает операции Move на основе стека и преобразует их в структуру виртуальных машин Miden, основанную на ограничениях.
Чтобы сделать сборку Miden понятной и точной, вам, скорее всего, потребуется создать интерпретатор или генератор кода, который сопоставляет коды операций Move (например MoveLoc``Call
, Add
и т. д.) с эквивалентными или приближенными процедурами сборки Miden. Поскольку в Miden VM есть собственный набор правил управления стеком, вам, возможно, придется переработать некоторые аспекты потока управления или вызовов функций в соответствии с этой парадигмой. Это будет нетривиально, но если ваша цель — экспериментировать и учиться, вы можете начать с малого (например, составление арифметических выражений или вызовов базовых функций) и постепенно создавать слой перевода.
Для этого не существует готового примера блока транзакций, так как это проект на уровне компилятора, но для получения рекомендаций по компиляции Move в байт-код используйте:
move build
Затем проверьте сгенерированный байт-код с помощью:
move bytecode-viewer build/bytecode_modules
Оттуда вы можете создать пропуск, излучающий Miden Assembly.
Вы можете узнать больше и принять участие в обсуждении интеграции Miden и Move по адресу: https://github.com/move-language/move https://github.com/0xPolygonMiden/miden
Этот подход требует глубокого понимания как виртуальной машины Move, так и архитектуры Miden, но это интересный способ объединить высокоуровневую логику смарт-контрактов с низкоуровневой инфраструктурой с нулевым уровнем знаний.
Знаете ответ?
Пожалуйста, войдите в систему и поделитесь им.
Move is an executable bytecode language used to implement custom transactions and smart contracts.
Заработай свою долю из 1000 Sui
Зарабатывай очки репутации и получай награды за помощь в развитии сообщества Sui.