mirror of
https://github.com/ChristopherA/Learning-Bitcoin-from-the-Command-Line.git
synced 2025-06-08 08:26:17 +00:00
Merge pull request #359 from javiervargas/patch-45
Chapter 17-6 17_6_Usando_Otras_Funciones_en_Libwally.md
This commit is contained in:
commit
20df31110e
124
es/17_6_Usando_Otras_Funciones_en_Libwally.md
Normal file
124
es/17_6_Usando_Otras_Funciones_en_Libwally.md
Normal file
@ -0,0 +1,124 @@
|
|||||||
|
# 17.6: Uso de otras funciones en Libwally
|
||||||
|
|
||||||
|
> :information_source: **NOTA:** Esta sección se ha añadido recientemente al curso y es un borrador temprano que todavía puede estar pendiente de revisión. Lectura con advertencias.
|
||||||
|
|
||||||
|
Libwally es una extensa biblioteca que proporciona una considerable cantidad de funcionalidad relacionada con la cartera, gran parte de ella no está disponible a través de `bitcoin-cli`. A continuación se ofrece una visión general de algunas funcionalidades no cubiertas anteriormente en este capítulo.
|
||||||
|
|
||||||
|
## Usar funciones criptográficas
|
||||||
|
|
||||||
|
Se puede acceder directamente a varias funciones criptográficas desde Libwally:
|
||||||
|
|
||||||
|
* `wally_aes` - Usar cifrado o descifrado AES
|
||||||
|
* `wally_aes_cbc` - Usar cifrado o descifrado AES en modo CBC
|
||||||
|
* `wally_hash160` - Usar el hash RIPEMD-160(SHA-256)
|
||||||
|
* `wally_scrypt` - Utilizar la derivación de clave Scrypt
|
||||||
|
* `wally_sha256` - utilizar el hash SHA256
|
||||||
|
* `wally_sha256_midstate` - Utilizar SHA256 para hash sólo el primer trozo de datos
|
||||||
|
* `wally_sha256d` - Realizar un doble hash SHA256
|
||||||
|
* `wally_sha512` - utilizar el hash SHA512
|
||||||
|
|
||||||
|
También hay funciones HMAC para los dos hashes SHA, que se utilizan para generar códigos de autenticación de mensajes basados en los hashes. Se utilizan en [BIP32](https://en.bitcoin.it/wiki/BIP_0032), entre otros lugares.
|
||||||
|
|
||||||
|
* `wally_hmac_sha256`
|
||||||
|
* `wally_hmac_sha512`
|
||||||
|
|
||||||
|
Las funciones adicionales cubren la derivación de clave PBKDF2 y la matemática de curva elíptica.
|
||||||
|
|
||||||
|
## Usar funciones de dirección
|
||||||
|
|
||||||
|
Libwally contiene una serie de funciones que se pueden utilizar para importar, exportar y traducir direcciones de Bitcoin.
|
||||||
|
|
||||||
|
Algunos convierten de ida y vuelta entre direcciones y bytes `scriptPubKey`:
|
||||||
|
|
||||||
|
* `wally_addr_segwit_from_bytes` - Convertir un programa testigo (en bytes) en una dirección Segwit
|
||||||
|
* `wally_addr_segwit_to_bytes` - Convertir una dirección Segwit en un `scriptPubKey` (en bytes)
|
||||||
|
* `wally_address_to_scriptpubkey` - Convertir una dirección heredada en un `scriptPubKey`(en bytes)
|
||||||
|
* `wally_scriptpubkey_to_address` - Convertir un scriptPubKey` (en bytes) en una dirección heredada
|
||||||
|
|
||||||
|
Algunos se refieren al formato de importación de la cartera (WIF):
|
||||||
|
|
||||||
|
* `wally_wif_from_bytes` - Convertir una clave privada (en bytes) en una WIF
|
||||||
|
* `wally_wif_is_uncompressed` - Determina si un WIF está descomprimido
|
||||||
|
* `wally_wif_to_address` - Derivar una dirección P2PKH de un WIF
|
||||||
|
* `wally_wif_to_bytes` - Convertir un WIF a una clave privada (en bytes)
|
||||||
|
* `wally_wif_to_public_key` - Derivar una clave pública (en bytes) de un WIF
|
||||||
|
|
||||||
|
## Usar funciones BIP32
|
||||||
|
|
||||||
|
Hay funciones adicionales de la cartera BIP32 HD, más allá de lo que estaba cubierto en [§17.3: Usar BIP32 en Libwally](17_3_Usando_BIP32_en_Libwally.md).
|
||||||
|
|
||||||
|
* `bip32_key_get_fingerprint` - Generar una huella digital BIP32 para una clave extendida
|
||||||
|
* `bip32_key_serialize` - Transformar una clave extendida en bytes seriados
|
||||||
|
* `bip32_key_strip_private_key` - Convertir una clave privada extendida en una clave pública extendida
|
||||||
|
* `bip32_key_unserialize` - Transformar bytes seriados en una clave extendida
|
||||||
|
|
||||||
|
También hay varios numerosos dependiendo de si desea asignar memoria o tener a Libwally haciendo el `_alloc` por usted.
|
||||||
|
|
||||||
|
## Usar funciones BIP38
|
||||||
|
|
||||||
|
[BIP38](https://github.com/bitcoin/bips/blob/master/bip-0038.mediawiki) permite la creación de clave privada protegida con contraseña. No lo enseñamos porque consideremos peligroso insertar este tipo de factor humano en la gestión clave. Véase [#SmartCustody](https://www.smartcustody.com/index.html).
|
||||||
|
|
||||||
|
Las principales funciones son:
|
||||||
|
* `bip38_from_private_key` - Codificar una clave privada usando BIP38
|
||||||
|
* `bip38_to_private_key` - Decodificar una clave privada usando BIP38
|
||||||
|
|
||||||
|
## Usar funciones BIP39
|
||||||
|
|
||||||
|
Algunas funciones de palabras mnemónicas de BIP39 fueron vistas en detalle en [§17.2: Usando BIP39 en Libwally](17_2_Usando_BIP39_en_Libwally.md):
|
||||||
|
|
||||||
|
* `bip39_get_languages` - Ver una lista de idiomas soportados
|
||||||
|
* `bit39_get_word` - Recuperar una palabra específica de la lista de palabras de un idioma
|
||||||
|
* `bip39_get_wordlist` - Ver una lista de palabras para un idioma
|
||||||
|
|
||||||
|
## Usar funciones PSBT
|
||||||
|
|
||||||
|
Los listados de la mayoría de las funciones de PSBT se pueden encontrar en [17.4: Usando PSBTs en Libwally](17_4_Usando_PSBTs_en_Libwally.md).
|
||||||
|
|
||||||
|
## Usar funciones de script
|
||||||
|
|
||||||
|
[§17.5: Usar scripts en Libwally](17_5_Usando_Scripts_en_Libwally.md) apenas tocó las funciones de Scripts de Libwally.
|
||||||
|
|
||||||
|
Hay otra función que le permite determinar el tipo de script que se encuentra en una transacción:
|
||||||
|
|
||||||
|
* `wally_scriptpubkey_get_type` - Determinar el tipo de script de una transacción.
|
||||||
|
|
||||||
|
Luego hay un montón de funciones que crean `scriptPubKey` a partir de bytes, `scriptSig` a partir de firmas, y Testigos a partir de bytes o firmas.
|
||||||
|
|
||||||
|
* `wally_script_push_from_bytes`
|
||||||
|
* `wally_scriptpubkey_csv_2of2_then_1_from_bytes`
|
||||||
|
* `wally_scriptpubkey_csv_2of3_then_2_from_bytes`
|
||||||
|
* `wally_scriptpubkey_multisig_from_bytes`
|
||||||
|
* `wally_scriptpubkey_op_return_from_bytes`
|
||||||
|
* `wally_scriptpubkey_p2pkh_from_bytes`
|
||||||
|
* `wally_scriptpubkey_p2sh_from_bytes`
|
||||||
|
* `wally_scriptsig_multisig_from_bytes`
|
||||||
|
* `wally_scriptsig_p2pkh_from_der`
|
||||||
|
|
||||||
|
* `wally_scriptsig_p2pkh_from_sig`
|
||||||
|
* `wally_witness_multisig_from_bytes`
|
||||||
|
* `wally_witness_p2wpkh_from_der`
|
||||||
|
* `wally_witness_p2wpkh_from_sig`
|
||||||
|
* `wally_witness_program_from_bytes`
|
||||||
|
|
||||||
|
## Usar funciones de transacción
|
||||||
|
|
||||||
|
También apenas tocamos las funciones que se pueden usar para crear y convertir funciones en [§17.5](17_5_Usando_Scripts_en_Libwally.md).
|
||||||
|
|
||||||
|
Hay numerosas funciones informativas, algunas de las más interesantes de las cuales son:
|
||||||
|
|
||||||
|
* `wally_tx_get_length`
|
||||||
|
* `wally_tx_get_total_output_satoshi`
|
||||||
|
* `wally_tx_get_weight`
|
||||||
|
|
||||||
|
También hay funciones que afectan a `wally_tx`, a `wally_tx_input`, a `wally_tx_output`, o a `wally_tx_witness_stack` y que crean firmas.
|
||||||
|
## Usar funciones de elementos
|
||||||
|
|
||||||
|
Libwally se puede compilar para ser utilizado con los elementos de Blockstream, que incluye acceso a sus funciones de activos.
|
||||||
|
|
||||||
|
## Resumen: Uso de otras funciones en Libwally
|
||||||
|
|
||||||
|
Hay mucho más que usted puede hacer con Libwally, más de lo que puede ser cubierto en este capítulo o incluso enumerado en esta sección. Notablemente, puede realizar funciones criptográficas, codificar claves privadas, construir transacciones completas y usar elementos. Los [documentos Libwally](https://wally.readthedocs.io/en/latest/) son el lugar para ir a por más información, aunque a partir de este escrito son a la vez limitados y anticuados. Los archivos de cabecera de Libwally son una copia de seguridad si los documentos están incompletos o mal.
|
||||||
|
|
||||||
|
## ¿Qué es lo siguiente?
|
||||||
|
|
||||||
|
Termine de aprender sobre "Programar Bitcoin con Libwally" en [§17.7: Integrar Libwally y Bitcoin-CLI](17_7_Integrando_Libwally_y_Bitcoin-CLI.md).
|
Loading…
x
Reference in New Issue
Block a user