钱包
单个 聪 可以刻有任意内容,创建可以保存在比特币钱包中并使用比特币交易传输的比特币原生数字人工制品。铭文与比特币本身一样持久、不变、安全和去中心化。
使用铭文需要一个比特币完整节点,让您了解比特币区块链的当前状态,以及一个可以创建铭文并在构建交易以将铭文发送到另一个钱包时执行 聪 控制的钱包。
Bitcoin Core 提供比特币全节点和钱包。 但是,Bitcoin Core 钱包不能创建铭文,不执行 聪 控制。
这需要ord
,序数实用程序。 ord
没有自己的钱包,因此 ord wallet
子命令与 Bitcoin Core 钱包交互。
本指南涵盖:
- 安装 Bitcoin Core
- 同步比特币区块链
- 创建 Bitcoin Core 钱包
- 使用
ord wallet receive
收取聪 - 使用
ord wallet inscribe
创建铭文 - 使用
ord wallet send
发送铭文 - 使用
ord wallet receive
收取铭文 - 使用
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一样对区块进行记述. ord
同bitcoind
进行交互, 所以你在使用ord
时候需要让bitcoind
在后台运行。
区块链占用约600GB的磁盘空间。如果你有一个外接硬盘来存储区块,可以使用配置选项blocksdir=<external_drive_path>
. 这比使用datadir
选项更简单, bitcoin-cli
和 ord
可以在默认的位置找到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": true
,ord
命令方可以使用.
如果你设置了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