Commit Graph
100 Commits
Author SHA1 Message Date
Pieter Wuille 63046fcf62 Merge pull request #1679 from Diapolo/fix_sign_warning
fix a compiler sign warning in OpenBlockFile()
2012-08-17 05:26:48 -07:00
Pieter Wuille 6ece1d747e CHashWriter that does SHA256 in-place during serialization 2012-07-07 23:09:14 +02:00
Pieter Wuille 9af3c3c824 Merge pull request #1566 from Diapolo/typo
fix typo in optionsmodel.cpp
2012-07-07 07:41:51 -07:00
Pieter Wuille 0ba5bacd0c Merge pull request #1565 from jrmithdobbs/socks5-fix
Fix OBO in socks5 auth proposal.
2012-07-07 07:19:53 -07:00
Pieter Wuille abbb9a829c Merge pull request #1347 from rebroad/FixAlreadyAskedFor
mapAlreadyAskedFor gets additions when AlreadyHave()
2012-06-27 08:06:57 -07:00
Pieter Wuille 6c88568fef Merge pull request #973 from TheBlueMatt/diffsendbuffer
Stop processing messages on full send buffer and dont disconnect.
2012-06-27 07:49:28 -07:00
Pieter Wuille 4a52c187d3 Merge pull request #457 from muggenhor/async-ipv6-rpc
IPv6 RPC using asynchronously accepted connections
2012-06-27 07:48:38 -07:00
Pieter Wuille 6cef700203 Merge pull request #1517 from Diapolo/fix_comment
fix a comment to correctly use -upgradewallet
2012-06-24 09:10:03 -07:00
Pieter Wuille d789a3f140 Some documentation about tor 2012-06-23 01:11:38 +02:00
Pieter Wuille 863e995b79 Debug version messages 2012-06-23 01:11:38 +02:00
Pieter Wuille 54ce3bad64 Add -tor and related configuration 2012-06-23 01:11:38 +02:00
Pieter Wuille d077dd2a6e Rewrite CNetAddr::GetReachabilityFrom()
Add support for Tor/I2P networks, and make code more readable.
2012-06-23 01:11:38 +02:00
Pieter Wuille 70f7f00385 Node support for Tor hidden services
This commit adds support for .onion addresses (mapped into the IPv6
by using OnionCat's range and encoding), and the ability to connect
to them via a SOCKS5 proxy.
2012-06-23 01:11:32 +02:00
Pieter Wuille e0be8da392 Unit tests for base32 encode/decode 2012-06-22 17:19:28 +02:00
Pieter Wuille c4c99ade65 Base32 encoding/decoding 2012-06-22 17:19:28 +02:00
Pieter Wuille d65e959bae Update my GPG key 2012-06-20 18:13:16 +02:00
Pieter Wuille 70f6049f71 Remove CTxDB::ReadOwnerTxes.
It seems it wasn't ever used since 0.1.5.
2012-06-20 15:07:48 +02:00
Pieter Wuille 451c3957fe Merge pull request #1485 from xanatos/patch-1
Small logical error in mruset
2012-06-19 05:37:21 -07:00
Pieter Wuille 4c6b210af0 Fix netbase tests
* Do not rely on "a.b.c" being interpreted as "a.0.b.c"
* Parse numeric addresses for address families for which no device is configured
2012-06-19 02:22:09 +02:00
Pieter Wuille 432d28d3bb Merge pull request #1477 from gmaxwell/master
Fix inverted logic for !Discover/!UPNP when !Listen.
2012-06-17 17:07:08 -07:00
Pieter Wuille c971112dfa Use a 64-bit nonce in ping
Former code sent '0' as nonce, which was serialized as 32-bit.
2012-06-14 18:31:08 +02:00
Pieter Wuille c4971e24f9 Add netbase tests 2012-06-14 17:43:10 +02:00
Pieter Wuille 1e8aeae15a Improve parsing of IPv6 addresses
Implement the following rules:
* Interpret [X]:Y as host=X port=Y, if Y is an integer
* Interpret X:Y as host=X port=Y, if Y is an integer and X contains no colon
* Interpret X:Y as host=X:Y port=default otherwise
2012-06-14 17:37:15 +02:00
Pieter Wuille de29f9b444 Merge pull request #1441 from TheBlueMatt/gitian-downloader
Fix broken config files
2012-06-12 03:43:06 -07:00
Pieter Wuille 11f73c728a Merge pull request #1421 from Diapolo/netbase_fix_sign_warnings
fix two signed/unsigned comparison warnings in netbase.cpp
2012-06-08 07:29:34 -07:00
Pieter Wuille 0ed0806bb4 Update comment about secure_allocator<> 2012-06-08 16:27:05 +02:00
Pieter Wuille 1b7cd74a49 Merge pull request #1424 from TheBlueMatt/lockcontention
Fix DEBUG_LOCKCONTENTION
2012-06-08 07:22:19 -07:00
Pieter Wuille afdd59416e Merge pull request #1418 from Diapolo/GUI_fix_default_proxy_addr
fix default Proxy address in Qt options (no hostname allowed currently)
2012-06-05 11:13:25 -07:00
Pieter Wuille 587f929c64 Rework network config settings 2012-05-31 18:12:35 +02:00
Pieter Wuille 10ed8178fc Update bitcoinstrings.cpp 2012-05-30 23:00:21 +02:00
Pieter Wuille a52c7a1b65 Merge pull request #1357 from sipa/keyid
Refactor: split CKeyID/CScriptID/CTxDestination from CBitcoinAddress
2012-05-26 10:17:27 -07:00
Pieter Wuille 1e07068adf Merge pull request #1370 from Diapolo/add_startuptime_to_log
add client startup time as an entry to debug.log
2012-05-26 01:55:17 -07:00
Pieter Wuille 1025440184 Refactor: split CKeyID/CScriptID/CTxDestination from CBitcoinAddress
This introduces internal types:
* CKeyID: reference (hash160) of a key
* CScriptID: reference (hash160) of a script
* CTxDestination: a boost::variant of the former two

CBitcoinAddress is retrofitted to be a Base58 encoding of a
CTxDestination. This allows all internal code to only use the
internal types, and only have RPC and GUI depend on the base58 code.

Furthermore, the header dependencies are a lot saner now. base58.h is
at the top (right below rpc and gui) instead of at the bottom. For the
rest: wallet -> script -> keystore -> key. Only keystore still requires
a forward declaration of CScript. Solving that would require splitting
script into two layers.
2012-05-24 20:26:19 +02:00
Pieter Wuille fd61d6f506 Encapsulate public keys in CPubKey 2012-05-24 19:58:12 +02:00
Pieter Wuille f29f242758 Merge pull request #1380 from gavinandresen/optimize2
Move signature cache from CKey::Verify to CheckSig in script.cpp
2012-05-22 15:13:36 -07:00
Pieter Wuille fa638ec8af Merge pull request #1369 from sipa/bootorder
Reorder AppInit2
2012-05-22 13:54:46 -07:00
Pieter Wuille 63407fd6e2 Merge pull request #917 from mndrix/reopen-log-file
Reopen log file on SIGHUP
2012-05-21 10:04:26 -07:00
Pieter Wuille 7d80d2e3d7 Reorder AppInit2
This reorders AppInit2 into 10 sections:
1)  basic setup (OS stuff, signal handlers)
2)  parameter interactions (softset)
3)  interpreting options without side effects (just setting internal variables)
4)  application initialization (datadir lock, daemonize, pidfile, log file)
5)  network initialization (network params, proxy, binding)
6)  load blockchain
7)  load wallet
8)  import blocks (-loadblock=)
9)  load peers
10) start node/rpc threads
11) finished

