Тестирование

Test Environment

ord env <DIRECTORY> creates a test environment in <DIRECTORY>, spins up bitcoind and ord server instances, prints example commands for interacting with the test bitcoind and ord server instances, waits for CTRL-C, and then shuts down bitcoind and ord server.

ord env tries to use port 9000 for bitcoind's RPC interface, and port 9001 for ord's RPC interface, but will fall back to random unused ports.

Inside of the env directory, ord env will write bitcoind's configuration to bitcoin.conf, ord's configuration to ord.yaml, and the env configuration to env.json.

env.json contains the commands needed to invoke bitcoin-cli and ord wallet, as well as the ports bitcoind and ord server are listening on.

These can be extracted into shell commands using 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

If ord is in the $PATH and the env directory is env, the bitcoin-cli command will be:

bitcoin-cli -datadir=env

And the ord will be:

ord --datadir env

Test Networks

Ord можно протестировать, используя следующие флаги для указания тестовой сети. Более подробную информацию о запуске Bitcoin Core для тестирования смотрите в документации разработчика Bitcoin.

Most ord commands in wallet and explorer can be run with the following network flags:

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

Regtest doesn't require downloading the blockchain since you create your own private blockchain, so indexing ord is almost instantaneous.

Пример

Run bitcoind in regtest with:

bitcoind -regtest -txindex

Run ord server in regtest with:

ord --regtest server

Создать кошелек в regtest с:

ord --regtest wallet create

Получите regtest адрес для приема с помощью:

ord --regtest wallet receive

Добыть 101 блок (для разблокировки coinbase) с помощью:

bitcoin-cli -regtest generatetoaddress 101 <receive address>

Inscribe в regtest с:

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

Добыть надпись с:

bitcoin-cli -regtest generatetoaddress 1 <receive address>

By default, browsers don't support compression over HTTP. To test compressed content over HTTP, use the --decompress flag:

ord --regtest server --decompress

Тестирование рекурсии

When testing out recursion, inscribe the dependencies first (example with p5.js):

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

This will return the inscription ID of the dependency which you can then reference in your inscription.

However, inscription IDs differ between mainnet and test chains, so you must change the inscription IDs in your inscription to the mainnet inscription IDs of your dependencies before making the final inscription on mainnet.

Затем можно нанести рекурсивную надпись с помощью:

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

Наконец, нужно добыть несколько блоков и запустить сервер:

bitcoin-cli generatetoaddress 6 <receive address>

Mainnet Dependencies

To avoid having to change dependency inscription IDs to mainnet inscription IDs, you may utilize a content proxy when testing. ord server accepts a --proxy option, which takes the URL of a another ord server instance. When making a request to /content/<INSCRIPTION_ID> when a content proxy is set and the inscription is not found, ord server will forward the request to the content proxy. This allows you to run a test ord server instance with a mainnet content proxy. You can then use mainnet inscription IDs in your test inscription, which will then return the content of the mainnet inscriptions.

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