Bitcoin Forum
August 08, 2024, 09:29:28 PM *
News: Latest Bitcoin Core release: 27.1 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Why do I need the whole chain to broadcast a transaction?  (Read 1431 times)
papa_snurf (OP)
Newbie
*
Offline Offline

Activity: 48
Merit: 0


View Profile
March 09, 2013, 02:13:38 PM
 #1

Please excuse a noob's ignorance, but I understand that even if the transaction is generated offline, the online armory client need to download the full blockchain to broadcast the transaction message.

My question is: why ?

If I try to broadcast an invalid transaction and the originating address does not contain enough coins the miners will reject it anyway. Why do I need the whole chain?
Raoul Duke
aka psy
Legendary
*
Offline Offline

Activity: 1358
Merit: 1002



View Profile
March 09, 2013, 02:34:35 PM
 #2

Please excuse a noob's ignorance, but I understand that even if the transaction is generated offline, the online armory client need to download the full blockchain to broadcast the transaction message.

My question is: why ?

If I try to broadcast an invalid transaction and the originating address does not contain enough coins the miners will reject it anyway. Why do I need the whole chain?

Because most people who would commit such a mistake most likely wouldn't be able to recover coins not spent if they were sent in an invalid transaction without coming here crying for help.

The technical reasons may be different, but this one sure is one heck of a reason.
Never trust user inputs without validation. Wink
papa_snurf (OP)
Newbie
*
Offline Offline

Activity: 48
Merit: 0


View Profile
March 09, 2013, 03:01:13 PM
 #3

Please excuse a noob's ignorance, but I understand that even if the transaction is generated offline, the online armory client need to download the full blockchain to broadcast the transaction message.

My question is: why ?

If I try to broadcast an invalid transaction and the originating address does not contain enough coins the miners will reject it anyway. Why do I need the whole chain?

Because most people who would commit such a mistake most likely wouldn't be able to recover coins not spent if they were sent in an invalid transaction without coming here crying for help.

The technical reasons may be different, but this one sure is one heck of a reason.
Never trust user inputs without validation. Wink

Thanks for your answer.

What kind of errors could be prevented by downloading the blockchain?

If we're talking about inputting bad addresses then the embedded checksum should prevent that.
Raoul Duke
aka psy
Legendary
*
Offline Offline

Activity: 1358
Merit: 1002



View Profile
March 09, 2013, 03:39:02 PM
 #4

Please excuse a noob's ignorance, but I understand that even if the transaction is generated offline, the online armory client need to download the full blockchain to broadcast the transaction message.

My question is: why ?

If I try to broadcast an invalid transaction and the originating address does not contain enough coins the miners will reject it anyway. Why do I need the whole chain?

Because most people who would commit such a mistake most likely wouldn't be able to recover coins not spent if they were sent in an invalid transaction without coming here crying for help.

The technical reasons may be different, but this one sure is one heck of a reason.
Never trust user inputs without validation. Wink

Thanks for your answer.

What kind of errors could be prevented by downloading the blockchain?

If we're talking about inputting bad addresses then the embedded checksum should prevent that.

No, I'm talking about armory not knowing if some of the coins on "your" transaction were already spent in a previous transaction. Now imagine that mixed with those already spent coins you also send some coins you didn't spend yet. What would happen? Those "valid" coins would be "stuck" on an invalid transaction that nobody would accept or relay.
Maybe you or me could recover those coins with 5 or 10 minutes of work, deleting the tx or exporting and importing the private key(s) into another wallet, but most users won't.
Not allowing users to do stupid things is a great reason, don't you think? Wink

Certainly there may be are other technical reasons for it. I'm sure etotheipi will come here and give you a detailed explanation.
nimda
Hero Member
*****
Offline Offline

Activity: 784
Merit: 1000


0xFB0D8D1534241423


View Profile
March 11, 2013, 11:32:18 PM
 #5

I am fairly certain that you do not need the whole chain to broadcast a transaction. You could create one yourself with raw transactions and then push it. There is no technical obstacle; it's merely a very good design choice.
ErebusBat
Hero Member
*****
Offline Offline

Activity: 560
Merit: 500

I am the one who knocks


View Profile
April 02, 2013, 07:22:06 PM
 #6

You dont need any chain to broadcast a TX; however to generate the TX you have to have the outputs of previous transactions.  This is why an offline armory computer can be very small, because it is just signing the already created TX with your privet key(s).

In that security model it doesn't make sense to have the signing computer connected to the network to broadcast the TX, although it could.  You could create a TX on a machine with the full chain, then sign it on another offline computer then broadcast the TX from a completely different computer.

You can even use the rawtx API or http://blockchain.info/pushtx to send it out.

░▒▓█ Coinroll.it - 1% House Edge Dice Game █▓▒░ • Coinroll Thread • *FREE* 100 BTC Raffle

Signup for CEX.io BitFury exchange and get GHS Instantly!  Don't wait for shipping, mine NOW!
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!