
ckb-vm v0.24.15
VM de CKB, basada en la ISA RISC-V de código abierto
Nervos CKB VM
Acerca de CKB VM
CKB VM es una implementación de software puro del conjunto de instrucciones RISC-V utilizado como VM de scripting en CKB. Actualmente implementa las instrucciones completas IMCB tanto para soporte de registros de 32 bits como de 64 bits. En el futuro, también podríamos implementar extensiones V para habilitar mejores implementaciones criptográficas.
Licencia
Nervos CKB se publica bajo los términos de la licencia MIT. Consulta COPYING para obtener más información o visita https://opensource.org/licenses/MIT.
Proceso de desarrollo
Esto ahora está implementado y utilizado en la mainnet de producción de CKB.
La rama develop se compila y prueba regularmente, pero no se garantiza que sea completamente estable. CKB usará versiones publicadas de CKB VM que están probadas y son más estables.
El flujo de trabajo de contribución se describe en CONTRIBUTING.md, y la política de seguridad se describe en SECURITY.md. Para proponer un nuevo protocolo o estándar para Nervos, consulta Nervos RFC.
Cómo compilar
CKB VM se prueba actualmente principalmente con la versión stable de Rust en Linux de 64 bits, macOS y Windows.
# descarga CKB VM
$ git clone https://github.com/nervosnetwork/ckb-vm
$ cd ckb-vm
$ cargo build
También puedes ejecutar las pruebas:
make test
CKB VM ya incluye los binarios RISC-V utilizados en las pruebas, por lo que no necesitas un compilador RISC-V para compilar binarios. Sin embargo, si deseas experimentar con tus propios binarios, puede ser necesario un compilador RISC-V. riscv-tools puede ser un buen punto de partida, o si eres un experto en la cadena de herramientas GNU, también podrías compilar GCC upstream desde la fuente con soporte RISC-V; aquí hay un ejemplo. CKB VM utiliza instrucciones RISC-V estándar y formato binario ELF, por lo que teóricamente cualquier compilador compatible con RISC-V puede producir contratos utilizados en CKB VM (aunque los informes de errores son muy bienvenidos si encuentras alguna falla).
Notas sobre los diferentes modos
Actualmente CKB VM tiene 2 modos diferentes:
- Modo intérprete Rust
- Modo intérprete basado en ensamblador (modo ASM)
Para un comportamiento consistente, solo deberías usar el modo ASM. El modo Rust se desarrolla más para ayudar al desarrollo, y nunca lo usamos en producción. En caso de errores, podría haber comportamientos inconsistentes entre el modo Rust y el modo ASM.