项目简介
本项目是基于Go语言实现的分布式共识系统BYCON,运用PBFT算法,并借助Gorums RPC框架进行节点间通信,为分布式系统提供高可用性、高吞吐量的一致性解决方案。
项目的主要特性和功能
- 实现PBFT算法,这是分布式系统常用的拜占庭容错算法,可在网络分区和拜占庭故障下保证一致性与可用性。
- 采用Gorums轻量级RPC框架构建分布式系统,实现节点间通信。
- 支持视图变更和共识过程,能在故障发生时自动恢复并持续运行。
- 可处理客户端发送的命令,并广播到所有副本节点进行共识。
安装使用步骤
环境准备
确保已安装Go语言环境,下载并安装项目依赖的库和工具。如需安装protoc,可执行以下步骤:
下载protoc关于Go代码的生成器:go get google.golang.org/protobuf/cmd/protoc-gen-go
构建项目
在项目目录下使用make
命令构建项目,生成可执行文件。
配置设置
在工作目录创建配置文件bycon.toml
,按需设置节点信息、网络配置等。项目根目录包含一个可在本地运行的示例配置。若要为服务器生成公钥和私钥,运行cmd/hotstuffkeygen/hotstuffkeygen -p 'r*' -n 4 --hosts 127.0.0.1 --tls keys
。
启动服务器
使用scripts/run_servers.sh
脚本并按需添加选项,启动多个服务器实例。
启动客户端
运行cmd/pbftclient/pbftclient
命令启动客户端。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】