• About Us
  • Privacy Policy
  • Disclaimer
  • Contact Us
Coin Snap
  • Home
  • Bitcoin
  • Defi
  • Crypto Mining
  • Crypto News
No Result
View All Result
  • Home
  • Bitcoin
  • Defi
  • Crypto Mining
  • Crypto News
No Result
View All Result
Coin Snap
No Result
View All Result
Home Bitcoin

Bitcoin Core – Decoding Chainstate Utxos: TXID, altura de bloque y desalineación de equilibrio

luiselduque22 by luiselduque22
July 26, 2025
in Bitcoin
0
189
SHARES
1.5k
VIEWS
Share on FacebookShare on Twitter


Estoy tratando de hacer un conjunto de herramientas de óxido para leer Utxos directamente desde Chain State. Estoy siguiendo la fuente de Bitcoin casi a la carta (al menos creo que lo soy).

Tengo un decode_varint

pub fn decode_varint(knowledge: &(u8)) -> Choice<(u32, usize)> {
    let mut n: u32 = 0;
    let mut shift = 0;

    for (i, &byte) in knowledge.iter().enumerate().take(5) {
        let half = (byte & 0x7F) as u32;
        n |= half << shift;

        if byte & 0x80 == 0 {
            return Some((n, i + 1));
        }

        // Bitcoin provides this quirk:
        n = n.wrapping_add(1 << shift);
        shift += 7;
    }

    None
}

Tengo un decompress_amount

pub fn decompress_amount(x: u64) -> u64 {
    if x == 0 {
        return 0;
    }
    let mut x = x - 1;
    let e = x % 10;
    x /= 10;
    let mut n;
    if e < 9 {
        let d = (x % 9) + 1;
        x /= 9;
        n = x * 10 + d;
    } else {
        n = x + 1;
    }
    for _ in 0..e {
        n *= 10;
    }
    n
}

Me aseguro de obtener solo entradas Utxo

pub fn decode_utxo_key(mut key: &(u8)) -> Choice<(Vec, u32)> {
    if key.is_empty() || key(0) != b'C' {
        return None;
    }
    key = &key(1..);
    let txid = key.get(..32)?.to_vec();
    key = &key(32..);
    let (vout, _) = decode_varint(key)?;
    Some((txid, vout as u32))
}

Sin embargo, por alguna razón, mis teclas muestran diferentes TXID que la altura del bloque.

