How can I create a new Genesis Block? I'm trying to create a testcoin using litecoin. To create genesis block I changed some lines to :

block.nTime = 1390948469; // current time

uint256 hashGenesisBlock("0x"); //I dont now it's true or false

uint256 hash = block.GetHash();
        printf("%s\n", hash.ToString().c_str());
        printf("%s\n", hashGenesisBlock.ToString().c_str());
        printf("%s\n", block.hashMerkleRoot.ToString().c_str());
        assert(block.hashMerkleRoot == uint256("0x")); //I dont now it's true or false.
        block.print();
        assert(hash == hashGenesisBlock);


When I build daemon and launch it, I'm getting this error:

litecoind: main.cpp:2788: bool InitBlockIndex(): Assertion `hash == hashGenesisBlock' failed.
Aborted


When I check the ./litecoin debug.log file, I'm seeing the previous hashMerkleRoot and hashGenesisBlock that litecoin uses now. I can't create new hash and merkle root.
Create genesis block. Some people get stuck there, it's really easy:


find LoadBlockIndex() function, inside, change:


paraphrase (pszTimestamp) to any recent news phase.
get the latest unix time (do a google), and put in block.nTime.
set any nNonce (doesn't really matter), 
you can change the time/nonce for testnet too, if you want to use it.



After you are done, save it. Now the genesis block will not match the hash check and merkle root check, it doesn't matter.

The first time you run the compiled code (daemon or qt), it will say "assertion failed". Just exit the program, go to
config dir (under AppData/Roaming), open the debug.log, get the hash after "block.GetHash() = ", copy and paste it to the beginnig of main.cpp, hashGenesisBlock. Also get the merkle root in the same log file, paste it to the ... position in the following code, in LoadBlockIndex()

 assert(block.hashMerkleRoot == uint256("0x..."));


recompile the code, and genesis block created!

BTW, don't forget to change "txNew.vout[0].nValue = " to the coin per block you defined, it doesn't matter to leave as 50, just be consistent with your coin per block (do this before adjust the hash and m-root, otherwise they will be changed again).

check https://bitcointalk.org/index.php?topic=225690.0 for complete info