Referencia de Bytecode
Esta sección es una referencia técnica del formato de bytecode de Move — la representación
binaria que la VM de Aptos Move verifica y ejecuta. Está dirigida a desarrolladores que construyen
herramientas (desensambladores, depuradores, analizadores estáticos) y a cualquier persona que
desee entender lo que ocurre entre aptos move compile y la ejecución en cadena.
Cómo el Código Fuente Move se Convierte en Bytecode
Sección titulada «Cómo el Código Fuente Move se Convierte en Bytecode»┌──────────────┐ ┌──────────┐ ┌───────────────┐ ┌───────────┐│ Move source │ ──▶ │ Compiler │ ──▶ │ Module binary │ ──▶ │ Aptos VM ││ (.move) │ │ │ │ (bytecode blob)│ │ (execute) │└──────────────┘ └──────────┘ └───────────────┘ └───────────┘- El compilador traduce el código fuente Move en un binario de módulo autocontenido.
- El binario se publica en cadena mediante una transacción
publish. - En tiempo de ejecución, la VM carga el binario, ejecuta el verificador de bytecode y luego interpreta las instrucciones.
Contenido de Esta Sección
Sección titulada «Contenido de Esta Sección»| Página | Descripción |
|---|---|
| Formato Binario de Módulo | Diseño del encabezado, bytes mágicos, directorio de tablas y cada tipo de tabla en el formato binario. Comienza aquí si estás escribiendo un parser. |
| Referencia del Conjunto de Instrucciones | Cada opcode que la VM puede ejecutar — operandos, efectos en el stack y semántica de ejecución. |
| Sistema de Tipos | Cómo los tipos se representan como tokens de firma, cómo funcionan las abilities a nivel de bytecode y el modelo de indirección de handles. |
| Historial de Versiones | Qué cambió en cada versión del formato de bytecode desde la v5 hasta la v10. |
Punteros al Código Fuente
Sección titulada «Punteros al Código Fuente»Las definiciones canónicas se encuentran en el repositorio aptos-core:
- Structs del formato binario:
third_party/move/move-binary-format/src/file_format.rs - Serialización:
third_party/move/move-binary-format/src/serializer.rs - Deserialización:
third_party/move/move-binary-format/src/deserializer.rs - Opcodes de bytecode:
third_party/move/move-binary-format/src/file_format.rs(el enumBytecode) - Verificador de bytecode:
third_party/move/move-bytecode-verifier/src/