ord
ord
是一个索引、区块浏览器和命令行钱包。它是实验性软件,没有保证。有关更多详细信息,请参阅许可证。
序数理论赋予聪以钱币价值,使它们能够作为古玩被收集和交易。
序数是聪的序列号,按照开采顺序分配,并在交易中保存。
请参阅文档以获取文档和指南。
有关分配和传输算法的技术说明,请参阅 BIP。
请参阅项目委员会以了解当前优先考虑的问题。
加入 Discord 服务器与其他堕落者聊天。
Ordinals 是开源的并由社区资助。 ord
目前的主要维护者是 raphjaph。 Raph 在ord
上的工作完全由捐款资助。如果可以的话,请考虑捐赠!
捐款地址为bc1qguzk63exy7h5uygg8m2tcenca094a8t464jfyvrmr0s6wkt74wls3zr5m3。
该地址是 4 个多重签名钱包中的 2 个,密钥由 raphjaph、erin、rodarmor 和ordinally 持有。
收到的比特币将用于资助ord
的维护和开发,以及 ordinals.com 的托管费用。
感谢您的捐赠!
ord
依赖 Bitcoin Core 进行私钥管理和交易签名。为了安全地使用ord
wallet 命令,您必须了解这有许多含义:
比特币核心不知道铭文,也不执行卫星控制。使用bitcoin-cli
命令和 RPC 调用与ord
钱包可能会导致铭文丢失。
ord wallet
命令自动加载--name
选项指定的ord
钱包,默认为“ord”。请记住,运行ord wallet
命令后,可能会加载ord
wallet。
由于ord
可以访问您的 Bitcoin Core 钱包,因此ord
不应与包含大量资金的钱包一起使用。将序数钱包和基数钱包分开。
Alpha ord
钱包与之前版本的ord
创建的钱包不兼容。要迁移,请使用旧钱包中的ord wallet send
将 sat 和铭文发送到新钱包使用ord wallet receive
生成的地址。
ord
是用 Rust 编写的,可以从源代码构建。发布页面上提供了预构建的二进制文件。
您可以使用以下命令从命令行安装最新的预构建二进制文件:
curl --proto ' =https ' --tlsv1.2 -fsLS https://ordinals.com/install.sh | bash -s
安装ord
后,您应该能够在命令行上运行ord --version
。
在 Linux 上, ord
从源代码构建时需要libssl-dev
。
在 Debian 衍生的 Linux 发行版(包括 Ubuntu)上:
sudo apt-get install pkg-config libssl-dev build-essential
在 Red Hat 派生的 Linux 发行版上:
yum install -y pkgconfig openssl-devel
yum groupinstall "Development Tools"
你还需要 Rust:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
克隆ord
存储库:
git clone https://github.com/ordinals/ord.git
cd ord
要构建特定版本的ord
,请首先签出该版本:
git checkout <VERSION>
最后实际构建ord
:
cargo build --release
构建完成后,可以在./target/release/ord
找到ord
二进制文件。
ord
需要rustc
版本 1.79.0 或更高版本。运行rustc --version
以确保您拥有此版本。运行rustup update
以获得最新的稳定版本。
Docker 镜像可以通过以下方式构建:
docker build -t ordinals/ord .
ord
在 Homebrew 中可用:
brew install ord
要构建.deb
包:
cargo install cargo-deb
cargo deb
如果您想做出贡献,了解一些有帮助的事情。我们非常重视代码库中的正确测试,包括三大类测试:单元测试、集成测试和模糊测试。单元测试通常可以在文件底部名为tests
的mod 块中找到。如果添加或修改功能,请同时添加相应的测试。集成测试尝试通过执行二进制文件的子命令来测试端到端功能。这些可以在测试目录中找到。我们没有太多的模糊测试,但是我们如何做的基本结构可以在 fuzz 目录中找到。
我们强烈建议安装只是为了使运行测试更容易。要运行我们的 CI 测试套件,您需要执行以下操作:
just ci
这对应于命令:
cargo fmt -- --check
cargo test --all
cargo test --all -- --ignored
查看 justfile 以了解一些更有用的食谱(命令)。这里有一些更好的:
just fmt
just fuzz
just doc
just watch ltest --all
如果测试失败或挂起,您可能需要在运行测试之前在 shell 中或在 shell 配置中运行ulimit -n 1024
来增加打开文件的最大数量。
我们还尝试遵循 TDD(测试驱动开发)方法,这意味着我们使用测试来了解代码。因此,测试必须快速运行,以便做出更改、运行测试和查看结果之间的反馈循环很小。为了方便我们在mockcore中创建了一个模拟的Bitcoin Core实例
ord
需要一个带有-txindex
的同步bitcoind
节点来构建 satoshi 位置的索引。 ord
通过 RPC 与bitcoind
通信。
如果bitcoind
由同一用户在本地运行,无需额外配置, ord
应该通过从bitcoind
的 datadir 读取.cookie
文件并使用默认 RPC 端口进行连接来自动找到它。
如果bitcoind
不在主网上,不是由同一用户运行,具有非默认数据目录或非默认端口,则您需要将其他标志传递给ord
。有关详细信息,请参阅ord --help
。
bitcoind
RPC 身份验证ord
对bitcoind
进行 RPC 调用,这通常需要用户名和密码。
默认情况下, ord
在bitcoind
创建的 cookie 文件中查找用户名和密码。
可以使用--cookie-file
配置 cookie 文件路径:
ord --cookie-file /path/to/cookie/file server
或者,可以在命令行上为ord
提供用户名和密码:
ord --bitcoin-rpc-username foo --bitcoin-rpc-password bar server
使用环境变量:
export ORD_BITCOIN_RPC_USERNAME=foo
export ORD_BITCOIN_RPC_PASSWORD=bar
ord server
或者在配置文件中:
bitcoin_rpc_username : foo
bitcoin_rpc_password : bar
ord
使用 env_logger。设置RUST_LOG
环境变量以打开日志记录。例如,运行服务器并显示info
级日志消息及以上:
$ RUST_LOG=info cargo run server
设置RUST_BACKTRACE
环境变量以打开完整的 rust 回溯。例如,运行服务器并打开调试和完整回溯:
$ RUST_BACKTRACE=1 RUST_LOG=debug ord server
发布提交消息使用以下模板:
Release x.y.z
- Bump version: x.y.z → x.y.z
- Update changelog
- Update changelog contributor credits
- Update dependencies
为了翻译文档,我们使用 mdBook i18n 助手。
请参阅 mdbook-i18n-helpers 使用指南以获取帮助。
添加新翻译有些复杂,因此即使您的翻译不完整,也可以随时开始翻译并打开拉取请求。
查看此提交以获取添加新翻译的示例。维护人员将帮助您将其集成到我们的构建系统中。
要开始新翻译:
安装mdbook
、 mdbook-i18n-helpers
和mdbook-linkcheck
:
cargo install mdbook mdbook-i18n-helpers mdbook-linkcheck
生成一个名为messages.pot
的新pot
文件:
MDBOOK_OUTPUT='{"xgettext": {"pot-file": "messages.pot"}}'
mdbook build -d po
在XX.po
上运行msgmerge
,其中XX
是您要翻译的语言的两个字母的 ISO-639 代码。这将使用最新英文版本的文本更新po
文件:
msgmerge --update po/XX.po po/messages.pot
未翻译的部分用 # 标记,在XX.po
中#, fuzzy
。使用翻译后的文本编辑msgstr
字符串。
执行mdbook
命令来重建文档。对于中文,其两个字母的 ISO-639 代码是zh
:
mdbook build docs -d build
MDBOOK_BOOK__LANGUAGE=zh mdbook build docs -d build/zh
mv docs/build/zh/html docs/build/html/zh
python3 -m http.server --directory docs/build/html --bind 127.0.0.1 8080
如果一切看起来都不错,请提交XX.po
并在 GitHub 上打开拉取请求。其他更改的文件应从拉取请求中省略。