Bitcoin Forum
May 09, 2016, 01:02:21 AM *
News: New! Latest stable version of Bitcoin Core: 0.12.1 [Torrent]
 
  Home Help Search Donate Login Register  
  Show Posts
Pages: « 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 [31] 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 ... 114 »
601  Bitcoin / Bitcoin Discussion / Bitcoin-Qt / bitcoind version 0.6.3 released on: June 25, 2012, 05:52:53 PM
Bitcoin version 0.6.3 is now available for download at:
  http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.6.3/

This is a bug-fix release, with no new features.

Please report bugs using the issue tracker at github:
  https://github.com/bitcoin/bitcoin/issues

CHANGE SUMMARY
==============

Fixed a serious denial-of-service attack that could cause the
bitcoin process to become unresponsive. Thanks to Sergio Lerner
for finding and responsibly reporting the problem. (CVE-2012-3789)

Optimized the process of checking transaction signatures, to
speed up processing of new block messages and make propagating
blocks across the network faster.

Fixed an obscure bug that could cause the bitcoin process to get
stuck on an invalid block-chain, if the invalid chain was
hundreds of blocks long.

Bitcoin-Qt no longer automatically selects the first address
in the address book (Issue #1384).

Fixed minimize-to-dock behavior of Bitcon-Qt on the Mac.

Added a block checkpoint at block 185,333 to speed up initial
blockchain download.


Thanks to everybody who contributed to this release:
====================================================

Chris Moore
Christian von Roques
Fordy
Gavin Andresen
Jeff Garzik
Luke Dashjr
Matt Corallo
Michael Hendricks
Peter Todd
Philip Kaufmann
Pieter Wuille
R E Broadley
Sergio Lerner
Wladimir J. van der Laan
602  Bitcoin / Development & Technical Discussion / Re: Patching The Bitcoin Client To Make It More Anonymous on: June 25, 2012, 03:22:10 PM
However, as mentioned above, the issue of fees is still outstanding - which does relate VERY closely to this.
Determining the "right" fees is a separate issue; see https://gist.github.com/2961409  for my current thinking.

The raw transaction API will let you create and try to send a transaction with as much or little fees as you like, but if you try to send a 20 kilobyte transaction with zero fees you shouldn't be surprised if nobody relays or mines it.

This looks interesting - just one question after reading this document (as the word "change" does not appear in it at all) - will it be also possible to specify the *change* address with such "raw transactions" (in perhaps the sendrawtx command itself)?

If you use the raw transaction API then you're responsible for saying exactly where all of the outputs go.  If you create a raw transaction with a 50 BTC input and a 2 BTC output then that is a no-change, 48 BTC fee transaction.  If you don't intend the 48 BTC to go to miners, then you need to specify where the change goes by adding another output.

I suppose the RPC calls could have limits to try to keep you from shooting yourself in the foot, but anybody using the raw transaction API should be doing a lot of testing with worthless testnet coins and I'd rather not start playing the "lets write lots of code to try to prevent RPC-users from being dumb" game.

603  Alternate cryptocurrencies / Altcoin Discussion / Nurturing AlternaCoins on: June 25, 2012, 01:19:36 AM
When I tell people I work on Bitcoin full-time, a somewhat common reaction is "Really?  I thought Bitcoin was finished, what do you work on?"

I spend half my development time working on new stuff (or testing new stuff that other people have submitted), but the other half I spend trying to anticipate problems or reacting to problems that are reported. That work tends to be unseen, partly because we want to keep problems quiet while we fix them and partly because quietly anticipating/fixing problems minimizes the 'lulz' that attackers might enjoy if every single-node-DoS attack caused us to run around like chickens with our heads cut off.

Anyway, good developers are hard to find, and one of the reasons I'm not thrilled by all of the AlternaCoins is because I'd rather a good developer help make Bitcoin better rather than spend their time with the busy-work of cross-porting the latest Bitcoin fixes to some other codebase. I would guess that some of the developers of the alternative chains underestimated the amount of work it takes to nurture them and keep them healthy. Maybe that will change when Bitcoin is truly mature and has dealt with another year or two or six of attacks and scaling issues...

I truly don't mean this to sound like a threat, but I think some of the blockchains that have been chugging along running on an ancient forked version of the Bitcoin codebase will be attacked; pretty soon we'll be fully disclosing the denial-of-service bugs that prompted the 0.6.2/0.6.3 releases, and it is highly likely somebody will decide to play with exploit code on a vulnerable chain.

I wish people would find more constructive things to do with their time, but I wish I could fly and never get old like Peter Pan, too.
604  Bitcoin / Development & Technical Discussion / Re: Patching The Bitcoin Client To Make It More Anonymous on: June 25, 2012, 12:45:17 AM
As has been mentioned before and I mentioned in here recently (but got ignored), just going to address level is insufficient.
Selecting the source for a txn should be to transaction level.
See the raw transaction API I've been working on, and please help try to break it-- it needs more testing.

The main motivation is to move forward with multisignature transactions, but it also lets you have complete control over the source(s) for a transaction.
605  Bitcoin / Development & Technical Discussion / 0.7 gettransaction/getblock RPC calls on: June 25, 2012, 12:35:30 AM
My work on the 'raw transaction' API has me thinking hard about the gettransaction/getblock RPC calls. I want it to be easy for the information returned by those calls to be used by the new createrawtx/etc API calls.

So:  in version 0.6.3 and earlier, gettransaction would only return information about transactions in your wallet, and would not return all of the information about the transaction.

A month or two ago Pieter and Luke wrote code to modify gettransaction/getblock to return information about any transaction in the blockchain and a new 'decompositions' Object argument was added to those RPC calls that would let you specify 5 different ways to get information about transaction inputs and outputs (no/hash/hex/asm/obj).  So you might do:
Code:
gettransaction 0e3e2357e806b6cdb1f70b54c3a3a17b6714ee1f0e68bebb44a74b1efd512098 '{"script":hex}'

I think 5 different ways of getting (or not getting if you specify 'no') the information is 4 too many, so I'm modifying the code as follows:
  • getblock doesn't change from version 0.6; it returns a list of transaction id's in a "tx" Array.
  • gettransaction gets an extra boolean argument that defaults to 0 (false).  If non-zero is passed, then it is verbose and outputs information about the transaction inputs and outputs in all the different formats (same as what decomposition "obj" does).
  • for compatibility with the 'raw transaction' API calls, gettransaction always return the full serialized-hex-encoded transaction data as a new "rawtx" field.
The thinking is either RPC users will want minimal information quickly, or will want full information and won't care much if they get extra information. If you want full information as quickly as possible, then you should write code to decode the "rawtx" array yourself.

This does mean getting full information for every transaction in a block means more than one RPC call, but Jeff has a pull request for JSON-2.0 "batch" calls, so getting full information about every transaction in a block will be just two RPC round-trips (one getblock, then one batch with a bunch of gettransaction calls in it).

And to be clear: these changes are meant to be 100% backwards-compatible with getblock/gettransaction in version 0.6.3 and earlier.  We're talking about extra arguments and extra information in the returned JSON objects.


Example output for a complicated multisignature testnet transaction:

Short, in-wallet transaction:
Code:
$ ./bitcoind -testnet gettransaction 4ec492788efb3c9e4e23972f095bd575217288c9f6b8237922145aeff8dae8d5
{
    "rawtx" : "0100000001c6660657eb258f9e58d246d767f5aaa15980d4d26ee496e7e24fabf72f2cc3440000000048473044022026b2e3d408a7848ad18b35042163c0efb358c456c6006a0cd13c077ec213aeab02202115a38de465e0c927f858cbb83fca45bddb0e469524667e39fd0c54ab5007d701ffffffff0100f2052a0100000017a914b6cb85e6fa58b2bff3da23074eb0f1a0ddb23e1f8700000000",
    "amount" : -50.00000000,
    "fee" : 0.00000000,
    "confirmations" : 2,
    "blockhash" : "0000000003abdd41db27190bb4f19e36497f647d1ea586ef543c44f7ccd40015",
    "blockindex" : 1,
    "txid" : "4ec492788efb3c9e4e23972f095bd575217288c9f6b8237922145aeff8dae8d5",
    "time" : 1339001503,
    "details" : [
        {
            "account" : "",
            "address" : "2N9uknE7Zy9M3cPxWvkHu9HQiArL3pnbcUF",
            "category" : "send",
            "amount" : -50.00000000,
            "fee" : 0.00000000
        }
    ]
}
Verbose:
Code:
$ ./bitcoind -testnet gettransaction 4ec492788efb3c9e4e23972f095bd575217288c9f6b8237922145aeff8dae8d5 1
{
    "rawtx" : "0100000001c6660657eb258f9e58d246d767f5aaa15980d4d26ee496e7e24fabf72f2cc3440000000048473044022026b2e3d408a7848ad18b35042163c0efb358c456c6006a0cd13c077ec213aeab02202115a38de465e0c927f858cbb83fca45bddb0e469524667e39fd0c54ab5007d701ffffffff0100f2052a0100000017a914b6cb85e6fa58b2bff3da23074eb0f1a0ddb23e1f8700000000",
    "version" : 1,
    "locktime" : 0,
    "vin" : [
        {
            "prevout" : {
                "hash" : "44c32c2ff7ab4fe2e796e46ed2d48059a1aaf567d746d2589e8f25eb570666c6",
                "n" : 0
            },
            "scriptSig" : {
                "asm" : "3044022026b2e3d408a7848ad18b35042163c0efb358c456c6006a0cd13c077ec213aeab02202115a38de465e0c927f858cbb83fca45bddb0e469524667e39fd0c54ab5007d701",
                "hex" : "473044022026b2e3d408a7848ad18b35042163c0efb358c456c6006a0cd13c077ec213aeab02202115a38de465e0c927f858cbb83fca45bddb0e469524667e39fd0c54ab5007d701",
                "type" : "pubkey",
                "addresses" : [
                    "n4DUWe93vkdfAiSVDaMP3okaU7upK2wtrr"
                ]
            },
            "sequence" : 4294967295
        }
    ],
    "vout" : [
        {
            "value" : 50.00000000,
            "scriptPubKey" : {
                "asm" : "OP_HASH160 b6cb85e6fa58b2bff3da23074eb0f1a0ddb23e1f OP_EQUAL",
                "hex" : "a914b6cb85e6fa58b2bff3da23074eb0f1a0ddb23e1f87",
                "reqSigs" : 1,
                "type" : "scripthash",
                "addresses" : [
                    "2N9uknE7Zy9M3cPxWvkHu9HQiArL3pnbcUF"
                ]
            }
        }
    ],
    "amount" : -50.00000000,
    "fee" : 0.00000000,
    "confirmations" : 2,
    "blockhash" : "0000000003abdd41db27190bb4f19e36497f647d1ea586ef543c44f7ccd40015",
    "blockindex" : 1,
    "txid" : "4ec492788efb3c9e4e23972f095bd575217288c9f6b8237922145aeff8dae8d5",
    "time" : 1339001503,
    "details" : [
        {
            "account" : "",
            "address" : "2N9uknE7Zy9M3cPxWvkHu9HQiArL3pnbcUF",
            "category" : "send",
            "amount" : -50.00000000,
            "fee" : 0.00000000
        }
    ]
}

The only feature that bothers me is reporting 'addresses/type' for transaction inputs. It bothers me for two reasons:

1) It is expensive to fetch that data, because it means finding the previous transaction in the blockchain and fetching it from disk. It violates the principle that "a feature shouldn't cost you anything if you're not using it."

