0.8 #6909

Closed
wants to merge 78 commits into
from

Conversation

Projects
None yet

No description provided.

petertodd and others added some commits Jun 25, 2013

@petertodd @gavinandresen petertodd Truncate oversize 'tx' messages before relaying/storing.
Fixes a memory exhaustion attack on low-memory peers.
7cc960f
@sipa @gavinandresen sipa Dump addresses every 15 minutes instead of 10 seconds 65c20db
@gavinandresen gavinandresen Bump version numbers for 0.8.3 release 40809ae
@gavinandresen gavinandresen Bump version numbers to prep for 0.8.4 release 6929f2a
@gavinandresen gavinandresen Fix Gnome bitcoin: URI handler 6f315b4
@TheBlueMatt @gavinandresen TheBlueMatt Fix multi-block reorg transaction resurrection 38863af
@gavinandresen gavinandresen Make RPC password resistant to timing attacks
Fixes issue#2838; this is a tweaked version of pull#2845 that
should not leak the length of the password and is more generic,
in case we run into other situations where we need
timing-attack-resistant comparisons.
cdb3441
@gavinandresen gavinandresen Revert "Truncate oversize 'tx' messages before relaying/storing."
This reverts commit 7cc960f.
08dd920
@gavinandresen gavinandresen Simplify storage of orphan transactions
Orphan transactions were stored as a CDataStream pointer;
this changes the mapOrphanTransactions data structures to
store orphans as a CTransaction.

This also fixes CVE-2013-4627 by always re-serializing
transactions before relaying them.
21696c1
@gavinandresen gavinandresen Checkpoint at block 250,000 20b6117
@sipa sipa Remove inline LevelDB to prepare for git-subtree version 5c739c5
@sipa sipa Squashed 'src/leveldb/' content from commit a02ddf9
git-subtree-dir: src/leveldb
git-subtree-split: a02ddf9
cb1e39f
@sipa sipa Merge commit 'cb1e39f0a35cc2b36fb748c26f69cd27e0ed5332' as 'src/leveldb' e6552ee
@sipa sipa Squashed 'src/leveldb/' changes from a02ddf9..be1b0ff
be1b0ff On Mac OS X fsync does not guarantee write to disk. Use fcntl F_FULLFSYNC instead.

git-subtree-dir: src/leveldb
git-subtree-split: be1b0ff
6519339
@sipa sipa Merge commit '6519339fe849bdbbff047d9eef8ab6c5fbb3e2a4' 980b1c3
@gavinandresen theuni fixed: include boost header as necessary
Without this include, sometimes BOOST_VERSION was defined and sometimes
it was not, depending on which includes came before it. The result was a
random mix of sleep or sleep_for for boost versions >= 1.50.
708c75c
@gavinandresen theuni fixed: don't use thread::sleep_for where it's known to be broken
Fixes #2690.
5e18c6c
@gmaxwell @gavinandresen gmaxwell Performance optimization for bloom filters.
This reduces a peer's ability to attack network resources by
 using a full bloom filter, but without reducing the usability
 of bloom filters.  It sets a default match everything filter
 for peers and it generalizes a prior optimization to
 cover more cases.
ac7c960
@sipa @gavinandresen sipa Fix non-standard disconnected transactions causing mempool orphans
Conflicts:
	src/main.cpp
d7fdc5f
@gmaxwell @gavinandresen gmaxwell Update the bloom state on the real object, not the temporary one.
This resulted in just passing all transactions to filtered wallets
which worked surprisingly well, except where it didn't.
839c7d1
@gmaxwell @gavinandresen gmaxwell Longer term workaround for chainstate corruption from negative versions.
This also makes negative transaction versions non-standard.

This avoids an issue triggered in block 256818 where transactions with
negative version numbers were incorrectly serialized into the UTXO set.

On restart nodes detect the inconsistency and refuse to start so long as
a block with these transactions is inside the self-consistency check
window, logging "coin database inconsistencies found". The software
recommends reindexing, but reindexing does not correct the problem.

This should be fixed by changing the chainstate serialization, but
working around it seems harmless for now because the version is not
used by any network rule currently.

A patch free workaround is to start with -checklevel=2 which skips
the consistency checks, but the IsStandard change is important for
miners in order to protect unpatched nodes.
f0a1d87
@sipa @gavinandresen sipa Fix out-of-bounds check 27fefea
@gavinandresen gavinandresen Bump version numbers for 0.8.5 release ef14a26
@pstratem @laanwj pstratem process received messages one at a time without sleeping between mess…
…ages
7084756
@TheBlueMatt @laanwj TheBlueMatt Fix comparison tool by asking for blocks more aggressively
Rebased-from: b33b9a6
5c55bf5
@laanwj theuni Fix uninitialized variable added in 5c55bf5
After discussing with BlueMatt, this appears to be harmless in its
current state since it's always set before it's used. Initialize it
anyway for readability and future safety.

