3
0
mirror of https://github.com/Qortal/altcoinj.git synced 2025-01-31 07:12:17 +00:00
Java library for adding altcoin support to bitcoinj
Go to file
Mike Hearn ee083d6fac Patch 9 from Steves lazy parsing patchset.
Add UnsafeByteArrayOutputStream.  ByteArrayOutputStreams are used extensively and result in a lot of short lived byte arrays.

This patch contains two optimizations

1/ attempt to provide the final length to ByteArrayOutputStream constructor to avoid constantly resizing the backing array.  Default size is 32 which means larger messages may require several array reallocations and almost all will require at least one.

2/ provides the UnsafeByteArrayOutputStream class which eliminates method synchronization.  The toByteArray() will return the backing array rather than a copy if the correct length was provided in the constructor.

In the worst case scenario this cuts array allocations from 3 to 2.
In the most common worst case from 3 to 1.
In most best cases where final array size is greater than 128 bytes from > 4 to 1.
2011-10-14 12:37:27 +00:00
src/com/google/bitcoin Patch 9 from Steves lazy parsing patchset. 2011-10-14 12:37:27 +00:00
target/site/apidocs Move javadocs to the maven directory, check in fresh set 2011-06-27 14:29:17 +00:00
tests/com/google/bitcoin Patch 7 from Steves lazy parsing patchset: 2011-10-14 12:28:13 +00:00
AUTHORS Add Steve to the AUTHORS file. 2011-09-16 07:50:22 +00:00
COPYING Initial checkin of BitCoinJ 2011-03-07 10:17:10 +00:00
pom.xml Patch from Gary and Jonny to switch the Maven config to a new Nexus-based build server. Changes how SLF44J is imported to avoid forcing a particular implementation on the user. Remove redundant or unnecessary parts of the POM. 2011-09-25 20:32:22 +00:00
README Update README. 2011-09-10 09:53:41 +00:00
TODO Patch 9 from Steves lazy parsing patchset. 2011-10-14 12:37:27 +00:00

To get started, ensure you have the latest JDK installed, and download Maven from:

  http://maven.apache.org/

Then run "mvn clean package" to compile the software. You can also run "mvn site:site" to generate a website with
useful information like JavaDocs. The outputs are under the target/ directory.

Now ensure you're running a BitCoin node locally and run the example app:

  mvn exec:java -Dexec.mainClass=com.google.bitcoin.examples.PingService

It will download the block chain and eventually print a BitCoin address. If you send coins to it,
you should get them back a few minutes later when a block is solved.

Note that if you connect to a node that is itself downloading the block chain, you will see very slow progress (1
block per second or less). Find a node that isn't heavily loaded to connect to.

If you get a SocketDisconnectedException, the node you've connected to has its max send buffer set to low
(unfortunately the default is too low). Connect to a node that has a bigger send buffer,
settable by passing -maxsendbuffer=25600 to the Bitcoin C++ software.

For the convenience of Eclipse users, you can copy dependency jars to target/dependency using:

    mvn dependency:copy-dependencies