Modern peer-to-peer file sharing systems distribute large files among peers using block partitioning. Blocks can be redistributed by a peer even before the whole file is available which highly decreases the distribution time. All peer-topeer networks face the problem of dynamic participation of the peers and dynamic bandwidth in the network. A leaving peer can cause an unrecoverable loss of blocks and obstruct further downloads of the file. Furthermore, the choice which block needs to be sent to which peer is a hard question. A random choice leads to the coupon collector problem which decreases the transmission rate. Filesharing networks like BitTorrent or Splitstream face such problems. Network Coding overcomes this problem by using error redundant codes of all blocks of the file. An efficient randomized variant of it, Practical Network Coding, transmits and recombines random linear combinations of the blocks of the partitioned file. As soon as enough linear combinations have been ga...