From 83e34b29071b58d6578b197430d12c55d277a515 Mon Sep 17 00:00:00 2001 From: Balthazar Date: Sun, 10 Feb 2013 04:22:40 +0000 Subject: [PATCH] Initial commit of NovaCoin changes --- README.md | 2 +- novacoin-qt.pro | 26 +++++-- share/qt/make_windows_icon.sh | 16 +++-- share/setup.nsi | 33 ++++----- share/ui.rc | 2 +- src/base58.h | 5 +- src/bitcoinrpc.cpp | 67 +++++++++-------- src/checkpoints.cpp | 2 +- src/checkpoints.h | 1 + src/db.h | 1 + src/init.cpp | 47 ++++++------ src/irc.cpp | 17 +++-- src/main.cpp | 143 ++++++++++++++++--------------------- src/main.h | 30 +++++---- src/makefile.linux-mingw | 12 ++- src/makefile.mingw | 12 ++-- src/makefile.osx | 6 ++- src/makefile.unix | 22 +++++-- src/net.cpp | 25 ++++--- src/net.h | 1 + src/protocol.cpp | 16 +--- src/protocol.h | 6 +- src/qt/bitcoin.cpp | 8 +- src/qt/bitcoin.qrc | 34 +-------- src/qt/bitcoingui.cpp | 19 +++--- src/qt/bitcoinstrings.cpp | 10 ++-- src/qt/bitcoinunits.cpp | 12 ++-- src/qt/editaddressdialog.cpp | 2 +- src/qt/forms/aboutdialog.ui | 6 +- src/qt/forms/addressbookpage.ui | 2 +- src/qt/forms/messagepage.ui | 2 +- src/qt/forms/sendcoinsentry.ui | 2 +- src/qt/locale/bitcoin_en.ts | 68 +++++++++--------- src/qt/locale/bitcoin_ru.ts | 115 +++++++++++++++++------------- src/qt/optionsdialog.cpp | 8 +- src/qt/res/bitcoin-qt.rc | 2 +- src/qt/res/images/splash2.jpg | Bin 5816 -> 5587 bytes src/qt/sendcoinsentry.cpp | 2 +- src/rpcdump.cpp | 8 +- src/script.cpp | 1 + src/serialize.h | 1 + src/util.cpp | 29 ++++---- src/util.h | 7 ++ src/wallet.h | 1 + 44 files changed, 429 insertions(+), 402 deletions(-) mode change 100755 => 100644 contrib/debian/bin/bitcoin-qt mode change 100755 => 100644 contrib/debian/bin/bitcoind mode change 100755 => 100644 contrib/debian/rules mode change 100755 => 100644 contrib/macdeploy/macdeployqtplus mode change 100755 => 100644 contrib/pyminer/pyminer.py mode change 100755 => 100644 contrib/qt_translations.py mode change 100755 => 100644 share/genbuild.sh mode change 100755 => 100644 share/qt/extract_strings_qt.py mode change 100755 => 100644 share/qt/make_spinner.py mode change 100755 => 100644 share/qt/make_windows_icon.sh diff --git a/README.md b/README.md index 0d18254..f3e1a91 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ -PPCoin official development tree +NovaCoin official development tree Bitcoin development process =========================== diff --git a/contrib/debian/bin/bitcoin-qt b/contrib/debian/bin/bitcoin-qt old mode 100755 new mode 100644 diff --git a/contrib/debian/bin/bitcoind b/contrib/debian/bin/bitcoind old mode 100755 new mode 100644 diff --git a/contrib/debian/rules b/contrib/debian/rules old mode 100755 new mode 100644 diff --git a/contrib/macdeploy/macdeployqtplus b/contrib/macdeploy/macdeployqtplus old mode 100755 new mode 100644 diff --git a/contrib/pyminer/pyminer.py b/contrib/pyminer/pyminer.py old mode 100755 new mode 100644 diff --git a/contrib/qt_translations.py b/contrib/qt_translations.py old mode 100755 new mode 100644 diff --git a/novacoin-qt.pro b/novacoin-qt.pro index 7f2a5a4..1ae3eba 100644 --- a/novacoin-qt.pro +++ b/novacoin-qt.pro @@ -81,7 +81,7 @@ contains(BITCOIN_NEED_QT_PLUGINS, 1) { } # regenerate src/build.h -!windows || contains(USE_BUILD_INFO, 1) { +!windows | contains(USE_BUILD_INFO, 1) { genbuild.depends = FORCE genbuild.commands = cd $$PWD; /bin/sh share/genbuild.sh $$OUT_PWD/build/build.h genbuild.target = genbuildhook @@ -90,6 +90,9 @@ contains(BITCOIN_NEED_QT_PLUGINS, 1) { DEFINES += HAVE_BUILD_INFO } +QMAKE_CXXFLAGS += -msse2 +QMAKE_CFLAGS += -msse2 + QMAKE_CXXFLAGS_WARN_ON = -fdiagnostics-show-option -Wall -Wextra -Wformat -Wformat-security -Wno-invalid-offsetof -Wno-sign-compare -Wno-unused-parameter # Input @@ -115,6 +118,8 @@ HEADERS += src/qt/bitcoingui.h \ src/strlcpy.h \ src/main.h \ src/net.h \ + src/scrypt_mine.h \ + src/pbkdf2.h \ src/key.h \ src/db.h \ src/walletdb.h \ @@ -178,6 +183,8 @@ SOURCES += src/qt/bitcoin.cpp src/qt/bitcoingui.cpp \ src/main.cpp \ src/init.cpp \ src/net.cpp \ + src/scrypt_mine.cpp \ + src/pbkdf2.cpp \ src/irc.cpp \ src/checkpoints.cpp \ src/addrman.cpp \ @@ -214,6 +221,14 @@ SOURCES += src/qt/bitcoin.cpp src/qt/bitcoingui.cpp \ src/qt/notificator.cpp \ src/qt/qtipcserver.cpp +contains(QMAKE_HOST.arch, x86):{ + SOURCES += src/scrypt-x86.S +} + +contains(QMAKE_HOST.arch, x86_64):{ + SOURCES += src/scrypt-x86_64.S +} + RESOURCES += \ src/qt/bitcoin.qrc @@ -240,7 +255,7 @@ SOURCES += src/qt/test/test_main.cpp \ HEADERS += src/qt/test/uritests.h DEPENDPATH += src/qt/test QT += testlib -TARGET = bitcoin-qt_test +TARGET = novacoin-qt_test DEFINES += BITCOIN_QT_TEST } @@ -271,7 +286,7 @@ OTHER_FILES += \ # platform specific defaults, if not overridden on command line isEmpty(BOOST_LIB_SUFFIX) { macx:BOOST_LIB_SUFFIX = -mt - windows:BOOST_LIB_SUFFIX = -mgw44-mt-1_43 + windows:BOOST_LIB_SUFFIX = -mgw44-mt-1_53 } isEmpty(BOOST_THREAD_LIB_SUFFIX) { @@ -298,7 +313,6 @@ isEmpty(BOOST_INCLUDE_PATH) { macx:BOOST_INCLUDE_PATH = /opt/local/include } -windows:LIBS += -lws2_32 -lshlwapi windows:DEFINES += WIN32 windows:RC_FILE = src/qt/res/bitcoin-qt.rc @@ -323,14 +337,14 @@ macx:OBJECTIVE_SOURCES += src/qt/macdockiconhandler.mm macx:LIBS += -framework Foundation -framework ApplicationServices -framework AppKit macx:DEFINES += MAC_OSX MSG_NOSIGNAL=0 macx:ICON = src/qt/res/icons/bitcoin.icns -macx:TARGET = "Bitcoin-Qt" +macx:TARGET = "NovaCoin-Qt" # Set libraries and includes at end, to use platform-defined defaults if not overridden INCLUDEPATH += $$BOOST_INCLUDE_PATH $$BDB_INCLUDE_PATH $$OPENSSL_INCLUDE_PATH $$QRENCODE_INCLUDE_PATH LIBS += $$join(BOOST_LIB_PATH,,-L,) $$join(BDB_LIB_PATH,,-L,) $$join(OPENSSL_LIB_PATH,,-L,) $$join(QRENCODE_LIB_PATH,,-L,) LIBS += -lssl -lcrypto -ldb_cxx$$BDB_LIB_SUFFIX # -lgdi32 has to happen after -lcrypto (see #681) -windows:LIBS += -lole32 -luuid -lgdi32 +windows:LIBS += -lws2_32 -lshlwapi -lmswsock -lole32 -loleaut32 -luuid -lgdi32 LIBS += -lboost_system$$BOOST_LIB_SUFFIX -lboost_filesystem$$BOOST_LIB_SUFFIX -lboost_program_options$$BOOST_LIB_SUFFIX -lboost_thread$$BOOST_THREAD_LIB_SUFFIX contains(RELEASE, 1) { diff --git a/share/genbuild.sh b/share/genbuild.sh old mode 100755 new mode 100644 diff --git a/share/qt/extract_strings_qt.py b/share/qt/extract_strings_qt.py old mode 100755 new mode 100644 diff --git a/share/qt/make_spinner.py b/share/qt/make_spinner.py old mode 100755 new mode 100644 diff --git a/share/qt/make_windows_icon.sh b/share/qt/make_windows_icon.sh old mode 100755 new mode 100644 index bf607b1..c1e5e19 --- a/share/qt/make_windows_icon.sh +++ b/share/qt/make_windows_icon.sh @@ -1,9 +1,13 @@ #!/bin/bash # create multiresolution windows icon -ICON_SRC=../../src/qt/res/icons/bitcoin.png -ICON_DST=../../src/qt/res/icons/bitcoin.ico -convert ${ICON_SRC} -resize 16x16 bitcoin-16.png -convert ${ICON_SRC} -resize 32x32 bitcoin-32.png -convert ${ICON_SRC} -resize 48x48 bitcoin-48.png -convert bitcoin-16.png bitcoin-32.png bitcoin-48.png ${ICON_DST} + +#ICON_SRC=../../src/qt/res/icons/novacoin.png + +ICON_DST=../../src/qt/res/icons/novacoin.ico + +#convert ${ICON_SRC} -resize 16x16 novacoin-16.png +#convert ${ICON_SRC} -resize 32x32 novacoin-32.png +#convert ${ICON_SRC} -resize 48x48 novacoin-48.png + +convert ../../src/qt/res/icons/novacoin-16.png ../../src/qt/res/icons/novacoin-32.png ../../src/qt/res/icons/novacoin-48.png ${ICON_DST} diff --git a/share/setup.nsi b/share/setup.nsi index 56b2b9a..b329f36 100644 --- a/share/setup.nsi +++ b/share/setup.nsi @@ -1,4 +1,4 @@ -Name PPCoin +Name NovaCoin RequestExecutionLevel highest SetCompressor /SOLID lzma @@ -6,11 +6,11 @@ SetCompressor /SOLID lzma # General Symbol Definitions !define REGKEY "SOFTWARE\$(^Name)" !define VERSION 0.2.2 -!define COMPANY "PPCoin project" -!define URL http://www.ppcoin.org/ +!define COMPANY "NovaCoin project" +!define URL http://www.novacoin.ru/ # MUI Symbol Definitions -!define MUI_ICON "../share/pixmaps/bitcoin.ico" +!define MUI_ICON "../share/pixmaps/novacoin.ico" !define MUI_WELCOMEFINISHPAGE_BITMAP "../share/pixmaps/nsis-wizard.bmp" !define MUI_HEADERIMAGE !define MUI_HEADERIMAGE_RIGHT @@ -19,8 +19,8 @@ SetCompressor /SOLID lzma !define MUI_STARTMENUPAGE_REGISTRY_ROOT HKLM !define MUI_STARTMENUPAGE_REGISTRY_KEY ${REGKEY} !define MUI_STARTMENUPAGE_REGISTRY_VALUENAME StartMenuGroup -!define MUI_STARTMENUPAGE_DEFAULTFOLDER PPCoin -#!define MUI_FINISHPAGE_RUN $INSTDIR\bitcoin-qt.exe +!define MUI_STARTMENUPAGE_DEFAULTFOLDER NovaCoin +#!define MUI_FINISHPAGE_RUN $INSTDIR\novacoin-qt.exe !define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico" !define MUI_UNWELCOMEFINISHPAGE_BITMAP "../share/pixmaps/nsis-wizard.bmp" !define MUI_UNFINISHPAGE_NOAUTOCLOSE @@ -45,14 +45,14 @@ Var StartMenuGroup !insertmacro MUI_LANGUAGE English # Installer attributes -OutFile ppcoin-0.2.2-win32-setup.exe -InstallDir $PROGRAMFILES\PPCoin +OutFile novacoin-0.2.2-win32-setup.exe +InstallDir $PROGRAMFILES\NovaCoin CRCCheck on XPStyle on BrandingText " " ShowInstDetails show VIProductVersion 0.2.2.0 -VIAddVersionKey ProductName PPCoin +VIAddVersionKey ProductName NovaCoin VIAddVersionKey ProductVersion "${VERSION}" VIAddVersionKey CompanyName "${COMPANY}" VIAddVersionKey CompanyWebsite "${URL}" @@ -66,18 +66,18 @@ ShowUninstDetails show Section -Main SEC0000 SetOutPath $INSTDIR SetOverwrite on - #File ../release/bitcoin-qt.exe + #File ../release/novacoin-qt.exe File /oname=license.txt ../COPYING File /oname=readme.txt ../doc/README_windows.txt SetOutPath $INSTDIR\daemon - File ../src/ppcoind.exe + File ../src/novacoind.exe SetOutPath $INSTDIR\src File /r /x *.exe /x *.o ../src\*.* SetOutPath $INSTDIR WriteRegStr HKCU "${REGKEY}\Components" Main 1 # Remove old wxwidgets-based-bitcoin executable and locales: - #Delete /REBOOTOK $INSTDIR\bitcoin.exe + #Delete /REBOOTOK $INSTDIR\novacoin.exe #RMDir /r /REBOOTOK $INSTDIR\locale SectionEnd @@ -87,8 +87,7 @@ Section -post SEC0001 WriteUninstaller $INSTDIR\uninstall.exe !insertmacro MUI_STARTMENU_WRITE_BEGIN Application CreateDirectory $SMPROGRAMS\$StartMenuGroup - #CreateShortcut "$SMPROGRAMS\$StartMenuGroup\Bitcoin.lnk" $INSTDIR\bitcoin-qt.exe - CreateShortcut "$SMPROGRAMS\$StartMenuGroup\Uninstall PPCoin.lnk" $INSTDIR\uninstall.exe + CreateShortcut "$SMPROGRAMS\$StartMenuGroup\Uninstall NovaCoin.lnk" $INSTDIR\uninstall.exe !insertmacro MUI_STARTMENU_WRITE_END WriteRegStr HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" DisplayName "$(^Name)" WriteRegStr HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" DisplayVersion "${VERSION}" @@ -121,7 +120,7 @@ done${UNSECTION_ID}: # Uninstaller sections Section /o -un.Main UNSEC0000 - #Delete /REBOOTOK $INSTDIR\bitcoin-qt.exe + #Delete /REBOOTOK $INSTDIR\novacoin-qt.exe Delete /REBOOTOK $INSTDIR\license.txt Delete /REBOOTOK $INSTDIR\readme.txt RMDir /r /REBOOTOK $INSTDIR\daemon @@ -131,7 +130,7 @@ SectionEnd Section -un.post UNSEC0001 DeleteRegKey HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" - Delete /REBOOTOK "$SMPROGRAMS\$StartMenuGroup\Uninstall PPCoin.lnk" + Delete /REBOOTOK "$SMPROGRAMS\$StartMenuGroup\Uninstall NovaCoin.lnk" #Delete /REBOOTOK "$SMPROGRAMS\$StartMenuGroup\Bitcoin.lnk" #Delete /REBOOTOK "$SMSTARTUP\Bitcoin.lnk" Delete /REBOOTOK $INSTDIR\uninstall.exe @@ -141,7 +140,7 @@ Section -un.post UNSEC0001 DeleteRegValue HKCU "${REGKEY}" Path DeleteRegKey /IfEmpty HKCU "${REGKEY}\Components" DeleteRegKey /IfEmpty HKCU "${REGKEY}" - DeleteRegKey HKCR "ppcoin" + DeleteRegKey HKCR "novacoin" RmDir /REBOOTOK $SMPROGRAMS\$StartMenuGroup RmDir /REBOOTOK $INSTDIR Push $R0 diff --git a/share/ui.rc b/share/ui.rc index 063641c..5f038e6 100644 --- a/share/ui.rc +++ b/share/ui.rc @@ -1,4 +1,4 @@ -bitcoin ICON "pixmaps/bitcoin.ico" +bitcoin ICON "pixmaps/novacoin.ico" #include "wx/msw/wx.rc" diff --git a/src/base58.h b/src/base58.h index 589b975..041ef80 100644 --- a/src/base58.h +++ b/src/base58.h @@ -1,6 +1,7 @@ // Copyright (c) 2009-2010 Satoshi Nakamoto // Copyright (c) 2009-2012 The Bitcoin Developers // Copyright (c) 2011-2012 The PPCoin developers +// Copyright (c) 2012-2013 The NovaCoin developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -264,8 +265,8 @@ class CBitcoinAddress : public CBase58Data public: enum { - PUBKEY_ADDRESS = 55, // ppcoin: addresses begin with 'P' - SCRIPT_ADDRESS = 117, // ppcoin: addresses begin with 'p' + PUBKEY_ADDRESS = 8, + SCRIPT_ADDRESS = 20, PUBKEY_ADDRESS_TEST = 111, SCRIPT_ADDRESS_TEST = 196, }; diff --git a/src/bitcoinrpc.cpp b/src/bitcoinrpc.cpp index 3c39a30..147e6b1 100644 --- a/src/bitcoinrpc.cpp +++ b/src/bitcoinrpc.cpp @@ -1,6 +1,7 @@ // Copyright (c) 2010 Satoshi Nakamoto // Copyright (c) 2009-2012 The Bitcoin developers // Copyright (c) 2011-2012 The PPCoin developers +// Copyright (c) 2012-2013 The NovaCoin developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -46,6 +47,8 @@ static CCriticalSection cs_nWalletUnlockTime; extern Value dumpprivkey(const Array& params, bool fHelp); extern Value importprivkey(const Array& params, bool fHelp); +extern CBigNum bnProofOfWorkLimit; + Object JSONRPCError(int code, const string& message) { Object error; @@ -237,10 +240,10 @@ Value stop(const Array& params, bool fHelp) if (fHelp || params.size() != 0) throw runtime_error( "stop\n" - "Stop ppcoin server."); + "Stop novacoin server."); // Shutdown will take long enough that the response should get back StartShutdown(); - return "ppcoin server stopping"; + return "novacoin server stopping"; } @@ -401,7 +404,7 @@ Value getnewaddress(const Array& params, bool fHelp) if (fHelp || params.size() > 1) throw runtime_error( "getnewaddress [account]\n" - "Returns a new ppcoin address for receiving payments. " + "Returns a new novacoin address for receiving payments. " "If [account] is specified (recommended), it is added to the address book " "so payments received with the address will be credited to [account]."); @@ -468,7 +471,7 @@ Value getaccountaddress(const Array& params, bool fHelp) if (fHelp || params.size() != 1) throw runtime_error( "getaccountaddress \n" - "Returns the current ppcoin address for receiving payments to this account."); + "Returns the current novacoin address for receiving payments to this account."); // Parse the account first so we don't generate a key if there's an error string strAccount = AccountFromValue(params[0]); @@ -486,12 +489,12 @@ Value setaccount(const Array& params, bool fHelp) { if (fHelp || params.size() < 1 || params.size() > 2) throw runtime_error( - "setaccount \n" + "setaccount \n" "Sets the account associated with the given address."); CBitcoinAddress address(params[0].get_str()); if (!address.IsValid()) - throw JSONRPCError(-5, "Invalid ppcoin address"); + throw JSONRPCError(-5, "Invalid novacoin address"); string strAccount; @@ -516,12 +519,12 @@ Value getaccount(const Array& params, bool fHelp) { if (fHelp || params.size() != 1) throw runtime_error( - "getaccount \n" + "getaccount \n" "Returns the account associated with the given address."); CBitcoinAddress address(params[0].get_str()); if (!address.IsValid()) - throw JSONRPCError(-5, "Invalid ppcoin address"); + throw JSONRPCError(-5, "Invalid novacoin address"); string strAccount; map::iterator mi = pwalletMain->mapAddressBook.find(address); @@ -569,17 +572,17 @@ Value sendtoaddress(const Array& params, bool fHelp) { if (pwalletMain->IsCrypted() && (fHelp || params.size() < 2 || params.size() > 4)) throw runtime_error( - "sendtoaddress [comment] [comment-to]\n" + "sendtoaddress [comment] [comment-to]\n" " is a real and is rounded to the nearest 0.000001\n" "requires wallet passphrase to be set with walletpassphrase first"); if (!pwalletMain->IsCrypted() && (fHelp || params.size() < 2 || params.size() > 4)) throw runtime_error( - "sendtoaddress [comment] [comment-to]\n" + "sendtoaddress [comment] [comment-to]\n" " is a real and is rounded to the nearest 0.000001"); CBitcoinAddress address(params[0].get_str()); if (!address.IsValid()) - throw JSONRPCError(-5, "Invalid ppcoin address"); + throw JSONRPCError(-5, "Invalid novacoin address"); // Amount int64 nAmount = AmountFromValue(params[1]); @@ -607,7 +610,7 @@ Value signmessage(const Array& params, bool fHelp) { if (fHelp || params.size() != 2) throw runtime_error( - "signmessage \n" + "signmessage \n" "Sign a message with the private key of an address"); if (pwalletMain->IsLocked()) @@ -639,7 +642,7 @@ Value verifymessage(const Array& params, bool fHelp) { if (fHelp || params.size() != 3) throw runtime_error( - "verifymessage \n" + "verifymessage \n" "Verify a signed message"); string strAddress = params[0].get_str(); @@ -672,14 +675,14 @@ Value getreceivedbyaddress(const Array& params, bool fHelp) { if (fHelp || params.size() < 1 || params.size() > 2) throw runtime_error( - "getreceivedbyaddress [minconf=1]\n" - "Returns the total amount received by in transactions with at least [minconf] confirmations."); + "getreceivedbyaddress [minconf=1]\n" + "Returns the total amount received by in transactions with at least [minconf] confirmations."); // Bitcoin address CBitcoinAddress address = CBitcoinAddress(params[0].get_str()); CScript scriptPubKey; if (!address.IsValid()) - throw JSONRPCError(-5, "Invalid ppcoin address"); + throw JSONRPCError(-5, "Invalid novacoin address"); scriptPubKey.SetBitcoinAddress(address); if (!IsMine(*pwalletMain,scriptPubKey)) return (double)0.0; @@ -894,18 +897,18 @@ Value sendfrom(const Array& params, bool fHelp) { if (pwalletMain->IsCrypted() && (fHelp || params.size() < 3 || params.size() > 6)) throw runtime_error( - "sendfrom [minconf=1] [comment] [comment-to]\n" + "sendfrom [minconf=1] [comment] [comment-to]\n" " is a real and is rounded to the nearest 0.000001\n" "requires wallet passphrase to be set with walletpassphrase first"); if (!pwalletMain->IsCrypted() && (fHelp || params.size() < 3 || params.size() > 6)) throw runtime_error( - "sendfrom [minconf=1] [comment] [comment-to]\n" + "sendfrom [minconf=1] [comment] [comment-to]\n" " is a real and is rounded to the nearest 0.000001"); string strAccount = AccountFromValue(params[0]); CBitcoinAddress address(params[1].get_str()); if (!address.IsValid()) - throw JSONRPCError(-5, "Invalid ppcoin address"); + throw JSONRPCError(-5, "Invalid novacoin address"); int64 nAmount = AmountFromValue(params[2]); if (nAmount < MIN_TXOUT_AMOUNT) throw JSONRPCError(-101, "Send amount too small"); @@ -968,7 +971,7 @@ Value sendmany(const Array& params, bool fHelp) { CBitcoinAddress address(s.name_); if (!address.IsValid()) - throw JSONRPCError(-5, string("Invalid ppcoin address:")+s.name_); + throw JSONRPCError(-5, string("Invalid novacoin address:")+s.name_); if (setAddress.count(address)) throw JSONRPCError(-8, string("Invalid parameter, duplicated address: ")+s.name_); @@ -1016,7 +1019,7 @@ Value addmultisigaddress(const Array& params, bool fHelp) { string msg = "addmultisigaddress <'[\"key\",\"key\"]'> [account]\n" "Add a nrequired-to-sign multisignature address to the wallet\"\n" - "each key is a bitcoin address or hex-encoded public key\n" + "each key is a novacoin address or hex-encoded public key\n" "If [account] is specified, assign address to [account]."; throw runtime_error(msg); } @@ -1742,7 +1745,7 @@ Value encryptwallet(const Array& params, bool fHelp) // slack space in .dat files; that is bad if the old data is // unencrypted private keys. So: StartShutdown(); - return "wallet encrypted; ppcoin server stopping, restart to run with encrypted wallet"; + return "wallet encrypted; novacoin server stopping, restart to run with encrypted wallet"; } @@ -1750,8 +1753,8 @@ Value validateaddress(const Array& params, bool fHelp) { if (fHelp || params.size() != 1) throw runtime_error( - "validateaddress \n" - "Return information about ."); + "validateaddress \n" + "Return information about ."); CBitcoinAddress address(params[0].get_str()); bool isValid = address.IsValid(); @@ -1813,10 +1816,10 @@ Value getwork(const Array& params, bool fHelp) "If [data] is specified, tries to solve the block and returns true if it was successful."); if (vNodes.empty()) - throw JSONRPCError(-9, "PPCoin is not connected!"); + throw JSONRPCError(-9, "NovaCoin is not connected!"); if (IsInitialBlockDownload()) - throw JSONRPCError(-10, "PPCoin is downloading blocks..."); + throw JSONRPCError(-10, "NovaCoin is downloading blocks..."); typedef map > mapNewBlock_t; static mapNewBlock_t mapNewBlock; @@ -1927,10 +1930,10 @@ Value getmemorypool(const Array& params, bool fHelp) if (params.size() == 0) { if (vNodes.empty()) - throw JSONRPCError(-9, "PPCoin is not connected!"); + throw JSONRPCError(-9, "NovaCoin is not connected!"); if (IsInitialBlockDownload()) - throw JSONRPCError(-10, "PPCoin is downloading blocks..."); + throw JSONRPCError(-10, "NovaCoin is downloading blocks..."); static CReserveKey reservekey(pwalletMain); @@ -2334,7 +2337,7 @@ string HTTPPost(const string& strMsg, const map& mapRequestHeader { ostringstream s; s << "POST / HTTP/1.1\r\n" - << "User-Agent: ppcoin-json-rpc/" << FormatFullVersion() << "\r\n" + << "User-Agent: novacoin-json-rpc/" << FormatFullVersion() << "\r\n" << "Host: 127.0.0.1\r\n" << "Content-Type: application/json\r\n" << "Content-Length: " << strMsg.size() << "\r\n" @@ -2365,7 +2368,7 @@ static string HTTPReply(int nStatus, const string& strMsg) if (nStatus == 401) return strprintf("HTTP/1.0 401 Authorization Required\r\n" "Date: %s\r\n" - "Server: ppcoin-json-rpc/%s\r\n" + "Server: novacoin-json-rpc/%s\r\n" "WWW-Authenticate: Basic realm=\"jsonrpc\"\r\n" "Content-Type: text/html\r\n" "Content-Length: 296\r\n" @@ -2392,7 +2395,7 @@ static string HTTPReply(int nStatus, const string& strMsg) "Connection: close\r\n" "Content-Length: %d\r\n" "Content-Type: application/json\r\n" - "Server: ppcoin-json-rpc/%s\r\n" + "Server: novacoin-json-rpc/%s\r\n" "\r\n" "%s", nStatus, @@ -2606,7 +2609,7 @@ void ThreadRPCServer2(void* parg) { unsigned char rand_pwd[32]; RAND_bytes(rand_pwd, 32); - string strWhatAmI = "To use ppcoind"; + string strWhatAmI = "To use novacoind"; if (mapArgs.count("-server")) strWhatAmI = strprintf(_("To use the %s option"), "\"-server\""); else if (mapArgs.count("-daemon")) diff --git a/src/checkpoints.cpp b/src/checkpoints.cpp index 96db32e..80f6db6 100644 --- a/src/checkpoints.cpp +++ b/src/checkpoints.cpp @@ -354,7 +354,7 @@ namespace Checkpoints } // ppcoin: sync-checkpoint master key -const std::string CSyncCheckpoint::strMasterPubKey = "04c0c707c28533fd5c9f79d2d3a2d80dff259ad8f915241cd14608fb9bc07c74830efe8438f2b272a866b4af5e0c2cc2a9909972aefbd976937e39f46bb38c277c"; +const std::string CSyncCheckpoint::strMasterPubKey = "04a51b735f816de4ec3f891d5b38bbc91e1f7245c7c08d17990760b86b4d8fc3910a850ffecf73bfa8886f01739a0c4c4322201282d07b6e48ce931cc92af94850"; std::string CSyncCheckpoint::strMasterPrivKey = ""; diff --git a/src/checkpoints.h b/src/checkpoints.h index 3255412..3dec98b 100644 --- a/src/checkpoints.h +++ b/src/checkpoints.h @@ -1,5 +1,6 @@ // Copyright (c) 2009-2012 The Bitcoin developers // Copyright (c) 2011-2012 The PPCoin developers +// Copyright (c) 2012-2013 The NovaCoin developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. #ifndef BITCOIN_CHECKPOINT_H diff --git a/src/db.h b/src/db.h index db9fb8a..f507d1d 100644 --- a/src/db.h +++ b/src/db.h @@ -1,6 +1,7 @@ // Copyright (c) 2009-2010 Satoshi Nakamoto // Copyright (c) 2009-2012 The Bitcoin developers // Copyright (c) 2011-2012 The PPCoin developers +// Copyright (c) 2012-2013 The NovaCoin developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. #ifndef BITCOIN_DB_H diff --git a/src/init.cpp b/src/init.cpp index 44e4f80..24d9792 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -1,6 +1,7 @@ // Copyright (c) 2009-2010 Satoshi Nakamoto // Copyright (c) 2009-2012 The Bitcoin developers // Copyright (c) 2011-2012 The PPCoin developers +// Copyright (c) 2012-2013 The NovaCoin developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. #include "db.h" @@ -75,7 +76,7 @@ void Shutdown(void* parg) delete pwalletMain; CreateThread(ExitTimeout, NULL); Sleep(50); - printf("PPCoin exiting\n\n"); + printf("NovaCoin exiting\n\n"); fExit = true; #ifndef QT_GUI // ensure non UI client get's exited here, but let Bitcoin-Qt reach return 0; in bitcoin.cpp @@ -177,15 +178,15 @@ bool AppInit2(int argc, char* argv[]) if (mapArgs.count("-?") || mapArgs.count("--help")) { string strUsage = string() + - _("PPCoin version") + " " + FormatFullVersion() + "\n\n" + + _("NovaCoin version") + " " + FormatFullVersion() + "\n\n" + _("Usage:") + "\t\t\t\t\t\t\t\t\t\t\n" + - " ppcoind [options] \t " + "\n" + - " ppcoind [options] [params]\t " + _("Send command to -server or ppcoind") + "\n" + - " ppcoind [options] help \t\t " + _("List commands") + "\n" + - " ppcoind [options] help \t\t " + _("Get help for a command") + "\n" + + " novacoind [options] \t " + "\n" + + " novacoind [options] [params]\t " + _("Send command to -server or novacoind") + "\n" + + " novacoind [options] help \t\t " + _("List commands") + "\n" + + " novacoind [options] help \t\t " + _("Get help for a command") + "\n" + _("Options:") + "\n" + - " -conf= \t\t " + _("Specify configuration file (default: ppcoin.conf)") + "\n" + - " -pid= \t\t " + _("Specify pid file (default: ppcoind.pid)") + "\n" + + " -conf= \t\t " + _("Specify configuration file (default: novacoin.conf)") + "\n" + + " -pid= \t\t " + _("Specify pid file (default: novacoind.pid)") + "\n" + " -gen \t\t " + _("Generate coins") + "\n" + " -gen=0 \t\t " + _("Don't generate coins") + "\n" + " -min \t\t " + _("Start minimized") + "\n" + @@ -196,7 +197,7 @@ bool AppInit2(int argc, char* argv[]) " -timeout= \t " + _("Specify connection timeout (in milliseconds)") + "\n" + " -proxy= \t " + _("Connect through socks4 proxy") + "\n" + " -dns \t " + _("Allow DNS lookups for addnode and connect") + "\n" + - " -port= \t\t " + _("Listen for connections on (default: 9901 or testnet: 9903)") + "\n" + + " -port= \t\t " + _("Listen for connections on (default: 7777 or testnet: 17777)") + "\n" + " -maxconnections=\t " + _("Maintain at most connections to peers (default: 125)") + "\n" + " -addnode= \t " + _("Add a node to connect to and attempt to keep the connection open") + "\n" + " -connect= \t\t " + _("Connect only to the specified node") + "\n" + @@ -204,7 +205,7 @@ bool AppInit2(int argc, char* argv[]) #ifdef QT_GUI " -lang= \t\t " + _("Set language, for example \"de_DE\" (default: system locale)") + "\n" + #endif - " -dnsseed \t " + _("Find peers using DNS lookup (default: 1)") + "\n" + + " -dnsseed \t " + _("Find peers using DNS lookup (default: 0)") + "\n" + " -banscore= \t " + _("Threshold for disconnecting misbehaving peers (default: 100)") + "\n" + " -bantime= \t " + _("Number of seconds to keep misbehaving peers from reconnecting (default: 86400)") + "\n" + " -maxreceivebuffer=\t " + _("Maximum per-connection receive buffer, *1000 bytes (default: 10000)") + "\n" + @@ -329,7 +330,7 @@ bool AppInit2(int argc, char* argv[]) if (!fDebug) ShrinkDebugFile(); printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"); - printf("PPCoin version %s (%s)\n", FormatFullVersion().c_str(), CLIENT_DATE.c_str()); + printf("NovaCoin version %s (%s)\n", FormatFullVersion().c_str(), CLIENT_DATE.c_str()); printf("Default data directory %s\n", GetDefaultDataDir().string().c_str()); if (GetBoolArg("-loadblockindextest")) @@ -347,7 +348,7 @@ bool AppInit2(int argc, char* argv[]) static boost::interprocess::file_lock lock(pathLockFile.string().c_str()); if (!lock.try_lock()) { - ThreadSafeMessageBox(strprintf(_("Cannot obtain a lock on data directory %s. PPCoin is probably already running."), GetDataDir().string().c_str()), _("PPCoin"), wxOK|wxMODAL); + ThreadSafeMessageBox(strprintf(_("Cannot obtain a lock on data directory %s. NovaCoin is probably already running."), GetDataDir().string().c_str()), _("NovaCoin"), wxOK|wxMODAL); return false; } @@ -356,7 +357,7 @@ bool AppInit2(int argc, char* argv[]) // Load data files // if (fDaemon) - fprintf(stdout, "ppcoin server starting\n"); + fprintf(stdout, "novacoin server starting\n"); int64 nStart; InitMessage(_("Loading addresses...")); @@ -393,12 +394,12 @@ bool AppInit2(int argc, char* argv[]) if (nLoadWalletRet == DB_CORRUPT) strErrors << _("Error loading wallet.dat: Wallet corrupted") << "\n"; else if (nLoadWalletRet == DB_TOO_NEW) - strErrors << _("Error loading wallet.dat: Wallet requires newer version of PPCoin") << "\n"; + strErrors << _("Error loading wallet.dat: Wallet requires newer version of NovaCoin") << "\n"; else if (nLoadWalletRet == DB_NEED_REWRITE) { - strErrors << _("Wallet needed to be rewritten: restart PPCoin to complete") << "\n"; + strErrors << _("Wallet needed to be rewritten: restart NovaCoin to complete") << "\n"; printf("%s", strErrors.str().c_str()); - ThreadSafeMessageBox(strErrors.str(), _("PPCoin"), wxOK | wxICON_ERROR | wxMODAL); + ThreadSafeMessageBox(strErrors.str(), _("NovaCoin"), wxOK | wxICON_ERROR | wxMODAL); return false; } else @@ -470,7 +471,7 @@ bool AppInit2(int argc, char* argv[]) if (!strErrors.str().empty()) { - ThreadSafeMessageBox(strErrors.str(), _("PPCoin"), wxOK | wxICON_ERROR | wxMODAL); + ThreadSafeMessageBox(strErrors.str(), _("NovaCoin"), wxOK | wxICON_ERROR | wxMODAL); return false; } @@ -557,7 +558,7 @@ bool AppInit2(int argc, char* argv[]) std::string strError; if (!BindListenPort(strError)) { - ThreadSafeMessageBox(strError, _("PPCoin"), wxOK | wxMODAL); + ThreadSafeMessageBox(strError, _("NovaCoin"), wxOK | wxMODAL); return false; } } @@ -577,11 +578,11 @@ bool AppInit2(int argc, char* argv[]) { if (!ParseMoney(mapArgs["-paytxfee"], nTransactionFee) || nTransactionFee < MIN_TX_FEE) { - ThreadSafeMessageBox(_("Invalid amount for -paytxfee="), _("PPCoin"), wxOK | wxMODAL); + ThreadSafeMessageBox(_("Invalid amount for -paytxfee="), _("NovaCoin"), wxOK | wxMODAL); return false; } if (nTransactionFee > 0.25 * COIN) - ThreadSafeMessageBox(_("Warning: -paytxfee is set very high. This is the transaction fee you will pay if you send a transaction."), _("PPCoin"), wxOK | wxICON_EXCLAMATION | wxMODAL); + ThreadSafeMessageBox(_("Warning: -paytxfee is set very high. This is the transaction fee you will pay if you send a transaction."), _("NovaCoin"), wxOK | wxICON_EXCLAMATION | wxMODAL); } if (mapArgs.count("-reservebalance")) // ppcoin: reserve balance amount @@ -589,7 +590,7 @@ bool AppInit2(int argc, char* argv[]) int64 nReserveBalance = 0; if (!ParseMoney(mapArgs["-reservebalance"], nReserveBalance)) { - ThreadSafeMessageBox(_("Invalid amount for -reservebalance="), _("PPCoin"), wxOK | wxMODAL); + ThreadSafeMessageBox(_("Invalid amount for -reservebalance="), _("NovaCoin"), wxOK | wxMODAL); return false; } } @@ -597,7 +598,7 @@ bool AppInit2(int argc, char* argv[]) if (mapArgs.count("-checkpointkey")) // ppcoin: checkpoint master priv key { if (!Checkpoints::SetCheckpointPrivKey(GetArg("-checkpointkey", ""))) - ThreadSafeMessageBox(_("Unable to sign checkpoint, wrong checkpointkey?\n"), _("PPCoin"), wxOK | wxMODAL); + ThreadSafeMessageBox(_("Unable to sign checkpoint, wrong checkpointkey?\n"), _("NovaCoin"), wxOK | wxMODAL); } // @@ -609,7 +610,7 @@ bool AppInit2(int argc, char* argv[]) RandAddSeedPerfmon(); if (!CreateThread(StartNode, NULL)) - ThreadSafeMessageBox(_("Error: CreateThread(StartNode) failed"), _("PPCoin"), wxOK | wxMODAL); + ThreadSafeMessageBox(_("Error: CreateThread(StartNode) failed"), _("NovaCoin"), wxOK | wxMODAL); if (fServer) CreateThread(ThreadRPCServer, NULL); diff --git a/src/irc.cpp b/src/irc.cpp index d8129c6..febe9b6 100644 --- a/src/irc.cpp +++ b/src/irc.cpp @@ -210,7 +210,7 @@ void ThreadIRCSeed2(void* parg) if (mapArgs.count("-connect") || fNoListen) return; - if (!GetBoolArg("-irc", false)) + if (!GetBoolArg("-irc", true)) return; printf("ThreadIRCSeed started\n"); @@ -293,13 +293,16 @@ void ThreadIRCSeed2(void* parg) } if (fTestNet) { - Send(hSocket, "JOIN #bitcoinTEST\r"); - Send(hSocket, "WHO #bitcoinTEST\r"); + Send(hSocket, "JOIN #novacoinTEST\r"); + Send(hSocket, "WHO #novacoinTEST\r"); } else { - // randomly join #bitcoin00-#bitcoin99 - int channel_number = GetRandInt(100); - Send(hSocket, strprintf("JOIN #bitcoin%02d\r", channel_number).c_str()); - Send(hSocket, strprintf("WHO #bitcoin%02d\r", channel_number).c_str()); + // randomly join #novacoin00-#novacoin05 + // int channel_number = GetRandInt(5); + + // Channel number is always 0 for initial release + int channel_number = 0; + Send(hSocket, strprintf("JOIN #novacoin%02d\r", channel_number).c_str()); + Send(hSocket, strprintf("WHO #novacoin%02d\r", channel_number).c_str()); } int64 nStart = GetTime(); diff --git a/src/main.cpp b/src/main.cpp index 8341f4c..c02298b 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -31,8 +31,8 @@ unsigned int nTransactionsUpdated = 0; map mapBlockIndex; set > setStakeSeen; uint256 hashGenesisBlock = hashGenesisBlockOfficial; -static CBigNum bnProofOfWorkLimit(~uint256(0) >> 32); -static CBigNum bnInitialHashTarget(~uint256(0) >> 40); +CBigNum bnProofOfWorkLimit(~uint256(0) >> 20); +CBigNum bnInitialHashTarget(~uint256(0) >> 20); unsigned int nStakeMinAge = STAKE_MIN_AGE; int nCoinbaseMaturity = COINBASE_MATURITY_PPC; CBlockIndex* pindexGenesisBlock = NULL; @@ -55,7 +55,7 @@ map > mapOrphanTransactionsByPrev; // Constant stuff for coinbase transactions we create: CScript COINBASE_FLAGS; -const string strMessageMagic = "PPCoin Signed Message:\n"; +const string strMessageMagic = "NovaCoin Signed Message:\n"; double dHashesPerSec; int64 nHPSTimerStart; @@ -832,9 +832,13 @@ int64 GetProofOfWorkReward(unsigned int nBits) CBigNum bnTargetLimit = bnProofOfWorkLimit; bnTargetLimit.SetCompact(bnTargetLimit.GetCompact()); - // ppcoin: subsidy is cut in half every 16x multiply of difficulty + // ppcoin: subsidy is cut in half every 64x multiply of difficulty // A reasonably continuous curve is used to avoid shock to market - // (nSubsidyLimit / nSubsidy) ** 4 == bnProofOfWorkLimit / bnTarget + // (nSubsidyLimit / nSubsidy) ** 6 == bnProofOfWorkLimit / bnTarget + // + // Human readable form: + // + // nSubsidy = 100 / (diff ^ 1/6) CBigNum bnLowerBound = CENT; CBigNum bnUpperBound = bnSubsidyLimit; while (bnLowerBound + CENT <= bnUpperBound) @@ -842,7 +846,7 @@ int64 GetProofOfWorkReward(unsigned int nBits) CBigNum bnMidValue = (bnLowerBound + bnUpperBound) / 2; if (fDebug && GetBoolArg("-printcreation")) printf("GetProofOfWorkReward() : lower=%"PRI64d" upper=%"PRI64d" mid=%"PRI64d"\n", bnLowerBound.getuint64(), bnUpperBound.getuint64(), bnMidValue.getuint64()); - if (bnMidValue * bnMidValue * bnMidValue * bnMidValue * bnTargetLimit > bnSubsidyLimit * bnSubsidyLimit * bnSubsidyLimit * bnSubsidyLimit * bnTarget) + if (bnMidValue * bnMidValue * bnMidValue * bnMidValue * bnMidValue * bnMidValue * bnTargetLimit > bnSubsidyLimit * bnSubsidyLimit * bnSubsidyLimit * bnSubsidyLimit * bnSubsidyLimit * bnSubsidyLimit * bnTarget) bnUpperBound = bnMidValue; else bnLowerBound = bnMidValue; @@ -859,7 +863,7 @@ int64 GetProofOfWorkReward(unsigned int nBits) // ppcoin: miner's coin stake is rewarded based on coin age spent (coin-days) int64 GetProofOfStakeReward(int64 nCoinAge) { - static int64 nRewardCoinYear = CENT; // creation amount per coin-year + static int64 nRewardCoinYear = 5 * CENT; // creation amount per coin-year int64 nSubsidy = nCoinAge * 33 / (365 * 33 + 8) * nRewardCoinYear; if (fDebug && GetBoolArg("-printcreation")) printf("GetProofOfStakeReward(): create=%s nCoinAge=%"PRI64d"\n", FormatMoney(nSubsidy).c_str(), nCoinAge); @@ -1347,17 +1351,15 @@ bool CBlock::ConnectBlock(CTxDB& txdb, CBlockIndex* pindex) // already refuses previously-known transaction id's entirely. // This rule applies to all blocks whose timestamp is after March 15, 2012, 0:00 UTC. // On testnet it is enabled as of februari 20, 2012, 0:00 UTC. - if (pindex->nTime > 1331769600 || (fTestNet && pindex->nTime > 1329696000)) + + BOOST_FOREACH(CTransaction& tx, vtx) { - BOOST_FOREACH(CTransaction& tx, vtx) + CTxIndex txindexOld; + if (txdb.ReadTxIndex(tx.GetHash(), txindexOld)) { - CTxIndex txindexOld; - if (txdb.ReadTxIndex(tx.GetHash(), txindexOld)) - { - BOOST_FOREACH(CDiskTxPos &pos, txindexOld.vSpent) - if (pos.IsNull()) - return false; - } + BOOST_FOREACH(CDiskTxPos &pos, txindexOld.vSpent) + if (pos.IsNull()) + return false; } } @@ -1983,6 +1985,14 @@ bool CBlock::AcceptBlock() if (!Checkpoints::CheckSync(hash, pindexPrev)) return error("AcceptBlock() : rejected by synchronized checkpoint"); + if(nHeight > 0) + { + CScript expect = CScript() << nHeight; + + if (!std::equal(expect.begin(), expect.end(), vtx[0].vin[0].scriptSig.begin())) + return DoS(100, error("AcceptBlock() : block height mismatch in coinbase")); + } + // Write block to history file if (!CheckDiskSpace(::GetSerializeSize(*this, SER_DISK, CLIENT_VERSION))) return error("AcceptBlock() : out of disk space"); @@ -2184,7 +2194,7 @@ bool CheckDiskSpace(uint64 nAdditionalBytes) string strMessage = _("Warning: Disk space is low"); strMiscWarning = strMessage; printf("*** %s\n", strMessage.c_str()); - ThreadSafeMessageBox(strMessage, "PPCoin", wxOK | wxICON_EXCLAMATION | wxMODAL); + ThreadSafeMessageBox(strMessage, "NovaCoin", wxOK | wxICON_EXCLAMATION | wxMODAL); StartShutdown(); return false; } @@ -2237,14 +2247,12 @@ bool LoadBlockIndex(bool fAllowNew) if (fTestNet) { hashGenesisBlock = hashGenesisBlockTestNet; - bnProofOfWorkLimit = CBigNum(~uint256(0) >> 28); nStakeMinAge = 60 * 60 * 24; // test net min age is 1 day nCoinbaseMaturity = 60; - bnInitialHashTarget = CBigNum(~uint256(0) >> 29); } printf("%s Network: genesis=0x%s nBitsLimit=0x%08x nBitsInitial=0x%08x nStakeMinAge=%d nCoinbaseMaturity=%d\n", - fTestNet? "Test" : "PPCoin", hashGenesisBlock.ToString().substr(0, 20).c_str(), bnProofOfWorkLimit.GetCompact(), bnInitialHashTarget.GetCompact(), nStakeMinAge, nCoinbaseMaturity); + fTestNet? "Test" : "NovaCoin", hashGenesisBlock.ToString().substr(0, 20).c_str(), bnProofOfWorkLimit.GetCompact(), bnInitialHashTarget.GetCompact(), nStakeMinAge, nCoinbaseMaturity); // // Load block index @@ -2270,9 +2278,9 @@ bool LoadBlockIndex(bool fAllowNew) // vMerkleTree: 4a5e1e // Genesis block - const char* pszTimestamp = "Matonis 07-AUG-2012 Parallel Currencies And The Roadmap To Monetary Freedom"; + const char* pszTimestamp = "https://bitcointalk.org/index.php?topic=134179.msg1502196#msg1502196"; CTransaction txNew; - txNew.nTime = 1345083810; + txNew.nTime = 1360105017; txNew.vin.resize(1); txNew.vout.resize(1); txNew.vin[0].scriptSig = CScript() << 486604799 << CBigNum(9999) << vector((const unsigned char*)pszTimestamp, (const unsigned char*)pszTimestamp + strlen(pszTimestamp)); @@ -2282,21 +2290,15 @@ bool LoadBlockIndex(bool fAllowNew) block.hashPrevBlock = 0; block.hashMerkleRoot = block.BuildMerkleTree(); block.nVersion = 1; - block.nTime = 1345084287; + block.nTime = 1360105017; block.nBits = bnProofOfWorkLimit.GetCompact(); - block.nNonce = 2179302059; - - if (fTestNet) - { - block.nTime = 1345090000; - block.nNonce = 122894938; - } + block.nNonce = 1575379; //// debug print printf("%s\n", block.GetHash().ToString().c_str()); printf("%s\n", hashGenesisBlock.ToString().c_str()); printf("%s\n", block.hashMerkleRoot.ToString().c_str()); - assert(block.hashMerkleRoot == uint256("0x3c2d8f85fab4d17aac558cc648a1a58acff0de6deb890c29985690052c5993c2")); + assert(block.hashMerkleRoot == uint256("0x4cb33b3b6a861dcbc685d3e614a9cafb945738d6833f182855679f2fad02057b")); block.print(); assert(block.GetHash() == hashGenesisBlock); assert(block.CheckBlock()); @@ -2458,14 +2460,14 @@ string GetWarnings(string strFor) if (Checkpoints::IsMatureSyncCheckpoint() && !fTestNet) { nPriority = 2000; - strStatusBar = strRPC = "WARNING: Checkpoint is too old. Wait for block chain to download, or notify developers of the issue."; + strStatusBar = strRPC = "WARNING: Checkpoint is too old. Wait for block chain download, or notify developers."; } // ppcoin: if detected invalid checkpoint enter safe mode if (Checkpoints::hashInvalidCheckpoint != 0) { nPriority = 3000; - strStatusBar = strRPC = "WARNING: Invalid checkpoint found! Displayed transactions may not be correct! You may need to upgrade, or notify developers of the issue."; + strStatusBar = strRPC = "WARNING: Invalid checkpoint found! Displayed transactions may not be correct! You may need to upgrade, or notify developers."; } // Alerts @@ -3534,39 +3536,6 @@ void SHA256Transform(void* pstate, void* pinput, const void* pinit) ((uint32_t*)pstate)[i] = ctx.h[i]; } -// -// ScanHash scans nonces looking for a hash with at least some zero bits. -// It operates on big endian data. Caller does the byte reversing. -// All input buffers are 16-byte aligned. nNonce is usually preserved -// between calls, but periodically or if nNonce is 0xffff0000 or above, -// the block is rebuilt and nNonce starts over at zero. -// -unsigned int static ScanHash_CryptoPP(char* pmidstate, char* pdata, char* phash1, char* phash, unsigned int& nHashesDone) -{ - unsigned int& nNonce = *(unsigned int*)(pdata + 12); - for (;;) - { - // Crypto++ SHA-256 - // Hash pdata using pmidstate as the starting state into - // preformatted buffer phash1, then hash phash1 into phash - nNonce++; - SHA256Transform(phash1, pdata, pmidstate); - SHA256Transform(phash, phash1, pSHA256InitState); - - // Return the nonce if the hash has at least some zero bits, - // caller will check if it has enough to reach the target - if (((unsigned short*)phash)[14] == 0) - return nNonce; - - // If nothing found after trying for a while, return -1 - if ((nNonce & 0xffff) == 0) - { - nHashesDone = 0xffff+1; - return (unsigned int) -1; - } - } -} - // Some explaining would be appreciated class COrphan { @@ -3805,7 +3774,10 @@ void IncrementExtraNonce(CBlock* pblock, CBlockIndex* pindexPrev, unsigned int& hashPrevBlock = pblock->hashPrevBlock; } ++nExtraNonce; - pblock->vtx[0].vin[0].scriptSig = (CScript() << pblock->nTime << CBigNum(nExtraNonce)) + COINBASE_FLAGS; + + unsigned int nHeight = pindexPrev->nHeight+1; // Height first in coinbase required for block.version=2 + pblock->vtx[0].vin[0].scriptSig = (CScript() << nHeight << CBigNum(nExtraNonce)) + COINBASE_FLAGS; + assert(pblock->vtx[0].vin[0].scriptSig.size() <= 100); pblock->hashMerkleRoot = pblock->BuildMerkleTree(); @@ -3898,12 +3870,14 @@ bool CheckWork(CBlock* pblock, CWallet& wallet, CReserveKey& reservekey) void static ThreadBitcoinMiner(void* parg); -static bool fGenerateBitcoins = false; -static bool fLimitProcessors = false; -static int nLimitProcessors = -1; +bool fGenerateBitcoins = false; +bool fLimitProcessors = false; +int nLimitProcessors = -1; void BitcoinMiner(CWallet *pwallet, bool fProofOfStake) { + void *scratchbuf = scrypt_buffer_alloc(); + printf("CPUMiner started for proof-of-%s\n", fProofOfStake? "stake" : "work"); SetThreadPriority(THREAD_PRIORITY_LOWEST); @@ -3984,28 +3958,33 @@ void BitcoinMiner(CWallet *pwallet, bool fProofOfStake) // int64 nStart = GetTime(); uint256 hashTarget = CBigNum().SetCompact(pblock->nBits).getuint256(); - uint256 hashbuf[2]; - uint256& hash = *alignup<16>(hashbuf); + + unsigned int max_nonce = 0xffff0000; + block_header res_header; + uint256 result; + loop { unsigned int nHashesDone = 0; unsigned int nNonceFound; - // Crypto++ SHA-256 - nNonceFound = ScanHash_CryptoPP(pmidstate, pdata + 64, phash1, - (char*)&hash, nHashesDone); + nNonceFound = scanhash_scrypt( + (block_header *)&pblock->nVersion, + scratchbuf, + max_nonce, + nHashesDone, + UBEGIN(result), + &res_header + ); // Check if something found if (nNonceFound != (unsigned int) -1) { - for (unsigned int i = 0; i < sizeof(hash)/4; i++) - ((unsigned int*)&hash)[i] = ByteReverse(((unsigned int*)&hash)[i]); - - if (hash <= hashTarget) + if (result <= hashTarget) { // Found a solution - pblock->nNonce = ByteReverse(nNonceFound); - assert(hash == pblock->GetHash()); + pblock->nNonce = nNonceFound; + assert(result == pblock->GetHash()); if (!pblock->SignBlock(*pwalletMain)) { strMintWarning = strMintMessage; @@ -4074,6 +4053,8 @@ void BitcoinMiner(CWallet *pwallet, bool fProofOfStake) break; // need to update coinbase timestamp } } + + scrypt_buffer_free(scratchbuf); } void static ThreadBitcoinMiner(void* parg) diff --git a/src/main.h b/src/main.h index 60e4832..6636e61 100644 --- a/src/main.h +++ b/src/main.h @@ -1,6 +1,7 @@ // Copyright (c) 2009-2010 Satoshi Nakamoto // Copyright (c) 2009-2012 The Bitcoin developers // Copyright (c) 2011-2012 The PPCoin developers +// Copyright (c) 2012-2013 The NovaCoin developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. #ifndef BITCOIN_MAIN_H @@ -9,6 +10,7 @@ #include "bignum.h" #include "net.h" #include "script.h" +#include "scrypt_mine.h" #ifdef WIN32 #include /* for _commit */ @@ -35,7 +37,7 @@ static const unsigned int MAX_ORPHAN_TRANSACTIONS = MAX_BLOCK_SIZE/100; static const int64 MIN_TX_FEE = CENT; static const int64 MIN_RELAY_TX_FEE = CENT; static const int64 MAX_MONEY = 2000000000 * COIN; -static const int64 MAX_MINT_PROOF_OF_WORK = 9999 * COIN; +static const int64 MAX_MINT_PROOF_OF_WORK = 100 * COIN; static const int64 MIN_TXOUT_AMOUNT = MIN_TX_FEE; inline bool MoneyRange(int64 nValue) { return (nValue >= 0 && nValue <= MAX_MONEY); } static const int COINBASE_MATURITY_PPC = 500; @@ -47,18 +49,13 @@ static const int fHaveUPnP = true; static const int fHaveUPnP = false; #endif -static const uint256 hashGenesisBlockOfficial("0x0000000032fe677166d54963b62a4677d8957e87c508eaa4fd7eb1c880cd27e3"); -static const uint256 hashGenesisBlockTestNet("0x00000001f757bb737f6596503e17cd17b0658ce630cc727c0cca81aec47c9f06"); +static const uint256 hashGenesisBlockOfficial("0x00000a060336cbb72fe969666d337b87198b1add2abaa59cca226820b32933a4"); +static const uint256 hashGenesisBlockTestNet("0x00000a060336cbb72fe969666d337b87198b1add2abaa59cca226820b32933a4"); static const int64 nMaxClockDrift = 2 * 60 * 60; // two hours extern CScript COINBASE_FLAGS; - - - - - extern CCriticalSection cs_main; extern std::map mapBlockIndex; extern std::set > setStakeSeen; @@ -86,9 +83,9 @@ extern std::map mapOrphanBlocks; // Settings extern int64 nTransactionFee; - - - +extern bool fGenerateBitcoins; +extern bool fLimitProcessors; +extern int nLimitProcessors; class CReserveKey; class CTxDB; @@ -927,7 +924,7 @@ public: void SetNull() { - nVersion = 1; + nVersion = 2; hashPrevBlock = 0; hashMerkleRoot = 0; nTime = 0; @@ -946,7 +943,14 @@ public: uint256 GetHash() const { - return Hash(BEGIN(nVersion), END(nNonce)); + uint256 thash; + void * scratchbuff = scrypt_buffer_alloc(); + + scrypt_hash(CVOIDBEGIN(nVersion), sizeof(block_header), UINTBEGIN(thash), scratchbuff); + + scrypt_buffer_free(scratchbuff); + + return thash; } int64 GetBlockTime() const diff --git a/src/makefile.linux-mingw b/src/makefile.linux-mingw index 504aa72..49c9c53 100644 --- a/src/makefile.linux-mingw +++ b/src/makefile.linux-mingw @@ -56,6 +56,8 @@ OBJS= \ obj/irc.o \ obj/keystore.o \ obj/main.o \ + obj/scrypt_mine.o \ + obj/scrypt-x86.o \ obj/net.o \ obj/protocol.o \ obj/bitcoinrpc.o \ @@ -64,9 +66,11 @@ OBJS= \ obj/util.o \ obj/wallet.o \ obj/walletdb.o \ - obj/noui.o + obj/noui.o \ + obj/pbkdf2.o -all: ppcoind.exe + +all: novacoind.exe obj/build.h: FORCE /bin/sh ../share/genbuild.sh obj/build.h @@ -76,7 +80,7 @@ DEFS += -DHAVE_BUILD_INFO obj/%.o: %.cpp $(HEADERS) i586-mingw32msvc-g++ -c $(CFLAGS) -o $@ $< -ppcoind.exe: $(OBJS:obj/%=obj/%) +novacoind.exe: $(OBJS:obj/%=obj/%) i586-mingw32msvc-g++ $(CFLAGS) -o $@ $(LIBPATHS) $^ $(LIBS) TESTOBJS := $(patsubst test/%.cpp,obj-test/%.o,$(wildcard test/*.cpp)) @@ -90,7 +94,7 @@ test_bitcoin.exe: $(TESTOBJS) $(filter-out obj/init.o,$(OBJS:obj/%=obj/%)) clean: -rm -f obj/*.o - -rm -f ppcoind.exe + -rm -f novacoind.exe -rm -f obj-test/*.o -rm -f test_bitcoin.exe -rm -f src/build.h diff --git a/src/makefile.mingw b/src/makefile.mingw index 4f5202c..2ba6e6d 100644 --- a/src/makefile.mingw +++ b/src/makefile.mingw @@ -109,6 +109,8 @@ OBJS= \ obj/init.o \ obj/irc.o \ obj/keystore.o \ + obj/scrypt_mine.o \ + obj/scrypt-x86.o \ obj/main.o \ obj/net.o \ obj/protocol.o \ @@ -118,15 +120,15 @@ OBJS= \ obj/util.o \ obj/wallet.o \ obj/walletdb.o \ - obj/noui.o + obj/noui.o \ + obj/pbkdf2.o - -all: ppcoind.exe +all: novacoind.exe obj/%.o: %.cpp $(HEADERS) g++ -c $(CFLAGS) -o $@ $< -ppcoind.exe: $(OBJS:obj/%=obj/%) +novacoind.exe: $(OBJS:obj/%=obj/%) g++ $(CFLAGS) -o $@ $(LIBPATHS) $^ $(LIBS) TESTOBJS := $(patsubst test/%.cpp,obj-test/%.o,$(wildcard test/*.cpp)) @@ -138,7 +140,7 @@ test_bitcoin.exe: $(TESTOBJS) $(filter-out obj/init.o,$(OBJS:obj/%=obj/%)) g++ $(CFLAGS) -o $@ $(LIBPATHS) $^ -lboost_unit_test_framework $(LIBS) clean: - -del /Q ppcoind test_bitcoin + -del /Q novacoind test_bitcoin -del /Q obj\* -del /Q obj-test\* -del /Q build.h diff --git a/src/makefile.osx b/src/makefile.osx index 11c6248..56dd9ff 100644 --- a/src/makefile.osx +++ b/src/makefile.osx @@ -80,6 +80,8 @@ OBJS= \ obj/irc.o \ obj/keystore.o \ obj/main.o \ + obj/scrypt_mine.o \ + obj/scrypt-$(HOSTTYPE).o \ obj/net.o \ obj/protocol.o \ obj/bitcoinrpc.o \ @@ -88,7 +90,9 @@ OBJS= \ obj/util.o \ obj/wallet.o \ obj/walletdb.o \ - obj/noui.o + obj/noui.o \ + obj/pbkdf2.o + ifdef USE_UPNP DEFS += -DUSE_UPNP=$(USE_UPNP) diff --git a/src/makefile.unix b/src/makefile.unix index 1dd8fda..4f51ba4 100644 --- a/src/makefile.unix +++ b/src/makefile.unix @@ -10,6 +10,8 @@ DEFS=-DBOOST_SPIRIT_THREADSAFE DEFS += $(addprefix -I,$(CURDIR) $(CURDIR)/obj $(BOOST_INCLUDE_PATH) $(BDB_INCLUDE_PATH) $(OPENSSL_INCLUDE_PATH)) LIBS = $(addprefix -L,$(BOOST_LIB_PATH) $(BDB_LIB_PATH) $(OPENSSL_LIB_PATH)) +HOSTTYPE = $(shell arch) + TESTDEFS = -DTEST_DATA_DIR=$(abspath test/data) LMODE = dynamic @@ -99,6 +101,8 @@ OBJS= \ obj/irc.o \ obj/keystore.o \ obj/main.o \ + obj/scrypt_mine.o \ + obj/scrypt-${HOSTTYPE}.o \ obj/net.o \ obj/protocol.o \ obj/bitcoinrpc.o \ @@ -107,10 +111,12 @@ OBJS= \ obj/util.o \ obj/wallet.o \ obj/walletdb.o \ - obj/noui.o + obj/noui.o \ + obj/pbkdf2.o + -all: ppcoind +all: novacoind # auto-generated dependencies: -include obj/*.P @@ -128,7 +134,13 @@ obj/%.o: %.cpp -e '/^$$/ d' -e 's/$$/ :/' < $(@:%.o=%.d) >> $(@:%.o=%.P); \ rm -f $(@:%.o=%.d) -ppcoind: $(OBJS:obj/%=obj/%) +obj/scrypt-x86.o: scrypt-x86.S + $(CXX) -c $(xCXXFLAGS) -MMD -o $@ $< + +obj/scrypt-x86_64.o: scrypt-x86_64.S + $(CXX) -c $(xCXXFLAGS) -MMD -o $@ $< + +novacoind: $(OBJS:obj/%=obj/%) $(CXX) $(xCXXFLAGS) -rdynamic -o $@ $^ $(LDFLAGS) $(LIBS) TESTOBJS := $(patsubst test/%.cpp,obj-test/%.o,$(wildcard test/*.cpp)) @@ -140,11 +152,11 @@ obj-test/%.o: test/%.cpp -e '/^$$/ d' -e 's/$$/ :/' < $(@:%.o=%.d) >> $(@:%.o=%.P); \ rm -f $(@:%.o=%.d) -test_ppcoin: $(TESTOBJS) $(filter-out obj/init.o,$(OBJS:obj/%=obj/%)) +test_novacoin: $(TESTOBJS) $(filter-out obj/init.o,$(OBJS:obj/%=obj/%)) $(CXX) $(xCXXFLAGS) -o $@ $(LIBPATHS) $^ -Wl,-B$(LMODE) -lboost_unit_test_framework $(LDFLAGS) $(LIBS) clean: - -rm -f ppcoind test_ppcoin + -rm -f novacoind test_novacoin -rm -f obj/*.o -rm -f obj-test/*.o -rm -f obj/*.P diff --git a/src/net.cpp b/src/net.cpp index 6ef3992..22f3777 100644 --- a/src/net.cpp +++ b/src/net.cpp @@ -1,6 +1,7 @@ // Copyright (c) 2009-2010 Satoshi Nakamoto // Copyright (c) 2009-2012 The Bitcoin developers // Copyright (c) 2011-2012 The PPCoin developers +// Copyright (c) 2012-2013 The NovaCoin developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -250,8 +251,8 @@ bool GetMyExternalIP(CNetAddr& ipRet) void ThreadGetMyExternalIP(void* parg) { - // Wait for IRC to get it first - disabled with ppcoin - if (false && GetBoolArg("-irc", false)) + // Wait for IRC to get it first + if (GetBoolArg("-irc", true)) { for (int i = 0; i < 2 * 60; i++) { @@ -888,7 +889,7 @@ void ThreadMapPort2(void* parg) } } - string strDesc = "PPCoin " + FormatFullVersion(); + string strDesc = "NovaCoin " + FormatFullVersion(); #ifndef UPNPDISCOVER_SUCCESS /* miniupnpc 1.5 */ r = UPNP_AddPortMapping(urls.controlURL, data.first.servicetype, @@ -981,8 +982,7 @@ void MapPort(bool /* unused fMapPort */) // The second name should resolve to a list of seed addresses. // testnet dns seed begins with 't', all else are ppcoin dns seeds. static const char *strDNSSeed[][2] = { - {"seed", "seed.ppcoin.net"}, - {"tnseed", "tnseed.ppcoin.net"}, + {"seed", "xxx"} }; void ThreadDNSAddressSeed(void* parg) @@ -1009,7 +1009,7 @@ void ThreadDNSAddressSeed2(void* parg) printf("ThreadDNSAddressSeed started\n"); int found = 0; - if (true /*!fTestNet*/) // ppcoin enables dns seeding with testnet too + if (true && !fTestNet) { printf("Loading addresses from DNS seeds (could take a while)\n"); @@ -1499,7 +1499,7 @@ bool BindListenPort(string& strError) { int nErr = WSAGetLastError(); if (nErr == WSAEADDRINUSE) - strError = strprintf(_("Unable to bind to port %d on this computer. PPCoin is probably already running."), ntohs(sockaddr.sin_port)); + strError = strprintf(_("Unable to bind to port %d on this computer. NovaCoin is probably already running."), ntohs(sockaddr.sin_port)); else strError = strprintf("Error: Unable to bind to port %d on this computer (bind returned error %d)", ntohs(sockaddr.sin_port), nErr); printf("%s\n", strError.c_str()); @@ -1608,21 +1608,24 @@ void StartNode(void* parg) // Start threads // +/* if (!GetBoolArg("-dnsseed", true)) printf("DNS seeding disabled\n"); else if (!CreateThread(ThreadDNSAddressSeed, NULL)) printf("Error: CreateThread(ThreadDNSAddressSeed) failed\n"); +*/ + + if (GetBoolArg("-dnsseed", false)) + printf("DNS seeding NYI\n"); // Map ports with UPnP if (fHaveUPnP) MapPort(fUseUPnP); // Get addresses from IRC and advertise ours - // if (!CreateThread(ThreadIRCSeed, NULL)) - // printf("Error: CreateThread(ThreadIRCSeed) failed\n"); - // IRC disabled with ppcoin - printf("IRC seeding/communication disabled\n"); + if (!CreateThread(ThreadIRCSeed, NULL)) + printf("Error: CreateThread(ThreadIRCSeed) failed\n"); // Send and receive from sockets, accept connections if (!CreateThread(ThreadSocketHandler, NULL)) diff --git a/src/net.h b/src/net.h index 661cc33..cf06616 100644 --- a/src/net.h +++ b/src/net.h @@ -1,6 +1,7 @@ // Copyright (c) 2009-2010 Satoshi Nakamoto // Copyright (c) 2009-2012 The Bitcoin developers // Copyright (c) 2012 The PPCoin developers +// Copyright (c) 2012-2013 The NovaCoin developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. #ifndef BITCOIN_NET_H diff --git a/src/protocol.cpp b/src/protocol.cpp index ad998c4..4b8b436 100644 --- a/src/protocol.cpp +++ b/src/protocol.cpp @@ -15,23 +15,15 @@ // The characters are rarely used upper ascii, not valid as UTF-8, and produce // a large 4-byte int at any alignment. -// Public testnet message start -// unsigned char pchMessageStartTestBitcoin[4] = { 0xfa, 0xbf, 0xb5, 0xda }; -static unsigned char pchMessageStartTestOld[4] = { 0xdb, 0xe1, 0xf2, 0xf6 }; -static unsigned char pchMessageStartTestNew[4] = { 0xcb, 0xf2, 0xc0, 0xef }; -static unsigned int nMessageStartTestSwitchTime = 1346200000; - -// PPCoin message start (switch from Bitcoin's in v0.2) -static unsigned char pchMessageStartBitcoin[4] = { 0xf9, 0xbe, 0xb4, 0xd9 }; -static unsigned char pchMessageStartPPCoin[4] = { 0xe6, 0xe8, 0xe9, 0xe5 }; -static unsigned int nMessageStartSwitchTime = 1347300000; +static unsigned char pchMessageStartTestNew[4] = { 0xcd, 0xf2, 0xc0, 0xef }; +static unsigned char pchMessageStartPPCoin[4] = { 0xe4, 0xe8, 0xe9, 0xe5 }; void GetMessageStart(unsigned char pchMessageStart[], bool fPersistent) { if (fTestNet) - memcpy(pchMessageStart, (fPersistent || GetAdjustedTime() > nMessageStartTestSwitchTime)? pchMessageStartTestNew : pchMessageStartTestOld, sizeof(pchMessageStartTestNew)); + memcpy(pchMessageStart, pchMessageStartTestNew, sizeof(pchMessageStartTestNew)); else - memcpy(pchMessageStart, (fPersistent || GetAdjustedTime() > nMessageStartSwitchTime)? pchMessageStartPPCoin : pchMessageStartBitcoin, sizeof(pchMessageStartPPCoin)); + memcpy(pchMessageStart, pchMessageStartPPCoin, sizeof(pchMessageStartPPCoin)); } static const char* ppszTypeName[] = diff --git a/src/protocol.h b/src/protocol.h index c4861e6..ed2ca59 100644 --- a/src/protocol.h +++ b/src/protocol.h @@ -15,9 +15,9 @@ #include #include "uint256.h" -#define PPCOIN_PORT 9901 -#define RPC_PORT 9902 -#define TESTNET_PORT 9903 +#define PPCOIN_PORT 7777 +#define RPC_PORT 8344 +#define TESTNET_PORT 17777 extern bool fTestNet; diff --git a/src/qt/bitcoin.cpp b/src/qt/bitcoin.cpp index b4f418e..59e9f6d 100644 --- a/src/qt/bitcoin.cpp +++ b/src/qt/bitcoin.cpp @@ -177,12 +177,12 @@ int main(int argc, char *argv[]) // Application identification (must be set before OptionsModel is initialized, // as it is used to locate QSettings) - app.setOrganizationName("Bitcoin"); - app.setOrganizationDomain("bitcoin.org"); + app.setOrganizationName("NovaCoin"); + app.setOrganizationDomain("novacoin.ru"); if(GetBoolArg("-testnet")) // Separate UI settings for testnet - app.setApplicationName("Bitcoin-Qt-testnet"); + app.setApplicationName("NovaCoin-Qt-testnet"); else - app.setApplicationName("Bitcoin-Qt"); + app.setApplicationName("NovaCoin-Qt"); // ... then GUI settings: OptionsModel optionsModel; diff --git a/src/qt/bitcoin.qrc b/src/qt/bitcoin.qrc index e631a65..0df1eab 100644 --- a/src/qt/bitcoin.qrc +++ b/src/qt/bitcoin.qrc @@ -1,10 +1,10 @@ - res/icons/bitcoin.png + res/icons/novacoin.png res/icons/address-book.png res/icons/quit.png res/icons/send.png - res/icons/toolbar.png + res/icons/novacoin-16.png res/icons/connect0_16.png res/icons/connect1_16.png res/icons/connect2_16.png @@ -48,37 +48,7 @@ res/movies/update_spinner.mng - locale/bitcoin_ca_ES.qm - locale/bitcoin_cs.qm - locale/bitcoin_da.qm - locale/bitcoin_de.qm locale/bitcoin_en.qm - locale/bitcoin_es_CL.qm - locale/bitcoin_es.qm - locale/bitcoin_et.qm - locale/bitcoin_eu_ES.qm - locale/bitcoin_fa_IR.qm - locale/bitcoin_fa.qm - locale/bitcoin_fi.qm - locale/bitcoin_fr_CA.qm - locale/bitcoin_fr_FR.qm - locale/bitcoin_he.qm - locale/bitcoin_hr.qm - locale/bitcoin_hu.qm - locale/bitcoin_it.qm - locale/bitcoin_lt.qm - locale/bitcoin_nb.qm - locale/bitcoin_nl.qm - locale/bitcoin_pl.qm - locale/bitcoin_pt_BR.qm - locale/bitcoin_ro_RO.qm locale/bitcoin_ru.qm - locale/bitcoin_sk.qm - locale/bitcoin_sr.qm - locale/bitcoin_sv.qm - locale/bitcoin_tr.qm - locale/bitcoin_uk.qm - locale/bitcoin_zh_CN.qm - locale/bitcoin_zh_TW.qm diff --git a/src/qt/bitcoingui.cpp b/src/qt/bitcoingui.cpp index 39b8726..d03e741 100644 --- a/src/qt/bitcoingui.cpp +++ b/src/qt/bitcoingui.cpp @@ -4,6 +4,7 @@ * W.J. van der Laan 2011-2012 * The Bitcoin Developers 2011-2012 * The PPCoin Developers 2011-2012 + * The NovaCoin Developers 2011-2012 */ #include "bitcoingui.h" #include "transactiontablemodel.h" @@ -68,7 +69,7 @@ BitcoinGUI::BitcoinGUI(QWidget *parent): notificator(0) { resize(850, 550); - setWindowTitle(tr("PPCoin Wallet")); + setWindowTitle(tr("NovaCoin Wallet")); #ifndef Q_WS_MAC setWindowIcon(QIcon(":icons/bitcoin")); #else @@ -198,7 +199,7 @@ void BitcoinGUI::createActions() tabGroup->addAction(receiveCoinsAction); sendCoinsAction = new QAction(QIcon(":/icons/send"), tr("&Send coins"), this); - sendCoinsAction->setToolTip(tr("Send coins to a bitcoin address")); + sendCoinsAction->setToolTip(tr("Send coins to a NovaCoin address")); sendCoinsAction->setCheckable(true); sendCoinsAction->setShortcut(QKeySequence(Qt::ALT + Qt::Key_2)); tabGroup->addAction(sendCoinsAction); @@ -228,16 +229,16 @@ void BitcoinGUI::createActions() quitAction->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_Q)); quitAction->setMenuRole(QAction::QuitRole); aboutAction = new QAction(QIcon(":/icons/bitcoin"), tr("&About %1").arg(qApp->applicationName()), this); - aboutAction->setToolTip(tr("Show information about Bitcoin")); + aboutAction->setToolTip(tr("Show information about NovaCoin")); aboutAction->setMenuRole(QAction::AboutRole); aboutQtAction = new QAction(tr("About &Qt"), this); aboutQtAction->setToolTip(tr("Show information about Qt")); aboutQtAction->setMenuRole(QAction::AboutQtRole); optionsAction = new QAction(QIcon(":/icons/options"), tr("&Options..."), this); - optionsAction->setToolTip(tr("Modify configuration options for bitcoin")); + optionsAction->setToolTip(tr("Modify configuration options for NovaCoin")); optionsAction->setMenuRole(QAction::PreferencesRole); - toggleHideAction = new QAction(QIcon(":/icons/bitcoin"), tr("Show/Hide &Bitcoin"), this); - toggleHideAction->setToolTip(tr("Show or hide the Bitcoin window")); + toggleHideAction = new QAction(QIcon(":/icons/bitcoin"), tr("Show/Hide &NovaCoin"), this); + toggleHideAction->setToolTip(tr("Show or hide the NovaCoin window")); exportAction = new QAction(QIcon(":/icons/export"), tr("&Export..."), this); exportAction->setToolTip(tr("Export the data in the current tab to a file")); encryptWalletAction = new QAction(QIcon(":/icons/lock_closed"), tr("&Encrypt Wallet"), this); @@ -376,7 +377,7 @@ void BitcoinGUI::createTrayIcon() trayIcon = new QSystemTrayIcon(this); trayIconMenu = new QMenu(this); trayIcon->setContextMenu(trayIconMenu); - trayIcon->setToolTip(tr("Bitcoin client")); + trayIcon->setToolTip(tr("NovaCoin client")); trayIcon->setIcon(QIcon(":/icons/toolbar")); connect(trayIcon, SIGNAL(activated(QSystemTrayIcon::ActivationReason)), this, SLOT(trayIconActivated(QSystemTrayIcon::ActivationReason))); @@ -403,7 +404,7 @@ void BitcoinGUI::createTrayIcon() trayIconMenu->addAction(quitAction); #endif - notificator = new Notificator(tr("bitcoin-qt"), trayIcon); + notificator = new Notificator(tr("novacoin-qt"), trayIcon); } #ifndef Q_WS_MAC @@ -467,7 +468,7 @@ void BitcoinGUI::setNumConnections(int count) default: icon = ":/icons/connect_4"; break; } labelConnectionsIcon->setPixmap(QIcon(icon).pixmap(STATUSBAR_ICONSIZE,STATUSBAR_ICONSIZE)); - labelConnectionsIcon->setToolTip(tr("%n active connection(s) to Bitcoin network", "", count)); + labelConnectionsIcon->setToolTip(tr("%n active connection(s) to NovaCoin network", "", count)); } void BitcoinGUI::setNumBlocks(int count) diff --git a/src/qt/bitcoinstrings.cpp b/src/qt/bitcoinstrings.cpp index b25af1a..696e347 100644 --- a/src/qt/bitcoinstrings.cpp +++ b/src/qt/bitcoinstrings.cpp @@ -6,10 +6,10 @@ #define UNUSED #endif static const char UNUSED *bitcoin_strings[] = {QT_TRANSLATE_NOOP("bitcoin-core", "" -"Unable to bind to port %d on this computer. Bitcoin is probably already " +"Unable to bind to port %d on this computer. NovaCoin is probably already " "running."), QT_TRANSLATE_NOOP("bitcoin-core", "Warning: Disk space is low "), -QT_TRANSLATE_NOOP("bitcoin-core", "Bitcoin version"), +QT_TRANSLATE_NOOP("bitcoin-core", "NovaCoin version"), QT_TRANSLATE_NOOP("bitcoin-core", "Usage:"), QT_TRANSLATE_NOOP("bitcoin-core", "Send command to -server or bitcoind"), QT_TRANSLATE_NOOP("bitcoin-core", "List commands"), @@ -76,9 +76,9 @@ QT_TRANSLATE_NOOP("bitcoin-core", "" QT_TRANSLATE_NOOP("bitcoin-core", "This help message"), QT_TRANSLATE_NOOP("bitcoin-core", "Usage"), QT_TRANSLATE_NOOP("bitcoin-core", "" -"Cannot obtain a lock on data directory %s. Bitcoin is probably already " +"Cannot obtain a lock on data directory %s. NovaCoin is probably already " "running."), -QT_TRANSLATE_NOOP("bitcoin-core", "Bitcoin"), +QT_TRANSLATE_NOOP("bitcoin-core", "NovaCoin"), QT_TRANSLATE_NOOP("bitcoin-core", "Loading addresses..."), QT_TRANSLATE_NOOP("bitcoin-core", "Error loading addr.dat"), QT_TRANSLATE_NOOP("bitcoin-core", "Loading block index..."), @@ -131,4 +131,4 @@ QT_TRANSLATE_NOOP("bitcoin-core", "" "and coins were spent in the copy but not marked as spent here."), QT_TRANSLATE_NOOP("bitcoin-core", "Invalid amount"), QT_TRANSLATE_NOOP("bitcoin-core", "Insufficient funds"), -}; \ No newline at end of file +}; diff --git a/src/qt/bitcoinunits.cpp b/src/qt/bitcoinunits.cpp index 1356a16..bd67423 100644 --- a/src/qt/bitcoinunits.cpp +++ b/src/qt/bitcoinunits.cpp @@ -34,9 +34,9 @@ QString BitcoinUnits::name(int unit) { switch(unit) { - case BTC: return QString("PPC"); - case mBTC: return QString("mPPC"); - case uBTC: return QString::fromUtf8("μPPC"); + case BTC: return QString("NVC"); + case mBTC: return QString("mNVC"); + case uBTC: return QString::fromUtf8("μNVC"); default: return QString("???"); } } @@ -45,9 +45,9 @@ QString BitcoinUnits::description(int unit) { switch(unit) { - case BTC: return QString("PPCoins"); - case mBTC: return QString("Milli-PPCoins (1 / 1,000)"); - case uBTC: return QString("Micro-PPCoins (1 / 1,000,000)"); + case BTC: return QString("NovaCoins"); + case mBTC: return QString("Milli-NovaCoins (1 / 1,000)"); + case uBTC: return QString("Micro-NovaCoins (1 / 1,000,000)"); default: return QString("???"); } } diff --git a/src/qt/editaddressdialog.cpp b/src/qt/editaddressdialog.cpp index cecb8ae..409316a 100644 --- a/src/qt/editaddressdialog.cpp +++ b/src/qt/editaddressdialog.cpp @@ -93,7 +93,7 @@ void EditAddressDialog::accept() break; case AddressTableModel::INVALID_ADDRESS: QMessageBox::warning(this, windowTitle(), - tr("The entered address \"%1\" is not a valid bitcoin address.").arg(ui->addressEdit->text()), + tr("The entered address \"%1\" is not a valid NovaCoin address.").arg(ui->addressEdit->text()), QMessageBox::Ok, QMessageBox::Ok); return; case AddressTableModel::WALLET_UNLOCK_FAILURE: diff --git a/src/qt/forms/aboutdialog.ui b/src/qt/forms/aboutdialog.ui index 6e342e5..08af8ce 100644 --- a/src/qt/forms/aboutdialog.ui +++ b/src/qt/forms/aboutdialog.ui @@ -11,7 +11,7 @@ - About Bitcoin + About NovaCoin @@ -50,7 +50,7 @@ - <b>Bitcoin</b> version + <b>NovaCoin</b> version Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse @@ -88,7 +88,7 @@ - Copyright © 2009-2012 Bitcoin Developers + Copyright © 2009-2012 NovaCoin Developers This is experimental software. diff --git a/src/qt/forms/addressbookpage.ui b/src/qt/forms/addressbookpage.ui index b31a9ce..219744a 100644 --- a/src/qt/forms/addressbookpage.ui +++ b/src/qt/forms/addressbookpage.ui @@ -17,7 +17,7 @@ - These are your Bitcoin addresses for receiving payments. You may want to give a different one to each sender so you can keep track of who is paying you. + These are your NovaCoin addresses for receiving payments. You may want to give a different one to each sender so you can keep track of who is paying you. Qt::AutoText diff --git a/src/qt/forms/messagepage.ui b/src/qt/forms/messagepage.ui index ae1e062..09ba212 100644 --- a/src/qt/forms/messagepage.ui +++ b/src/qt/forms/messagepage.ui @@ -35,7 +35,7 @@ - The address to sign the message with (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L) + The address to sign the message with (e.g. 4Zo1ga6xuKuQ7JV7M9rGDoxdbYwV5zgQJ5) 34 diff --git a/src/qt/forms/sendcoinsentry.ui b/src/qt/forms/sendcoinsentry.ui index 22a3f8f..e718212 100644 --- a/src/qt/forms/sendcoinsentry.ui +++ b/src/qt/forms/sendcoinsentry.ui @@ -90,7 +90,7 @@ - The address to send the payment to (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L) + The address to send the payment to (e.g. 4Zo1ga6xuKuQ7JV7M9rGDoxdbYwV5zgQJ5) 34 diff --git a/src/qt/locale/bitcoin_en.ts b/src/qt/locale/bitcoin_en.ts index 53ba23b..31174de 100644 --- a/src/qt/locale/bitcoin_en.ts +++ b/src/qt/locale/bitcoin_en.ts @@ -6,17 +6,17 @@ AboutDialog - About Bitcoin + About NovaCoin - <b>Bitcoin</b> version + <b>NovaCoin</b> version - Copyright © 2009-2012 Bitcoin Developers + Copyright © 2009-2012 NovaCoin Developers This is experimental software. @@ -35,7 +35,7 @@ This product includes software developed by the OpenSSL Project for use in the O - These are your Bitcoin addresses for receiving payments. You may want to give a different one to each sender so you can keep track of who is paying you. + These are your NovaCoin addresses for receiving payments. You may want to give a different one to each sender so you can keep track of who is paying you. @@ -222,7 +222,7 @@ This product includes software developed by the OpenSSL Project for use in the O - WARNING: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR BITCOINS</b>! + WARNING: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR NovaCoinS</b>! Are you sure you wish to encrypt your wallet? @@ -234,7 +234,7 @@ Are you sure you wish to encrypt your wallet? - Bitcoin will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer. + NovaCoin will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your NovaCoins from being stolen by malware infecting your computer. @@ -289,12 +289,12 @@ Are you sure you wish to encrypt your wallet? BitcoinGUI - Bitcoin Wallet + NovaCoin Wallet - Show/Hide &Bitcoin + Show/Hide &NovaCoin @@ -349,7 +349,7 @@ Are you sure you wish to encrypt your wallet? - Send coins to a bitcoin address + Send coins to a NovaCoin address @@ -379,7 +379,7 @@ Are you sure you wish to encrypt your wallet? - Show information about Bitcoin + Show information about NovaCoin @@ -399,7 +399,7 @@ Are you sure you wish to encrypt your wallet? - Modify configuration options for bitcoin + Modify configuration options for NovaCoin @@ -422,7 +422,7 @@ Are you sure you wish to encrypt your wallet? - Show or hide the Bitcoin window + Show or hide the NovaCoin window @@ -492,20 +492,20 @@ Are you sure you wish to encrypt your wallet? - Bitcoin client + NovaCoin client - bitcoin-qt + novacoin-qt - %n active connection(s) to Bitcoin network + %n active connection(s) to NovaCoin network - %n active connection to Bitcoin network - %n active connections to Bitcoin network + %n active connection to NovaCoin network + %n active connections to NovaCoin network @@ -692,7 +692,7 @@ Address: %4 - The entered address "%1" is not a valid bitcoin address. + The entered address "%1" is not a valid NovaCoin address. @@ -710,12 +710,12 @@ Address: %4 MainOptionsPage - &Start Bitcoin on window system startup + &Start NovaCoin on window system startup - Automatically start Bitcoin after the computer is turned on + Automatically start NovaCoin after the computer is turned on @@ -735,7 +735,7 @@ Address: %4 - Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled. + Automatically open the NovaCoin client port on the router. This only works when your router supports UPnP and it is enabled. @@ -808,7 +808,7 @@ Address: %4 - The address to sign the message with (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L) + The address to sign the message with (e.g. 4Zo1ga6xuKuQ7JV7M9rGDoxdbYwV5zgQJ5) @@ -1167,7 +1167,7 @@ p, li { white-space: pre-wrap; } - The address to send the payment to (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L) + The address to send the payment to (e.g. 4Zo1ga6xuKuQ7JV7M9rGDoxdbYwV5zgQJ5) @@ -1197,7 +1197,7 @@ p, li { white-space: pre-wrap; } - Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L) + Enter a NovaCoin address (e.g. 4Zo1ga6xuKuQ7JV7M9rGDoxdbYwV5zgQJ5) @@ -1655,7 +1655,7 @@ p, li { white-space: pre-wrap; } bitcoin-core - Bitcoin version + NovaCoin version @@ -1665,7 +1665,7 @@ p, li { white-space: pre-wrap; } - Send command to -server or bitcoind + Send command to -server or novacoind @@ -1685,12 +1685,12 @@ p, li { white-space: pre-wrap; } - Specify configuration file (default: bitcoin.conf) + Specify configuration file (default: novacoin.conf) - Specify pid file (default: bitcoind.pid) + Specify pid file (default: novacoind.pid) @@ -1906,12 +1906,12 @@ SSL options: (see the Bitcoin Wiki for SSL setup instructions) - Cannot obtain a lock on data directory %s. Bitcoin is probably already running. + Cannot obtain a lock on data directory %s. NovaCoin is probably already running. - Bitcoin + NovaCoin @@ -1936,12 +1936,12 @@ SSL options: (see the Bitcoin Wiki for SSL setup instructions) - Error loading wallet.dat: Wallet requires newer version of Bitcoin + Error loading wallet.dat: Wallet requires newer version of NovaCoin - Wallet needed to be rewritten: restart Bitcoin to complete + Wallet needed to be rewritten: restart NovaCoin to complete @@ -2086,7 +2086,7 @@ SSL options: (see the Bitcoin Wiki for SSL setup instructions) - Unable to bind to port %d on this computer. Bitcoin is probably already running. + Unable to bind to port %d on this computer. NovaCoin is probably already running. @@ -2125,7 +2125,7 @@ If the file does not exist, create it with owner-readable-only file permissions. - Warning: Please check that your computer's date and time are correct. If your clock is wrong Bitcoin will not work properly. + Warning: Please check that your computer's date and time are correct. If your clock is wrong NovaCoin will not work properly. diff --git a/src/qt/locale/bitcoin_ru.ts b/src/qt/locale/bitcoin_ru.ts index d706b33..3566ce7 100644 --- a/src/qt/locale/bitcoin_ru.ts +++ b/src/qt/locale/bitcoin_ru.ts @@ -4,24 +4,24 @@ AboutDialog - About Bitcoin - О Bitcoin + About NovaCoin + О NovaCoin - <b>Bitcoin</b> version - <b>Bitcoin</b> версия + <b>NovaCoin</b> version + <b>NovaCoin</b> версия - Copyright © 2009-2012 Bitcoin Developers + Copyright © 2009-2012 NovaCoin Developers This is experimental software. Distributed under the MIT/X11 software license, see the accompanying file license.txt or http://www.opensource.org/licenses/mit-license.php. This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard. - Все права защищены © 2009-2012 Разработчики Bitcoin + Все права защищены © 2009-2012 Разработчики NovaCoin Это экспериментальная программа. @@ -39,7 +39,7 @@ This product includes software developed by the OpenSSL Project for use in the O - These are your Bitcoin addresses for receiving payments. You may want to give a different one to each sender so you can keep track of who is paying you. + These are your NovaCoin addresses for receiving payments. You may want to give a different one to each sender so you can keep track of who is paying you. Здесь перечислены Ваши адреса для получения платежей. Вы можете использовать их для того, чтобы давать разным людям разные адреса и таким образом иметь возможность отслеживать кто и сколько Вам платил, а так же поддерживать бо́льшую анонимность.. @@ -226,7 +226,7 @@ This product includes software developed by the OpenSSL Project for use in the O - WARNING: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR BITCOINS</b>! + WARNING: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR NovaCoinS</b>! Are you sure you wish to encrypt your wallet? ВНИМАНИЕ: Если вы зашифруете бумажник и потеряете свой ​​пароль, вы <b>ПОТЕРЯЕТЕ ВСЕ ВАШИ БИТКОИНЫ!</b> Вы действительно хотите зашифровать ваш бумажник? @@ -239,7 +239,7 @@ Are you sure you wish to encrypt your wallet? - Bitcoin will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer. + NovaCoin will close now to finish the encryption process. Remember that encrypting your wallet cannot fully protect your NovaCoins from being stolen by malware infecting your computer. Сейчас программа закроется для завершения процесса шифрования. Помните, что шифрование вашего бумажника не может полностью защитить ваши биткоины от кражи с помощью инфицирования вашего компьютера вредоносным ПО. @@ -294,8 +294,13 @@ Are you sure you wish to encrypt your wallet? BitcoinGUI - Bitcoin Wallet - Bitcoin-бумажник + NovaCoin Wallet + NovaCoin-бумажник + + + + Show/Hide &NovaCoin + Показать/Спрятать бумажник @@ -355,7 +360,7 @@ Are you sure you wish to encrypt your wallet? - Send coins to a bitcoin address + Send coins to a NovaCoin address Отправить монеты на указанный адрес @@ -385,8 +390,8 @@ Are you sure you wish to encrypt your wallet? - Show information about Bitcoin - Показать информацию о Bitcoin'е + Show information about NovaCoin + Показать информацию о NovaCoin'е @@ -405,17 +410,17 @@ Are you sure you wish to encrypt your wallet? - Modify configuration options for bitcoin + Modify configuration options for NovaCoin Изменить настройки - Open &Bitcoin + Open &NovaCoin &Показать бумажник - Show the Bitcoin window + Show the NovaCoin window Показать окно бумажника @@ -441,12 +446,12 @@ Are you sure you wish to encrypt your wallet? &Backup Wallet - + Скопировать кошелек Backup wallet to another location - + Скопировать кошелек в другое место @@ -490,12 +495,12 @@ Are you sure you wish to encrypt your wallet? - bitcoin-qt - bitcoin-qt + novacoin-qt + novacoin-qt - %n active connection(s) to Bitcoin network + %n active connection(s) to NovaCoin network %n активное соединение с сетью%n активных соединений с сетью%n активных соединений с сетью @@ -589,7 +594,7 @@ Address: %4 Backup Wallet - + Скопировать кошелек @@ -679,8 +684,8 @@ Address: %4 - The entered address "%1" is not a valid bitcoin address. - Введённый адрес «%1» не является правильным Bitcoin-адресом. + The entered address "%1" is not a valid NovaCoin address. + Введённый адрес «%1» не является правильным NovaCoin-адресом. @@ -697,12 +702,12 @@ Address: %4 MainOptionsPage - &Start Bitcoin on window system startup + &Start NovaCoin on window system startup &Запускать бумажник при входе в систему - Automatically start Bitcoin after the computer is turned on + Automatically start NovaCoin after the computer is turned on Автоматически запускать бумажник, когда включается компьютер @@ -722,8 +727,8 @@ Address: %4 - Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled. - Автоматически открыть порт для Bitcoin-клиента на роутере. Работает ТОЛЬКО если Ваш роутер поддерживает UPnP и данная функция включена. + Automatically open the NovaCoin client port on the router. This only works when your router supports UPnP and it is enabled. + Автоматически открыть порт для NovaCoin-клиента на роутере. Работает ТОЛЬКО если Ваш роутер поддерживает UPnP и данная функция включена. @@ -743,7 +748,7 @@ Address: %4 Connect to the Bitcon network through a SOCKS4 proxy (e.g. when connecting through Tor) - Подключаться к сети Bitcoin через SOCKS4 прокси (например, при использовании Tor) + Подключаться к сети NovaCoin через SOCKS4 прокси (например, при использовании Tor) @@ -791,12 +796,12 @@ Address: %4 You can sign messages with your addresses to prove you own them. Be careful not to sign anything vague, as phishing attacks may try to trick you into signing your identity over to them. Only sign fully-detailed statements you agree to. - + Вы можете подписать сообщение ключом от своего адреса, чтобы доказать владенгие им. Будьте осторожны и не подписывайте текст, не относящийся лично к вам. ПОдписывайте только текст, с которым вы полностью согласны и который можете однозначно интерпретировать. - The address to send the payment to (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L) - Адрес получателя платежа (например 1LA5FtQhnnWnkK6zjFfutR7Stiit4wKd63) + The address to send the payment to (e.g. 4Zo1ga6xuKuQ7JV7M9rGDoxdbYwV5zgQJ5) + Адрес получателя платежа (например 4Zo1ga6xuKuQ7JV7M9rGDoxdbYwV5zgQJ5) @@ -898,10 +903,20 @@ Address: %4 + Wallet + Бумажник + + + Balance: Баланс: + + Stake: + Доля: + + 123.456 BTC 123.456 BTC @@ -1153,8 +1168,8 @@ p, li { white-space: pre-wrap; } - The address to send the payment to (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L) - Адрес получателя платежа (например 1LA5FtQhnnWnkK6zjFfutR7Stiit4wKd63) + The address to send the payment to (e.g. 4Zo1ga6xuKuQ7JV7M9rGDoxdbYwV5zgQJ5) + Адрес получателя платежа (например 4Zo1ga6xuKuQ7JV7M9rGDoxdbYwV5zgQJ5) @@ -1183,8 +1198,8 @@ p, li { white-space: pre-wrap; } - Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L) - Введите Bitcoin-адрес (например 1LA5FtQhnnWnkK6zjFfutR7Stiit4wKd63) + Enter a NovaCoin address (e.g. 4Zo1ga6xuKuQ7JV7M9rGDoxdbYwV5zgQJ5) + Введите NovaCoin-адрес (например 4Zo1ga6xuKuQ7JV7M9rGDoxdbYwV5zgQJ5) @@ -1635,7 +1650,7 @@ p, li { white-space: pre-wrap; } bitcoin-core - Bitcoin version + NovaCoin version Версия @@ -1645,8 +1660,8 @@ p, li { white-space: pre-wrap; } - Send command to -server or bitcoind - Отправить команду на -server или bitcoind + Send command to -server or novacoind + Отправить команду на -server или novacoind @@ -1671,8 +1686,8 @@ p, li { white-space: pre-wrap; } - Specify pid file (default: bitcoind.pid) - Указать pid-файл (по умолчанию: bitcoin.pid) + Specify pid file (default: novacoind.pid) + Указать pid-файл (по умолчанию: novacoin.pid) @@ -1878,7 +1893,7 @@ SSL options: (see the Bitcoin Wiki for SSL setup instructions) - Cannot obtain a lock on data directory %s. Bitcoin is probably already running. + Cannot obtain a lock on data directory %s. NovaCoin is probably already running. Невозможно установить блокировку на рабочую директорию %s. Возможно, бумажник уже запущен. @@ -1903,13 +1918,13 @@ SSL options: (see the Bitcoin Wiki for SSL setup instructions) - Error loading wallet.dat: Wallet requires newer version of Bitcoin - Ошибка загрузки wallet.dat: бумажник требует более новую версию Bitcoin + Error loading wallet.dat: Wallet requires newer version of NovaCoin + Ошибка загрузки wallet.dat: бумажник требует более новую версию NovaCoin - Wallet needed to be rewritten: restart Bitcoin to complete - Необходимо перезаписать бумажник, перезапустите Bitcoin для завершения операции. + Wallet needed to be rewritten: restart NovaCoin to complete + Необходимо перезаписать бумажник, перезапустите NovaCoin для завершения операции. @@ -1963,13 +1978,13 @@ SSL options: (see the Bitcoin Wiki for SSL setup instructions) - Unable to bind to port %d on this computer. Bitcoin is probably already running. + Unable to bind to port %d on this computer. NovaCoin is probably already running. Невозможно забиндить порт %d на данном компьютере. Возможно, бумажник ужк запущен. - Warning: Please check that your computer's date and time are correct. If your clock is wrong Bitcoin will not work properly. - ВНИМАНИЕ: Проверьте дату и время, установленные на Вашем компьютере. Если Ваши часы идут не правильно Bitcoin может наботать не корректно. + Warning: Please check that your computer's date and time are correct. If your clock is wrong NovaCoin will not work properly. + ВНИМАНИЕ: Проверьте дату и время, установленные на Вашем компьютере. Если Ваши часы идут не правильно NovaCoin может наботать не корректно. diff --git a/src/qt/optionsdialog.cpp b/src/qt/optionsdialog.cpp index 0c43647..f6720a6 100644 --- a/src/qt/optionsdialog.cpp +++ b/src/qt/optionsdialog.cpp @@ -168,8 +168,8 @@ MainOptionsPage::MainOptionsPage(QWidget *parent): { QVBoxLayout *layout = new QVBoxLayout(); - bitcoin_at_startup = new QCheckBox(tr("&Start Bitcoin on window system startup")); - bitcoin_at_startup->setToolTip(tr("Automatically start Bitcoin after the computer is turned on")); + bitcoin_at_startup = new QCheckBox(tr("&Start NovaCoin on window system startup")); + bitcoin_at_startup->setToolTip(tr("Automatically start NovaCoin after the computer is turned on")); layout->addWidget(bitcoin_at_startup); #ifndef Q_WS_MAC @@ -183,7 +183,7 @@ MainOptionsPage::MainOptionsPage(QWidget *parent): #endif map_port_upnp = new QCheckBox(tr("Map port using &UPnP")); - map_port_upnp->setToolTip(tr("Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled.")); + map_port_upnp->setToolTip(tr("Automatically open the NovaCoin client port on the router. This only works when your router supports UPnP and it is enabled.")); layout->addWidget(map_port_upnp); connect_socks4 = new QCheckBox(tr("&Connect through SOCKS4 proxy:")); @@ -282,7 +282,7 @@ DisplayOptionsPage::DisplayOptionsPage(QWidget *parent): layout->addLayout(unit_hbox); display_addresses = new QCheckBox(tr("&Display addresses in transaction list"), this); - display_addresses->setToolTip(tr("Whether to show Bitcoin addresses in the transaction list")); + display_addresses->setToolTip(tr("Whether to show NovaCoin addresses in the transaction list")); layout->addWidget(display_addresses); layout->addStretch(); diff --git a/src/qt/res/bitcoin-qt.rc b/src/qt/res/bitcoin-qt.rc index 1a1ab53..dd301a2 100644 --- a/src/qt/res/bitcoin-qt.rc +++ b/src/qt/res/bitcoin-qt.rc @@ -1 +1 @@ -IDI_ICON1 ICON DISCARDABLE "icons/bitcoin.ico" +IDI_ICON1 ICON DISCARDABLE "icons/novacoin.ico" diff --git a/src/qt/res/images/splash2.jpg b/src/qt/res/images/splash2.jpg index 3846e6f68de0ff1379fed451bb64d0271e175622..4ea92f0ec3fe5e26c5387f6e3d511e66e811b376 100644 GIT binary patch literal 5587 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 Si?r*WUh6l_-i5=-qyGhMQ{4>! delta 5707 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 WI03s3rch~_QA9y4W`4$t+5ZDbs+>Fk diff --git a/src/qt/sendcoinsentry.cpp b/src/qt/sendcoinsentry.cpp index c8242d8..8563179 100644 --- a/src/qt/sendcoinsentry.cpp +++ b/src/qt/sendcoinsentry.cpp @@ -22,7 +22,7 @@ SendCoinsEntry::SendCoinsEntry(QWidget *parent) : #endif #if QT_VERSION >= 0x040700 - ui->payTo->setPlaceholderText(tr("Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)")); + ui->payTo->setPlaceholderText(tr("Enter a NovaCoin address (e.g. 4Zo1ga6xuKuQ7JV7M9rGDoxdbYwV5zgQJ5)")); ui->addAsLabel->setPlaceholderText(tr("Enter a label for this address to add it to your address book")); #endif setFocusPolicy(Qt::TabFocus); diff --git a/src/rpcdump.cpp b/src/rpcdump.cpp index bf22efd..b22bd4f 100644 --- a/src/rpcdump.cpp +++ b/src/rpcdump.cpp @@ -43,7 +43,7 @@ Value importprivkey(const Array& params, bool fHelp) { if (fHelp || params.size() < 1 || params.size() > 2) throw runtime_error( - "importprivkey [label]\n" + "importprivkey [label]\n" "Adds a private key (as returned by dumpprivkey) to your wallet."); string strSecret = params[0].get_str(); @@ -83,13 +83,13 @@ Value dumpprivkey(const Array& params, bool fHelp) { if (fHelp || params.size() != 1) throw runtime_error( - "dumpprivkey \n" - "Reveals the private key corresponding to ."); + "dumpprivkey \n" + "Reveals the private key corresponding to ."); string strAddress = params[0].get_str(); CBitcoinAddress address; if (!address.SetString(strAddress)) - throw JSONRPCError(-5, "Invalid ppcoin address"); + throw JSONRPCError(-5, "Invalid novacoin address"); CSecret vchSecret; bool fCompressed; if (!pwalletMain->GetSecret(address, vchSecret, fCompressed)) diff --git a/src/script.cpp b/src/script.cpp index a3ab8e1..d1cb7f0 100644 --- a/src/script.cpp +++ b/src/script.cpp @@ -1,6 +1,7 @@ // Copyright (c) 2009-2010 Satoshi Nakamoto // Copyright (c) 2009-2012 The Bitcoin developers // Copyright (c) 2012 The PPCoin developers +// Copyright (c) 2012-2013 The NovaCoin developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. #include diff --git a/src/serialize.h b/src/serialize.h index ca12051..85b48a2 100644 --- a/src/serialize.h +++ b/src/serialize.h @@ -1,6 +1,7 @@ // Copyright (c) 2009-2010 Satoshi Nakamoto // Copyright (c) 2009-2012 The Bitcoin developers // Copyright (c) 2012 The PPCoin developers +// Copyright (c) 2012-2013 The NovaCoin developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. #ifndef BITCOIN_SERIALIZE_H diff --git a/src/util.cpp b/src/util.cpp index 4e259e4..a05a7a5 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -1,6 +1,7 @@ // Copyright (c) 2009-2010 Satoshi Nakamoto // Copyright (c) 2009-2012 The Bitcoin developers // Copyright (c) 2011-2012 The PPCoin developers +// Copyright (c) 2012-2013 The NovaCoin developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. @@ -777,7 +778,7 @@ void FormatException(char* pszMessage, std::exception* pex, const char* pszThrea pszModule[0] = '\0'; GetModuleFileNameA(NULL, pszModule, sizeof(pszModule)); #else - const char* pszModule = "ppcoin"; + const char* pszModule = "novacoin"; #endif if (pex) snprintf(pszMessage, 1000, @@ -852,12 +853,12 @@ boost::filesystem::path GetDefaultDataDir() { namespace fs = boost::filesystem; - // Windows: C:\Documents and Settings\username\Application Data\PPCoin - // Mac: ~/Library/Application Support/PPCoin - // Unix: ~/.ppcoin + // Windows: C:\Documents and Settings\username\Application Data\NovaCoin + // Mac: ~/Library/Application Support/NovaCoin + // Unix: ~/.novacoin #ifdef WIN32 // Windows - return MyGetSpecialFolderPath(CSIDL_APPDATA, true) / "PPCoin"; + return MyGetSpecialFolderPath(CSIDL_APPDATA, true) / "NovaCoin"; #else fs::path pathRet; char* pszHome = getenv("HOME"); @@ -869,10 +870,10 @@ boost::filesystem::path GetDefaultDataDir() // Mac pathRet /= "Library/Application Support"; fs::create_directory(pathRet); - return pathRet / "PPCoin"; + return pathRet / "NovaCoin"; #else // Unix - return pathRet / ".ppcoin"; + return pathRet / ".novacoin"; #endif #endif } @@ -916,7 +917,7 @@ boost::filesystem::path GetConfigFile() { namespace fs = boost::filesystem; - fs::path pathConfigFile(GetArg("-conf", "ppcoin.conf")); + fs::path pathConfigFile(GetArg("-conf", "novacoin.conf")); if (!pathConfigFile.is_complete()) pathConfigFile = GetDataDir(false) / pathConfigFile; return pathConfigFile; } @@ -952,7 +953,7 @@ boost::filesystem::path GetPidFile() { namespace fs = boost::filesystem; - fs::path pathPidFile(GetArg("-pid", "ppcoind.pid")); + fs::path pathPidFile(GetArg("-pid", "novacoind.pid")); if (!pathPidFile.is_complete()) pathPidFile = GetDataDir() / pathPidFile; return pathPidFile; } @@ -1071,10 +1072,10 @@ void AddTimeData(const CNetAddr& ip, int64 nTime) if (!fMatch) { fDone = true; - string strMessage = _("Warning: Please check that your computer's date and time are correct. If your clock is wrong PPCoin will not work properly."); + string strMessage = _("Warning: Please check that your computer's date and time are correct. If your clock is wrong NovaCoin will not work properly."); strMiscWarning = strMessage; printf("*** %s\n", strMessage.c_str()); - ThreadSafeMessageBox(strMessage+" ", string("PPCoin"), wxOK | wxICON_EXCLAMATION); + ThreadSafeMessageBox(strMessage+" ", string("NovaCoin"), wxOK | wxICON_EXCLAMATION); } } } @@ -1122,7 +1123,7 @@ std::string FormatSubVersion(const std::string& name, int nClientVersion, const #ifdef WIN32 boost::filesystem::path static StartupShortcutPath() { - return MyGetSpecialFolderPath(CSIDL_STARTUP, true) / "PPCoin.lnk"; + return MyGetSpecialFolderPath(CSIDL_STARTUP, true) / "NovaCoin.lnk"; } bool GetStartOnSystemStartup() @@ -1203,7 +1204,7 @@ boost::filesystem::path static GetAutostartDir() boost::filesystem::path static GetAutostartFilePath() { - return GetAutostartDir() / "ppcoin.desktop"; + return GetAutostartDir() / "novacoin.desktop"; } bool GetStartOnSystemStartup() @@ -1244,7 +1245,7 @@ bool SetStartOnSystemStartup(bool fAutoStart) // Write a bitcoin.desktop file to the autostart directory: optionFile << "[Desktop Entry]\n"; optionFile << "Type=Application\n"; - optionFile << "Name=PPCoin\n"; + optionFile << "Name=NovaCoin\n"; optionFile << "Exec=" << pszExePath << " -min\n"; optionFile << "Terminal=false\n"; optionFile << "Hidden=false\n"; diff --git a/src/util.h b/src/util.h index 752bb4d..dbecae2 100644 --- a/src/util.h +++ b/src/util.h @@ -1,6 +1,7 @@ // Copyright (c) 2009-2010 Satoshi Nakamoto // Copyright (c) 2009-2012 The Bitcoin developers // Copyright (c) 2012 The PPCoin developers +// Copyright (c) 2012-2013 The NovaCoin developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. #ifndef BITCOIN_UTIL_H @@ -46,6 +47,12 @@ static const int64 CENT = 10000; #define UBEGIN(a) ((unsigned char*)&(a)) #define UEND(a) ((unsigned char*)&((&(a))[1])) #define ARRAYLEN(array) (sizeof(array)/sizeof((array)[0])) + +#define UVOIDBEGIN(a) ((void*)&(a)) +#define CVOIDBEGIN(a) ((const void*)&(a)) +#define UINTBEGIN(a) ((uint32_t*)&(a)) +#define CUINTBEGIN(a) ((const uint32_t*)&(a)) + #define printf OutputDebugStringF #ifdef snprintf diff --git a/src/wallet.h b/src/wallet.h index 9412013..88e8648 100644 --- a/src/wallet.h +++ b/src/wallet.h @@ -1,6 +1,7 @@ // Copyright (c) 2009-2010 Satoshi Nakamoto // Copyright (c) 2009-2012 The Bitcoin developers // Copyright (c) 2011-2012 The PPCoin developers +// Copyright (c) 2012-2013 The NovaCoin developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. #ifndef BITCOIN_WALLET_H -- 1.7.1