key: `BytesKey((67, 0, 0, 0, 0, 1, 236, 58, 152, 94, 229, 61, 50, 239, 22, 75, 88, 246, 154, 181, 7, 146, 209, 249, 113, 25, 180, 120, 10, 150, 212, 118, 209, 0)), worth: (60, 114, 185, 97, 43, 211, 164, 127, 45, 124, 28, 164, 166, 210, 240, 182, 238, 220, 41, 24, 211, 153, 185, 205, 199))))

TXID: f349b3a497e29738638c27654d3125deb8d90702dc51ab3bc993370900000000

eso es txid en el bloque 684,608

Estoy obteniendo la clave de ofuscación XOR:

    let read_opts = ReadOptions::new();
    let xor_iter = db.iter(read_opts);
    let mut obfuscation_key: Vec = Vec::new();

    for (key, worth) in xor_iter {
        if key.0.starts_with(&(0x0e)) {
            obfuscation_key = worth;
            break;
        }
    }

Esto devuelve los bytes de valor decodificados como: (52, 148, 23, 67, 104 , 115, 134, 222, 130, 10, 78, 153, 93, 115, 228, 159, 196, 86, 17, 179, 224, 72, 222, 228, 185, 255, 26, 46, 229, 73, 140, 125, 129, 241, 246, 106, 170, 3, 94, 35)

Sin embargo, 52, claramente no es el byte correcto para el bloque 684,608.

¿Qué me estoy perdiendo?

Related articles

Tron supera las expectativas con nuevas direcciones de USDT récord: esto es lo que debe saber

Tron supera las expectativas con nuevas direcciones de USDT récord: esto es lo que debe saber

September 9, 2025
El mercado de Bitcoin absorbe el suministro en lotes: VDD resalta la fase de toros maduros

El mercado de Bitcoin absorbe el suministro en lotes: VDD resalta la fase de toros maduros

September 9, 2025


Estoy tratando de hacer un conjunto de herramientas de óxido para leer Utxos directamente desde Chain State. Estoy siguiendo la fuente de Bitcoin casi a la carta (al menos creo que lo soy).

Tengo un decode_varint

pub fn decode_varint(knowledge: &(u8)) -> Choice<(u32, usize)> {
    let mut n: u32 = 0;
    let mut shift = 0;

    for (i, &byte) in knowledge.iter().enumerate().take(5) {
        let half = (byte & 0x7F) as u32;
        n |= half << shift;

        if byte & 0x80 == 0 {
            return Some((n, i + 1));
        }

        // Bitcoin provides this quirk:
        n = n.wrapping_add(1 << shift);
        shift += 7;
    }

    None
}

Tengo un decompress_amount

pub fn decompress_amount(x: u64) -> u64 {
    if x == 0 {
        return 0;
    }
    let mut x = x - 1;
    let e = x % 10;
    x /= 10;
    let mut n;
    if e < 9 {
        let d = (x % 9) + 1;
        x /= 9;
        n = x * 10 + d;
    } else {
        n = x + 1;
    }
    for _ in 0..e {
        n *= 10;
    }
    n
}

Me aseguro de obtener solo entradas Utxo

pub fn decode_utxo_key(mut key: &(u8)) -> Choice<(Vec, u32)> {
    if key.is_empty() || key(0) != b'C' {
        return None;
    }
    key = &key(1..);
    let txid = key.get(..32)?.to_vec();
    key = &key(32..);
    let (vout, _) = decode_varint(key)?;
    Some((txid, vout as u32))
}

Sin embargo, por alguna razón, mis teclas muestran diferentes TXID que la altura del bloque.

key: `BytesKey((67, 0, 0, 0, 0, 1, 236, 58, 152, 94, 229, 61, 50, 239, 22, 75, 88, 246, 154, 181, 7, 146, 209, 249, 113, 25, 180, 120, 10, 150, 212, 118, 209, 0)), worth: (60, 114, 185, 97, 43, 211, 164, 127, 45, 124, 28, 164, 166, 210, 240, 182, 238, 220, 41, 24, 211, 153, 185, 205, 199))))

TXID: f349b3a497e29738638c27654d3125deb8d90702dc51ab3bc993370900000000

eso es txid en el bloque 684,608

Estoy obteniendo la clave de ofuscación XOR:

    let read_opts = ReadOptions::new();
    let xor_iter = db.iter(read_opts);
    let mut obfuscation_key: Vec = Vec::new();

    for (key, worth) in xor_iter {
        if key.0.starts_with(&(0x0e)) {
            obfuscation_key = worth;
            break;
        }
    }

Esto devuelve los bytes de valor decodificados como: (52, 148, 23, 67, 104 , 115, 134, 222, 130, 10, 78, 153, 93, 115, 228, 159, 196, 86, 17, 179, 224, 72, 222, 228, 185, 255, 26, 46, 229, 73, 140, 125, 129, 241, 246, 106, 170, 3, 94, 35)

Sin embargo, 52, claramente no es el byte correcto para el bloque 684,608.

¿Qué me estoy perdiendo?

Tags: alturaBitcoinbloqueChainstatecoreDecodingdesalineaciónequilibrioTXIDUTXOs
Share76Tweet47

Related Posts

Tron supera las expectativas con nuevas direcciones de USDT récord: esto es lo que debe saber

Tron supera las expectativas con nuevas direcciones de USDT récord: esto es lo que debe saber

by luiselduque22
September 9, 2025
0

Editorial de confianza Contenido, revisado por expertos líderes de la industria y editores experimentados. Divulgación de anuncios Tron continúa mostrando...

El mercado de Bitcoin absorbe el suministro en lotes: VDD resalta la fase de toros maduros

El mercado de Bitcoin absorbe el suministro en lotes: VDD resalta la fase de toros maduros

by luiselduque22
September 9, 2025
0

Bitcoin se encuentra actualmente en una encrucijada, atrapada entre esperanzas alcistas y presión bajista. Los toros están luchando por recuperar...

El compromiso de la biblioteca de JavaScript va después de las billeteras de bitcoins

El compromiso de la biblioteca de JavaScript va después de las billeteras de bitcoins

by luiselduque22
September 9, 2025
0

