2- With my limited blockchain knowledge I thought that to solve a block you need the previous block to hash.. If we are solving blocks how do we know the previous block since giants like btc.com, antpool etc etc solve blocks every 10 minutes.. Then this means that once we start hashing a block the previous block is obsolete since these giants have already finds blocks..
You need the hash of the previous block, yes. But there is no progress to abandon. It's not like after 1 day, we're 10% of the way to mining a block, and can predict that we'll mine a block in 9 more days. Mining is like rolling a die with 1,000,000,000,000,000 sides. If the die comes up with a 1, then you've mined a valid block. If the die comes up with any other number, then you have not mined a block and need to try again. When someone else publishes a new block, that forces us to roll a die at a different table. When you switch tables, you don't bring anything with you from the old table, and you abandon the roll in progress. But it doesn't matter, because each round of the game only lasts a billionth of a second and is independent from all other rounds.
I still have not clearly understood .. the total Hashing power of p2pool is around 1.5ph where as btc poll is around 4.290eh.. So they will crush the blocks every time we start hashing. And also our expected time on finding a block on your fork is around 10-15 days (87 days on p2pool)... Until we find a block they will find one and every time we have to start from the beginning, so how do we ever get one...
Thanks..