modules: refactor indexes.

This commit is contained in:
Christopher Jeffrey 2016-11-19 06:29:59 -08:00
parent 0631148705
commit a1ec1bfff1
No known key found for this signature in database
GPG Key ID: 8962AB9DE6666BBD
13 changed files with 192 additions and 123 deletions

View File

@ -5,4 +5,4 @@ exports.ChainDB = require('./chaindb');
exports.ChainEntry = require('./chainentry');
exports.Coins = require('./coins');
exports.CoinView = require('./coinview');
exports.compressor = require('./compress');
exports.compress = require('./compress');

View File

@ -1,3 +1,48 @@
'use strict';
module.exports = require('./crypto');
var crypto = require('./crypto');
exports.crypto = crypto;
exports.hash = crypto.hash;
exports.ripemd160 = crypto.ripemd160;
exports.sha1 = crypto.sha1;
exports.sha256 = crypto.sha256;
exports.hash160 = crypto.hash160;
exports.hash256 = crypto.hash256;
exports.checksum = crypto.checksum;
exports.hmac = crypto.hmac;
exports.pbkdf2 = crypto.pbkdf2;
exports.pbkdf2Async = crypto.pbkdf2Async;
exports.scrypt = crypto.scrypt;
exports.scryptAsync = crypto.scryptAsync;
exports.hkdfExtract = crypto.hkdfExtract;
exports.hkdfExpand = crypto.hkdfExpand;
exports.buildMerkleTree = crypto.buildMerkleTree;
exports.getMerkleRoot = crypto.getMerkleRoot;
exports.getMerkleBranch = crypto.getMerkleBranch;
exports.checkMerkleBranch = crypto.checkMerkleBranch;
exports.encipher = crypto.encipher;
exports.decipher = crypto.decipher;
exports.ccmp = crypto.ccmp;
exports.ceq = crypto.ceq;
exports.cleanse = crypto.cleanse;
exports.randomBytes = crypto.randomBytes;
exports.randomInt = crypto.randomInt;
exports.randomRange = crypto.randomRange;
exports.chachapoly = require('./chachapoly');
exports.ChaCha20 = exports.chachapoly.ChaCha20;
exports.Poly1305 = exports.chachapoly.Poly1305;
exports.AEAD = exports.chachapoly.AEAD;
exports.pk = require('./pk');
exports.dsa = exports.pk.rsa;
exports.rsa = exports.pk.dsa;
exports.ecdsa = exports.pk.ecdsa;
exports.ec = require('./ec');
exports.schnorr = require('./schnorr');
exports.siphash = require('./siphash');
exports.siphash256 = exports.siphash.siphash256;

View File

@ -1,11 +1,5 @@
'use strict';
var utils = require('../utils/utils');
exports.ldb = require('./ldb');
if (utils.isBrowser)
exports.level = require('./level');
exports.LDB = require('./ldb');
exports.LowlevelUp = require('./lowlevelup');
exports.RBT = require('./rbt');

View File

