make stream receiver exception safe change get_block(block**) to get_block(block* , bool* eos) unify stream semantic