gloflow-ethmonitor

module
v0.0.0-...-a99ce35 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 30, 2021 License: GPL-2.0

README

gloflow-ethmonitor

monitoring of the Ethereum network

The goal is to create a monitoring tool for the Ethereum mainnet.
Main gf-ethmonitor server manages the spawning of modified GF go-ethereum nodes that connect into the mainnet. These nodes are customized to contain custom instrumentation, and are sending data to a common queue system that is shared with the gf-ethmonitor server. The main server is a consumer, and the GF go-ethereum node is a producer.

pre-built container is available in a Dockerhub repo - glofloworg/gf_eth_monitor
docker run glofloworg/gf_eth_monitor
ENV vars for the container are:

  • GF_PORT
  • GF_PORT_METRICS
  • GF_MONGODB_HOST
  • GF_INFLUXDB_HOST
  • GF_AWS_SQS_QUEUE
  • GF_WORKERS_AWS_DISCOVERY
  • GF_WORKERS_HOSTS
  • GF_SENTRY_ENDPOINT
  • GF_EVENTS_CONSUME
  • GF_PY_PLUGINS_BASE_DIR_PATH

WORKER_INSPECTOR Agent usually running on the same host as an Ethereum node (geth).

  • mainly using eth-rpc API to communicate with Eth node.
  • uses some Geth specific API's.
  • joins several datastructures on blocks and tx's.
  • provides REST API.
  • in the future will contain functions as well that will assume that they're running on the same host as the Eth node.
  • ideally it will run and query a full archive geth node to get all of the expected data (tx traces, acc balances, etc.)

GO TESTS:


# working dir - ./py/ops/
# ENV VARS:
# - GF_GETH_HOST=127.0.0.1
# - GF_SENTRY_ENDPOINT=...
$ python3 gf_builder_cli.py -run=test_go


# working dir - ./go/gf_eth_monitor_core/
# ENV VARS:
# - GF_TEST_WORKER_INSPECTOR_HOST_PORT=127.0.0.1:9000
$ go test -v

#--------------
# working dir - ./go/gf_eth_indexer
# ENV VARS:
# - GF_TEST_WORKER_INSPECTOR_HOST_PORT=127.0.0.1:9000
$ go test -v -run Test__indexer_core

# ENV VARS:
# - AWS_REGION=us-east-1
# - AWS_ACCESS_KEY_ID=...
# - AWS_SECRET_ACCESS_KEY=...
# - GF_TEST_WORKER_INSPECTOR_HOST_PORT=127.0.0.1:9000
$ go test -v -run Test__indexer_http

#--------------
# working dir - ./go/gf_eth_blocks
# ENV VARS:
# - GF_TEST_WORKER_INSPECTOR_HOST_PORT=127.0.0.1:9000
$ go test -v -run Test__blocks

PY TESTS:


# working dir - ./py/ops/
# ENV VARS:
# - GF_GETH_HOST=...
# - GF_SENTRY_ENDPOINT=...
$ python3 gf_builder_cli.py -run=test_py

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL