I can think of at least 3 solutions.Solution 1, the unique server ID
Assume that the nonce can be up to 19 digits long (64 bit int). Subtract 10 digits for the current unix timestamp.
Figure out the maximum number of machines you'll ever have, take X=ceiling(log10
Now, take 9 and subtract X. Whatever you get is the number of digits to take from the front of the microseconds clock when making the nonce.
So, if you expect not more than 10,000 machines, X will be 4. So in your mtgox code, you use
$req['nonce'] = $mt.substr($mt, 2, 6).$unique_id_for_this_machine;Solution 2, the proxy
Relay all of your requests through another box that calculates the nonce and signature.Solution 2, start over
Seriously. What sort of distributed system needs access to an exchange?