Commit Graph

7661 Commits

Author SHA1 Message Date
Peter Todd b24ff47c64
Make empty byte arrays pass CheckSignatureEncoding()
Makes it possible to compactly provide a delibrately invalid signature
for use with CHECK(MULTI)SIG. For instance with BIP19 if m != n invalid
signatures need to be provided in the scriptSig; prior to this change
those invalid signatures would need to be large DER-encoded signatures.

Note that we may want to further expand on this change in the future by
saying that only OP_0 is a "valid" invalid signature; BIP19 even with
this change is inherently malleable as the invalid signatures can be any
validly encoded DER signature.

Rebased-From: 2fa9a8ec86
Github-Pull: #5627
2015-01-26 12:10:29 +01:00
fsb4000 ed4206acb1
fix crash: CoinControl "space" bug
Just like baf80c26a2

Github-Pull: #5700
Rebased-From: 944c256741
2015-01-23 16:23:54 +01:00
Cory Fields 58259ad1ed
qt: fix broken unicode chars on osx 10.10
- qt: avoid hard-coding font names

They may not contain all necessary characters for a language

- qt: fix broken unicode chars on osx 10.10

The default font changed again.

The real fix is to compile qt against a >= 10.8 sdk, but this is simple enough
to backport to 0.10 to avoid having to do that there.

Note: NSAppKitVersionNumber is a double and there's no official value for
NSAppKitVersionNumber10_10. Since == isn't reliable for doubles, use Apple's
guidelines for testing versions here:
https://developer.apple.com/library/mac/releasenotes/AppKit/RN-AppKit/

Chinese and Japanese fonts have been hard-coded as well, otherwise they fail to
show up at all.

- qt: fonts: allow SubstituteFonts to filter based on user's language

SubstituteFonts() has been moved to after app identification so that QSettings
are accessible.

Github-Pull: #5671
Rebased-From: 73cd4edb4f 52954e6efd f5ad78b34a
2015-01-19 12:37:41 +01:00
Gregory Maxwell 186a517692
Restore RPC HTTP keepalives to default.
This avoids a regression for issues like #334 where high speed
 repeated connections eventually run the HTTP client out of
 sockets because all of theirs end up in time_wait.

Maybe the trade-off here is suboptimal, but if both choices will
 fail then we prefer fewer changes until the root cause is solved.

Rebased-From: 1a25a7edf8 7d2cb48511
Github-Pull: #5674
2015-01-19 12:16:17 +01:00
Gregory Maxwell aaf55d25c6
Add a -rpckeepalive and disable RPC use of HTTP persistent connections.
It turns out that some miners have been staying with old versions of
 Bitcoin Core because their software  behaves poorly with persistent
 connections and the Bitcoin Core thread and connection limits.

What happens is that underlying  HTTP libraries leave connections open
 invisibly to their users and then the user runs into the default four
 thread limit.  This looks like Bitcoin Core is unresponsive to RPC.

There are many things that should be improved in Bitcoin Core's behavior
 here, e.g. supporting more concurrent connections, not tying up threads
 for idle connections, disconnecting kept-alive  connections when limits
 are reached, etc. All are fairly big, risky changes.

Disabling keep-alive is a simple workaround. It's often not easy to turn
 off the keep-alive support in the client where it may be buried in some
 platform library.

If you are one of the few who really needs persistent connections you
 probably know that you want them and can find a switch; while if you
 don't and the misbehavior is hitting you it is hard to discover the
 source of your problems is keepalive related.  Given that it is best
 to default to off until they're handled better.

Github-Merge: #5655
Rebased-From: 16a5c18cea 56c1093dae 1dd8ee72af
2015-01-15 09:38:24 +01:00
Wladimir J. van der Laan 249bf0e049
Merge pull request #5644
af35bdc Update 0.10 release notes as of 0.10.0rc2 (Micha)
2015-01-12 16:10:50 +01:00
Wladimir J. van der Laan c3200bcd1e
depends: remove embedded OpenSSL timestamp for determinism 2015-01-12 15:29:51 +01:00
Micha af35bdc6b0
Update 0.10 release notes as of 0.10.0rc2
Also add 0.9.4's release notes to the archive.
Added commits based on
http://sourceforge.net/p/bitcoin/mailman/message/33225960/
[skip ci]
2015-01-12 15:38:13 +02:00
Pieter Wuille 4e7c219122
Catch UTXO set read errors and shutdown
Github-Pull: #5619
Rebased-From: 13cdce4336
2015-01-12 11:28:39 +01:00
Pieter Wuille a3a73170a9
Introduce 10 minute block download timeout
This will disconnect peers that do not transfer a block in 10 minutes, plus
5 minutes for every previously queued block with validated headers
(accomodating downstream bandwidth down to a few kilobytes per second - below
that the node would have trouble staying synchronized anyway).

