add index to handle txs in orphan blocks faster
This commit is contained in:
parent
165b8f53ca
commit
2eacaf3bf9
@ -21,8 +21,7 @@ function spec() {
|
|||||||
var a = new BitcoreAddress(addrStr);
|
var a = new BitcoreAddress(addrStr);
|
||||||
a.validate();
|
a.validate();
|
||||||
this.addrStr = addrStr;
|
this.addrStr = addrStr;
|
||||||
|
|
||||||
|
|
||||||
Object.defineProperty(this, 'totalSent', {
|
Object.defineProperty(this, 'totalSent', {
|
||||||
get: function() {
|
get: function() {
|
||||||
return parseFloat(this.totalSentSat) / parseFloat(BitcoreUtil.COIN);
|
return parseFloat(this.totalSentSat) / parseFloat(BitcoreUtil.COIN);
|
||||||
@ -56,6 +55,8 @@ function spec() {
|
|||||||
|
|
||||||
Address.prototype.update = function(next) {
|
Address.prototype.update = function(next) {
|
||||||
var self = this;
|
var self = this;
|
||||||
|
if (!self.addrStr) return next();
|
||||||
|
|
||||||
var db = new TransactionDb();
|
var db = new TransactionDb();
|
||||||
async.series([
|
async.series([
|
||||||
function (cb) {
|
function (cb) {
|
||||||
|
|||||||
@ -9,7 +9,7 @@ function spec(b) {
|
|||||||
var IN_BLK_PREFIX = 'tx-b-'; //tx-b-<txid>-<block> => 1/0 (connected or not)
|
var IN_BLK_PREFIX = 'tx-b-'; //tx-b-<txid>-<block> => 1/0 (connected or not)
|
||||||
|
|
||||||
// Only for orphan blocks
|
// Only for orphan blocks
|
||||||
// var FROM_BLK_PREFIX = 'tx-'; //tx-<block>-<txid> => 1/0 (connected or not)
|
var FROM_BLK_PREFIX = 'tx-'; //tx-<block>-<txid> => 1
|
||||||
|
|
||||||
// to show tx outs
|
// to show tx outs
|
||||||
var OUTS_PREFIX = 'txouts-'; //txouts-<txid>-<n> => [addr, btc_sat]
|
var OUTS_PREFIX = 'txouts-'; //txouts-<txid>-<n> => [addr, btc_sat]
|
||||||
@ -408,6 +408,7 @@ function spec(b) {
|
|||||||
|
|
||||||
db.batch()
|
db.batch()
|
||||||
.put(IN_BLK_PREFIX + txId + '-' + blockHash, confirmed)
|
.put(IN_BLK_PREFIX + txId + '-' + blockHash, confirmed)
|
||||||
|
.put(FROM_BLK_PREFIX + blockHash + '-' + txId, 1)
|
||||||
.write(c);
|
.write(c);
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -430,19 +431,20 @@ function spec(b) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
TransactionDb.prototype.handleBlockChange = function(hash, isMain, cb) {
|
TransactionDb.prototype.handleBlockChange = function(hash, isMain, cb) {
|
||||||
var k = IN_BLK_PREFIX;
|
|
||||||
var toChange = [];
|
var toChange = [];
|
||||||
console.log('\tSearching Txs from block:' + hash);
|
console.log('\tSearching Txs from block:' + hash);
|
||||||
|
|
||||||
|
var k = FROM_BLK_PREFIX + hash;
|
||||||
|
var k2 = IN_BLK_PREFIX;
|
||||||
// This is slow, but prevent us to create a new block->tx index.
|
// This is slow, but prevent us to create a new block->tx index.
|
||||||
db.createReadStream({start: k, end: k + '~'})
|
db.createReadStream({start: k, end: k + '~'})
|
||||||
.on('data', function (data) {
|
.on('data', function (data) {
|
||||||
if (data.key.indexOf(hash)>=0)
|
var ks = data.key.split('-');
|
||||||
toChange.push({
|
toChange.push({
|
||||||
|
key: k2 + ks[2] + '-' + ks[1],
|
||||||
type: 'put',
|
type: 'put',
|
||||||
key: data.key,
|
|
||||||
value: isMain?1:0,
|
value: isMain?1:0,
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
.on('error', function (err) {
|
.on('error', function (err) {
|
||||||
return cb(err);
|
return cb(err);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user