Can you raise/lower a single block by an arbitrary distance using pistons? Will this work with chests?
If the number of pistons is no limiting factor, then you could use a piston to push the block up by one meter, then use another to push it across one meter. Repeating this pattern of up-and-then-across, you can effectively pass the block up a series of pistons, one meter at a time. Think of it like a staircase. Standing on top of the pushed block essentially give you an escalator.
If you want to block to go straight up instead, then you could simply use this method in a spiral staircase pattern instead. Standing on the pushed block now essentially gives you an elevator.
This will not work with chests, furnaces, noteblocks, obsidian, bedrock, or any blocks with tile entities.
Regardless of the first part, chests cannot be moved with pistons.
But using this set-up (the painting is a piston) and repeatedly turning on and off the redstone, the glowstone block will move upwards, if pistons have a limit of how much they can push, it will eventually stop. And there is the case of lots of cobblestone as a by-product.