60 lines
1.1 KiB
JavaScript
Executable File
60 lines
1.1 KiB
JavaScript
Executable File
#!/usr/bin/env node
|
|
|
|
'use strict';
|
|
|
|
var bcoin = require('../');
|
|
var utils = bcoin.utils;
|
|
var assert = utils.assert;
|
|
|
|
process.on('uncaughtException', function(err) {
|
|
node.logger.debug(err.stack);
|
|
node.logger.error(err);
|
|
process.exit(1);
|
|
});
|
|
|
|
var node = new bcoin.fullnode({
|
|
logLevel: 'debug',
|
|
logFile: true,
|
|
db: 'leveldb',
|
|
prune: process.argv.indexOf('--prune') !== -1,
|
|
useCheckpoints: process.argv.indexOf('--checkpoints') !== -1,
|
|
selfish: process.argv.indexOf('--selfish') !== -1,
|
|
headers: process.argv.indexOf('--headers') !== -1,
|
|
parallel: process.argv.indexOf('--parallel') !== -1
|
|
});
|
|
|
|
node.on('error', function(err) {
|
|
;
|
|
});
|
|
|
|
node.open(function(err) {
|
|
if (err)
|
|
throw err;
|
|
|
|
node.listen(function(err) {
|
|
if (err)
|
|
throw err;
|
|
|
|
if (process.argv.indexOf('--mine') === -1) {
|
|
node.startSync();
|
|
return;
|
|
}
|
|
|
|
if (node.network.type === 'regtest') {
|
|
node.miner.start();
|
|
node.startSync();
|
|
return;
|
|
}
|
|
|
|
node.pool.connect();
|
|
node.startSync();
|
|
|
|
if (node.chain.isFull()) {
|
|
node.miner.start();
|
|
return;
|
|
}
|
|
|
|
node.chain.once('full', node.miner.start.bind(node.miner));
|
|
});
|
|
});
|