mirror of
https://github.com/Qortal/altcoinj.git
synced 2025-02-12 10:15:52 +00:00
Remove Netty entirely, using the new Nio wrapper classes instead * BitcoinSerializer now uses ByteBuffers directly instead of InputStreams. * TCPNetworkConnection and NetworkConnection interface deleted, Peer now extends the abstract class PeerSocketHandler which handles deserialization and interfaces with the Nio wrapper classes. * As a part of this, all version message handling has been moved to Peer, instead of doing it in TCPNetworkConnection. * Peer.setMinProtocolVersion() now returns a boolean instead of a null/non-null future which holds the now-closing channel. * Peer.sendMessage (now PeerSocketHandler.sendMessage()) now returns void. * PeerGroup has some significant API changes: * removed constructors which take pipeline factories, makePipelineFactory, createClientBootstrap * Replaced with a setSocketTimeoutMillis method that sets a timeout between openConnection() and version/verack exchange. (Note that because Peer extends AbstractTimeoutHandler, it has useful timeout setters public already). * connectTo returns a Peer future, not a ChannelFuture * removed peerFromChannelFuture and peerFromChannel * Peer and PeerGroup Tests have semi-significant rewrites: * They use actual TCP connections to localhost * The "remote" side is a InboundMessageQueuer, which queues inbound messages and allows for writing arbitrary messages. * It ignores certain special pings which come from pingAndWait, which is used to wait for message processing in the Peer. * Removed a broken test in PeerGroupTest that should be reenabled if we ever prefer a different version than our minimum version again. * Removed two duplicate tests in PeerTest (testRun_*Exception) which are tested for in badMessage as well. * Added a test for peer timeout and large message deserialization Author: Matt Corallo <git@bluematt.me>
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. Alternatively, just import the project using your IDE. IntelliJ has Maven integration once you tell it where to find your unzipped Maven install directory. Now try running one of the example apps: cd examples mvn exec:java -Dexec.mainClass=com.google.bitcoin.examples.ForwardingService <insert a bitcoin address here> It will download the block chain and eventually print a Bitcoin address. If you send coins to it, it will forward them on to the address you specified. Now you are ready to follow the tutorial: https://code.google.com/p/bitcoinj/wiki/GettingStarted
Description
Languages
Java
100%