Transmisión de transacciones de Bitcoin

Estoy un poco confundido acerca de la transmisión de transacciones en Internet. ¿Cómo sabe un minero que se ha transmitido una transacción? La red de Internet es muy grande. ¿O cómo mi cliente de bitcoin recopila los bloques transmitidos?

Respuestas (2)

La red P2P de Bitcoins es un diseño de inundación, las nuevas transacciones y los bloques se transmiten a cada par conectado y se transmiten a cada uno de sus pares. Los datos válidos llegan a todos los participantes muy rápidamente debido a la selección aleatoria de pares que realizan todos los nodos. Todos los participantes de validación mantienen un 'mempool', una colección de transacciones no confirmadas que creen que son válidas, los mineros recopilan transacciones que desean incluir en bloques de su mempool y las convierten en una plantilla candidata para minar.

Bajo el capó, Bitcoin tiene algo llamado json-rpc . Eso se usa dentro del software y con otro software que desea integrar en bitcoin para enviar y recibir pagos, generar direcciones de billetera y obtener datos de red. Bitcoin Core y cualquier otro software que almacene una copia completa de la cadena de bloques (las carteras spv como multibit, mycelium y la cartera de bitcoin de Android son livianas y no colocan 60 GB de datos de transacciones de la cadena de bloques en su teléfono).

Se comunican entre sí a través del puerto 8333 y las transacciones de bitcoin se envían entre sí, se transmiten. Si tuviera un software personalizado en su computadora donde se ejecutaba bitcoin core, podría programar un script para que su aplicación se comunique con bitcoin para obtener entradas primero, luego crear una transacción sin procesar, firmar la transacción con la clave privada que contiene entradas gastables, luego para transmitirlo. Al observar el proceso, vemos que la transacción de signo devuelve una matriz Json con los datos firmados codificados en hexadecimal y un código de resultado (la mayoría de los scripts de Bitcoin Op_Code devuelven 0 o 1 en el nivel de protocolo para indicar falla (0) o éxito (1) Luego, el software envía los datos (los transmite) a los pares conectados a través del puerto 8333 con ese valor hexadecimal firmado. Luego, el protocolo devuelve una ID de transacción o un error, nuevamente como un objeto Json.