• 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

Pepeto anuncia una plataforma de negociación de preventa y demo de $ 5.5M

Pepeto anuncia una plataforma de negociación de preventa y demo de $ 5.5M

July 26, 2025
Mike Novogratz cube que Ethereum puede superar a Bitcoin

Mike Novogratz cube que Ethereum puede superar a Bitcoin

July 25, 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

Pepeto anuncia una plataforma de negociación de preventa y demo de $ 5.5M

Pepeto anuncia una plataforma de negociación de preventa y demo de $ 5.5M

by luiselduque22
July 26, 2025
0

Dubai, EAU, 25 de julio de 2025, cablePepeto, una moneda de meme construida en la cadena de bloques Ethereum, ha...

Mike Novogratz cube que Ethereum puede superar a Bitcoin

Mike Novogratz cube que Ethereum puede superar a Bitcoin

by luiselduque22
July 25, 2025
0

Unirse a nuestro Telegrama canal para mantenerse al día sobre la cobertura de noticias de última hora El CEO de...

Respuesta de Irán al bombardeo de EE. UU.: Bitcoin se recupera a medida que se avecina la Primera Guerra Mundial

Registros de minería de Crypto Ruse Surge Diezfold

by luiselduque22
July 25, 2025
0

Rusia simplemente se fue al modo Beast en Bitcoin Crypto Mining. En solo seis meses, las empresas mineras registradas se...

Bitcoin OG de 2011 se despierta, cobra una ganancia de 322,000x

Bitcoin OG de 2011 se despierta, cobra una ganancia de 322,000x

by luiselduque22
July 25, 2025
0

Editorial de confianza Contenido, revisado por expertos líderes de la industria y editores experimentados. Divulgación de anuncios Una ballena bitcoin...

La relación CDD llega a los niveles históricos

La relación CDD llega a los niveles históricos

by luiselduque22
July 24, 2025
0

Bitcoin ha permanecido atrapado en un rango estrecho entre $ 115k y $ 120k durante los últimos 10 días, lo...

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
El impulso alcista impulsa el impulso hacia los $6

El impulso alcista impulsa el impulso hacia los $6

January 7, 2025
6 mejores altcoins para invertir hoy 30 de enero – OKB, Mantra, Onyxcoin

6 mejores altcoins para invertir hoy 30 de enero – OKB, Mantra, Onyxcoin

January 30, 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
Es posible que los titulares de SHIB no quieran ver esta predicción de precios, los comerciantes están respaldando a Remittix en su lugar

Es posible que los titulares de SHIB no quieran ver esta predicción de precios, los comerciantes están respaldando a Remittix en su lugar

July 26, 2025
Pepeto anuncia una plataforma de negociación de preventa y demo de $ 5.5M

Pepeto anuncia una plataforma de negociación de preventa y demo de $ 5.5M

July 26, 2025

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

July 26, 2025
¿Qué tan alto podría ir XRP si Bitcoin alcanza $ 200,000?

¿Qué tan alto podría ir XRP si Bitcoin alcanza $ 200,000?

July 26, 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

Es posible que los titulares de SHIB no quieran ver esta predicción de precios, los comerciantes están respaldando a Remittix en su lugar

Es posible que los titulares de SHIB no quieran ver esta predicción de precios, los comerciantes están respaldando a Remittix en su lugar

July 26, 2025
Pepeto anuncia una plataforma de negociación de preventa y demo de $ 5.5M

Pepeto anuncia una plataforma de negociación de preventa y demo de $ 5.5M

July 26, 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.