3
0
mirror of https://github.com/Qortal/altcoinj.git synced 2025-01-31 23:32:16 +00:00
Commit Graph

686 Commits

Author SHA1 Message Date
Mike Hearn
0c00b24bbc Disable native secp256k1 so DCE can delete the relevant code entirely. 2013-06-24 17:48:58 +02:00
Mike Hearn
fbd767320c Delete the long since obsolete DiskBlockStore. 2013-06-20 15:10:47 +02:00
Mike Hearn
85cd4499f9 Delete NamedSemaphores. It's something that was introduced by Miron
and looks like a broken attempt to implement file locking. Neither
store that tried to use it is supporte anymore so don't bother replacing
with real file locks.
2013-06-19 15:43:18 +02:00
Mike Hearn
4d4768ba8c Fixup last commit 2013-06-19 15:34:05 +02:00
Mike Hearn
ad3bb53327 Allow TransactionInput.verify to take an output as a parameter. 2013-06-19 13:08:09 +02:00
Mike Hearn
f98088221e Make TransactionOutput.getMinNonDustValue() more documented and provide a simpler function for it. 2013-06-19 11:30:27 +02:00
Mike Hearn
215a131f8b Typo fix in ECKey 2013-06-19 11:30:27 +02:00
Mike Hearn
354446dd40 Add new helper methods to Transaction[Signature]
Add a method for signing a given input and use it.
Convert some code that was working with raw bytes to use TransactionSignature.
Rename Transaction.hashTransactionForSignature to just hashForSignature.
General API tweaks and cleanups.
2013-06-19 11:30:27 +02:00
Mike Hearn
57c1ecbd01 Refactor some code in ECKey into ECKey.ECDSASignature, and introduce a new TransactionSignature class.
It extends ECDSASignature and adds support for holding and working with sighash flags. Make some code use it instead of raw byte handling.
2013-06-19 11:30:26 +02:00
Mike Hearn
2149fea7e6 TODO: KeyCrypterScryptTest sometimes fails because key crypto is still relying on padding bytes in some cases. 2013-06-18 17:35:35 +02:00
Mike Hearn
5be443c2d3 Clear some minor static analysis warnings. 2013-06-18 16:33:56 +02:00
Mike Hearn
8b8bf50144 Version 0.10-SNAPSHOT 2013-06-18 16:33:06 +02:00
Mike Hearn
bfbc9c0cf6 Don't use my DNS seed. It's not running on secure hosting so I shut it down. 2013-06-17 16:11:20 +02:00
Mike Hearn
4494d34be0 Use correct private key header byte in reg test mode. 2013-06-17 15:43:57 +02:00
Mike Hearn
960bf2626b DumpedPrivateKey: Verify that the final byte is set to 1. Resolves issue 411. 2013-06-17 15:43:46 +02:00
Mike Hearn
d8a0cc59c1 Re-order ECKey imports. 2013-06-17 14:28:48 +02:00
Matt Corallo
be88a05c93 Make TransactionOutput.getMinNonDustOutput exact. 2013-06-17 11:07:55 +02:00
Matt Corallo
d6fec93be3 Add canonical signature/pubkey methods to ECKey and tests therefor. 2013-06-17 11:07:55 +02:00
Matt Corallo
ec3708d159 Introduce SIGHASH_ANYONECANPAY_VALUE to replace 0x80 constants. 2013-06-17 10:59:25 +02:00
Matt Corallo
1e24dea569 Fix wallet extensions by adding setKeyCrypter and using auto-save. 2013-06-17 10:59:15 +02:00
Matt Corallo
e2e72a275d Fix deserialization of wallet transactions with a far-out locktime. 2013-06-17 10:59:06 +02:00
Matt Corallo
63be9b705b Make all addOutputs and addInputs return the newly added in/output. 2013-06-17 10:59:00 +02:00
Matt Corallo
5f1a9c246b Add Wallet.maybeCommitTx to not throw when tx is already in pending 2013-06-14 15:04:31 +02:00
Mike Hearn
74110a12d9 Note that a tx of exactly 1000 bytes may overpay. 2013-06-12 17:42:18 +02:00
Mike Hearn
c91e811fc7 Make SendRequest.completed back to being private. 2013-06-12 17:26:12 +02:00
Mike Hearn
87ab410a2f Make feePerKb apply to the first kilobyte as well. 2013-06-12 17:16:07 +02:00
Mike Hearn
c9f0ecae3d Delete 3 fee tests that weren't adding any coverage and Matt can't remember what they're for. 2013-06-12 16:21:02 +02:00
Mike Hearn
20049fb9f8 Use RegTestParams.get() 2013-06-12 11:11:59 +02:00
Mike Hearn
80b66a8945 Split a bit more code out of the giant fee calculation function. 2013-06-11 12:29:28 +02:00
Mike Hearn
b865e6a510 Make Transaction.addInput(TransactionOutput) return the created input. Use it to make a minor simplification. 2013-06-11 12:24:14 +02:00
Mike Hearn
6077d32c4a Refactor fee calculation out of wallet.completeTx(). Introduce a (not widely used yet) InsufficientMoneyException. 2013-06-11 12:21:20 +02:00
Mike Hearn
46914b12b7 Make completeTx once again return a bool (pending replacement with an exception), and update the fee field with the calculated fee. 2013-06-11 11:40:40 +02:00
Mike Hearn
afaebd062a Rename enforceDefaultClientFeeRelayRules to ensureMinRequiredFee which is shorter. 2013-06-10 16:02:38 +02:00
Mike Hearn
9a389c9475 Move enforceDefaultClientFeeRelayRules into SendRequest instead of being a parameter.
Make WalletTool enforce the rules instead of ignoring them (this was an oversight).
2013-06-10 15:51:34 +02:00
Matt Corallo
518b7edcbd Handle null hostNames in DnsDiscovery (some NP have that). 2013-06-10 13:38:01 +02:00
Matt Corallo
c9d411e8e7 Add two new WalletExtension access methods. 2013-06-10 13:36:33 +02:00
Matt Corallo
a3f1fe5390 Tweak WalletExtension slightly. 2013-06-10 13:36:27 +02:00
Matt Corallo
a7987585b8 Catch out-of-bound reads and rethrow as ProtocolExceptions. 2013-06-10 13:36:20 +02:00
Matt Corallo
dbf7728b4f Add uint64ToByteArrayLE to Utils. 2013-06-10 13:36:14 +02:00
Mike Hearn
a525f878ca More fixing of regtest params. 2013-06-07 16:15:36 +02:00
Mike Hearn
90fda575b6 Make bitcoind comparison tool simple to run again. 2013-06-07 13:59:20 +02:00
Mike Hearn
651880405d Fix regtest params. 2013-06-07 13:59:10 +02:00
Mike Hearn
1288774ee4 Fix a generics warning. 2013-06-05 16:58:58 +02:00
Mike Hearn
50539ff6c2 Remove nonsensical comment: shuffling inputs does not grant extra privacy. 2013-06-05 16:49:18 +02:00
Mike Hearn
033e7e7aab Some minor clarity improvements to DefaultCoinSelector. 2013-06-05 16:48:02 +02:00
Mike Hearn
0bdba0318a Clear some static analysis warnings from the inspector - many assertions could be simplified and assertEquals is (expected, actual) not (actual, expected). 2013-06-05 16:41:14 +02:00
Matt Corallo
7daa54b12c Add a few more fee solver tests. 2013-06-05 16:29:16 +02:00
Matt Corallo
c9c107afaf Make getBalance() significantly faster. 2013-06-05 16:29:11 +02:00
Matt Corallo
72f346c10f Add tests for user-specified inputs in SendRequests. 2013-06-05 16:29:06 +02:00
Matt Corallo
375e553bdc Add basic fee solver to Wallet.completeTx and extensive testing.
This also adds support for SendRequests which have some predefined
inputs (already signed), which will be tested in a later commit.
2013-06-05 16:28:35 +02:00
Matt Corallo
86046b7122 Add comments on dust output values and constants/util to calc them 2013-06-05 16:24:39 +02:00
Matt Corallo
4b1e45fae2 Make DefaultCoinSelector aware of priority, not just depth. 2013-06-05 16:11:35 +02:00
Matt Corallo
842b30e2ca Add basic support for existing inputs in Transaction.signInputs 2013-06-05 16:11:27 +02:00
Matt Corallo
fd4845fa90 Add new data-driven test-case 2013-06-05 14:10:42 +02:00
Matt Corallo
c6b3b82a66 Fix TxOut serialization (fixes SIGHASH_SINGLE hashing) 2013-06-05 14:10:41 +02:00
Matt Corallo
07baa230f3 Wallet: Check if tx is time-locked not just has a lock time 2013-06-05 14:10:41 +02:00
Matt Corallo
e2fea77a3d Catch potential exception on invalid signatures 2013-06-05 14:10:41 +02:00
Matt Corallo
fb912322ff Replace Block.fakeClock with Utils.mockClock 2013-06-05 14:10:41 +02:00
Matt Corallo
5369ca925a Add Transaction.clearIn/Outputs and make getIn/Outputs unmodifiable 2013-06-05 14:10:40 +02:00
Matt Corallo
5993f2dc6c Further global replace of NetworkParameters.* -> *.get() 2013-06-05 14:10:40 +02:00
Mike Hearn
f4c3b6a49d Global search and replace to use the param-class specific instance getters and prodNet -> MainNetParams.
The old "prodnet" name could be confusing to non-native speakers or people who just haven't been exposed to Google lingo. Main net is more idiomatic.

