go from highest timestamp to lowest timestamp

This commit is contained in:
Patrick Nagurny 2015-09-15 18:23:06 -04:00
parent e6b850124c
commit 7e1d433781
3 changed files with 16 additions and 15 deletions

View File

@ -36,10 +36,10 @@ node.getBlock(blockHash, function(err, block) {
Get Block Hashes by Timestamp Range Get Block Hashes by Timestamp Range
```js ```js
var time1 = 1441911000; // Notice time is in seconds not milliseconds var newest = 1441914000; // Notice time is in seconds not milliseconds
var time2 = 1441914000; var oldest = 1441911000;
node.getBlockHashesByTimestamp(time1, time2, function(err, hashes) { node.getBlockHashesByTimestamp(newest, oldest, function(err, hashes) {
//... //...
}); });
``` ```

View File

@ -201,17 +201,18 @@ DB.prototype.getBlock = function(hash, callback) {
/** /**
* get block hashes between two timestamps * get block hashes between two timestamps
* @param {Number} start - first timestamp, in seconds, inclusive * @param {Number} high - high timestamp, in seconds, inclusive
* @param {Number} end - second timestamp, in seconds, inclusive * @param {Number} low - low timestamp, in seconds, inclusive
* @param {Function} callback * @param {Function} callback
*/ */
DB.prototype.getBlockHashesByTimestamp = function(start, end, callback) { DB.prototype.getBlockHashesByTimestamp = function(high, low, callback) {
var self = this; var self = this;
var hashes = []; var hashes = [];
var stream = this.store.createReadStream({ var stream = this.store.createReadStream({
gte: this._encodeBlockIndexKey(start), gte: this._encodeBlockIndexKey(low),
lte: this._encodeBlockIndexKey(end), lte: this._encodeBlockIndexKey(high),
reverse: true,
valueEncoding: 'binary', valueEncoding: 'binary',
keyEncoding: 'binary' keyEncoding: 'binary'
}); });

View File

@ -387,22 +387,22 @@ describe('DB Service', function() {
timestamp: 1441913112 timestamp: 1441913112
}; };
db.getBlockHashesByTimestamp(1441911000, 1441914000, function(err, hashes) { db.getBlockHashesByTimestamp(1441914000, 1441911000, function(err, hashes) {
should.not.exist(err); should.not.exist(err);
hashes.should.deep.equal([block1.hash, block2.hash]); hashes.should.deep.equal([block2.hash, block1.hash]);
done(); done();
}); });
readStream.emit('data', {
key: db._encodeBlockIndexKey(block1.timestamp),
value: db._encodeBlockIndexValue(block1.hash)
});
readStream.emit('data', { readStream.emit('data', {
key: db._encodeBlockIndexKey(block2.timestamp), key: db._encodeBlockIndexKey(block2.timestamp),
value: db._encodeBlockIndexValue(block2.hash) value: db._encodeBlockIndexValue(block2.hash)
}); });
readStream.emit('data', {
key: db._encodeBlockIndexKey(block1.timestamp),
value: db._encodeBlockIndexValue(block1.hash)
});
readStream.emit('close'); readStream.emit('close');
}); });