How exactly can I generate a transaction id?

I’d like to create a transaction object from scratch. I’ve read that the tx id for a transaction is the double SHA-256 hash of a serialized transaction, but havent been able to find details on exactly how the data is formatted before its serialized or how it is serialized for that matter.

Could someone, perhaps, provide an example of how the data is organized before it’s serialized and/or describe the manner of serialization taking place?

Print wallet.dat with base64

I just wanted to ask If it makes sense if I want to print out my wallet.dat to encode it with base64?

I also read that the backup would become useless, if I get any receivements or make deposits and I would have to print out the wallet.dat again?

I would like to encode my wallet.dat with base64, print it and hide it in safe.

when my laptop breaks down and my other backups are also damaged (why every), i could scan my printed wallet.dat with OCR, decode it with base64 and just load it into the normal bitcoin client?

does this sound correct?
or are there any things I’m missing?

I dont want to rely on other software, no other web apps or key/password generators…

jsonRPCClient Error with php variables

I am trying to run the following code


but it will not work. it does however work when i replace $betamount with an actual number ie




any ideas on whats going wrong ? the $_POST[‘bet’] is defiantly a number because i have tried multiplying in php and it all works fine.

Can a Qubit Miner ASIC device be created and what would its impact be on the mining community?

With mining gaining in popularity every day and the raw power of the ASIC devices increasing at a dramatic rate, I wonder what is the next big jump for miners.

Qubits, or quantum bits, have already shown to be extremely fast at calculations. That makes them seem like a perfect fit for mining bitcoins.

This question is asking if a qubit device can be created for mining bitcoins and, if so, how it would affect the current mining community using standard zeros and ones. To ask this another way…

How much faster would a qubit device mine bitcoins when compared to an existing ASIC device today? Let’s compare it to ButterflyLab’s Mini Rig which runs at 500 GH/s. Ten, hundreds, thousands, millions times faster? Could quibit devices destroy the bitcoin network by controlling more than 51% of the network?

ScriptSig (coinbase) structure of the Genesis Block

From original bitcoin c++ source code:

// Genesis Block:
        // CBlock(hash=000000000019d6, ver=1, hashPrevBlock=00000000000000, hashMerkleRoot=4a5e1e, nTime=1231006505, nBits=1d00ffff, nNonce=2083236893, vtx=1)
        //   CTransaction(hash=4a5e1e, ver=1, vin.size=1, vout.size=1, nLockTime=0)
        //     CTxIn(COutPoint(000000, -1), coinbase 04ffff001d0104455468652054696d65732030332f4a616e2f32303039204368616e63656c6c6f72206f6e206272696e6b206f66207365636f6e64206261696c6f757420666f722062616e6b73)
        //     CTxOut(nValue=50.00000000, scriptPubKey=0x5F1DF16B2B704C8A578D0B)
        //   vMerkleTree: 4a5e1e[0].scriptSig = CScript() << 486604799 << CBigNum(4) << vector<unsigned char>((const unsigned char*)pszTimestamp, (const unsigned char*)pszTimestamp + strlen(pszTimestamp));

We could see that scriptSig is: 04ffff001d0104455468652054696d65732030332f4a616e2f32303039204368616e63656c6c6f72206f6e206272696e6b206f66207365636f6e64206261696c6f757420666f722062616e6b73

Let’s see closer:

04 – ?

ffff001d – 486604799 aka 0x1d00ffff

010445 – ?

5468652054696d65732030332f4a616e2f32303039204368616e63656c6c6f72206f6e206272696e6b206f66207365636f6e64206261696c6f757420666f722062616e6b73 – The Times 03/Jan/2009 Chancellor on brink of second bailout for banks

I don’t understand what are 04 and 010445. How can I get them?
At wiki page of Genesis Block ( in ScriptSig line there is nothting about 010445.

How does the network know my current balance?

Maybe I haven’t yet fully understood how transactions work. And if so, please forgive me my stupid question.

But I assume it to be "just" a digitally signed message like "send 1 BTC to Bob" where Bob is identified by its public key (of course obeying to some protocol). The transaction is then signed with my private key which prevents later modification and then sent to the network for hashing and block-building…

I’m not sure how Bob is notified of the transaction.
Does his client software really have to parse the block chain to find the transaction where his public key is listed?

And even more interesting is the question how the sender of the money is restricted to only send as much money as they have? Is this all managed by the Bitcoin client?
If so, I could write my own software which just uses the (or: any) amount of (Bitcoin) money together with the recipient’s public key and build the transaction ASN specified somewhere in the protocol.
Who checks the balance and when is it checked?
Does my Bitcoin client fully dive into the block chain and calculates the balance?
Is this then trusted by the network?
Or does the network (e.g. when building and hashing the block) also a verification of all the public keys from their first transactions on?