Skip to content
An RPC server that extends the default ``neo-python`` RPC server with plugable commands.
Python Makefile
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
extrpc-plugin-example
neopython_ext_rpc_server
tests
.coveragerc
.gitignore
LICENSE
Makefile
README.rst
setup.py

README.rst

An RPC server that extends the default neo-python RPC server with plugable commands.

Installation

Install the package via pip

pip install neopython-extended-rpc-server

Next, open your neo-python's protocol.<network>.json, find the RPCServer key and set it as follows

"RPCServer": "neopython_ext_rpc_server.ExtRpcServer.ExtendedJsonRpcApi"

Note that the default installation has no additional commands over neo-python's build-in RPC Server.

Extending with new commands

You can extend the RPC server with your own commands by creating a plugin. This has 2 requirements:

  1. Your plugin must extend the ExtendedRpcCommand class and implement the required methods.
  2. Your plugin must be installed using setuptools and register an entrypoint under neopython.extrpc.plugins. See the entry_points key in /extrpc-plugin-example/setup.py for an example.

If your plugin does not adhere to the above 2 requirements it will not be picked up by the loader. The easiest approach is probably to copy the example plugin folder and adjust it to your needs.

Once you're done you can either share your plugin via PyPi (Instructions) to make it installable via pip or you can install it directly using python setup.py install.

Note: you have to restart the RPC server for new commands to be picked up.

If you get the following error when starting the Extended RPC server after you've installed your custom command:

Failed to import module neopython_ext_rpc_server.ExtRpcServer with error: No module named 'your_plugin_name'

Then that likely means you did not include an __init__.py file in your module package. Add it, install again and you should be good to go.

You can’t perform that action at this time.