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