Consenso, resiliencia y ejecución confiable

Sistemas distribuidos

Arquitecturas tolerantes a fallas, protocolos de consenso, blockchain y experimentos reproducibles con sistemas reales.

Artículos

135

Series

4

Mapa del áreaBlockchain y consenso: familias, supuestos y lecturasLas lecturas ordenadas por la pregunta que responde cada familia de protocolos.

Series

Artículos

Sistemas distribuidosNota de investigación28 min

Firma operativa: BitGo Express, firmantes externos y co-firmantes

Qué componente nuestro toca una llave cuando el sistema firma solo: BitGo Express, firmante externo, Advanced Wallets y el API Co-Signer de Fireblocks.

Sistemas distribuidosNota de investigación31 min

Cuentas ómnibus, segregadas y subcuentas: el libro interno

Wallet ómnibus en la cadena y libro interno fuera de ella: atribución de depósitos, barrido y gas, acreditación tras finalidad y conciliación diaria por proveedor.

Sistemas distribuidosNota de investigación31 min

Liquidez y liquidación con contrapartes: qué hay detrás de «BitGo market maker»

Quién es la contraparte, dónde están los fondos y cuándo es final la liquidación al operar con BitGo Global Markets y Go Network, con límites y conciliación.

SubstrateNota de investigación14 min

Qué es Substrate hoy: el Polkadot SDK por dentro

Qué es Substrate dentro del Polkadot SDK, cómo se reparten FRAME, Cumulus y XCM, y cómo ubicar un crate por su prefijo sc-, sp- o pallet-.

SubstrateNota de investigación14 min

La cadena como función de transición de estado

Estado N más bloque N da estado N+1: qué significa que el runtime de Substrate sea la función de transición de estado y qué queda para el nodo.

SubstrateNota de investigación15 min

El runtime en Wasm: nodo y runtime hablan por dos puertas

Dónde vive el runtime de Substrate (la clave :code del estado) y cómo conversa con el nodo: host functions de sp_io y runtime APIs de sp_api.

SubstrateNota de investigación14 min

FRAME: pallets que se ensamblan en un runtime

Cómo FRAME arma un runtime de Substrate con pallets: Config, storage, llamadas, eventos y errores unidos con construct_runtime, y en qué difiere de un contrato.

SubstrateNota de investigación16 min

Tu primer nodo local: templates, omni-node y chain spec

Tres caminos para levantar una cadena Substrate local: polkadot-omni-node con chain spec, un template o el nodo kitchensink, y qué guarda el génesis.

SubstrateNota de investigación16 min

Extrinsics: transacciones firmadas, sin firmar e inherentes

Qué entra a un bloque Substrate desde fuera del runtime, cómo se codifica un extrinsic versión 5 y qué comprueban las transaction extensions antes de ejecutarlo.

SubstrateNota de investigación13 min

El estado: clave-valor, trie radix-16 y raíz de estado

Cómo guarda Substrate el estado como bytes opacos, cómo FRAME arma las claves y cómo el trie radix-16 permite probar un valor con unos pocos nodos.

SubstrateNota de investigación13 min

Pesos y comisiones: medir antes de ejecutar

Por qué Substrate no mide gas instrucción por instrucción, qué son ref_time y proof_size, cómo se escribe un benchmark del peor caso y cómo se calcula la comisión.

SubstrateNota de investigación14 min

Actualizar sin fork: set_code, versiones y migraciones

Cómo una cadena Substrate cambia su lógica escribiendo un Wasm nuevo en :code, qué comprueba set_code, por qué hay que subir spec_version y cómo se prueban las migraciones.

SubstrateNota de investigación12 min

Offchain workers: lo que el runtime hace fuera de la cadena

Qué es un offchain worker en Substrate, por qué puede llamar a una API HTTP sin romper el determinismo y por qué su única vía para cambiar el estado es enviar un extrinsic.

SubstrateNota de investigación17 min

Producción de bloques por turnos: slots y Aura

Cómo Substrate divide el tiempo en slots, por qué Aura asigna cada slot a A[s mod |A|] y qué falta para que esos bloques sean definitivos.

SubstrateNota de investigación18 min

BABE: una lotería VRF para producir bloques

Cómo BABE sortea cada slot con una VRF secreta, por qué a veces ganan dos o nadie, y qué hacen las épocas, los slots secundarios y el fork choice.

SubstrateNota de investigación18 min

GRANDPA: finalizar cadenas, no bloques

Cómo GRANDPA finaliza prefijos de cadena con prevotes, precommits y 2/3-GHOST, por qué tolera f < n/3 y qué pasa cuando la finalidad se detiene.

SubstrateNota de investigación15 min

Ponerse al día: full, fast y warp sync; light clients

Cómo un nodo nuevo llega al estado actual de una cadena Substrate sin confiar en un peer: full, fast y warp sync, justificaciones GRANDPA y light clients.

SubstrateNota de investigación16 min

Parachains con Cumulus: seguridad compartida

Qué cambia cuando una cadena Substrate deja de finalizarse sola: collators, PoV, función de validación, respaldo e inclusión en la relay chain y proof_size.

SubstrateNota de investigación18 min

XCM: un lenguaje de intenciones entre sistemas de consenso

Qué es XCM en el Polkadot SDK: programas que ejecuta la XCVM, ubicaciones relativas, reserva frente a teletransporte y la confianza que fija el executor.

SubstrateNota de investigación18 min

Sassafras: un solo productor por slot, en secreto

Cómo Sassafras busca un bloque por slot sin revelar al productor: tickets con ring VRF, repetidores y orden outside-in. Estado real en el Polkadot SDK: experimental.