Repository navigation
Rupix v0.6.1 — checkpoints para DAG, wallet usable, primer checkpoint publicado
Cuatro ramas revisadas y aprobadas por el auditor externo el 29-sep, mergeadas sin conflictos sobre 1e38bace. Sin cambios de consenso salvo la regla de checkpoints (que hasta hoy no tenia efecto: la lista estaba vacia) y el primer checkpoint de la testnet.
- Primer checkpoint publicado (testnet #4): blue score 86,400, hash
7e2ece393c7d991c86e7ba915276cd85b5fc19e8647d5d197fa26bf116604fad(DAA 86,399), caduca en DAA 2,000,000. Es el punto de poda que el seed y el nodo de JC ya compartian.TestCheckpointsPublicadosobliga a que el codigo y CHECKPOINTS.md digan lo mismo. - Emision:
TestTotalSupplyafirma la emision por calendario (41,999,994.96) y documenta el exceso acotado en cada frontera de halving (medido: 0.5 RUPIX en el halving 2).MaxRupiaes tope por transaccion, no de emision. Ver MEMORIA. - Guias ES/EN: la forja ya no lleva
--passworden la linea; la frase semilla se anota en papel al crear la wallet. - Envio grande probado en la red publica (29-sep, wallet de la rama
wallet-envios-grandes, daemon de prueba): 1,000 RUPIX en 24 transacciones / 8.6 s; 10,000 RUPIX en 232 transacciones / 46.1 s, desde una wallet de minero de ~78k pedazos. Antes 1,000 se cortaba a los 120 s. - Arreglo del envio grande (rama
wallet-envios-grandes, para v0.6.1): la seleccion de pedazos estima la comision en tiempo lineal y la exacta se calcula una sola vez al final. Medido en el seed, misma wallet de 78k pedazos: 100 RUPIX 1.6s -> 0.10s; 300: 16s -> 0.24s; 600: 65s -> 0.47s; 1,000: cortado a 120s -> 0.82s. - Checkpoints para DAG (rama
checkpoint-dag, para v0.6.1): la regla pasa a "todo bloque con blue score >= X + MergeDepth debe tener al bloque canonico H en su pasado". Un hermano tardio de H ya no rompe nada; una historia alterna sin H se rechaza.TestCheckpointDAGlo prueba, y se verifico que la prueba FALLA si la regla se apaga. - Mempool (rama
mempool-niveles, para v0.6.1): prueba automatica de que una forja de un nivel cerrado se rechaza al entrar al mempool y la misma transaccion entra pasado su halving (H-1 nivel A). .gitignore: los binarios quedan anclados a la raiz; la linearupixwallettapaba la carpetacmd/rupixwallety hacia fallargit addahi.tools/verificar-emision.py: compara el Gold que existe en tu nodo con la regla de emision (enteros exactos) y alerta si alguna vez hay mas del permitido.- Wallet (encontrado el 28-sep, se arregla en v0.6.1): enviar mucho Gold desde una wallet de minero se corta a los 2 minutos porque la seleccion de pedazos recalcula la comision rearmando toda la transaccion (costo al cuadrado; medido en el seed).
parseimprime "KAS". - Web: pagina
matematica.html(emision, escalera, costo de mover, calculadora) en espanol e ingles. gofmten todo el repo (251 archivos): solo formato. Los unicos cambios que no son espacios son imports reordenados (el renombre kaspa->rupix cambio su orden alfabetico). Compila igual.- Explorer: la copia de la pagina en el repo estaba vieja (halving de testnet en 10,000; el real es 100,000). Sincronizada con la viva, y el tiempo al proximo halving ahora se muestra en minutos, horas o dias.
govulncheck(27-sep): 0 vulnerabilidades que afecten al codigo; 3 en modulos requeridos que el codigo no llama.SECURITY.md: como reportar una vulnerabilidad en privado (pestana Security de GitHub), con tiempos de respuesta.- Builds de release con
-trimpath -buildvcs=false -buildid=: primer paso hacia builds reproducibles. Falta comprobar que dos builds den el mismo hash. params.go: el comentario del halving de mainnet decia "~decadas"; son ~16 meses (42M bloques a 1/seg). Hallazgo del auditor. Al revisarlo aparecioconstants.BlocksPerHalving = 150, una constante sin uso cuyo comentario decia que definia la emision: eliminada. El consenso usa el valor de cada red.- Alarma v2.1: sigue la rotacion del log del nodo (guarda inode + posicion; si el archivo viejo no aparece, ERROR). Pedido del auditor al revisar la v2.
go.mod: minimo de Go de 1.26.6 a 1.25.0 (la minima real del arbol de dependencias). Un revisor con Go 1.25 ya puede compilar y correr la suite. Los binarios de release se siguen compilando con 1.26.6.- Residuos del fork: el daemon de rupixwallet escribe su log en
~/.rupixwallet(antes~/.kaspawallet); el minero dice "Rupixd is not synced" (antes "Kaspad"). - Alarma de bloques descalificados corregida. La v1 (25-sep, pedida por el auditor el 23-sep) caminaba hacia atras por la cadena seleccionada y, por construccion, nunca podia ver un bloque descalificado: dijo "OK" 134 veces sin poder sonar. La v2 lee la decision del propio nodo en su log (solo lo nuevo desde la revision anterior) y dice ERROR si el log no crece. Probada con un log falso: suena. Falta probarla provocando un bloque descalificado en devnet.
- Nodo:
resolve_block_status.goregistra cada bloque descalificado en nivel Warn (BLOQUE DESCALIFICADO <hash>: <motivo>); antes era Debug y no se veia. Cambio de log, no de consenso: no requiere relanzamiento. - README (es/en): seccion "Como minar Rupix".
changelog.txtrenombrado aCHANGELOG-kaspad-upstream.txtpara no confundirlo con este archivo.
Verificación: cada .zip trae su .sha256, generado por el CI de GitHub. Descarga, compara, y confirma que nadie lo alteró. Guías: GUIA-TESTNET.md / TESTNET-GUIDE.md, GUIA-FORJA.md / FORGE-GUIDE.md. No confíes, verifica.