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
Mike Hearn
c64453f835
Wallet: change the extensions API.
...
The old API was very limiting. Rather than have extensions be a single object that creates subclasses of the Wallet class, allow arbitrary objects to be attached to Wallets. Objects know if they are mandatory and how to serialize themselves. A wallet can have as many extensions as wanted in this way.
2013-05-06 15:40:36 +02:00
Mike Hearn
3eb3dbcf89
Better output for unusual script types in Transaction.
2013-05-06 13:53:39 +02:00
Mike Hearn
ee0b56180b
WalletAppKit - block on shutdown.
2013-05-06 13:53:15 +02:00
Mike Hearn
82e056cab7
Rename Wallet.waitForBalance() to be Wallet.getBalanceFuture().
2013-05-06 12:00:39 +02:00
Mike Hearn
e8f1418865
Wallet: Add a Wallet.waitForBalance() method.
2013-05-02 16:51:29 +02:00
Mike Hearn
dddf02d6a1
Script: Use Guava ImmutableMap for the opcodes. This is more memory efficient. They could also be lazy initialized later if we need to.
2013-04-29 14:16:48 +02:00
Mike Hearn
69537c0bf0
Script: some minor tweaks and use the ScriptOpCodes parsing in ScriptTest.
2013-04-29 14:10:36 +02:00
Alexander Lolis
52cec7f6be
Refactored the huge switch. Replaced it with a HashMap which contains OpCode -> String instead; less lines
...
Implemented getOpCode method and added a HashMap which contains String -> OpCode for the lookup
2013-04-29 13:41:03 +02:00
Mike Hearn
aa883b48b1
Wallet: Rewrite re-org handling to be simpler and use less code. And hopefully fix some bugs along the way.
2013-04-26 16:42:15 +02:00
Mike Hearn
5ae00d4e20
Simplifications to the wallet code.
...
Wallet: Remove/deprecate NOT_IN_BEST_CHAIN as a confidence type.
TxConfidence: Rename NOT_SEEN_IN_CHAIN -> PENDING which is more precise and consistent.
PeerGroup: Fix definition of "mined"
2013-04-26 16:42:14 +02:00
Mike Hearn
37290fe882
Transaction: Clear depth/work data when setting confidence type to pending.
2013-04-26 16:42:13 +02:00
Mike Hearn
83136a2b02
Transaction: Better toString() for coinbases
2013-04-26 16:42:13 +02:00
Mike Hearn
d9c21d58c7
Make wallet.getChangeAddress() visible.
2013-04-26 16:41:33 +02:00
Mike Hearn
ab7e8685b5
Fix a typo in ScriptOpCodes PUSHDATA2 string.
2013-04-26 16:41:23 +02:00
Mike Hearn
95e43566a6
Add a few more ECKey functions that accept wrapper objects.
2013-04-26 16:41:03 +02:00
Mike Hearn
8a63fbd075
ScriptBuilder: add a method that creates a multisig input script.
2013-04-26 13:51:00 +02:00
Mike Hearn
d537c8017a
Script: fix bug, OP_0/OP_FALSE is not invalid.
2013-04-26 13:50:30 +02:00
Mike Hearn
172f264ee2
Add a Transaction.hashTransactionForSignature prototype that accepts Script objects instead of byte arrays.
...
This could all be cleaned up and made more consistent in future.
2013-04-26 13:47:26 +02:00
Mike Hearn
38b40a245a
Help IntelliJ static analysis understand that nullity is impossible at that point in the code.
2013-04-26 13:46:57 +02:00
Mike Hearn
d113cbfc66
Script: Introduce a builder class that makes it easier to assemble scripts without writing raw byte streams.
2013-04-24 19:15:06 +02:00
Mike Hearn
752e7006e5
Move ScriptTest.
2013-04-24 18:23:20 +02:00
Mike Hearn
2f790520f4
Move ScriptTest
2013-04-24 18:08:11 +02:00
Mike Hearn
7db7f89582
Move Script and ScriptOpCodes to a new script package.
2013-04-23 18:51:08 +02:00
Mike Hearn
775af907ae
Widen the scoping on a few methods in preparation for moving the Script class.
2013-04-23 17:57:16 +02:00
Mike Hearn
7837a54bc0
Script: refactor in preparation for making it easier to manipulate and construct scripts using chunked form.
2013-04-22 17:08:10 +02:00
Mike Hearn
5ec4f43dee
Expand Block.toString() to use StringBuilder.
2013-04-22 17:08:10 +02:00
Mike Hearn
a0d2b36c9f
Script: ScriptChunk -> Script.Chunk and make it public.
2013-04-22 17:08:09 +02:00
Mike Hearn
80285832f8
Script: Move opcodes out to a separate ScriptOpCodes class. Improve a couple of javadocs in Transaction.
2013-04-22 17:08:07 +02:00
Mike Hearn
44ead8b6a1
Script: couple of minor reformattings.
2013-04-22 17:08:06 +02:00
Mike Hearn
e18b9d363e
Script: add support for crafting multisig outputs and hide program behind Script.getProgram()
2013-04-22 17:08:05 +02:00
Mike Hearn
f88bdc5fe3
Wallet: make keychain private and add a remove method.
2013-04-22 13:45:38 +02:00
Mike Hearn
1341529228
Script: refactor signature checking out into separate methods.
2013-04-19 16:01:55 +02:00
Mike Hearn
c53a137ca7
Pull some code up from WalletTest into a superclass to make writing test cases that need wallets+stores easier.
2013-04-19 15:20:46 +02:00
Mike Hearn
b5b984a741
BitcoindComparisonTool: minor fixes
2013-04-19 13:14:28 +02:00
Mike Hearn
82171f5b50
Deprecate the getFromAddress() getters and simplify the Script c'tor by removing superfluous parameters.
2013-04-18 15:35:34 +02:00
Mike Hearn
197f0824ae
Use my DNS seed instead of Jeff's, as his is just a static list and the nodes often appear to be overloaded.
2013-04-13 21:56:15 +02:00
Mike Hearn
42b2cfa3f0
Don't unit test failed decryption message, that's annoying.
2013-04-13 21:54:47 +02:00
Mike Hearn
34b52c95fe
Add a WalletAppKit that wraps boilerplate stuff for setting up a new app. Will convert some example apps later.
2013-04-12 16:20:52 +02:00
Mike Hearn
8fa8a195c1
Transactions: Make some methods public and add a couple of accessor methods.
2013-04-12 16:20:52 +02:00
Mike Hearn
30eb1f8043
DownloadListener: don't print redundant noise after catching up with the chain.
2013-04-12 16:20:52 +02:00
Mike Hearn
dd4d237cd9
Allow modification of the inputs/outputs list.
2013-04-12 11:10:56 +02:00
Mike Hearn
d14ac586d7
Add a few basic sanity checks on transactions received from the network at various points, to avoid syntactically invalid transactions from getting into the system (e.g. no inputs or outputs).
2013-04-12 11:10:48 +02:00
Mike Hearn
21ba7e0260
MemoryPool: Clarify logging a bit.
2013-04-12 11:10:38 +02:00
Mike Hearn
5eebca2c7d
Wallet: Add some convenience methods for spending unconfirmed transactions.
2013-04-12 11:10:31 +02:00
Mike Hearn
f1845dd552
Version 0.9-SNAPSHOT
2013-04-11 14:27:35 +02:00
Mike Hearn
d64f555896
Wallet: fix logging of balance in receive() and only calculate the balance once instead of twice.
...
Resolves issue 372.
2013-04-01 18:14:20 +01:00
Mike Hearn
bfd9d81b21
Undo a couple of changes to NetworkParameters to fix the bitcoind comparison tool
2013-04-01 18:08:14 +01:00
Matt Corallo
2a33065e31
Add a bitcoind/bitcoinj testing tool that compares bitcoind's rules
...
...by creating blocks and then comparing their acceptance by
bitcoind to their acceptance by bitcoinj.
2013-04-01 18:05:35 +01:00
Matt Corallo
1f904d28e1
Fix balooning memory usage in FullPrunedBlockChain.
...
This fixes a bug which had been previously solved with a dumb
workaround.
2013-04-01 18:05:01 +01:00
Matt Corallo
726dd02472
Propogate very old refactor to duplicate code.
2013-04-01 18:02:50 +01:00
Matt Corallo
1b830a10e6
Add comment about using a large fast catchup time in PeerGroup.
2013-04-01 18:02:34 +01:00
Mike Hearn
cb670bdc39
BOBS: Suppress deprecation warning.
2013-04-01 18:02:29 +01:00
Mike Hearn
d92f944564
Peer: Allow peer listeners to handle exceptions thrown in the peer thread.
2013-03-30 19:28:58 +00:00
Mike Hearn
11b5ea11b8
WalletProtobufSerializer: throw IllegalArgumentException if tx cannot be connected.
2013-03-30 18:06:40 +00:00
Mike Hearn
9201cba0cc
Wallet: try deleting the temp file in the finally block and print a warning if it succeeded.
...
Resolves issue 362.
2013-03-30 17:35:57 +00:00
Mike Hearn
301db707b1
Wallet: misc comment updates
2013-03-30 17:35:07 +00:00
Mike Hearn
49d26ad773
WalletProtobufSerializer: Add a couple of NPE checks
2013-03-30 17:34:30 +00:00