@ -111,110 +111,115 @@ function Environment() {
// BN
this.require('bn', 'bn.js');
this.require('elliptic', 'elliptic');
// Protocol
this.require('constants', './protocol/constants');
this.require('networks', './protocol/networks');
this.require('network', './protocol/network');
// Horrible BIP
this.require('bip70', './bip70');
// Utils
this.require('utils', './utils/utils');
this.require('btcutils', './utils/btcutils');
this.require('locker', './utils/locker');
this.require('reader', './utils/reader');
this.require('writer', './utils/writer');
this.require('lru', './utils/lru');
this.require('bloom', './utils/bloom');
this.require('uri', './utils/uri');
this.require('errors', './utils/errors');
this.require('co', './utils/co');
this.require('base58', './utils/base58');
this.require('asn1', './utils/asn1');
this.require('pem', './utils/pem');
this.require('protobuf', './utils/protobuf');
// Chain
this.require('blockchain', './chain'); // -> blockchain?
this.require('chain', './chain/chain');
this.require('chaindb', './chain/chaindb');
this.require('chainentry', './chain/chainentry');
// Crypto
this.require('crypto', './crypto/crypto');
this.require('crypto', './crypto');
this.require('ec', './crypto/ec');
this.require('pk', './crypto/pk');
this.require('schnorr', './crypto/schnorr');
// DB
this.require('lowlevelup', './db/lowlevelup');
this.require('db', './db');
this.require('ldb', './db/ldb');
this.require('rbt', './db/rbt');
// Script
this.require('script', './script/script');
this.require('opcode', './script/opcode');
this.require('stack', './script/stack');
this.require('witness', './script/witness');
this.require('program', './script/program');
// Primitives
this.require('address', './primitives/address');
this.require('outpoint', './primitives/outpoint');
this.require('input', './primitives/input');
this.require('output', './primitives/output');
this.require('coin', './primitives/coin');
this.require('invitem', './primitives/invitem');
this.require('tx', './primitives/tx');
this.require('mtx', './primitives/mtx');
this.require('block', './primitives/block');
this.require('merkleblock', './primitives/merkleblock');
this.require('headers', './primitives/headers');
this.require('keyring', './primitives/keyring');
this.require('netaddress', './primitives/netaddress');
// HD
this.require('hd', './hd/hd');
// Node
this.require('logger', './node/logger');
this.require('config', './node/config');
this.require('node', './node/node');
this.require('spvnode', './node/spvnode');
this.require('fullnode', './node/fullnode');
// Net
this.require('time', './net/timedata');
this.require('packets', './net/packets');
this.require('bip150', './net/bip150');
this.require('bip151', './net/bip151');
this.require('bip152', './net/bip152');
this.require('peer', './net/peer');
this.require('pool', './net/pool');
// Chain
this.require('chainentry', './chain/chainentry');
this.require('chaindb', './chain/chaindb');
this.require('chain', './chain/chain');
// Mempool
this.require('fees', './mempool/fees');
this.require('mempool', './mempool/mempool');
this.require('mempoolentry', './mempool/mempoolentry');
// Miner
this.require('miner', './miner/miner');
this.require('minerblock', './miner/minerblock');
// Wallet
this.require('wallet', './wallet/wallet');
this.require('account', './wallet/account');
this.require('walletdb', './wallet/walletdb');
this.require('path', './wallet/path');
this.require('masterkey', './wallet/masterkey');
this.require('walletkey', './wallet/walletkey');
this.require('hd', './hd');
// HTTP
this.require('http', './http');
this.require('rpc', './http/rpc');
// Workers
this.require('workers', './workers/workers');
// Mempool
this.require('txmempool', './mempool'); // -> txmempool?
this.require('fees', './mempool/fees');
this.require('mempool', './mempool/mempool');
this.require('mempoolentry', './mempool/mempoolentry');
// Horrible BIP
this.require('bip70', './bip70');
// Miner
this.require('mining', './miner'); // -> mining?
this.require('miner', './miner/miner');
this.require('minerblock', './miner/minerblock');
// Net
this.require('net', './net');
this.require('bip150', './net/bip150');
this.require('bip151', './net/bip151');
this.require('bip152', './net/bip152');
this.require('packets', './net/packets');
this.require('peer', './net/peer');
this.require('pool', './net/pool');
this.require('time', './net/timedata'); // -> time?
// Node
this.require('node', './node');
this.require('config', './node/config');
this.require('fullnode', './node/fullnode');
this.require('logger', './node/logger');
this.require('spvnode', './node/spvnode');
// Primitives
this.require('primitives', './primitives'); // -> wire?
this.require('wire', './primitives');
this.require('address', './primitives/address');
this.require('block', './primitives/block');
this.require('coin', './primitives/coin');
this.require('headers', './primitives/headers');
this.require('input', './primitives/input');
this.require('invitem', './primitives/invitem');
this.require('keyring', './primitives/keyring');
this.require('merkleblock', './primitives/merkleblock');
this.require('mtx', './primitives/mtx');
this.require('netaddress', './primitives/netaddress');
this.require('outpoint', './primitives/outpoint');
this.require('output', './primitives/output');
this.require('tx', './primitives/tx');
// Protocol
this.require('protocol', './protocol');
this.require('constants', './protocol/constants');
this.require('network', './protocol/network');
this.require('networks', './protocol/networks');
// Script
this.require('scripting', './script'); // -> scripting?
this.require('opcode', './script/opcode');
this.require('program', './script/program');
this.require('script', './script/script');
this.require('sigcache', './script/sigcache');
this.require('stack', './script/stack');
this.require('witness', './script/witness');
// Utils
this.require('common', './utils'); // -> common
this.require('base58', './utils/base58');
this.require('btcutils', './utils/btcutils');
this.require('co', './utils/co');
this.require('reader', './utils/reader');
this.require('uri', './utils/uri');
this.require('utils', './utils/utils');
this.require('writer', './utils/writer');
// Wallet
this.require('wallet', './wallet');
this.require('account', './wallet/account');
this.require('path', './wallet/path');
this.require('masterkey', './wallet/masterkey');
this.require('walletkey', './wallet/walletkey');
this.require('walletdb', './wallet/walletdb');
// Workers
this.require('workers', './workers');
this.require('workerpool', './workers/workers'); // -> workerpool
}
/**
@ -232,7 +237,7 @@ Environment.prototype.set = function set(options) {
if (options.network)
this.network.set(options.network);
this.workers.set(options);
this.workerpool.set(options);
if (options.sigcacheSize != null)
this.sigcache.resize(options.sigcacheSize);
@ -254,12 +259,12 @@ Environment.prototype.now = function now() {
*/
Environment.prototype.cache = function cache() {
this.fullnode;
this.spvnode;
this.http;
this.schnorr;
this.uri;
this.bip70;
this.common;
this.crypto;
this.fullnode;
this.http;
this.spvnode;
};
/*

View File

@ -1,12 +1,12 @@
'use strict';
exports.bip150 = require('./bip150');
exports.bip151 = require('./bip151');
exports.bip152 = require('./bip152');
exports.Framer = require('./framer');
exports.BIP150 = require('./bip150');
exports.BIP151 = require('./bip151');
exports.BIP152 = require('./bip152');
exports.packets = require('./packets');
exports.Framer = require('./framer');
exports.Parser = require('./parser');
exports.Peer = require('./peer');
exports.Pool = require('./pool');
exports.ProxySocket = require('./proxysocket');
exports.tcp = require('./tcp');
exports.time = require('./timedata');

View File

@ -1,7 +1,7 @@
'use strict';
exports.config = require('./config');
exports.Fullnode = require('./fullnode');
exports.FullNode = require('./fullnode');
exports.Logger = require('./logger');
exports.Node = require('./node');
exports.SPVNode = require('./spvnode');

View File

@ -1,5 +1,5 @@
'use strict';
exports.constants = require('./constants');
exports.network = require('./network');
exports.networks = require('./networks');
exports.Network = require('./network');

View File

@ -1,3 +1,27 @@
'use strict';
module.exports = require('./utils');
exports.ASN1 = require('./asn1');
exports.AsyncObject = require('./async');
exports.base58 = require('./base58');
exports.Bloom = require('./bloom');
exports.RollingFilter = exports.Bloom.Rolling;
exports.btcutils = require('./btcutils');
exports.co = require('./co');
exports.encoding = require('./encoding');
exports.errors = require('./errors');
exports.IP = require('./ip');
exports.lazy = require('./lazy');
exports.Locker = require('./locker');
exports.MappedLocker = exports.Locker.Mapped;
exports.LRU = require('./lru');
exports.murmur3 = require('./murmur3');
exports.nextTick = require('./nexttick');
exports.nfkd = require('./nfkd');
exports.PEM = require('./pem');
exports.protobuf = require('./protobuf');
exports.ProtoWriter = exports.protobuf.ProtoWriter;
exports.ProtoReader = exports.protobuf.ProtoReader;
exports.BufferReader = require('./reader');
exports.uri = require('./uri');
exports.utils = require('./utils');
exports.BufferWriter = require('./writer');

View File

@ -1,8 +1,11 @@
'use strict';
exports.common = require('./common');
exports.Account = require('./account');
exports.layout = require('./layout');
exports.MasterKey = require('./masterkey');
exports.Path = require('./path');
exports.records = require('./records');
exports.TXDB = require('./txdb');
exports.WalletDB = require('./walletdb');
exports.Wallet = require('./wallet');

View File

@ -1,7 +1,6 @@
'use strict';
exports.jobs = require('./jobs');
exports.Worker = require('./worker');
exports.Workers = require('./workers');
exports.Parser = require('./parser');
exports.Framer = require('./framer');
exports.Parser = require('./parser');
exports.WorkerPool = require('./workers');

View File

@ -707,5 +707,3 @@ exports.set({
exports.WorkerPool = WorkerPool;
exports.Worker = Worker;
exports.Framer = Framer;
exports.Parser = Parser;

View File

@ -5,6 +5,7 @@ var bcoin = require('../').set('main');
var utils = bcoin.utils;
var btcutils = require('../lib/utils/btcutils');
var crypto = require('../lib/crypto/crypto');
var Bloom = require('../lib/utils/bloom');
var constants = bcoin.constants;
var network = bcoin.networks;
var assert = require('assert');
@ -129,7 +130,7 @@ describe('Block', function() {
});
it('should create a merkle block', function() {
var filter = bcoin.bloom.fromRate(1000, 0.01, constants.filterFlags.NONE);
var filter = Bloom.fromRate(1000, 0.01, constants.filterFlags.NONE);
var item1 = '8e7445bbb8abd4b3174d80fa4c409fea6b94d96b';
var item2 = '047b00000078da0dca3b0ec2300c00d0ab4466ed10'
+ 'e763272c6c9ca052972c69e3884a9022084215e2eef'

View File

@ -3,6 +3,8 @@
var bcoin = require('../').set('main');
var utils = bcoin.utils;
var crypto = require('../lib/crypto/crypto');
var Bloom = require('../lib/utils/bloom');
var murmur3 = require('../lib/utils/murmur3');
var constants = bcoin.constants;
var assert = require('assert');
@ -16,8 +18,6 @@ describe('Bloom', function() {
+ '0000000001000000800000080000000';
it('should do proper murmur3', function() {
var murmur3 = bcoin.bloom.murmur3;
function mm(str, seed, expect, enc) {
assert.equal(murmur3(new Buffer(str, enc || 'ascii'), seed), expect);
}
@ -46,7 +46,7 @@ describe('Bloom', function() {
});
it('should test and add stuff', function() {
var b = new bcoin.bloom(512, 10, 156);
var b = new Bloom(512, 10, 156);
b.add('hello', 'ascii');
assert(b.test('hello', 'ascii'));
@ -62,7 +62,7 @@ describe('Bloom', function() {
});
it('should serialize to the correct format', function() {
var filter = new bcoin.bloom(952, 6, 3624314491, constants.filterFlags.NONE);
var filter = new Bloom(952, 6, 3624314491, constants.filterFlags.NONE);
var item1 = '8e7445bbb8abd4b3174d80fa4c409fea6b94d96b';
var item2 = '047b00000078da0dca3b0ec2300c00d0ab4466ed10'
+ 'e763272c6c9ca052972c69e3884a9022084215e2eef'
@ -73,7 +73,7 @@ describe('Bloom', function() {
});
it('should handle 1m ops with regular filter', function() {
var filter = bcoin.bloom.fromRate(210000, 0.00001, -1);
var filter = Bloom.fromRate(210000, 0.00001, -1);
filter.tweak = 0xdeadbeef;
// ~1m operations
for (var i = 0; i < 1000; i++) {
@ -89,7 +89,7 @@ describe('Bloom', function() {
});
it('should handle 1m ops with rolling filter', function() {
var filter = new bcoin.bloom.Rolling(210000, 0.00001);
var filter = new Bloom.Rolling(210000, 0.00001);
filter.tweak = 0xdeadbeef;
// ~1m operations
for (var i = 0; i < 1000; i++) {
@ -105,7 +105,7 @@ describe('Bloom', function() {
});
it('should handle rolling generations', function() {
var filter = new bcoin.bloom.Rolling(50, 0.00001);
var filter = new Bloom.Rolling(50, 0.00001);
filter.tweak = 0xdeadbeee;
for (var i = 0; i < 25; i++) {
var str = 'foobar' + i;