The Principal Dev โ€“ Masterclass for Tech Leads

The Principal Dev โ€“ Masterclass for Tech LeadsNov 27-28

Join

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.

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.Extensions/ Extensions to expand the existing functionality.
/src/Neo.Json/ Neo's JSON specification.
/tests/ All unit tests.

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

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

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)

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.

Join libs.tech

...and unlock some superpowers

GitHub

We won't share your data with anyone else.