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-.
Tema
Artículos, guías y notas de laboratorio relacionados con Polkadot SDK.
Artículos
20
Índice
Topic
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-.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Por qué GRANDPA es caro de verificar en Ethereum y cómo BEEFY firma compromisos ECDSA sobre una raíz MMR, con muestreo aleatorio en el light client del puente.
El recorrido de un bloque por el nodo, leído en el código del Polkadot SDK: import queue, BlockImport, fork choice, justificaciones, finalidad y autoría.
Guía de ingeniería, desde el código del Polkadot SDK, para reemplazar GRANDPA o la producción por un protocolo BFT estilo HotStuff: QC como justificación, sync y pruebas.