This means invalid configurations will be detected as soon as possible
(in particular, before loading the block chain).
2012-05-21 18:43:22 +02:00
Pieter Wuille 46784d0826 Merge pull request #1354 from fanquake/master
Update Header Licenses
2012-05-20 12:27:50 -07:00
Pieter Wuille 6e86c4700b Merge pull request #1363 from Diapolo/remove_strncasecmp
remove strncasecmp() + strnicmp() calls use boost::algorithm::istarts_with()
2012-05-20 12:26:43 -07:00
Pieter Wuille bd795bd543 Merge pull request #1358 from luke-jr/shared_lockchk
Shared code for wallet lock help and check
2012-05-19 08:34:27 -07:00
Pieter Wuille 660ff174f2 Use boost::thread locking instead of interprocess 2012-05-18 16:56:12 +02:00
Pieter Wuille 385f730f31 Hopefully final fix for the stuck blockchain issue
Immediately issue a "getblocks", instead of a "getdata" (which will
trigger the relevant "inv" to be sent anyway), and only do so when
the previous set of invs led us into a known and attached part of
the block tree.
2012-05-15 17:53:46 +02:00
Pieter Wuille 91dace35a1 Do not listen on blocked networks 2012-05-14 17:52:51 +02:00
Pieter Wuille 55bb0cfbb6 Allow binding to the any address, and report failure 2012-05-14 17:52:50 +02:00
Pieter Wuille 0f1707de67 -onlynet instead of -blocknet 2012-05-14 17:52:45 +02:00
Pieter Wuille 0071a540d4 Merge pull request #1291 from sipa/canonames
Use getnameinfo() to get canonical IPv6 addresses
2012-05-14 04:14:28 -07:00
Pieter Wuille ca81464697 Use getnameinfo() to get canonical IPv6 addresses 2012-05-14 01:41:15 +02:00
Pieter Wuille 09b4e26a44 Really do not consider blocked networks local 2012-05-13 23:50:55 +02:00
Pieter Wuille 1653f97c8f Do not consider blocked networks local 2012-05-13 15:11:51 +02:00
Pieter Wuille 8f737d28a6 Only encode IPv4 addresses in IRC nicks 2012-05-13 15:07:31 +02:00
Pieter Wuille 9fc0a15cd4 Merge pull request #1285 from sipa/initerror
Improve error reporting at startup
2012-05-13 06:01:21 -07:00
Pieter Wuille af4006b3f5 Enforce -nodiscover better 2012-05-13 14:22:15 +02:00
Pieter Wuille ac7c7ab99a Improve error reporting at startup 2012-05-13 12:35:39 +02:00
Pieter Wuille 22db3f2c77 Fix warning about uninitialized value
Only reported when using -flto.
2012-05-13 01:36:46 +02:00
Pieter Wuille 5a3cb32e59 Take -port into account when resolving -bind's 2012-05-13 01:26:14 +02:00
Pieter Wuille 139d2f7c29 Keep local service information per address
Keep local service information per CNetAddr instead of per CService,
but move the port into the information kept on it.
2012-05-13 01:03:05 +02:00
Pieter Wuille 89b5616d10 Do not signal outbound semaphore if uninitialized 2012-05-13 00:49:12 +02:00
Pieter Wuille 45dcf63a62 Only check for port# after : in ConnectSocketByName 2012-05-13 00:49:12 +02:00
Pieter Wuille a6cd0b08f6 Partially revert f621326: xCXXFLAGS 2012-05-13 00:41:46 +02:00
Pieter Wuille 839c4e7966 Fix initialization of inaddr_any 2012-05-12 17:20:43 +02:00
Pieter Wuille a3878873f3 Merge pull request #1021 from sipa/ipv6
IPv6 node support
2012-05-11 18:23:56 -07:00
Pieter Wuille 7f3ccb59da Split synchronization mechanisms from util.{h,cpp} 2012-05-11 18:13:51 +02:00
Pieter Wuille 5456ef3092 Use polling instead of boost's broken semaphore on OSX 2012-05-11 17:02:11 +02:00
Pieter Wuille c59abe2589 Use semaphores instead of condition variables 2012-05-11 17:02:11 +02:00
Pieter Wuille 8f10a28890 Separate listening sockets, -bind=<addr> 2012-05-11 15:29:20 +02:00
Pieter Wuille 7fa4443f77 Keep port information for local addresses 2012-05-11 15:29:19 +02:00
Pieter Wuille 457754d2c2 Add -blocknet to prevent connections to a given network 2012-05-11 15:29:19 +02:00
Pieter Wuille c5b3ffd8d5 Use NET_ identifiers in CNetAddr::GetGroup() 2012-05-11 15:29:19 +02:00
Pieter Wuille 623b987813 Add -noproxy to circumvent proxy for some network 2012-05-11 15:29:19 +02:00
Pieter Wuille 090e5b40f1 Limited relaying/storing of foreign addresses
Introduce a boolean variable for each "network" (ipv4, ipv6, tor, i2p),
and track whether we are likely to able to connect to it. Addresses in
"addr" messages outside of our network get limited relaying and are not
stored in addrman.
2012-05-11 15:29:19 +02:00
Pieter Wuille d32148567f Preliminary support for Tor/I2P hidden services
There are plans to let Bitcoin function as Tor/I2P hidden service.
To do so, we could use the established encoding provided by OnionCat
and GarliCat (without actually using those tools) to embed Tor/I2P
addresses in IPv6.

