mirror of
https://github.com/nspcc-dev/neo-go.git
synced 2024-11-25 13:47:19 +00:00
README: update a little, fix #2779
Minor improvements, removing outdated data, plus NEO -> Neo neo-go -> NeoGo
This commit is contained in:
parent
b1723f1a79
commit
ce7995e045
1 changed files with 35 additions and 28 deletions
63
README.md
63
README.md
|
@ -17,20 +17,21 @@
|
||||||
|
|
||||||
# Overview
|
# Overview
|
||||||
|
|
||||||
This project aims to be a full port of the original C# [Neo project](https://github.com/neo-project).
|
NeoGo is a complete platform for distributed application development built on
|
||||||
A complete toolkit for the NEO blockchain, including:
|
top of and compatible with the [Neo project](https://github.com/neo-project).
|
||||||
|
This includes, but not limited to (see documentation for more details):
|
||||||
|
|
||||||
- [Consensus node](docs/consensus.md)
|
- [Consensus node](docs/consensus.md)
|
||||||
- [RPC node & client](docs/rpc.md)
|
- [RPC node & client](docs/rpc.md)
|
||||||
- [CLI tool](docs/cli.md)
|
- [CLI tool](docs/cli.md)
|
||||||
- [Smart contract compiler](docs/compiler.md)
|
- [Smart contract compiler](docs/compiler.md)
|
||||||
- [NEO virtual machine](docs/vm.md)
|
- [Neo virtual machine](docs/vm.md)
|
||||||
- [Smart contract examples](examples/README.md)
|
- [Smart contract examples](examples/README.md)
|
||||||
- [Oracle service](docs/oracle.md)
|
- [Oracle service](docs/oracle.md)
|
||||||
- [State validation service](docs/stateroots.md)
|
- [State validation service](docs/stateroots.md)
|
||||||
|
|
||||||
This branch (**master**) is Neo N3-compatible. For the current
|
The protocol implemented here is Neo N3-compatible, however you can also find
|
||||||
Legacy-compatible version please refer to the [**master-2.x**
|
an implementation of the Neo Legacy protocol in the [**master-2.x**
|
||||||
branch](https://github.com/nspcc-dev/neo-go/tree/master-2.x) and releases
|
branch](https://github.com/nspcc-dev/neo-go/tree/master-2.x) and releases
|
||||||
before 0.80.0 (**0.7X.Y** track).
|
before 0.80.0 (**0.7X.Y** track).
|
||||||
|
|
||||||
|
@ -47,13 +48,16 @@ NeoGo, `:latest` points to the latest release) or build yourself.
|
||||||
|
|
||||||
### Building
|
### Building
|
||||||
|
|
||||||
To build NeoGo you need Go 1.17+ and `make`:
|
Building NeoGo requires Go 1.17+ and `make`:
|
||||||
|
|
||||||
```
|
```
|
||||||
make build
|
make
|
||||||
```
|
```
|
||||||
|
|
||||||
The resulting binary is `bin/neo-go`.
|
The resulting binary is `bin/neo-go`. Notice that using some random revision
|
||||||
|
from the `master` branch is not recommended (it can have any number of
|
||||||
|
incompatibilities and bugs depending on the development stage), please use
|
||||||
|
tagged released versions.
|
||||||
|
|
||||||
#### Building on Windows
|
#### Building on Windows
|
||||||
|
|
||||||
|
@ -61,13 +65,11 @@ To build NeoGo on Windows platform we recommend you to install `make` from [MinG
|
||||||
package](https://osdn.net/projects/mingw/). Then, you can build NeoGo with:
|
package](https://osdn.net/projects/mingw/). Then, you can build NeoGo with:
|
||||||
|
|
||||||
```
|
```
|
||||||
make build
|
make
|
||||||
```
|
```
|
||||||
|
|
||||||
The resulting binary is `bin/neo-go.exe`.
|
The resulting binary is `bin/neo-go.exe`.
|
||||||
|
|
||||||
We also recommend you to switch the Windows Firewall off for further NeoGo node run.
|
|
||||||
|
|
||||||
## Running a node
|
## Running a node
|
||||||
|
|
||||||
A node needs to connect to some network, either local one (usually referred to
|
A node needs to connect to some network, either local one (usually referred to
|
||||||
|
@ -96,6 +98,9 @@ Available network flags:
|
||||||
To run a consensus/committee node, refer to [consensus
|
To run a consensus/committee node, refer to [consensus
|
||||||
documentation](docs/consensus.md).
|
documentation](docs/consensus.md).
|
||||||
|
|
||||||
|
If you're running a node on Windows, please turn off or configure Windows
|
||||||
|
Firewall appropriately (allowing inbound connections to the P2P port).
|
||||||
|
|
||||||
### Docker
|
### Docker
|
||||||
|
|
||||||
By default, the `CMD` is set to run a node on `privnet`. So, to do this, simply run:
|
By default, the `CMD` is set to run a node on `privnet`. So, to do this, simply run:
|
||||||
|
@ -126,37 +131,39 @@ Refer to [consensus node documentation](docs/consensus.md).
|
||||||
|
|
||||||
## Smart contract development
|
## Smart contract development
|
||||||
|
|
||||||
Please refer to [neo-go smart contract development
|
Please refer to [NeoGo smart contract development
|
||||||
workshop](https://github.com/nspcc-dev/neo-go-sc-wrkshp) that shows some
|
workshop](https://github.com/nspcc-dev/neo-go-sc-wrkshp) that shows some
|
||||||
simple contracts that can be compiled/deployed/run using neo-go compiler, SDK
|
simple contracts that can be compiled/deployed/run using NeoGo compiler, SDK
|
||||||
and a private network. For details on how Go code is translated to Neo VM
|
and a private network. For details on how Go code is translated to Neo VM
|
||||||
bytecode and what you can and can not do in a smart contract, please refer to the
|
bytecode and what you can and can not do in a smart contract, please refer to the
|
||||||
[compiler documentation](docs/compiler.md).
|
[compiler documentation](docs/compiler.md).
|
||||||
|
|
||||||
Refer to [examples](examples/README.md) for more NEO smart contract examples
|
Refer to [examples](examples/README.md) for more Neo smart contract examples
|
||||||
written in Go.
|
written in Go.
|
||||||
|
|
||||||
## Wallets
|
## Wallets
|
||||||
|
|
||||||
NeoGo differs substantially from C# implementation in its approach to
|
NeoGo wallet is just a
|
||||||
wallets. NeoGo wallet is just a
|
|
||||||
[NEP-6](https://github.com/neo-project/proposals/blob/68398d28b6932b8dd2b377d5d51bca7b0442f532/nep-6.mediawiki)
|
[NEP-6](https://github.com/neo-project/proposals/blob/68398d28b6932b8dd2b377d5d51bca7b0442f532/nep-6.mediawiki)
|
||||||
file that is used by CLI commands to sign various things. There is no database
|
file that is used by CLI commands to sign various things. CLI commands are not
|
||||||
behind it, the blockchain is the database and CLI commands use RPC to query
|
a direct part of the node, but rather a part of the NeoGo binary, their
|
||||||
data from it. At the same time, it's not required to open a wallet on an RPC
|
implementations use RPC to query data from the blockchain and perform any
|
||||||
node to perform various actions (unless your node provides some service
|
required actions. It's not required to open a wallet on an RPC node (unless
|
||||||
for the network like consensus or oracle nodes do).
|
your node provides some service for the network like consensus or oracle nodes
|
||||||
|
do).
|
||||||
|
|
||||||
# Developer notes
|
## Monitoring
|
||||||
Nodes have such features as [Prometheus](https://prometheus.io/docs/guides/go-application) and
|
NeoGo provides [Prometheus](https://prometheus.io/docs/guides/go-application) and
|
||||||
[Pprof](https://golang.org/pkg/net/http/pprof/) in order to have additional information about them for debugging.
|
[Pprof](https://golang.org/pkg/net/http/pprof/) services that can be enabled
|
||||||
|
in the node in order to provide additional monitoring and debugging data.
|
||||||
|
|
||||||
How to configure Prometheus or Pprof:
|
Configuring any of the two services is easy, add the following section (`Pprof`
|
||||||
In `config/protocol.*.yml` there is
|
instead of `Prometheus` if you need that) to the respective `config/protocol.*.yml`:
|
||||||
```
|
```
|
||||||
Prometheus:
|
Prometheus:
|
||||||
Enabled: true
|
Enabled: true
|
||||||
Port: 2112
|
Addresses:
|
||||||
|
- ":2112"
|
||||||
```
|
```
|
||||||
where you can switch on/off and define port. Prometheus is enabled and Pprof is disabled by default.
|
where you can switch on/off and define port. Prometheus is enabled and Pprof is disabled by default.
|
||||||
|
|
||||||
|
@ -173,7 +180,7 @@ describing the feature/topic you are going to implement.
|
||||||
- [@roman-khimov](https://github.com/roman-khimov) on GitHub
|
- [@roman-khimov](https://github.com/roman-khimov) on GitHub
|
||||||
- [@AnnaShaleva](https://github.com/AnnaShaleva) on GitHub
|
- [@AnnaShaleva](https://github.com/AnnaShaleva) on GitHub
|
||||||
- [@fyrchik](https://github.com/fyrchik) on GitHub
|
- [@fyrchik](https://github.com/fyrchik) on GitHub
|
||||||
- Reach out to us on the [NEO Discord](https://discordapp.com/invite/R8v48YA) channel
|
- Reach out to us on the [Neo Discord](https://discordapp.com/invite/R8v48YA) channel
|
||||||
|
|
||||||
# License
|
# License
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue