neo-go/README.md

4 KiB

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 automaticly 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 feauture/topic you are going to implement.

Contact

License

  • Open-source MIT