50 个版本 (19 个破坏性版本)

0.19.1 2024年7月18日
0.18.5 2024年5月9日
0.17.0 2024年3月31日
0.13.1 2023年12月16日
0.0.0 2022年1月18日

#7#transactions

Download history 87/week @ 2024-04-21 195/week @ 2024-04-28 162/week @ 2024-05-05 19/week @ 2024-05-12 26/week @ 2024-05-19 14/week @ 2024-05-26 8/week @ 2024-06-02 7/week @ 2024-06-09 1/week @ 2024-06-16 118/week @ 2024-06-23 126/week @ 2024-06-30 280/week @ 2024-07-07 146/week @ 2024-07-14 27/week @ 2024-07-21 63/week @ 2024-07-28 5/week @ 2024-08-04

每月245次 下载
inscribe_helper 中使用

CC0 许可证

4MB
41K SLoC

ord

ord 是一个索引、区块浏览器和命令行钱包。这是一款实验性软件,没有任何保证。有关更多详细信息,请参阅 LICENSE

序数理论赋予了萨托希收藏价值和交易价值,使其可以作为古董收集和交易。

序数是萨托希的序列号,按照挖掘顺序分配,并在交易中保留。

有关文档和指南,请参阅 文档

有关分配和传输算法的技术描述,请参阅 BIP

有关当前优先级问题,请参阅 项目板

加入 Discord 服务器 与其他序数爱好者聊天。

捐赠

Ordinals 是开源的并由社区资助。当前 ord 的主要维护者是 raphjaph。Raph 对 ord 的工作完全由捐赠资助。如果您可以的话,请考虑捐赠!

捐赠地址是 bc1qguzk63exy7h5uygg8m2tcenca094a8t464jfyvrmr0s6wkt74wls3zr5m3

这个地址是 2 个 4 个多重签名钱包中的 1 个,由 raphjapherinrodarmorordinally 持有密钥。

收到的比特币将用于资助 ord 的维护和开发,以及 ordinals.com 的托管费用。

感谢您的捐赠!

钱包

ord 依赖于 Bitcoin Core 进行私钥管理和交易签名。您必须了解这些影响,才能安全地使用 ord 钱包命令。

  • 比特币核心不认识铭文,也不执行SAT控制。使用bitcoin-cli命令和带有ord钱包的RPC调用可能会导致铭文丢失。

  • ord钱包命令会自动加载由--name选项指定的ord钱包,默认为'ord'。请注意,运行ord钱包命令后,可能会加载ord钱包。

  • 因为ord可以访问您的比特币核心钱包,所以不应使用包含大量资金的钱包与ord一起使用。请将序数钱包和基数钱包分开。

预alpha钱包迁移

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.76.0或更高版本。运行rustc --version以确保您有这个版本。运行rustup update以获取最新的稳定版本。

Docker

可以使用以下命令构建Docker镜像

docker build -t ordinals/ord .

Homebrew

ord可在Homebrew中找到

brew install ord

Debian软件包

要构建.deb软件包

cargo install cargo-deb
cargo deb

贡献

如果您想贡献,有一些事情是很有帮助的。我们在代码库中非常重视适当的测试,分为三个广泛的类别:单元、集成和模糊。单元测试通常位于文件底部一个名为tests的mod块中。如果您添加或修改了函数,也请添加相应的测试。集成测试试图通过执行二进制的一个子命令来测试端到端的功能。这些可以在tests目录中找到。我们没有太多的模糊测试,但我们如何做的基本结构可以在fuzz目录中找到。

我们强烈推荐安装 just 以简化测试运行过程。要运行我们的持续集成测试套件,您将执行以下操作

just ci

这对应于以下命令

cargo fmt -- --check
cargo test --all
cargo test --all -- --ignored

请查看 justfile 以了解更多有用的指令。以下是一些额外的示例

just fmt
just fuzz
just doc
just watch ltest --all

如果测试失败或卡住,您可能需要在运行测试之前或配置您的shell时运行以下命令以增加打开文件的最大数量:ulimit -n 1024

我们还尝试遵循TDD(测试驱动开发)方法,这意味着我们使用测试来了解代码。由于这个原因,测试必须运行得很快,以便在修改、运行测试和看到结果之间的反馈循环很小。为了实现这一点,我们在 mockcore 中创建了一个模拟的比特币核心实例

同步

ord 需要一个与 bitcoind 节点同步的带有 -txindex 的节点来构建Satoshi位置的索引。 ord 通过RPC与 bitcoind 通信。

如果 bitcoind 由同一用户在本地上运行,没有额外的配置,那么 ord 应该能够通过从 bitcoind 的 datadir 中读取 .cookie 文件来自动找到它,并使用默认的RPC端口进行连接。

如果 bitcoind 不在主网上,不是由同一用户运行,具有非默认的datadir或非默认的端口,那么您需要向 ord 传递额外的标志。有关详细信息,请参阅 ord --help

bitcoind RPC认证

ordbitcoind 发起RPC调用,这通常需要用户名和密码。

默认情况下,ord 会从由 bitcoind 创建的cookie文件中查找用户名和密码。

cookie文件路径可以使用 --cookie-file 进行配置

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 helper

有关帮助,请参阅 mdbook-i18n-helpers 使用指南

添加新的翻译有些复杂,所以请随意开始翻译并提交一个拉取请求,即使您的翻译是不完整的。

请参阅 此提交 以了解添加新翻译的示例。维护者将帮助您将其集成到我们的构建系统中。

要开始新的翻译

  1. 安装 mdbookmdbook-i18n-helpersmdbook-linkcheck

    cargo install mdbook mdbook-i18n-helpers mdbook-linkcheck
    
  2. 生成一个名为 messages.pot 的新 pot 文件。

    MDBOOK_OUTPUT='{"xgettext": {"pot-file": "messages.pot"}}'
    mdbook build -d po
    
  3. XX.po 上运行 msgmerge,其中 XX 是您要翻译成的语言的两位字母 ISO-639 代码。这将使用最新英文版本的文本更新 po 文件。

    msgmerge --update po/XX.po po/messages.pot
    
  4. 未翻译的部分在 XX.po 中用 #, fuzzy 标记。用翻译后的文本编辑 msgstr 字符串。

  5. 执行 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
    
  6. 如果一切看起来都很好,提交 XX.po 并在 GitHub 上打开一个拉取请求。其他更改的文件应从拉取请求中省略。

依赖项

~65–100MB
~2M SLoC