diff --git a/db/rocksdb.go b/db/rocksdb.go index e4fe33b2..68bfdc9a 100644 --- a/db/rocksdb.go +++ b/db/rocksdb.go @@ -44,10 +44,10 @@ const ( var cfNames = []string{"default", "height", "outputs", "inputs"} func openDB(path string) (*gorocksdb.DB, []*gorocksdb.ColumnFamilyHandle, error) { - c := gorocksdb.NewLRUCache(8 << 30) // 8 gb + c := gorocksdb.NewLRUCache(8 << 30) // 8GB fp := gorocksdb.NewBloomFilter(10) bbto := gorocksdb.NewDefaultBlockBasedTableOptions() - bbto.SetBlockSize(16 << 10) // 16kb + bbto.SetBlockSize(16 << 10) // 16kB bbto.SetBlockCache(c) bbto.SetFilterPolicy(fp) @@ -57,16 +57,16 @@ func openDB(path string) (*gorocksdb.DB, []*gorocksdb.ColumnFamilyHandle, error) opts.SetCreateIfMissingColumnFamilies(true) opts.SetMaxBackgroundCompactions(4) opts.SetMaxBackgroundFlushes(2) - opts.SetBytesPerSync(1 << 20) // 1mb - opts.SetWriteBufferSize(1 << 29) // .5 gb + opts.SetBytesPerSync(1 << 20) // 1MB + opts.SetWriteBufferSize(1 << 24) // 16MB opts.SetMaxOpenFiles(25000) opts.SetCompression(gorocksdb.NoCompression) // opts for outputs are different: // no bloom filter - from documentation: If most of your queries are executed using iterators, you shouldn't set bloom filter bbtoOutputs := gorocksdb.NewDefaultBlockBasedTableOptions() - bbtoOutputs.SetBlockSize(16 << 10) // 16kb - bbtoOutputs.SetBlockCache(c) // 8 gb + bbtoOutputs.SetBlockSize(16 << 10) // 16kB + bbtoOutputs.SetBlockCache(c) // 8GB optsOutputs := gorocksdb.NewDefaultOptions() optsOutputs.SetBlockBasedTableFactory(bbtoOutputs) @@ -74,8 +74,8 @@ func openDB(path string) (*gorocksdb.DB, []*gorocksdb.ColumnFamilyHandle, error) optsOutputs.SetCreateIfMissingColumnFamilies(true) optsOutputs.SetMaxBackgroundCompactions(4) optsOutputs.SetMaxBackgroundFlushes(2) - optsOutputs.SetBytesPerSync(1 << 20) // 1mb - optsOutputs.SetWriteBufferSize(1 << 29) // 0.5 gb + optsOutputs.SetBytesPerSync(1 << 20) // 1MB + optsOutputs.SetWriteBufferSize(1 << 24) // 16MB optsOutputs.SetMaxOpenFiles(25000) optsOutputs.SetCompression(gorocksdb.NoCompression) diff --git a/test.json b/test.json new file mode 100644 index 00000000..bef059bd --- /dev/null +++ b/test.json @@ -0,0 +1,242 @@ +{ + "sendTransaction": { + "method": "sendTransaction", + "params": [ + "010000000001019d64f0c72a0d206001decbffaa722eb1044534c74eee7a5df8318e42a4323ec10000000017160014550da1f5d25a9dae2eafd6902b4194c4c6500af6ffffffff02809698000000000017a914cd668d781ece600efa4b2404dc91fd26b8b8aed8870553d7360000000017a914246655bdbd54c7e477d0ea2375e86e0db2b8f80a8702473044022076aba4ad559616905fa51d4ddd357fc1fdb428d40cb388e042cdd1da4a1b7357022011916f90c712ead9a66d5f058252efd280439ad8956a967e95d437d246710bc9012102a80a5964c5612bb769ef73147b2cf3c149bc0fd4ecb02f8097629c94ab013ffd00000000" + ] + }, + "sendTransactionResult": { + "result": "474e6795760ebe81cb4023dc227e5a0efe340e1771c89a0035276361ed733de7" + }, + "getDetailedTransaction": { + "method": "getDetailedTransaction", + "params": [ + "474e6795760ebe81cb4023dc227e5a0efe340e1771c89a0035276361ed733de7" + ] + }, + "getDetailedTransactionResult": { + "result": { + "hex": "010000000001019d64f0c72a0d206001decbffaa722eb1044534c74eee7a5df8318e42a4323ec10000000017160014550da1f5d25a9dae2eafd6902b4194c4c6500af6ffffffff02809698000000000017a914cd668d781ece600efa4b2404dc91fd26b8b8aed8870553d7360000000017a914246655bdbd54c7e477d0ea2375e86e0db2b8f80a8702473044022076aba4ad559616905fa51d4ddd357fc1fdb428d40cb388e042cdd1da4a1b7357022011916f90c712ead9a66d5f058252efd280439ad8956a967e95d437d246710bc9012102a80a5964c5612bb769ef73147b2cf3c149bc0fd4ecb02f8097629c94ab013ffd00000000", + "height": -1, + "version": 1, + "hash": "474e6795760ebe81cb4023dc227e5a0efe340e1771c89a0035276361ed733de7", + "locktime": 0, + "size": 166, + "inputs": [ + { + "prevTxId": "c13e32a4428e31f85d7aee4ec7344504b12e72aaffcbde0160200d2ac7f0649d", + "outputIndex": 0, + "script": "160014550da1f5d25a9dae2eafd6902b4194c4c6500af6", + "scriptAsm": "0014550da1f5d25a9dae2eafd6902b4194c4c6500af6", + "sequence": 4294967295, + "address": "2N79YMqgEqpr1Lqgqi6gU76zqTWbk4dRqyV", + "satoshis": 930081328 + } + ], + "inputSatoshis": 930081328, + "outputs": [ + { + "satoshis": 10000000, + "script": "a914cd668d781ece600efa4b2404dc91fd26b8b8aed887", + "scriptAsm": "OP_HASH160 cd668d781ece600efa4b2404dc91fd26b8b8aed8 OP_EQUAL", + "address": "2NByHN6A8QYkBATzxf4pRGbCSHD5CEN2TRu" + }, + { + "satoshis": 920081157, + "script": "a914246655bdbd54c7e477d0ea2375e86e0db2b8f80a87", + "scriptAsm": "OP_HASH160 246655bdbd54c7e477d0ea2375e86e0db2b8f80a OP_EQUAL", + "address": "2MvZguYaGjM7JihBgNqgLF2Ca2Enb76Hj9D" + } + ], + "outputSatoshis": 930081157, + "feeSatoshis": 171 + } + }, + "getD2": { + "result": { + "hex": "010000000001019d64f0c72a0d206001decbffaa722eb1044534c74eee7a5df8318e42a4323ec10000000017160014550da1f5d25a9dae2eafd6902b4194c4c6500af6ffffffff02809698000000000017a914cd668d781ece600efa4b2404dc91fd26b8b8aed8870553d7360000000017a914246655bdbd54c7e477d0ea2375e86e0db2b8f80a8702473044022076aba4ad559616905fa51d4ddd357fc1fdb428d40cb388e042cdd1da4a1b7357022011916f90c712ead9a66d5f058252efd280439ad8956a967e95d437d246710bc9012102a80a5964c5612bb769ef73147b2cf3c149bc0fd4ecb02f8097629c94ab013ffd00000000", + "blockHash": "0000000000000d77454274b1f62d1b4472d582fa02399489b3529c1861bd910a", + "height": 1283714, + "blockTimestamp": 1519053802, + "version": 1, + "hash": "474e6795760ebe81cb4023dc227e5a0efe340e1771c89a0035276361ed733de7", + "locktime": 0, + "size": 0, + "inputs": [ + { + "prevTxId": "", + "outputIndex": 0, + "script": "160014550da1f5d25a9dae2eafd6902b4194c4c6500af6", + "scriptAsm": "0014550da1f5d25a9dae2eafd6902b4194c4c6500af6", + "sequence": 4294967295, + "address": "", + "satoshis": 0 + } + ], + "inputSatoshis": 0, + "outputs": [ + { + "satoshis": 100000000, + "script": "a914cd668d781ece600efa4b2404dc91fd26b8b8aed887", + "scriptAsm": "OP_HASH160 cd668d781ece600efa4b2404dc91fd26b8b8aed8 OP_EQUAL", + "address": "" + }, + { + "satoshis": 9200811570, + "script": "a914246655bdbd54c7e477d0ea2375e86e0db2b8f80a87", + "scriptAsm": "OP_HASH160 246655bdbd54c7e477d0ea2375e86e0db2b8f80a OP_EQUAL", + "spentIndex": 1, + "address": "" + } + ], + "outputSatoshis": 0, + "feeSatoshis": 0 + } + }, + "subscribe": [ + "subscribe", + "bitcoind/hashblock" + ], + "subscribe": [ + "subscribe", + "bitcoind/addresstxid", + [ + "2MzTmvPJLZaLzD9XdN3jMtQA5NexC3rAPww", + "2NAZRJKr63tSdcTxTN3WaE9ZNDyXy6PgGuv", + "2NBBaTqmVhTPkjAY5k3QMrGrgT1obB6Yfqo", + "2MsiAgG5LVDmnmJUPnYaCeQnARWGbGSVnr3", + "2NEa5ASseCV5twDukyQQzZDeeGGLx8xqSk7", + "2N4N3tcDD9fscewxLhiikYeGx5ErdqBAB6i", + "2Muf6t9yiQgNQwEbeav65tioqXxUZgZZDsP", + "2MyLfpnU6V3htkKc4GDy3jZJwrqEny5zuD1", + "2N64PAnkCsNiNPS9jRcWdABgUQBVnSH3Txq", + "2NCMAKdd28nZRryJpp32QFGA2g2pqxk4TPU", + "2Mshkm6yjJsqc9An1Agyg8bNaLLByNwB5rk", + "2NDEEu7sZrMRybPZwkiPcNZTEeLCTcmdeNG", + "2MxWgUGs2Ei77s2NiE5tSAcnZa5sm46ucbx", + "2NA83v4j5NxYfwRrPKRHMHCQH7bjkKqpubF", + "2NEXU6r1AnbVaqKSJUJfH9MdpynrKaD1CJc", + "2Muay1N4aD2K3sg5mz6QsLMu8qpXfois8CJ", + "2N6vi3wuKjHgZyvsaiB4Z3ai5eB9FNSusut", + "2N3rvH6gmdPPMsGrsEpbeoYBkLdrE5bzYRy", + "2MufqF2TPsVwbBJ1KCM4dMSYorwNXNZg5ws", + "2Mw78UAMckVsTwXb8VnfDfozMJSaaR4Uqqr" + ] + ], + "subscribeResult:": [ + "bitcoind/hashblock", + "000000000000104614560f9110e89a139baf87bd389c255cdbe3dcf8d8f78fc0" + ], + "subscribeResult": [ + "bitcoind/addresstxid", + { + "address": "2NByHN6A8QYkBATzxf4pRGbCSHD5CEN2TRu", + "txid": "474e6795760ebe81cb4023dc227e5a0efe340e1771c89a0035276361ed733de7" + } + ], + "dbl": { + "result": { + "totalCount": 3, + "items": [ + { + "addresses": { + "2N4Q5FhU2497BryFfUgbqkAJE87aKHUhXMp": { + "inputIndexes": [ + 0 + ], + "outputIndexes": [] + } + }, + "satoshis": 0, + "confirmations": 221285, + "tx": { + "hex": "010000000001018a44999c07bba32df1cacdc50987944e68e3205b4429438fdde35c76024614090000000000ffffffff02404b4c000000000017a9147a55d61848e77ca266e79a39bfc85c580a6426c987a8386f0000000000160014d16b8c0680c61fc6ed2e407455715055e41052f502483045022100a7ca8f097525f9044e64376dc0a0f5d4aeb8d15d66808ba97979a0475b06b66502200597c8ebcef63e047f9aeef1a8001d3560470cf896c12f6990eec4faec599b950121033add1f0e8e3c3136f7428dd4a4de1057380bd311f5b0856e2269170b4ffa65bf00000000", + "height": 1063387, + "blockTimestamp": 1483374791, + "version": 1, + "hash": "65b811d3eca0fe6915d9f2d77c86c5a7f19bf66b1b1253c2c51cb4ae5f0c017b", + "inputs": [ + { + "outputIndex": 0, + "script": "", + "scriptAsm": "", + "sequence": 4294967295, + "address": "2N4Q5FhU2497BryFfUgbqkAJE87aKHUhXMp", + "satoshis": 0 + } + ], + "outputs": [ + { + "satoshis": 5000000, + "script": "a9147a55d61848e77ca266e79a39bfc85c580a6426c987", + "scriptAsm": "OP_HASH160 7a55d61848e77ca266e79a39bfc85c580a6426c9 OP_EQUAL", + "address": "2N4Q5FhU2497BryFfUgbqkAJE87aKHUhXMp" + }, + { + "satoshis": 7289000, + "script": "0014d16b8c0680c61fc6ed2e407455715055e41052f5", + "scriptAsm": "0 d16b8c0680c61fc6ed2e407455715055e41052f5", + "spentIndex": 1, + "address": "" + } + ] + } + } + ] + } + }, + "dbc": { + "result": { + "totalCount": 3, + "items": [ + { + "addresses": { + "2Mt7P2BAfE922zmfXrdcYTLyR7GUvbwSEns": { + "inputIndexes": [ + 0 + ], + "outputIndexes": [] + } + }, + "satoshis": -4998060, + "confirmations": 167491, + "tx": { + "hex": "01000000000101b37ac5560b4af9d3c8128037c6f9710973870fe29d7d2bcb0af45109cdc7030000000000171600148696844b831babb221cdf61bd403d4957615ebfeffffffff01183c4c000000000017a914923d8873eaa1f1bf3ada05eddab1a8af36c40dcb8702473044022033f5eb9966f84aded43db81d7be4f61bd2640845f39e8451019411838f09979702205abe01330e56944bb9de0ed46b1c76eb45b88a501fea8063fd8b7035a620c2400121037ff6f928c104d7a01ebc9cf5e0a6d4f03e555788d6b4dda6e9ffbc40f6cdbaf700000000", + "blockHash": "00000000000008ff4f8113a18638d296f72acbdafe7b556e8c704a4840a30640", + "height": 1117182, + "blockTimestamp": 1491764656, + "version": 1, + "hash": "c6a92097466b9a690eeb9e704625587cbcf357520cc7573b2323d5b012026e0e", + "locktime": 0, + "size": 134, + "inputs": [ + { + "prevTxId": "0003c7cd0951f40acb2b7d9de20f87730971f9c6378012c8d3f94a0b56c57ab3", + "outputIndex": 0, + "script": "1600148696844b831babb221cdf61bd403d4957615ebfe", + "scriptAsm": "00148696844b831babb221cdf61bd403d4957615ebfe", + "sequence": 4294967295, + "address": "2Mt7P2BAfE922zmfXrdcYTLyR7GUvbwSEns", + "satoshis": 4998060 + } + ], + "inputSatoshis": 4998060, + "outputs": [ + { + "satoshis": 4996120, + "script": "a914923d8873eaa1f1bf3ada05eddab1a8af36c40dcb87", + "scriptAsm": "OP_HASH160 923d8873eaa1f1bf3ada05eddab1a8af36c40dcb OP_EQUAL", + "spentTxId": "08c7ffb9d594d9c9f4e8827ca6058b94ff865260aa467c325562a213386be99e", + "spentIndex": 0, + "spentHeight": 1117205, + "address": "2N6aUMgQk8y1zvoq6FeWFyotyj75WY9BGsu" + } + ], + "outputSatoshis": 4996120, + "feeSatoshis": 1940 + } + } + ] + } + } +} \ No newline at end of file