Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

update readme #169

Merged
merged 17 commits into from
Jan 22, 2020
77 changes: 49 additions & 28 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,49 +1,70 @@
<p align="center">
<a href="https://neo.org/">
<img
src="https://neo3.azureedge.net/images/logo%20files-dark.svg"
width="250px" alt="neo-logo">
</a>
</p>

<p align="center">
<a href="https://travis-ci.org/neo-project/neo-modules">
<img src="https://travis-ci.org/neo-project/neo-modules.svg?branch=master" alt="Current TravisCI build status.">
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Perhaps we can leave this comment for now, I think that status is not enabled for master branch, correct @erikzhang?

</a>
<a href="https://github.com/neo-project/neo-modules/blob/master/LICENSE">
<img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="License">
</a>
<a href="https://github.com/neo-project/neo-modules/releases">
<img src="https://badge.fury.io/gh/neo-project%2Fneo-modules.svg" alt="Current neo-modules version.">
</a>
</p>

## What is it
A set of plugins that can be used inside the NEO core library. Check [here](https://docs.neo.org/docs/en-us/node/cli/setup.html) for the official documentation.

## Using plugins
A set of plugins that can be used inside the NEO core library is available in this repository. You can refer to [the official documentation](https://docs.neo.org/docs/en-us/node/cli/setup.html) for the more detailed usage guide. In addition, a C# SDK is included for developers to call RPC methods with ease.
vncoelho marked this conversation as resolved.
Show resolved Hide resolved

## Using Plugins
Plugins can be used to increase functionality, as well as providing policies definitions of the network.
One common example is to add the ApplicationLogs plugin in order to enable your node to create log files.

To configure a plugin, do the following:
- Download the desired plugin from the [Releases page](https://github.com/neo-project/neo-plugins/releases)
- Alternative: Compile from source
- Clone this repository;
- Open it in Visual Studio, select the plugin you want to enable and select `publish` \(compile it using Release configuration\)
- Create the Plugins folder in neo-cli / neo-gui (where the binary is run from, like `/neo-cli/bin/debug/netcoreapp2.1/Plugins`)
- Copy the .dll and the folder with the configuration files into this Plugin folder.
- Start neo using additional parameters, if required;
- In order to start logging, start neo with the `--log` option.
To configure a plugin, you can directly download the desired plugin from the [Releases page](https://github.com/neo-project/neo-modules/releases).

Alternatively, you can compile from source code by following the below steps:
- Clone this repository;
- Open it in Visual Studio, select the plugin you want to enable and select `publish` \(compile it using Release configuration\)
- Create the Plugins folder in neo-cli / neo-gui (where the binary file is located, such as `/neo-cli/bin/Release/netcoreapp3.0/Plugins`)
- Copy the .dll and the folder with the configuration files into the `Plugins` folder.
- Remarkably, you should put the dependency of the plugin in the `Plugins` folder as well. For example, since the `RpcServer` has the package reference on the `Microsoft.AspNetCore.ResponseCompression`, so the corresponding dll file should be put together with the plugin.

The resulting folder structure is going to be like this:

```BASH
```sh
./neo-cli.dll
./Plugins/ApplicationLogs.dll
./Plugins/ApplicationsLogs/config.json
```

## Existing plugins
### Application Logs
Add this plugin to your application if need to access the log files. This can be useful to handle notifications, but remember that this also largely increases the space used by the application.
## Plugins
### LevelDBStore
If there is no further modification of the configuration file of the neo-node, it is the default storage engine in the NEO system. In this case, you should paste the `LevelDBStore` in the Plugins before launching the node.

### Core Metrics
Metrics from the Blockchain. This can involve reports through RPC calls or other form of persisting.
### RocksDBStore
It is the choice of users for the storage engine. You can also use `RocksDBStore` in the NEO system by modifying the default storage engine section in the configuration file.

### Import Blocks
Synchronizes the client using offline packages. Follow the instructions [here](http://docs.neo.org/en-us/network/syncblocks.html) to bootstrap your network using this plugin.
### RpcServer
Currently, RPC server has been decoupled with the NEO library. You must install this plugin to enable RPC service outside. Specifically, it is required to open the wallet for calling wallet related RPC methods. For more details, you can refer to [RPC APIs](https://docs.neo.org/docs/zh-cn/reference/rpc/latest-version/api.html).

### RPC NEP5 Tracker
Plugin that enables NEP5 tracking using LevelDB.

### RPC Security
Improves security in RPC nodes.

### RPC Wallet
Client commands for wallet management functionalities, such as signing and invoking.
### RpcNep5Tracker
This plugin can help you get the NEP-5 transaction information for the specified address. You should install the plugin `RpcServer` before enabling `RpcNep5Tracker`. [Here](https://docs.neo.org/docs/en-us/reference/rpc/latest-version/api/getnep5transfers.html) is the use case for this plugin.

### StatesDumper
Exports NEO-CLI status data \(useful for debugging\).

### SystemLog
Enables neo-cli Logging, with timestamps, by showing messages with different levels (differentiated by colors) \(useful for debugging\).
Enable neo-cli Logging with timestamps by showing messages with different levels (shown with different colors) \(useful for debugging\).

### ApplicationLogs
Add this plugin to your application if need to access the log files. This can be useful to handle notifications, but remember that this also largely increases the space used by the application. `RpcServer` is also needed for this plugin. You can find more details [here](https://docs.neo.org/docs/en-us/reference/rpc/latest-version/api/getapplicationlog.html).

## C# SDK
### RpcClient
The RpcClient Plugin is an individual SDK which is used to call NEO RPC methods for development using.