Conflicts:
	tools/src/main/java/com/google/bitcoin/tools/BlockImporter.java
2013-06-05 14:10:40 +02:00
Mike Hearn
52586edb33 NetworkParameters: Refactor out into separate classes.
Hide fields behind getters and make unit tests create anonymous subclasses
to tweak them rather than overwriting global variables.

Introduce a regtest params class for use in the comparison tool.

Conflicts:
	core/src/test/java/com/google/bitcoin/core/BitcoindComparisonTool.java
	core/src/test/java/com/google/bitcoin/core/FullPrunedBlockChainTest.java
2013-06-05 14:10:39 +02:00
Mike Hearn
f6f290cc05 NetworkParameters: hide more params behind a getter. 2013-06-05 14:10:39 +02:00
Mike Hearn
1f005d7b3d NetworkParameters: hide packet magic behind a getter.
Conflicts:
	tools/src/main/java/com/google/bitcoin/tools/BlockImporter.java
	core/src/main/java/com/google/bitcoin/utils/BlockFileLoader.java
	core/src/test/java/com/google/bitcoin/core/FullBlockTestGenerator.java
2013-06-05 14:10:39 +02:00
Mike Hearn
8043bc335b NetworkParameters: hide port behind a getter. 2013-06-05 14:10:38 +02:00
Mike Hearn
ec62bbdeab NetworkParameters: hide genesis block behind a getter.
Conflicts:
	core/src/test/java/com/google/bitcoin/core/FullBlockTestGenerator.java
