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 中
每月245次 下载
在 inscribe_helper 中使用
4MB
41K SLoC
ord
ord
是一个索引、区块浏览器和命令行钱包。这是一款实验性软件,没有任何保证。有关更多详细信息,请参阅 LICENSE。
序数理论赋予了萨托希收藏价值和交易价值,使其可以作为古董收集和交易。
序数是萨托希的序列号,按照挖掘顺序分配,并在交易中保留。
有关文档和指南,请参阅 文档。
有关分配和传输算法的技术描述,请参阅 BIP。
有关当前优先级问题,请参阅 项目板。
加入 Discord 服务器 与其他序数爱好者聊天。
捐赠
Ordinals 是开源的并由社区资助。当前 ord
的主要维护者是 raphjaph。Raph 对 ord
的工作完全由捐赠资助。如果您可以的话,请考虑捐赠!
捐赠地址是 bc1qguzk63exy7h5uygg8m2tcenca094a8t464jfyvrmr0s6wkt74wls3zr5m3。
这个地址是 2 个 4 个多重签名钱包中的 1 个,由 raphjaph、erin、rodarmor 和 ordinally 持有密钥。
收到的比特币将用于资助 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认证
ord
向 bitcoind
发起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 使用指南。
添加新的翻译有些复杂,所以请随意开始翻译并提交一个拉取请求,即使您的翻译是不完整的。
请参阅 此提交 以了解添加新翻译的示例。维护者将帮助您将其集成到我们的构建系统中。
要开始新的翻译
-
安装
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 上打开一个拉取请求。其他更改的文件应从拉取请求中省略。
依赖项
~65–100MB
~2M SLoC