Skip to content

nodefleet/canopy

 
 

Repository files navigation

Canopy Logo

Official golang implementation of the Canopy Network Protocol

GoDoc Getting Started Go Version Next.js Version

Overview

License Testing Platform Status

Welcome to the Network that Powers the Peer-to-Peer Launchpad for New Chains

Built on a recursive architecture, chains bootstrap each other into independence —
forming an unstoppable web of utility and security.

Here you'll find:

➪ A recursive framework to build blockchains.

➪ The seed chain that started the recursive cycle.

For more information on the Canopy Network Protocol visit https://canopynetwork.org

Network Status

⪢ Canopy is in Alphanet 🚀 ➝ learn more about the road-to-mainnet

Protocol Documentation

➪ Check out the Canopy Network wiki: https://canopy-network.gitbook.io/docs

Repository Documentation

Welcome to the Canopy Network reference implementation. This repository can be well understood reading about the core modules:

  • Controller: Coordinates communication between all the major parts of the Canopy blockchain, like a central hub or "bus" that connects the system together.
  • Finite State Machine (FSM): Defines the logic for how transactions change the blockchain's state — it decides what’s valid and how state transitions happen from one block to the next.
  • Byzantine Fault Tolerant (BFT) Consensus: A consensus mechanism that allows the network to agree on new blocks even if some nodes are unreliable or malicious.
  • Peer-to-Peer Networking: A secure and encrypted communication system that lets nodes talk directly to each other without needing a central server.
  • Persistence: Manages the blockchain’s storage — it saves the current state (ledger), indexes past transactions, and ensures fast and reliable data verification.

How to Run It

➪ To run the Canopy binary, use the following commands:

make build/canopy-full
canopy start

How to Run It with 🐳 Docker

➪ To run a Canopy Localnet in a containerized environment, use the following commands:

make docker/build
make docker/up-fast
make docker/logs

or simply

make docker/up && make docker/logs

Running Tests

➪ To run Canopy unit tests, use the Go testing tools:

make test

How to Contribute

➪ Canopy is an open-source project, and we welcome contributions from the community. Here's how to get involved:

  1. Fork the repository and clone it locally.
  2. Code your improvements or fixes.
  3. Submit a Pull Request (PR) for review.

➣ Please follow these guidelines to maintain high-quality contributions:

High Impact or Architectural Changes

➪ Before making large changes, discuss them with the Canopy team on Discord to ensure alignment.

Coding Style

  • Code must adhere to official Go formatting (use gofmt).
  • (Optional) Use EditorConfig for consistent formatting.
  • All code should follow Go documentation/commentary guidelines.
  • PRs should be opened against the development branch.

Pre-Release Go Report Card Contributors Last Commit

Contact

Twitter Discord

Code written by hand with ❤️ by the team, documentation with the help of AI for some of the ESL team

About

The official go implementation of the Canopy Network protocol

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 93.2%
  • JavaScript 5.9%
  • Other 0.9%