This patch makes these addresses considered routable, so they can
travel over the Bitcoin network in 'addr' messages. This will hopefully
make it easier to deploy real hidden service support later.
2012-05-11 15:29:19 +02:00
Pieter Wuille 23aa78c405 IPv6 node support
This will make bitcoin relay valid routable IPv6 addresses, and when
USE_IPV6 is enabled, listen on IPv6 interfaces and attempt connections
to IPv6 addresses.
2012-05-11 15:29:19 +02:00
Pieter Wuille 1f5a7cef6f Fix version numbers of archive builds 2012-05-11 11:44:53 +02:00
Pieter Wuille f621326c24 Clean up warnings
* Use -Wall -Wextra -Wformat -Wformat-security -Wno-unused-parameters
* Remove xCXXFLAGS usage in makefile.unix
* Fix several recent and older sign-compare warnings
2012-05-09 03:48:30 +02:00
Pieter Wuille 6860133373 Prevent stuck download: correct solution
Pull request #948 introduced a fix for nodes stuck on a long side branch
of the main chain. The fix was non-functional however, as the additional
getdata request was created in a first step of processing, but dropped
in a second step as it was considered redundant. This commits fixes it
by sending the request directly.
2012-05-06 23:37:45 +02:00
Pieter Wuille bd1aabe941 Bugfix: store source address in addrman 2012-05-05 21:33:29 +02:00
Pieter Wuille 56f1e91239 Fix addrman crashes
A function returned the element to remove from a bucket, instead of its
position in that bucket. This function was only called when a tried
bucket overflowed, which only happens after many outgoing connections
have been made.

