Commit Graph

457 Commits

Author SHA1 Message Date
Braydon Fuller
e7587564a7 Address History: Add getAddressHistoryCount to available API methods. 2015-09-14 17:29:43 -04:00
Braydon Fuller
b1b40c892e Address History: Add getAddressHistoryCount method 2015-09-14 16:48:28 -04:00
Braydon Fuller
87a9163743 Address History: Docs for "start" and "end" arguments 2015-09-14 16:29:27 -04:00
Braydon Fuller
a80b58e004 Address History: Fix sorting bug 2015-09-14 16:11:31 -04:00
Chris Kleeschulte
7b50f5ff3d Switched to using a flag instead of using a replacement. 2015-09-14 13:15:55 -04:00
Braydon Fuller
f88eee5a1c Improve db storage efficiency by ~2 times
Encodes and decodes keys and values for leveldb storage more efficiently.
2015-09-14 00:30:21 -04:00
Braydon Fuller
d3641f3b0a Pagination Optimization
- Sort and paginate before getting full transaction details.
- Only get detailed transaction information for items within the current page.
- Improves the performance with large sets of transactions.
2015-09-14 00:30:14 -04:00
Braydon Fuller
1cf34f2dd8 Address Block Handling Optimizations
- Changes to use ripemd160 hash directly instead of the base58check encoded values
- Speeds block handling performance by ~4 times
2015-09-12 19:56:13 -04:00
Braydon Fuller
c205f781a5 Pagination for Address History
- Reindexing the bitcore-node database is required with this change.
- Address indexes are updated to include address and height in spent index so that both inputs and outputs can be queried by address and height using "start" and "stop" to limit the range of the query.
- Address history also now supports paginated results using "from" and "to" values that indicate an index in the array.
2015-09-12 19:44:10 -04:00
Chris Kleeschulte
51355c51f1 Multiple sigints sent to the node process
- Added a simple replacement function after the first sigint is handled.
- Added unit tests for the exitHandler, requiring it to be exposed from the module.
2015-09-11 16:27:24 -04:00
Chris Kleeschulte
60a133f36c Multiple SIGINT signals sent to node process while in shutdown cycle.
- Overrode the sigint listener if in the shutdown cycle. This prevents control being returned to the pty before the node process is fully halted.
2015-09-11 12:39:33 -04:00
Chris Kleeschulte
65e09ef281 Added integration for the bus
- Added a new file that exercises the subscribe/unsubscribe/close methods with a test service
- Removed a duplicate call to inherit
2015-09-10 13:19:12 -04:00
Patrick Nagurny
c4d28c3947 wait for db operations to complete before closing leveldb 2015-09-10 12:45:00 -04:00
Patrick Nagurny
8b0b401d52 inherit https options from node 2015-09-10 11:08:48 -04:00
Patrick Nagurny
5677964651 add https to web service 2015-09-09 16:49:36 -04:00
Patrick Nagurny
4682714c69 check for blockHandler on services 2015-09-09 15:04:07 -04:00
Braydon Fuller
2f6fc6e3e9 Merge pull request #202 from pnagurny/feature/main-chain
Add isMainChain method
2015-09-09 10:08:21 -04:00
Patrick Nagurny
0ff742c1b6 add isMainChain method 2015-09-08 17:38:59 -04:00
Braydon Fuller
60af86777f Start/Stop Improvements
- A Node will shutdown if there is an error starting a service as it would lead to cascading errors.
- `node.start()` needs to be called, and nolonger is called automatically when the instance is created.
- A service will only be added to node.services after it's started
- Stopping services that are not started will gracefully continue.
- Logging sync status of db will only apply if the service is started.
- Debug log about a service without a route will always include the service name
2015-09-08 10:17:57 -04:00
Braydon Fuller
b4ed29eabe Merge pull request #193 from kleetus/reindex
Reindex logic
2015-09-08 10:15:34 -04:00
Chris Kleeschulte
94c345134e Daemon
- Added the daemon option to the cli start command
- Added the initialization routine to spawn the child process
- Added unit tests
2015-09-04 17:36:53 -04:00
Chris Kleeschulte
18aff3de0c Fixed the warning message to the user on a reindex. 2015-09-04 16:59:04 -04:00
Braydon Fuller
9aec734122 Merge pull request #195 from pnagurny/bug/transaction-fee
Handle getFee() error
2015-09-04 14:28:37 -04:00
Patrick Nagurny
79ae3bb412 handle getFee() error 2015-09-04 14:28:04 -04:00
Braydon Fuller
50925d1e0f Add tests for reorg improvement, and remove nolonger need code. 2015-09-04 13:52:59 -04:00
Chris Kleeschulte
730dd37318 Reindex logic
- If the reindex option is set in bitcoin.conf, then when start is called and onBlocksReady's callback is fired:
	- start's callback will not be fired until the reindex takes place.
	- along the way the sync percentage is display once per second
