Go Node and SDK for the NEO blockchain
Find a file
dauTT 1360e1de68 Added rpc unit tests (#107)
* Fixed small incosistencies related to comments and variable name

* For testing purposes we have to move the method newBlockchain from the cli/server/server.go to  pkg/core/blockchain.go. In addition we have to rename it to NewBlockchainLevelDB in order to be able to export it and avoid naming conflicts. In future we still need to think how to switch between different blockchain implementation easily but for the time being this is not possible.

* Added unit tests for the rpc server

* Added unit_testnet chain fixture

* fixed port number

* Added errors handling

* move unit_testnet chain from 'cli/chains' to 'pkg/rpc/chains'
2019-01-22 13:14:52 +01:00
.github Remove mention of the bump version (#112) 2018-12-06 11:31:41 +01:00
cli Added rpc unit tests (#107) 2019-01-22 13:14:52 +01:00
config Added rpc unit tests (#107) 2019-01-22 13:14:52 +01:00
examples/token-sale Task/fix sc template (#100) 2018-09-27 08:21:31 +02:00
pkg Added rpc unit tests (#107) 2019-01-22 13:14:52 +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 Optimizations + some improvements (#105) 2018-11-26 16:56:45 +01: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 Updated readme with new location of the neo-storm repository (#101) 2018-09-27 08:27:32 +02: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 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