bittorrent / bootstrap-dht Goto Github PK
View Code? Open in Web Editor NEWDHT bootstrap server
License: MIT License
DHT bootstrap server
License: MIT License
Hello!
I built it on windows,but there was error confused me.
xuan@LAPTOP-O8SDI23U MINGW64 /d/resource/bootstrap-dht (master)
$ b2 -sBOOST_ROOT=D:\resource\boost_1_75_0 toolset=gcc cxxflags="-std=c++11"
Unable to load B2: could not find 'boost-build.jam'
---------------------------------------------------
Attempted search from 'D:\resource\bootstrap-dht' up to the root at 'D:\resource\boost_1_75_0\tools\build\src\engine\b2.exe'
Please consult the documentation at 'https://boostorg.github.io/build/'.
What should I do?Why doesn't libterron include it?
Thanks!
should bootstrap(router.bitorrent.com) be specified when start the process?
my instance terminated with this message:
terminate called after throwing an instance of 'std::out_of_range'
what(): basic_string::substr: __pos (which is 2) > this->size() (which is 0)
unfortunately I did not build it with -rdynamic
, so there was no backtrace.
Looking through the code, I couldn't find any direct uses of substr()
, so I suspect there are some indirect ones. It needs some more digging.
From BEP42 - BitTorrent DHT Security Extension:
The expression to calculate a valid ID prefix (from an IPv4 address) is:
crc32c((ip & 0x030f3fff) | (r << 29))
The current code does the following instead:
boost::crc_optimal<32, 0x1EDC6F41, 0xFFFFFFFF, 0xFFFFFFFF, true, true> crc;
crc.process_block(ip, ip + 4);
crc.process_byte(rand);
boost::uint32_t c = crc.checksum();
however according to BEP42, it should do the following:
boost::crc_optimal<32, 0x1EDC6F41, 0xFFFFFFFF, 0xFFFFFFFF, true, true> crc;
ip[0] |= rand << 5;
crc.process_block(ip, ip + 4);
boost::uint32_t c = crc.checksum();
The current id of router.bittorent.com is: 3a8d9e697351ff4aec29cdbaabf2fbe3467cc267 but it should rather be something like: 32f54a54f81be8e78d765a2e63339fc99a663267. Or is this deviation from the documented behaviour intended?
I've created a pull request that fixes the issue.
Hello,
I built it manually by building the 2 cpp files the guide is referring to.
then I run it with ./boostrap-dht 127.0.0.1 --port 7000
and I use a modified version of dht_put (that sets the bootstrap node to 127.0.0.1:7000).
I was expecting the put to "just work" but I am getting this: "DHT put complete (success=0 hash=763e35443e5aabf4f38c1aea43d55a3a9b6438aa)"
which seems to indicate it failed (success=0).
Move Application to Java, or ADA 95 : C++ code may be stable, but unreadable to most people...
The major design flaw is probably that there is this :
There is no way to find up to date DHTs locally near to the user. If at DHT can't refer you to a nearby so one could download from them instead. There may be reasons for not doing this, but it is not clear in the documentation.
The application probably should be tested for Y2036 and Y2038 Date Bug Problems before conversion to ADA or Java.
This app would be better if it were moved to Java VM, as it could run anywhere -- and Java has a user interface mechanism.
Why each BitTorrent or uTorrent client does not have or run a separate DHT process I do not know.
Could you please specify the complete building or installation steps?
I am trying install this on raspbian.
Finding difficult to install boost on it.
Even after installing libboost could not able to find b2 binary
I am new to boost. Please help me
I'm tempted to pull in catch.hpp to use for tests. Does that seem reasonable? Are there other light-weight test frameworks that may be better options?
Hello!
I want to use it on windows,but I can‘t build it.Because it use a linux lib.What should I do?
Thanks!
I tried the instructions for the build in the read-me. However, The new versions of boost don't have a sha1.hpp under uuid. That's my guess, for the cause of the problem. I created a fork to fix this but I am not sure this is the optimal way of doing it.
Either one should refer to previous version of boost. Or reflect the changes to the code. Also, as a side note, I could not find the version of the boost used for compiling this project.
blahbalh/bootstrap-dht-master/src/main.cpp:51:10: fatal error: 'boost/uuid/sha1.hpp' file not found
#include <boost/uuid/sha1.hpp>
I checked the boost library, and the sha1.hpp exists until version 1.67.
Best,
Amir
I tried going in and just fixing it but it goes 3 deps deep and floating that many patches locally was a pain in the ass.
I'm not sure where else to ask this:
I was bootstrapping last night to
new IPEndPoint(Dns.GetHostEntry("router.utorrent.com").AddressList[0], 6881),
new IPEndPoint(Dns.GetHostEntry("router.bittorrent.com").AddressList[0], 6881),
new IPEndPoint(Dns.GetHostEntry("dht.aelitis.com").AddressList[0], 6881)
quite repeatedly while debugging my application, and today I cannot get responses from any of these hosts. Is it possible i've been banned/blocked?
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.