Not being able to broadcast it before the effective date may be less cool, but it's not any less functional. I use locktime to send money to myself in the future---sort of like buying myself a savings bond. The sequence number lets you publish multiple versions of a transaction. The network is supposed to drop a pending transaction when another transaction appears spending the same input but with a higher sequence number. Sequence number and locktime are both currently used for payment channels as implemented in bitcoinj. See the following link for details: https://en.bitcoin.it/wiki/Contracts#Example_7:_Rapidly-adjusted_.28micro.29payments_to_a_pre-determined_partyI'm curious: what cool thing did you want to do with locktime that you can't do now? Nothing I can't do now, but, now it requires the other party to know what they're doing to be able to broadcast the transaction themselves, before, they'd be able to just look it up on blockchain.info, see "Oh, unless Automatic changes his mind, you'll get your money on Feb 20th", now, it's "oh, here's some really complicated string of numbers, now what I need you to do is save it, and, remember it, then, on the 20th, I need you to broadcast it.".
|
|
|
If you can't actually broadcast the transaction, may I ask what the point is? Just to simply give it to the other party and be like "Yeah... can't currently send it yet, but, heyho, you'll be able to in X days/blocks"? Seems a lot less cool than actually broadcasting it. EDIT:- And what's the point of sequence then? If you can't even broadcast it till it's valid anyway.
|
|
|
Automatic: I just saw your post. The reason your transaction went through immediately was that the sequence number of all inputs was set to the maximum value (4294967295), indicating the transaction was finalized and the locktime didn't apply. Changing any sequence field to any number less than the maximum will prevent the transaction from being entered into a block until the locktime (or, in your case, lockblock number) passes. I got tired of changing locktimes manually, so I wrote a quick shell script that changes the locktime to an arbitrary date and sets the sequence number to zero. The script then does some quick validation of the resulting transaction to help prevent me from doing anything simple. I added some comments to the script to help explain what's going on, but let me know if you have any questions. Note: I haven't tested it on multiple-input transactions. #!/bin/bash -eu
BITCOIND="bitcoind" #BITCOIND="bitcoind -testnet"
if [ $# -ne 1 ] then echo "Command to change the locktime of a bitcoin transaction provided on standard input" echo " Usage: ... | $0 '<date>'" echo " Example: btc-spend-all | $0 'tomorrow'" exit 1 fi
## I usually use this script in a pipeline with btc-spend-all, i.e.: ## btc-spend-all | btc-change-locktime tomorrow | bitcoind signrawtransaction $(cat) ## or ## echo '01000000017f286f35362457e961925835bff28351e0b679c7810827396c76967712a6714d0000000000ffffffff0100e1f505000000001976a9144c56a8926eeb911b06575be05bad06e66463fb1e88ac00000000' | btc-change-locktime ## Load the raw transaction from standard in RAW_TRANSACTION=$(cat)
## Get the desired locktime in human-readable format and convert it into ## epoch time in both decimal format and little-endian hexadecimal format LOCKTIME_DECIMAL=$( date +%s -ud "$1" ) || { echo 'Invalid date' ; exit 1 ; } LOCKTIME_HEX=$( echo $LOCKTIME_DECIMAL | awk '{ printf "%x", $1 }' | sed 's/^\(..\)\(..\)\(..\)\(..\)/\4\3\2\1/' )
#### SAMPLE TRANSACTION # 01000000017f286f35362457e961925835bff28351e0b679c7810827396c76967712a6714d0000000000ffffffff0100e1f505000000001976a9144c56a8926eeb911b06575be05bad06e66463fb1e88ac00000000 #### Every two characters (char) in hex equals one byte # 01000000 .............................Version (8 char) # 01 ...................................Vin count (2 char) # 7f286f35362457e961925835bff28351e0b679c7810827396c76967712a6714d ...Prevout hash (64 char) # 00000000 .............................Prevout index (8 char) # 00 ...................................Signature script length (2 char) # ffffffff .............................**Sequence number** (8 char) # ++++++++++++++++++++++++++++++++++++++[[[[ additional inputs can go here ]]]] # 01 ...................................vout count (2 char) # 00e1f50500000000 .....................satoshis to transfer to send in this output (16 char) # 19 ...................................public key length (2 char) # 76a9144c56a8926eeb911b06575be05bad06e66463fb1e88ac public key claim script (50 char) # ++++++++++++++++++++++++++++++++++++++[[[[ additional outputs can go here ]]]] # 00000000 .............................**locktime** (8 char)
## Modify the transaction MODIFIED_TRANSACTION=$( echo $RAW_TRANSACTION | sed ''' ## createrawtransaction by default creates transactions with ## max-value sequence numbers, which prevents locktime from having ## any effect. We need to change one of these sequence numbers to a ## lower value. Since the first sequence number always appears in ## the same byte location within the encoded transaction (after 84 ## hexits), we will reduce it down to zero. s/\(.\{84\}\)ffffffff/\100000000/;
## Now we need to set locktime to the earliest date when we want to ## be able to spend the bitcoins. Locktime is always the last 8 ## hexits of the encode transaction, and by default it is set to zero. s/00000000$/'$LOCKTIME_HEX'/; ''' )
## Pre-build the decode command so we can reuse it several times _dc_cmd="$BITCOIND decoderawtransaction"
## Now lets diff the original and modified transactions to test for changes. ## The diff should always produce 11 lines of output: a two-line header ## listing the file names, three one-line headers for each changed part, ## and three two-line diffs _diff_line_count=$( eval diff -u0 <( $_dc_cmd $RAW_TRANSACTION ) <( $_dc_cmd $MODIFIED_TRANSACTION ) | wc -l ) if [ $_diff_line_count -ne 11 ] then echo Unexpected output from the diff command. Dying... exit 1 fi
## Now test that all of the expected changes were made eval diff -u0 <( $_dc_cmd $RAW_TRANSACTION ) <( $_dc_cmd $MODIFIED_TRANSACTION ) \ | egrep -v '^(---|\+\+\+|@@) ' \ | sed ''' ## Whitelist all of the expected changes in the diff by ## deleting them so we can then test for unexpected changes # ## The new locktime should decode to the decimal locktime /^+.*"locktime".*'$LOCKTIME_DECIMAL'/d; ## The old locktime should have been zero /^-.*"locktime".* 0,/d; ## The new sequence should be zero /^+.*"sequence".* 0$/d; ## The old sequence should have been the maximum, 4294967295 /^-.*"sequence".* 4294967295/d; ## The only thing left should be the automatically-computerd ## txid hashes /"txid" : /d
## If anything remains, somenthing went wrong ''' | grep . && { echo "Unexpected changes. Dying..." ; exit 1 ; }
## If we get here, all of the tests have been passed, so give the user ## the modified transaction so they can sign it echo $MODIFIED_TRANSACTION
I never actually posted back, as, I thought it was dead, but, I realized this, when I tried to change the sequence number, bitcoind (and blockchain.info/pushtx) both gave me shit for "invalid sequence number", I'll try your bash script in a second, but, I thought I'd point that out. Can you actually transmit a transaction with a sequence less than 0xFFFFFFFF, or, is it just theory? EDIT:- Just used it, it spewed out (I signed it after):- 0100000001d616b7980a925ffe19ba70df38d48c3d15f6a4ea262fbea952e1b4bfd1914cf7000000006c4930460221009e57c7f746a03839ca7a74787106214179328960359be5d22e4f6e051ad05918022100f154e04e0e1aea41205e73b31ee42d24069119884abf56080336ada457dec42a012103487e2a93bb376f4f14a21b9caa0824f7e9a0258cade248cdf3369cbbb089b4220000000001905f0100000000001976a91416c5c7873f291e3420afb2a659cae594fcf7623c88ac80450553 { "lock_time":1392854400, "inputs":[ { "prev_out":{ "index":0, "hash":"f74c91d1bfb4e152a9be2f26eaa4f6153d8cd438df70ba19fe5f920a98b716d6" }, "script":"4930460221009e57c7f746a03839ca7a74787106214179328960359be5d22e4f6e051ad05918022100f154e04e0e1aea41205e73b31ee42d24069119884abf56080336ada457dec42a012103487e2a93bb376f4f14a21b9caa0824f7e9a0258cade248cdf3369cbbb089b422" } ], "vout_sz":1, "hash":"324185cc3d5e63eb3276c7d41956d0651ad14674e0452a1f5c77a5110125082e", "vin_sz":1, "out":[ { "address":"135QoB7inwoqLsyMdc81M5Rg8i6TkTNMYR", "script_string":"OP_DUP OP_HASH160 16c5c7873f291e3420afb2a659cae594fcf7623c OP_EQUALVERIFY OP_CHECKSIG", "value":90000, "script":"76a91416c5c7873f291e3420afb2a659cae594fcf7623c88ac" } ], "size":193, "version":1 } Let's test it (In order:- Blockchain.info/pushtx, Debug window on Bitcoin-QT Win x64, Bitcoind on Arch Linux):-
|
|
|
So the value of one Bitcoin you can't withdraw has fallen from 400 dollars you can't withdraw to 300 dollars you can't withdraw.
Pretty much
|
|
|
What the hell did you use to write that text? It looks so sexy. -boringstuff- So it's my handwriting. Well then, I like your handwriting.
|
|
|
I'm actually wondering the same, I'm running Armory on an offline computer hosting two wallets, one with around 1.5BTC, another with around 2BTC (then, one 100% online wallet hosting ~ 0.03, 'spending' money).
I've considered making a paperwallet before (I have a paper armory backup, but, I'm talking about a 100% paper wallet), my only fear with that is I'm utterly shit with keeping physical objects secure, and, I'll probably end up losing the paper, I'm a lot less likely to lose a laptop (Granted, there's stuff like HDD failure).
|
|
|
I got this too some hour back... to my phone of all places where it's hard not to react to the coin-arrival sound. Gotta give them credit for the creativity of spamming with vanity addresses, though. Took me a while to find this thread. What the hell did you use to write that text? It looks so sexy.
|
|
|
Updated thread & bot 'help' menu, makes it look a little nicer.
|
|
|
Out of interest, how long was BTC-e down for?
For me? About two minutes.
|
|
|
Ummm. Good? WTF, are we supposed to feel sorry for criminals having their bitcoins stolen or are we supposed to worry about the bad security of a criminal enterprise? Good, steal them all....
That's a very opinion and geographical specific idea, there are countries that allow drugs, and, on top of that, they don't just sell drugs. I could go onto the whole debate about how I don't even feel that drugs should be illegal, but, then we're going onto a larger topic past the point of bitcoins.
|
|
|
Probably because literally everywhere you look you hear "Bitcoin", "Exploit", "Stolen", "Theft", "Unrecoverable" and "Lost" all in the same sentence, that's never good PR.
|
|
|
Already 1.28 BTC in their donation address.
Wow. How long have they accepted Bitcoin for? Just today. VLC mediaplayer is all I've ever used for the last few years since I discovered it. its is already 2.06601013 BTC so you can guess its not so long may be few hours..! Based on Blockchain.info, first donation:- Last donation:- So, 17 hours to generate $1200, not bad.
|
|
|
Up for me, but, BTC is falling:-
|
|
|
blockchain.info api is unreliable for serious businesses. a lot of http callback notification were not sent. for past 30 days alone it has been down at least 2 times. and everytime they are down, every service relied on their api will be screwed up. i eventually build my own bitcoin server to handle my transactions. thanks for last downtime it's forcing me building my own server Honestly, if you're relying on someone else then you're already going down hill. Small application/not many sales? Bitcoind. Large application/lots of sales per second? Custom developed bitcoin-interfaced program that can actually handle and raise events within your code, unlike bitcoind. Will take awhile to actually implement stuff correctly (And, believe me, you'll want to test it like no tomorrow when dealing with money), but, I think the majority of us can agree that for large scale operations, nothing beats specifically tailored software.
|
|
|
Inability to withdraw and lack of trust = plummeting value on gox.
Hopefully people can get their coins out at some point.
I want to trade some of my in-chain BTC for GOX BTC, but, I'm scared of:- 1. Them not being able to pay out 2. Their staff being socially engineered into giving the user their money back Etc...
|
|
|
Honestly maybe it's a good proposition, but anyway to do this we need to wait few days more to let me get verified finally there - i just asked on IRC can I send GoxCoins to other account as an unverified and they said no.
I sent them proper documents week ago and honestly i thought i get verified before somebody act here...
Maybe anybody will take my Gox account access as a collateral?
I'm running out of possibilities, trying to do something to speed up my verification using IRC, but MTGOX CUSTOMER SUPPORT are f*CKING useless!!!
Don't do that. Somebody will just transfer your Gox BTC to their own account, then you're SOL. I fail to see how that's bad. I fail to see why this is in lending, really should just be in a trade. 2.5 GOX BTC for 2 in-chain BTC.
|
|
|
I sent the required amount to the BTC address given but I still didn't get the game. It already shows 2 confirmations in my transaction.
Yup, sorry, you've got your game. Fuck sake, bitcoind really hates me, well, guess this bot is down again, marking as such. Worse part is I have no idea what's causing it. Okay, just moved it between servers, I think I know the cause of this downtime and should be constantly up now. When I finally get the bot up, nobody wants to buy, when it's down, everyone wants to buy. God dammit.
|
|
|
Did anybody finally get theor money? I am wating almost a a day now! nothing shows up at blockchain!
I got my money back in January, not used it since.
|
|
|
Bitcoin wasn't created to deal with low value transactions as far as I know. If you want to send an amount that is lower then it's fee, then you are doing something stupid and wrong. But well, that's my opinion.
Honestly, if you're sending eight cents or less, I have no idea whom you are paying, but, if they don't let eight cents slide, they're pretty cheap.
|
|
|
He has DayZ back because he scammed it from me. I was the guy he sold it to on February 3rd. DON'T BUY FROM THIS GUY. He is a scammer. I payed .025 for DayZ, then he revoked the gift but never repayed the BTC. This guy will steal your BTC and gamble it away (verified from blockchain.info).
Avoid at all costs
Uh-oh, that sounds bad, lucky all inputs that I sell stay in a static offline address for at-least a month after sales, and, none of my games are carded (Why I can't sell DayZ, to the extent of my knowledge, is impossible to get cheap legitimately).
|
|
|
|