2015-09-04 11:39:38 -04:00
Patrick Nagurny
60a7f5ea29 optimizations for handling reorgs better 2015-09-04 11:32:04 -04:00
Patrick Nagurny
a0e40ffd15 check for duplicate events 2015-09-03 17:29:28 -04:00
Patrick Nagurny
7ac429fbd2 remove name field from node 2015-09-03 16:59:43 -04:00
Patrick Nagurny
900f715a49 add tests 2015-09-03 16:38:23 -04:00
Patrick Nagurny
da6b6e3622 more changes for services 2015-09-03 16:07:35 -04:00
Braydon Fuller
52e80039d8 CLI fixes for installing and removing services. 2015-09-02 18:39:19 -04:00
Chris Kleeschulte
79d4abcc64 Removed the setImmediate after conflict resolution. 2015-09-02 10:51:31 -04:00
Chris Kleeschulte
0ac83098e9 Removed setImmediates from bitcoind.js. 2015-09-02 10:46:40 -04:00
Patrick Nagurny
fd2790daab Merge pull request #170 from braydonf/coverage
Improve test coverage and cleanup.
2015-09-02 10:43:41 -04:00
Patrick Nagurny
1f94215aa2 timestamp should be a number not a string 2015-09-01 17:34:30 -04:00
Braydon Fuller
63e71d7f0c Added unit tests for db.saveMetadata 2015-09-01 14:29:04 -04:00
Braydon Fuller
efc770f7eb Bitcoind is already logging the status. 2015-09-01 13:55:51 -04:00
Braydon Fuller
f2fb4a1379 Fixed object typo in start scaffold. 2015-09-01 13:37:14 -04:00
Braydon Fuller
396d6ac08a Avoid logging the same result twice. 2015-09-01 13:29:02 -04:00
Braydon Fuller
96fa0920a4 Add unit tests for start. 2015-09-01 12:47:15 -04:00
Braydon Fuller
53adaa7e6a Improve test coverage and cleanup. 2015-08-31 16:32:25 -04:00
Patrick Nagurny
4ae6377548 fixes 2015-08-31 15:15:55 -04:00
Patrick Nagurny
895e46dcac pass config to services 2015-08-31 13:37:11 -04:00
Patrick Nagurny
f1cac3da1d make webService into a real service 2015-08-31 13:06:49 -04:00
Patrick Nagurny
1b5f30a9a1 add tests 2015-08-31 12:57:49 -04:00
Patrick Nagurny
a68cf4ecf8 Web service and other changes in preparation for insight-api 2015-08-31 12:54:28 -04:00
Braydon Fuller
7551f487f8 Rename modules to services. 2015-08-31 11:31:28 -04:00
Braydon Fuller
16eef1279c Combine chain with db module. 2015-08-31 11:25:30 -04:00
Braydon Fuller
df9b62acca Convert db into a db module. 2015-08-31 11:15:51 -04:00
Braydon Fuller
96f6604222 Convert daemon into bitcoin module. 2015-08-31 11:11:16 -04:00
Braydon Fuller
ea377c1251 Added CLI commands "remove" and "call" 2015-08-28 17:13:02 -04:00
Braydon Fuller
43ab4586e5 Bus module fix. 2015-08-28 16:16:51 -04:00
Braydon Fuller
56ebf42403 Move Modules from DB to Node 2015-08-27 19:02:33 -04:00
Braydon Fuller
5361183a19 Use node as a reference in modules, db and chain. 2015-08-27 14:04:42 -04:00
Braydon Fuller
ccab818d33 Use Bitcore Block/BlockHeader 2015-08-27 12:14:25 -04:00
Braydon Fuller
bbc421a31e Migrate chainlib functionality into bitcore-node. 2015-08-26 17:24:10 -04:00
Braydon Fuller
da537b293b CLI Fixes
- Globally installed cli script will load local version
- Modules can add a "bitcoreNode" to package.json to specify a specific module to load
2015-08-26 13:19:02 -04:00
Braydon Fuller
81b2d2f2a3 Added tests for start command. 2015-08-25 13:57:54 -04:00
Braydon Fuller
7e174fd0cd Handle exit codes from npm install with the create command. 2015-08-25 13:15:30 -04:00
Braydon Fuller
5ea787b3a1 Added add command and tests. 2015-08-25 13:01:52 -04:00
Braydon Fuller
af88cbe55f Fix node units tests for _loadDB 2015-08-24 19:00:31 -04:00
Braydon Fuller
348598747b Include more options and fallback to default config with start command 2015-08-24 18:57:50 -04:00
Braydon Fuller
be525b055d Replace ~/.bitcoin with process.env.HOME 2015-08-24 18:53:37 -04:00
Braydon Fuller
6c7501b45f Include script env and include a build version. 2015-08-24 18:51:07 -04:00
Braydon Fuller
69056db529 Move start to scaffold start and pass the bitcore-node configuration. 2015-08-24 18:51:07 -04:00
Braydon Fuller
0b4af2757b Implement function to find configuration in the current path. 2015-08-24 18:51:07 -04:00
Braydon Fuller
67a2035365 Run npm install if the node is created locally. 2015-08-24 18:51:07 -04:00
Braydon Fuller
399d379ff5 More tests for config creation. 2015-08-24 18:51:07 -04:00
Braydon Fuller
00e4eac14a Layout test cases and files for cli commands. 2015-08-24 18:51:07 -04:00
Braydon Fuller
49cf3a9ca3 Fix reorg integration test after rebase. 2015-08-24 16:39:05 -04:00
Braydon Fuller
f1642388af Fix unit tests for node. 2015-08-24 14:46:48 -04:00
Braydon Fuller
9be5db84c9 Added node reorg integration regtest 2015-08-24 13:59:33 -04:00
Patrick Nagurny
06f0593613 fix reorg issue 2015-08-24 13:58:40 -04:00
Patrick Nagurny
efdf38d5c2 don't call store.close() due to issues 2015-08-24 13:29:42 -04:00
Patrick Nagurny
a9e5ee6f1a add tests 2015-08-24 13:29:42 -04:00
Patrick Nagurny
b0ab45f3f7 handle signals and stop correctly 2015-08-24 13:29:42 -04:00
Patrick Nagurny
164a2cad75 cleanup daemon 2015-08-24 13:29:42 -04:00
Patrick Nagurny
a61e1d9b8f start and stop services 2015-08-24 13:29:42 -04:00
Patrick Nagurny
2dc79efc0d make 0 confirmations work 2015-08-19 15:10:26 -04:00
Patrick Nagurny
eacb04f4f9 fix block subscription 2015-08-18 17:49:29 -04:00
Patrick Nagurny
d6d9c6a975 take out modifying behavior to estimateFee 2015-08-18 12:20:30 -04:00
Patrick Nagurny
43ec2d3b34 add more tests 2015-08-17 14:27:46 -04:00
Patrick Nagurny
738574d6b1 add fees to address history 2015-08-14 16:28:51 -04:00
Patrick Nagurny
bf4cec6bf5 use latest bitcore 2015-08-14 16:01:27 -04:00
Patrick Nagurny
78bc054bfa changes for BWS integration 2015-08-14 11:15:07 -04:00
Braydon Fuller
52cc91e1d7 Merge pull request #113 from kleetus/txindex_message
Blockchain state
2015-08-12 21:21:30 -04:00
Patrick Nagurny
223aebf98c Merge pull request #117 from kleetus/blockchain_synced
GetProgress, will report the GuessVerificationProgress for the blockchain
2015-08-12 15:32:09 -04:00
Chris Kleeschulte
8115d92de9 Removed verifyScript and related methods that we don't currently use. 2015-08-12 12:38:33 -04:00
Braydon Fuller
6584974413 Emit "synced" event when bitcoind is synced
- Added daemon IsSynced method
- Renamed GetProgress to SyncPercentage
- Improved logging when syncing is finished
2015-08-11 17:24:30 -04:00
Chris Kleeschulte
7a539a26ff added additional message. 2015-08-11 09:45:38 -04:00
Chris Kleeschulte
fe7397fb0b Added a check for txindex enabled in the config. 2015-08-10 14:05:05 -04:00
Braydon Fuller
ba2fdc1620 Fix jsdoc for transactionOutputHandler 2015-08-10 13:04:34 -04:00
Braydon Fuller
16f7ffa784 Process incoming transactions for the Address Module
- Transaction events are emitted when an address matches subscribers
- The Address Module listens for incoming transactions from the daemon
2015-08-07 16:49:45 -04:00
Braydon Fuller
50981b713a Speed up syncing by delaying saving metadata every 30 seconds. 2015-08-06 17:53:10 -04:00
Patrick Nagurny
c2b062f535 fix uncaught exception handling 2015-08-06 17:14:14 -04:00
Braydon Fuller
c21ff322b7 Merge pull request #97 from pnagurny/startnode
Simple RPC/websockets API
2015-08-04 17:33:35 -04:00
Patrick Nagurny
10843182c1 fixes 2015-08-04 17:30:55 -04:00
Patrick Nagurny
e95d4c865f finish getting everything to work. add tests 2015-08-04 17:30:55 -04:00
Patrick Nagurny
a2962dc7f3 get rpc over socket io to work 2015-08-04 17:30:46 -04:00
Patrick Nagurny
c0d28386ae Merge pull request #101 from braydonf/blkbench
Optimizations for address module blockhandler
2015-08-04 16:42:59 -04:00
Chris Kleeschulte
d997a7093c Merge pull request #102 from braydonf/dbpath
Update database directory for bitcore-node.
2015-08-04 16:42:14 -04:00
Braydon Fuller
598cf64a5f Start a node and expose API methods and events over a socket. 2015-08-04 16:36:41 -04:00
Braydon Fuller
dd59d5f64b Optimizations for address module blockhandler
- _scriptBuffer instead of reserializing the script
2015-08-04 16:19:06 -04:00
Braydon Fuller
c88c873184 Update database directory for bitcore-node. 2015-08-04 15:06:00 -04:00
Braydon Fuller
412078e1a0 Cleanup lib/daemon and remove functions not implemented. 2015-08-04 13:53:44 -04:00
Braydon Fuller
de77dbf99b Add tests around db.getTransaction and return NotFound error. 2015-08-03 18:11:11 -04:00
Braydon Fuller
f4061037b6 Update name to Bitcore Node 2015-07-31 13:26:48 -04:00
Patrick Nagurny
2a55c900ce update tests 2015-07-31 11:13:33 -04:00
Patrick Nagurny
4a4e71797a getTransactionWithBlockInfo 2015-07-31 11:13:33 -04:00
Patrick Nagurny
7e8d17ae13 refactor into getAddressHistory 2015-07-31 11:12:43 -04:00
Patrick Nagurny
073353f895 write tests 2015-07-31 11:12:43 -04:00
Patrick Nagurny
bede8a96ea convert input to object 2015-07-31 11:12:43 -04:00
Patrick Nagurny
ac774ba9e8 find transactions which spend from the address 2015-07-31 11:12:43 -04:00
Patrick Nagurny
d5801c9172 getTransactionsForAddress() without mempool 2015-07-31 11:12:43 -04:00
Braydon Fuller
49587b7e2d Process tx messages
- Check for tx command when processing messages
- Emit tx events from the daemon
- Start the txmon when the daemon starts
2015-07-30 20:26:08 -04:00
Braydon Fuller
6f56df0c6f Added p2p message signal bindings. 2015-07-30 18:05:03 -04:00
Chris Kleeschulte
7cf5570071 Merge pull request #57 from braydonf/feature/pub-sub
Event Bus Subscriptions
2015-07-30 12:40:37 -04:00
Braydon Fuller
725120a24e Add tests for event bus. 2015-07-29 17:53:48 -04:00
Braydon Fuller
097fd6e3ba Merge branch 'bus' into feature/pub-sub 2015-07-29 13:37:47 -04:00
Patrick Nagurny
c3da3e0b92 fix 2015-07-29 13:37:13 -04:00
Braydon Fuller
f2fdfed7e9 Add bus to subcribe to events. 2015-07-29 13:36:23 -04:00
Patrick Nagurny
d563704e1c address subscriptions 2015-07-29 13:34:53 -04:00
Braydon Fuller
2ca3a48884 Expose estimateFee method. 2015-07-28 16:03:55 -04:00
Braydon Fuller
939b19c65d Call sync on initial ready event. 2015-07-25 00:02:46 -04:00
Braydon Fuller
4f281dcefe Update chain prevHash cache. 2015-07-24 23:18:14 -04:00
Braydon Fuller
9890a4f0da Added tests for _syncBitcoindRewind 2015-07-24 13:45:31 -04:00
Braydon Fuller
93ed8bfd8d Fix bug with feedback loop during shutdown
- Use height to indicate tip change by comparing heights
- Give undefined for callback when shutting down
2015-07-24 12:32:28 -04:00
Braydon Fuller
ab4addc82e Split out _syncBitcoindAncestor from _syncBitcoindRewind and added unit tests 2015-07-23 23:07:13 -04:00
Braydon Fuller
9eda30ae2b Handle forks with bitcoindSync
- added bindings to listen for tip updates from the daemon
- update the height during syncing for continuity
- call sync when there is a new tip
- added ability to rewind to a ancestor when there is a fork
2015-07-23 20:06:19 -04:00
Braydon Fuller
6dc3577e00 Create data directory on a fresh start. 2015-07-23 18:45:17 -04:00
Patrick Nagurny
9108b0f695 rename methods to getAPIMethods 2015-07-23 15:34:36 -06:00
Patrick Nagurny
fd8ee3ba9d expose getBlock method 2015-07-23 15:08:09 -06:00
Patrick Nagurny
990f508bbb update README with module docs 2015-07-23 15:03:18 -06:00
Patrick Nagurny
8290d61a09 only pass db as option to module because other params aren't available until init 2015-07-23 13:30:36 -06:00
Patrick Nagurny
14e21fadb0 update tests 2015-07-23 09:34:10 -06:00
Patrick Nagurny
8d39d02ee6 modularize db 2015-07-23 09:34:10 -06:00
Braydon Fuller
509b424262 Fix bug with loading the genesis block for testnet. 2015-07-23 09:33:40 -04:00
Braydon Fuller
7b8268d0e0 Use prevHash from bitcoind block index
- Changed method getChainWork into getBlockIndex
- Added prevHash to getBlockIndex result
2015-07-22 16:56:17 -04:00
Braydon Fuller
b53fa3f6bb Added regtest for sendTransaction method. 2015-07-22 13:59:28 -04:00
Braydon Fuller
7f5c509254 Update tests to pass network option with regtest option. 2015-07-21 13:47:25 -04:00
Braydon Fuller
787aa37e7a Removed extra files and updated config options. 2015-07-21 13:23:38 -04:00
Chris Kleeschulte
cf6225c495 Regtest testing
- Removed config option for build scripts, replaced with env variable
- Updated README
- Added regtest option under test build, wallet built-in
- added network key to bindings
- datadir for the bitcoind object instead of directory
- added new config_options scripts for test and debug
2015-07-21 13:06:43 -04:00
Braydon Fuller
4d784ba8f5 Add test for loading bitcoin.conf 2015-07-21 12:17:44 -04:00
Braydon Fuller
75058b26b9 Add and fix unit tests for configuration options. 2015-07-21 11:52:08 -04:00
Braydon Fuller
0bbc388ca6 Cleanup configuration options 2015-07-21 11:16:12 -04:00
Patrick Nagurny
06cbdb4440 use bitcoind.getMempoolOutputs() 2015-07-20 13:38:56 -06:00
Patrick Nagurny
482fd53f3d use getChainWork from bitcoind 2015-07-20 11:55:16 -06:00
Patrick Nagurny
94ceaa1857 fix to rebase conflict issue 2015-07-20 11:27:28 -06:00
Patrick Nagurny
655ac37ba0 changes in response to feedback 2015-07-20 10:40:35 -06:00