erigon-pulse/cmd/rpcdaemon
Alex Sharov 1dcc2b141a
Rpcdaemon as lib (#940)
* share config object

* create default config and logger

* move db connection to common func

* move server start to cli package

* clear

* clear

* rename cli to rpc

* use unified SetupLogger func

* make all root flag persistent

* use common flags in different packages

* use common flags in different packages

* move TraceTx method to eth package

* use native slice flags

* create package "turbo"

* disable geth api

* disable geth api

* move more data types to turbo/adapter package

* add support for customApiList

* run more

* run more

* run more

* dog-food

* move DoCall

* move DoCall

* fix tests

* fix test
2020-08-19 12:46:20 +01:00
..
cli Rpcdaemon as lib (#940) 2020-08-19 12:46:20 +01:00
commands Rpcdaemon as lib (#940) 2020-08-19 12:46:20 +01:00
service Rpcdaemon as lib (#940) 2020-08-19 12:46:20 +01:00
.gitignore Docker compose (#841) 2020-08-01 09:39:04 +02:00
main.go Rpcdaemon as lib (#940) 2020-08-19 12:46:20 +01:00
Readme.md Update Readme.md (#876) 2020-08-05 18:29:54 +01:00
test.http Rpcdaemon as lib (#940) 2020-08-19 12:46:20 +01:00

In turbo-geth RPC calls are extracted out of the main binary into a separate daemon. This daemon can use both local or remote DBs. That means, that this RPC daemon doesn't have to be running on the same machine as the main turbo-geth binary or it can run from a snapshot of a database for read-only calls. Docs

Get started

For local DB

> make rpcdaemon
> ./build/bin/rpcdaemon --chaindata ~/Library/TurboGeth/tg/chaindata --http.api=eth,debug

For remote DB

Run turbo-geth in one terminal window

> ./build/bin/tg --private.api.addr=localhost:9090

Run RPC daemon

> ./build/bin/rpcdaemon --private.api.addr=localhost:9090

Test

Try eth_blockNumber call. In another console/tab, use curl to make RPC call:

curl -X POST -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"eth_blockNumber", "params": [], "id":1}' localhost:8545

It should return something like this (depending on how far your turbo-geth node has synced):

{"jsonrpc":"2.0","id":1,"result":823909}