ipld-eth-server is the server backend for indexed ETH IPLD objects
Table of Contents
ipld-eth-server is used to service queries against the indexed Ethereum IPLD objects indexed by ipld-eth-indexer.
It exposes standard Ethereum JSON RPC endpoints on top of the database, in some cases these endpoints can leverage the unique indexes to improve query performance. Additional, unique endpoints are exposed which utilize the new indexes and state diff data objects.
Minimal build dependencies
- Go (1.13)
- GCC compiler
- This repository
- Postgres database populated by ipld-eth-indexer
Start by downloading ipld-eth-server and moving into the repo:
GO111MODULE=off go get -d github.com/vulcanize/ipld-eth-server
Then, build the binary:
After building the binary, run as
./ipld-eth-server serve --config=<the name of your config file.toml>
Below is the set of parameters for the ipld-eth-server command, in .toml form, with the respective environmental variables commented to the side.
The corresponding CLI flags can be found with the
./ipld-eth-server serve --help command.
[database] name = "vulcanize_public" # $DATABASE_NAME hostname = "localhost" # $DATABASE_HOSTNAME port = 5432 # $DATABASE_PORT user = "postgres" # $DATABASE_USER password = "" # $DATABASE_PASSWORD [log] level = "info" # $LOGRUS_LEVEL [server] ipcPath = "~/.vulcanize/vulcanize.ipc" # $SERVER_IPC_PATH wsPath = "127.0.0.1:8081" # $SERVER_WS_PATH httpPath = "127.0.0.1:8082" # $SERVER_HTTP_PATH
database fields are for connecting to a Postgres database that has been/is being populated by ipld-eth-indexer.
server fields set the paths for exposing the ipld-eth-server endpoints
TODO: Port the IPLD RPC subscription endpoints after the decoupling
ipld-eth-server currently recapitulates portions of the Ethereum JSON-RPC api standard.
The currently supported standard endpoints are:
TODO: Add the rest of the standard endpoints add unique endpoints (e.g. getSlice)
make test will run the unit tests
make test setups a clean
Contributions are welcome!
VulcanizeDB follows the Contributor Covenant Code of Conduct.
AGPL-3.0 © Vulcanize Inc
There is no documentation for this package.