1360e1de68
* 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' |
||
---|---|---|
.github | ||
cli | ||
config | ||
examples/token-sale | ||
pkg | ||
.dockerignore | ||
.gitignore | ||
circle.yml | ||
CONTRIBUTING.md | ||
docker-compose.yml | ||
Dockerfile | ||
go.mod | ||
go.sum | ||
Gopkg.lock | ||
Gopkg.toml | ||
LICENCE.md | ||
Makefile | ||
README.md |
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
- @anthdm on Github
- @anthdm on Twitter
- Reach out to me on the NEO Discord channel
- Send me an email anthony@cityofzion.io
License
- Open-source MIT