Skip to content

Canopy

Official Go implementation of the Canopy Network blockchain protocol, currently in alphanet.

Stars
14.7k
Forks
17.4k
Licence
MIT
Language
Go
Last update
15 days ago
Type
Other

What it is

Canopy is a blockchain protocol written in Go. According to its README, it is a recursive framework for building blockchains, where chains help bootstrap new chains, and it is also the seed chain that started that cycle. It is an Ethereum-RPC compatible layer 1 for native transfers, so existing Ethereum wallet and indexer tools may be able to connect to it. The README describes it as in alphanet status.

  • Run a local Canopy network using the Docker Compose commands in the README
  • Build the Canopy binary from source and start a node
  • Connect Ethereum tooling such as MetaMask to the /v1/eth endpoint
  • Read the controller, FSM, BFT, p2p and store modules to understand the design
  • Run the unit test suite with make test

Great for

  • Developers exploring blockchain protocol internals written in Go
  • Teams evaluating Ethereum-RPC compatible layer 1 chains
  • Engineers who want to run a local Canopy test network with Docker
  • Researchers studying BFT consensus and recursive chain bootstrapping

Not ideal for

  • Non-developers looking for a ready-made end-user app: the README is aimed at protocol builders
  • Production users who need a stable network: the README marks the project as alphanet status
  • Anyone needing detailed setup guidance: the README gives only brief build and run commands
Step-by-step guide: how to use CanopyInstall, first run, examples, tips and FAQs

How to get it

  1. 1

    Clone and build from source

    You'll need: Go (README badge references v1.21) · Docker (for the containerized Localnet) · make

    Clone the repository

    git clone https://github.com/canopy-network/canopy

    Build the full Canopy binary

    make build/canopy-full

    Build the Docker image for Localnet

    make docker/build

    Start the Docker Localnet

    make docker/up
  2. 2

    Run it

    • Build the binary with make build/canopy-full
    • Start the node with canopy start
    • Or start a containerized Localnet with make docker/up and view logs with make docker/logs
    • Run unit tests with make test if you are working on the code
  3. 3

    Get the most out of it

    • Use the /v1/eth endpoint as a custom Ethereum RPC, and check the eth-spec notes in fsm/ethereum.md for compatibility details
    • Read the RPC specification in cmd/rpc/README.md before building integrations
    • Review the module READMEs (controller, fsm, bft, p2p, store) to understand how components interact
    • Follow the CONTRIBUTING guidelines and open PRs against the development branch

Downloads

Strengths

  • Written in Go under the permissive MIT license
  • The README documents core modules (controller, FSM, BFT consensus, p2p, persistence) with separate docs
  • Offers Ethereum-RPC compatibility for existing wallet and tooling

Trade-offs

  • The README labels the project alphanet status, so it may change or be unstable
  • Setup documentation is brief and points to external wiki pages for protocol details
  • Platform support in the badges is listed as Linux and macOS only

Stats synced from GitHub. The assessment above was drafted with AI from the project's README on 2026-10-29 and may miss recent changes — check the README before relying on a command. MIT licence: free to use, modify and distribute, including commercially, as long as you keep the copyright notice.