2013-06-05 14:10:38 +02:00
Mike Hearn
619495875c Block: Make some things public that aren't going to change.
Conflicts:
        core/src/main/java/com/google/bitcoin/core/Block.java
2013-06-05 14:10:38 +02:00
Matt Corallo
28292b45a5 Implement dumb Comparable in Sha256Hash. 2013-06-05 14:10:37 +02:00
Matt Corallo
6cdfad43a3 Make Tx.connect public by exposing enums + tweak DISCONNECT_ON_CONFLICT 2013-06-05 14:10:37 +02:00
Matt Corallo
f7c09d74ea Introduce Transaction.hasLockTime() and use it where appropriate. 2013-06-05 14:10:37 +02:00
Matt Corallo
2bd9531da6 Add txout.setValue, public decodeFromOpN+appendByte new MultiSig. 2013-06-05 14:10:37 +02:00
Matt Corallo
b840ddfcc8 Require bitcoind replies to a inv instead of just sending blocks.
This makes b57 testing actually useful.
2013-06-05 14:10:36 +02:00
Matt Corallo
60520ba17a Add new data-driven tests from the reference client 2013-06-05 14:10:36 +02:00
Matt Corallo
fad5356bd9 Properly uncache scriptSig in TransactionInput.setScriptBytes 2013-06-05 14:10:36 +02:00
Matt Corallo
70685745c3 Fix a possible ArrayIndexOOBEx in Script processing (cleaner error). 2013-06-05 14:10:36 +02:00
Matt Corallo
304bc705b8 Fix script parsing bug and test for it (partially reverts 7837a54) 2013-06-05 14:10:23 +02:00
Matt Corallo
e8ea5cea7c Re-enable port selection as pull-tester will need it 2013-06-04 22:18:11 +02:00
Matt Corallo
a1c1a1117a Rename blocks in FullBlockTestGenerator to make new tests easier 2013-06-04 22:18:11 +02:00
Matt Corallo
f9ebf56047 Test importing first 100K of blocks. 2013-06-04 22:18:11 +02:00
Matt Corallo
68e6228356 Handle duplicate chain.add calls significantly more effeciently. 2013-06-04 22:18:11 +02:00
Matt Corallo
729f2f5312 Store blocks on disk during BitcoindComparisonTool to save memory. 2013-06-04 22:18:11 +02:00
Matt Corallo
a131d08a58 Move BlockImporter to a util and make it an Iterator<Block> 2013-06-04 22:18:11 +02:00
Matt Corallo
1dadb33c28 Split expensive blocks into sigExpensive and largeReorg. 2013-06-04 22:18:11 +02:00
Matt Corallo
9cbd824457 Create very large reorg test. 2013-06-04 22:18:10 +02:00
Matt Corallo
0390bc9371 Add height info to FullBlockTests, to verify the tests are correct. 2013-06-04 22:18:10 +02:00
Matt Corallo
9ddbcb88b9 Make txCounter work for larger values. 2013-06-04 22:18:10 +02:00
Matt Corallo
2e5ca9e72b Allow FullBlockTestGenerator to indicate maximum reorg depth. 2013-06-04 22:18:10 +02:00
Matt Corallo
0ada33d2b1 Provide more opacity into exceptions. 2013-06-04 22:18:10 +02:00
Matt Corallo
939337b2db Fix premature optimization in H2FullPrunedBlockStore (resets state)
This replaces the H2FullPrunedBlockStore schema with one that will
take (maybe) some more disk space while being a good bit faster.
The tradeoff made was really not worth it.

