Unix Compatibility

Gui

Gui

Remove msg

Remove msg

Remove msg

Remove msg

New GUI

Remove GUI

Fix some shit

Fix some stuff

Port Thread* methods to boost::thread_group

Conflicts:
	src/bitcoinrpc.cpp
	src/checkqueue.h
	src/init.cpp
	src/main.cpp
	src/main.h
	src/net.cpp
	src/net.h
	src/test/test_bitcoin.cpp

Conflicts:
	src/bitcoinrpc.cpp
	src/init.cpp
	src/net.cpp
	src/net.h

port stake miner to boost::thread_group

Clean up shutdown process

Conflicts:
	src/init.cpp
	src/init.h
	src/main.cpp
	src/net.cpp
	src/net.h
	src/txdb.cpp
	src/util.cpp
	src/util.h
	src/walletdb.cpp

Conflicts:
	src/init.cpp
	src/init.h
	src/main.cpp
	src/qt/bitcoin.cpp
	src/qt/qtipcserver.cpp

Have Qt poll for shutdown requested, the QT way.

Conflicts:
	src/qt/bitcoin.cpp
	src/qt/bitcoingui.cpp
	src/qt/bitcoingui.h

Use a copy in place of mapMultiArgs["-addnode"].

Also moves the DNS lookup of -addnode nodes into the repeated
loop, allowing -addnode to follow DNS changes.

Conflicts:
	src/net.cpp

Conflicts:
	src/net.cpp

Make ThreadOpenAddedConnections2 exit quicker if(GetNameProxy()).

Conflicts:
	src/net.cpp

Try more than the first address for a DNS -addnode.

Conflicts:
	src/net.cpp

Port Thread* methods to boost::thread_group

Conflicts:
	src/bitcoinrpc.cpp
	src/checkqueue.h
	src/init.cpp
	src/main.cpp
	src/main.h
	src/net.cpp
	src/net.h
	src/test/test_bitcoin.cpp

Conflicts:
	src/init.cpp
	src/net.cpp
	src/net.h

port stake miner to boost::thread_group

Conflicts:
	src/net.cpp

Clean up shutdown process

Conflicts:
	src/init.cpp
	src/init.h
	src/main.cpp
	src/net.cpp
	src/net.h
	src/txdb.cpp
	src/util.cpp
	src/util.h
	src/walletdb.cpp

Conflicts:
	src/init.cpp
	src/init.h
	src/main.cpp
	src/qt/qtipcserver.cpp

Have Qt poll for shutdown requested, the QT way.

Conflicts:
	src/qt/bitcoin.cpp
	src/qt/bitcoingui.cpp
	src/qt/bitcoingui.h

changes to thread code (directly use boost::thread)

- removes our NewThread() function an replaces remaining calls with
  boost::thread with our TraceThread template
- remove ExitThread() function
- fix THREAD_PRIORITY_ABOVE_NORMAL for non Windows OSes

Conflicts:
	src/net.cpp

Conflicts:
	src/net.cpp

(finally) Remove IRC Seed support now that lfnet is down.

Conflicts:
	blackcoin-qt.pro
	doc/coding.txt
	src/init.cpp
	src/irc.cpp

Conflicts:
	src/irc.cpp
	src/net.cpp

Commit

Show warning when using prerelease version

Implements #1948

- Add macro `CLIENT_VERSION_IS_RELEASE` to clientversion.h
- When running a prerelease (the above macro is `false`):
  - In UI, show an orange warning bar at the top. This will be used for other
    warnings (and alerts) as well, instead of the status bar.
  - For `bitcoind`, show the warning in the "errors" field in `getinfo`
    response.

Conflicts:
	doc/release-process.txt
	src/qt/bitcoingui.cpp
	src/qt/clientmodel.h
	src/qt/forms/overviewpage.ui
	src/qt/overviewpage.cpp

Conflicts:
	src/qt/bitcoingui.cpp
	src/qt/clientmodel.h

Add network traffic graph

Conflicts:
	src/bitcoinrpc.cpp
	src/bitcoinrpc.h
	src/net.cpp
	src/qt/Makefile.am
	src/qt/clientmodel.h
	src/rpcnet.cpp

Conflicts:
	src/qt/clientmodel.h

Remove NumBlocksOfPeers

Generally useless information. Only updates on connect time, not after
that. Peers can easily lie and the median filter is not effective in
preventing that.

In the past it was used for progress display in the GUI but
`CheckPoints::guessVerificationProgress` provides a better way that is now used.
It was too easy to mislead it. Peers do lie about it in practice, see issue #4065.

From the RPC, `getpeerinfo` gives the peer raw values, which are more
useful.

Conflicts:
	src/main.cpp
	src/main.h
	src/qt/bitcoingui.h
	src/qt/clientmodel.cpp
	src/qt/clientmodel.h
	src/qt/forms/rpcconsole.ui
	src/qt/rpcconsole.cpp

Conflicts:
	src/main.cpp
	src/qt/clientmodel.h
	src/qt/rpcconsole.cpp

add coinage-based coin selection

Conflicts:
	src/qt/forms/optionsdialog.ui
	src/qt/optionsdialog.cpp
	src/qt/optionsmodel.cpp
	src/qt/optionsmodel.h

Rmv Smplcrpt

Createtx

CreateTx

X

Use boost::asio::deadline_timer for walletpassphrase timeout

New method in bitcoinrpc:  RunLater, that uses a map of deadline
timers to run a function later.

Behavior of walletpassphrase is changed; before, calling
walletpassphrase again before the lock timeout passed
would result in: Error: Wallet is already unlocked.

You would have to call lockwallet before walletpassphrase.

Now: the last walletpassphrase with correct password
wins, and overrides any previous timeout.

Fixes issue# 1961 which was caused by spawning too many threads.

Test plan:

Start with encrypted wallet, password 'foo'
NOTE:
 python -c 'import time; print("%d"%time.time())'
... will tell you current unix timestamp.

Try:

walletpassphrase foo 600
getinfo
EXPECT: unlocked_until is about 10 minutes in the future

walletpassphrase foo 1
sleep 2
sendtoaddress mun74Bvba3B1PF2YkrF4NsgcJwHXXh12LF 11
EXPECT: Error: Please enter the wallet passphrase with walletpassphrase first.

walletpassphrase foo 600
walletpassphrase foo 0
getinfo
EXPECT: wallet is locked (unlocked_until is 0)

walletpassphrase foo 10
walletpassphrase foo 600
getinfo
EXPECT: wallet is unlocked until 10 minutes in future

walletpassphrase foo 60
walletpassphrase bar 600
EXPECT: Error, incorrect passphrase
getinfo
EXPECT: wallet still scheduled to lock 60 seconds from first (successful) walletpassphrase

Conflicts:
	src/bitcoinrpc.cpp
	src/rpcwallet.cpp

Conflicts:
	src/rpcwallet.cpp

It twerks\!

Mac is finally Done