skalenetwork/skale-consensus
GitHub: skalenetwork/skale-consensus
一个用C++编写的高性能区块链共识引擎,基于异步拜占庭容错协议实现万级TPS和单块最终性。
Stars: 83 | Forks: 34
# SKALE Consensus:C++ 区块链共识引擎
[](https://discord.gg/vvUtWJB)

**SKALE Consensus** 是一个用 C++ 编写的超高性能区块链共识引擎。
## SKALE Consensus 的主要特性
- **超过 10,000 TPS**
- **拜占庭容错 (Byzantine fault tolerant)** —— 无区块间隙,即使多达 1/3 的节点离线也能保持性能稳定
- **可证明安全**
- **无分叉**
- **单块最终性** —— 区块在提交后立即最终确认
- **通过异步网络模型,能够抵御任意长度的网络中断和延迟**
- **每个区块拥有多个区块提议者** —— 即使部分提议者离线也能确保协议稳定性
- **防御 MEV 和抢跑交易** —— 可证明抵抗操纵
阅读规范以了解更多激动人心的特性 [https://docs.skale.network/technology/consensus-spec ](https://github.com/skalenetwork/skale-consensus/blob/develop/docs/consensus-spec.md)
查看实时共识可视化 https://www.youtube.com/watch?v=0NGCSRjjPkk
## 从源代码构建
首选的构建和执行环境是 **Ubuntu 22.04**。
更高版本的 Ubuntu 可能可以工作,但未经过官方测试。
### 1. 安装软件包
```
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt update
sudo apt install -yq libprocps-dev gcc-11 g++-11 valgrind gawk sed libffi-dev ccache \
libgoogle-perftools-dev yasm texinfo autotools-dev automake \
python3 python3-pip cmake libtool build-essential pkg-config autoconf wget \
git libargtable2-dev libmicrohttpd-dev libhiredis-dev redis-server openssl \
libssl-dev doxygen libgcrypt20-dev
```
### 2. 克隆仓库
```
git clone --recurse-submodules https://github.com/skalenetwork/skale-consensus.git
```
### 3. 在 Debug 模式下构建依赖项
```
cd skale-consensus/deps && ./build.sh DEBUG=1
```
### 4. 在 Debug 模式下配置 CMake 构建。
```
cd .. && cmake . -Bbuild -DCMAKE_BUILD_TYPE=Debug
```
### 5. 使用所有可用 CPU 代码构建所有目标
```
cmake --build build -- -j$(nproc)
```
## 测试
SKALE Consensus 包含全面的测试套件,涵盖单元测试、集成测试和端到端场景。
### 快速测试运行
构建完成后,您可以运行一个基本测试:
```
cd test/onenode
sudo NO_ULIMIT_CHECK=1 TEST_TIME_S=60 TEST_TRANSACTIONS_PER_BLOCK=10 ../../build/consensust [consensus-basic]
```
### 运行特定测试
测试采用多维标签系统进行组织:
```
# 运行仅测试正确性的 RLP 单元测试(忽略安全性和性能测试)
./build/consensust [rlp][unit][correctness]
# 运行所有 crypto 测试
./build/consensust [crypto]
# 运行性能测试
./build/consensust [performance]
```
### 多节点测试
有关更详细的测试场景,包括带有 SGX 模拟的 4 节点和 16 节点测试,请参阅我们详尽的 **[测试指南](TESTING.md)**。
该测试指南涵盖:
- 详细的测试组织和标签
- 使用 Docker 进行 SGX 模拟设置
- 性能测试流程
## 贡献
**如果您有任何疑问,请在 [Discord](https://discord.gg/vvUtWJB) 上询问我们的开发社区。**
[](https://discord.gg/vvUtWJB)
## 许可证
[](LICENSE)
版权所有 (C) 2018-present SKALE Labs
标签:ABBA, Bash脚本, BFT, BLS签名, C++, Cmake, EVM兼容, Layer 1, skale-consensus, SKALE网络, Web3基础设施, 共识引擎, 分布式系统, 加密算法, 区块链共识, 区块链开发, 单块确定性, 去中心化, 响应大小分析, 异步二进制拜占庭协议, 抗MEV, 拜占庭容错, 数据擦除, 无分叉, 阈值加密, 高TPS