code0406 / bitcoin-seeder Goto Github PK
View Code? Open in Web Editor NEWThis project forked from sipa/bitcoin-seeder
This project forked from sipa/bitcoin-seeder
bitcoin-seeder ============== Bitcoin-seeder is a crawler for the Bitcoin network, which exposes a list of reliable nodes via a built-in DNS server. Features: * regularly revisits known nodes to check their availability * bans nodes after enough failures, or bad behaviour * accepts nodes down to v0.3.19 to request new IP addresses from, but only reports good post-v0.3.24 nodes. * keeps statistics over (exponential) windows of 2 hours, 8 hours, 1 day and 1 week, to base decisions on. * very low memory (a few tens of megabytes) and cpu requirements. * crawlers run in parallel (by default 24 threads simultaneously). REQUIREMENTS ------------ $ sudo apt-get install build-essential libboost-all-dev libssl-dev USAGE ----- Assuming you want to run a dns seed on dnsseed.example.com, you will need an authorative NS record in example.com's domain record, pointing to for example vps.example.com: $ dig -t NS dnsseed.example.com ;; ANSWER SECTION dnsseed.example.com. 86400 IN NS vps.example.com. On the system vps.example.com, you can now run dnsseed: ./dnsseed -h dnsseed.example.com -n vps.example.com If you want the DNS server to report SOA records, please provide an e-mail address (with the @ part replaced by .) using -m. COMPILING --------- Compiling will require boost and ssl. On debian systems, these are provided by `libboost-dev` and `libssl-dev` respectively. $ make This will produce the `dnsseed` binary. TESTING ------- It's sometimes useful to test `dnsseed` locally to ensure it's giving good output (either as part of development or sanity checking). You can inspect `dnsseed.dump` to inspect all nodes being tracked for crawling, or you can issue DNS requests directly. Example: $ dig @:: -p 15353 dnsseed.example.com ^ ^ ^ | | |__ Should match the host (-h) argument supplied to dnsseed | | | |_______ Port number (example uses the user space port; see below) | |_______________ Explicitly call the DNS server on localhost RUNNING AS NON-ROOT ------------------- Typically, you'll need root privileges to listen to port 53 (name service). One solution is using an iptables rule (Linux only) to redirect it to a non-privileged port: $ iptables -t nat -A PREROUTING -p udp --dport 53 -j REDIRECT --to-port 15353 If properly configured, this will allow you to run dnsseed in userspace, using the -p 15353 option. Another solution is allowing a binary to bind to ports < 1024 with setcap (IPv6 access-safe) $ setcap 'cap_net_bind_service=+ep' /path/to/dnsseed
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.