13 个版本
0.18.3 |
|
---|---|
0.1.12 | 2024 年 7 月 6 日 |
0.1.10 | 2024 年 5 月 4 日 |
0.1.2 | 2024 年 4 月 30 日 |
#1678 in 魔法豆
4MB
35K SLoC
ord
ord
是一个索引、区块浏览器和命令行钱包。它是一个没有保证的实验性软件。有关更多详细信息,请参阅 LICENSE。
序数理论赋予了 satoshis 钱币价值,使其可以像古董一样收集和交易。
序数是 satoshis 的序列号,按照挖掘的顺序分配,并在交易中保持不变。
有关文档和指南,请参阅 文档。
有关分配和转移算法的技术描述,请参阅 BIP。
有关当前优先问题,请参阅 项目板。
加入 Discord 服务器 与其他序数爱好者聊天。
捐赠
Ordinals 是开源并由社区资助的。当前 ord
的主要维护者是 raphjaph。Raph 在 ord
上的工作完全由捐赠资助。如果您可以的话,请考虑捐赠!
捐赠地址是 bc1qguzk63exy7h5uygg8m2tcenca094a8t464jfyvrmr0s6wkt74wls3zr5m3。
这个地址是 4 个多签钱包中的 2 个,由 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 钱包,因此不应将ord
与包含大量资金的钱包一起使用。请将序数和基数钱包分开。
预 alpha 钱包迁移
Alpha ord
钱包与 ord
旧版本创建的钱包不兼容。要迁移,请使用旧钱包中的 ord 钱包发送
,将 sats 和铭文发送到新钱包生成的地址,使用 ord 钱包接收
。
安装
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
需要 1.76.0 或更高版本的 rustc
。运行 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
贡献
如果您希望贡献,有一些事情可能会有所帮助。我们在代码库中非常重视适当的测试,分为三个广泛的类别:单元、集成和模糊。单元测试通常可以在文件底部的 mod 块中的 tests
块中找到。如果您添加或修改了函数,请也添加相应的测试。集成测试尝试通过执行二进制文件的子命令来测试端到端功能。那些可以在 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
来增加最大打开文件数。
我们还尝试遵循TDD(测试驱动开发)的方法,这意味着我们使用测试来了解代码。由于这个原因,测试必须快速运行,以便在做出更改、运行测试和查看结果之间的反馈循环很小。为了实现这一点,我们在test-bitcoincore-rpc中创建了一个模拟的比特币核心实例。
同步
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
新版本
发布提交信息使用以下模板
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-linkcheck
cargo install mdbook mdbook-i18n-helpers mdbook-linkcheck
-
生成一个名为
messages.pot
的新pot
文件MDBOOK_OUTPUT='{"xgettext": {"pot-file": "messages.pot"}}' mdbook build -d po
-
在
msgmerge
上运行XX.po
,其中XX
是你要翻译成语言的两位字母 ISO-639 代码。这将使用最新英文版本的文本更新po
文件。msgmerge --update po/XX.po po/messages.pot
-
未翻译的部分在
#, fuzzy
中标记,位于XX.po
。用翻译后的文本编辑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 上打开一个拉取请求。其他更改的文件应从拉取请求中排除。
依赖项
~65–100MB
~2M SLoC