Commit Graph

  • c129d3fc89 Added dependency on bitcoinj and removed code elements which should taken directly from bitcoinj. Removed classes with no differences to bitcoinj. Fixed packages. Ross Nicoll 2015-04-11 17:08:25 +01:00
  • f64e98ef0a LinuxSecureRandom: do a few more sanity tests on /dev/urandom. Mike Hearn 2015-05-29 13:50:55 +02:00
  • 3588fa085c Make BuildCheckpoints print a bit sooner that it's doing something. Andreas Schildbach 2015-05-27 16:40:29 +02:00
  • 1ddf822ecf Fixed JavaDoc for getScript() method Loco 2015-05-26 00:50:05 +03:00
  • ca5bdab07c Fixed wrong type of parameter in Wallet.setUTXOProvider() Loco 2015-04-30 14:20:52 +03:00
  • e214f27963 UTXO re-formatted Loco 2015-04-29 13:17:28 +03:00
  • bee1873e1a In UTXO property scriptBytes changed to class Script. Property addressType deleted. FullPrunedBlockChain code re-formatted, changed UTXO class usage. Loco 2015-04-29 13:16:51 +03:00
  • 4e8f1bb153 Block.parseHeader() and Block.parseTransactions() are now protected, so they can be called from subclasses. Ross Nicoll 2015-05-26 00:02:20 +01:00
  • e030f1a1f4 Moved block difficulty checks into NetworkParameters. Ross Nicoll 2015-05-12 20:49:17 +01:00
  • 7a3aa74c6e Added extension points for altcoin support via subclassing. Ross Nicoll 2015-04-11 12:38:17 +01:00
  • c2d3cec6b0 Make DatabaseFullPrunedBlockStore.calculateBalanceFromAddress public rather than protected. Mike Hearn 2015-05-26 12:15:04 +02:00
  • 1da3a01194 Use 24 hour clock in brieflogs Mike Hearn 2015-05-26 00:27:40 +02:00
  • b7f1d72b60 Initialize context in BlockTest and CoinbaseBlockTest. Ross Nicoll 2015-05-19 22:32:40 +01:00
  • 5068271586 Peer: suppress intellij inspector warning about a HashSet that's only being used to pin things to the gc root set. Mike Hearn 2015-05-08 15:31:52 +02:00
  • 95dc2717ae Get SeedPeers addresses from NetworkParamters. elbandi 2015-01-27 15:18:01 +01:00
  • 1d69423f7b PeerGroup: stop calculating speed stats and printing them once we chain sync has finished in a session. Mike Hearn 2015-05-05 17:38:47 +02:00
  • 3d5c25e3c4 Fix missing checksums for the OkHttp dependencies. Andreas Schildbach 2015-05-04 12:23:58 +02:00
  • 06ba160361 Tor: accelerate startup by using HTTP/Cartographer seeding when possible instead of DNS. Mike Hearn 2015-04-28 22:56:23 +02:00
  • 410b29fc30 Tor: don't throw in Orchid sockets when attempting to set socket options, just ignore the request instead Mike Hearn 2015-04-28 22:54:45 +02:00
  • b82d6e05ed Tor: don't add DNS discovery in WalletAppKit when Tor is active Mike Hearn 2015-04-28 22:54:05 +02:00
  • 8742b87701 BlockingClient: shorter error log Mike Hearn 2015-04-28 22:53:34 +02:00
  • 535c2852ea TransactionBroadcast: invoke the progress listener if the broadcast already started, to avoid people accidentally writing races when using the PeerGroup convenience APIs. Mike Hearn 2015-04-23 14:57:38 +02:00
  • 5181cefcf2 Wallet: fix thread safety bug where keychain lock was not being acquired in toString Mike Hearn 2015-04-22 15:28:18 +02:00
  • acfc046a08 Wallet extensions: log errors when deserializing a non-mandatory extension and remove it from the wallet if deserialization throws. Mike Hearn 2015-04-22 14:53:10 +02:00
  • a0fe912ff0 PeerGroup: delete dead code Mike Hearn 2015-04-21 18:04:21 +02:00
  • b749779c89 PeerGroup: catch all throwables inside the speed calculator, not just exceptions Mike Hearn 2015-04-21 18:04:11 +02:00
  • a188525981 Wallet: put getWatchedBalance() and getWatchedBalance(CoinSelector) back as deprecated aliases, this is now the default behaviour. Mike Hearn 2015-04-21 15:15:58 +02:00
  • 70b78363ea Wallet.addWatchedScripts() now lets you update a script in the wallet with a new creation time. Add some discussion to the Javadoc about this issue. Mike Hearn 2015-04-21 14:56:18 +02:00
  • 4471709693 Watch out for scripts with a creation time of zero (and warn the developer about them via logging). Mike Hearn 2015-04-21 14:48:46 +02:00
  • eb15ded065 PeerGroup: use a default FP rate that's much lower than the current rate, to boost performance. As there are various well documented de-anonymization attacks on Bloom filtering in bitcoinj (and BreadWallet) wasting bandwidth without getting additional privacy benefit doesn't help us much, so may as well take the performance until one day the code is smart enough to lie convincingly. Mike Hearn 2015-04-21 13:52:53 +02:00
  • dd453ca677 PeerGroup: stall handling tweak: specify default bandwidth requirement in terms of block headers per second and make much lower, to avoid having false stalls when the Bloom FP rate is lowered (and thus bandwidth required is much lower). It's unclear how useful stall handling will be after this change, but we'll experiment with it a bit and find out. Mike Hearn 2015-04-21 13:50:32 +02:00
  • 82a0ddd4de Wallet: Provide new balance types to calculate balances excluding watching outputs. This is useful for wallets where transactions have been manually added and thus there is a mix of watching and non-watching transactions. The "new in 0.13" behaviour that getBalance(AVAILABLE) includes unspendable outputs is preserved, so the more typical approach of having a watching wallet and calling getBalance() still does what you expect and reports the balance of the watched wallet. Mike Hearn 2015-04-19 15:55:10 +01:00
  • ef9e49d5e7 DeterministicKey: override hasPrivKey and getSecretBytes to reflect the private key derivation strategy used. Mike Hearn 2015-04-17 14:52:41 +01:00
  • 9faa4a686b DK.isWatching simplification Mike Hearn 2015-04-17 14:39:43 +01:00
  • 54a6316243 Make BasicKeyChain.isWatching return a state enum instead and use it to simplify KeyChainGroup.isWatching() Mike Hearn 2015-04-16 16:41:33 +01:00
  • ed6821ed15 Add Wallet.isWatching() to determine if the wallet is a watching wallet. Comes with tests. Andreas Schildbach 2014-12-06 18:06:20 +01:00
  • 1e6ce4b1ba Rename DeterministicKey.getPubOnly() to dropPrivateBytes() to reflect what it's actually trying to do, and add dropParent() as well for the cases where we actually need a truly privkey-lacking object. Update the call sites to do whatever is appropriate for those situations. Mike Hearn 2015-04-07 19:26:20 +02:00
  • a1612b0a8f Implement DeterministicKey.isPubKeyOnly(). The super-implementation in ECKey doesn't take possible rederivation into account. Andreas Schildbach 2015-03-10 00:30:30 +01:00
  • e9bffdda18 DefaultCoinSelector: no-op code simplification Mike Hearn 2015-04-16 14:14:10 +01:00
  • f2eaf4a562 Update to jackson 2.5.x. Andreas Schildbach 2015-04-08 22:46:33 +02:00
  • dba18dfb4d Update to slf4j 1.7.7. Andreas Schildbach 2015-04-08 22:44:58 +02:00
  • f2e3111ba8 Update to junit 4.12. Andreas Schildbach 2015-04-08 22:36:50 +02:00
  • 2e3ee3b161 Update to easymock 3.2. Andreas Schildbach 2015-04-08 22:31:39 +02:00
  • ee6fb7c65e Add missing checksum for the new leveldb dependency. Andreas Schildbach 2015-04-11 11:30:07 +02:00
  • db86185972 WalletTemplate: remove bit of redundant fxml Mike Hearn 2015-04-09 17:00:55 +02:00
  • cd337504b7 WalletTemplate: expose MainWindow in Main Mike Hearn 2015-04-09 17:00:05 +02:00
  • 7d7ba9c8ef Some fixes for LevelDB SPV block store. Mike Hearn 2015-04-09 16:57:28 +02:00
  • ec6f8a3c9d WalletAppKit: Allow overriding of the block store in use. Mike Hearn 2015-04-08 18:30:34 +02:00
  • d46ba33343 Add a LevelDB/JNI based SPV block store that records all headers. Mike Hearn 2015-04-08 18:30:21 +02:00
  • 527274a40f Add FilteredBlock.getPartialMerkleTree() Mike Hearn 2015-04-07 19:23:06 +02:00
  • c426e34646 Bug fix: don't pointlessly download a transaction we already have because we're broadcasting it. Mike Hearn 2015-04-07 15:37:22 +02:00
  • 325e7e170b Transaction: print a log warning if lock time is set and a sequence number has not been. This is a common programming error. Mike Hearn 2015-04-07 15:35:28 +02:00
  • 1e7a13dd27 PeerGroup: better stall handling. Mike Hearn 2015-04-06 19:01:19 +02:00
  • 09744edfe3 Context: some small fixes + javadocs for WalletAppKit Mike Hearn 2015-04-06 17:20:03 +02:00
  • b5994e3788 A bit of unit test cleanup. Mike Hearn 2015-04-06 16:31:04 +02:00
  • 7576a44ef4 getutxo: Bugfixes identified by static analysis Mike Hearn 2015-04-06 15:32:02 +02:00
  • 037ec5aef9 getutxo: Flesh out the JavaDocs, link to the BIP, include brief security discussion, and make Peer support multiple in flight queries at once. Mike Hearn 2015-04-06 15:14:31 +02:00
  • 4c12127501 Context: add c'tors that take a context to [Abstract/FullPruned/]BlockChain and PeerGroup. The existing c'tors now do a consistency check against the existing context or create a new one on the fly. Mike Hearn 2015-04-05 19:52:58 +02:00
  • 960e58343e Context: more TODOs Mike Hearn 2015-04-03 19:42:36 +02:00
  • 09c80d44ff fix package waglik 2015-04-03 19:21:33 +03:00
  • 3b66e1f85a Release 0.12.3 v0.12.3 Andreas Schildbach 2015-04-01 09:48:01 +02:00
  • 64e09452f4 PeerSocketHandler: bugfix for incomplete message headers at the end of the buffer Oscar Guindzberg 2015-03-27 15:42:10 -03:00
  • e5b52fb73b PeerSocketHandler: make first message validation explicit Oscar Guindzberg 2015-03-27 15:40:34 -03:00
  • a4b8b37513 Make maven-javadoc-plugin print a lot less clutter. Andreas Schildbach 2015-03-23 00:42:35 +01:00
  • 2837ad581a Make maven-javadoc-plugin print a lot less clutter. Andreas Schildbach 2015-03-23 00:42:35 +01:00
  • d13665c22f Add linebreak to comment Manfred Karrer 2015-03-23 11:15:19 +01:00
  • b74d1e32a2 Add readObject method to initialise listeners object which would be null in case the confidence object gets created from Serialisation Manfred Karrer 2015-03-23 10:29:47 +01:00
  • 034dc153ab Run core tests in alphabetical order Carlos Lopez-Camey 2015-03-22 10:42:37 -06:00
  • b28204b6ca Run core tests in alphabetical order Carlos Lopez-Camey 2015-03-22 10:42:37 -06:00
  • 4e6b544920 Create context for TestWithWallet Carlos Lopez-Camey 2015-03-22 09:56:08 -06:00
  • 48401a0af1 Removes deprecation warnings. In pom.xml artifactId is project.artifactId. Sha256Hash.createHash is Sha256Hash.hashTwice. LazyECPoint.getX and getY use getXCoord and getYCoord while forcing normalization. Carlos Lopez-Camey 2015-03-21 11:53:43 -06:00
  • 275c9320ea More plugin updates and a regen of the dep verifier list. Mike Hearn 2015-03-22 17:05:10 +01:00
  • 114a4b4fd1 wallettemplate/pom.xml: fix a maven deprecation warning Mike Hearn 2015-03-22 16:50:20 +01:00
  • c5123a320e Create context for WalletProtobufSerializerTest. Mike Hearn 2015-03-22 16:48:57 +01:00
  • 9c80c3b3b8 Update SureFire plugin. Mike Hearn 2015-03-22 16:48:14 +01:00
  • 16f953c6c1 Payment channels: log connection failures in NioClient Mike Hearn 2015-03-22 16:27:29 +01:00
  • 2e971d1a24 Script: don't query the clock when parsing a script. This actually shows up in Android performance profiles. Mike Hearn 2015-03-13 17:10:31 -07:00
  • 1331c646e3 Undo the memory usage optimisation for scriptPubKey parsing on Android to see if CPU time now matters more than memory (especially when combined with the wallet unspents tracking work). Mike Hearn 2015-03-13 18:00:05 -07:00
  • 2fd565c366 Design doc for contexts Mike Hearn 2015-03-05 13:42:46 -08:00
  • 50e7e14763 Propagate context to the wallet autosave thread. Mike Hearn 2015-03-21 17:17:38 +01:00
  • e3f70c6d4f Context: add some more TODOs. WalletAppKit: propagate context. Mike Hearn 2015-03-03 09:38:44 -08:00
  • d03b68a109 Transaction: add alternatives for getConfidence() Mike Hearn 2015-03-01 22:04:01 +01:00
  • 7e9f0f47a2 Context: add TODOs and some more complete class javadocs Mike Hearn 2015-03-01 21:30:47 +01:00
  • 1a70f05ca7 Add a notion of an event horizon to the context. This is intended to unify the various places in the library where we want to throw data away after a tx is buried so deep it will probably never be re-orged, but which presently use different constants. The wallet will use the event horizon in future as well. Mike Hearn 2015-03-01 21:23:46 +01:00
  • aae60d8391 Add NetworkParameters to the Context, and verify consistency when a context is fetched. Make Wallet accept Context as a c'tor parameter and then update unit tests (which switch params very often) to create contexts when necessary. Mike Hearn 2015-03-01 21:12:00 +01:00
  • 0ba5f61c88 Delete broadcastBy data once a tx is buried under >100 blocks, as a memory saving. Remove TODO as the code is fairly clear these days. Mike Hearn 2015-03-01 20:33:40 +01:00
  • 3a9a47b67a Don't access TransactionConfidence.broadcastBy from mixed synchronized/unsynchronized contexts. This isn't a real bug but clears an Inspector warning. Mike Hearn 2015-03-01 20:27:52 +01:00
  • 95dec1a910 Don't run event listener twice if a peer announces twice. Mike Hearn 2015-03-01 20:22:09 +01:00
  • 750f469bd3 Confidence objects now pin themselves when a listener is attached, eliminating a certain class of GC-triggered heisenbug. Mike Hearn 2015-03-01 20:18:23 +01:00
  • 5a824f8411 Make Context.confidenceTable private. The getter method can be overridden if a subclass wishes to modify this object. Mike Hearn 2015-03-01 20:18:00 +01:00
  • 04bc624a91 Rewrite TxConfidenceTable to actually track confidence objects. Make Transaction.getConfidence() fetch the object from the table via the context. This allows us to simplify large chunks of code quite considerably. Note that confidence listeners are not yet pinning the attached confidence to the root set, so the same old bugs remain if you don't pin the tx object. That will be fixed next. Mike Hearn 2015-02-27 20:28:22 +01:00
  • f1d2a48a2e Fix class javadoc in Context Mike Hearn 2015-02-27 19:57:46 +01:00
  • 257aacf81b Make the Context object be a global object that is propagated between threads, and created on demand in the PeerGroup constructor. This isn't complete but is a sketch of where we might go. Context propagation is mostly auto-magical at the moment and will become less so with time, making it easier to use multiple instances of the library from the same thread simultaneously. At the moment you would potentially hit issues if using multiple instances from the same thread though and we should fix that before landing (aka don't break devrandom). Mike Hearn 2015-02-25 21:41:58 +01:00
  • ece8d9a347 Perf hack for Android: cache the result of Transaction.getValue(). This won't help once we split payments from transactions. Mike Hearn 2015-03-13 18:15:56 -07:00
  • 8c414fb172 Script: don't query the clock when parsing a script. This actually shows up in Android performance profiles. Mike Hearn 2015-03-13 17:10:31 -07:00
  • 596d6f9d88 Wallet: optimise Bloom filter calculation some more, optimize calculateSpendCandidates, make watching wallets report the balance via getBalance instead of a different method. Mike Hearn 2015-03-13 16:45:54 -07:00
  • 40ee90cc0c Wallet: track UTXOs explicitly and use that to try and accelerate Bloom filtering for large wallets. Mike Hearn 2015-03-12 10:45:01 -07:00
  • 8a1b47e6bf On Android, use non-cycle detecting locks with fairness activated (experimental) Mike Hearn 2015-03-13 17:59:24 -07:00
  • 81127c53ab TransactionOutput: take parent hash and index into account in the hashcode. Inserting TransactionOutput's with identical scripts/values but different outpoints into a hashset will work properly now. Mike Hearn 2015-03-10 17:03:21 -07:00
  • 15d2beb4bc TransactionOutPoint: fix hashCode to include index. Mike Hearn 2015-03-10 16:51:00 -07:00