钱包

单个 聪 可以刻有任意内容,创建可以保存在比特币钱包中并使用比特币交易传输的比特币原生数字人工制品。铭文与比特币本身一样持久、不变、安全和去中心化。

使用铭文需要一个比特币完整节点,让您了解比特币区块链的当前状态,以及一个可以创建铭文并在构建交易以将铭文发送到另一个钱包时执行 聪 控制的钱包。

Bitcoin Core 提供比特币全节点和钱包。 但是,Bitcoin Core 钱包不能创建铭文,不执行 聪 控制。

这需要ord,序数实用程序。 ord 没有自己的钱包,因此 ord wallet子命令与 Bitcoin Core 钱包交互。

本指南涵盖:

  1. 安装 Bitcoin Core
  2. 同步比特币区块链
  3. 创建 Bitcoin Core 钱包
  4. 使用 ord wallet receive收取聪
  5. 使用ord wallet inscribe创建铭文
  6. 使用 ord wallet send发送铭文
  7. 使用ord wallet receive收取铭文
  8. 使用ord wallet inscribe创建铭文

寻求帮助

如果你遇到困难,可以在Ordinals Discord Server,或者检查Github上的相关内容问题讨论.

安装 Bitcoin Core

Bitcoin Core 可以在 bitcoincore.org 上的下载页面.

制作铭文需要Bitcoin Core 24 或者更新版本。

本指南不包括如何详细安装 Bitcoin Core;当你成功安装Bitcoin Core以后,你应该可以在命令行使用 bitcoind -version命令。

配置 Bitcoin Core

ord 需要Bitcoin Core 的交易索引

配置你的Bitcoin Core阶段去维护一个交易索引,需要在bitcoin.conf里面添加:

txindex=1

或者, 运行 bitcoind-txindex:

bitcoind -txindex

关于创建或者修改你的 bitcoin.conf文件,可以参考 这里.

比特币区块同步

区块同步,运行:

bitcoind -txindex

…直到运行 getblockcount:

bitcoin-cli getblockcount

像区块链浏览器the mempool.space block explorer一样对区块进行记述. ordbitcoind进行交互, 所以你在使用ord时候需要让bitcoind 在后台运行。

区块链占用约600GB的磁盘空间。如果你有一个外接硬盘来存储区块,可以使用配置选项blocksdir=<external_drive_path>. 这比使用datadir 选项更简单, bitcoin-cliord 可以在默认的位置找到cookie文件

故障排除

确保你可以通过 bitcoin-cli -getinfo 来访问bitcoind ,并且它已经完全同步

假如 bitcoin-cli -getinfo 返回的是 Could not connect to the server, 这可能是bitcoind 没有运行

确保 rpcuser, rpcpassword, 或者 rpcauth 没有 在你的 bitcoin.conf 文件里进行设置。 ord 需要使用 cookie 认证。因此需要确保 你的bitcoin data的文件夹里有 .cookie文件。

如果 bitcoin-cli -getinfo 返回Could not locate RPC credentials, 那么 你必须指定 cookie 文件的位置。如果你正在使用自定义的数据目录 (指定 datadir 的选项),那么你必须指定cookie文件的位置. bitcoin-cli -rpccookiefile=<your_bitcoin_datadir>/ cookie -getinfo.当你运行 ord 命令时,你必须指定 cookie 文件的位置 --cookie-file=<your_bitcoin_datadir>/.cookie.

确保你在bitcoin.conf 文件中 没有 配置 disablewallet=1 如果 bitcoin-cli listwallets 返回 Method not found 那么钱包就会被禁用你将要无法使用 ord.

确保设置 txindex=1 。运行 bitcoin-cli getindexinfo 将会返回一些这样的结果

{
  "txindex": {
    "synced": true,
    "best_block_height": 776546
  }
}

假如仅仅返回 {}, txindex 没有被设置。如果返回 "synced": false, bitcoind 仍然在创建 txindex。那就需要等到"synced": trueord命令方可以使用.

如果你设置了maxuploadtarget ,他将干扰 ord 的索引获取区块, 你可以选择移除或者设置whitebind=127.0.0.1:8333.

安装 ord

ord 程序使用Rust语言写成,可以从源码安装. 预制文件可以从版本发布页下载。

你也可以在命令行中使用下面命令来安装最新的文件:

curl --proto '=https' --tlsv1.2 -fsLS https://ordinals.com/install.sh | bash -s

ord 成功安装以后,你可以运行 :

ord --version

这会返回 ord的版本信息.

创建一个Bitcoin Core钱包

ord 使用Bitcoin Core来管理私钥,签署交易以及向比特币网络广播交易。此外,ord 钱包需要在后台运行ord server,请确保这些程序运行

bitcoind -txindex
ord server

创建一个名为ord 的Bitcoin Core 钱包,运行:

ord wallet create

这将打印出您的助记词,并将其存储在安全的地方。

{
  "mnemonic": "dignity buddy actor toast talk crisp city annual tourist orient similar federal",
  "passphrase": ""
}

如果你想指定不同的名称或者在非默认的URL上运行 ord server你可以设置以下选项:

ord wallet --name foo --server-url http://127.0.0.1:8080 create

查看所有可用的钱包选项,你可以运行

ord wallet help

恢复和转存钱包

ord钱包使用描述符descriptors,你可以导出输出描述符并将它们导入另外一个基于描述符的钱包导出钱包描述符,其中包含你的私钥:

