Skip to content

Commit e61ec61

Browse files
committed
PseudoNode can now pretend to be Bitcoin XT.
Run PseudoNode with the `--coin=bitcoin-xt --stealth' options.
1 parent cf0131f commit e61ec61

File tree

1 file changed

+29
-3
lines changed

1 file changed

+29
-3
lines changed

main.c

Lines changed: 29 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,23 @@ extern int inet_pton(int af, const char *src, void *dst);
6363

6464
#include "pseudo_node.h"
6565

66+
static const char *bitcoin_xt_dns_seeds[] =
67+
{
68+
"seed.bitcoin.sipa.be",
69+
"dnsseed.bluematt.me",
70+
"dnsseed.bitcoin.dashjr.org",
71+
"seed.bitcoinstats.com",
72+
"seed.bitnodes.io",
73+
"bitseed.xf2.org",
74+
NULL
75+
};
76+
static const struct PN_coin bitcoin_xt =
77+
{
78+
"bitcoin-xt", bitcoin_xt_dns_seeds,
79+
8333, 70010, 0xD9B4BEF9, 360000, true
80+
};
81+
const struct PN_coin * const BITCOIN_XT = &bitcoin_xt;
82+
6683
#define OPTION_CLIENT 1
6784
#define OPTION_COIN 2
6885
#define OPTION_HELP 3
@@ -107,6 +124,7 @@ int main(int argc, char **argv)
107124
bool PREFETCH = false;
108125
unsigned THRESHOLD = 2;
109126
const char *USER_AGENT = NULL;
127+
unsigned long long SERVICES = NODE_NETWORK;
110128
struct in6_addr peers[32];
111129
size_t peers_idx = 0;
112130
memset(peers, 0, sizeof(peers));
@@ -128,6 +146,8 @@ int main(int argc, char **argv)
128146
COIN = TESTNET;
129147
else if (strcmp(optarg, "litecoin") == 0)
130148
COIN = LITECOIN;
149+
else if (strcmp(optarg, "bitcoin-xt") == 0)
150+
COIN = BITCOIN_XT;
131151
else
132152
{
133153
fprintf(stderr, "fatal: unknown coin \"%s\"\n", optarg);
@@ -207,8 +227,8 @@ int main(int argc, char **argv)
207227
fprintf(stderr, "\t--coin=COIN\n");
208228
fprintf(stderr, "\t\tAttach to COIN network "
209229
"(default=bitcoin). Supported coins are:\n");
210-
fprintf(stderr, "\t\tbitcoin, testnet, litecoin, dogecoin, "
211-
"paycoin, flappycoin\n");
230+
fprintf(stderr, "\t\tbitcoin, testnet, litecoin, "
231+
"bitcoin-xt\n");
212232
return 0;
213233
}
214234
}
@@ -235,6 +255,11 @@ int main(int argc, char **argv)
235255
USER_AGENT = "/Satoshi:0.11.0/";
236256
else if (COIN == LITECOIN)
237257
USER_AGENT = "/Satoshi:0.8.7.5/";
258+
else if (COIN == BITCOIN_XT)
259+
{
260+
SERVICES |= NODE_GETUTXOS;
261+
USER_AGENT = "/Bitcoin XT:0.11.0/";
262+
}
238263
}
239264
if (THRESHOLD < 1 || THRESHOLD > MAX_OUTBOUND_PEERS)
240265
{
@@ -244,11 +269,12 @@ int main(int argc, char **argv)
244269
}
245270

246271
#ifdef LINUX
247-
signal(SIGPIPE, SIG_IGN);
272+
signal(SIGPIPE, SIG_IGN);
248273
#endif
249274

250275
struct PN_config CONFIG;
251276
memset(&CONFIG, 0, sizeof(CONFIG));
277+
CONFIG.services = SERVICES;
252278
CONFIG.user_agent = USER_AGENT;
253279
CONFIG.threshold = THRESHOLD;
254280
CONFIG.prefetch = PREFETCH;

0 commit comments

Comments
 (0)