Go Node and SDK for the NEO blockchain
Find a file
Roman Khimov 5d68f88196 core: fix and speed up mempool Verify()
First of all, it was wrong, it was not checking for inputs really, it compared
tx hashes for some reason, second, when it did compare inputs it compared only
the PrevIndex part of them which is also wrong.

Also, there is absolutely no reason to go through GetVerifiedTransactions()
here, we don't need this copy of pointers and it can also be outdated by the
time we're to finish our check.

Before:
BenchmarkTXPerformanceTest-4
    5000            485506 ns/op           65886 B/op        409 allocs/op
ok      github.com/CityOfZion/neo-go/integration        3.212s

After:
enchmarkTXPerformanceTest-4
    5000            371104 ns/op           44367 B/op        408 allocs/op
ok      github.com/CityOfZion/neo-go/integration        2.712s
2019-12-13 23:23:33 +03:00
.circleci circleci: get submodules on checkout, fix failing tests 2019-12-04 20:36:51 +03:00
.docker docker: add an entrypoint wrapper and 6K block dump to import 2019-11-29 16:26:34 +03:00
.github add new neo logo with gopher 2019-10-22 19:48:22 +03:00
_pkg.dev vm: implement json tests from neoVM 2019-11-06 16:22:56 +03:00
cli io: add type-specific read/write methods 2019-12-12 20:19:50 +03:00
config config/docker: fix privnet setup to match neo-local 2019-11-29 13:06:14 +03:00
docs compiler: move it up from vm 2019-12-03 18:23:46 +03:00
examples examples: remove underscores from package names 2019-09-03 18:00:10 +03:00
integration performance: removed require call from benchmark test 2019-12-13 16:13:01 +03:00
pkg core: fix and speed up mempool Verify() 2019-12-13 23:23:33 +03:00
.dockerignore Fix build node and docker-image 2019-08-26 19:32:09 +03:00
.gitignore compiler: move it up from vm 2019-12-03 18:23:46 +03:00
.gitmodules vm: implement json tests from neoVM 2019-11-06 16:22:56 +03:00
.travis.yml update minimum supported version of Go to 1.12 2019-09-10 20:30:54 +03:00
CHANGELOG.md CHANGELOG: fix typo 2019-11-29 20:52:59 +03:00
CONTRIBUTING.md CONTRIBUTING: adapt to new reality a bit 2019-08-20 19:07:58 +03:00
Dockerfile docker: add an entrypoint wrapper and 6K block dump to import 2019-11-29 16:26:34 +03:00
go.mod consensus: update dbft version 2019-12-13 11:28:57 +03:00
go.sum consensus: update dbft version 2019-12-13 11:28:57 +03:00
LICENSE.md LICENSE.md: rename from LICENCE.md 2019-08-20 18:47:08 +03:00
Makefile Makefile: add env_clean to drop storage volume 2019-11-29 12:48:00 +03:00
neo-go.service.template service file templating 2019-11-13 15:05:13 +03:00
README.md docs: add consensus.md 2019-11-28 16:02:09 +03:00
ROADMAP.md update CHANGELOG and ROADMAP, release 0.70.0! 2019-11-29 20:40:01 +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