3
0
mirror of https://github.com/Qortal/altcoinj.git synced 2025-02-23 23:55:48 +00:00

396 Commits

Author SHA1 Message Date
Matt Corallo
7c03eefefd Send peers a bloom filter from our wallet(s). 2013-01-27 03:40:31 -05:00
Matt Corallo
394d0b788d Add Wallet.getBloomFilter and a test-case for it. 2013-01-27 03:40:30 -05:00
Matt Corallo
e263229b62 Add BloomFilter class/messages and a test-case. 2013-01-27 02:32:36 -05:00
Mike Hearn
40c13eb3f3 Fix send futures in FakeChannelSink to unbreak a unit test that deadlocks after a previous change. 2013-01-23 17:17:00 +01:00
Mike Hearn
d919ede7a8 Specify time zone in block chain unit test. Resolves issue 291. 2013-01-23 17:12:53 +01:00
Mike Hearn
6504296b79 Avoid confusing bugs by switching NetworkParameters.testNet() to be testnet3 not testnet2. 2013-01-16 18:15:46 +01:00
Mike Hearn
75e467dfc4 Make TestUtils.roundTripTransaction public. 2013-01-16 17:55:36 +01:00
Mike Hearn
916e33254f Resolve some race conditions.
It was possible that during saving of a wallet a network thread would update the confidence metrics due to broadcast announcements. This change makes TransactionConfidence use a COW list so the broadcast peer set can be iterated over safely. Resolves issue 277.
2013-01-12 14:27:49 +01:00
Mike Hearn
b5b43f3a15 Better support for lock timed transactions.
Lock times are now included in various toString dumps.
Transactions can estimate their lock time when the time is specified as a block number.
Add support to WalletTool for creating timelocked transactions.
2013-01-12 14:26:59 +01:00
Mike Hearn
dd9e0d5d0d Fix my previous buggy commit that changed Utils.bitcoinValueToFriendlyString 2013-01-10 13:26:19 +01:00
Mike Hearn
d268270d7b Use compressed pubkeys by default. Resolves issue 111. 2013-01-09 23:45:24 +01:00
Mike Hearn
0bdfa7b635 Better formatting in Utils.bitcoinValueToFriendlyString 2013-01-09 23:45:23 +01:00
Mike Hearn
ae6b2fbd4d Improvements to the ECKey class:
- Implement ECDSA key recovery.
- Use it to implement sign/verifymessage functionality that's compatible with Bitcoin-Qt.
- Redesign the signing APIs a bit.
2013-01-06 22:07:55 +01:00
Mike Hearn
7e8ed913ec Use ChannelGroups for shutdowns. This cleans up the code and makes the PeerGroup shutdown futures work correctly. 2013-01-04 18:29:47 +01:00
Matt Corallo
0208b426f5 Add a few more tests to FullBlockTestGenerator.
...including one which (somewhat) tests the optimally encoded size
stuff.
2012-12-31 15:56:06 +01:00
Mike Hearn
671a5aec18 Add a TransactionInput.verify() method that checks signatures and use it from the basicSpending test to ensure we generate valid signatures/scripts. 2012-12-26 18:14:39 +00:00
Mike Hearn
3197be51ea Minor simplifications. 2012-12-25 01:23:16 +00:00
Mike Hearn
ea3fca970c Incorporate protocol version into download peer selection logic. 2012-12-25 00:28:49 +00:00
Mike Hearn
22ff79dd8a Re-evaluate download peer when a new peer connects. Add unit tests for selecting the best peer. 2012-12-24 23:48:48 +00:00
Mike Hearn
07011be796 Introduce a PeerGroup method for calculating the most common chain height.
Use it to make peer selection a little smarter.
Render pending peers and peers that are reporting un-common chain heights in PeerMonitor.
2012-12-24 22:32:16 +00:00
Mike Hearn
2a55c58460 Make PeerGroup startup blocking in the unit tests. 2012-12-24 21:27:49 +00:00
Mike Hearn
75c007fab3 Fix unit tests. 2012-12-24 16:35:52 +00:00
Mike Hearn
590fd82fdc Fix a regression introduced by the block height accessor changes that prevented DownloadListener from triggering. Fix more inconsistent locking issues. 2012-12-11 00:22:25 +01:00
Mike Hearn
b64a3b5d1e Some work on DNS discovery - look up all seeds in parallel, pick 30 results, shuffle them and return. Allow users to specify a timeout. Return after the 30 results are found or we run out of time, whichever is first. Should smooth bumpy startup delays caused by occasional seed breakdowns. 2012-12-07 17:06:53 +01:00
Mike Hearn
68fa57c922 Fix unit test bug 2012-12-07 16:59:49 +01:00
Mike Hearn
26f63550be Implement calculation of a moving average of ping times. Improve PeerMonitor by making columns sortable. 2012-12-07 14:45:41 +01:00
Mike Hearn
3f89eda933 Fix some bugs that happen in chainless operation. Make Peer.getBestChainHeight() more accurate by taking into account blocks announced after a peer is connected, not just what it announced in the initial version message. 2012-12-07 13:59:37 +01:00
Mike Hearn
5cc9710e1f Have PeerGroup ping peers that support BIP 31 ping/pong responses, by default every 5 seconds. The last time ping is available in Peer.getLastPingTime(). This will shortly be used for ordering peers by responsiveness so we don't try and download from overloaded peers. 2012-12-07 12:47:38 +01:00
Mike Hearn
f440913c1d Some improvements to the network code:
- Delete the PeerGroupThread and replace it with a connectToAnyPeer() method. Getting connected to the network is now significantly faster as there is no sleep-wait loop between connections.
- Delete the connectionTimeMillis param to the PeerGroup constructors.
- Expose the PeerGroup c'tor that lets you specify the ClientBootstrap and expose a utility method to make one. This means users can now customize TCP options directly.
- PeerGroup.setMaxConnections() now actually creates or tears down connections to meet the new required number, if the peer group is running.
- Update the PeerMonitor so there's a spinner that lets you add or remove peers. Connecting and version handshaking is very fast now.
- Misc changes and fixes.
2012-12-06 15:06:37 +01:00
Mike Hearn
e20c35bf50 Fix FakeChannelSink so events are put into the queue in the right order (BEFORE running event handlers, not after). 2012-12-06 15:01:40 +01:00
Mike Hearn
7bfef81664 Reformat FakeChannel. 2012-12-06 15:01:17 +01:00
Mike Hearn
fc573d5f1c Add a ping() method to the Peer class. It returns a future that can be used to find out when the pong returns and how slow it was. Temporarily, use this in the PeerMonitor example. Next up: moving pinging into the PeerGroup. 2012-11-02 16:19:13 +01:00
Matt Corallo
9cc9607c73 ScriptException extends VerificationExtension, code cleanup follows
Just cleans up code now that ScriptException extends
VerificationExtension.
2012-11-01 16:08:56 +01:00
Matt Corallo
bf11bf08c3 Add data-driven Script tests from the reference client. 2012-11-01 15:21:06 +01:00
Mike Hearn
8d1591183f Rename TransactionInput get/setSequence -> get/setSequenceNumber. The previous name could be confusing and was inconsistent. Add lots of comments to Transaction.hashForSignature. 2012-11-01 14:06:59 +01:00
Matt Corallo
40237f0549 Implement all SigHash types in hashTransactionForSignature. 2012-11-01 13:43:06 +01:00
Matt Corallo
45b89a1935 Use a generic block chain creator for Full Block Chain tests. 2012-10-24 16:44:53 +02:00
Matt Corallo
dfebcc83ab Add a few test cases to test FullPrunedBlockChains. 2012-10-08 16:28:57 +02:00
Matt Corallo
548333bc6f Refactor BlockChain to make it more extensible.
This creates a new AbstractBlockChain abstract class which
BlockChain extends.
It continues to have a createable BlockChain class to avoid
changing the API too much.
2012-10-08 15:16:24 +02:00
Matt Corallo
f2d9a6162d Fix a number of issues with message length caching. 2012-10-04 00:24:51 +02:00
Mike Hearn
deb9da67aa Add a WalletEventListener.onWalletChanged() method that is designed for GUI apps to refresh their tx list. Resolves issue 222. 2012-09-29 18:32:22 +02:00
Mike Hearn
946d25548f Remove dead code that was used for appearsIn -> appearsInHashes migration, which pre-dates protobuf wallets. Make a few package-private members fully private. 2012-09-29 16:37:04 +02:00
Mike Hearn
78dedcc9ba Re-organize how transaction confidence listeners end up being called. Ensure WalletEventListener.onTransactionConfidenceChanged is always called for every building transaction after every block. Resolves issue 251. 2012-09-27 18:43:31 +02:00
Mike Hearn
7b4dc184f7 Fix a bug that could cause us to fail the transition between downloading headers and blocks. 2012-09-09 15:28:52 +02:00
Mike Hearn
572f2a4f4e Implement the ability to explicitly set a fee in the Wallet.SendRequest. Does not yet auto-calculate the correct fees. Resolves issue 45. Resolves issue 245. 2012-09-06 17:45:04 +02:00
Mike Hearn
29d5dcd424 Re-organize the wallet sending APIs to take a SendRequest. Full details of the API changes are sent to the list. 2012-09-06 14:22:05 +02:00
Mike Hearn
8162aa0ed1 Use current time as unit test chain genesis block time. Resolves a weird issue where the unit tests suddenly broke as the previous unit test genesis time was equal to testnet genesis time. 2012-09-06 12:37:00 +02:00
Mike Hearn
26d55f889d Add a convenience API to TCPNetworkConnection to get a handshaked connection. Update JavaDocs. 2012-08-30 23:16:05 +02:00
Mike Hearn
83bb66cc25 Serialize the broadcastBy set for each transaction. Resolves issue 237. 2012-08-20 23:37:46 +02:00
Mike Hearn
fedfe9d0e6 Change the wallet to relay tx confidence events instead of generating them itself, which is a bit cleaner. Centralize state that needs to be rebuilt after a Java deserialization. Resolves issue 235. 2012-08-20 18:30:37 +02:00