Pruebas

Entorno de Pruebas

El comando ord env <DIRECTORIO> crea un entorno de pruebas en <DIRECTORIO>, inicia instancias de bitcoind y ord server, imprime comandos de ejemplo para interactuar con las instancias de prueba de bitcoind y ord server, espera a CTRL-C, y luego apaga bitcoind y ord server.

ord env trata de usar el puerto 9000 para la interfaz RPC de bitcoind, y el puerto 9001 para la interfaz RPC de ord, pero recurrirá a puertos no utilizados al azar si estos están ocupados.

Dentro del directorio env, ord env escribirá la configuración de bitcoind en bitcoin.conf, la configuración de ord en ord.yaml, y la configuración del entorno en env.json.

env.json incluye los comandos necesarios para invocar bitcoin-cli y ord wallet, así como los puertos en los que bitcoind y ord server están activos.

Puedes extraer estos comandos a comandos de shell usando jq:

bitcoin=`jq -r '.bitcoin_cli_command | join(" ")' env/env.json`
$bitcoin listunspent

ord=`jq -r '.ord_wallet_command | join(" ")' env/env.json`
$ord outputs

Si ord está en el $PATH y el directorio env se llama env, el comando bitcoin-cli será:

bitcoin-cli -datadir=env

Y ord será:

ord --datadir env

Redes de Prueba

Puedes probar ord utilizando las siguientes banderas para especificar la red de prueba. Para más información sobre cómo ejecutar Bitcoin Core para pruebas, consulta la [documentación para desarrolladores de Bitcoin]](https://developer.bitcoin.org/examples/testing.html).

La mayoría de los comandos ord en monedero y explorador se pueden ejecutar con las siguientes banderas de red:

RedBandera
Testnet--testnet or -t
Signet--signet or -s
Regtest--regtest or -r

Regtest no requiere que se descargue la cadena de bloques ya que puedes crear tu propia cadena de bloques privada, por lo que la indexación de ord es casi instantánea.

Ejemplo

Ejecuta bitcoind en regtest con:

bitcoind -regtest -txindex

Ejecuta ord server en regtest con:

ord --regtest server

Crea un monedero en regtest con:

ord --regtest wallet create

Obtén una dirección de recepción en regtest con:

ord --regtest wallet receive

Mina 101 bloques (para desbloquear coinbase) con:

bitcoin-cli -regtest generatetoaddress 101 <receive address>

Realiza una inscripción en regtest con:

ord --regtest wallet inscribe --fee-rate 1 --file <file>

Mina la inscripción con:

bitcoin-cli -regtest generatetoaddress 1 <receive address>

Por defecto, los navegadores no soportan la compresión en HTTP. Para probar como se ve el contenido comprimido sobre HTTP, usa la bandera --decompress:

ord --regtest server --decompress

Pruebas de Recursión

Cuando hagas pruebas de recursión, primero inscribe las dependencias (por ejemplo, con p5.js):

ord --regtest wallet inscribe --fee-rate 1 --file p5.js

Esto retornará el ID de inscripción de la dependencia que luego puedes referenciar en tu inscripción.

Sin embargo, los IDs de inscripción difieren entre mainnet y las cadenas de prueba, por lo que debes cambiar los IDs de inscripción en tu inscripción a los IDs de inscripción de mainnet de tus dependencias antes de hacer la inscripción final en mainnet.

Luego puedes inscribir tu inscripción recursiva con:

ord --regtest wallet inscribe --fee-rate 1 --file recursive-inscription.html

Finalmente, tendrás que minar algunos bloques e iniciar el servidor:

bitcoin-cli generatetoaddress 6 <receive address>

Dependencias en Mainnet

Para evitar tener que cambiar los IDs de inscripción de dependencias a los IDs de inscripción de mainnet, puedes utilizar un proxy de contenido. ord server acepta una opción --proxy, que toma la URL de otra instancia de ord server. Al hacer una solicitud a /content/<ID_DE_INSCRIPCIÓN> cuando se establece un proxy de contenido y no se encuentra la inscripción, ord server reenviará la solicitud al proxy de contenido. Esto te permite ejecutar una instancia de prueba de ord server con un proxy de contenido de mainnet. Luego puedes usar ID de inscripciónes de mainnet en tu inscripción de prueba, lo cual retornará el contenido de las inscripciones en mainnet.

ord --regtest server --proxy https://ordinals.com