Reduce storage requirements by enabling pruning (deleting) of old
blocks. This allows the pruneblockchain RPC to be called to
delete specific blocks, and enables automatic pruning of old
blocks if a target size in MiB is provided. This mode is
incompatible with -txindex and -rescan. Warning: Reverting this
setting requires re-downloading the entire blockchain. (default:
0 = disable pruning blocks, 1 = allow manual pruning via RPC,
550 = automatically prune block files to stay under the
specified target size in MiB)
The feature was originally introduced in Bitcoin Core 0.11 (see release notes).
As of version 0.12 pruning can be used while running a wallet. But note the -txindex and -rescan caveats.
Also note that the specified MiB will only include the block files and some undo space. Besides that you will also need some disk space for the chain state and block index databases.
there was a followup on what a pruning node could actually be good for. Well, one answer would be shop systems who do not want/cannot rely on third party APIs like blockchain.info for their payment processing. a prune node would allow to be run on say a cheap vps with low space, while checking mempool for incoming transactions to implement payments. it would also allow checking/signing messages using the clients rpc calls, and to a limited degree it could allow checking the balances of addresses. I personally think(and I proposed intelligent pruning as I call it back in 2013) bitcoin devs implemented it wrongly. My implementation suggestion back then was to prune coins from the blockchain that had already been spent. Current behavior is to verify coins in transactions back to coinbase(aka when they were mined), while it should be sufficient to keep the last say 120 blocks plus every unspent transaction. Since the client verifies all blocks it gets, it could rely on those coins to be verified, yet it wouldnt need to know any previous transactions the coins went through.