2 个版本
0.0.1 | 2022 年 10 月 3 日 |
---|---|
0.0.0 | 2022 年 9 月 27 日 |
#42 in #ord
12KB
333 行
ord
ord
是一个索引、区块浏览器和命令行钱包。这是一个没有保证的实验性软件。有关详细信息,请参阅 LICENSE。
序数理论赋予萨托什(Satoshis)货币价值,允许它们作为古董收藏和交易。
序数是萨托什的序列号,按照挖掘的顺序分配,并在交易中保持不变。
有关文档和指南,请参阅 文档。
有关分配和转移算法的详细技术描述,请参阅 BIP。
有关当前优先事项的问题,请参阅 项目板。
加入 Discord 服务器 与其他序数爱好者聊天。
捐赠
序数是开源并由社区资助的。当前 ord
的主要维护者是 raphjaph。Raph 在 ord
上的工作完全由捐赠资助。如果您可以的话,请考虑捐赠!
捐赠地址是 bc1qguzk63exy7h5uygg8m2tcenca094a8t464jfyvrmr0s6wkt74wls3zr5m3。
此地址是 2 个 4 个多重签名钱包中的 2 个,由 raphjaph、erin、rodarmor 和 ordinally 持有密钥。
接收到的比特币将用于资助 ord
的维护和开发,以及 ordinals.com 的托管费用。
感谢您的捐赠!
钱包
ord
依赖于 Bitcoin Core 进行私钥管理和交易签名。您必须理解这些影响,才能安全地使用 ord
钱包命令。
-
Bitcoin Core 不了解铭文,也不执行萨托什控制。使用
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
构建完成后,可以在 ./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
贡献
如果您想贡献,这里有一些有用的信息。我们在代码库中非常重视正确的测试,有三个广泛的测试类别:单元、集成和模糊。单元测试通常可以在文件的 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
需要与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
新版本
发布提交消息使用以下模板
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
-
未翻译的部分在
#, 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上打开一个pull request。其他更改的文件应从pull request中省略。
依赖项
~19–30MB
~431K SLoC