bcoin node moved to its own file
This commit is contained in:
parent
3ee90bdbef
commit
aaef1c7273
66
index.js
66
index.js
@ -1,74 +1,12 @@
|
|||||||
const FullNode = require('bcoin/lib/node/fullnode');
|
const node = require('./lib/node');
|
||||||
const config = require(`${__dirname}/config/config.js`);
|
|
||||||
const logger = require('./lib/logger');
|
const logger = require('./lib/logger');
|
||||||
const Block = require('./models/block');
|
|
||||||
const Api = require('./lib/api');
|
const Api = require('./lib/api');
|
||||||
const db = require('./lib/db');
|
|
||||||
const util = require('./lib/util');
|
|
||||||
const node = new FullNode(config.bcoin);
|
|
||||||
|
|
||||||
logger.log('debug',
|
logger.log('debug',
|
||||||
'Debug mode started');
|
'Debug mode started');
|
||||||
|
|
||||||
node.open()
|
|
||||||
.then()
|
|
||||||
|
|
||||||
node.open()
|
|
||||||
.then(() => {
|
|
||||||
node.connect().then(() => {
|
|
||||||
node.startSync();
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
node.chain.on('connect', (entry, block) => {
|
|
||||||
console.log(entry.height);
|
|
||||||
processBlock(entry, block);
|
|
||||||
});
|
|
||||||
|
|
||||||
node.mempool.on('tx', (tx) => {
|
|
||||||
console.log(tx);
|
|
||||||
});
|
|
||||||
|
|
||||||
node.chain.on('full', () => {
|
|
||||||
node.mempool.getHistory().then(console.log);
|
|
||||||
});
|
|
||||||
|
|
||||||
function processBlock(entry, block) {
|
|
||||||
block.hash = util.revHex(block.hash().toString('hex'));
|
|
||||||
logger.log('debug',
|
|
||||||
`New Block Height: ${block.height}, Hash: ${block.hash}`);
|
|
||||||
|
|
||||||
console.log(entry);
|
|
||||||
|
|
||||||
const b = new Block({
|
|
||||||
hash: block.hash,
|
|
||||||
size: block.size,
|
|
||||||
height: block.height,
|
|
||||||
version: block.version,
|
|
||||||
merkleRoot: block.merkleRoot,
|
|
||||||
tx: block.txs.map(tx => util.revHex(tx.hash().toString('hex'))),
|
|
||||||
time: block.ts,
|
|
||||||
nonce: block.nonce,
|
|
||||||
bits: block.bits,
|
|
||||||
difficulty: block.bits,
|
|
||||||
chainwork: entry.chainwork,
|
|
||||||
confirmations: 0,
|
|
||||||
previousBlockHash: block.previousBlockHash,
|
|
||||||
nextBlockHash: 0,
|
|
||||||
reward: 0,
|
|
||||||
timeNormalized: block.ts,
|
|
||||||
isMainChain: true,
|
|
||||||
poolInfo: Object,
|
|
||||||
transactionCount: block.txs.length,
|
|
||||||
});
|
|
||||||
b.save((err) => {
|
|
||||||
if (err) {
|
|
||||||
console.log(err);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
Api.listen(3000, () => {
|
Api.listen(3000, () => {
|
||||||
logger.log('debug',
|
logger.log('debug',
|
||||||
'listening on port 3000');
|
'listening on port 3000');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
49
lib/node/index.js
Normal file
49
lib/node/index.js
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
const FullNode = require('bcoin/lib/node/fullnode');
|
||||||
|
const config = require('../../config/config.js');
|
||||||
|
const node = new FullNode(config.bcoin);
|
||||||
|
const BlockSchema = require('../../models/block');
|
||||||
|
const logger = require('../../lib/logger');
|
||||||
|
const db = require('../../lib/db');
|
||||||
|
const util = require('../../lib/util');
|
||||||
|
|
||||||
|
node.open()
|
||||||
|
.then(() => {
|
||||||
|
node.connect().then(() => {
|
||||||
|
node.startSync();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
node.chain.on('connect', (entry, block) => {
|
||||||
|
processBlock(entry, block);
|
||||||
|
});
|
||||||
|
|
||||||
|
function processBlock(entry, block, cb) {
|
||||||
|
block.hash = util.revHex(block.hash().toString('hex'))
|
||||||
|
const b = new BlockSchema({
|
||||||
|
hash: block.hash,
|
||||||
|
size: block.size,
|
||||||
|
height: block.height,
|
||||||
|
version: block.version,
|
||||||
|
merkleRoot: block.merkleRoot,
|
||||||
|
tx: block.txs.map(tx => util.revHex(tx.hash().toString('hex'))),
|
||||||
|
time: block.ts,
|
||||||
|
nonce: block.nonce,
|
||||||
|
bits: block.bits,
|
||||||
|
difficulty: block.bits,
|
||||||
|
chainwork: entry.chainwork,
|
||||||
|
confirmations: 0,
|
||||||
|
previousBlockHash: block.previousBlockHash,
|
||||||
|
nextBlockHash: 0,
|
||||||
|
reward: 0,
|
||||||
|
timeNormalized: block.ts,
|
||||||
|
isMainChain: true,
|
||||||
|
poolInfo: Object,
|
||||||
|
transactionCount: block.txs.length,
|
||||||
|
});
|
||||||
|
|
||||||
|
b.save((err) => {
|
||||||
|
if (err) {
|
||||||
|
console.log(err.message);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
@ -1,8 +1,5 @@
|
|||||||
function revHex(hex) {
|
function revHex(hex) {
|
||||||
let rev = '';
|
let rev = '';
|
||||||
for (let i = 0; i < hex.length; i += 2) {
|
|
||||||
rev = hex.slice(i, i + 2) + rev;
|
|
||||||
}
|
|
||||||
|
|
||||||
return rev;
|
return rev;
|
||||||
}
|
}
|
||||||
|
|||||||
18
package-lock.json
generated
18
package-lock.json
generated
@ -58,14 +58,6 @@
|
|||||||
"resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.6.tgz",
|
"resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.6.tgz",
|
||||||
"integrity": "sha1-8zshWfBTKj8xB6JywMz70a0peco="
|
"integrity": "sha1-8zshWfBTKj8xB6JywMz70a0peco="
|
||||||
},
|
},
|
||||||
"async": {
|
|
||||||
"version": "2.1.4",
|
|
||||||
"resolved": "https://registry.npmjs.org/async/-/async-2.1.4.tgz",
|
|
||||||
"integrity": "sha1-LSFgx3iAMuTdbL4lAvH5osj2zeQ=",
|
|
||||||
"requires": {
|
|
||||||
"lodash": "4.17.4"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"backo2": {
|
"backo2": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz",
|
||||||
@ -1028,6 +1020,16 @@
|
|||||||
"muri": "1.2.2",
|
"muri": "1.2.2",
|
||||||
"regexp-clone": "0.0.1",
|
"regexp-clone": "0.0.1",
|
||||||
"sliced": "1.0.1"
|
"sliced": "1.0.1"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"async": {
|
||||||
|
"version": "2.1.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/async/-/async-2.1.4.tgz",
|
||||||
|
"integrity": "sha1-LSFgx3iAMuTdbL4lAvH5osj2zeQ=",
|
||||||
|
"requires": {
|
||||||
|
"lodash": "4.17.4"
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"mpath": {
|
"mpath": {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user