Skip to main content

Farcaster network mapping

Project description

fc-nmap

THis software is still in alpha and under heavy development. Things will change and break.

PyPI - Version PyPI - Python Version


Quickstart

pip install fc-nmap

fc-nmap --help

Usage: fc-nmap [OPTIONS] COMMAND [ARGS]...

  Farcaster Network Mapper

Options:
  --version   Show the version and exit.
  -h, --help  Show this message and exit.

Commands:
  exportdb  Create a tab separated dump of the database
  initdb    Initialize the database
  scan      Scan will scan the network
  updatedb  Collect addtional information about each hub

scan will start from one hub, get its contact list and ask other hubs for their lists. Based on my tests so far, hops > 10 will make litte difference. Data collected is stored in a local sqlite3 db.

updatedb will collect additiona info.

dumpdb generates a text export.

Behind the scenes

fc-nmap initdb creates a local sqlite database where data is stored.

fc-nmap scan will start by asking a hub to provide its contact list (gRPC call GetCurrentPeers). Using this list, it will pick --hops hubs at random, and request their contact list too. The lists are combined and stored in the database.

fc-nmap updatedb --hub-info looks into the database and picks hubs that were recently active. (Recency is defined by comparing ContactInfoContentBody.timestamp collected when requesting the contacts lists and the current timestamp.) The command will try to connect to each one of the hubs, and collect additional info using GetInfo, and store the results in the local database.

fc-nmap updatedb --hub-location works similar to --hub-info, but uses ip2location.io to get location information about each hub IP. Again, information collected is stored in the local database. The script will not query ip2location for IPs that were looked up in the last 100 days. This helps staying within ip2location free plan limits.

fc-nmap export --report=all will export all "active" hubs. Use fc-nmap export --help` to get all the available exports/reports. Or connect directly to the local database (currently named hubs.db and stored in the directory where you called the previous commands) and run your own queries.

License

fc-nmap is distributed under the terms of the MIT license.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fc_nmap-0.0.7.tar.gz (2.0 MB view details)

Uploaded Source

Built Distribution

fc_nmap-0.0.7-py3-none-any.whl (46.9 kB view details)

Uploaded Python 3

File details

Details for the file fc_nmap-0.0.7.tar.gz.

File metadata

  • Download URL: fc_nmap-0.0.7.tar.gz
  • Upload date:
  • Size: 2.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-httpx/0.27.0

File hashes

Hashes for fc_nmap-0.0.7.tar.gz
Algorithm Hash digest
SHA256 5c86d7f8fc853841c1cf88a8b9d39a540e2ba1af968a8d90094d114838d68fe9
MD5 243687cb07041e1e370d9006ac44d857
BLAKE2b-256 4023f9b288776b0fe723e91bd6398fcd4d2ce5759f328d7235d47fed577279c5

See more details on using hashes here.

File details

Details for the file fc_nmap-0.0.7-py3-none-any.whl.

File metadata

  • Download URL: fc_nmap-0.0.7-py3-none-any.whl
  • Upload date:
  • Size: 46.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-httpx/0.27.0

File hashes

Hashes for fc_nmap-0.0.7-py3-none-any.whl
Algorithm Hash digest
SHA256 80938c2287c0f8c37829f02f6080c78b8349e860095d79c7883407e96d89d6fc
MD5 fa9c3e86d020274a4fdf687f421f298b
BLAKE2b-256 77caa48064f3c455124c14d6d2372e0cf60713bc8e91392269b202da6eded9cf

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page