I'm pretty sure bitcoinj is capable of downloading any Bitcoin transaction from P2P nodes by broadcasting GetDataMessage
because that's what it does in the peer.downloadDependenciesInternal
method.
I'm trying to find/implement a very simple method which would download a transaction with its inputs and outputs and the block in which it's included (if any) but, because of Guava asynchronous futures, I cannot figure it out.
Very simply, I would like to replace 3rd-party services like blockchain.info with something decentralized.