Un importante desarrollador de NPM, Qix, ha tenido su cuenta comprometida. Se usó para empujar el malware que se dirige...

WSOT de Bybit logra el título de New Guinness World Information ™ con el mayor número de participantes comerciales en línea en un día

WSOT de Bybit logra el título de New Guinness World Information ™ con el mayor número de participantes comerciales en línea en un día

by luiselduque22
September 8, 2025
0

DubaiEAU, 9 de septiembre de 2025 / PRNewswire/ - Bybitel segundo intercambio de criptomonedas más grande del mundo por volumen...

¿Cómo puedo permitir que GetBlockTemplate incluya transacciones SAT 1 SAT/VByte?

by luiselduque22
September 8, 2025
0

He agregado minrelaytxfee=0.000001 a mi bitcoin.conf Para permitir 0.1 transacciones SAT/VBYTE para ingresar a la memoria de mi nodo. Puedo...

Load More
  • Trending
  • Comments
  • Latest
Ethereum en la cúspide de una gran ruptura en el primer trimestre de 2025, se espera que las altcoins sigan su ejemplo

Ethereum en la cúspide de una gran ruptura en el primer trimestre de 2025, se espera que las altcoins sigan su ejemplo

December 28, 2024
Raoul Pal califica el patrón gráfico de Ethereum como “uno de los más poderosos en criptografía”, lo que indica que se avecina una gran ruptura ⋆ ZyCrypto

Raoul Pal califica el patrón gráfico de Ethereum como “uno de los más poderosos en criptografía”, lo que indica que se avecina una gran ruptura ⋆ ZyCrypto

December 27, 2024

¿Por qué mi transacción no se confirma y qué puedo hacer al respecto?

July 30, 2025
El impulso alcista impulsa el impulso hacia los $6

El impulso alcista impulsa el impulso hacia los $6

January 7, 2025
¿Ha terminado la temporada de Memecoin? PEPE y SHIB luchan mientras Lunex se eleva

¿Ha terminado la temporada de Memecoin? PEPE y SHIB luchan mientras Lunex se eleva

0
Comprensión de los rendimientos y la economía de las apuestas en Ethereum y Solana

Comprensión de los rendimientos y la economía de las apuestas en Ethereum y Solana

0
Calienta tu hogar mientras ganas Bitcoin con Heatbit

Calienta tu hogar mientras ganas Bitcoin con Heatbit

0
Líderes de IcomTech sentenciados a una década tras las rejas

Líderes de IcomTech sentenciados a una década tras las rejas

0
Tron supera las expectativas con nuevas direcciones de USDT récord: esto es lo que debe saber

Tron supera las expectativas con nuevas direcciones de USDT récord: esto es lo que debe saber

September 9, 2025
¡AVNT está disponible para el comercio!

¡AVNT está disponible para el comercio!

September 9, 2025
El mercado de Bitcoin absorbe el suministro en lotes: VDD resalta la fase de toros maduros

El mercado de Bitcoin absorbe el suministro en lotes: VDD resalta la fase de toros maduros

September 9, 2025
El nuevo borrador de la Ley de Claridad podría proteger a los desarrolladores de Bitcoin y Crypto de la responsabilidad pasada

El nuevo borrador de la Ley de Claridad podría proteger a los desarrolladores de Bitcoin y Crypto de la responsabilidad pasada

September 9, 2025

Coinsnap-Pro

Welcome to CoinSnap Pro, your ultimate destination for everything related to decentralized finance (DeFi), cryptocurrency news, Bitcoin, and crypto mining. Our mission is to keep you informed and empowered in the ever-evolving world of digital assets and blockchain technology.

Categories

  • Bitcoin
  • Crypto Mining
  • Crypto News
  • Defi
  • Economía

Recent News

Tron supera las expectativas con nuevas direcciones de USDT récord: esto es lo que debe saber

Tron supera las expectativas con nuevas direcciones de USDT récord: esto es lo que debe saber

September 9, 2025
¡AVNT está disponible para el comercio!

¡AVNT está disponible para el comercio!

September 9, 2025
  • About Us
  • Privacy Policy
  • Disclaimer
  • Contact Us

© 2024 Coinsnap.pro. All rights reserved.

No Result
View All Result
  • Home
  • Bitcoin
  • Defi
  • Crypto Mining
  • Crypto News

© 2024 Coinsnap.pro. All rights reserved.