Github-Pull: #5608
Rebased-From: 916130348c
2015-01-12 11:28:23 +01:00
Wladimir J. van der Laan 12b7c444f0
Improve robustness of DER recoding code
Add some defensive programming on top of #5634.

This copies the respective OpenSSL code in ECDSA_verify in
OpenSSL pre-1.0.1k (e.g. https://github.com/openssl/openssl/blob/OpenSSL_1_0_1j/crypto/ecdsa/ecs_vrf.c#L89)
more closely.

As reported by @sergiodemianlerner.

Github-Pull: #5640
Rebased-From: c6b7b29f23
2015-01-12 09:12:12 +01:00
Cory Fields 76ce5c8de3
fail immediately on an empty signature
Github-Pull: #5634
Rebased-From: 8dccba6a45
2015-01-10 08:10:38 +01:00
Cory Fields 2d375fe97b
depends: bump openssl to 1.0.1k
Github-Pull: #5634
Rebased-From: dad7764a9d
2015-01-10 08:10:35 +01:00
Cory Fields ace39db764
consensus: guard against openssl's new strict DER checks
New versions of OpenSSL will reject non-canonical DER signatures. However,
it'll happily decode them. Decode then re-encode before verification in order
to ensure that it is properly consumed.

Github-Pull: #5634
Rebased-From: 488ed32f2a
2015-01-10 08:10:29 +01:00
Cory Fields 263b65ebf0
tests: run sanity checks in tests too
If these are going to fail in bitcoind, they should fail in the tests as well.

Github-Pull: #5604
Rebased-From: d58c5d6f21
2015-01-08 12:08:14 +01:00
Suhas Daftuar e2677d7ae8
Fix smartfees test for change to relay policy
Github-Pull: #5575
Rebased-From: 1eb1e65f09
2015-01-08 11:45:26 +01:00
Wladimir J. van der Laan 7fdbedcaf8
Merge pull request #5542
2ecd294 Bugfix: configure: Correctly detect "nothing to build" condition (Luke Dashjr)
b7a4ecc Bugfix: Only check for boost when building code that requires it (Luke Dashjr)
a19eeac Bugfix: configure: Check for openssl/ec.h (Luke Dashjr)
fe925e2 Use EXTRA_LIBRARIES instead of noinst_LIBRARIES so we can avoid building unused code (Cory Fields)
2015-01-08 09:34:11 +01:00
Luke Dashjr 2ecd2941ed Bugfix: configure: Correctly detect "nothing to build" condition 2015-01-07 20:19:56 +00:00
Luke Dashjr b7a4ecc153 Bugfix: Only check for boost when building code that requires it 2015-01-07 20:19:05 +00:00
Luke Dashjr a19eeaced8 Bugfix: configure: Check for openssl/ec.h 2015-01-07 15:59:54 +00:00
Pieter Wuille 867c600c29
Catch LevelDB errors during flush
Rebased-From: e41345790f
Github-Pull: #5597
2015-01-07 13:11:58 +01:00
Pieter Wuille 008138c04a
Bugfix: only track UTXO modification after lookup
Otherwise, if CCoinsViewCache::ModifyCoins throws an exception in between
setting hasModifier and constructing the CCoinsModifier, the cache ends up
in an inconsistent state, resulting in an assert failure in the next
modification.

Bug discovered by Wladimir J. van der Laan.

Rebased-From: 1c52aad540
Github-Pull: #5597
2015-01-07 13:11:54 +01:00
Pieter Wuille 3022e7df2a
Require sufficent priority for relay of free transactions
Rebased-From: 1c52aad540
Github-Pull: #5535
2015-01-07 13:11:49 +01:00
Cory Fields fe925e221f Use EXTRA_LIBRARIES instead of noinst_LIBRARIES so we can avoid building unused code 2015-01-06 20:00:25 +00:00
Eric R. Schulz 06fdf326d3
bitcoin-tx: Fix JSON validation of prevtxs
Github-Pull: #5528
Rebased-From: 2a3d988b80 a089c50981 2c14d1532f
2015-01-06 17:32:31 +01:00
Pieter Wuille 58fda4d689
Update seed IPs, based on bitcoin.sipa.be crawler data
Rebased-From: be22b3da1d
Github-Pull: #5532
2015-01-06 11:02:50 +01:00
Wladimir J. van der Laan 68c0580dfb
Merge pull request #5600
4a3d3e2 Fix typo in release notes (Peter Todd)
2015-01-05 08:54:02 +01:00
Peter Todd 4a3d3e20c0
Fix typo in release notes 2015-01-04 19:45:51 -05:00
Thomas Zander 94b362dbd6
On close of splashscreen interrupt verifyDB
With the splashscreen being able to be closed it is possible to
shutdown during the lengthy verifyDB method. (Takes about a minute
on my machine). This change allows us to shutdown much sooner.

Github-Pull: #5557
Rebased-From: 70477a0bdf
2015-01-03 10:22:48 +01:00
Cory Fields 221a38024a
dmg: fix deterministic dmg creation and docs
Rebased-From: 0d50c2fd81
Github-Pull: #5569
2015-01-02 17:14:34 +01:00
Jacob Welsh c2029018cc
Release notes: fix REST URIs and wrap line
Rebased-From: e64e084e95ca85b038c7f65ad0824d14d03bc044
Github-Pull: #5581
2015-01-02 12:10:22 +01:00
Philip Kaufmann 50891ad080
[Qt] update a translation string and argument counts
Rebased-From: 643415aade
Github-Pull: #5583
2015-01-02 11:20:51 +01:00
Cory Fields 9241f7a7c1
depends: fix major regression after d546191dc.
Broken hash logic caused all depends on some platforms (osx at least) to end up
with the same build-id. Without this fix, nothing will be rebuilt when recipes
or dependencies change.

Rebased-From: d57b303e1e
Github-Pull: #5586
2015-01-02 11:15:17 +01:00
Wladimir J. van der Laan 4f57a3b20c
Bump project-wide COPYRIGHT_YEAR to 2015
There is still a redundancy here between configure.ac and
clientversion.h.

Rebased-From: edbc9045cb
2015-01-02 11:04:57 +01:00
Wladimir J. van der Laan 8061d67aeb
Remove redundant copyright notices from README files
The normative place for these for the entire project is COPYING,
and the main README already has a MIT license section.

Rebased-From: e6df2bb48f
2015-01-02 11:03:13 +01:00
Luke Dashjr d1bcef4391
release-notes: updates
- Avoid ambiguous language regarding when transactions confirm
- Elaborate on downgrading warning
- Other minor language improvements
- Clarify watch-only behaviour

Github-Pull: #5534
2014-12-31 10:59:24 +01:00
Luke Dashjr 1eadfd9753
Bugfix: prioritisetransaction: Do some basic sanity checking on txid
Besides giving a nicer error, this also prevents logging arbitrary data (which could have been used to exploit log readers) into debug.log

Rebased-From: 7f71813919
Github-Pull: #5499
2014-12-31 10:53:26 +01:00
Gregory Maxwell 18021d08f7
Remove bitnodes.io from dnsseeds.
I'm not comfortable with retaining this entry.

Rebased-From: a094b3d973
Github-Pull: #5545
2014-12-31 10:43:22 +01:00
Wladimir J. van der Laan b790d139c9
English translation update 2014-12-31 10:39:17 +01:00
Michael Ford 8543b0dfd9
Correct tooltip on address book page
Rebased-From: 06206bb3b7
Github-Pull: 5571
2014-12-31 10:38:04 +01:00
Wladimir J. van der Laan 968f13cae3
mention leveldb 1.18 ARM/x86 db interop 2014-12-31 09:29:33 +01:00
Cory Fields 87d43a3c8e rpcserver: attempt to fix uncaught exception.
Rebased-From: f9c571aad8
Github-Pull: #5565
2014-12-30 17:38:03 +01:00
Wladimir J. van der Laan ed934bdb4d
pull new translations from transifex 2014-12-28 12:21:17 +01:00
Pieter Wuille 591c5692f8
Release notes: formatting, headers-first, rest 2014-12-27 05:05:46 +01:00
Luke Dashjr 52e57055cc en: Avoid ambiguous language regarding when transactions confirm
Rebased-From: a15dba5dff
Github-Pull: #5533
2014-12-27 05:03:39 +01:00
Cory Fields b3d67e1c34
gitian: attempt to fix tarball determinisim
Rebased-From: 566c6cb8a2
Github-Pull: #5536
2014-12-27 04:56:14 +01:00
Peter Todd 06ca0651b6
Fix CScriptID(const CScript& in) in empty script case
Previously an empty script wouldn't be hashed, and CScriptID would be
assigned the incorrect value of 0 instead. This bug can be seen in the
RPC decodescript command:

    $ btc decodescript ""
    {
        "asm" : "",
        "type" : "nonstandard",
        "p2sh" : "31h1vYVSYuKP6AhS86fbRdMw9XHieotbST"
    }

Correct output:

    $ btc decodescript ""
    {
        "asm" : "",
        "type" : "nonstandard",
        "p2sh" : "3J98t1WpEZ73CNmQviecrnyiWrnqRhWNLy"
    }

Rebased-From: d78f0dafd5
Github-Pull: #5541
2014-12-27 04:09:41 +01:00
Jeff Garzik 4e0bfa5814
doc: add bitcoin-tx section to release notes 2014-12-23 20:14:37 +01:00
Peter Todd 2bb0ca9b55
doc: mention P2SH IsStandard relaxation in release notes 2014-12-23 19:31:02 +01:00
Wladimir J. van der Laan a2300499b7
doc: mention consensus library in release notes 2014-12-23 19:08:19 +01:00