5 个版本
0.1.4 | 2024 年 8 月 2 日 |
---|---|
0.1.3 | 2024 年 7 月 29 日 |
0.1.2 | 2024 年 7 月 29 日 |
0.1.1 | 2024 年 7 月 25 日 |
0.1.0 | 2024 年 7 月 25 日 |
#369 在 魔法豆
每月 619 次下载
1.5MB
19K SLoC
bitomc
bitomc
是一个索引和命令行钱包。它是一个无保修的实验性软件。有关详细信息,请参阅 LICENSE。
BitOMC 是比特币上的一个实验性元协议,它定义了名为“util”的动态子单位,可以适应不断变化的经济条件。目标是定义一个值得信赖的中立计价单位,为比特币经济提供价格稳定。
该计价单位由开放市场通过利率控制,该利率由两种可相互转换的资产的数量决定,即“收紧”和“放松”。用户根据恒定函数转换规则在它们之间进行转换,确保相对数量反映相对价格。“收紧”和“放松”随着时间的推移稳定发行,每四年减半一次。
请参阅 白皮书 了解协议的技术描述。
请参阅 文档 了解文档和指南。
加入 Telegram 群组 与 BitOMC 用户交流。
钱包
bitomc
依赖于 Bitcoin Core 进行私钥管理和交易签名。您必须理解这些影响,才能安全地使用 bitomc
钱包命令。
-
Bitcoin Core 不了解“收紧”和“放松”符文,并且不执行 sat 控制。使用
bitcoin-cli
命令和 RPC 调用与bitomc
钱包一起可能导致符文丢失。 -
bitomc 钱包
命令会自动加载由--name
选项指定的bitomc
钱包,默认为'bitomc'。请注意,运行bitomc 钱包
命令后,可能会加载一个bitomc
钱包。 -
由于
bitomc
可以访问您的Bitcoin Core钱包,因此不建议将其与包含大量资金的钱包一起使用。请将runic和cardinal钱包分开。
安装
bitomc
是用Rust编写的,可以从源代码构建。预构建的二进制文件可在发行页面找到。
您可以使用以下命令从命令行安装最新的预构建二进制文件:
curl --proto '=https' --tlsv1.2 -fsLS https://bitomc.org/install.sh | bash -s
安装bitomc
后,您应该在命令行上能够运行bitomc --version
。
构建
在Linux上,从源代码构建bitomc
时需要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
克隆bitomc
仓库
git clone https://github.com/BitOMC/BitOMC.git
cd bitomc
要构建bitomc
的特定版本,首先检出该版本
git checkout <VERSION>
最后,实际构建bitomc
cargo build --release
构建完成后,可以在./target/release/bitomc
找到bitomc
二进制文件。
bitomc
需要rustc
版本1.76.0或更高版本。运行rustc --version
以确保您有此版本。运行rustup update
以获取最新的稳定版本。
Docker
可以使用以下命令构建Docker镜像
docker build -t BitOMC/BitOMC .
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
以增加打开文件的最大数量,或者在您的shell配置中。
我们还尝试遵循TDD(测试驱动开发)方法,这意味着我们使用测试来了解代码。由于测试需要快速运行,因此更改、运行测试和查看结果之间的反馈循环很小。为了便于实现,我们在test-bitcoincore-rpc中创建了一个模拟的比特币核心实例。
同步
bitomc
需要同步的bitcoind
节点。bitomc
通过RPC与bitcoind
通信。
如果bitcoind
由同一用户在本地运行,并且没有额外配置,bitomc
应通过从bitcoind
的datadir中读取.cookie
文件来自动找到它,并使用默认的RPC端口进行连接。
如果bitcoind
不在主网上,不是由同一用户运行,具有非默认的datadir或非默认的端口,则需要向bitomc
传递额外的标志。有关详细信息,请参阅bitomc --help
。
bitcoind
RPC认证
bitomc
对bitcoind
进行RPC调用,这通常需要一个用户名和密码。
默认情况下,bitomc
在由bitcoind
创建的cookie文件中查找用户名和密码。
cookie文件路径可以使用--cookie-file
进行配置
bitomc --cookie-file /path/to/cookie/file server
或者,可以在命令行上向bitomc
提供用户名和密码
bitomc --bitcoin-rpc-username foo --bitcoin-rpc-password bar server
使用环境变量
export BITOMC_BITCOIN_RPC_USERNAME=foo
export BITOMC_BITCOIN_RPC_PASSWORD=bar
bitomc server
或在配置文件中
bitcoin_rpc_username: foo
bitcoin_rpc_password: bar
日志记录
bitomc
使用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
依赖项
~66–100MB
~2M SLoC