Coder Social home page Coder Social logo

pinkdiamond1 / tmcrawl Goto Github PK

View Code? Open in Web Editor NEW

This project forked from fissionlabsio/tmcrawl

0.0 1.0 0.0 118 KB

A Tendermint p2p crawling utility and API.

License: Creative Commons Zero v1.0 Universal

Shell 1.11% Go 94.52% Makefile 4.37%

tmcrawl's Introduction

tmcrawl

Build Status Go Report Card

A Tendermint p2p crawling utility and API.

The tmcrawl utility will capture geolocation information and node metadata such as network name, node version, RPC information, and node ID for each crawled node. The utility will first start with a set of seeds and attempt to crawl as many nodes as possible from those seeds. When there are no nodes left to crawl, tmcrawl will pick a random set of nodes from the known list of nodes to reseed the crawl every crawl_interval seconds from the last attempted crawl finish.

Nodes are persisted in a key/value embedded database, by default BadgerDB. Saved nodes will also be periodically rechecked every recheck_interval. If any node cannot be reached, it'll be removed from the known set of nodes.

Note, tmcrawl is a Tendermint p2p network crawler, it does not operate as a seed node or any other type of node. However, it can be used to gather a set of peers.

Install

tmcrawl takes a simple configuration. It needs to only know about a an ipstack API access key and an initial set of seed nodes. See config.toml for reference.

To install the binary:

$ make install

Note: Requires Go 1.13+

Usage

tmcrawl runs as a daemon process and exposes a RESTful JSON API.

To start the binary:

$ tmcrawl </path/to/config.toml> [flags]

The RESTful JSON API is served over listen_addr as provided in the configuration. See --help for further documentation.

API

All API documentation is hosted via Swagger UI under path /swagger/.

Future Improvements

  • Crawl integration tests
  • Front-end visualization

Contributing

Contributions are welcome! Please open an Issues or Pull Request for any changes.

License

CCC0 1.0 Universal

tmcrawl's People

Contributors

alexanderbez avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.