Also adds a version field to settings database incase something
other than schema changes in the future.
2013-06-04 22:18:10 +02:00
Matt Corallo
59e096e2ea Add optional support native ECDSA (designed for sipa's impl).
This could be significantly more optimized if we avoided crossing
the JNI barrier as often, but as it is its waaay faster than
BouncyCastle.
2013-06-04 22:18:10 +02:00
Matt Corallo
70bffcd6f4 Move onPeerConnected to after VerAck. 2013-05-22 22:46:10 +02:00
Mike Hearn
f1750679b6 Use non-deprecated asserts in AlertMessageTest. Found by IntelliJ inspections. 2013-05-08 16:33:22 +02:00
Mike Hearn
2830d48ac1 Simply a few assertions. 2013-05-08 15:42:27 +02:00
Mike Hearn
1463213f25 Use port 18444 for regtest mode. 2013-05-08 14:30:15 +02:00
Mike Hearn
9d5b3865f5 Wallet: remove an unused variable from reorganize(). 2013-05-07 12:48:34 +02:00
Mike Hearn
e2291d2fb4 Wallet: remove the affectedUs check in reorganize(). It was buggy, and if it had worked it would have introduced other issues. We always need to process the entire reorg to keep the depth and workDone counters on transactions accurate. 2013-05-07 12:00:50 +02:00
Mike Hearn
4886a137bc TransactionConfidence: make accessors return zero rather than throw when pending, and add a method to get a depth future. 2013-05-06 17:59:31 +02:00
Mike Hearn
bacc67f26f Peer: fix buggy log statement. 2013-05-06 17:34:48 +02:00
Mike Hearn
857da6bb29 AbstractBlockChain: add a helper method to create futures that complete when the chain reaches a particular height. 2013-05-06 16:23:08 +02:00
Mike Hearn
9a20c39b15 A few simplifications suggested by IntelliJ 2013-05-06 16:21:32 +02:00