neoneo-go/README.md

130 lines
3.1 KiB
Markdown
Raw Permalink Normal View History

2018-01-28 18:05:06 +00:00
<p align="center">
<img
src="http://res.cloudinary.com/vidsy/image/upload/v1503160820/CoZ_Icon_DARKBLUE_200x178px_oq0gxm.png"
width="125px"
>
2018-01-28 18:05:06 +00:00
</p>
2018-02-01 17:40:04 +00:00
<h1 align="center">neo-go</h1>
2018-01-28 18:05:06 +00:00
<p align="center">
2018-02-01 17:40:04 +00:00
<b>Go</b> Node and SDK for the <a href="https://neo.org">NEO</a> blockchain.
2018-01-28 18:05:06 +00:00
</p>
<p align="center">
<a href="https://travis-ci.org/anthdm/neo-go">
<img src="https://travis-ci.org/anthdm/neo-go.svg?branch=master">
</a>
</p>
2018-01-28 18:05:06 +00:00
# Overview
2018-02-01 17:40:04 +00:00
> This project is currently in **alpha** and under active development.
2018-01-28 18:05:06 +00:00
2018-02-01 17:40:04 +00:00
## 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
2018-01-28 18:05:06 +00:00
- RPC client
2018-02-01 18:08:54 +00:00
- CLI tool
2018-02-01 17:40:04 +00:00
- Smart contract compiler
## Current State
2018-01-28 18:05:06 +00:00
2018-02-01 17:40:04 +00:00
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.
2018-01-28 18:37:03 +00:00
2018-02-01 17:40:04 +00:00
The project will exist out of the following packages:
2018-01-31 11:51:02 +00:00
2018-02-01 17:40:04 +00:00
| 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) |
2018-01-31 11:51:02 +00:00
2018-02-01 17:40:04 +00:00
# Getting Started
2018-01-28 18:37:03 +00:00
2018-02-01 17:40:04 +00:00
## Server
2018-01-28 18:37:03 +00:00
2018-02-01 18:06:17 +00:00
Install dependencies, this requires [Glide](https://github.com/Masterminds/glide#install):
2018-02-01 17:40:04 +00:00
2018-02-01 18:06:17 +00:00
```
make deps
```
Build the **neo-go** CLI:
```
make build
```
2018-02-01 17:40:04 +00:00
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/).
2018-01-31 11:51:02 +00:00
Start the server:
2018-01-28 18:37:03 +00:00
2018-02-01 17:40:04 +00:00
```
2018-02-01 18:06:17 +00:00
./bin/neo-go -seed 127.0.0.1:20333
2018-02-01 17:40:04 +00:00
```
2018-01-28 18:37:03 +00:00
2018-01-31 11:51:02 +00:00
You can add multiple seeds if you want:
2018-02-01 17:40:04 +00:00
```
2018-02-01 18:06:17 +00:00
./bin/neo-go -seed 127.0.0.1:20333,127.0.01:20334
2018-02-01 17:40:04 +00:00
```
By default the server will currently run on port 3000, for testing purposes.
You can change that by setting the tcp flag:
2018-01-31 11:51:02 +00:00
2018-02-01 17:40:04 +00:00
```
2018-02-01 18:06:17 +00:00
./bin/neo-go -seed 127.0.0.1:20333 -tcp 1337
2018-02-01 17:40:04 +00:00
```
2018-02-01 17:40:04 +00:00
## RPC
If you want your node to also serve JSON-RPC, you can do that by setting the following flag:
2018-02-01 17:40:04 +00:00
```
2018-02-01 18:06:17 +00:00
./bin/neo-go -rpc 4000
2018-02-01 17:40:04 +00:00
```
2018-02-01 17:40:04 +00:00
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.
2018-01-31 11:51:02 +00:00
2018-02-01 17:40:04 +00:00
## VM
2018-01-31 11:51:02 +00:00
2018-02-01 17:40:04 +00:00
```
TODO
```
## Smart Contracts
```
TODO
```
2018-01-28 18:37:03 +00:00
2018-01-29 07:11:08 +00:00
# Contributing
2018-01-31 11:51:02 +00:00
2018-02-01 17:40:04 +00:00
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.
2018-01-29 07:11:08 +00:00
2018-01-31 10:58:19 +00:00
# Contact
2018-02-01 17:40:04 +00:00
2018-01-31 10:58:19 +00:00
- [@anthdm](https://github.com/anthdm) on Github
- [@anthdm](https://twitter.com/anthdm) on Twitter
- Send me an email anthony@cityofzion.io
# License
2018-02-01 17:40:04 +00:00
- Open-source [MIT](https://github.com/anthdm/neo-go/blob/master/LICENCE.md)