Go Node and SDK for the NEO blockchain
Find a file
Evgeniy Kulikov 9c24bf9139 Blockchain graceful shutdown (#139)
* Blockchain graceful shutdown

- fix #138
- stop blockchain goroutine
- close leveldb database

* fix possible context leak (go vet)
2019-02-19 12:48:48 +01:00
.github Remove mention of the bump version (#112) 2018-12-06 11:31:41 +01:00
cli Blockchain graceful shutdown (#139) 2019-02-19 12:48:48 +01:00
config Fix typos (#133) 2019-02-13 18:01:10 +00:00
examples/token-sale Fix typos (#133) 2019-02-13 18:01:10 +00:00
pkg Blockchain graceful shutdown (#139) 2019-02-19 12:48:48 +01:00
.dockerignore Docker setup (#70) 2018-04-16 10:41:23 +02:00
.gitignore ignore Goland and bump version (#59) 2018-04-02 18:49:14 +02:00
circle.yml [WIP] Remove version from CI (#111) 2018-12-06 11:32:52 +01:00
CONTRIBUTING.md Release documentation (#13) 2018-02-02 19:04:56 +00:00
docker-compose.yml Adds basic docker-compose support for standing up a cluster (#74) 2018-04-28 20:20:27 +02:00
Dockerfile Adds basic docker-compose support for standing up a cluster (#74) 2018-04-28 20:20:27 +02:00
go.mod Fix #130: Wrong answer for RPC server method getaccountstate (#131) 2019-02-13 18:01:52 +00:00
go.sum Optimizations + some improvements (#105) 2018-11-26 16:56:45 +01:00
Gopkg.lock Incorrect import (#69) 2018-04-15 18:56:18 +02:00
Gopkg.toml Tweaks for network and storage (#66) 2018-04-09 18:58:09 +02:00
LICENCE.md Updated README and LICENSE according to other COZ repo’s. 2018-01-31 13:50:11 +01:00
Makefile Adds basic docker-compose support for standing up a cluster (#74) 2018-04-28 20:20:27 +02:00
README.md Fix typos (#133) 2019-02-13 18:01:10 +00:00

neo-go

Go Node and SDK for the NEO blockchain.

Overview

This project aims to be a full port of the original C# NEO project. A complete toolkit for the NEO blockchain, including:

  • consensus node
  • RPC node & client
  • RPC client
  • CLI tool
  • Smart contract compiler
  • NEO virtual machine

Getting started

Installation

Install dependencies.

neo-go uses dep as its dependency manager. After installing deps you can run:

make deps

How to setup a node

Docker

Each tagged build is built to docker hub and the :latest tag pointing at the latest tagged build.

By default the CMD is set to run a node on testnet, so to do this simply run:

 docker run -d --name neo-go -p 20332:20332 -p 20333:20333 cityofzion/neo-go

Which will start a node on testnet and expose the nodes port 20333 and 20332 for the JSON-RPC server.

Building

Build the neo-go CLI:

make build

Quick start a NEO node on the private network. This requires the neo-privatenet Docker image running on your machine.

make run

To run the binary directly:

./bin/neo-go node -seed 127.0.0.1:20333,127.0.0.1:20334

By default the node will run on the private network, to change his:

./bin/neo-go node --mainnet

Available network flags:

  • --mainnet, -m
  • --privnet, -p
  • --testnet, -t

If you want in-depth customization for your node, there are yaml config files for each network available in the config directory. Those files are automatically loaded, corresponding the provided netmode flag.

ProtocolConfiguration:
  Magic: 56753
  AddressVersion: 23
  StandbyValidators:
  - 02b3622bf4017bdfe317c58aed5f4c753f206b7db896046fa7d774bbc4bf7f8dc2
  - 02103a7f7dd016558597f7960d27c516a4394fd968b9e65155eb4b013e4040406e
  - 03d90c07df63e690ce77912e10ab51acc944b66860237b608c4f8f8309e71ee699
  - 02a7bc55fe8684e0119768d104ba30795bdcc86619e864add26156723ed185cd62
  SeedList:
  - 127.0.0.1:20333
  - 127.0.0.1:20334
  - 127.0.0.1:20335
  - 127.0.0.1:20336
  SystemFee:
    EnrollmentTransaction: 1000
    IssueTransaction: 500
    PublishTransaction: 500
    RegisterTransaction: 10000

ApplicationConfiguration:
  DataDirectoryPath: "./chains/privnet"
  RPCPort: 20332
  NodePort: 20333
  Relay: true
  DialTimeout: 3
  ProtoTickInterval: 2
  MaxPeers: 50

Writing smart contracts in Go

Golang's development is been moved to a separate repository which you can find here neo-storm

Contributing

Feel free to contribute to this project after reading the contributing guidelines.

Before starting to work on a certain topic, create an new issue first, describing the feature/topic you are going to implement.

Contact

License

  • Open-source MIT