d388c8498d | ||
---|---|---|
.gitignore | ||
LICENSE | ||
README.md | ||
btc-crawl.go | ||
client.go | ||
crawler.go | ||
ext_btcd.go | ||
log.go | ||
peer.go | ||
seed.go |
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
)