2 个稳定版本
1.0.1 | 2024年3月8日 |
---|---|
1.0.0 | 2024年1月9日 |
#2252 在 魔法豆
每月下载量 41
535KB
12K SLoC
什么是cruzbit?
cruzbit 是一个简单的去中心化点对点账本实现。cruzbit 与 Bitcoin 非常相似,但有以下显著差异
- 更新的加密 - 使用 Ed25519签名系统 对交易进行签名。该系统具有许多优点,可以保护用户免受ECDSA简单使用中存在的安全风险。应用中所有哈希操作(包括工作量证明函数,但不包括签名系统内部执行的哈希操作)都使用256位版本的 SHA-3哈希算法。据报道,当在硬件上实现时,它非常 快速。使用 NaCl Secretbox 对钱包私钥进行加密(不属于协议的一部分。)
- 简化的交易格式 - 没有输入和输出。只有公钥发送者和接收者、时间、金额、显式费用、备忘录字段、伪随机nonce、序列号和签名。序列号大约每周增加一次,基于块高,以允许修剪交易历史。还包括两个可选字段,用于指定成熟度和到期时间,均为特定块高。
- 没有UTXO集 - 这是第二个点的结果。这大大简化了账本的建设和管理,并要求钱包只知道其公钥余额和当前区块高度。它还允许账本更直接地映射到已充分理解的复式簿记系统的概念。在cruzbit中,所有公钥余额的总和必须等于当前区块高度的发行量。这并不是第一个摒弃UTXO集模型账本的,但我认为我们以一种独特而简单的方式进行。
- 没有脚本 - 这是第二个点的另一个结果。签名仅仅是签名,而不是微小的脚本。这要简单一些,也许更安全。但它确实限制了功能,例如,没有原生的多签名交易概念,然而,根据您的需求,您可以使用cruzbit之外的机制来接近实现这一点。
- 没有固定的区块大小限制 - 由于cruzbit中的交易大小大致固定,因此我们通过交易数量来限制区块大小,初始限制为10,000笔交易。这个区块交易限制通过“二倍增长之间的线性增长”增加。这意味着限制大约每两年通过区块高度加倍,并在加倍之间线性增加,直到硬限制2,147,483,647。这直接受到了BIP 101的启发。我们使用区块高度而不是时间,因为cruzbit的另一个变化是所有区块头都包含高度(以及总累积链工作量。)
- 参考实现是用Go编写的 - 可能比C++更容易访问。希望这使区块链编程更容易理解,并吸引更广泛的开发者兴趣。
- 友好的Web对等协议 - 对等通信通过安全的WebSockets进行。对等协议和所有原始数据都是用JSON结构化的。这应该使几乎每个现代开发环境都能轻松地与该协议一起工作。
开始挖矿
如果您错过了挖掘其他加密货币的机会,您可以尝试cruzbit!
1. 需要安装Rust
-
MacOS / Linux(从 https://rust-lang.net.cn/learn/get-started)
curl --proto '=https' --tlsv1.2 -sSfhttps://sh.rustup.rs | sh
-
Windows
2. 需要安装cmake
-
macOS
brewinstall cmake
-
Debian Linux
apt install cmake
-
Windows
winget install Kitware.CMake
3. 运行客户端
注意:需要--release标志进行编译器优化
挖矿
与比特币类似,您挖掘的任何区块都需要在应用新的cruzbit到您的余额之前,在其上再挖掘100个区块。这是为了减轻在诚实区块链重组情况下的潜在不良用户体验。
使用多个密钥挖矿
cargorun --release ----datadir datadir --numminers 1 --keyfile keys.txt
您可以使用钱包生成多个密钥,并将公钥导出到一个文本文件,客户端将其接受为--keyfile
参数。执行此操作的命令是genkeys
和dumpkeys
。
使用单个密钥挖矿
cargorun --release ----datadir datadir --numminers 1 --pubkey[钱包中的公钥]
使用OpenCL进行GPU挖矿
cargorun --release --功能opencl ----datadir datadir --numminers 1 --keyfile keys.txt
使用Cuda进行GPU挖矿
cargorun --release --功能cuda ----datadir clientdata --numminers 1 --keyfile keys.txt
不感兴趣挖矿,但想玩cruzbit?
没问题!您可以用--numminers 0
运行客户端,使其作为您的钱包节点。
cargorun --release ----datadir datadir --numminers 0
4. 运行钱包
cargorun --release --binwallet ----walletdb walletdata
与golang cruzbit的数据库兼容性
- 客户端数据库数据不兼容
- 钱包数据库数据兼容
许可证
cruzbit遵循MIT许可证发布。更多信息请见LICENSE或访问https://opensource.org/licenses/MIT。
加入我们的Discord
Cruzbit Discord进行一般聊天以及更新,包括开发状态。
依赖关系
~29–44MB
~766K SLoC