2016-02-14 18:05:21 -08:00
|
|
|
#!/usr/bin/env node
|
|
|
|
|
|
2016-06-13 01:06:01 -07:00
|
|
|
'use strict';
|
|
|
|
|
|
2016-07-04 05:36:06 -07:00
|
|
|
var bcoin = require('../');
|
2016-02-14 18:05:21 -08:00
|
|
|
var utils = bcoin.utils;
|
|
|
|
|
var assert = utils.assert;
|
|
|
|
|
|
2016-04-08 18:11:19 -07:00
|
|
|
process.on('uncaughtException', function(err) {
|
2016-07-04 05:36:06 -07:00
|
|
|
node.logger.debug(err.stack);
|
|
|
|
|
node.logger.error(err);
|
2016-04-08 18:11:19 -07:00
|
|
|
process.exit(1);
|
|
|
|
|
});
|
|
|
|
|
|
2016-07-21 12:36:11 -07:00
|
|
|
var fast = process.argv.indexOf('--fast') !== -1;
|
|
|
|
|
|
2016-05-07 00:52:55 -07:00
|
|
|
var node = new bcoin.fullnode({
|
2016-07-04 05:36:06 -07:00
|
|
|
logLevel: 'debug',
|
|
|
|
|
logFile: true,
|
|
|
|
|
db: 'leveldb',
|
2016-03-11 23:09:07 -08:00
|
|
|
prune: process.argv.indexOf('--prune') !== -1,
|
2016-07-20 19:30:52 -07:00
|
|
|
compact: process.argv.indexOf('--compact') !== -1,
|
2016-07-21 12:36:11 -07:00
|
|
|
useCheckpoints: fast || process.argv.indexOf('--checkpoints') !== -1,
|
|
|
|
|
coinCache: fast || process.argv.indexOf('--coin-cache') !== -1,
|
2016-04-03 21:43:50 -07:00
|
|
|
selfish: process.argv.indexOf('--selfish') !== -1,
|
2016-07-21 12:36:11 -07:00
|
|
|
headers: fast || process.argv.indexOf('--headers') !== -1,
|
2016-07-25 18:26:29 -07:00
|
|
|
parallel: process.argv.indexOf('--parallel') !== -1,
|
|
|
|
|
bip151: process.argv.indexOf('--bip151') !== -1
|
2016-02-14 18:05:21 -08:00
|
|
|
});
|
|
|
|
|
|
|
|
|
|
node.on('error', function(err) {
|
2016-07-04 05:36:06 -07:00
|
|
|
;
|
2016-02-14 18:05:21 -08:00
|
|
|
});
|
2016-03-22 17:36:58 -07:00
|
|
|
|
|
|
|
|
node.open(function(err) {
|
|
|
|
|
if (err)
|
|
|
|
|
throw err;
|
|
|
|
|
|
2016-05-19 11:56:11 -07:00
|
|
|
node.listen(function(err) {
|
|
|
|
|
if (err)
|
|
|
|
|
throw err;
|
|
|
|
|
|
2016-07-04 05:36:06 -07:00
|
|
|
if (process.argv.indexOf('--mine') === -1) {
|
2016-05-22 19:24:21 -07:00
|
|
|
node.startSync();
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (node.network.type === 'regtest') {
|
2016-05-19 11:56:11 -07:00
|
|
|
node.miner.start();
|
2016-05-22 22:12:03 -07:00
|
|
|
node.startSync();
|
2016-05-19 11:56:11 -07:00
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
2016-05-22 19:24:21 -07:00
|
|
|
node.pool.connect();
|
2016-05-19 11:56:11 -07:00
|
|
|
node.startSync();
|
2016-05-22 19:24:21 -07:00
|
|
|
|
|
|
|
|
if (node.chain.isFull()) {
|
|
|
|
|
node.miner.start();
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
node.chain.once('full', node.miner.start.bind(node.miner));
|
2016-05-19 11:56:11 -07:00
|
|
|
});
|
2016-03-22 17:36:58 -07:00
|
|
|
});
|