https://github.com/chainsafe/nodewatch-api
A devp2p crawler targeted at Eth2 nodes
https://github.com/chainsafe/nodewatch-api
Last synced: 4 months ago
JSON representation
A devp2p crawler targeted at Eth2 nodes
- Host: GitHub
- URL: https://github.com/chainsafe/nodewatch-api
- Owner: ChainSafe
- License: lgpl-3.0
- Created: 2021-06-28T16:04:57.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2024-01-24T13:47:26.000Z (about 2 years ago)
- Last Synced: 2025-10-02T02:53:31.743Z (4 months ago)
- Language: Go
- Homepage:
- Size: 6.99 MB
- Stars: 60
- Watchers: 34
- Forks: 32
- Open Issues: 27
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# Eth2 Crawler
Eth2 Crawler is Ethereum blockchain project that extracts eth2 node information from the network save it to the datastore. It also exposes a graphQL interface to access the information saved in the datastore.
## Getting Started
There are three main components in the project:
1. Crawler: crawls the network for eth2 nodes, extract additional information about the node and save it to the datastore
2. MongoDB: datastore to save eth2 nodes information
3. GraphQL Interface: provide access the stored information
### Prerequisites
* docker
* docker-compose
### Environment Setup
Before building, please make sure environment variables `RESOLVER_API_KEY`(which is used to fetch information about node using IP) is setup properly. You can get your key from [IP data dashboard](https://dashboard.ipdata.co). To setup the variable, create an `.env` in the same folder as of `docker-compose.yaml`
Example `.env` File
```shell
RESOLVER_API_KEY=your_ip_data_key
```
### Configs and Flags
Eth2 crawler support config through yaml files. Default yaml config is provided at `cmd/config/config.dev.yaml`. You can use your own config file by providing it's path using the `-p` flag
### Usage
We use docker-compose for testing locally. Once you have defined the environment variable in the `.env` file, you can start the server using:
```shell
make run
```
## Additional Commands
* `make run` - run the crawler service
* `make lint` - run linter
* `make test` - runs the test cases
* `make license` - add license to the missing files
* `make license-check` - checks for missing license headers
## LICENSE
See the [LICENSE](https://github.com/ChainSafe/eth2-crawler/blob/main/LICENSE) file for license rights and limitations (lgpl-3.0).