diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..292589f8f --- /dev/null +++ b/.gitignore @@ -0,0 +1,17 @@ +# Binaries for programs and plugins +*.exe +*.dll +*.so +*.dylib + +# Test binary, build with `go test -c` +*.test + +# Output of the go coverage tool, specifically when used with LiteIDE +*.out + +# Project-local glide cache, RE: https://github.com/Masterminds/glide/issues/736 +.glide/ + +# Added by CoZ developers +vendor/ \ No newline at end of file diff --git a/Makefile b/Makefile new file mode 100644 index 000000000..18a8f2e72 --- /dev/null +++ b/Makefile @@ -0,0 +1,2 @@ +test: + @go test $(glide nv) -cover \ No newline at end of file diff --git a/README.md b/README.md index 87e863e74..dda08b6ba 100644 --- a/README.md +++ b/README.md @@ -5,10 +5,10 @@ >
-- Node and SDK for the NEO blockchain written in the Go language. + Go Node and SDK for the NEO blockchain.
@@ -18,67 +18,106 @@
# Overview -> This project is currently in alpha and under active development. -### Long term project goals -Full port of the original C# [NEO project](https://github.com/neo-project). A complete toolkit for the NEO blockchain. +> This project is currently in **alpha** and under active development. -- Full server (consensus and RPC) nodes. +## Project Goals + +Full port of the original C# [NEO project](https://github.com/neo-project). +A complete toolkit for the NEO blockchain, including: + +- Full consensus node +- Full RPC node - RPC client -- build, compile and deploy smart contracts with the Go vm +- ClI tool +- Smart contract compiler -### Current state -This project is still under heavy development. Still working on internal API's and project layout. This should not take longer than 2 weeks. +## Current State -The project will exist out of the following topics/packages: +This project is still under heavy development. Still working on internal API's and project layout. T +his should not take longer than 2 weeks. -1. network (started) -2. core (started) -3. api (JSON-RPC server) (started) -4. vm (open) -5. smartcontract (open) +The project will exist out of the following packages: -# Getting started -### Server +| Package | State | Developer | +|---------------|---------|--------------------------------------| +| api | started | [@anthdm](https://github.com/anthdm) | +| core | started | [@anthdm](https://github.com/anthdm) | +| network | started | [@anthdm](https://github.com/anthdm) | +| smartcontract | started | [@revett](https://github.com/revett) | +| vm | started | [@revett](https://github.com/revett) | -Install the neoserver cli `go install ./cmd/neoserver` +# Getting Started -Currently, there is a minimal subset of the NEO protocol implemented. To start experimenting make sure you a have a private net running on your machine. If you dont, take a look at [docker-privnet-with-gas](https://hub.docker.com/r/metachris/neo-privnet-with-gas/). +## Server + +Install the neoserver cli: + + ``` + go install ./cmd/neoserver + ``` + +Currently, there is a minimal subset of the NEO protocol implemented. +To start experimenting make sure you a have a private net running on your machine. +If you dont, take a look at [docker-privnet-with-gas](https://hub.docker.com/r/metachris/neo-privnet-with-gas/). Start the server: -`neoserver -seed 127.0.0.1:20333` +``` +neoserver -seed 127.0.0.1:20333 +``` You can add multiple seeds if you want: -`neoserver -seed 127.0.0.1:20333,127.0.01:20334` +``` +neoserver -seed 127.0.0.1:20333,127.0.01:20334 +``` -By default the server will currently run on port 3000, for testing purposes. You can change that by setting the tcp flag: +By default the server will currently run on port 3000, for testing purposes. +You can change that by setting the tcp flag: -`neoserver -seed 127.0.0.1:20333 -tcp 1337` +``` +neoserver -seed 127.0.0.1:20333 -tcp 1337 +``` + +## RPC -### RPC If you want your node to also serve JSON-RPC, you can do that by setting the following flag: -`neoserver -rpc 4000` +``` +neoserver -rpc 4000 +``` -In this case server will accept and respond JSON-RPC on port 4000. Keep in mind that currently there is only a small subset of the JSON-RPC implemented. Feel free to make a PR with more functionality. +In this case server will accept and respond JSON-RPC on port 4000. +Keep in mind that currently there is only a small subset of the JSON-RPC implemented. +Feel free to make a PR with more functionality. -### vm -To be implemented.. +## VM -### smart contracts -To be implemented.. +``` +TODO +``` + +## Smart Contracts + +``` +TODO +``` # Contributing -Feel free to contribute to this project after reading the [contributing guidelines](https://github.com/anthdm/neo-go/blob/master/CONTRIBUTING.md). -Before starting to work on a certain topic, create an new issue first, describing the feauture/topic you are going to implement. +Feel free to contribute to this project after reading the +[contributing guidelines](https://github.com/anthdm/neo-go/blob/master/CONTRIBUTING.md). + +Before starting to work on a certain topic, create an new issue first, +describing the feauture/topic you are going to implement. # Contact + - [@anthdm](https://github.com/anthdm) on Github - [@anthdm](https://twitter.com/anthdm) on Twitter - Send me an email anthony@cityofzion.io # License + - Open-source [MIT](https://github.com/anthdm/neo-go/blob/master/LICENCE.md) diff --git a/glide.lock b/glide.lock new file mode 100644 index 000000000..a3815ad55 --- /dev/null +++ b/glide.lock @@ -0,0 +1,11 @@ +hash: 054e4119c1d6deac9c76a3f6ecc319c80d2099d6dd4fd804b03ce47a9b1ccc86 +updated: 2018-02-01T17:18:00.958758Z +imports: +- name: github.com/anthdm/neo-go + version: 3b91a4808e67c54687a4ba90ac4caf584398cea4 + subpackages: + - pkg/core + - pkg/network + - pkg/network/payload + - pkg/util +testImports: [] diff --git a/glide.yaml b/glide.yaml new file mode 100644 index 000000000..dc88f8824 --- /dev/null +++ b/glide.yaml @@ -0,0 +1,8 @@ +package: github.com/CityOfZion/neo-go +import: +- package: github.com/anthdm/neo-go + subpackages: + - pkg/core + - pkg/network + - pkg/network/payload + - pkg/util