3
0
mirror of https://github.com/Qortal/altcoinj.git synced 2025-02-14 19:25:51 +00:00
Matt Corallo 95b5e0d894 Make FullPrunedBlockStore/Chain upgrade-friendly.
This does several things to support the ability to upgrade from a
BlockChain to a FullPrunedBlockChain backed by the same
FullPrunedBlockStore:
 * Add two methods to FullPrunedBlockStore to allow it to keep
   track of two chain heads - one verified, one normal.
 * Change preSetChainHead in AbstractBlockChain to doSetChainHead so
   that FullPrunedBlockChain and BlockChain can set only the
   appropriate chain head
 * Add FullPrunedBlockStore.getOnceUndoableStoredBlock.
   This allows a BlockChain to request only StoredBlocks which
   were, at one point, associated with a StoredUndoableBlock,
   effectively splitting FullPrunedBlockStore into two independent
   BlockStores (one FullPruned, one normal).
 * Add/use AbstractBlockChain.getStoredBlockInCurrentScope which
   relies on the above additions to FullPrunedBlockStore to properly
   utilize one FullPrunedBlockStore as two separate block stores
   depending on the BlockChain instance used.
   Note that this is not used everywhere in AbstractBlockChain as,
   barring something being insanely broken, the prev block of a
   block in current scope will be in current scope.
2012-12-27 16:34:27 +00:00
2012-12-25 01:23:16 +00:00
2012-08-21 11:40:47 +02:00
2011-03-07 10:17:10 +00:00
2012-05-31 11:08:27 +02: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 try running one of the example apps:

  cd examples
  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.

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

On UNIX:
  cd tools
  ./wallet-tool

On other platforms, do what the shell script would do for you:
  cd tools
  mvn -q package -DskipTests
  java -jar target/bitcoinj-tools-*.jar --help


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
Description
Java library for adding altcoin support to bitcoinj
Readme 23 MiB
Languages
Java 100%