Go Node and SDK for the NEO blockchain
Find a file
Roman Khimov 006337b1f8 network: rework discovery with rwmutex, add test
Keeping run() as the owner of all maps would mean adding at least three more
channels to keep address getters with thread-safety. But then there also is a
race between requestToWork() and run() which is way harder to solve with
channels because there are lots of possibilities for deadlocks. So rework all
of this with good old mutexes.

While at it, fix `requestCh` handling in the inner select of run, it will waste
one loop to handle it, so we should add one to the `requested`.

Fixes #445.
2019-10-28 13:37:27 +03:00
.circleci update minimum supported version of Go to 1.12 2019-09-10 20:30:54 +03:00
.github add new neo logo with gopher 2019-10-22 19:48:22 +03:00
_pkg.dev _pkg.dev: drop vm 2019-09-06 15:02:18 +03:00
cli Merge pull request #426 from nspcc-dev/logger_247 2019-10-22 14:41:30 +03:00
config core/config: make block and transaction verification configurable 2019-10-15 12:56:25 +03:00
docs vm: update and move README, refs. #339 2019-09-18 12:10:12 +03:00
examples examples: remove underscores from package names 2019-09-03 18:00:10 +03:00
pkg network: rework discovery with rwmutex, add test 2019-10-28 13:37:27 +03:00
.dockerignore Fix build node and docker-image 2019-08-26 19:32:09 +03:00
.gitignore Makefile: add some convenience targets 2019-09-09 12:02:24 +03:00
.travis.yml update minimum supported version of Go to 1.12 2019-09-10 20:30:54 +03:00
CHANGELOG.md update CHANGELOG and ROADMAP, release 0.60.0 2019-10-25 18:30:17 +03:00
CONTRIBUTING.md CONTRIBUTING: adapt to new reality a bit 2019-08-20 19:07:58 +03:00
docker-compose.yml Adds basic docker-compose support for standing up a cluster (#74) 2018-04-28 20:20:27 +02:00
Dockerfile Fix for node run in docker introduced in a3890910f2 2019-08-30 11:21:39 +03:00
go.mod Add minimum go version to go.mod 2019-10-17 11:30:52 +03:00
go.sum network: add block queue 2019-09-27 13:00:09 +03:00
LICENSE.md LICENSE.md: rename from LICENCE.md 2019-08-20 18:47:08 +03:00
Makefile Makefile: declare our targets as PHONY 2019-09-09 12:02:24 +03:00
README.md add new neo logo with gopher 2019-10-22 19:48:22 +03:00
ROADMAP.md ROADMAP: update, we'll need to push some more releases 2019-10-26 12:00:22 +03:00

logo

Go Node and SDK for the NEO blockchain.


codecov CircleCI Report GoDoc GitHub release (latest SemVer) License

Overview

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

Getting started

Installation

Go: 1.12+

Install dependencies.

neo-go uses GoModules as dependency manager:

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

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

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