  The first obstacle that regular users encounter when setting up a node for a
public blockchain is the time taken for downloading all the data needed for the
node to start operating correctly. In fact, this may last from hours to weeks
for the major networks. Our contribution is twofold. Firstly, we show a design
that enables mining and validation of new blocks keeping only a very small
state. Secondly, we show that it is possible to store the state of the
blockchain in a distributed hash table obtaining a wide spectrum of trade-offs
between storage committed by the nodes and replication factor. Our proposal is
independent from the consensus algorithm adopted, and copes well with
transactions that involve smart contracts.
