canopy-network/canopy
GitHub: canopy-network/canopy
Canopy 是一个基于 Go 语言的区块链协议实现,通过递归架构让新链借助已有链完成去中心化冷启动。
Stars: 2333 | Forks: 7252
_Canopy Network Protocol 的官方 Golang 实现_
[](https://godoc.org/github.com/copy-network/canopy)
[](https://canopynetwork.org)
[](https://golang.org)
[](https://nextjs.org/)
# 概述
[](https://opensource.org/licenses/MIT)
[](https://docs.docker.com/compose/)
[](https://github.com/canopy-network/canopy/releases)
[](https://docs.docker.com/compose/)
### ⫸ **欢迎来到为新链提供点对点启动平台的网络**
基于递归架构构建,链之间相互引导至独立状态 ——
形成一个 `不可阻挡` 的实用与安全网络。
**在这里您会发现:**
➪ 一个用于构建区块链的递归框架。
➪ 开启递归循环的种子链。
欲了解更多关于 Canopy Network Protocol 的信息,请访问 [https://canopynetwork.org](https://canopynetwork.org)
## 网络状态
⪢ Canopy 目前处于 `Betanet` 阶段 🚀 ➝ 了解更多关于 [主网之路](https://www.canopynetwork.org/learn-more/road-to-mainnet) 的信息
## 协议文档
➪ 查看 Canopy Network wiki: [https://canopy-network.gitbook.io/docs](https://canopy-network.gitbook.io/docs)
## 仓库文档
欢迎来到 Canopy Network 的参考实现。通过阅读核心模块可以很好地理解这个仓库:
- [Controller](controller/README.md):协调 Canopy blockchain 所有主要部分之间的通信,就像连接系统的中心枢纽或“总线”。
- [有限状态机 (FSM)](fsm/README.md):定义交易如何改变区块链状态的逻辑 —— 它决定什么是有效的,以及如何从一个块到下一个块发生状态转换。
- [拜占庭容错 (BFT) 共识](bft/README.md):一种共识机制,即使某些节点不可靠或恶意,也允许网络就新块达成一致。
- [点对点 (P2P) 网络](p2p/README.md):一种安全且加密的通信系统,允许节点直接相互通信而无需中央服务器。
- [持久化](store/README.md):管理区块链的存储 —— 它保存当前状态(账本),索引过去的交易,并确保快速可靠的数据验证。
## 如何运行
➪ 要运行 Canopy 二进制文件,请使用以下命令:
```
make build/canopy-full
canopy start
```
## 如何使用 🐳 Docker 运行
➪ 要在 *容器化* 环境中运行 Canopy `Localnet`,请使用以下命令:
```
make docker/build
make docker/up-fast
make docker/logs
or simply
make docker/up && make docker/logs
```
## 运行测试
➪ 要运行 Canopy 单元测试,请使用 Go 测试工具:
```
make test
```
## 如何贡献
➪ Canopy 是一个开源项目,我们欢迎社区的贡献。以下是参与方式:
1. **Fork** 仓库并在本地克隆它。
2. **编写** 您的改进或修复代码。
3. **提交 Pull Request** (PR) 以供审查。
➣ 请遵循这些 [指南](CONTRIBUTING.md) 以保持高质量的贡献:
### 高影响或架构变更
➪ 在进行重大更改之前,请在 [Discord](https://discord.gg/pNcSJj7Wdh) 上与 Canopy 团队讨论以确保一致。
### 编码风格
- 代码必须遵守官方 Go 格式(使用 [`gofmt`](https://golang.org/cmd/gofmt))。
- (可选)使用 [EditorConfig](https://editorconfig.org) 以保持格式一致。
- 所有代码应遵循 Go 文档/注释指南。
- PR 应针对 `development` 分支提交。
[](https://github.com/canopy-network/canopy/releases)
[](https://goreportcard.com/report/github.com/canopy-network/canopy)
[](https://github.com/canopy-network/canopy/pulse)
[](https://github.com/canopy-network/canopy/pulse)
## 联系方式
[](https://x.com/CNPYNetwork)
[](https://discord.gg/pNcSJj7Wdh)标签:Betanet, Canopy Network, DLT, Docker, EVTX分析, EVTX分析, Golang, Go语言, L1, Layer 1, MacOS, P2P网络, PoS, Web3, 共识协议, 分布式账本技术, 加密货币, 加密资产, 区块链, 协议实现, 去中心化, 安全编程, 安全防御评估, 日志审计, 智能合约, 权益证明, 测试网, 点对点网络, 种子链, 程序破解, 节点软件, 请求拦截, 跨链, 递归架构