3
0
mirror of https://github.com/Qortal/altcoinj.git synced 2025-02-07 06:44:16 +00:00
Java library for adding altcoin support to bitcoinj
Go to file
Mike Hearn d82f102b4b Introduce a new MemoryPool abstraction and use it for tracking peer confidences. This replaces the previous, less explicit system which had each peer try and track all transactions it'd seen in a per-peer pool.
This makes experimental usage of weak references and a reference queue to make the MemoryPool only bother tracking transactions that were retained by some other part of the program, ie, because they were relevant to the wallet. This stops the memory usage from bloating due to lots of large transactions flying around the network whilst still letting us intelligently monitor how many peers announced transactions without tight coupling between components.

Note that we still need the cap on the pool size because otherwise you could DoS a bitcoinj based program by sending it lots of fake transactions it found interesting. The DoS potential still exists but is a bit different now.
2012-04-05 12:14:36 +02:00
core Introduce a new MemoryPool abstraction and use it for tracking peer confidences. This replaces the previous, less explicit system which had each peer try and track all transactions it'd seen in a per-peer pool. 2012-04-05 12:14:36 +02:00
examples Stop the main thread as the peer group thread is now daemonized. 2012-04-04 17:38:05 +02:00
tools Clear out some more FindBugs warnings. 2012-04-04 23:52:02 +02:00
.gitignore Add a .gitignore file that contains the target directory. 2012-01-16 17:44:10 +01:00
AUTHORS Fix a minor bug in AddressMessage. Patch from Vasile Rotaru. Resolves issue 138. 2012-02-10 16:44:57 +01:00
COPYING Initial checkin of BitCoinJ 2011-03-07 10:17:10 +00:00
pom.xml POM changes and refactorings from Gary. 2012-03-16 13:20:50 +01:00
README Re-organize the source tree so people can depend on bitcoinj without pulling in the examples, tools, or dependencies thereof. 2012-03-11 20:01:12 +01: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=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.

You can also use a command line tool that exposes basic Bitcoin operations

  ./wallet-tool   (on UNIX, if you have Maven installed)
  mvn exec:java -Dexec.mainClass=WalletTool --help   (on other platforms)

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.

To regenerate the protobuf Java sources from src/bitcoin.proto, install the protobuf compiler package version 2.4.x:

  Debian/Ubuntu: apt-get install protobuf-compiler

  Windows: http://code.google.com/p/protobuf/downloads/list

  OSX: install from ports?

and regenerate:

  mvn clean package -DupdateProtobuf

For eclipse use the maven plugin and run:

  mvn eclipse:eclipse