Show Posts
|
Pages: [1]
|
There's still the EFF prizes for prime number solutions, which in essence are limited to how fast you can perform the FFT/ inverse FFT (or NTT if you chose). Those start at $150,000 USD.
|
|
|
I'm calculating $76,210k USD / BTC to reach equivalent market cap (I'm assuming 21M BTC total volume, since that is a known quantity).
Also, it is measured as an ordinate number, similar to the USD or other currency. One dollar is one dollar whether it's in Cash, Cheque, or bits in a wire transfer, which are also massless.
|
|
|
I added your referall code. I am now trying to get money into my account. I chose Liberty Reserve, which doesn't actually take money from an account! You have to use and exchange service, half of which are in NIGERIA. No thanks. I found one that uses PayPal, but that means
My bank account -> paypal -> exchanger -> Liberty Reserve -> Trade Hill
That's way too convoluted to use.
I'm signing up for Dwolla I guess.
|
|
|
I would like to optimize the code, and if I have to poll system time to continue, it will make it slower. Does this "GetWork" API already have time included in its hash? Or can I use my system's current time once, and run a few thousand iterations without updating time?
Also, it appears that I need to check to see if the hash the thread is working on is still valid, I'm guessing the hash that needs to be worked on changes every 10 minutes approximately?
Thanks everyone for comments. I feel like I'm learning this pretty quickly, although it will be a while before I can get a working reference client going.
Thanks!
|
|
|
Ok, thanks for that update. I haven't heard of the "extra-nonce" before, where could I research it? I guess this means the 32 bit nonce isn't the only thing iterating?
Also, I'm assuming that I can get the bitcoind API (currently researching "getwork") to notify me when a block is changed, and can reset the loop?
So my loop would look like:
Do some iterations, check to see if block has changed.
If it has changed, reset nonce, get new header info. If not, keep iterating nonce.
Thanks for your help.
|
|
|
I've read the wiki multiple times, and I'm still not perfectly clear on a couple of things. I was hoping someone might be able to enlighten me on a couple of things regarding the mechanics of hashing the header?
The hashes being generated are SHA(SHA(Header)), where SHA is the SHA2-256 algorithm.
The header is described in the wiki, so I don't have problems there.
The first hash, SHA(Header) is run as thus:
The first 64 bytes (512 bits, 1st chunk) are hashed, which include the header, the previous block hash, and 3/4 of the Merkel Root hash. 64 iterations of the algorithm.
This will output 8 32bit numbers. This is the first "chunk".
The final 20 bytes have 2^8*36 added as padding (binary "1" followed by zeros to add 36 bytes), and the length of the header in bits (640) added as a 64 bit Big-Endian number (final 8 bytes)
This will also output 8 32bit numbers. Each number from the second "chunk" is added to the first, to its corresponding number from the first chunk. This addition is done over modulo 2^32 for each number, so there's no overflow or carry.
This is the first hash.
This number is hashed again, with 2^192 plus a 64-bit big-endian number equaling "256" is appended, so the hash is padded for one chunk.
My first couple of questions trying to understand this are:
Within the final 20 bytes is the "nonce", which is iterated to find a hash which is less than a given value (the "difficulty"). I'm guessing the timestamp is dictated somehow and I can't arbitrarily change it? Do I need to update the timestamp as I'm iterating?
Thanks for any help. I'm trying to write a "reference" python program to help myself understand the mining process. If I get it to work I'll open it up as a reference code for those trying to understand the process like myself. I will be writing it for readability and simplicity, rather than for something actually used to mine for bitcoins. Thanks in advance!
|
|
|
|