https://github.com/crytic/fluxture

A crawling framework for blockchains and peer-to-peer systems

https://github.com/crytic/fluxture

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.3%) to scientific vocabulary

Keywords from Contributors

projection archival interactive emulation generic packaging symbolic-execution sequences profiles academic-papers
Last synced: 11 months ago · JSON representation

Repository

A crawling framework for blockchains and peer-to-peer systems

Basic Info
  • Host: GitHub
  • Owner: crytic
  • License: apache-2.0
  • Language: Python
  • Default Branch: master
  • Size: 202 KB
Statistics
  • Stars: 46
  • Watchers: 17
  • Forks: 9
  • Open Issues: 3
  • Releases: 1
Created almost 6 years ago · Last pushed almost 3 years ago
Metadata Files
Readme License

README.md

Fluxture

PyPI version Tests Slack Status

Fluxture is a lightweight crawler for peer-to-peer networks like Blockchains. It currently supports the latest version of the Bitcoin protocol: 70015. It implements the minimum amount of the Bitcoin protocol necessary to collect geographic and topological information.

Quickstart

commandline pip3 install fluxture

Or, to install from source (e.g., for development):

commandline $ git clone https://github.com/trailofbits/fluxture $ cd fluxture $ pip3 install -e '.[dev]'

Usage

To crawl the Bitcoin network, run:

commandline fluxture crawl bitcoin --database crawl.db

The crawl database is a SQLite database that can be reused between crawls.

Geolocation

Fluxture uses the MaxMind GeoLite2 City database for geolocating nodes based upon their IP address. Various Fluxture commands will either require a path to the database, or a MaxMind license key (which will be used to automatically download the database). You can sign up for a free MaxMind license key, here.

A KML file (which can be imported to Google Maps or Google Earth) can be generated from a crawl using:

commandline fluxture kml --group-by ip crawl.db output.kml

The geolocation database can be updated from MaxMind by running:

commandline fluxture update-geo-db

An existing crawl database can be re-analyzed for missing or updated geolocations (e.g., from an updated MaxMind database) by running:

commandline fluxture geolocate crawl.db

Topological Analysis

Fluxture can calculate topological statistics about the centrality of a crawled network by running:

commandline fluxture topology crawl.db

Programmatic Interface

```python from fluxture.crawl_schema import CrawlDatabase

with CrawlDatabase("crawl.db") as db: for node in db.nodes: print(f"Node {node.ip}:{node.port} {node.state!s}") location = node.getlocation() if location is not None: print(f"\tLocation:\t{location.continentcode}\t{location.countrycode}\t{location.city}") else: print("\tLocation:\t?") version = node.getversion() if version is not None: print(f"\tVersion:\t{version.version!s}") else: print("\tVersion:\t?") print(f"\tOut-Edges:\t{', '.join(str(neighbor.ip) for neighbor in node.getlatestedges())}") ```

License and Acknowledgements

This research was developed by Trail of Bits based upon work supported by DARPA under Contract No. HR001120C0084. Any opinions, findings and conclusions or recommendations expressed in this material are those of the authors and do not necessarily reflect the views of the United States Government or DARPA. It is licensed under the Apache 2.0 license. © 2020–2021, Trail of Bits.

Owner

  • Name: Crytic
  • Login: crytic
  • Kind: organization
  • Email: opensource@trailofbits.com
  • Location: New York, NY

Blockchain Security, by @trailofbits

GitHub Events

Total
Last Year

Committers

Last synced: about 1 year ago

All Time
  • Total Commits: 163
  • Total Committers: 4
  • Avg Commits per committer: 40.75
  • Development Distribution Score (DDS): 0.123
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Evan Sultanik e****k@t****m 143
William Woodruff w****m@t****m 11
dependabot[bot] 4****] 8
James Olds o****j 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: about 1 year ago

All Time
  • Total issues: 1
  • Total pull requests: 20
  • Average time to close issues: N/A
  • Average time to close pull requests: 26 days
  • Total issue authors: 1
  • Total pull request authors: 6
  • Average comments per issue: 0.0
  • Average comments per pull request: 0.5
  • Merged pull requests: 14
  • Bot issues: 0
  • Bot pull requests: 12
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • 1kaiser (1)
Pull Request Authors
  • dependabot[bot] (12)
  • ESultanik (3)
  • woodruffw (2)
  • sschriner (1)
  • TrellixVulnTeam (1)
  • oldsj (1)
Top Labels
Issue Labels
help wanted (1)
Pull Request Labels
dependencies (11) enhancement (1)

Dependencies

setup.py pypi
  • fastkml *
  • geoip2 *
  • graphviz *
  • great-circle-calculator *
  • keyring *
  • lxml *
  • networkx *
  • numpy >=1.19.4
  • shapely *
  • shodan *
  • six >=1.5
  • tqdm >=4.48.0
  • typing_extensions *
.github/workflows/pip-audit.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • pypa/gh-action-pip-audit v1.0.3 composite
.github/workflows/pythonpublish.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
.github/workflows/tests.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite