Versión v0.9.0
Publicada el 17 de octubre de 2026. Es la primera versión pública y hace funcionar la testnet pública; todavía no existe un génesis de mainnet. Cada versión publica:
qanum-l1-v0.9.0-20261017.tar.gz: el código fuente;qanum-core-0.9.0.cdx.jsonyqanum-embed-0.9.0.cdx.json: listas de materiales de software (SBOM) en formato CycloneDX;qanum-security-0.9.0.json: los datos de seguridad de la versión (esquemas de firma, transporte P2P, claves de firma, toolchain, liboqs, resultado decargo audit);SHA512SUMS: el SHA-512 de cada uno de los ficheros anteriores;SHA512SUMS.qsig: dos firmas poscuánticas de esa lista (ML-DSA-87 y SLH-DSA-SHAKE-256s);SHA512SUMS.asc: una firma PGP clásica, por compatibilidad con las herramientas habituales.
Los ficheros se publican junto con la versión en el repositorio del código fuente y se podrán descargar cuando este se abra al público. Mientras tanto, escribe a partnerships@qanum.org para solicitar acceso.
Requisitos
Solo 64 bits. Qanum está pensado para plataformas de 64
bits (x86_64 y aarch64). Las plataformas de 32 bits no están soportadas:
los valores de consenso y los importes son u64/usize,
y algunos casos límite solo son seguros en 64 bits.
Toolchain de Rust: instálalo con rustup. La versión del compilador está fijada en rust-toolchain.toml (actualmente 1.98.1); dentro del árbol de código fuente, rustup la selecciona e instala automáticamente.
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source "$HOME/.cargo/env"
rustc --version
Paquetes del sistema (Ubuntu/Debian), necesarios para compilar liboqs desde el código fuente:
sudo apt update
sudo apt install build-essential clang libclang-dev cmake pkg-config \
libc6-dev linux-libc-dev libssl-dev
Compilar desde el código fuente
Desde el código fuente descomprimido (o desde un clon del repositorio cuando sea público):
# Nodo completo con verificación real de firmas poscuánticas. Es el único
# tipo de build: qanum-core no compila sin liboqs.
cargo build --release --features crypto-oqs
# Instalar qanumd y qanum-cli en ~/.cargo/bin
cargo install --path . --features crypto-oqs
Las firmas se verifican con los algoritmos estandarizados por el NIST, a través de liboqs, en todas las redes. Al arrancar, el nodo ejecuta una autoprueba con vectores conocidos de cada esquema de firma y se niega a arrancar si falla; ningún build ni opción permite saltarse la verificación de firmas.
Ejecutar un nodo de testnet
./target/release/qanumd \
-chain=testnet \
--datadir="$HOME/.qanum/testnet" \
--rpcuser=user --rpcpassword=pass \
--strict-full --verifier oqs \
-gen=1 --mining-interval-ms=500
Conectar un segundo nodo (seguidor):
./target/release/qanumd \
-chain=testnet \
--datadir="$HOME/.qanum/testnet-b" \
--rpcuser=user --rpcpassword=pass \
--strict-full --verifier oqs \
-addnode=<ip-del-nodo-a>:18445
Interactuar mediante la CLI:
./target/release/qanum-cli --network=testnet --addr=127.0.0.1:18338 \
--rpcuser=user --rpcpassword=pass getblockcount
./target/release/qanum-cli --network=testnet --addr=127.0.0.1:18338 \
--rpcuser=user --rpcpassword=pass getnewaddress
Ejecutar como servicio systemd
El árbol de código fuente incluye una unidad reforzada en contrib/systemd/qanumd.service:
# 1) Crear el usuario del servicio
sudo useradd --system --create-home --shell /usr/sbin/nologin qanum
# 2) Instalar los binarios para ese usuario
sudo -u qanum cargo install --path /ruta/a/qanum --features crypto-oqs
# 3) Instalar y activar la unidad
sudo cp contrib/systemd/qanumd.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable --now qanumd
# 4) Seguir los registros
journalctl -u qanumd -f
La unidad ejecuta qanumd con un usuario aislado
qanum y medidas de seguridad (ProtectSystem=strict,
NoNewPrivileges, PrivateTmp, UMask
restrictivo), solo escribe en /home/qanum/.qanum, se reinicia
si falla y registra en el journal. systemctl stop provoca un
apagado ordenado que guarda el estado de la cadena.
Configuración
qanumd carga ~/.qanum/qanum.conf automáticamente
(todas las claves son opcionales; las opciones de la línea de órdenes
tienen prioridad). El árbol de código fuente incluye una plantilla
comentada, qanum.conf, que cubre la selección de red, el
puerto P2P, las semillas DNS, el RPC, el modo de sincronización, la
minería opcional, los nodos estáticos, los índices de transacciones y de
direcciones, y la poda. Todas las opciones se describen en la
referencia de configuración (en inglés).
Redes y puertos
| Red | P2P (Noise, poscuántico) | RPC (solo local) | Prefijo de dirección | Estado |
|---|---|---|---|---|
| mainnet | 8445 | 8338 | qn | sin génesis todavía |
| testnet | 18445 | 18338 | tqn | en funcionamiento |
| regtest | 28445 | 28338 | rqn | desarrollo |
Verificar una versión
SHA512SUMS.qsig contiene dos firmas poscuánticas, ML-DSA-87
(FIPS 204) y SLH-DSA-SHAKE-256s (FIPS 205). Deben verificarse
las dos: se basan en matemáticas sin relación entre sí,
así que romper un esquema no basta para falsificar una versión. La firma
PGP es clásica (no resistente a la computación cuántica) y se ofrece solo
por compatibilidad; las firmas poscuánticas son las que cuentan.
Con un qanum-cli en el que ya confíes (funciona sin conexión y sin nodo):
qanum-cli verifyrelease <directorio-con-los-ficheros-descargados>
Primera descarga, sin un qanum-cli de confianza: compara los
identificadores de las claves de firma de abajo con los de
docs/SECURITY.md, comprueba la firma PGP y las sumas de
control, y después compila la versión y ejecuta verifyrelease
sobre los mismos ficheros:
gpg --verify SHA512SUMS.asc SHA512SUMS
sha512sum -c SHA512SUMS
Claves de firma de las versiones
| Esquema | Identificador de clave | Estado |
|---|---|---|
| ML-DSA-87 | 277c02387e4908e1bdcd30ff2a4428e0343c5639f2a5b4ff31df9038e451326b | activa desde la v0.9.0 |
| SLH-DSA-SHAKE-256s | 17c676d4b25569fdb9898ac2f9e5c1f9fe6b6967bee99131b485f16b8e0b0aa5 | activa desde la v0.9.0 |
Las claves se generaron sin conexión el 11 de octubre de 2026 y su parte
secreta nunca sale de un equipo desconectado. Clave PGP (Qanum Security,
security@qanum.org), huella
8013 E1BF F91C A30E E6A5 F273 01D9 6226 80BA FCA9, en keys.openpgp.org.