Oscar Guindzberg 26adf68948 Limit initial size of some structures
Limits initial size of these structures:
- Inputs and Outputs in Transaction
- Transactions in Block
- Hashes in PartialMerkleeTree

The fix prevents this DoS attack:
- Somehow the attacker needs to get a p2p connection to the bitcoinj node.
- The attacker sends a tx msg that says the tx contains a trillion inputs (or a similar msg attacking any other of the structures described above).
- bitcoinj tries to instantiate an ArrayList with a size of a trillion.
OutOfMemoryError and the bitcoinj node is down.
2018-05-08 13:51:26 -03:00
2015-03-21 17:23:21 +01:00
2015-06-03 12:19:43 +02:00
2013-03-01 13:59:48 +01:00
2016-04-02 17:56:39 +02:00
2011-03-07 10:17:10 +00:00

Build Status Coverage Status

Visit our IRC channel

Welcome to bitcoinj

The bitcoinj library is a Java implementation of the Bitcoin protocol, which allows it to maintain a wallet and send/receive transactions without needing a local copy of Bitcoin Core. It comes with full documentation and some example apps showing how to use it.

Technologies

  • Java 7 for the core modules, Java 8 for everything else
  • Gradle 3.4+ - for building the project
  • Google Protocol Buffers - for use with serialization and hardware communications

Getting started

To get started, it is best to have the latest JDK and Gradle installed. The HEAD of the master branch contains the latest development code and various production releases are provided on feature branches.

Building from the command line

To perform a full build use

gradle clean build

You can also run

gradle javadoc

to generate the JavaDocs.

The outputs are under the build directory.

Building from an IDE

Alternatively, just import the project using your IDE. IntelliJ has Gradle integration built-in and has a free Community Edition. Simply use File | New | Project from Existing Sources and locate the build.gradle in the root of the cloned project source tree.

Example applications

These are found in the examples module.

Where next?

Now you are ready to follow the tutorial.

Description
Java library for adding altcoin support to bitcoinj
Readme 22 MiB
Languages
Java 100%