Fixed up BITDHT versioning.

* Advertises client as DBxxxx where xxxx is provided by using app.
  * Added COMPILE switches to enable ANONYMOUS version or remove BD portion.
  * Fixed version code.
  * Added slow increase in retry timeout, to reduce DHT traffic over time.
      now RETRY PERIOD = query age / 2  
  * initialised bdToken bdVersion etc length.
  * new bdboot.txt 



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3615 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
drbob 2010-10-05 21:57:22 +00:00
parent d31cef0f11
commit cc5fa5e5dc
9 changed files with 268 additions and 208 deletions

View File

@ -120,7 +120,7 @@ virtual void bdPrintNodeId(std::ostream &out, const bdNodeId *a) = 0;
*/
#define BITDHT_PEER_STATUS_MASK_RECVD 0x000000ff
#define BITDHT_PEER_STATUS_MASK_DHT 0x000000ff
#define BITDHT_PEER_STATUS_MASK_DHT 0x0000ff00
#define BITDHT_PEER_STATUS_RECV_PONG 0x00000001
#define BITDHT_PEER_STATUS_RECV_NODES 0x00000002

View File

@ -114,7 +114,7 @@ int bitdht_response_ping_msg(bdToken *tid, bdNodeId *id, bdToken *vid,
be_add_keypair(dict, "t", tidnode);
be_add_keypair(dict, "y", yqrnode);
be_add_keypair(dict, "V", vnode);
be_add_keypair(dict, "v", vnode);
#ifdef DEBUG_MSG_DUMP
/* dump answer */

View File

@ -681,8 +681,6 @@ void bdNode::msgout_ping(bdId *id, bdToken *transId)
void bdNode::msgout_pong(bdId *id, bdToken *transId)
{
char version[5] = "RS50";
#ifdef DEBUG_NODE_MSGOUT
std::cerr << "bdNode::msgout_pong() TransId: ";
bdPrintTransId(std::cerr, transId);
@ -696,8 +694,13 @@ void bdNode::msgout_pong(bdId *id, bdToken *transId)
/* generate message, send to udp */
bdToken vid;
memcpy(vid.data, version, 5);
vid.len = 4;
int vlen = BITDHT_TOKEN_MAX_LEN;
if (mDhtVersion.size() < vlen)
{
vlen = mDhtVersion.size();
}
memcpy(vid.data, mDhtVersion.c_str(), vlen);
vid.len = vlen;
char msg[10240];
int avail = 10240;
@ -931,7 +934,19 @@ void bdNode::sendPkt(char *msg, int len, struct sockaddr_in addr)
void bdNode::recvPkt(char *msg, int len, struct sockaddr_in addr)
{
#ifdef DEBUG_NODE_PARSE
fprintf(stderr, "bdNode::recvPkt()\n");
std::cerr << "bdNode::recvPkt() msg[" << len << "] = ";
for(int i = 0; i < len; i++)
{
if ((msg[i] > 31) && (msg[i] < 127))
{
std::cerr << msg[i];
}
else
{
std::cerr << "[" << (int) msg[i] << "]";
}
}
std::cerr << std::endl;
#endif
/* convert to a be_node */
@ -1035,7 +1050,7 @@ void bdNode::recvPkt(char *msg, int len, struct sockaddr_in addr)
bdToken versionId;
if (beType == BITDHT_MSG_TYPE_PONG)
{
be_version = beMsgGetDictNode(be_data, "version");
be_version = beMsgGetDictNode(node, "v");
if (!be_version)
{
#ifdef DEBUG_NODE_PARSE
@ -1050,7 +1065,6 @@ void bdNode::recvPkt(char *msg, int len, struct sockaddr_in addr)
beMsgGetToken(be_version, versionId);
}
/*********** handle target (query) or info_hash (get_hash) ************/
bdNodeId target_info_hash;
be_node *be_target = NULL;
@ -1202,7 +1216,15 @@ void bdNode::recvPkt(char *msg, int len, struct sockaddr_in addr)
mFns->bdPrintId(std::cerr, &srcId);
std::cerr << std::endl;
#endif
if (be_version)
{
msgin_pong(&srcId, &transId, &versionId);
}
else
{
msgin_pong(&srcId, &transId, NULL);
}
break;
}
case BITDHT_MSG_TYPE_FIND_NODE: /* a: id, transId, target */
@ -1361,40 +1383,50 @@ void bdNode::msgin_pong(bdId *id, bdToken *transId, bdToken *versionId)
#endif
/* check two bytes */
if ((versionId->len > 2) && (mDhtVersion.size() > 2) &&
if ((versionId->len >= 2) && (mDhtVersion.size() >= 2) &&
(versionId->data[0] == mDhtVersion[0]) && (versionId->data[1] == mDhtVersion[1]))
{
sameDhtEngine = true;
}
/* check two bytes */
if ((versionId->len > 4) && (mDhtVersion.size() > 4) &&
if ((versionId->len >= 4) && (mDhtVersion.size() >= 4) &&
(versionId->data[2] == mDhtVersion[2]) && (versionId->data[3] == mDhtVersion[3]))
{
sameAppl = true;
}
/* check two bytes */
if ((versionId->len > 6) && (mDhtVersion.size() > 6) &&
if ((versionId->len >= 6) && (mDhtVersion.size() >= 6) &&
(versionId->data[4] == mDhtVersion[4]) && (versionId->data[5] == mDhtVersion[5]))
{
sameVersion = true;
}
}
else
{
#ifdef DEBUG_NODE_MSGIN
std::cerr << "bdNode::msgin_pong() No Version";
std::cerr << std::endl;
#endif
}
uint32_t peerflags = BITDHT_PEER_STATUS_RECV_PONG; /* should have id too */
if (sameDhtEngine)
{
peerflags = BITDHT_PEER_STATUS_DHT_ENGINE;
peerflags |= BITDHT_PEER_STATUS_DHT_ENGINE;
}
if (sameAppl)
{
peerflags = BITDHT_PEER_STATUS_DHT_APPL;
peerflags |= BITDHT_PEER_STATUS_DHT_APPL;
}
if (sameVersion)
{
peerflags = BITDHT_PEER_STATUS_DHT_VERSION;
peerflags |= BITDHT_PEER_STATUS_DHT_VERSION;
}
addPeer(id, peerflags);

View File

@ -35,6 +35,7 @@
class bdToken
{
public:
bdToken() :len(0) { return; }
uint32_t len;
unsigned char data[BITDHT_TOKEN_MAX_LEN];
};
@ -42,6 +43,7 @@ class bdToken
class bdCompactIds
{
public:
bdCompactIds() :len(0) { return; }
uint32_t len;
unsigned char data[BITDHT_TOKEN_MAX_LEN];
};
@ -49,6 +51,7 @@ class bdCompactIds
class bdVersion
{
public:
bdVersion() :len(0) { return; }
uint32_t len;
unsigned char data[BITDHT_TOKEN_MAX_LEN];
};

View File

@ -38,7 +38,7 @@
#define EXPECTED_REPLY 20
#define QUERY_IDLE_RETRY_PEER_PERIOD (mFns->bdNodesPerBucket() * 30)
#define QUERY_IDLE_RETRY_PEER_PERIOD 300 // 5min = (mFns->bdNodesPerBucket() * 30)
/************************************************************
@ -81,6 +81,8 @@ bdQuery::bdQuery(const bdNodeId *id, std::list<bdId> &startList, uint32_t queryF
mQueryFlags = queryFlags;
mQueryTS = now;
mQueryIdlePeerRetryPeriod = QUERY_IDLE_RETRY_PEER_PERIOD;
/* setup the limit of the search
* by default it is setup to 000000 = exact match
*/
@ -114,6 +116,13 @@ int bdQuery::nextQuery(bdId &id, bdNodeId &targetNodeId)
/* search through through list, find closest not queried */
time_t now = time(NULL);
/* update IdlePeerRetry */
if ((now - mQueryTS) / 2 > mQueryIdlePeerRetryPeriod)
{
mQueryIdlePeerRetryPeriod = (now-mQueryTS) / 2;
}
bool notFinished = false;
std::multimap<bdMetric, bdPeer>::iterator it;
for(it = mClosest.begin(); it != mClosest.end(); it++)
@ -133,7 +142,7 @@ int bdQuery::nextQuery(bdId &id, bdNodeId &targetNodeId)
/* re-request every so often */
if ((!queryPeer) && (mQueryFlags & BITDHT_QFLAGS_DO_IDLE) &&
(now - it->second.mLastSendTime > QUERY_IDLE_RETRY_PEER_PERIOD))
(now - it->second.mLastSendTime > mQueryIdlePeerRetryPeriod))
{
#ifdef DEBUG_QUERY
fprintf(stderr, "NextQuery() Found out-of-date. queryPeer = true : ");

View File

@ -59,6 +59,8 @@ int printQuery();
time_t mQueryTS;
uint32_t mQueryFlags;
int32_t mQueryIdlePeerRetryPeriod; // seconds between retries.
private:
// closest peers

View File

@ -27,10 +27,9 @@
/***
* #define BE_DEBUG_DECODE 1
* #define BE_DEBUG 1 // controlled from Makefile too.
***/
//#define BE_DEBUG_DECODE 1
#ifdef BE_DEBUG_DECODE
#include <stdio.h> /* debug */
#endif
@ -394,8 +393,9 @@ void be_dump_str(be_node *node)
}
int len = be_str_len(node);
int i = 0;
printf("str[%d] = ", len);
for(int i = 0; i < len; i++)
for(i = 0; i < len; i++)
{
/* sensible chars */
if ((node->val.s[i] > 31) && (node->val.s[i] < 127))

View File

@ -1,138 +1,3 @@
85.56.139.56 58749
71.196.189.66 43541
60.54.39.89 18756
112.207.137.130 45682
84.115.175.203 38839
85.10.16.82 42070
61.116.102.55 58995
87.56.74.190 51804
83.31.49.246 49408
88.132.33.234 10889
93.148.69.177 64396
95.140.7.82 45643
84.42.245.181 62910
71.172.80.247 16639
77.41.69.144 58436
189.239.185.252 63091
187.114.203.208 18571
70.75.204.73 34767
78.83.106.252 32836
95.139.113.36 30816
189.60.98.121 38345
220.132.72.212 27085
70.157.138.186 23602
189.136.163.215 22838
89.33.94.80 18377
79.111.165.2 19211
92.24.189.239 45717
193.25.104.85 45766
59.93.93.23 39382
89.18.194.180 53230
116.71.218.45 10165
156.34.28.98 45682
203.206.53.27 10358
41.235.61.5 16498
86.138.70.43 14685
183.14.156.148 16001
85.107.216.225 61077
79.89.31.240 23687
187.67.26.74 20595
24.87.88.9 49947
222.131.10.83 5070
212.117.169.181 55788
80.64.65.14 61551
81.232.90.184 43611
89.180.106.123 51337
71.180.229.140 25107
41.238.203.245 42311
71.227.139.224 32093
123.115.241.29 8808
62.45.98.176 6881
92.154.104.90 49500
78.60.71.95 39201
89.113.24.69 41489
98.222.41.217 55836
98.242.242.83 25455
99.41.207.6 58729
96.250.33.132 50343
93.80.210.92 53838
94.236.129.131 46060
83.142.210.17 17901
93.152.162.14 42404
71.82.210.81 26642
116.74.67.240 42370
98.225.224.13 16321
89.179.79.75 62045
24.250.154.26 52769
72.39.29.128 22844
194.186.188.48 63808
67.172.251.253 22076
92.13.58.11 55202
218.44.104.181 59116
91.195.208.8 6881
66.197.165.38 6821
70.160.28.191 29602
24.15.202.167 15309
118.128.194.3 35703
92.27.69.69 11399
113.169.9.165 20302
41.204.126.178 11275
66.212.214.127 22767
174.94.79.203 63317
83.84.130.254 2302
88.203.213.216 9463
173.174.10.130 39909
114.24.151.183 8262
121.164.15.29 13396
125.26.125.11 16915
95.130.12.19 61050
95.79.35.108 54704
62.30.225.190 10398
79.69.156.88 11179
76.28.227.60 10277
69.249.116.97 60199
118.100.44.109 48673
114.47.173.140 12818
79.116.217.129 36525
64.46.21.119 30393
209.82.182.182 46512
95.56.18.8 55061
24.210.149.136 45504
189.110.174.160 42176
210.159.160.128 43535
119.179.53.14 16001
212.63.215.33 49001
78.61.116.247 56061
212.80.48.31 11175
77.49.170.106 30929
211.187.166.100 46368
186.45.162.37 54458
84.52.32.176 22994
89.34.93.54 23540
213.151.5.123 21520
173.72.137.187 27512
212.75.18.238 9486
212.21.20.244 24825
95.7.164.167 23502
116.0.246.100 11209
58.153.12.250 5067
77.126.4.157 63977
79.81.134.243 12275
81.89.88.35 20576
188.19.198.174 9853
118.233.55.189 14280
95.155.118.39 9334
83.97.66.151 12608
202.125.62.131 7444
61.57.105.113 22728
81.82.115.46 43952
79.111.74.223 45987
60.56.221.89 1069
109.74.209.168 62393
76.224.27.8 56053
79.163.179.77 26850
189.32.67.235 63258
75.84.157.242 15877
142.177.246.95 59112
116.2.32.161 20124
188.126.46.50 44950
@ -145,7 +10,6 @@
77.81.214.54 55140
188.2.177.127 18893
77.106.248.215 61010
76.189.218.104 31714
92.40.218.25 17436
79.11.74.201 25511
124.217.18.33 52665
@ -153,20 +17,16 @@
116.75.93.225 17753
91.154.247.194 47519
85.157.34.95 39877
72.12.147.238 48200
87.207.198.164 57380
76.88.103.96 6688
69.156.182.48 9745
174.118.75.21 57528
78.131.114.243 35625
178.162.183.226 6821
85.120.227.7 39679
77.108.227.234 46150
67.21.102.65 61696
90.20.253.243 17134
77.106.112.192 63044
89.132.70.154 54892
80.190.139.91 6892
89.228.34.41 11402
99.16.45.162 58728
114.169.35.228 10609
@ -174,11 +34,8 @@
62.194.214.11 53956
86.140.220.164 63805
89.209.84.223 45645
69.61.67.154 51413
71.176.151.158 34312
87.252.246.164 10004
76.83.2.223 51867
174.100.244.175 32360
174.6.184.150 55074
122.116.144.204 6881
188.126.95.124 51422
@ -200,19 +57,14 @@
99.1.110.3 22440
201.53.55.59 61292
95.58.92.65 48802
188.134.14.120 9089
78.72.106.34 53188
89.178.134.24 64389
76.215.117.211 51413
114.27.89.171 43349
80.99.42.137 10566
187.20.103.130 16333
213.85.141.144 46456
84.86.167.83 49250
85.186.48.10 25274
70.48.43.93 59364
94.31.232.73 47220
24.12.33.224 25976
114.154.228.24 14512
202.67.20.232 13380
94.15.164.174 45657
@ -247,7 +99,6 @@
71.63.16.85 44949
68.215.227.132 50513
62.228.103.223 11249
219.112.140.25 16297
118.168.199.192 21018
89.103.74.81 11790
77.110.201.72 55144
@ -276,8 +127,6 @@
98.148.246.127 50300
142.68.210.47 63653
218.168.225.229 22678
88.162.153.3 45698
109.87.83.228 48931
92.104.49.179 8500
173.32.63.117 61054
87.121.173.150 6148
@ -285,26 +134,15 @@
91.154.137.162 11984
80.171.58.170 22797
94.27.109.220 36053
67.215.242.138 6881
173.50.147.111 55669
67.240.191.70 53081
118.160.53.83 12731
216.138.216.227 49001
77.93.16.43 35431
178.82.201.203 12055
68.62.10.72 22867
88.177.195.185 20299
187.16.62.58 63388
121.80.39.231 18252
213.112.106.243 18786
79.113.182.121 42808
88.184.85.157 40478
82.119.65.229 41614
24.35.86.183 48539
67.183.139.6 29721
121.124.190.173 50282
117.194.194.73 13257
110.175.157.60 12000
93.102.129.104 36854
92.104.22.153 6881
68.203.251.86 18992
@ -315,20 +153,16 @@
88.115.78.139 15273
123.117.107.29 19970
93.96.190.204 6883
83.248.90.115 53778
78.96.174.224 60387
68.40.87.11 37253
70.178.210.213 38087
77.101.133.246 14789
115.143.47.172 30429
93.100.92.224 27243
80.80.153.98 11832
91.206.4.9 3333
188.35.8.236 62459
86.107.79.233 49905
24.22.195.49 6881
76.101.135.11 20009
222.164.18.139 6881
193.106.25.130 57020
79.107.183.240 45683
71.229.83.233 45682
@ -349,7 +183,6 @@
95.26.55.82 59164
62.221.151.184 20536
109.201.74.159 10207
98.254.244.165 56359
203.185.36.12 19872
210.73.1.92 12469
218.171.240.219 10236
@ -361,7 +194,6 @@
90.49.27.240 50510
188.4.197.57 59491
84.101.189.175 19015
90.180.166.149 6880
67.189.42.213 53943
113.199.242.93 35720
183.179.97.20 24840
@ -370,18 +202,13 @@
118.137.194.171 26705
210.6.173.121 14972
87.194.243.159 64670
81.236.226.106 6882
83.77.171.200 15846
84.52.63.250 14255
67.215.242.139 6881
173.75.218.211 63205
122.118.67.231 23915
83.9.39.33 22798
94.69.249.98 48057
86.13.80.190 51326
88.106.69.215 11924
212.242.219.216 47000
95.76.50.171 19698
88.89.180.142 10766
77.45.166.176 32802
24.14.73.12 40442
@ -401,17 +228,13 @@
123.118.137.119 25421
219.175.138.61 23739
95.96.188.23 12400
188.134.67.102 6882
24.98.183.64 57540
93.123.41.127 23436
173.87.8.115 22866
200.29.72.19 46935
189.19.100.69 1224
220.102.166.142 27156
81.106.247.102 19244
82.25.111.214 21311
193.201.198.253 63408
94.47.188.106 56342
173.71.152.93 50989
70.119.159.158 62727
86.176.212.56 53046
@ -432,31 +255,23 @@
87.70.142.8 15960
98.135.71.79 29008
117.47.90.194 10016
99.139.154.78 8877
85.12.239.118 64317
76.65.18.45 7700
87.224.254.21 25388
93.84.84.155 51757
84.124.205.238 23020
221.46.51.137 22507
213.16.120.166 54701
92.81.249.11 11185
77.54.70.32 35815
60.244.140.57 12687
109.165.40.174 23806
147.46.216.167 50410
99.57.47.134 19965
180.25.22.176 40005
71.12.16.186 11422
24.49.177.89 40029
88.141.135.252 58810
92.112.66.105 55311
111.249.218.164 56509
68.149.168.121 64750
41.223.241.48 38494
80.99.189.105 50001
95.32.38.47 31175
213.125.29.122 6881
92.28.148.131 22902
114.42.222.199 22443
175.115.187.64 13038
@ -498,3 +313,188 @@
114.47.171.209 21087
76.177.235.15 13961
178.164.177.154 8929
77.41.69.144 58436
93.152.162.14 42404
72.39.29.128 22844
70.160.28.191 29602
24.87.88.9 49947
41.204.126.178 11275
71.227.139.224 32093
76.28.227.60 10277
212.80.48.31 11175
95.130.12.19 61050
66.197.165.38 6821
72.12.147.238 48200
80.190.139.91 6892
77.108.227.234 46150
69.61.67.154 51413
209.82.182.182 46512
76.83.2.223 51867
76.189.218.104 31714
174.100.244.175 32360
178.162.183.226 6821
78.72.106.34 53188
188.134.14.120 9089
94.31.232.73 47220
24.12.33.224 25976
24.250.154.26 52769
84.86.167.83 49250
109.87.83.228 48931
88.162.153.3 45698
178.82.201.203 12055
67.215.242.138 6881
173.50.147.111 55669
67.240.191.70 53081
68.62.10.72 22867
88.184.85.157 40478
24.35.86.183 48539
67.183.139.6 29721
219.112.140.25 16297
110.175.157.60 12000
70.178.210.213 38087
77.93.16.43 35431
222.164.18.139 6881
83.248.90.115 53778
98.254.244.165 56359
90.180.166.149 6880
88.177.195.185 20299
67.215.242.139 6881
86.13.80.190 51326
86.107.79.233 49905
212.242.219.216 47000
95.76.50.171 19698
81.106.247.102 19244
188.134.67.102 6882
81.236.226.106 6882
94.47.188.106 56342
200.29.72.19 46935
99.139.154.78 8877
84.124.205.238 23020
213.125.29.122 6881
68.149.168.121 64750
99.57.47.134 19965
24.49.177.89 40029
221.46.51.137 22507
85.12.239.118 64317
78.90.116.74 19466
95.79.41.39 40496
213.133.98.4 6881
71.170.86.79 20322
90.154.242.204 59379
195.184.205.254 14834
201.37.1.184 20996
183.179.244.186 17518
98.219.151.25 33246
99.25.55.50 63685
95.90.32.98 21015
66.197.165.51 6821
68.44.82.53 12371
24.186.168.108 36916
74.79.37.90 31551
207.38.168.53 44635
209.202.78.188 14812
76.101.24.82 13823
68.46.57.52 11695
189.122.64.147 24387
123.163.132.87 64425
125.24.191.183 32201
123.231.81.151 45682
76.189.50.158 29456
212.117.167.140 10005
82.75.135.251 49155
77.250.123.105 6884
83.25.71.129 43558
212.117.1.153 17845
95.84.155.141 21057
195.22.140.72 4214
84.40.91.202 42870
85.10.46.180 24142
174.112.6.77 6881
151.12.60.142 42488
70.162.99.44 54092
193.91.144.166 43190
213.60.233.181 34385
71.235.207.19 53148
114.42.20.220 14842
81.98.127.164 48895
213.10.67.211 17030
62.45.245.22 6881
80.82.92.76 29221
89.28.27.55 17886
69.151.72.98 12345
78.187.75.191 41182
122.173.206.18 21221
75.53.192.65 56862
123.204.71.15 12632
213.46.44.100 59580
76.115.102.119 40940
85.227.178.143 25158
79.129.187.145 16458
195.98.76.238 24480
85.227.228.157 51413
83.252.123.146 58345
86.110.176.106 30000
74.13.82.92 6881
92.33.129.197 16432
109.252.111.191 33426
188.17.177.14 23023
94.232.104.14 59873
60.54.43.194 14046
122.211.106.11 14409
113.10.81.130 18145
193.23.54.47 23933
151.46.167.111 14107
74.73.144.128 8944
188.168.34.126 50862
85.30.148.74 34178
83.99.166.208 32575
109.226.90.250 59039
216.252.93.187 10248
201.127.74.88 23041
220.232.101.77 10765
64.53.28.136 10809
111.254.1.128 17447
74.44.148.55 34665
84.10.244.103 48553
109.173.50.36 49288
84.3.119.233 45000
216.121.134.38 10348
77.49.255.137 38764
96.252.163.120 35217
72.89.151.90 17320
89.168.85.181 15348
124.84.78.74 10674
190.188.199.13 62986
94.254.73.152 44229
192.188.244.1 10634
84.215.248.234 40991
79.119.111.31 63150
95.155.230.83 54993
83.85.60.232 6881
178.130.32.118 14247
78.36.196.61 59269
76.29.12.37 12308
78.180.216.41 17351
61.231.198.76 14685
118.14.157.125 21624
71.62.37.197 7914
71.29.78.193 55989
118.18.244.181 25949
92.97.196.183 42303
118.104.11.221 21289
190.174.204.226 42233
89.134.203.232 17633
95.26.152.248 60268
46.0.3.147 27613
24.49.32.34 28441
99.23.91.163 15016
90.209.174.130 21332
71.17.47.149 53164
119.246.176.132 6881
111.249.153.64 21540
123.119.85.79 24805
116.15.111.133 44914
109.154.116.92 24460
142.167.215.241 12277
78.8.106.8 50000
78.8.193.215 64759

View File

@ -41,17 +41,31 @@
/*
* #define DEBUG_UDP_BITDHT 1
*
* #define BITDHT_VERSION_ANONYMOUS 1
*/
//#define DEBUG_UDP_BITDHT 1
#define BITDHT_VERSION_IDENTIFER 1
/*************************************/
UdpBitDht::UdpBitDht(UdpPublisher *pub, bdNodeId *id, std::string dhtVersion, std::string bootstrapfile, bdDhtFunctions *fns)
UdpBitDht::UdpBitDht(UdpPublisher *pub, bdNodeId *id, std::string appVersion, std::string bootstrapfile, bdDhtFunctions *fns)
:UdpSubReceiver(pub), mFns(fns)
{
std::string usedVersion;
#ifdef BITDHT_VERSION_IDENTIFER
usedVersion = "BD";
#endif
usedVersion += appVersion;
#ifdef BITDHT_VERSION_ANONYMOUS
usedVersion = ""; /* blank it */
#endif
/* setup nodeManager */
mBitDhtManager = new bdNodeManager(id, dhtVersion, bootstrapfile, fns);
mBitDhtManager = new bdNodeManager(id, usedVersion, bootstrapfile, fns);
}