Pruning Blockchain, what does it remove?
What
Raw block data for blocks older than a given height.
If we look at https://bitcoincore.org/en/releases/0.11.0/, it says
This release supports running a fully validating node without maintaining a copy of the raw block and undo data on disk. To recap, there are four types of data related to the blockchain in the bitcoin system: the raw blocks as received over the network (blk???.dat), the undo data (rev???.dat), the block index and the UTXO set (both LevelDB databases). The databases are built from the raw data.
Block pruning allows Bitcoin Core to delete the raw block and undo data once it’s been validated and used to build the databases. At that point, the raw data is used only to relay blocks to other nodes, to handle reorganizations, to look up old transactions (if -txindex is enabled or via the RPC/REST interfaces), or for rescanning the wallet. The block index continues to hold the metadata about all blocks in the blockchain.
So if raw block data and undo data are deleted that presumably leaves the block index and the UTXO set as the two of the "four types of data" that are unaffected by pruning.
...
Modified RPC calls:
getblockchaininfo now includes whether we are in pruned mode or not.
getblock will check if the block’s data has been pruned and if so, return an error.
getrawtransaction will no longer be able to locate a transaction that has a UTXO but where its block file has been pruned.
So some RPC calls return an error for pruned data.
When
However the most recent 288 blocks are kept (approx 2 days worth) regardless of whether all their transaction outputs have been spent.
There are some additional details about the timing of deletion of files that contain multiple blocks that are individually marked for deletion. I don't think this substantially affects this answer but it may be something that you should study - depending on what you are trying to achieve.
Would it interfere with rpc calls to show info on a transaction/block?
Obviously, if the block has been pruned it would hamper the ability of the node to report on it. As mentioned above, some RPC calls will return an error if a block has been pruned.
a full explorer?
Ditto.
Does it interfere with showing transaction histories?
It may interfere with showing the history of arbitrary transactions but you should still be able to view all transactions that were created by this wallet/node.
I think you wouldn't always be able to immediately retrieve full details of the sources of transaction inputs back through prior transactions all the way back to the "coinbase" transaction that created the money currently being controlled by the pruning node.
So it may depend what you mean by history?
- transactions previously created by this node
- historical transactions referred to by own "live" transactions directly or indirectly.
I think the intent of a pruning node is that it should be fully functional as a personal wallet but require much less disk storage space.
If you are using it as something other than a personal wallet you may find that there are significant disadvantages you have to explicitly work around. I guess it depends on the precise details of the intended usage.
See