Presentamos Achronyme — un lenguaje para pruebas zero-knowledge. Lee el anuncio arrow_right_alt

Comandos del CLI

Referencia de comandos del CLI de Achronyme.

Banderas Globales

Estas banderas aplican a todos los subcomandos:

BanderaDescripción
--error-format <fmt>Formato de salida de diagnósticos: human (predeterminado), json, o short. Ver Diagnósticos y Advertencias
--prime <name>Campo primo para el backend de constraints: bn254 (predeterminado), bls12-381, o goldilocks
--no-configDeshabilita la carga de achronyme.toml. Todos los valores vienen de banderas CLI y defaults

init — Crear un proyecto nuevo

Genera un proyecto Achronyme nuevo con achronyme.toml, directorio de fuentes, y .gitignore.

ach init my-circuit
ach init my-app --template vm

Argumentos

ArgumentoDescripción
<name>Nombre del proyecto (debe coincidir con [a-zA-Z_][a-zA-Z0-9_-]*)

Banderas

BanderaDescripción
--template <tpl>Plantilla del proyecto: circuit (predeterminado), vm, o prove

Plantillas

  • circuit — Un circuito independiente con declaraciones public/witness y assert_eq
  • vm — Un programa de propósito general con print()
  • prove — Un programa mixto con un bloque inline prove {}

Estructura generada

my-circuit/
├── achronyme.toml
├── src/
│   └── main.ach
└── .gitignore

Ver Configuración del Proyecto para la referencia de achronyme.toml.


run — Ejecutar un programa

Corre un archivo fuente Achronyme (.ach) o binario compilado (.achb).

ach run script.ach
ach run script.achb
ach run                # usa [project].entry de achronyme.toml

Si se omite <path>, el CLI resuelve el archivo de entrada desde [project].entry en achronyme.toml.

Banderas

BanderaDescripción
--stress-gcEjecuta GC en cada alocación (para tests). Ver Modo Stress GC
--max-heap <size>Establece el tamaño máximo del heap (ej. 256M, 1G, 512K). Lanza HeapLimitExceeded si se excede
--gc-statsImprime estadísticas del GC en stderr tras la ejecución. Ver Estadísticas del GC
--circuit-statsImprime estadísticas de constraints por cada bloque prove {} ejecutado
--prove-backend <backend>Backend para bloques prove {}: r1cs (predeterminado) o plonkish

Ejemplos

ach run hello.ach
ach run hello.ach --prove-backend plonkish
ach run hello.ach --max-heap 256M --gc-stats
ach run                              # desde un proyecto con achronyme.toml

circuit — Compilar un circuito ZK

Compila un archivo fuente Achronyme a constraints R1CS/Plonkish y genera un testigo.

ach circuit circuit.ach --inputs "x=42,y=7"
ach circuit --inputs "x=42,y=7"    # usa entry de achronyme.toml

Ver Opciones de Circuito para todas las banderas disponibles.


circom — Compilar un archivo .circom

Compila un archivo fuente Circom 2.x a través del frontend de Achronyme, produciendo los mismos artefactos .r1cs/.wtns que circuit y opcionalmente una prueba Groth16. Úsalo para correr templates de circomlib (o tus propios proyectos .circom) sin salir de la cadena de herramientas Achronyme.

ach circom poseidon.circom --inputs "in=42"
ach circom merkle.circom --inputs "root=0x...,leaf=42" --prove --solidity Verifier.sol
ach circom -l vendor/circomlib/circuits sha256.circom --input-file inputs.toml

Banderas

BanderaDescripción
--inputs <pares>name=value separados por coma (decimal o hex 0x)
--input-file <path>Inputs desde un archivo TOML (arrays soportados nativamente)
-l, --lib <dir>Directorio de búsqueda para resolución de include. Repetible; los dirs CLI tienen precedencia sobre [circom].libs de achronyme.toml
--backend <r1cs|plonkish>Backend de constraints (predeterminado: r1cs)
--proveGenera una prueba criptográfica tras la compilación (requiere --inputs)
--r1cs <path>Path de salida .r1cs (compatible con snarkjs)
--wtns <path>Path de salida .wtns
--solidity <path>Emite un contrato verificador Groth16 en Solidity en este path
--plonkish-json <path>Exporta el circuito Plonkish (con testigo si se da --inputs) como JSON
--dump-irImprime el IR SSA optimizado y sale antes de generar constraints
--no-optimizeDeshabilita los pases de optimización del IR
--circuit-statsImprime el desglose del conteo de constraints

Resolución de librerías

El lookup de include recorre primero los directorios --lib, luego [circom].libs del manifest del proyecto, y finalmente el directorio del propio archivo. Ver Importando Templates para el modelo de resolución completo.


compile — Compilar a bytecode

Compila un archivo fuente Achronyme a un binario (.achb) que puede correrse con ach run.

ach compile script.ach --output script.achb
ach compile --output script.achb   # usa entry de achronyme.toml

Banderas

BanderaDescripción
--output <path>Path del archivo de salida (opcional — puede ponerse en [build.output].binary en achronyme.toml)

disassemble — Mostrar bytecode

Desensambla un archivo fuente o binario Achronyme, mostrando las instrucciones de bytecode.

ach disassemble script.ach
ach disassemble                    # usa entry de achronyme.toml

inspect — Abrir el inspector de circuitos

Compila un circuito (o un bloque prove {} con nombre) y sirve una página HTTP local que visualiza el DAG del IR, los valores del testigo y estadísticas de constraints. El UI del inspector (Astro+D3) vive en el repo achronyme-inspector y se distribuye embebido para uso offline.

ach inspect circuit.ach --inputs "x=42"
ach inspect script.ach --prove main_block --inputs "secret=7"
ach inspect --bind 127.0.0.1 --port 3000

Banderas

BanderaDescripción
--inputs <pares>Inputs de circuito independiente como name=value (separados por coma)
--input-file <path>Inputs de circuito independiente desde un archivo TOML
--prove <name>Inspecciona un bloque prove {} con nombre en lugar de un circuito top-level; el programa se corre en la VM para resolver los valores capturados
--port <u16>Puerto HTTP (predeterminado 3000)
--bind <addr>Dirección de bind (predeterminado 127.0.0.1). El inspector expone valores del testigo, fuente y estado del DAG sin autenticación — bindear a 0.0.0.0 lo hace visible a cualquier peer en la red
--no-openNo auto-abrir el navegador
Navigation