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