-PPCoin official development tree
+NovaCoin official development tree
Bitcoin development process
===========================
}
# 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
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
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 \
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 \
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
HEADERS += src/qt/test/uritests.h
DEPENDPATH += src/qt/test
QT += testlib
-TARGET = bitcoin-qt_test
+TARGET = novacoin-qt_test
DEFINES += BITCOIN_QT_TEST
}
# 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) {
macx:BOOST_INCLUDE_PATH = /opt/local/include
}
-windows:LIBS += -lws2_32 -lshlwapi
windows:DEFINES += WIN32
windows:RC_FILE = src/qt/res/bitcoin-qt.rc
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) {
#!/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}
-Name PPCoin\r
+Name NovaCoin\r
\r
RequestExecutionLevel highest\r
SetCompressor /SOLID lzma\r
# General Symbol Definitions\r
!define REGKEY "SOFTWARE\$(^Name)"\r
!define VERSION 0.2.2\r
-!define COMPANY "PPCoin project"\r
-!define URL http://www.ppcoin.org/\r
+!define COMPANY "NovaCoin project"\r
+!define URL http://www.novacoin.ru/\r
\r
# MUI Symbol Definitions\r
-!define MUI_ICON "../share/pixmaps/bitcoin.ico"\r
+!define MUI_ICON "../share/pixmaps/novacoin.ico"\r
!define MUI_WELCOMEFINISHPAGE_BITMAP "../share/pixmaps/nsis-wizard.bmp"\r
!define MUI_HEADERIMAGE\r
!define MUI_HEADERIMAGE_RIGHT\r
!define MUI_STARTMENUPAGE_REGISTRY_ROOT HKLM\r
!define MUI_STARTMENUPAGE_REGISTRY_KEY ${REGKEY}\r
!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME StartMenuGroup\r
-!define MUI_STARTMENUPAGE_DEFAULTFOLDER PPCoin\r
-#!define MUI_FINISHPAGE_RUN $INSTDIR\bitcoin-qt.exe\r
+!define MUI_STARTMENUPAGE_DEFAULTFOLDER NovaCoin\r
+#!define MUI_FINISHPAGE_RUN $INSTDIR\novacoin-qt.exe\r
!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico"\r
!define MUI_UNWELCOMEFINISHPAGE_BITMAP "../share/pixmaps/nsis-wizard.bmp"\r
!define MUI_UNFINISHPAGE_NOAUTOCLOSE\r
!insertmacro MUI_LANGUAGE English\r
\r
# Installer attributes\r
-OutFile ppcoin-0.2.2-win32-setup.exe\r
-InstallDir $PROGRAMFILES\PPCoin\r
+OutFile novacoin-0.2.2-win32-setup.exe\r
+InstallDir $PROGRAMFILES\NovaCoin\r
CRCCheck on\r
XPStyle on\r
BrandingText " "\r
ShowInstDetails show\r
VIProductVersion 0.2.2.0\r
-VIAddVersionKey ProductName PPCoin\r
+VIAddVersionKey ProductName NovaCoin\r
VIAddVersionKey ProductVersion "${VERSION}"\r
VIAddVersionKey CompanyName "${COMPANY}"\r
VIAddVersionKey CompanyWebsite "${URL}"\r
Section -Main SEC0000\r
SetOutPath $INSTDIR\r
SetOverwrite on\r
- #File ../release/bitcoin-qt.exe\r
+ #File ../release/novacoin-qt.exe\r
File /oname=license.txt ../COPYING\r
File /oname=readme.txt ../doc/README_windows.txt\r
SetOutPath $INSTDIR\daemon\r
- File ../src/ppcoind.exe\r
+ File ../src/novacoind.exe\r
SetOutPath $INSTDIR\src\r
File /r /x *.exe /x *.o ../src\*.*\r
SetOutPath $INSTDIR\r
WriteRegStr HKCU "${REGKEY}\Components" Main 1\r
\r
# Remove old wxwidgets-based-bitcoin executable and locales:\r
- #Delete /REBOOTOK $INSTDIR\bitcoin.exe\r
+ #Delete /REBOOTOK $INSTDIR\novacoin.exe\r
#RMDir /r /REBOOTOK $INSTDIR\locale\r
SectionEnd\r
\r
WriteUninstaller $INSTDIR\uninstall.exe\r
!insertmacro MUI_STARTMENU_WRITE_BEGIN Application\r
CreateDirectory $SMPROGRAMS\$StartMenuGroup\r
- #CreateShortcut "$SMPROGRAMS\$StartMenuGroup\Bitcoin.lnk" $INSTDIR\bitcoin-qt.exe\r
- CreateShortcut "$SMPROGRAMS\$StartMenuGroup\Uninstall PPCoin.lnk" $INSTDIR\uninstall.exe\r
+ CreateShortcut "$SMPROGRAMS\$StartMenuGroup\Uninstall NovaCoin.lnk" $INSTDIR\uninstall.exe\r
!insertmacro MUI_STARTMENU_WRITE_END\r
WriteRegStr HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" DisplayName "$(^Name)"\r
WriteRegStr HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)" DisplayVersion "${VERSION}"\r
\r
# Uninstaller sections\r
Section /o -un.Main UNSEC0000\r
- #Delete /REBOOTOK $INSTDIR\bitcoin-qt.exe\r
+ #Delete /REBOOTOK $INSTDIR\novacoin-qt.exe\r
Delete /REBOOTOK $INSTDIR\license.txt\r
Delete /REBOOTOK $INSTDIR\readme.txt\r
RMDir /r /REBOOTOK $INSTDIR\daemon\r
\r
Section -un.post UNSEC0001\r
DeleteRegKey HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(^Name)"\r
- Delete /REBOOTOK "$SMPROGRAMS\$StartMenuGroup\Uninstall PPCoin.lnk"\r
+ Delete /REBOOTOK "$SMPROGRAMS\$StartMenuGroup\Uninstall NovaCoin.lnk"\r
#Delete /REBOOTOK "$SMPROGRAMS\$StartMenuGroup\Bitcoin.lnk"\r
#Delete /REBOOTOK "$SMSTARTUP\Bitcoin.lnk"\r
Delete /REBOOTOK $INSTDIR\uninstall.exe\r
DeleteRegValue HKCU "${REGKEY}" Path\r
DeleteRegKey /IfEmpty HKCU "${REGKEY}\Components"\r
DeleteRegKey /IfEmpty HKCU "${REGKEY}"\r
- DeleteRegKey HKCR "ppcoin"\r
+ DeleteRegKey HKCR "novacoin"\r
RmDir /REBOOTOK $SMPROGRAMS\$StartMenuGroup\r
RmDir /REBOOTOK $INSTDIR\r
Push $R0\r
-bitcoin ICON "pixmaps/bitcoin.ico"\r
+bitcoin ICON "pixmaps/novacoin.ico"\r
\r
#include "wx/msw/wx.rc"\r
\r
// 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.
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,
};
// 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.
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;
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";
}
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].");
if (fHelp || params.size() != 1)
throw runtime_error(
"getaccountaddress <account>\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]);
{
if (fHelp || params.size() < 1 || params.size() > 2)
throw runtime_error(
- "setaccount <ppcoinaddress> <account>\n"
+ "setaccount <novacoinaddress> <account>\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;
{
if (fHelp || params.size() != 1)
throw runtime_error(
- "getaccount <ppcoinaddress>\n"
+ "getaccount <novacoinaddress>\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<CBitcoinAddress, string>::iterator mi = pwalletMain->mapAddressBook.find(address);
{
if (pwalletMain->IsCrypted() && (fHelp || params.size() < 2 || params.size() > 4))
throw runtime_error(
- "sendtoaddress <ppcoinaddress> <amount> [comment] [comment-to]\n"
+ "sendtoaddress <novacoinaddress> <amount> [comment] [comment-to]\n"
"<amount> 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 <ppcoinaddress> <amount> [comment] [comment-to]\n"
+ "sendtoaddress <novacoinaddress> <amount> [comment] [comment-to]\n"
"<amount> 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]);
{
if (fHelp || params.size() != 2)
throw runtime_error(
- "signmessage <ppcoinaddress> <message>\n"
+ "signmessage <novacoinaddress> <message>\n"
"Sign a message with the private key of an address");
if (pwalletMain->IsLocked())
{
if (fHelp || params.size() != 3)
throw runtime_error(
- "verifymessage <ppcoinaddress> <signature> <message>\n"
+ "verifymessage <novacoinaddress> <signature> <message>\n"
"Verify a signed message");
string strAddress = params[0].get_str();
{
if (fHelp || params.size() < 1 || params.size() > 2)
throw runtime_error(
- "getreceivedbyaddress <ppcoinaddress> [minconf=1]\n"
- "Returns the total amount received by <ppcoinaddress> in transactions with at least [minconf] confirmations.");
+ "getreceivedbyaddress <novacoinaddress> [minconf=1]\n"
+ "Returns the total amount received by <novacoinaddress> 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;
{
if (pwalletMain->IsCrypted() && (fHelp || params.size() < 3 || params.size() > 6))
throw runtime_error(
- "sendfrom <fromaccount> <toppcoinaddress> <amount> [minconf=1] [comment] [comment-to]\n"
+ "sendfrom <fromaccount> <tonovacoinaddress> <amount> [minconf=1] [comment] [comment-to]\n"
"<amount> 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 <fromaccount> <toppcoinaddress> <amount> [minconf=1] [comment] [comment-to]\n"
+ "sendfrom <fromaccount> <tonovacoinaddress> <amount> [minconf=1] [comment] [comment-to]\n"
"<amount> 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");
{
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_);
{
string msg = "addmultisigaddress <nrequired> <'[\"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);
}
// 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";
}
{
if (fHelp || params.size() != 1)
throw runtime_error(
- "validateaddress <ppcoinaddress>\n"
- "Return information about <ppcoinaddress>.");
+ "validateaddress <novacoinaddress>\n"
+ "Return information about <novacoinaddress>.");
CBitcoinAddress address(params[0].get_str());
bool isValid = address.IsValid();
"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<uint256, pair<CBlock*, CScript> > mapNewBlock_t;
static mapNewBlock_t mapNewBlock;
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);
{
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"
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"
"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,
{
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"))
}
// ppcoin: sync-checkpoint master key
-const std::string CSyncCheckpoint::strMasterPubKey = "04c0c707c28533fd5c9f79d2d3a2d80dff259ad8f915241cd14608fb9bc07c74830efe8438f2b272a866b4af5e0c2cc2a9909972aefbd976937e39f46bb38c277c";
+const std::string CSyncCheckpoint::strMasterPubKey = "04a51b735f816de4ec3f891d5b38bbc91e1f7245c7c08d17990760b86b4d8fc3910a850ffecf73bfa8886f01739a0c4c4322201282d07b6e48ce931cc92af94850";
std::string CSyncCheckpoint::strMasterPrivKey = "";
// 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
// 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
// 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"
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
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] <command> [params]\t " + _("Send command to -server or ppcoind") + "\n" +
- " ppcoind [options] help \t\t " + _("List commands") + "\n" +
- " ppcoind [options] help <command> \t\t " + _("Get help for a command") + "\n" +
+ " novacoind [options] \t " + "\n" +
+ " novacoind [options] <command> [params]\t " + _("Send command to -server or novacoind") + "\n" +
+ " novacoind [options] help \t\t " + _("List commands") + "\n" +
+ " novacoind [options] help <command> \t\t " + _("Get help for a command") + "\n" +
_("Options:") + "\n" +
- " -conf=<file> \t\t " + _("Specify configuration file (default: ppcoin.conf)") + "\n" +
- " -pid=<file> \t\t " + _("Specify pid file (default: ppcoind.pid)") + "\n" +
+ " -conf=<file> \t\t " + _("Specify configuration file (default: novacoin.conf)") + "\n" +
+ " -pid=<file> \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" +
" -timeout=<n> \t " + _("Specify connection timeout (in milliseconds)") + "\n" +
" -proxy=<ip:port> \t " + _("Connect through socks4 proxy") + "\n" +
" -dns \t " + _("Allow DNS lookups for addnode and connect") + "\n" +
- " -port=<port> \t\t " + _("Listen for connections on <port> (default: 9901 or testnet: 9903)") + "\n" +
+ " -port=<port> \t\t " + _("Listen for connections on <port> (default: 7777 or testnet: 17777)") + "\n" +
" -maxconnections=<n>\t " + _("Maintain at most <n> connections to peers (default: 125)") + "\n" +
" -addnode=<ip> \t " + _("Add a node to connect to and attempt to keep the connection open") + "\n" +
" -connect=<ip> \t\t " + _("Connect only to the specified node") + "\n" +
#ifdef QT_GUI
" -lang=<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=<n> \t " + _("Threshold for disconnecting misbehaving peers (default: 100)") + "\n" +
" -bantime=<n> \t " + _("Number of seconds to keep misbehaving peers from reconnecting (default: 86400)") + "\n" +
" -maxreceivebuffer=<n>\t " + _("Maximum per-connection receive buffer, <n>*1000 bytes (default: 10000)") + "\n" +
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"))
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;
}
// Load data files
//
if (fDaemon)
- fprintf(stdout, "ppcoin server starting\n");
+ fprintf(stdout, "novacoin server starting\n");
int64 nStart;
InitMessage(_("Loading addresses..."));
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
if (!strErrors.str().empty())
{
- ThreadSafeMessageBox(strErrors.str(), _("PPCoin"), wxOK | wxICON_ERROR | wxMODAL);
+ ThreadSafeMessageBox(strErrors.str(), _("NovaCoin"), wxOK | wxICON_ERROR | wxMODAL);
return false;
}
std::string strError;
if (!BindListenPort(strError))
{
- ThreadSafeMessageBox(strError, _("PPCoin"), wxOK | wxMODAL);
+ ThreadSafeMessageBox(strError, _("NovaCoin"), wxOK | wxMODAL);
return false;
}
}
{
if (!ParseMoney(mapArgs["-paytxfee"], nTransactionFee) || nTransactionFee < MIN_TX_FEE)
{
- ThreadSafeMessageBox(_("Invalid amount for -paytxfee=<amount>"), _("PPCoin"), wxOK | wxMODAL);
+ ThreadSafeMessageBox(_("Invalid amount for -paytxfee=<amount>"), _("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
int64 nReserveBalance = 0;
if (!ParseMoney(mapArgs["-reservebalance"], nReserveBalance))
{
- ThreadSafeMessageBox(_("Invalid amount for -reservebalance=<amount>"), _("PPCoin"), wxOK | wxMODAL);
+ ThreadSafeMessageBox(_("Invalid amount for -reservebalance=<amount>"), _("NovaCoin"), wxOK | wxMODAL);
return false;
}
}
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);
}
//
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);
if (mapArgs.count("-connect") || fNoListen)
return;
- if (!GetBoolArg("-irc", false))
+ if (!GetBoolArg("-irc", true))
return;
printf("ThreadIRCSeed started\n");
}
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();
map<uint256, CBlockIndex*> mapBlockIndex;
set<pair<COutPoint, unsigned int> > 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;
// 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;
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)
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;
// 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);
// 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;
}
}
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");
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;
}
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
// 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<unsigned char>((const unsigned char*)pszTimestamp, (const unsigned char*)pszTimestamp + strlen(pszTimestamp));
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());
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
((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
{
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();
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);
//
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;
break; // need to update coinbase timestamp
}
}
+
+ scrypt_buffer_free(scratchbuf);
}
void static ThreadBitcoinMiner(void* parg)
// 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
#include "bignum.h"
#include "net.h"
#include "script.h"
+#include "scrypt_mine.h"
#ifdef WIN32
#include <io.h> /* for _commit */
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;
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<uint256, CBlockIndex*> mapBlockIndex;
extern std::set<std::pair<COutPoint, unsigned int> > setStakeSeen;
// Settings
extern int64 nTransactionFee;
-
-
-
+extern bool fGenerateBitcoins;
+extern bool fLimitProcessors;
+extern int nLimitProcessors;
class CReserveKey;
class CTxDB;
void SetNull()
{
- nVersion = 1;
+ nVersion = 2;
hashPrevBlock = 0;
hashMerkleRoot = 0;
nTime = 0;
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
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 \
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
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))
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
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 \
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))
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
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 \
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)
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
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 \
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
-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))
-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
// 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.
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++)
{
}
}
- string strDesc = "PPCoin " + FormatFullVersion();
+ string strDesc = "NovaCoin " + FormatFullVersion();
#ifndef UPNPDISCOVER_SUCCESS
/* miniupnpc 1.5 */
r = UPNP_AddPortMapping(urls.controlURL, data.first.servicetype,
// 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)
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");
{
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());
// 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))
// 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
// 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[] =
#include <string>
#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;
// 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;
<RCC>
<qresource prefix="/icons">
- <file alias="bitcoin">res/icons/bitcoin.png</file>
+ <file alias="bitcoin">res/icons/novacoin.png</file>
<file alias="address-book">res/icons/address-book.png</file>
<file alias="quit">res/icons/quit.png</file>
<file alias="send">res/icons/send.png</file>
- <file alias="toolbar">res/icons/toolbar.png</file>
+ <file alias="toolbar">res/icons/novacoin-16.png</file>
<file alias="connect_0">res/icons/connect0_16.png</file>
<file alias="connect_1">res/icons/connect1_16.png</file>
<file alias="connect_2">res/icons/connect2_16.png</file>
<file alias="update_spinner">res/movies/update_spinner.mng</file>
</qresource>
<qresource prefix="/translations">
- <file alias="ca_ES">locale/bitcoin_ca_ES.qm</file>
- <file alias="cs">locale/bitcoin_cs.qm</file>
- <file alias="da">locale/bitcoin_da.qm</file>
- <file alias="de">locale/bitcoin_de.qm</file>
<file alias="en">locale/bitcoin_en.qm</file>
- <file alias="es_CL">locale/bitcoin_es_CL.qm</file>
- <file alias="es">locale/bitcoin_es.qm</file>
- <file alias="et">locale/bitcoin_et.qm</file>
- <file alias="eu_ES">locale/bitcoin_eu_ES.qm</file>
- <file alias="fa_IR">locale/bitcoin_fa_IR.qm</file>
- <file alias="fa">locale/bitcoin_fa.qm</file>
- <file alias="fi">locale/bitcoin_fi.qm</file>
- <file alias="fr_CA">locale/bitcoin_fr_CA.qm</file>
- <file alias="fr_FR">locale/bitcoin_fr_FR.qm</file>
- <file alias="he">locale/bitcoin_he.qm</file>
- <file alias="hr">locale/bitcoin_hr.qm</file>
- <file alias="hu">locale/bitcoin_hu.qm</file>
- <file alias="it">locale/bitcoin_it.qm</file>
- <file alias="lt">locale/bitcoin_lt.qm</file>
- <file alias="nb">locale/bitcoin_nb.qm</file>
- <file alias="nl">locale/bitcoin_nl.qm</file>
- <file alias="pl">locale/bitcoin_pl.qm</file>
- <file alias="pt_BR">locale/bitcoin_pt_BR.qm</file>
- <file alias="ro_RO">locale/bitcoin_ro_RO.qm</file>
<file alias="ru">locale/bitcoin_ru.qm</file>
- <file alias="sk">locale/bitcoin_sk.qm</file>
- <file alias="sr">locale/bitcoin_sr.qm</file>
- <file alias="sv">locale/bitcoin_sv.qm</file>
- <file alias="tr">locale/bitcoin_tr.qm</file>
- <file alias="uk">locale/bitcoin_uk.qm</file>
- <file alias="zh_CN">locale/bitcoin_zh_CN.qm</file>
- <file alias="zh_TW">locale/bitcoin_zh_TW.qm</file>
</qresource>
</RCC>
* 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"
notificator(0)
{
resize(850, 550);
- setWindowTitle(tr("PPCoin Wallet"));
+ setWindowTitle(tr("NovaCoin Wallet"));
#ifndef Q_WS_MAC
setWindowIcon(QIcon(":icons/bitcoin"));
#else
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);
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);
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)));
trayIconMenu->addAction(quitAction);
#endif
- notificator = new Notificator(tr("bitcoin-qt"), trayIcon);
+ notificator = new Notificator(tr("novacoin-qt"), trayIcon);
}
#ifndef Q_WS_MAC
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)
#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"),
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..."),
"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
+};
{
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("???");
}
}
{
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("???");
}
}
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:
</rect>
</property>
<property name="windowTitle">
- <string>About Bitcoin</string>
+ <string>About NovaCoin</string>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<item>
<widget class="QLabel" name="label">
<property name="text">
- <string><b>Bitcoin</b> version</string>
+ <string><b>NovaCoin</b> version</string>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
<item>
<widget class="QLabel" name="label_2">
<property name="text">
- <string>Copyright © 2009-2012 Bitcoin Developers
+ <string>Copyright © 2009-2012 NovaCoin Developers
This is experimental software.
<item>
<widget class="QLabel" name="labelExplanation">
<property name="text">
- <string>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.</string>
+ <string>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.</string>
</property>
<property name="textFormat">
<enum>Qt::AutoText</enum>
<item>
<widget class="QValidatedLineEdit" name="signFrom">
<property name="toolTip">
- <string>The address to sign the message with (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</string>
+ <string>The address to sign the message with (e.g. 4Zo1ga6xuKuQ7JV7M9rGDoxdbYwV5zgQJ5)</string>
</property>
<property name="maxLength">
<number>34</number>
<item>
<widget class="QValidatedLineEdit" name="payTo">
<property name="toolTip">
- <string>The address to send the payment to (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</string>
+ <string>The address to send the payment to (e.g. 4Zo1ga6xuKuQ7JV7M9rGDoxdbYwV5zgQJ5)</string>
</property>
<property name="maxLength">
<number>34</number>
<name>AboutDialog</name>
<message>
<location filename="../forms/aboutdialog.ui" line="14"/>
- <source>About Bitcoin</source>
+ <source>About NovaCoin</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/aboutdialog.ui" line="53"/>
- <source><b>Bitcoin</b> version</source>
+ <source><b>NovaCoin</b> version</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/aboutdialog.ui" line="91"/>
- <source>Copyright © 2009-2012 Bitcoin Developers
+ <source>Copyright © 2009-2012 NovaCoin Developers
This is experimental software.
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="20"/>
- <source>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.</source>
+ <source>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.</source>
<translation type="unfinished"></translation>
</message>
<message>
</message>
<message>
<location filename="../askpassphrasedialog.cpp" line="102"/>
- <source>WARNING: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR BITCOINS</b>!
+ <source>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?</source>
<translation type="unfinished"></translation>
</message>
</message>
<message>
<location filename="../askpassphrasedialog.cpp" line="112"/>
- <source>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.</source>
+ <source>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.</source>
<translation type="unfinished"></translation>
</message>
<message>
<name>BitcoinGUI</name>
<message>
<location filename="../bitcoingui.cpp" line="70"/>
- <source>Bitcoin Wallet</source>
+ <source>NovaCoin Wallet</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../bitcoingui.cpp" line="243"/>
- <source>Show/Hide &Bitcoin</source>
+ <source>Show/Hide &NovaCoin</source>
<translation type="unfinished"></translation>
</message>
<message>
</message>
<message>
<location filename="../bitcoingui.cpp" line="205"/>
- <source>Send coins to a bitcoin address</source>
+ <source>Send coins to a NovaCoin address</source>
<translation type="unfinished"></translation>
</message>
<message>
</message>
<message>
<location filename="../bitcoingui.cpp" line="235"/>
- <source>Show information about Bitcoin</source>
+ <source>Show information about NovaCoin</source>
<translation type="unfinished"></translation>
</message>
<message>
</message>
<message>
<location filename="../bitcoingui.cpp" line="241"/>
- <source>Modify configuration options for bitcoin</source>
+ <source>Modify configuration options for NovaCoin</source>
<translation type="unfinished"></translation>
</message>
<message numerus="yes">
</message>
<message>
<location filename="../bitcoingui.cpp" line="244"/>
- <source>Show or hide the Bitcoin window</source>
+ <source>Show or hide the NovaCoin window</source>
<translation type="unfinished"></translation>
</message>
<message>
</message>
<message>
<location filename="../bitcoingui.cpp" line="383"/>
- <source>Bitcoin client</source>
+ <source>NovaCoin client</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../bitcoingui.cpp" line="411"/>
- <source>bitcoin-qt</source>
+ <source>novacoin-qt</source>
<translation type="unfinished"></translation>
</message>
<message numerus="yes">
<location filename="../bitcoingui.cpp" line="475"/>
- <source>%n active connection(s) to Bitcoin network</source>
+ <source>%n active connection(s) to NovaCoin network</source>
<translation>
- <numerusform>%n active connection to Bitcoin network</numerusform>
- <numerusform>%n active connections to Bitcoin network</numerusform>
+ <numerusform>%n active connection to NovaCoin network</numerusform>
+ <numerusform>%n active connections to NovaCoin network</numerusform>
</translation>
</message>
<message>
</message>
<message>
<location filename="../editaddressdialog.cpp" line="96"/>
- <source>The entered address "%1" is not a valid bitcoin address.</source>
+ <source>The entered address "%1" is not a valid NovaCoin address.</source>
<translation type="unfinished"></translation>
</message>
<message>
<name>MainOptionsPage</name>
<message>
<location filename="../optionsdialog.cpp" line="170"/>
- <source>&Start Bitcoin on window system startup</source>
+ <source>&Start NovaCoin on window system startup</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../optionsdialog.cpp" line="171"/>
- <source>Automatically start Bitcoin after the computer is turned on</source>
+ <source>Automatically start NovaCoin after the computer is turned on</source>
<translation type="unfinished"></translation>
</message>
<message>
</message>
<message>
<location filename="../optionsdialog.cpp" line="185"/>
- <source>Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled.</source>
+ <source>Automatically open the NovaCoin client port on the router. This only works when your router supports UPnP and it is enabled.</source>
<translation type="unfinished"></translation>
</message>
<message>
</message>
<message>
<location filename="../forms/messagepage.ui" line="38"/>
- <source>The address to sign the message with (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
+ <source>The address to sign the message with (e.g. 4Zo1ga6xuKuQ7JV7M9rGDoxdbYwV5zgQJ5)</source>
<translation type="unfinished"></translation>
</message>
<message>
</message>
<message>
<location filename="../forms/sendcoinsentry.ui" line="93"/>
- <source>The address to send the payment to (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
+ <source>The address to send the payment to (e.g. 4Zo1ga6xuKuQ7JV7M9rGDoxdbYwV5zgQJ5)</source>
<translation type="unfinished"></translation>
</message>
<message>
</message>
<message>
<location filename="../sendcoinsentry.cpp" line="25"/>
- <source>Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
+ <source>Enter a NovaCoin address (e.g. 4Zo1ga6xuKuQ7JV7M9rGDoxdbYwV5zgQJ5)</source>
<translation type="unfinished"></translation>
</message>
</context>
<name>bitcoin-core</name>
<message>
<location filename="../bitcoinstrings.cpp" line="7"/>
- <source>Bitcoin version</source>
+ <source>NovaCoin version</source>
<translation type="unfinished"></translation>
</message>
<message>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="9"/>
- <source>Send command to -server or bitcoind</source>
+ <source>Send command to -server or novacoind</source>
<translation type="unfinished"></translation>
</message>
<message>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="13"/>
- <source>Specify configuration file (default: bitcoin.conf)</source>
+ <source>Specify configuration file (default: novacoin.conf)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="14"/>
- <source>Specify pid file (default: bitcoind.pid)</source>
+ <source>Specify pid file (default: novacoind.pid)</source>
<translation type="unfinished"></translation>
</message>
<message>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="73"/>
- <source>Cannot obtain a lock on data directory %s. Bitcoin is probably already running.</source>
+ <source>Cannot obtain a lock on data directory %s. NovaCoin is probably already running.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="76"/>
- <source>Bitcoin</source>
+ <source>NovaCoin</source>
<translation type="unfinished"></translation>
</message>
<message>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="83"/>
- <source>Error loading wallet.dat: Wallet requires newer version of Bitcoin</source>
+ <source>Error loading wallet.dat: Wallet requires newer version of NovaCoin</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="84"/>
- <source>Wallet needed to be rewritten: restart Bitcoin to complete</source>
+ <source>Wallet needed to be rewritten: restart NovaCoin to complete</source>
<translation type="unfinished"></translation>
</message>
<message>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="3"/>
- <source>Unable to bind to port %d on this computer. Bitcoin is probably already running.</source>
+ <source>Unable to bind to port %d on this computer. NovaCoin is probably already running.</source>
<translation type="unfinished"></translation>
</message>
<message>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="114"/>
- <source>Warning: Please check that your computer's date and time are correct. If your clock is wrong Bitcoin will not work properly.</source>
+ <source>Warning: Please check that your computer's date and time are correct. If your clock is wrong NovaCoin will not work properly.</source>
<translation type="unfinished"></translation>
</message>
</context>
<name>AboutDialog</name>
<message>
<location filename="../forms/aboutdialog.ui" line="14"/>
- <source>About Bitcoin</source>
- <translation>О Bitcoin</translation>
+ <source>About NovaCoin</source>
+ <translation>О NovaCoin</translation>
</message>
<message>
<location filename="../forms/aboutdialog.ui" line="53"/>
- <source><b>Bitcoin</b> version</source>
- <translation><b>Bitcoin</b> версия</translation>
+ <source><b>NovaCoin</b> version</source>
+ <translation><b>NovaCoin</b> версия</translation>
</message>
<message>
<location filename="../forms/aboutdialog.ui" line="85"/>
- <source>Copyright © 2009-2012 Bitcoin Developers
+ <source>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.</source>
- <translation>Все права защищены © 2009-2012 Разработчики Bitcoin
+ <translation>Все права защищены © 2009-2012 Разработчики NovaCoin
Это экспериментальная программа.
</message>
<message>
<location filename="../forms/addressbookpage.ui" line="20"/>
- <source>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.</source>
+ <source>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.</source>
<translation>Здесь перечислены Ваши адреса для получения платежей. Вы можете использовать их для того, чтобы давать разным людям разные адреса и таким образом иметь возможность отслеживать кто и сколько Вам платил, а так же поддерживать бо́льшую анонимность..</translation>
</message>
<message>
</message>
<message>
<location filename="../askpassphrasedialog.cpp" line="102"/>
- <source>WARNING: If you encrypt your wallet and lose your passphrase, you will <b>LOSE ALL OF YOUR BITCOINS</b>!
+ <source>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?</source>
<translation>ВНИМАНИЕ: Если вы зашифруете бумажник и потеряете свой \200b\200bпароль, вы <b>ПОТЕРЯЕТЕ ВСЕ ВАШИ БИТКОИНЫ!</b>
Вы действительно хотите зашифровать ваш бумажник?</translation>
</message>
<message>
<location filename="../askpassphrasedialog.cpp" line="112"/>
- <source>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.</source>
+ <source>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.</source>
<translation>Сейчас программа закроется для завершения процесса шифрования. Помните, что шифрование вашего бумажника не может полностью защитить ваши биткоины от кражи с помощью инфицирования вашего компьютера вредоносным ПО.</translation>
</message>
<message>
<name>BitcoinGUI</name>
<message>
<location filename="../bitcoingui.cpp" line="69"/>
- <source>Bitcoin Wallet</source>
- <translation>Bitcoin-бумажник</translation>
+ <source>NovaCoin Wallet</source>
+ <translation>NovaCoin-бумажник</translation>
+ </message>
+ <message>
+ <location filename="../bitcoingui.cpp" line="243"/>
+ <source>Show/Hide &NovaCoin</source>
+ <translation>Показать/Спрятать бумажник</translation>
</message>
<message>
<location filename="../bitcoingui.cpp" line="142"/>
</message>
<message>
<location filename="../bitcoingui.cpp" line="201"/>
- <source>Send coins to a bitcoin address</source>
+ <source>Send coins to a NovaCoin address</source>
<translation>Отправить монеты на указанный адрес</translation>
</message>
<message>
</message>
<message>
<location filename="../bitcoingui.cpp" line="231"/>
- <source>Show information about Bitcoin</source>
- <translation>Показать информацию о Bitcoin'е</translation>
+ <source>Show information about NovaCoin</source>
+ <translation>Показать информацию о NovaCoin'е</translation>
</message>
<message>
<location filename="../bitcoingui.cpp" line="233"/>
</message>
<message>
<location filename="../bitcoingui.cpp" line="237"/>
- <source>Modify configuration options for bitcoin</source>
+ <source>Modify configuration options for NovaCoin</source>
<translation>Изменить настройки</translation>
</message>
<message>
<location filename="../bitcoingui.cpp" line="239"/>
- <source>Open &Bitcoin</source>
+ <source>Open &NovaCoin</source>
<translation>&Показать бумажник</translation>
</message>
<message>
<location filename="../bitcoingui.cpp" line="240"/>
- <source>Show the Bitcoin window</source>
+ <source>Show the NovaCoin window</source>
<translation>Показать окно бумажника</translation>
</message>
<message>
<message>
<location filename="../bitcoingui.cpp" line="246"/>
<source>&Backup Wallet</source>
- <translation type="unfinished"/>
+ <translation>Скопировать кошелек</translation>
</message>
<message>
<location filename="../bitcoingui.cpp" line="247"/>
<source>Backup wallet to another location</source>
- <translation type="unfinished"/>
+ <translation>Скопировать кошелек в другое место</translation>
</message>
<message>
<location filename="../bitcoingui.cpp" line="248"/>
</message>
<message>
<location filename="../bitcoingui.cpp" line="407"/>
- <source>bitcoin-qt</source>
- <translation>bitcoin-qt</translation>
+ <source>novacoin-qt</source>
+ <translation>novacoin-qt</translation>
</message>
<message numerus="yes">
<location filename="../bitcoingui.cpp" line="449"/>
- <source>%n active connection(s) to Bitcoin network</source>
+ <source>%n active connection(s) to NovaCoin network</source>
<translation><numerusform>%n активное соединение с сетью</numerusform><numerusform>%n активных соединений с сетью</numerusform><numerusform>%n активных соединений с сетью</numerusform></translation>
</message>
<message>
<message>
<location filename="../bitcoingui.cpp" line="782"/>
<source>Backup Wallet</source>
- <translation type="unfinished"/>
+ <translation>Скопировать кошелек</translation>
</message>
<message>
<location filename="../bitcoingui.cpp" line="782"/>
</message>
<message>
<location filename="../editaddressdialog.cpp" line="96"/>
- <source>The entered address "%1" is not a valid bitcoin address.</source>
- <translation>Введённый адрес «%1» не является правильным Bitcoin-адресом.</translation>
+ <source>The entered address "%1" is not a valid NovaCoin address.</source>
+ <translation>Введённый адрес «%1» не является правильным NovaCoin-адресом.</translation>
</message>
<message>
<location filename="../editaddressdialog.cpp" line="101"/>
<name>MainOptionsPage</name>
<message>
<location filename="../optionsdialog.cpp" line="170"/>
- <source>&Start Bitcoin on window system startup</source>
+ <source>&Start NovaCoin on window system startup</source>
<translation>&Запускать бумажник при входе в систему</translation>
</message>
<message>
<location filename="../optionsdialog.cpp" line="171"/>
- <source>Automatically start Bitcoin after the computer is turned on</source>
+ <source>Automatically start NovaCoin after the computer is turned on</source>
<translation>Автоматически запускать бумажник, когда включается компьютер</translation>
</message>
<message>
</message>
<message>
<location filename="../optionsdialog.cpp" line="181"/>
- <source>Automatically open the Bitcoin client port on the router. This only works when your router supports UPnP and it is enabled.</source>
- <translation>Автоматически открыть порт для Bitcoin-клиента на роутере. Работает ТОЛЬКО если Ваш роутер поддерживает UPnP и данная функция включена.</translation>
+ <source>Automatically open the NovaCoin client port on the router. This only works when your router supports UPnP and it is enabled.</source>
+ <translation>Автоматически открыть порт для NovaCoin-клиента на роутере. Работает ТОЛЬКО если Ваш роутер поддерживает UPnP и данная функция включена.</translation>
</message>
<message>
<location filename="../optionsdialog.cpp" line="185"/>
<message>
<location filename="../optionsdialog.cpp" line="191"/>
<source>Connect to the Bitcon network through a SOCKS4 proxy (e.g. when connecting through Tor)</source>
- <translation>Подключаться к сети Bitcoin через SOCKS4 прокси (например, при использовании Tor)</translation>
+ <translation>Подключаться к сети NovaCoin через SOCKS4 прокси (например, при использовании Tor)</translation>
</message>
<message>
<location filename="../optionsdialog.cpp" line="196"/>
<message>
<location filename="../forms/messagepage.ui" line="20"/>
<source>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.</source>
- <translation type="unfinished"/>
+ <translation>Вы можете подписать сообщение ключом от своего адреса, чтобы доказать владенгие им. Будьте осторожны и не подписывайте текст, не относящийся лично к вам. ПОдписывайте только текст, с которым вы полностью согласны и который можете однозначно интерпретировать.</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="38"/>
- <source>The address to send the payment to (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
- <translation>Адрес получателя платежа (например 1LA5FtQhnnWnkK6zjFfutR7Stiit4wKd63)</translation>
+ <source>The address to send the payment to (e.g. 4Zo1ga6xuKuQ7JV7M9rGDoxdbYwV5zgQJ5)</source>
+ <translation>Адрес получателя платежа (например 4Zo1ga6xuKuQ7JV7M9rGDoxdbYwV5zgQJ5)</translation>
</message>
<message>
<location filename="../forms/messagepage.ui" line="48"/>
</message>
<message>
<location filename="../forms/overviewpage.ui" line="40"/>
+ <source>Wallet</source>
+ <translation>Бумажник</translation>
+ </message>
+ <message>
+ <location filename="../forms/overviewpage.ui" line="40"/>
<source>Balance:</source>
<translation>Баланс:</translation>
</message>
<message>
+ <location filename="../forms/overviewpage.ui" line="40"/>
+ <source>Stake:</source>
+ <translation>Доля:</translation>
+ </message>
+ <message>
<location filename="../forms/overviewpage.ui" line="47"/>
<source>123.456 BTC</source>
<translation>123.456 BTC</translation>
</message>
<message>
<location filename="../forms/sendcoinsentry.ui" line="93"/>
- <source>The address to send the payment to (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
- <translation>Адрес получателя платежа (например 1LA5FtQhnnWnkK6zjFfutR7Stiit4wKd63)</translation>
+ <source>The address to send the payment to (e.g. 4Zo1ga6xuKuQ7JV7M9rGDoxdbYwV5zgQJ5)</source>
+ <translation>Адрес получателя платежа (например 4Zo1ga6xuKuQ7JV7M9rGDoxdbYwV5zgQJ5)</translation>
</message>
<message>
<location filename="../forms/sendcoinsentry.ui" line="103"/>
</message>
<message>
<location filename="../sendcoinsentry.cpp" line="25"/>
- <source>Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)</source>
- <translation>Введите Bitcoin-адрес (например 1LA5FtQhnnWnkK6zjFfutR7Stiit4wKd63)</translation>
+ <source>Enter a NovaCoin address (e.g. 4Zo1ga6xuKuQ7JV7M9rGDoxdbYwV5zgQJ5)</source>
+ <translation>Введите NovaCoin-адрес (например 4Zo1ga6xuKuQ7JV7M9rGDoxdbYwV5zgQJ5)</translation>
</message>
</context>
<context>
<name>bitcoin-core</name>
<message>
<location filename="../bitcoinstrings.cpp" line="3"/>
- <source>Bitcoin version</source>
+ <source>NovaCoin version</source>
<translation>Версия</translation>
</message>
<message>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="5"/>
- <source>Send command to -server or bitcoind</source>
- <translation>Отправить команду на -server или bitcoind</translation>
+ <source>Send command to -server or novacoind</source>
+ <translation>Отправить команду на -server или novacoind</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="6"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="10"/>
- <source>Specify pid file (default: bitcoind.pid)</source>
- <translation>Указать pid-файл (по умолчанию: bitcoin.pid)</translation>
+ <source>Specify pid file (default: novacoind.pid)</source>
+ <translation>Указать pid-файл (по умолчанию: novacoin.pid)</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="11"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="57"/>
- <source>Cannot obtain a lock on data directory %s. Bitcoin is probably already running.</source>
+ <source>Cannot obtain a lock on data directory %s. NovaCoin is probably already running.</source>
<translation>Невозможно установить блокировку на рабочую директорию %s. Возможно, бумажник уже запущен.</translation>
</message>
<message>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="66"/>
- <source>Error loading wallet.dat: Wallet requires newer version of Bitcoin</source>
- <translation>Ошибка загрузки wallet.dat: бумажник требует более новую версию Bitcoin</translation>
+ <source>Error loading wallet.dat: Wallet requires newer version of NovaCoin</source>
+ <translation>Ошибка загрузки wallet.dat: бумажник требует более новую версию NovaCoin</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="67"/>
- <source>Wallet needed to be rewritten: restart Bitcoin to complete</source>
- <translation>Необходимо перезаписать бумажник, перезапустите Bitcoin для завершения операции.</translation>
+ <source>Wallet needed to be rewritten: restart NovaCoin to complete</source>
+ <translation>Необходимо перезаписать бумажник, перезапустите NovaCoin для завершения операции.</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="68"/>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="78"/>
- <source>Unable to bind to port %d on this computer. Bitcoin is probably already running.</source>
+ <source>Unable to bind to port %d on this computer. NovaCoin is probably already running.</source>
<translation>Невозможно забиндить порт %d на данном компьютере. Возможно, бумажник ужк запущен.</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="81"/>
- <source>Warning: Please check that your computer's date and time are correct. If your clock is wrong Bitcoin will not work properly.</source>
- <translation>ВНИМАНИЕ: Проверьте дату и время, установленные на Вашем компьютере. Если Ваши часы идут не правильно Bitcoin может наботать не корректно.</translation>
+ <source>Warning: Please check that your computer's date and time are correct. If your clock is wrong NovaCoin will not work properly.</source>
+ <translation>ВНИМАНИЕ: Проверьте дату и время, установленные на Вашем компьютере. Если Ваши часы идут не правильно NovaCoin может наботать не корректно.</translation>
</message>
<message>
<location filename="../bitcoinstrings.cpp" line="84"/>
{
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
#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:"));
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();
-IDI_ICON1 ICON DISCARDABLE "icons/bitcoin.ico"
+IDI_ICON1 ICON DISCARDABLE "icons/novacoin.ico"
#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);
{
if (fHelp || params.size() < 1 || params.size() > 2)
throw runtime_error(
- "importprivkey <ppcoinprivkey> [label]\n"
+ "importprivkey <novacoinprivkey> [label]\n"
"Adds a private key (as returned by dumpprivkey) to your wallet.");
string strSecret = params[0].get_str();
{
if (fHelp || params.size() != 1)
throw runtime_error(
- "dumpprivkey <ppcoinaddress>\n"
- "Reveals the private key corresponding to <ppcoinaddress>.");
+ "dumpprivkey <novacoinaddress>\n"
+ "Reveals the private key corresponding to <novacoinaddress>.");
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))
// 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 <boost/foreach.hpp>
// 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
// 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.
pszModule[0] = '\0';
GetModuleFileNameA(NULL, pszModule, sizeof(pszModule));
#else
- const char* pszModule = "ppcoin";
+ const char* pszModule = "novacoin";
#endif
if (pex)
snprintf(pszMessage, 1000,
{
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");
// 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
}
{
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;
}
{
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;
}
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);
}
}
}
#ifdef WIN32
boost::filesystem::path static StartupShortcutPath()
{
- return MyGetSpecialFolderPath(CSIDL_STARTUP, true) / "PPCoin.lnk";
+ return MyGetSpecialFolderPath(CSIDL_STARTUP, true) / "NovaCoin.lnk";
}
bool GetStartOnSystemStartup()
boost::filesystem::path static GetAutostartFilePath()
{
- return GetAutostartDir() / "ppcoin.desktop";
+ return GetAutostartDir() / "novacoin.desktop";
}
bool GetStartOnSystemStartup()
// 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";
// 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
#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
// 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