Minando un bloque
Clase 7 de 16 • Curso de Bitcoin para Developers
Contenido del curso
Clase 7 de 16 • Curso de Bitcoin para Developers
Contenido del curso
Adolfo Sebastián Jara Gavilanes
christian Miranda Vargas
Ibsen Medina
Daniel Jussef Zamorano Silva
Jimmy Buriticá Londoño
Juan Christopher
Leonardo Jurado
Luis Enrique Herrera Alvarado
Luis Enrique Herrera Alvarado
Anderson Eduardo Arévalo Ramírez
Abidan Triguero Calle
Davila Jorge Romo
Juan Christopher
Mario Enrique Ascencio Garcia
Mario Enrique Ascencio Garcia
andres reyes
Jerónimo Chica
Jimmy Buriticá Londoño
Jerónimo Chica
Jerónimo Chica
René Lara
Jerónimo Chica
Jimmy Buriticá Londoño
Sandro Jaramillo
No ay en español mano
Minando un bloque.
La minería es el mecanismo fundamental que habilita un consenso descentralizado a través de cuatro pilares fundamentales.
.
. Políticas.
. Coinbase Transcation.
. Recompensas y Fees.
. Estructura Coinbase Transaction Input.
| Campo | Descripción | Tamaño (bytes) |
|---|---|---|
| Transaction Hash | Todos sus bits son cero, no tiene referencia a un hash de transacción. | 32 |
| Output index | Todos los bit son unos: 0xFFFFFFFF | 4 |
| Coinbase Data Size | Longitud de la información, de 2 a 100 bytes. | 1-9 bytes |
| Coinbase Data | Información usada para un nonce extra y etiquetas de minería. | Variable |
| Sequence number | 0xFFFF | 4 |
. Estructura Transaction Input.
| Campo | Descripción | Tamaño (bytes) |
|---|---|---|
| Transaction Hash | Referente a la transacción que contiene la UTXO a usarse. | 32 |
| Output index | El índice de la UTXO. | 4 |
| Unlocking-Script Size | Longitud del script, de 2 a 100 bytes. | 1-9 bytes |
| Unlocking-Script | Script que satisface con las condiciones del script que bloquea la UTXO. | Variable |
| Sequence number | 0xFFFF | 4 |
. Construyendo el encabezado.
. Minando un bloque.
Gracias por el resumen!
Buen aporte.
Video de apoyo
En realidad las tarifas totales son la diferencia entre la suma de salidas y la suma de las entradas. El exceso es lo que es recolectado por los mineros:
fees = Sum(Inputs) - Sum(outputs)
Lean Mastering Bitcoin, porque de verdad que este profesor está de.. u.u
tremendo aporte
RESUMEN CLASE 7: MINANDO UN BLOQUE
I.- MINERIA Y SUS 4 PILARES
Validación independiente de transacciones.
Agregación independiente de transacciones en nuevos bloques.
Verificación de nuevos bloques.
Selección independiente de la cadena con más computación acumulada.
II.- POLITICAS
Conjunto de reglas de validación que se aplican adicional al consenso sobre transacciones no confirmadas
No afecta las transacciones en bloques.
Uso de recursos, heurísticas, reglas
III.- COINBASE TRANSACTION
Transacción especial que contiene la recompensa por el proceso de minado.
Solo tiene un input y un output.
IV.- RECOMPENSAS Y FEES
Existen 2 tipos de recompensas:
Añadir un nuevo bloque a la cadena principal
Sumando las tarifas(fees) de las transacciones añadidas en el bloque
V.- ESTRUCTURA COINBASE TRANSACTION INPUT
VI.- ESTRUCTURA TRANSACTION INPUT
VI.- CONSTRUYENDO EL ENCABEZADO
Version
Previous block hash
Merkle Tree
Timestamp
Target
Nonce
VIII.- MINANDO UN BLOQUE
Pasar la cabecera de un bloque a través de una función de hashing hasta encontrar un valor válido.
Proof-of-work:
SHA 256.
Producir una salida que sea igual o menor que el objetivo.
Objetivo alto, menor dificultad.
Objetivo bajo, mayor dificultad.
¿Cuántos de los bits iniciales deben ser cero?
En esta página podemos ver como la dificultad de la red de BTC aumenta en función del hasrate de la misma red
https://studio.glassnode.com/metrics?a=BTC&category=Miners&m=mining.DifficultyLatest
Buena.
Minuto 1:20 "SOLO TIENE UNA SALIDA", pero el dice solo tiene una entrada
Correccion solo tiene una salida
Si por ejemplo alguno de los nodos no tiene la versión actual y Stampa un bloque con una version antigua, el bloque es rechazado? Cómo hace el nodo para actualizar una versión?
¿En qué plataforma se corren esas líneas de comando?
El profesor presento un programa hecho en Phyton, se puede correr desde la línea de comandos de tu PC, debes tener el compilador de Phyton instalado.
Gracias Jimmy!
Si solo hay una única cadena inmutable ¿A qué se refiere aquello de "selección de la cadena..."?
Si no me equivoco se refiere es a que cada minero va agregando transacciones y "minando", el consenso Proof of Work luego escoge un bloque de entre todos los mineros para agregarlo a la cadena principal e inmutable, y el que escoge es aquel con mayor poder computacional.
Gracias!
Minando un Bloque
Aqui el script de prueba de trabajo, no estaba el link en recursos
https://github.com/bitcoinbook/bitcoinbook/blob/develop/code/proof-of-work-example.py