comments.
This commit is contained in:
parent
a8e6eda850
commit
27ecf6dde3
@ -43,8 +43,8 @@ function Chain(options) {
|
|||||||
this.pendingBlocks = {};
|
this.pendingBlocks = {};
|
||||||
this.pendingSize = 0;
|
this.pendingSize = 0;
|
||||||
this.total = 0;
|
this.total = 0;
|
||||||
this.orphanLimit = options.orphanLimit || 10 * 1024 * 1024;
|
this.orphanLimit = options.orphanLimit || 20 * 1024 * 1024;
|
||||||
this.pendingLimit = options.pendingLimit || 10 * 1024 * 1024;
|
this.pendingLimit = options.pendingLimit || 20 * 1024 * 1024;
|
||||||
this.invalid = {};
|
this.invalid = {};
|
||||||
this.bestHeight = -1;
|
this.bestHeight = -1;
|
||||||
this.lastUpdate = utils.now();
|
this.lastUpdate = utils.now();
|
||||||
@ -1162,12 +1162,19 @@ Chain.prototype.add = function add(initial, peer, callback, force) {
|
|||||||
|
|
||||||
assert(prev);
|
assert(prev);
|
||||||
|
|
||||||
|
// Explanation: we try to keep as much data
|
||||||
|
// off the javascript heap as possible. Blocks
|
||||||
|
// in the future may be 8mb or 20mb, who knows.
|
||||||
|
// In fullnode-mode we store the blocks in
|
||||||
|
// "compact" form (the headers plus the raw
|
||||||
|
// Buffer object) until they're ready to be
|
||||||
|
// fully validated here. They are deserialized,
|
||||||
|
// validated, and emitted. Hopefully the deserialized
|
||||||
|
// blocks get cleaned up by the GC quickly.
|
||||||
if (block.type === 'compactblock') {
|
if (block.type === 'compactblock') {
|
||||||
block = block.toBlock(peer);
|
block = block.toBlock(peer);
|
||||||
if (!block)
|
if (!block)
|
||||||
return done(new Error('Failed to parse block.'));
|
return done(new Error('Failed to parse block.'));
|
||||||
if (block._raw === initial._raw)
|
|
||||||
initial = block;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Do "contextual" verification on our block
|
// Do "contextual" verification on our block
|
||||||
@ -1281,7 +1288,7 @@ Chain.prototype.add = function add(initial, peer, callback, force) {
|
|||||||
// Emit our block (and potentially resolved
|
// Emit our block (and potentially resolved
|
||||||
// orphan) so the programmer can save it.
|
// orphan) so the programmer can save it.
|
||||||
self.emit('block', block, entry, peer);
|
self.emit('block', block, entry, peer);
|
||||||
if (block !== initial)
|
if (block.hash('hex') !== initial.hash('hex'))
|
||||||
self.emit('resolved', block, entry, peer);
|
self.emit('resolved', block, entry, peer);
|
||||||
|
|
||||||
self.emit('add block', block);
|
self.emit('add block', block);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user