Skip to content

erikzhang/neo

 
 

Repository files navigation

neo-logo

CSharp implementation of the neo blockchain protocol.

A modern distributed network for the Smart Economy.
Documentation »

Neo · Neo Modules · Neo DevPack

               

Current neo version. Coverage Status License.

Open in GitHub Codespaces.

Quick Start A Mainnet Node

  1. git clone https://github.com/neo-project/neo.git
  2. cd neo/src/Neo.CLI
  3. make build

Table of Contents

  1. Overview
  2. Project structure
  3. Related projects
  4. Opening a new issue
  5. Contributing
  6. Bounty program
  7. License

Overview

This repository is a csharp implementation of the neo blockchain. It is jointly maintained by the neo core developers and neo global development community. Visit the tutorials to get started.

Project structure

An overview of the project folders can be seen below.

Folder Content
/src/neo/Cryptography/ General cryptography implementation, including ECC.
/src/neo/IO/ Data structures used for caching and collection interaction.
/src/neo/Ledger/ Classes responsible for the state control, including the MemoryPool and Blockchain.
/src/neo/Network/ Peer-to-peer protocol implementation.
/src/neo/Persistence/ Classes used to allow other classes to access application state.
/src/neo/Plugins/ Interfaces used to extend Neo, including the storage interface.
/src/neo/SmartContract/ Native contracts, ApplicationEngine, InteropService and other smart-contract related classes.
/src/neo/Wallets/ Wallet and account implementation.
/src/Neo.CLI/ neo-cli console application for running a FULL node.
/src/Neo.Extensions/ Extensions to expand the existing functionality.
/src/Neo.Json/ Neo's JSON specification.
/src/Neo.VM/ Neo virtual machine.
/src/plugins/ Include ApplicationLogs, LevelDBStore, RpcServer, OracleService, DBFTPlugin and more.
/tests/ All unit tests.

Related projects

Code references are provided for all platform building blocks. That includes the base library, the VM, a command line application and the compiler.

  • neo: Included libraries are Neo, Neo-CLI, Neo-GUI, Neo-VM, test and plugin modules.
  • neo-express: A private net optimized for development scenarios.
  • neo-devpack-dotnet: These are the official tools used to convert a C# smart-contract into a neo executable file.
  • neo-proposals: NEO Enhancement Proposals (NEPs) describe standards for the NEO platform, including core protocol specifications, client APIs, and contract standards.
  • neo-non-native-contracts: Includes non-native contracts that live on the blockchain, included but not limited to NeoNameService.

Opening a new issue

Please feel free to create new issues to suggest features or ask questions.

If you found a security issue, please refer to our security policy.

Contributing

We welcome contributions to the Neo project! To ensure a smooth collaboration process, please follow these guidelines:

Branch Rules

  • master - Contains the latest stable release version. This branch reflects the current production state.
  • dev - The main development branch where all new features and improvements are integrated.

Pull Request Guidelines

Important: All pull requests must be based on the dev branch, not master.

  1. Fork the repository and create your feature branch from dev:

    git checkout dev
    git pull origin dev
    git checkout -b feature/your-feature-name
  2. Make your changes following the project's coding standards and conventions.

  3. Test your changes thoroughly to ensure they don't break existing functionality.

  4. Commit your changes with clear, descriptive commit messages:

    git commit -m "feat: add new feature description"
  5. Push to your fork and create a pull request against the dev branch:

    git push origin feature/your-feature-name
  6. Create a Pull Request targeting the dev branch with:

    • Clear title and description
    • Reference to any related issues
    • Summary of changes made

Development Workflow

feature/bug-fix → dev → master (via release)
  • Feature branches are merged into dev
  • dev is periodically merged into master for releases
  • Never create PRs directly against master

For more detailed contribution guidelines, please check our documentation or reach out to the maintainers.

Bounty program

You can be rewarded by finding security issues. Please refer to our bounty program page for more information.

License

The NEO project is licensed under the MIT license.

About

NEO Smart Economy

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C# 99.2%
  • Other 0.8%