调试
测试环境
ord env <DIRECTORY>
在<DIRECTORY>
中创建一个测试环境,启动bitcoind
和ord server
实例,打印与测试bitcoind
和ord server
实例交互的示例命令,等待CTRL-C
,然后关闭bitcoind
和ord server
。
ord env
尝试使用端口9000作为bitcoind
的RPC接口,以及端口9001
作为ord
的RPC接口,但如果这些端口被占用,它将回退到随机的未使用端口。
在env目录内部,ord env
将会将bitcoind
的配置写入bitcoin.conf
,ord
的配置写入ord.yaml
,以及环境配置写入env.json
。
env.json
包含了调用bitcoin-cli
和ord wallet
所需的命令,以及bitcoind
和ord server
正在监听的端口信息。
这些可以使用jq
提取成shell命令:
bitcoin=`jq -r '.bitcoin_cli_command | join(" ")' env/env.json`
$bitcoin listunspent
ord=`jq -r '.ord_wallet_command | join(" ")' env/env.json`
$ord outputs
如果ord
在$PATH
中,并且环境目录是env
,那么bitcoin-cli
命令将会是:
bitcoin-cli -datadir=env
ord
将是
ord --datadir env
测试网络
使用以下标志来指定测试网络,可以测试 Ord。有关运行比特币核心进行测试的更多信息,请参见[比特币的开发者文档](https://developer.bitcoin.org/examples/testing。
大多数在钱包 和 浏览器 中的 ord
命令可以使用以下网络标志运行:
网络 | 标记 |
---|---|
测试网 | --testnet or -t |
Signet | --signet or -s |
Regtest | --regtest or -r |
Regtest不需要下载区块链或者建立ord索引
示例
在regtest里运行bitcoind,使用:
bitcoind -regtest -txindex
在regtest里运行ord server,使用:
ord --regtest server
在regtest里创建钱包
ord --regtest wallet create
创建一个regtest接收地址
ord --regtest wallet receive
挖取101个区块(解锁coinbase)使用:
bitcoin-cli -regtest generatetoaddress 101 <receive address>
在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
测试递归
测试 recursion 时,首先记下依赖项(以 p5.js 为例:
ord --regtest wallet inscribe --fee-rate 1 --file p5.js
这应该返回一个inscription_id
,然后您可以在递归铭文中引用它。
然而,铭文ID在主网和测试链之间是不同的,因此在在主网上进行最终铭文之前,你必须将你铭文中的铭文ID更改为你依赖项的主网铭文ID。
现在你可以使用以下命令来铭刻你的递归铭文:
ord --regtest wallet inscribe --fee-rate 1 --file recursive-inscription.html
最终你可以挖取一些区块来开始服务器:
bitcoin-cli generatetoaddress 6 <receive address>
主网依赖
为了避免在测试时必须将依赖铭文ID更改为主网铭文ID,你可以在测试时使用内容代理。ord server
接受一个--proxy
选项,它需要另一个ord server
实例的URL。当设置了内容代理并且铭文未找到时,向/content/<INSCRIPTION_ID>
发出请求,ord server
将会将请求转发给内容代理。这允许你运行一个带有主网内容代理的测试ord server
实例。然后你可以在测试铭文中使用主网铭文ID,这将返回主网铭文的内容。
ord --regtest server --proxy https://ordinals.com