Skip to content

Latest commit

 

History

History
108 lines (69 loc) · 4.9 KB

File metadata and controls

108 lines (69 loc) · 4.9 KB
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 Betanet 🚀 ➝ 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