10个版本
| 0.0.9 | 2024年7月9日 |
|---|---|
| 0.0.8 | 2024年4月17日 |
| 0.0.5 | 2024年3月31日 |
| 0.0.3 | 2024年2月28日 |
| 0.0.0 | 2023年1月16日 |
#1 在 #inscription
796 每月下载量
用于 4 crates
135KB
5K SLoC
ord
ord 是一个索引,区块浏览器和命令行钱包。这是一个实验性软件,不提供任何保证。有关更多详细信息,请参阅 LICENSE。
序数理论为satoshis赋予了货币价值,允许它们作为收藏品进行收集和交易。
序数是satoshis的序列号,按其挖掘的顺序分配,并在交易中保留。
有关文档和指南,请参阅 文档。
有关分配和传输算法的技术描述,请参阅 BIP。
有关当前优先级问题,请参阅 项目板。
加入 Discord服务器 与其他序数爱好者聊天。
捐赠
Ordinals 是开源并由社区资助的。当前 ord 的主要维护者是 raphjaph。Raph 对 ord 的工作完全由捐赠资助。如果您能的话,请考虑捐赠!
捐赠地址是 bc1qguzk63exy7h5uygg8m2tcenca094a8t464jfyvrmr0s6wkt74wls3zr5m3。
此地址是2个4多重签名钱包之一,由 raphjaph、erin、rodarmor 和 ordinally 持有密钥。
接收到的比特币将用于资助 ord 的维护和开发,以及 ordinals.com 的托管费用。
感谢您的捐赠!
钱包
ord 依赖于 Bitcoin Core 进行私钥管理和交易签名。这带来了一系列你必须理解才能安全使用 ord 钱包命令的后果。
-
Bitcoin Core 不了解铭文并且不执行 sat 控制。使用
bitcoin-cli命令和 RPC 调用与ord钱包可能会导致铭文丢失。 -
ord 钱包命令会自动加载通过--name选项给出的ord钱包,默认为 'ord'。请注意,运行ord 钱包命令后,可能会加载ord钱包。 -
由于
ord可以访问你的 Bitcoin Core 钱包,因此不应该使用包含大量资金的钱包。请将序数和基数钱包分开。
预 alpha 钱包迁移
Alpha ord 钱包与之前版本的 ord 创建的钱包不兼容。要迁移,请使用旧钱包的 ord 钱包 send 将 sats 和铭文发送到由新钱包的 ord 钱包 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
构建完成后,ord 二进制文件可以在 ./target/release/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 来简化测试的运行。要运行我们的 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 中运行 ulimit -n 1024 来增加最大打开文件数,或在您的 shell 配置中。
我们还尝试遵循 TDD(测试驱动开发)的方法,这意味着我们使用测试来了解代码。由于这个原因,测试必须运行得快,以便在做出更改、运行测试和看到结果之间的反馈循环尽可能小。为了方便起见,我们在 mockcore 中创建了一个模拟的比特币核心实例
同步
ord 需要一个同步的具有 -txindex 的 bitcoind 节点来构建比特币位置索引。 ord 通过 RPC 与 bitcoind 通信。
如果 bitcoind 由同一用户在本地运行,并且没有额外的配置,ord 应该通过从 bitcoind 的 datadir 读取 .cookie 文件并使用默认 RPC 端口连接来自动找到它。
如果 bitcoind 不在主网,不是由同一用户运行,具有非默认的 datadir 或非默认的端口,则需要向 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 helper。
有关帮助,请参阅 mdbook-i18n-helpers 使用说明。
添加新的翻译有些复杂,因此请随时开始翻译并提交一个 pull request,即使您的翻译不完整。
查看 这个提交 以了解添加新翻译的示例。维护者将帮助您将其集成到我们的构建系统中。
要开始新的翻译
-
安装
mdbook、mdbook-i18n-helpers和mdbook-linkcheckcargo 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 代码为zhmdbook 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 上打开一个 pull request。其他更改的文件应从 pull request 中排除。
lib.rs:
用于与序数、铭文和符文交互的类型。
依赖项
~8.5MB
~120K SLoC