Commit Graph

3597 Commits

Author SHA1 Message Date
Pieter Wuille
8301ff5077 Bugfix + simplify special case for genesis 2013-01-19 00:35:17 +01:00
Matt Corallo
192cc910ec Replace 520 constant with MAX_SCRIPT_ELEMENT_SIZE 2013-01-18 13:55:18 -05:00
Matt Corallo
28b80e6065 Send transactions after a CMerkleBlock when asked for it in an inv.
This actually simplifies some SPV code, as they can keep track of
a filtered block and its txn before accepting both in one step.
The previous argument was that SPV nodes should handle the txn the
same as any other free txn and then mark them as connected to a
block when they get the filtered block itself.  However, it now
appears that SPV nodes will need to put in more effort to verify
loose txn than they would to verify txn in blocks, thus making it
more approriate to send the txn after the filtered block.
2013-01-18 12:16:39 -05:00
Gavin Andresen
db8ca3fc2e Code-signing certificates (no private keys) from Apple and Comodo 2013-01-18 10:08:28 -05:00
Gavin Andresen
33b377a016 Port macdeployqtplus to OSX 10.8
Use 'osascript' to run AppleScript, instead of using (broken-in-10.8)
python appscript package.

And added support for code-signing the .app bundle, to make OSX's
GateKeeper happy.
2013-01-18 10:08:28 -05:00
Eric Lombrozo
35c12d176e Moved SyncWithWallets out of ProcessMessage and into CTxMemPool::accept() so that when adding multiple wallets they will be aware of each other's transactions. 2013-01-18 07:01:05 -08:00
Pieter Wuille
2d1fa42e85 Add optional transaction index to databases
By specifying -txindex when initializing the database, a txid-to-diskpos
index is maintained in the blktree database. This database is used to
help answering getrawtransaction() RPC queries, when enabled.

Changing the -txindex value requires a -reindex; the client will abort
at startup if the database and the specified -txindex mismatch.
2013-01-18 14:39:11 +01:00
Gavin Andresen
2c7847349d Merge pull request #2149 from sipa/fixtxoutrpc
Make output of gettxout RPC more consistent
2013-01-17 18:42:57 -08:00
Gavin Andresen
0e31ae9818 Merge pull request #2060 from sipa/parallel
Parallel script verification
2013-01-17 16:58:58 -08:00
Philip Kaufmann
1f0ce2dd68 enable GCC large address aware linker flag (Windows only)
- this flag allows bitcoin-qt.exe / bitcoind.exe (32-bit application) to
  handle addresses larger than 2GB (up to 3GB on x86 Windows and up to
  4GB on x64 Windows)
2013-01-17 22:01:42 +01:00
Gavin Andresen
91f70a75da Merge pull request #1795 from TheBlueMatt/bloom
Bloom filters
2013-01-17 10:04:08 -08:00
Wladimir J. van der Laan
a1f4909e0b Merge pull request #2181 from Diapolo/translations
update bitcoinstrings.cpp and bitcoin_en.ts (2013-01-14)
2013-01-16 12:23:29 -08:00
Matt Corallo
c51694eb9b Filter mempool command 2013-01-16 14:34:06 -05:00
Matt Corallo
e1a4f3778c Add nFlags to CBloomFilter to make filter updating optional. 2013-01-16 14:34:06 -05:00
Matt Corallo
21aaf255ff Use CPartialMerkleTree for CMerkleBlock transactions. 2013-01-16 14:34:06 -05:00
Pieter Wuille
4bedfa9223 Add CPartialMerkleTree
This adds a compact representation for a subset of a merkle tree's
nodes.
2013-01-16 14:34:06 -05:00
Matt Corallo
b1f99bed6f Add a nTweak to bloom filters to tweak the seed. 2013-01-16 12:48:02 -05:00
Matt Corallo
4c8fc1a588 Let a node opt out of tx invs before we get a their bloom filter
Note that the default value for fRelayTxes is false, meaning we
now no longer relay tx inv messages before receiving the remote
peer's version message.
2013-01-16 12:48:02 -05:00
Matt Corallo
b02ddbedcb Relay CMerkleBlocks when asked for MSG_FILTERED_BLOCK 2013-01-16 12:48:02 -05:00
Matt Corallo
2878c67cb5 Add test cases for CMerkleBlock and CBloomFilter. 2013-01-16 12:48:02 -05:00
Matt Corallo
9fb106e757 Add a CMerkleBlock to store merkle branches of filtered txes. 2013-01-16 12:48:02 -05:00
Matt Corallo
587f0f855e Add a CBlock.GetBlockHeader 2013-01-16 12:48:02 -05:00
Matt Corallo
d3b26f7077 Automatically add any matching outputs to a filter during matching. 2013-01-16 12:48:02 -05:00
Matt Corallo
269d9c6492 Replace RelayMessage with RelayTransaction. 2013-01-16 12:48:02 -05:00
Matt Corallo
422d122537 Add a filter field in CNode, add filterload+filteradd+filterclear 2013-01-16 12:48:02 -05:00
Matt Corallo
133a546074 Bump PROTOCOL_VERSION for filter messages. 2013-01-16 12:48:02 -05:00
Matt Corallo
bd21612c37 Add a CBloomFilter class for use as a transaction filter. 2013-01-16 12:48:01 -05:00
Matt Corallo
7ab026f449 Add MurmurHash3 implementation to hash.h/add hash.cpp. 2013-01-16 12:48:01 -05:00
Matt Corallo
68feac96b6 Add const versions of base_uint.end()/begin(), make size() const. 2013-01-16 12:48:01 -05:00
Gavin Andresen
5f04881618 Fix clang warnings 2013-01-15 17:27:29 -05:00
Gavin Andresen
ce99358f4a Remove IsFromMe() check in CTxMemPool::accept()
Fixes issue #2178 : attacker could penny-flood with invalid-signature
transactions to deduce which addresses belonged to your node.