2) If "we" implement spent-input pruning (Pieter has some fantastic early results) that data might not exist.

I think it would be better to remove the 'addresses/type' information from gettransaction output, so gettransaction never has to lookup previous transactions.

If you care about the previous transaction, then you would have to call gettransaction again, using vin.prevout.hash to look them up (and, again, using the JSON-2.0 'batch' feature to lookup all the prior transactions in one RPC roundtrip).

If/when transaction pruning happens then the semantics are clear: that gettransaction would return an error if the prior transaction was pruned.
606  Bitcoin / Development & Technical Discussion / Re: "Critical" versus "Serious" vulnerabilities on: June 22, 2012, 02:00:09 PM
I think "1 2 3 4" is bad.  4 is more than 1, so a level 4 vulnerability is worse, right?

I still like critical/serious/other.  More gradations than that and I think we'll just waste time arguing over "is this a level 3 vulnerability?  level 4?  ok, let's make it a pi vulnerability (3.1415...)"
607  Bitcoin / Bitcoin Discussion / Re: Interview with Stefan Thomas (WeUseCoins and BitcoinJS) and Pieter Wuille (Dev) on: June 21, 2012, 02:31:48 PM
Anybody know where I can buy an "I am a Space Lizard" T-shirt for bitcoin?
608  Economy / Economics / Re: What's the best answer to this question ? "What is its backing? " on: June 21, 2012, 02:29:52 PM
I usually answer with:

