NEO uses digital identity and blockchain technology to digitize assets and leverages smart contracts for autonomously managed digital assets to create a "smart economy" within a decentralized network.
To learn more about NEO, please read the White Paper|白皮书.
NEO adopts a model of continuous improvement and evolution. We believe that the research and development of blockchain technology will be kept in continuous transformation for the next years. From 2017 until the middle of 2020 (estimated), NEO 2.x will still be supported and the compatibility of new packages will be maintained.
A link to the essential C# reference implementation can be seen below:
- neo: core implementation (branch
master-2.x
) - neo-vm: virtual machine (branch
master-2.x
) - neo-cli: command-line interface (branch
master-2.x
) - neo-plugins: plugins (branch
master-2.x
) - neo-devpack-dotnet: NeoContract compiler and development pack for .NET (branch
master-2.x
)
NEO 1.x was known as Antshares and the roots of the code can be found historically in this current repository.
We already support the following platforms:
- CentOS 7
- Docker
- macOS 10 +
- Red Hat Enterprise Linux 7.0 +
- Ubuntu 14.04, Ubuntu 14.10, Ubuntu 15.04, Ubuntu 15.10, Ubuntu 16.04, Ubuntu 16.10
- Windows 7 SP1 +, Windows Server 2008 R2 +
We will support the following platforms in the future:
- Debian
- Fedora
- FreeBSD
- Linux Mint
- OpenSUSE
- Oracle Linux
To start building peer applications for NEO on Windows, you need to download Visual Studio 2017, install the .NET Framework 4.7 Developer Pack and the .NET Core SDK.
If you need to develop on Linux or macOS, just install the .NET Core SDK.
To install Neo SDK to your project, run the following command in the Package Manager Console:
PM> Install-Package Neo
For more information about how to build DAPPs for NEO, please read the documentation|文档.
If you want to use the latest daily build then you need to add a NuGet.Config to your app with the following content:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<clear />
<add key="MyGet-neo" value="https://www.myget.org/F/neo/api/v3/index.json" />
<add key="NuGet.org" value="https://api.nuget.org/v3/index.json" />
</packageSources>
</configuration>
NOTE: This NuGet.Config should be with your application unless you want nightly packages to potentially start being restored for other apps on the machine.
You can contribute to NEO with issues and PRs. Simply filing issues for problems you encounter is a great way to contribute. Contributing implementations is greatly appreciated.
We use and recommend the following workflow:
- Create an issue for your work.
- You can skip this step for trivial changes.
- Reuse an existing issue on the topic, if there is one.
- Clearly state that you are going to take on implementing it, if that's the case. You can request that the issue be assigned to you. Note: The issue filer and the implementer don't have to be the same person.
- Create a personal fork of the repository on GitHub (if you don't already have one).
- Create a branch off of master(
git checkout -b mybranch
).- Name the branch so that it clearly communicates your intentions, such as issue-123 or githubhandle-issue.
- Branches are useful since they isolate your changes from incoming changes from upstream. They also enable you to create multiple PRs from the same fork.
- Make and commit your changes.
- Add new tests corresponding to your change, if applicable.
- Build the repository with your changes.
- Make sure that the builds are clean.
- Make sure that the tests are all passing, including your new tests.
- Create a pull request (PR) against the upstream repository's master branch.
- Push your changes to your fork on GitHub.
Note: It is OK for your PR to include a large number of commits. Once your change is accepted, you will be asked to squash your commits into one or some appropriately small number of commits before your PR is merged.
The NEO project is licensed under the MIT license.