Rebased-By: Wladimir J. van der Laan <laanwj@gmail.com>
Rebased-From: 106f133
3e89dbb
@laanwj Jeff Garzik Log reason for non-standard transaction rejection
Conflicts:
	src/main.cpp

Rebased-from: cb3076a
c4892eb
@gmaxwell @laanwj gmaxwell More fixes for blockchain corruption on OSX.
As we'd previously learned, OSX's fsync is a data eating lie.

Since 0.8.4 we're still getting some reports of disk corruption on
 OSX but now all of it looks like the block files have gotten out of
 sync with the database. It turns out that we were still using fsync()
 on the block files, so this isn't surprising.
f46f128
@laanwj Philip Kaufmann log start and end of Shutdown()
- could be helpful when debugging shutdown related problems

Rebased-by:   Warren Togami <wtogami@gmail.com>
Rebased-from: ced3c24
633d95e
@laanwj Philip Kaufmann make -logtimestamps default on and rework help-message
Rebased-By: Wladimir J. van der Laan <laanwj@gmail.com>
Rebased-From: 959e62f
05ea790
@laanwj Cory Fields osx: fix bitcoin-qt startup crash when clicking dock icon
Crash probably introduced by 4d17a1b.
Inialize the window to NULL and verify it before use.

Rebased-By: Wladimir J. van der Laan <laanwj@gmail.com>
068996d
@sipa @laanwj sipa Fix build date for from-tarball builds 99f73bd
@laanwj Philip Kaufmann exclude CreatePidFile() function on WIN32 as it is unused f607729
@dajohi @laanwj dajohi Hurricane Electric uses block 2001:470::, not 2011:470:: 0119e0c
@phelixbtc @laanwj phelixbtc Porting MinGW multithreading bugfix to makefile.mingw
Original fix:
https://github.com/bitcoin/bitcoin/commit
/8864019f6d88b13d3442843d9e6ebeb8dd938831
e88eb41
@laanwj laanwj Bump version numbers for 0.8.6 release e4be09c
@laanwj @gavinandresen laanwj Squashed 'src/leveldb/' changes from be1b0ff..be91006
936b461 Merge upstream LevelDB 1.13.
748539c LevelDB 1.13

git-subtree-dir: src/leveldb
git-subtree-split: be9100673b05cec1662a54d0b7a59e4317fdda86
83efc91
@wtogami @gavinandresen wtogami Silence useless warning in src/json/json_spirit_writer_template.h to …
…make important warnings easier to see.

warning: typedef ‘Char_type’ locally defined but not used [-Wunused-local-typedefs]
e564297
@gavinandresen Philip Kaufmann special case DoS value == 0 in ProcessMessage()
- prevents unneeded log messages, which could make users think something
  bad was happening

Squashed: style-police code cleanup
3779de9
@gavinandresen gavinandresen Refactor: pull alert string sanitization into util
Rebased-from: 17faf56
56ce843
@gavinandresen Mike Hearn Add some additional logging to give extra network insight. 1c53d0a
@gavinandresen Mike Hearn Store and use a sanitized subVer
Rebased-from: a946aa8
7120d76
@gavinandresen @laanwj gavinandresen Increase default -blockmaxsize/prioritysize to 300K/30K 5c02963
@gavinandresen @laanwj gavinandresen Remove CENT-output free transaction rule when relaying
Remove the (relay/mempool) rule that all outputs of free transactions
must be greater than 0.01 XBT. Dust spam is now taken care of by making
dusty outputs non-standard.
1ca8a75
@gavinandresen @laanwj gavinandresen Lower maximum size for free transaction creation
Changes the maximum size of a free transaction that will be created
from 10,000 bytes to 1,000 bytes.

The idea behind this change is to make the free transaction area
available to a greater number of people; with the default 27K-per-block,
just three very-large very-high-priority transactions could fill the space.
9612e4c
Member

luke-jr commented on 9612e4c Nov 28, 2013

Review notes: The only effective change here is 10000 => 1000.
nBlockSize == 1 only when mode == GMF_SEND.
Otherwise, nBlockSize was always 1000 (for relaying), which meant nNewBlockSize was nBytes + 1000.

robbak and others added some commits May 24, 2013