Why do screwdrivers have value? What backs the value of a screwdriver?
Because they're useful and it takes effort to create them.

Bitcoin has value for the same reasons.
609  Bitcoin / Development & Technical Discussion / "Critical" versus "Serious" vulnerabilities on: June 21, 2012, 01:49:58 PM
In the 0.6.3 thread Graet asks a good question:  what's do we mean by "critical" versus "serious" vulnerability?

Here's what those terms mean to me.  All examples are hypothetical:

A critical vulnerability is one that will have disastrous consequences if it is exploited. Examples might be a remote code exploit, a bug that somebody could use to take down the entire bitcoin network, or a bug that could be exploited to steal your entire wallet.

A serious vulnerability is one that will have serious consequences if it is exploited.  Examples might be a bug that can be triggered by network traffic and will cause the software to stop working or a bug that could be exploited to misdirect your next bitcoin transaction so it goes to an attacker instead of the intended recipient.

The 0.6.3 denial-of-service problem I consider "serious" -- an attacker who figures out exactly what the vulnerability is (we haven't disclosed that yet) can make bitcoind or Bitcoin-Qt stop processing transactions.

Then there are run-of-the-mill vulnerabilities; things like Sybil attacks that require an attacker to round up hundreds or thousands of machines, or denial-of-service attacks that require that the attacker be able to send the victim gigabytes of network traffic. Dealing with these often doesn't even merit a mention in the release notes, because they affect so few people and require an attacker willing to spend a fair bit of money and/or effort just to be annoying.

610  Bitcoin / Development & Technical Discussion / Re: Roadmap to 1.0? on: June 21, 2012, 12:12:11 AM
I'll buy my grandma a terabyte drive for Christmas.

No, seriously, a better startup experience is part of "easy to use" -- waiting hours for the blockchain to sync sucks.
611  Bitcoin / Development & Technical Discussion / Re: Roadmap to 1.0? on: June 20, 2012, 11:45:10 PM
The things on my "good enough to be called 1.0" list are:

+ easy enough for my grandma to use
+ secure enough that it'd be hard for my grandma to lose her bitcoins, even if her computer is infected by 11 bitcoin-stealing trojans and then catches fire and explodes.
+ past the December block-reward-drops-to-25

612  Bitcoin / Development & Technical Discussion / Re: Help test: version 0.6.3 release candidate 1 on: June 20, 2012, 09:15:17 PM
Before you copy the blk* files, you must run with the -detachdb option and make sure you shutdown bitcoin and wait for it to exit completely.  With 0.6.2, we change the default from "take a long time to shut down, but leave standalone .dat files" to "shutdown quickly, but leave .dat files that are tied to the database/log.* files".

Too many ordinary users were quitting bitcoin and then immediately powering off their systems, leaving the database in a bad state.
613  Bitcoin / Development & Technical Discussion / Help test: version 0.6.3 release candidate 1 on: June 20, 2012, 04:54:47 PM
We're releasing 0.6.3 to fix two important issues (a serious potential denial-of-service attack, and to improve new-block propagation times for blocks containing lots of transactions).

If you can, please help do some sanity testing-- shutdown bitcoin, then download, install, and run 0.6.3 and let us know "works nicely for me running on 64-bit Ubuntu 10.04" by posting a quick reply to this thread.

Release notes:

Bitcoin version 0.6.3rc1 is now available for download at:
  http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.6.3/test/

This is a bug-fix release, with no new features.

CHANGE SUMMARY
==============

Fixed a serious denial-of-service attack that could cause the
bitcoin process to become unresponsive. Thanks to Sergio Lerner
for finding and responsibly reporting the problem. (CVE-2012-3789)

Optimized the process of checking transaction signatures, to
speed up processing of new block messages and make propagating
blocks across the network faster.

Fixed an obscure bug that could cause the bitcoin process to get
stuck on an invalid block-chain, if the invalid chain was
hundreds of blocks long.

Bitcoin-Qt no longer automatically selects the first address
in the address book (Issue #1384).

Fixed minimize-to-dock behavior of Bitcon-Qt on the Mac.

Added a block checkpoint at block 185,333 to speed up initial
blockchain download.


Thanks to everybody who contributed to this release:
====================================================

Chris Moore
Christian von Roques
Fordy
Gavin Andresen
Jeff Garzik
Luke Dashjr
Matt Corallo
Michael Hendricks
Peter Todd
Philip Kaufmann
Pieter Wuille
R E Broadley
Sergio Lerner
Wladimir J. van der Laan
614  Bitcoin / Pools / Re: High orphan rate and long confirmation time discussion on: June 20, 2012, 12:14:56 AM
Another coding optimization would be if you receive a second block solution, to immediately discard the first and push out the newer one if it has a significantly smaller hash, of course still keeping track of both as valid work from miners.
Chain proof-of-work is calculated based on the hash target, so if you get another block at the same height there is no benefit to keeping the one with "the smaller hash".

Maybe if you receive a second block solution, keeping the block that removes the most transactions from the memory pool would be the right "good for the entire ecosystem" policy.  That way even if small blocks propagate slightly faster that might be offset if a larger, slower block was found.  (but making new-block-flooding independent of the size of the block is an even better solution, and that shouldn't be too hard to implement)

Creating a semi-trusted backbone of connections to other pools/miners so your new blocks propagate quickly is a good idea.
615  Bitcoin / Development & Technical Discussion / Re: Cannot send unconfirmed coins from rpc. on: June 19, 2012, 11:52:48 PM
The RPC and GUI won't let you spend 0-confirmation transactions unless they are 'change' outputs from yourself.

If you REALLY want to shoot yourself in the foot, I've got a pull request for the 0.7 release that adds 'raw transaction' RPC commands that will let you do all sorts of dangerous things, including counting your chickens before they've hatched spending unconfirmed-from-somewhere-else inputs.
616  Bitcoin / Development & Technical Discussion / Transaction confirmation data on: June 18, 2012, 01:41:34 PM
I gathered data on transaction first-confirmation times this weekend:

 https://docs.google.com/open?id=0B74FtkFP4j73TXZUY05kSFVzN00

Each line in the file (except the first one) represents one transaction. Each column is:

Number of seconds the transaction spent in the memory pool.

Size, in bytes, of the transaction.

Fees attached to the transaction (in satoshis).

Priority (floating-point number) of the transaction when it first entered the memory pool.  Priority 0.0 transactions have inputs that aren't yet confirmed.

Last column is "1" if the transaction exited the memory pool normally, by being included in the a block, or "0" if the transaction was still in the memory pool when I shut down bitcoind.

--------------

I haven't really analyzed it yet (feel free to help if you're a data geek); I plan on testing some algorithms for suggesting a reasonable fee if you want your transaction to get confirmed quickly, and suggesting an estimate of how long you'll have to wait if you don't attach any fee at all.

But it look like 35% of transactions this past weekend got into a block within 10 minutes, and 87% got into a block within one hour.
617  Bitcoin / Pools / Re: [605 GH] Eligius: Decentralized, 0Fee SMPPS, no reg, BTC+NMC on: June 17, 2012, 04:19:58 PM
So it was SatoshiDice. I was wondering what had changed to make mining profits so noticeably worse despite difficulty being in previously experienced ranges.
Luke is guessing it is SatoshiDice, it might just be a run of bad luck.

Or it might be a side effect of Eligius accepting non-standard transactions.

Does Eligius include transactions that have not been transmitted/relayed to the rest of the network?  If so, it might be a side effect of that (and if that isn't a side effect now, it might be in the future if Eligius blocks take longer to verify as other nodes need to fetch transaction inputs from disk, instead of already having them in cache memory like transactions that ARE transmitted/relayed).
618  Bitcoin / Bitcoin Discussion / Re: Satoshi Dice polluting Bitcoin? on: June 17, 2012, 04:12:57 PM
As far as I understand from watching the IRC discussions, it is not slow because of sending the block from node A to node B. It's the actual validation of the block and all of the transactions on each node that is done before relaying the block.
The 0.7 release optimizes transaction validation, so most transactions that were validated when broadcast/relayed across the network don't have to be re-validated when they're included in a block. That will speed up block verification/relaying a lot.
619  Bitcoin / Development & Technical Discussion / Re: excessive CPU usage in 0.6.2 ? on: June 16, 2012, 12:53:00 AM
The 0.7 release will include an optimization that should help a lot (transaction signature cache -- prior releases checked signatures when the transaction was first seen, and then checked again when a new block was received, it makes processing new blocks much faster).
620  Bitcoin / Bitcoin Discussion / Re: Please help test: Bitcoin 0.5.6rc2 and 0.4.7rc2 (FIXES STUCK BLOCK BUG) on: June 15, 2012, 03:36:27 PM
This is why I think the so-called "stable" backports are a bad idea. I want people to spend time finding and fixing bugs in 0.6.2, and I want people to realize that the core developers are not supporting older releases.
Pages: « 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 [31] 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 ... 114 »
Sponsored by , a Bitcoin-accepting VPN.
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!