Closes: #1065, #1156
2012-05-05 21:33:26 +02:00
Pieter Wuille 29a86a1735 Add extra asserts to addrman 2012-05-05 21:32:41 +02:00
Pieter Wuille 19b6958cfd Added -externalip and -discover
-externalip=<ip> can be used to explicitly set the public IP address
of your node. -discover=0 can be used to disable the automatic public
IP discovery system.
2012-05-04 16:12:23 +02:00
Pieter Wuille 39857190de Support for multiple local addresses 2012-05-04 16:12:23 +02:00
Pieter Wuille 478b01d9a7 Add -seednode connections, and use this for -dnsseed + -proxydns 2012-05-04 16:11:54 +02:00
Pieter Wuille 9bab521df8 Support connecting by hostnames passed to proxy (-proxydns) 2012-05-04 16:11:54 +02:00
Pieter Wuille a012e2db59 refactor ConnectSocket 2012-05-04 16:11:54 +02:00
Pieter Wuille 933f2715d8 SOCKS5 connect via hostname 2012-05-04 16:11:54 +02:00
Pieter Wuille 60a87bce87 SOCKS5 support by default
Add -socks=<n> to select SOCKS version to use. 4 and 5 are supported,
5 is default.
2012-05-04 16:11:54 +02:00
Pieter Wuille 287ce61dc2 Merge pull request #1146 from drizztbsd/posix-include
We should include netinet/in.h to use sockaddr_in (POSIX.1-2001)
2012-04-26 15:25:56 -07:00
Pieter Wuille e1ea3ce7aa Merge pull request #1119 from sipa/fastshutdown
Make lsn_reset ("detach databases") optional and off by default.
2012-04-26 05:20:57 -07:00
Pieter Wuille 83743ed681 Make lsn_reset ("detach databases") optional and off by default.
Add an option -detachdb (and entry in OptionDialog), without which no
lsn_reset is called on addr.dat and blkindex.dat. That means these
files cannot be moved to a new environment, but shutdown can be
significantly faster. The wallet file is always lsn_reset'ed.

-detachdb corresponds to the old behaviour, though it is off by
default now to speed up shutdowns.
2012-04-26 00:31:54 +02:00
Pieter Wuille ef758662c5 Merge pull request #1133 from sipa/abspath
Make GetDataDir return absolute paths
2012-04-22 14:56:03 -07:00
Pieter Wuille f4203de302 Make GetDataDir return absolute paths 2012-04-22 17:38:47 +02:00
Pieter Wuille 1d740055da -loadblock to load from an external blk000?.dat file 2012-04-22 03:09:35 +02:00
Pieter Wuille 457661f640 Merge pull request #1124 from sipa/rpcobj3
extension of #1103: encapsulate mapCommands in CRPCTable
2012-04-21 16:49:32 -07:00
Pieter Wuille 7dbe393629 Merge pull request #1131 from laanwj/2012_04_hexstr
Integrate @JoelKatz's optimized ToHex (#562) into current HexStr function
2012-04-21 16:47:02 -07:00
Pieter Wuille d5eb41fa08 Merge pull request #1129 from laanwj/2012_04_opcodes
Add explicit numeric constant value for all opcodes
2012-04-21 16:43:31 -07:00
Pieter Wuille 6a7a42be16 Merge pull request #1126 from drizztbsd/master
Fix build with gcc 4.7
2012-04-21 15:13:29 -07:00
Pieter Wuille e46704dd90 Expose CRPCTable via bitcoinrpc.h for testing 2012-04-21 01:37:34 +02:00
Pieter Wuille 9862229d4d Encapsulate mapCommands in class CRPCTable 2012-04-21 01:20:05 +02:00
Pieter Wuille 3b9e6b7820 Merge pull request #959 from rebroad/LoadBlockIndexKillable
Added ability to respond to signals during Block Loading stage.
2012-04-19 04:33:04 -07:00
Pieter Wuille c73ba23eb5 gettransaction RPC for non-wallet transactions
Works for wallet transactions, memory-pool transaction and block chain
transactions.

Available for all:
 * txid
 * version
 * locktime
 * size
 * coinbase/inputs/outputs
 * confirmations

Available only for wallet transactions:
 * amount
 * fee
 * details
 * blockindex

Available for wallet transactions and block chain transactions:
 * blockhash
 * time
2012-04-18 23:42:07 +02:00