I'm committing this early for code review; I still need to write up
a test plan.

Executive summary of fix: check all transactions received from the network
for penny-flood rate-limiting before adding to the memory pool. But do NOT
ratelimit transactions added to the memory pool:
  - because of blockchain reorgs
  - stored in the wallet and added at startup
  - sent from the GUI or one of the send* RPC commands (CWallet::CommitTransaction)

The limit-free-transactions code really should be a method on CNode, with
counters per-peer. But that is a bigger change for another day.
2013-01-15 09:10:22 -05:00
Philip Kaufmann
3a2e07493b update bitcoinstrings.cpp and bitcoin_en.ts (2013-01-14) 2013-01-14 22:52:52 +01:00
Gavin Andresen
c83c3cbe97 Merge pull request #2172 from Diapolo/init_messages
make database init messages more valuable
2013-01-14 12:49:42 -08:00
Gavin Andresen
e4f2b6b08f Merge pull request #2159 from petertodd/display-nlocktime-correctly
Display tx nLockTime correctly when set to block #
2013-01-14 12:06:07 -08:00
Gavin Andresen
9980d118ee Merge pull request #2129 from gmaxwell/wallet_less_frequent_fees
If the prio. will be enough after the next block don't force fees. [wallet]
2013-01-14 12:05:06 -08:00
Gavin Andresen
1eca3a0f0d Merge branch 'macdeployqt_fix' of git://github.com/themighty1/bitcoin 2013-01-14 14:58:08 -05:00
Gavin Andresen
1b72229797 Merge pull request #2161 from sipa/noclient
Remove fClient
2013-01-14 11:41:19 -08:00
Gavin Andresen
dd46c88f2f Merge pull request #2099 from gavinandresen/blkfile_upgrade
Upgrading to 0.8: re-use blkNNNN.dat files.
2013-01-14 11:37:12 -08:00
Gavin Andresen
40e31fd373 Merge pull request #2142 from gavinandresen/utilprint
OutputDebugStringF code cleanup
2013-01-14 11:36:48 -08:00
Gavin Andresen
7a08ee7c6d Merge branch 'devprocess' 2013-01-14 14:32:01 -05:00
Gavin Andresen
b67b9e7077 Update development process README to reflect current reality 2013-01-14 14:31:10 -05:00
Philip Kaufmann
06494cabb4 make database init messages more valuable
- it was bad, that quite some messages were just talking about a database,
  I think a user should know, if we are talking about wallet db or
  block/coin db
- also adds a new init message for "Verifying block database integrity..."
2013-01-13 21:22:40 +01:00
Wladimir J. van der Laan
6213b25cd4 Merge pull request #2166 from Diapolo/Qt_signverify
Bitcoin-Qt: use reference in setAddress_SM() and setAddress_VM()
2013-01-13 10:53:42 -08:00
Philip Kaufmann
bb41a87d57 add InitMessage() to noui and use debug.log for GUI
- this pull adds an InitMessage() function to noui.cpp, which outputs init
  messages to debug.log (this allows to remove some printf() calls from
  init.cpp)
- change InitMessage() in bitcoin.cpp to also write init messages to
  debug.log to ensure nothting is missing in the log because of the
  removal of printf() calls in init.cpp
2013-01-11 22:57:22 +01:00
Jeff Garzik
e0c8fbac35 Merge pull request #2169 from Diapolo/small_main_h_cleanup
small main.h cleanup (no code changes)
2013-01-11 09:17:14 -08:00
Philip Kaufmann
ec95a809af small main.h cleanup (no code changes)
- removes some obsolete comments about CTransaction::FetchInputs(), a
  space and a few new-lines
2013-01-11 17:36:53 +01:00
Gregory Maxwell
1f4b80a437 Merge pull request #2145 from sipa/checkcoins
Coin database checks
2013-01-11 06:27:30 -08:00
Pieter Wuille
45a1ec51b1 Merge pull request #2115 from forrestv/getblocktemplate_allfees
Provide fee data for all txs in RPC getblocktemplate response
2013-01-10 13:09:51 -08:00
Philip Kaufmann
17c1f7f04f Bitcoin-Qt: use reference in setAddress_SM() and setAddress_VM() 2013-01-10 14:04:32 +01:00
Pieter Wuille
c2b72ba27f Remove fClient
Client (SPV) mode never got implemented entirely, and whatever part was already
working, is likely not been tested (or even executed at all) for the past two
years. This removes it entirely.

If we want an SPV implementation, I think we should first get the block chain
data structures to be encapsulated in a class implementing a standard interface,
and then writing an alternate implementation with SPV semantics.
2013-01-09 22:28:46 +01:00