@robbak @laanwj robbak Explictly cast calculation to int, to allow std::max to work. 187f8a5
@laanwj Philip Kaufmann fix invalid conversion error with MinGW 4.8.1 in net.cpp
- fixes src\net.cpp:1601: Error:invalid conversion from 'void*' to
  'const char*' [-fpermissive] in a setsockopt() call on Win32 that was
  found by using MinGW 4.8.1 compiler suite
1b350f2
@luke-jr @laanwj luke-jr Bugfix: Move boost/version include from db.cpp to walletdb.cpp where …
…BOOST_VERSION is used
89c2ea0
@r000n @laanwj r000n Add missing 0x prefix in chainparams.cpp
Conflicts:
	src/chainparams.cpp
df238b1
@laanwj laanwj Create parent directories if needed in GetDataDir
One-line change. Fixes #2752.
138705a
@cozz @laanwj cozz fix comment about dust logic
Conflicts:
	src/core.h
901ae4b
@fanquake @laanwj fanquake Update HomeBrew osx makefile patch to account for recent changes to m…
…akefile
c9c67b0
@gmaxwell @laanwj gmaxwell Make the rand tests determinstic. (fixes #2714)
This avoids spurious errors with the old tests but still tests
 enough that if the rng is replaced with a totally broken one
 it should still fail.
d3fe7c4
@wtogami @laanwj wtogami Add wtogami to gitian download scripts. 96896a0
@laanwj Micha Made the build/release process completable verbatim as listed in
release-process.md

Conflicts:
	doc/release-process.md
daf9e46
@maaku @laanwj maaku Fix typo in README.md 98289bb
@codler @laanwj codler fix typo in README.md 9f7fc8b
@bytemaster @laanwj bytemaster fix memory leak in CKey::SetCompactSignature() 27e35bf
@bytemaster @laanwj bytemaster Fix memory leak on exception in Key::SignCompact 6f21e73
@robbak @laanwj robbak Don't attempt to resize vector to negative size. df0f6d0
@laanwj Philip Kaufmann Bitcoin-Qt: Fix display of window when bitcoin: URI is opened
WalletView:
- add new signal showNormalIfMinimized()
- emit the new signal in handleURI() to fix a bug, preventing the main
  window to show up when using bitcoin: URIs

Upstream: dbc0a6a
bfb0856
@laanwj Timothy Stranex Fix typo in a comment: it's base58, not base48. 3b8868d
@laanwj laanwj release notes: add warning about 32-bit systems a0a5b20
@gavinandresen @laanwj gavinandresen Fix typo: make default maxblocksize 350k (not 300) 22db46c
@laanwj laanwj qt: use deleteLater to remove send entries
Use deleteLater() instead of delete, as it is not allowed
to delete widgets directly in an event handler.
Should solve the MacOSX random crashes on send with coincontrol.

Rebased-From: 6c98cca
8c3ba8b
@laanwj laanwj Prevent empty transactions from being added to vtxPrev
CWalletTx::AddSupportingTransactions() was adding empty transaction
to vtxPrev in some cases. Skip over these.

Part one of the solution to #3190. This prevents invalid vtxPrev from
entering the wallet, but not current ones being transmitted.
1eb11e3
@laanwj laanwj Refuse to retransmit transactions without vins
Versions of bitcoin before 0.8.6 have a bug that inserted
empty transactions into the vtxPrev in the wallet, which will cause the node to be
banned when retransmitted, hence add a check for !tx.vin.empty()
before RelayTransaction.
ec93d0a
@laanwj theuni leveldb: Use native Darwin memory barriers d3381e7
@pstratem @laanwj pstratem dont use mmap in leveldb, this is a marginal performance hit
fail on short writes

Ensure new files referred to by the manifest are in the filesystem.
5f553f8
@wtogami @laanwj wtogami LevelDB: use PosixWriteableFile only on MacOS X
mmap is proven on the other platforms, we are not changing it at
the last moment before release.
77f7bcb
@laanwj laanwj Release notes for 0.8.6 03a7d67
@theuni @laanwj theuni 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: 488ed32
f4134ee
@theuni @laanwj theuni fail immediately on an empty signature
Github-Pull: #5634
Rebased-From: 8dccba6
91e1332
@laanwj laanwj 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: c6b7b29
f19dded
@sipa sipa Implement BIP 66 validation rules and switchover logic da7ba59
@sipa sipa Backport of some of BIP66's tests 6690ef7
@sipa sipa Raise version of created blocks, and enforce DERSIG in mempool 534e6da
@laanwj laanwj Merge #5765: Implement BIP66 (0.8) 9d11aba

gmaxwell closed this Oct 30, 2015

Owner

sipa commented Oct 30, 2015

A pull request is asking us to merge a change you created. You don't need it to check out a version of the code.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment