Ok so here's what happened. My rear gears went out on my truck, i guess they went through the diff case? (so the shop says). So i had to replace the rear end in my truck, and it had been cold, really cold that week and i think my oil wasn't able to handle the conditions. When i went to pick up my truck like 2 months later

the engine had a bad knock in it and wouldn't go above 40 it seemed like.
When i start my truck, it has the hard knock, but when you give it a little gas it goes away until it comes back to idle. Would this be because the main bearings are bad on the crankshaft and if so how hard would it be to replace them myself?