$ ord wallet dump
==========================================
= 这个字节包含你的私钥信息 =
=   不要和任何人分享 =
==========================================
{
  "wallet_name": "ord",
  "descriptors": [
    {
      "desc": "tr([551ac972/86'/1'/0']tprv8h4xBhrfZwX9o1XtUMmz92yNiGRYjF9B1vkvQ858aN1UQcACZNqN9nFzj3vrYPa4jdPMfw4ooMuNBfR4gcYm7LmhKZNTaF4etbN29Tj7UcH/0/*)#uxn94yt5",
      "timestamp": 1296688602,
      "active": true,
      "internal": false,
      "range": [
        0,
        999
      ],
      "next": 0
    },
    {
      "desc": "tr([551ac972/86'/1'/0']tprv8h4xBhrfZwX9o1XtUMmz92yNiGRYjF9B1vkvQ858aN1UQcACZNqN9nFzj3vrYPa4jdPMfw4ooMuNBfR4gcYm7LmhKZNTaF4etbN29Tj7UcH/1/*)#djkyg3mv",
      "timestamp": 1296688602,
      "active": true,
      "internal": true,
      "range": [
        0,
        999
      ],
      "next": 0
    }
  ]
}

ord 钱包可以从助记词恢复:

ord wallet restore --from mnemonic

输入你的助记词并按回车

descriptor.json恢复描述符:

cat descriptor.json | ord wallet restore --from descriptor

要从剪贴板中的描述符恢复:

ord wallet restore --from descriptor

将描述符粘贴到终端中,UNIX里按CTRL-D 或 Windows里按 CTRL-Z

接收聪

铭文是在单个聪上制作的,使用聪来支付费用的普通比特币交易,因此你的钱包将需要一些 聪(比特币)。

为你的 ord 钱包创建一个新地址,运行:

ord wallet receive

向上面地址发送一些资金。

你可以使用以下命令看到交易情况:

ord wallet transactions

一旦交易确认,你应该可以使用 ord wallet outputs看到交易的输出;

创建铭文内容

聪上可以刻录任何类型的内容,但ord钱包只支持ord区块浏览器可以显示的内容类型。

另外,铭文是包含在交易中的,所以内容越大,铭文交易需要支付的费用就越高。

铭文内容包含在交易见证中,获得见证折扣。要计算写入交易将支付的大概费用,请将内容大小除以四,然后乘以费率。

铭文交易必须少于 400,000 个权重计量单位,否则不会被 Bitcoin Core 中继。一个字节的铭文内容需要一个权重计量单位。 由于铭文交易不只是铭文内容,铭文内容限制在400,000权重计量单位以内。390,000 个权重计量单位应该是安全的。

创建铭文

FILE的内容创建一个铭文,需要运行:

ord wallet inscribe --fee-rate FEE_RATE --file FILE

Ord会输出两个交易ID,一个是commit交易,一个是reveal交易,还有铭文ID。铭文 ID 的格式为TXIDiN,其中TXID 是揭示交易的交易 ID,N 是揭示交易中铭文的索引。

Commit交易提交到包含铭文内容的 tapscript,reveal交易则从该 tapscript 中花费,显示链上的内容并将它们铭刻在reveal交易的第一个输出的第一个 sat 上。

在等待reveal交易被记录的同时,你可以使用the mempool.space block explorer来检查交易的状态。

一旦reveal交易完成记账,你可以使用以下命令查询铭文ID:

ord wallet inscriptions

父-子铭文

父子铭文使得人们通常所说的收藏成为可能,有关更多信息,请参见provenance

要使一个铭文成为另一个铭文的子项,父铭文必须已经被铭刻并且存在于钱包中。要选择一个父铭文,请运行ord wallet inscriptions并复制铭文ID(<PARENT_INSCRIPTION_ID>)。

为父系铭文P创建一个子铭文C:

ord wallet inscribe --fee-rate FEE_RATE --parent <PARENT_INSCRIPTION_ID> --file CHILD_FILE

这种父子关系不能事后添加,父铭文必须在子铭文创建之初就存在。

发送铭文

铭文接收方使用一下命令生成地址

ord wallet receive

使用命令格式发送铭文:

ord wallet send --fee-rate <FEE_RATE> <ADDRESS> <INSCRIPTION_ID>

检查未完成交易情况:

ord wallet transactions

一旦交易确认,接收方可以使用一下命令查看接收到的铭文

ord wallet inscriptions

发送铭文

铭文接收方使用一下命令生成地址

ord wallet receive

使用命令格式发送铭文:

ord wallet send --fee-rate <FEE_RATE> <ADDRESS> <RUNES_AMOUNT>

RUNES_AMOUNT 是要发送的符文数量,一个 : 字符,和符文的名字。例如,如果你想发送1000个EXAMPLE符文,你应该使用1000:EXAMPLE

ord wallet send --fee-rate 1 SOME_ADDRESS 1000:EXAMPLE

检查未完成交易情况:

ord wallet transactions

一旦交易确认,接收方可以使用一下命令查看接收到的铭文

ord wallet balance

接收铭文

使用以下命令生成一个新的接收地址

ord wallet receive

发送方使用命令发送铭文到你的地址

ord wallet send --fee-rate <FEE_RATE> ADDRESS INSCRIPTION_ID

检查未完成交易情况:

ord wallet transactions

一旦交易确认,你可以使用以下命令确认收到

ord wallet inscriptions