Saltar al contenido principal

Internos de Bitcoin Core

Bitcoin Core es la implementación de referencia del protocolo Bitcoin. Entender sus internos es la base del desarrollo de protocolo.

Resumen​

Bitcoin Core es una aplicación C++ que ha evolucionado desde el código original de Satoshi. A lo largo de los años, ha sido significativamente refactorizado para modularidad, seguridad y rendimiento. El proyecto mantiene estándares extremadamente altos de calidad de código — los cambios son revisados por múltiples desarrolladores experimentados antes de fusionarse.

Subsistemas Clave​

SubsistemaResponsabilidadArchivos Clave
ValidationValidación de bloques y transaccionessrc/validation.cpp
Net/Net ProcessingRed P2P y manejo de mensajessrc/net.cpp, src/net_processing.cpp
WalletGestión de claves, selección de monedas, firmasrc/wallet/
MempoolGestión de transacciones sin confirmarsrc/txmempool.cpp
RPC/RESTInterfaces de API externassrc/rpc/
ScriptIntérprete y verificación de scriptssrc/script/
ConsensusCódigo crítico de consensosrc/consensus/
IndexÍndices opcionales (txindex, blockfilter)src/index/

Cómo Encaja Todo​

Cuando llega un nuevo bloque:

  1. Net recibe el bloque de un peer
  2. Net Processing lo deserializa y lo enruta
  3. Validation verifica el proof-of-work, transacciones y reglas de consenso
  4. Conjunto UTXO (chainstate) se actualiza
  5. Mempool elimina las transacciones confirmadas
  6. Wallet escanea por transacciones relevantes
  7. Indexes se actualizan si están habilitados

Comenzando​

# Clonar el repositorio
git clone https://github.com/bitcoin/bitcoin.git
cd bitcoin

# Leer las instrucciones de build
cat doc/build-unix.md # o doc/build-osx.md

# Compilar
cmake -B build
cmake --build build

# Ejecutar tests
ctest --test-dir build

Temas en Esta Sección​

  • Arquitectura del Código — Layout del árbol de código, sistema de build, límites de módulos
  • Consenso — Reglas de consenso, lógica de validación, activación de soft forks