Determinación del valor de transacción de génesis o genesis_tx

¿Hay alguna manera de determinar el hash de la transacción de génesis (genesis_tx)? Sé el número de bloque de génesis, pero ¿cómo se determina genesis_tx? Estoy buscando este hash para una altcoin que se bifurcó de litecoin.

Respuestas (2)

También puede obtenerlo desde la línea de comandos con bitcoin-cli, litecoin-clietc.

Para litecoin en modo de prueba, por ejemplo, primero obtenga el hash del bloque de génesis ( height = 0):

$ litecoin-cli getblockhash 0

que regresa 530827f38f93b43ed12af0b3ad25a288dc02ed74d6d7857862df51fc56c416f9.

Luego obtenga el bloque de génesis usando su hash:

$ litecoin-cli getblock 530827f38f93b43ed12af0b3ad25a288dc02ed74d6d7857862df51fc56c416f9

que devuelve:

{ "hash": "530827f38f93b43ed12af0b3ad25a288dc02ed74d6d7857862df51fc56c416f9", "confirmations": 1, "strippedsize": 280, "size": 280, "weight": 1120, "height": 0, "version": 1, "versionHex": "00000001", "merkleroot": "97ddfbbae6be97fd6cdf3e7ca13232a3afff2353e29badfab7f73011edd4ced9", "tx": [ "97ddfbbae6be97fd6cdf3e7ca13232a3afff2353e29badfab7f73011edd4ced9" ], "time": 1296688602, "mediantime": 1296688602, "nonce": 0, "bits": "207fffff", "difficulty": 4.656542373906925e-10, "chainwork": "0000000000000000000000000000000000000000000000000000000000000002" }

Tenga en cuenta que no hay ninguna nextblockhashpropiedad porque tengo una cadena de registro recién inicializada, es decir, no tiene más bloques que el génesis. Pero incluso si tuviera que generar bloques con decir generateo generatetoaddress, todos los campos permanecerían como se muestra arriba. El único campo adicional sería un nextblockhash.

Como dijo @MeshCollider en su respuesta, dado que el bloque de génesis tiene un solo tx coinbase, su txid y el merkeRoot coinciden.

El hash de transacción de coinbase del bloque genesis será el mismo que el de los bloques merkle root porque la transacción de coinbase debe ser la única transacción en el bloque genesis. Debería poder encontrarlo en chainparams.cpp si el código base sigue siendo similar a bitcoin, así: https://github.com/bitcoin/bitcoin/blob/master/src/chainparams.cpp#L125

assert(genesis.hashMerkleRoot == uint256S("0x4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b"));
Está bifurcado de litecoin, por lo que debería ser similar. Entonces, esencialmente, ¿genesis_tx es el merkleroot?
@Nixxed Sí, eso es lo que dije;)