Go to file
Andrey Petrov d388c8498d More readme. 2014-04-25 20:00:17 -07:00
.gitignore Importing code. 2014-04-18 21:26:47 -07:00
LICENSE Initial commit 2014-04-18 21:07:31 -07:00
README.md More readme. 2014-04-25 20:00:17 -07:00
btc-crawl.go README update. 2014-04-25 19:54:24 -07:00
client.go Flags for ALL the things. 2014-04-23 16:03:34 -07:00
crawler.go Fix stopAfter 2014-04-25 16:31:03 -07:00
ext_btcd.go Importing code. 2014-04-18 21:26:47 -07:00
log.go Superhappyfuntimelogging. 2014-04-24 19:13:33 -07:00
peer.go Output to json. 2014-04-25 16:24:27 -07:00
seed.go Superhappyfuntimelogging. 2014-04-24 19:13:33 -07:00

README.md

btc-crawl

Bitcoin node network crawler (written in golang).

This is a for-fun project to explore the Bitcoin protocol and network.

Current status:

  • It crawls with all kinds of nice parameters but stores everything in memory until dumping a giant JSON blob at the end.
  • It crawls from hard-coded values and spits a bunch of stuff to stdout.

Usage

$ go get github.com/shazow/btc-crawl
$ btc-crawl --concurrency 100 --output btc-crawl.json --verbose
...

Estimated crawl time: Unknown.

There should be under 10,000 active network nodes at any given time, according to (bitnodes.io)[https://getaddr.bitnodes.io/]. Each node returns around ~2,500 known nodes, but usually only several have timestamps within the last hour.

Todo

(In approximate order of priority)

  • Add some sensible non-verbose output
  • Apply peer-age filter to results
  • Stream JSON rather than accumulate into a giant array.
  • Add timeout option.
  • Graceful cleanup on Ctrl+C
  • Namespace packages properly (outside of main)