I'm having trouble understanding getblocktemplate.
I see how to build the block header and then begin hashing by incrementing the nonce, the same as I would perform work on the result of a getwork call.
What I don't understand is the following
Since you're making all the blocks yourself, you really don't ever need to get another template... until it's invalid.
After I construct my merkle root and then my block header, and hash away by incrementing the nonce, then what? How do I "create" a block? Surely I will overflow the nonce quickly with an ASIC - so what else am I varying while hashing?
I feel like I am missing a very important step.
Thanks in advance!