From a687d4f574cb22ec969354dce3237558982e29d3 Mon Sep 17 00:00:00 2001 From: Luke Dashjr Date: Fri, 19 Aug 2011 12:45:27 -0400 Subject: [PATCH 01/12] Support for boost filesystem version 3 --- src/ui.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/ui.cpp b/src/ui.cpp index 198a2720..6b7ecdbc 100644 --- a/src/ui.cpp +++ b/src/ui.cpp @@ -1805,7 +1805,11 @@ void SetStartOnSystemStartup(bool fAutoStart) { if (!fAutoStart) { +#if defined(BOOST_FILESYSTEM_VERSION) && BOOST_FILESYSTEM_VERSION >= 3 + unlink(GetAutostartFilePath().string().c_str()); +#else unlink(GetAutostartFilePath().native_file_string().c_str()); +#endif } else { From 7b7d46be8999ed6fc76b2abca71b40a5fe2e77a5 Mon Sep 17 00:00:00 2001 From: Matt Corallo Date: Sat, 3 Sep 2011 02:21:55 -0400 Subject: [PATCH 02/12] Fix build process to actually work. --- contrib/gitian.yml | 6 ++++-- contrib/wxwidgets.yml | 4 ++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/contrib/gitian.yml b/contrib/gitian.yml index 9f03ba1b..8d0abf89 100644 --- a/contrib/gitian.yml +++ b/contrib/gitian.yml @@ -18,7 +18,8 @@ remotes: - "url": "https://github.com/bitcoin/bitcoin.git" "dir": "bitcoin" files: -- "wxWidgets-2.9.2-gitian.zip" +- "wxWidgets-2.9.2-x64-gitian.zip" +- "wxWidgets-2.9.2-x32-gitian.zip" - "miniupnpc-1.6.tar.gz" script: | INSTDIR="$HOME/install" @@ -32,7 +33,8 @@ script: | mkdir -p $INSTDIR/bin $INSTDIR/lib/wx $INSTDIR/include mkdir wxWidgets-2.9.2 cd wxWidgets-2.9.2 - unzip ../wxWidgets-2.9.2-gitian.zip + unzip ../wxWidgets-2.9.2-x32-gitian.zip + unzip -f ../wxWidgets-2.9.2-x64-gitian.zip cp -a bin/$GBUILD_BITS/wx/config/gtk2-unicode-static-2.9 $INSTDIR/bin/wx-config for lib in wx_gtk2u wxregexu wxtiff; do ar rc $INSTDIR/lib/lib${lib}-2.9.a bin/$GBUILD_BITS/$lib/*.o diff --git a/contrib/wxwidgets.yml b/contrib/wxwidgets.yml index a2406936..05096151 100644 --- a/contrib/wxwidgets.yml +++ b/contrib/wxwidgets.yml @@ -38,5 +38,5 @@ script: | cd $TMPDIR export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1 export FAKETIME=$REFERENCE_DATETIME - zip -r wxWidgets-2.9.2-gitian.zip * - cp wxWidgets-2.9.2-gitian.zip $OUTDIR + zip -r wxWidgets-2.9.2-x$GBUILD_BITS-gitian.zip * + cp wxWidgets-2.9.2-x$GBUILD_BITS-gitian.zip $OUTDIR From e077cce6179f499468b1c30583a529a7560c87cc Mon Sep 17 00:00:00 2001 From: Gavin Andresen Date: Mon, 5 Sep 2011 14:33:07 -0400 Subject: [PATCH 03/12] Optimize database writes for transactions with lots of TxIns. Patch from ArtForz, who discovered the problem. --- src/main.cpp | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index cbcfef04..dce26d35 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -813,7 +813,7 @@ bool CTransaction::ConnectInputs(CTxDB& txdb, map& mapTestPoo // Read txindex CTxIndex txindex; bool fFound = true; - if (fMiner && mapTestPool.count(prevout.hash)) + if ((fBlock || fMiner) && mapTestPool.count(prevout.hash)) { // Get txindex from current proposed changes txindex = mapTestPool[prevout.hash]; @@ -873,12 +873,7 @@ bool CTransaction::ConnectInputs(CTxDB& txdb, map& mapTestPoo txindex.vSpent[prevout.n] = posThisTx; // Write back - if (fBlock) - { - if (!txdb.UpdateTxIndex(prevout.hash, txindex)) - return error("ConnectInputs() : UpdateTxIndex failed"); - } - else if (fMiner) + if (fBlock || fMiner) { mapTestPool[prevout.hash] = txindex; } @@ -900,9 +895,8 @@ bool CTransaction::ConnectInputs(CTxDB& txdb, map& mapTestPoo if (fBlock) { - // Add transaction to disk index - if (!txdb.AddTxIndex(*this, posThisTx, pindexBlock->nHeight)) - return error("ConnectInputs() : AddTxPos failed"); + // Add transaction to changes + mapTestPool[GetHash()] = CTxIndex(posThisTx, vout.size()); } else if (fMiner) { @@ -991,16 +985,22 @@ bool CBlock::ConnectBlock(CTxDB& txdb, CBlockIndex* pindex) //// issue here: it doesn't know the version unsigned int nTxPos = pindex->nBlockPos + ::GetSerializeSize(CBlock(), SER_DISK) - 1 + GetSizeOfCompactSize(vtx.size()); - map mapUnused; + map mapQueuedChanges; int64 nFees = 0; BOOST_FOREACH(CTransaction& tx, vtx) { CDiskTxPos posThisTx(pindex->nFile, pindex->nBlockPos, nTxPos); nTxPos += ::GetSerializeSize(tx, SER_DISK); - if (!tx.ConnectInputs(txdb, mapUnused, posThisTx, pindex, nFees, true, false)) + if (!tx.ConnectInputs(txdb, mapQueuedChanges, posThisTx, pindex, nFees, true, false)) return false; } + // Write queued txindex changes + for (map::iterator mi = mapQueuedChanges.begin(); mi != mapQueuedChanges.end(); ++mi) + { + if (!txdb.UpdateTxIndex((*mi).first, (*mi).second)) + return error("ConnectBlock() : UpdateTxIndex failed"); + } if (vtx[0].GetValueOut() > GetBlockValue(pindex->nHeight, nFees)) return false; From adb8a55b46d3f2ae86f94ad73c0a03c79f7cd9e3 Mon Sep 17 00:00:00 2001 From: Alex Waters Date: Mon, 5 Sep 2011 21:16:46 -0400 Subject: [PATCH 04/12] Updated readme file --- README.md | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index ab328adb..54ab4a4a 100644 --- a/README.md +++ b/README.md @@ -7,10 +7,9 @@ Developers work in their own trees, then submit pull requests when they think th If it is a simple/trivial/non-controversial change, then one of the bitcoin development team members simply pulls it. -If it is a more complicated or potentially controversial change, then the patch submitter will be asked to start a discussion (if they haven't already) on the development forums: http://www.bitcoin.org/smf/index.php?board=6.0 +If it is a more complicated or potentially controversial change, then the patch submitter will be asked to start a discussion (if they haven't already) on the mailing list: http://sourceforge.net/mailarchive/forum.php?forum_name=bitcoin-development The patch will be accepted if there is broad consensus that it is a good thing. Developers should expect to rework and resubmit patches if they don't match the project's coding conventions (see coding.txt) or are controversial. -The master branch is regularly built and tested (by who? need people willing to be quality assurance testers), and periodically pushed to the subversion repo to become the official, stable, released bitcoin. +The master branch is regularly built and tested, but is not guaranteed to be completely stable. Tags are regularly created to indicate new official, stable release versions of Bitcoin. If you would like to help test the Bitcoin core, please contact QA@Bitcoin.org. - -Feature branches are created when there are major new features being worked on by several people. +Feature branches are created when there are major new features being worked on by several people. \ No newline at end of file From cc558f060372cf479b7d654775edc81908fd9179 Mon Sep 17 00:00:00 2001 From: Jeff Garzik Date: Mon, 5 Sep 2011 23:02:35 -0400 Subject: [PATCH 05/12] README.md: word wrap text file --- README.md | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 54ab4a4a..a41eb2d7 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,30 @@ + Bitcoin integration/staging tree Development process =================== -Developers work in their own trees, then submit pull requests when they think their feature or bug fix is ready. +Developers work in their own trees, then submit pull requests when +they think their feature or bug fix is ready. + +If it is a simple/trivial/non-controversial change, then one of the +bitcoin development team members simply pulls it. + +If it is a more complicated or potentially controversial +change, then the patch submitter will be asked to start a +discussion (if they haven't already) on the mailing list: +http://sourceforge.net/mailarchive/forum.php?forum_name=bitcoin-development -If it is a simple/trivial/non-controversial change, then one of the bitcoin development team members simply pulls it. +The patch will be accepted if there is broad consensus that it is a +good thing. Developers should expect to rework and resubmit patches +if they don't match the project's coding conventions (see coding.txt) +or are controversial. -If it is a more complicated or potentially controversial change, then the patch submitter will be asked to start a discussion (if they haven't already) on the mailing list: http://sourceforge.net/mailarchive/forum.php?forum_name=bitcoin-development -The patch will be accepted if there is broad consensus that it is a good thing. Developers should expect to rework and resubmit patches if they don't match the project's coding conventions (see coding.txt) or are controversial. +The master branch is regularly built and tested, but is not guaranteed +to be completely stable. Tags are regularly created to indicate new +official, stable release versions of Bitcoin. If you would like to +help test the Bitcoin core, please contact QA@Bitcoin.org. -The master branch is regularly built and tested, but is not guaranteed to be completely stable. Tags are regularly created to indicate new official, stable release versions of Bitcoin. If you would like to help test the Bitcoin core, please contact QA@Bitcoin.org. +Feature branches are created when there are major new features being +worked on by several people. -Feature branches are created when there are major new features being worked on by several people. \ No newline at end of file From e03209979b160d12420c12c47ea34e788de44d8f Mon Sep 17 00:00:00 2001 From: Han Lin Yap Date: Tue, 6 Sep 2011 20:13:43 +0300 Subject: [PATCH 06/12] Add a note to only include .po file --- locale/readme.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/locale/readme.txt b/locale/readme.txt index 9fca3ce6..4019bf43 100644 --- a/locale/readme.txt +++ b/locale/readme.txt @@ -3,3 +3,5 @@ locale//LC_MESSAGES/bitcoin.mo and .po .po is the sourcefile .mo is the compiled translation + +Note: pull requests should only include the .po file. Do not include .mo file \ No newline at end of file From e39f9256550e3e30965d1d5e6e16d232c3e0e4ac Mon Sep 17 00:00:00 2001 From: Luke Dashjr Date: Mon, 4 Jul 2011 14:45:08 -0400 Subject: [PATCH 07/12] ignore stuff --- .gitignore | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.gitignore b/.gitignore index aeeef170..c1d06a3d 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,9 @@ src/bitcoin src/bitcoind .*.swp *.*~* +*.bak +*.rej +*.orig +*.o +*.patch +.bitcoin From 905cbf0bf89edf43f575c20380aac896e833ef63 Mon Sep 17 00:00:00 2001 From: Alex B Date: Tue, 6 Sep 2011 20:41:33 +0200 Subject: [PATCH 08/12] Romanian translation added --- locale/ro/LC_MESSAGES/bitcoin.po | 1078 ++++++++++++++++++++++++++++++ 1 file changed, 1078 insertions(+) create mode 100644 locale/ro/LC_MESSAGES/bitcoin.po diff --git a/locale/ro/LC_MESSAGES/bitcoin.po b/locale/ro/LC_MESSAGES/bitcoin.po new file mode 100644 index 00000000..e906e975 --- /dev/null +++ b/locale/ro/LC_MESSAGES/bitcoin.po @@ -0,0 +1,1078 @@ +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-09-06 03:47+0100\n" +"PO-Revision-Date: 2011-09-06 06:36+0100\n" +"Last-Translator: Alex B \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: \n" +"X-Poedit-KeywordsList: _;gettext;gettext_noop\n" +"X-Poedit-Basepath: .\n" +"X-Poedit-Language: Romanian\n" +"X-Poedit-SourceCharset: iso-8859-2\n" +"X-Poedit-SearchPath-0: ../../..\n" + +#: ../../../src/init.cpp:163 +msgid "Bitcoin version" +msgstr "versiune Bitcoin" + +#: ../../../src/init.cpp:164 +msgid "Usage:" +msgstr "Uz:" + +#: ../../../src/init.cpp:166 +msgid "Send command to -server or bitcoind\n" +msgstr "Trimite comanda la bitcoin lansat cu -server sau bitcoind\n" + +#: ../../../src/init.cpp:167 +msgid "List commands\n" +msgstr "Listeaza comenzi\n" + +#: ../../../src/init.cpp:168 +msgid "Get help for a command\n" +msgstr "Ajutor pentru o comanda\n" + +#: ../../../src/init.cpp:169 +msgid "Options:\n" +msgstr "Optiuni:\n" + +#: ../../../src/init.cpp:170 +msgid "Specify configuration file (default: bitcoin.conf)\n" +msgstr "Specifica fisier de configuratie (predeterminat: bitcoin.conf)\n" + +#: ../../../src/init.cpp:171 +msgid "Specify pid file (default: bitcoind.pid)\n" +msgstr "Specifica fisier pid (predeterminat: bitcoin.pid)\n" + +#: ../../../src/init.cpp:172 +msgid "Generate coins\n" +msgstr "Genereaza monede\n" + +#: ../../../src/init.cpp:173 +msgid "Don't generate coins\n" +msgstr "Nu genera monede\n" + +#: ../../../src/init.cpp:174 +msgid "Start minimized\n" +msgstr "Porneste minimizat\n" + +#: ../../../src/init.cpp:175 +msgid "Specify data directory\n" +msgstr "Specifica directorul de date\n" + +#: ../../../src/init.cpp:176 +msgid "Specify connection timeout (in milliseconds)\n" +msgstr "Specifica timpul maxim de conexiune (in milisecunde)\n" + +#: ../../../src/init.cpp:177 +msgid "Connect through socks4 proxy\n" +msgstr "Conecteaza prin proxy socks4\n" + +#: ../../../src/init.cpp:178 +msgid "Allow DNS lookups for addnode and connect\n" +msgstr "Permite cautare DNS pentru addnode si connect\n" + +#: ../../../src/init.cpp:179 +msgid "Add a node to connect to\n" +msgstr "Adauga un nod de conectare\n" + +#: ../../../src/init.cpp:180 +msgid "Connect only to the specified node\n" +msgstr "Conecteaza numai la nodul specificat\n" + +#: ../../../src/init.cpp:181 +msgid "Don't accept connections from outside\n" +msgstr "Nu accepta conexiuni din exterior\n" + +#: ../../../src/init.cpp:184 +msgid "Don't attempt to use UPnP to map the listening port\n" +msgstr "Nu utiliza UPnP pentru deschiderea portul de ascultare\n" + +#: ../../../src/init.cpp:186 +msgid "Attempt to use UPnP to map the listening port\n" +msgstr "Incearca sa utilizezi UPnP pentru deschiderea portului de ascultare.\n" + +#: ../../../src/init.cpp:189 +msgid "Fee per KB to add to transactions you send\n" +msgstr "Comision per KB ce se adauga la tranzactiile transmise\n" + +#: ../../../src/init.cpp:191 +msgid "Accept command line and JSON-RPC commands\n" +msgstr "Accepta comenzi de consola si JSON-RPC\n" + +#: ../../../src/init.cpp:194 +msgid "Run in the background as a daemon and accept commands\n" +msgstr "Executa ca daemon si accepta comenzi\n" + +#: ../../../src/init.cpp:196 +msgid "Use the test network\n" +msgstr "Utilizeaza reteaua de probe\n" + +#: ../../../src/init.cpp:197 +msgid "Username for JSON-RPC connections\n" +msgstr "Utilizator pentru conexiuni JSON-RPC\n" + +#: ../../../src/init.cpp:198 +msgid "Password for JSON-RPC connections\n" +msgstr "Parola pentru conexiuni JSON-RPC\n" + +#: ../../../src/init.cpp:199 +msgid "Listen for JSON-RPC connections on (default: 8332)\n" +msgstr "Asculta conexiuni JSON-RPC pe portul (predeterminat: 8332)\n" + +#: ../../../src/init.cpp:200 +msgid "Allow JSON-RPC connections from specified IP address\n" +msgstr "Permite conexiuni JSON-RPC de la adresa IP specifica\n" + +#: ../../../src/init.cpp:201 +msgid "Send commands to node running on (default: 127.0.0.1)\n" +msgstr "Trimite comanda la nod existent la (predeterminat: 127.0.0.1)\n" + +#: ../../../src/init.cpp:202 +msgid "Set key pool size to (default: 100)\n" +msgstr "Ajusteaza numarul de chei in rezerva (predeterminat: 100)\n" + +#: ../../../src/init.cpp:203 +msgid "Rescan the block chain for missing wallet transactions\n" +msgstr "Rescaneza lantul de blocuri in cautare de tranzacti lipsa din portofel\n" + +#: ../../../src/init.cpp:207 +msgid "" +"\n" +"SSL options: (see the Bitcoin Wiki for SSL setup instructions)\n" +msgstr "" +"\n" +"Optiuni SSL: (vezi la Wiki Bitcoin pentru instructiuni detaliate)\n" + +#: ../../../src/init.cpp:208 +msgid "Use OpenSSL (https) for JSON-RPC connections\n" +msgstr "Utilizeaza OpenSSL (https) pentru conexiunile JSON-RPC\n" + +#: ../../../src/init.cpp:209 +msgid "Server certificate file (default: server.cert)\n" +msgstr "Arhiva certificat de server (predeterminat: server.cert)\n" + +#: ../../../src/init.cpp:210 +msgid "Server private key (default: server.pem)\n" +msgstr "Cheie privata de server (predeterminat: server.pem)\n" + +#: ../../../src/init.cpp:211 +msgid "Acceptable ciphers (default: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)\n" +msgstr "Tipuri de cifrare acceptate (predeterminat: TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!AH:!3DES:@STRENGTH)\n" + +#: ../../../src/init.cpp:215 +msgid "This help message\n" +msgstr "Acest mesaj de ajutor\n" + +#: ../../../src/init.cpp:353 +#, c-format +msgid "Cannot obtain a lock on data directory %s. Bitcoin is probably already running." +msgstr "Nu se poate obtine permis de lucru in directorul de date %s. E posibil ca Bitcoin sa fie deja in executie." + +#: ../../../src/init.cpp:379 +msgid "Error loading addr.dat \n" +msgstr "Eroare la incarcare addr.dat \n" + +#: ../../../src/init.cpp:385 +msgid "Error loading blkindex.dat \n" +msgstr "Eroare la incarcare blkindex.dat \n" + +#: ../../../src/init.cpp:396 +msgid "Error loading wallet.dat: Wallet corrupted \n" +msgstr "Eroare la incarcare wallet.dat \n" + +#: ../../../src/init.cpp:398 +msgid "Error loading wallet.dat: Wallet requires newer version of Bitcoin \n" +msgstr "Eroare la incarcare wallet.dat: E necesare o versiune mai noua de Bitcoin \n" + +#: ../../../src/init.cpp:400 +msgid "Error loading wallet.dat \n" +msgstr "Eroare la incarcare wallet.dat \n" + +#: ../../../src/init.cpp:489 +msgid "Invalid -proxy address" +msgstr "Adresa -proxy invalida" + +#: ../../../src/init.cpp:514 +msgid "Invalid amount for -paytxfee=" +msgstr "Cantitate invalida pentru -paytxfee=" + +#: ../../../src/init.cpp:518 +msgid "Warning: -paytxfee is set very high. This is the transaction fee you will pay if you send a transaction." +msgstr "Atentie: -paytxfee este prea mare. Acesta este comisionul platit la fiecare tranzactie." + +#: ../../../src/main.cpp:1398 +msgid "Warning: Disk space is low " +msgstr "Atentie: Spatiul pe hard disk este redus" + +#: ../../../src/net.cpp:1610 +#, c-format +msgid "Unable to bind to port %d on this computer. Bitcoin is probably already running." +msgstr "Nu e posibila ascultarea pe portul %d in acest calculator. Probabil clientul Bitcoin este deja in executie." + +#: ../../../src/rpc.cpp:2005 +#: ../../../src/rpc.cpp:2007 +#, c-format +msgid "To use the %s option" +msgstr "Pentru a utiliza optiunea %s" + +#: ../../../src/rpc.cpp:2009 +#, c-format +msgid "" +"Warning: %s, you must set rpcpassword=\n" +"in the configuration file: %s\n" +"If the file does not exist, create it with owner-readable-only file permissions.\n" +msgstr "" +"Atentie: %s, trebuie sa specifici rpcpassword=\n" +"in fisierul de configuratie: %s\n" +"Daca fisierul nu exista trebuie creat cu permisiuni de citire numai pentru autor.\n" + +#: ../../../src/rpc.cpp:2185 +#, c-format +msgid "" +"You must set rpcpassword= in the configuration file:\n" +"%s\n" +"If the file does not exist, create it with owner-readable-only file permissions." +msgstr "" +"Trebuie sa specifici rpcpassword= in fisierul de configuratie:\n" +"%s\n" +"Daca fisierul nu exista trebuie creat cu permisiuni de citire numai pentru autor." + +#: ../../../src/ui.cpp:217 +#, c-format +msgid "This transaction is over the size limit. You can still send it for a fee of %s, which goes to the nodes that process your transaction and helps to support the network. Do you want to pay the fee?" +msgstr "Aceasta tranzactie trece peste limita de dimensiune. O poti trimite in continuare pentru %s, care taxa se imparte intre nodurile ce receptioneaza tranzactia si ajuta la mentinerea retelei. Continui tranzactia?" + +#: ../../../src/ui.cpp:261 +#: ../../../src/ui.cpp:1247 +msgid "Enter the current passphrase to the wallet." +msgstr "Introduce parola actuala de portofel" + +#: ../../../src/ui.cpp:262 +#: ../../../src/ui.cpp:1183 +#: ../../../src/ui.cpp:1200 +#: ../../../src/ui.cpp:1248 +#: ../../../src/ui.cpp:1272 +#: ../../../src/ui.cpp:1292 +msgid "Passphrase" +msgstr "Parola" + +#: ../../../src/ui.cpp:268 +msgid "Please supply the current wallet decryption passphrase." +msgstr "Introduce parola actuala para decriptarea portofelului." + +#: ../../../src/ui.cpp:276 +#: ../../../src/ui.cpp:1257 +#: ../../../src/ui.cpp:1314 +msgid "The passphrase entered for the wallet decryption was incorrect." +msgstr "Parola introdusa pentru decriptarea portofelului nu este corecta." + +#: ../../../src/ui.cpp:353 +msgid "Status" +msgstr "Stare" + +#: ../../../src/ui.cpp:354 +msgid "Date" +msgstr "Data" + +#: ../../../src/ui.cpp:355 +msgid "Description" +msgstr "Descriere" + +#: ../../../src/ui.cpp:356 +msgid "Debit" +msgstr "Debit" + +#: ../../../src/ui.cpp:357 +msgid "Credit" +msgstr "Credit" + +#: ../../../src/ui.cpp:568 +#, c-format +msgid "Open for %d blocks" +msgstr "Deschis pentru %d blocuri" + +#: ../../../src/ui.cpp:570 +#, c-format +msgid "Open until %s" +msgstr "Deschis pana la %s" + +#: ../../../src/ui.cpp:576 +#, c-format +msgid "%d/offline?" +msgstr "%d/desconectat?" + +#: ../../../src/ui.cpp:578 +#, c-format +msgid "%d/unconfirmed" +msgstr "%d/neconfirmat" + +#: ../../../src/ui.cpp:580 +#, c-format +msgid "%d confirmations" +msgstr "%d confirmari" + +#: ../../../src/ui.cpp:665 +msgid "Generated" +msgstr "Generat" + +#: ../../../src/ui.cpp:673 +#, c-format +msgid "Generated (%s matures in %d more blocks)" +msgstr "Generat (%s matureaza in %d blocuri)" + +#: ../../../src/ui.cpp:677 +msgid "Generated - Warning: This block was not received by any other nodes and will probably not be accepted!" +msgstr "Generat - Atentie: Acest block nu se a receptionat de la alte noduri si probabil nu va fi acceptat!" + +#: ../../../src/ui.cpp:681 +msgid "Generated (not accepted)" +msgstr "Generat (neaceptat)" + +#: ../../../src/ui.cpp:691 +msgid "From: " +msgstr "De: " + +#: ../../../src/ui.cpp:715 +msgid "Received with: " +msgstr "Receptionat cu: " + +#: ../../../src/ui.cpp:760 +msgid "Payment to yourself" +msgstr "Plata proprie" + +#: ../../../src/ui.cpp:794 +msgid "To: " +msgstr "Pentru: " + +#: ../../../src/ui.cpp:1109 +msgid " Generating" +msgstr " Genereaza" + +#: ../../../src/ui.cpp:1111 +msgid "(not connected)" +msgstr "(neconectat)" + +#: ../../../src/ui.cpp:1114 +#, c-format +msgid " %d connections %d blocks %d transactions" +msgstr " %d conexiuni %d blocuri %d tranzactii" + +#: ../../../src/ui.cpp:1171 +msgid "Wallet already encrypted." +msgstr "Portofel deja encriptat." + +#: ../../../src/ui.cpp:1182 +msgid "" +"Enter the new passphrase to the wallet.\n" +"Please use a passphrase of 10 or more random characters, or eight or more words." +msgstr "" +"Introduce noua parola de portofel.\n" +"Te rugam sa utilizezi o parola de 10 sau mai multe caracter aleatoare sau minimum opt cuvinte." + +#: ../../../src/ui.cpp:1189 +#: ../../../src/ui.cpp:1280 +msgid "Error: The supplied passphrase was too short." +msgstr "Eroare: Parola introdusa este prea scurta." + +#: ../../../src/ui.cpp:1193 +msgid "" +"WARNING: If you encrypt your wallet and lose your passphrase, you will LOSE ALL OF YOUR BITCOINS!\n" +"Are you sure you wish to encrypt your wallet?" +msgstr "" +"ATENTIE: Daca encriptezi portofelul si uiti parola vei pierde TOATE MONEDELE!\n" +"Esti sigur ca vrei sa encriptezi portofelul?" + +#: ../../../src/ui.cpp:1199 +msgid "Please re-enter your new wallet passphrase." +msgstr "Reintroduce noua parola de portofel." + +#: ../../../src/ui.cpp:1208 +#: ../../../src/ui.cpp:1302 +msgid "Error: the supplied passphrases didn't match." +msgstr "Eroare: parolele introduse nu sunt identice." + +#: ../../../src/ui.cpp:1218 +msgid "Wallet encryption failed." +msgstr "Encriptare portofel esuata." + +#: ../../../src/ui.cpp:1225 +msgid "" +"Wallet Encrypted.\n" +"Remember that encrypting your wallet cannot fully protect your bitcoins from being stolen by malware infecting your computer." +msgstr "" +"Portofel encriptat.\n" +"Retine ca encriptarea portofelului nu iti poate proteja complet monedele daca pc-ul este infectat de malware." + +#: ../../../src/ui.cpp:1236 +msgid "Wallet is unencrypted, please encrypt it first." +msgstr "Portofelul nu este encriptat, incearca sa-l encriptezi inainte." + +#: ../../../src/ui.cpp:1271 +msgid "Enter the new passphrase for the wallet." +msgstr "Introduce noua parola de portofel." + +#: ../../../src/ui.cpp:1291 +msgid "Re-enter the new passphrase for the wallet." +msgstr "Reintroduce noua parola de portofel." + +#: ../../../src/ui.cpp:1323 +msgid "Wallet Passphrase Changed." +msgstr "Parola de portofel schimbata." + +#: ../../../src/ui.cpp:1379 +#: ../../../src/ui.cpp:2821 +msgid "New Receiving Address" +msgstr "Adresa Noua de Primire" + +#: ../../../src/ui.cpp:1380 +#: ../../../src/ui.cpp:2822 +msgid "" +"You should use a new address for each payment you receive.\n" +"\n" +"Label" +msgstr "" +"Cel mai indicat e sa utilizezi a adresa noua pentru fiecare plata primita.\n" +"\n" +"Eticheta" + +#: ../../../src/ui.cpp:1464 +msgid "Status: " +msgstr "Stare: " + +#: ../../../src/ui.cpp:1469 +msgid ", has not been successfully broadcast yet" +msgstr ", inca nu a fost trimisa cu succes" + +#: ../../../src/ui.cpp:1471 +#, c-format +msgid ", broadcast through %d node" +msgstr ", emis prin nod %d" + +#: ../../../src/ui.cpp:1473 +#, c-format +msgid ", broadcast through %d nodes" +msgstr ", emis prin noduri %d" + +#: ../../../src/ui.cpp:1477 +msgid "Date: " +msgstr "Data: " + +#: ../../../src/ui.cpp:1485 +msgid "Source: Generated
" +msgstr "Sursa: Generat
" + +#: ../../../src/ui.cpp:1491 +#: ../../../src/ui.cpp:1508 +msgid "From: " +msgstr "De: " + +#: ../../../src/ui.cpp:1508 +msgid "unknown" +msgstr "necunoscut" + +#: ../../../src/ui.cpp:1509 +#: ../../../src/ui.cpp:1533 +#: ../../../src/ui.cpp:1592 +msgid "To: " +msgstr "Pentru: " + +#: ../../../src/ui.cpp:1512 +msgid " (yours, label: " +msgstr "(tau, eticheta: " + +#: ../../../src/ui.cpp:1514 +msgid " (yours)" +msgstr "(tau)" + +#: ../../../src/ui.cpp:1551 +#: ../../../src/ui.cpp:1563 +#: ../../../src/ui.cpp:1609 +#: ../../../src/ui.cpp:1626 +msgid "Credit: " +msgstr "Credit: " + +#: ../../../src/ui.cpp:1553 +#, c-format +msgid "(%s matures in %d more blocks)" +msgstr "(%s matureaza in %d blocuri)" + +#: ../../../src/ui.cpp:1555 +msgid "(not accepted)" +msgstr "(neaceptat)" + +#: ../../../src/ui.cpp:1600 +#: ../../../src/ui.cpp:1608 +#: ../../../src/ui.cpp:1623 +msgid "Debit: " +msgstr "Debit: " + +#: ../../../src/ui.cpp:1614 +msgid "Transaction fee: " +msgstr "Comision tranzactie: " + +#: ../../../src/ui.cpp:1630 +msgid "Net amount: " +msgstr "Cantitate neta: " + +#: ../../../src/ui.cpp:1637 +msgid "Message:" +msgstr "Mesaj:" + +#: ../../../src/ui.cpp:1639 +msgid "Comment:" +msgstr "Comentariu:" + +#: ../../../src/ui.cpp:1642 +msgid "Generated coins must wait 120 blocks before they can be spent. When you generated this block, it was broadcast to the network to be added to the block chain. If it fails to get into the chain, it will change to \"not accepted\" and not be spendable. This may occasionally happen if another node generates a block within a few seconds of yours." +msgstr "Monedele generate trebuie sa astepte 120 de blocuri inainte sa poata fi cheltuite. Cand ai generat acest block, s-a transmis in retea pentru a fi incul in lantul de blocuri. Daca nu este acceptat in lant, se va schimba in \"neaceptat\" si nu se va putea cheltui. Acest lucru se poate intampla rareori cand alt nod genereaza un bloc in acelasi moment cu al tau ." + +#: ../../../src/ui.cpp:1822 +msgid "Cannot write autostart/bitcoin.desktop file" +msgstr "Nu se poate scrie in fisierul autostart/bitcoin.desktop" + +#: ../../../src/ui.cpp:1858 +msgid "Main" +msgstr "Principal" + +#: ../../../src/ui.cpp:1868 +msgid "&Start Bitcoin on window system startup" +msgstr "&Porneste Bitcoin odata cu sistemul" + +#: ../../../src/ui.cpp:1875 +msgid "&Minimize on close" +msgstr "&Minimizeaza la inchidere" + +#: ../../../src/ui.cpp:2017 +#, c-format +msgid "version %s" +msgstr "versiune %s" + +#: ../../../src/ui.cpp:2140 +msgid "Error in amount " +msgstr "Eroare in cantitate " + +#: ../../../src/ui.cpp:2140 +#: ../../../src/ui.cpp:2145 +#: ../../../src/ui.cpp:2150 +#: ../../../src/ui.cpp:2203 +#: ../../../src/uibase.cpp:61 +msgid "Send Coins" +msgstr "Trimite Monede" + +#: ../../../src/ui.cpp:2145 +msgid "Amount exceeds your balance " +msgstr "Cantitatea trece peste limita disponibila" + +#: ../../../src/ui.cpp:2150 +msgid "Total exceeds your balance when the " +msgstr "Totalul trece peste limita cand" + +#: ../../../src/ui.cpp:2150 +msgid " transaction fee is included " +msgstr "comisionul de tranzactie este inclus" + +#: ../../../src/ui.cpp:2177 +msgid "Payment sent " +msgstr "Plata trimisa" + +#: ../../../src/ui.cpp:2177 +#: ../../../src/ui.cpp:2187 +#: ../../../src/ui.cpp:2337 +#: ../../../src/ui.cpp:2502 +#: ../../../src/wallet.cpp:1088 +msgid "Sending..." +msgstr "Se trimite..." + +#: ../../../src/ui.cpp:2203 +msgid "Invalid address " +msgstr "Adresa incorecta" + +#: ../../../src/ui.cpp:2258 +#, c-format +msgid "Sending %s to %s" +msgstr "Se trimite %s la %s" + +#: ../../../src/ui.cpp:2331 +#: ../../../src/ui.cpp:2364 +msgid "CANCELLED" +msgstr "ANULAT" + +#: ../../../src/ui.cpp:2335 +msgid "Cancelled" +msgstr "Anulat" + +#: ../../../src/ui.cpp:2337 +msgid "Transfer cancelled " +msgstr "Transfer anulat" + +#: ../../../src/ui.cpp:2390 +msgid "Error: " +msgstr "Eroare: " + +#: ../../../src/ui.cpp:2404 +#: ../../../src/ui.cpp:2473 +#: ../../../src/wallet.cpp:1106 +msgid "Insufficient funds" +msgstr "Fonduri insuficiente" + +#: ../../../src/ui.cpp:2409 +msgid "Connecting..." +msgstr "Se conecteaza..." + +#: ../../../src/ui.cpp:2414 +msgid "Unable to connect" +msgstr "Conectare imposibila" + +#: ../../../src/ui.cpp:2419 +msgid "Requesting public key..." +msgstr "Se cere cheia publica..." + +#: ../../../src/ui.cpp:2431 +msgid "Received public key..." +msgstr "Cheia publica primita..." + +#: ../../../src/ui.cpp:2445 +msgid "Recipient is not accepting transactions sent by IP address" +msgstr "Destinatarul nu accepta tranzacti trimise la adresa IP" + +#: ../../../src/ui.cpp:2447 +msgid "Transfer was not accepted" +msgstr "Transferul nu a fost acceptat" + +#: ../../../src/ui.cpp:2456 +msgid "Invalid response received" +msgstr "Raspuns invalid receptionat" + +#: ../../../src/ui.cpp:2469 +msgid "Creating transaction..." +msgstr "Se creeaza tranzactia..." + +#: ../../../src/ui.cpp:2492 +#, c-format +msgid "This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds" +msgstr "Aceasta tranzactie necesita un comision de cel putin %s datorita cantitatii, complexitatii sau uzului de fonduri primite recent" + +#: ../../../src/ui.cpp:2494 +msgid "Transaction creation failed" +msgstr "Crearea tranzactiei a esuat." + +#: ../../../src/ui.cpp:2504 +msgid "Transaction aborted" +msgstr "Tranzactie anulata" + +#: ../../../src/ui.cpp:2512 +msgid "Lost connection, transaction cancelled" +msgstr "Conexiune pierduta, tranzactie anulata" + +#: ../../../src/ui.cpp:2528 +msgid "Sending payment..." +msgstr "Se trimite plata..." + +#: ../../../src/ui.cpp:2540 +msgid "The transaction was rejected. This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here." +msgstr "Tranzactia a fost respinsa. Acest lucru se poate intampla daca vreuna din monede a fost cheltuita sau s-a folosit o copie de portofel (wallet.dat) si monedele a fost cheltuite in copie dar nu s-au marcat cheltuite aici." + +#: ../../../src/ui.cpp:2549 +msgid "Waiting for confirmation..." +msgstr "Se asteapta confirmare..." + +#: ../../../src/ui.cpp:2566 +msgid "" +"The payment was sent, but the recipient was unable to verify it.\n" +"The transaction is recorded and will credit to the recipient,\n" +"but the comment information will be blank." +msgstr "" +"Plata a fost trimisa dar destinatarul nu a putut sa o verifice.\n" +"Tranzactia a fost inregistrata si creditul trimis la desinatar,\n" +"dar informatia de comentarii va ramane in alb." + +#: ../../../src/ui.cpp:2575 +msgid "Payment was sent, but an invalid response was received" +msgstr "Plata a fost trimisa dar s-a receptionat un raspuns incorect" + +#: ../../../src/ui.cpp:2581 +msgid "Payment completed" +msgstr "Plata completa" + +#: ../../../src/ui.cpp:2623 +#: ../../../src/ui.cpp:2769 +#: ../../../src/ui.cpp:2809 +msgid "Name" +msgstr "Nume" + +#: ../../../src/ui.cpp:2624 +#: ../../../src/ui.cpp:2769 +#: ../../../src/ui.cpp:2809 +msgid "Address" +msgstr "Adresa" + +#: ../../../src/ui.cpp:2626 +#: ../../../src/ui.cpp:2781 +msgid "Label" +msgstr "Eticheta" + +#: ../../../src/ui.cpp:2627 +#: ../../../src/uibase.cpp:847 +msgid "Bitcoin Address" +msgstr "Adresa Bitcoin" + +#: ../../../src/ui.cpp:2751 +msgid "This is one of your own addresses for receiving payments and cannot be entered in the address book. " +msgstr "Aceasta este o adresa pentru primire de plati de aceea nu se poate introduce manual in agenda" + +#: ../../../src/ui.cpp:2769 +#: ../../../src/ui.cpp:2775 +msgid "Edit Address" +msgstr "Editeaza adresa" + +#: ../../../src/ui.cpp:2781 +msgid "Edit Address Label" +msgstr "Editeaza eticheta de adresa" + +#: ../../../src/ui.cpp:2809 +#: ../../../src/ui.cpp:2815 +msgid "Add Address" +msgstr "Adauga adresa" + +#: ../../../src/ui.cpp:2902 +msgid "Bitcoin" +msgstr "Bitcoin" + +#: ../../../src/ui.cpp:2904 +msgid "Bitcoin - Generating" +msgstr "Bitcoin - Se genereaza" + +#: ../../../src/ui.cpp:2906 +msgid "Bitcoin - (not connected)" +msgstr "Bitcoin - (neconectat)" + +#: ../../../src/ui.cpp:2985 +msgid "&Open Bitcoin" +msgstr "&Deschide Bitcoin" + +#: ../../../src/ui.cpp:2986 +msgid "&Send Bitcoins" +msgstr "&Trimite Bitcoin" + +#: ../../../src/ui.cpp:2987 +msgid "O&ptions..." +msgstr "O&ptiuni" + +#: ../../../src/ui.cpp:2990 +#: ../../../src/uibase.cpp:25 +msgid "E&xit" +msgstr "I&esire" + +#: ../../../src/ui.cpp:3216 +msgid "Program has crashed and will terminate. " +msgstr "Programul a detectat o eroare si se va inchide." + +#: ../../../src/uibase.cpp:28 +msgid "&File" +msgstr "&Arhiva" + +#: ../../../src/uibase.cpp:32 +msgid "&Your Receiving Addresses..." +msgstr "&Adresele de primire..." + +#: ../../../src/uibase.cpp:35 +msgid "&Encrypt Wallet..." +msgstr "&Encripteaza portofel..." + +#: ../../../src/uibase.cpp:38 +msgid "&Change Wallet Encryption Passphrase..." +msgstr "&Schimba parola de encriptare portofel..." + +#: ../../../src/uibase.cpp:42 +msgid "&Options..." +msgstr "&Optiuni..." + +#: ../../../src/uibase.cpp:45 +msgid "&Settings" +msgstr "&Cnfiguratie" + +#: ../../../src/uibase.cpp:49 +msgid "&About..." +msgstr "&Despre..." + +#: ../../../src/uibase.cpp:52 +msgid "&Help" +msgstr "&Ajutor" + +#: ../../../src/uibase.cpp:62 +msgid "Address Book" +msgstr "Agenda cu adrese" + +#: ../../../src/uibase.cpp:75 +msgid "Your Bitcoin Address:" +msgstr "Adresa Ta Bitcoin:" + +#: ../../../src/uibase.cpp:82 +msgid " &New... " +msgstr " &Nou... " + +#: ../../../src/uibase.cpp:85 +#: ../../../src/uibase.cpp:790 +#: ../../../src/uibase.cpp:893 +msgid " &Copy to Clipboard " +msgstr " &Copiaza in Clipboard" + +#: ../../../src/uibase.cpp:99 +msgid "Balance:" +msgstr "Balant:" + +#: ../../../src/uibase.cpp:115 +msgid " All" +msgstr "Tot" + +#: ../../../src/uibase.cpp:115 +msgid " Sent" +msgstr "Trimis" + +#: ../../../src/uibase.cpp:115 +msgid " Received" +msgstr "Primit" + +#: ../../../src/uibase.cpp:115 +msgid " In Progress" +msgstr "In Curs" + +#: ../../../src/uibase.cpp:136 +msgid "All Transactions" +msgstr "Toate Tranzactiile" + +#: ../../../src/uibase.cpp:147 +msgid "Sent/Received" +msgstr "Trimis/Primit" + +#: ../../../src/uibase.cpp:158 +msgid "Sent" +msgstr "Trimis" + +#: ../../../src/uibase.cpp:169 +msgid "Received" +msgstr "Primit" + +#: ../../../src/uibase.cpp:312 +#: ../../../src/uibase.cpp:453 +#: ../../../src/uibase.cpp:552 +#: ../../../src/uibase.cpp:732 +#: ../../../src/uibase.cpp:793 +#: ../../../src/uibase.cpp:902 +#: ../../../src/uibase.cpp:991 +msgid "OK" +msgstr "OK" + +#: ../../../src/uibase.cpp:355 +msgid "&Start Bitcoin on system startup" +msgstr "&Porneste Bitcoin odata cu sistemul" + +#: ../../../src/uibase.cpp:358 +msgid "&Minimize to the tray instead of the taskbar" +msgstr "&Minimizeaza in tray nu in bara de aplicatii" + +#: ../../../src/uibase.cpp:361 +msgid "Map port using &UPnP" +msgstr "Reserva portul utilizand &UPnP" + +#: ../../../src/uibase.cpp:364 +msgid "M&inimize to the tray on close" +msgstr "M&inimizeaza in tray la inchidere" + +#: ../../../src/uibase.cpp:370 +msgid "&Connect through socks4 proxy (requires restart to apply): " +msgstr "&Conecteaza prin proxy socks4 (repornire apl. necesara): " + +#: ../../../src/uibase.cpp:381 +msgid "Proxy &IP:" +msgstr "&IP de proxy:" + +#: ../../../src/uibase.cpp:389 +msgid " &Port:" +msgstr " &Port:" + +#: ../../../src/uibase.cpp:402 +msgid "Optional transaction fee per KB that helps make sure your transactions are processed quickly. Most transactions are 1KB. Fee 0.01 recommended." +msgstr "Comision optional per KB ce asigura ca tranzactiile tale sunt procesate rapid. Majoritatea tranzactiilor sunt de 1KB. Se recomanda un comision de 0.01." + +#: ../../../src/uibase.cpp:409 +msgid "Pay transaction fee:" +msgstr "Comision de tranzactie:" + +#: ../../../src/uibase.cpp:430 +msgid "// [don't translate] Test panel 2 for future expansion" +msgstr "" + +#: ../../../src/uibase.cpp:434 +msgid "// [don't translate] Let's not start multiple pages until the first page is filled up" +msgstr "" + +#: ../../../src/uibase.cpp:456 +#: ../../../src/uibase.cpp:678 +#: ../../../src/uibase.cpp:737 +#: ../../../src/uibase.cpp:796 +#: ../../../src/uibase.cpp:905 +#: ../../../src/uibase.cpp:994 +msgid "Cancel" +msgstr "Anuleaza" + +#: ../../../src/uibase.cpp:459 +msgid "&Apply" +msgstr "&Aplica" + +#: ../../../src/uibase.cpp:518 +msgid "Bitcoin " +msgstr "Bitcoin " + +#: ../../../src/uibase.cpp:524 +msgid "version" +msgstr "versiune" + +#: ../../../src/uibase.cpp:535 +msgid "" +"Copyright (c) 2009-2011 Bitcoin Developers\n" +"\n" +"This is experimental software.\n" +"\n" +"Distributed under the MIT/X11 software license, see the accompanying file \n" +"license.txt or http://www.opensource.org/licenses/mit-license.php.\n" +"\n" +"This product includes software developed by the OpenSSL Project for use in the \n" +"OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by \n" +"Eric Young (eay@cryptsoft.com) and UPnP software written by Thomas Bernard." +msgstr "" +"Copyright (c) 2009-2011 Bitcoin Developers\n" +"\n" +"Acesta este un program experimental.\n" +"\n" +"Distribuit sub licenta MIT/X11, cauta fisierul adaugat de licenta \n" +"license.txt sau http://www.opensource.org/licenses/mit-license.php.\n" +"\n" +"Acest produs contine software creat deOpenSSL Project pentru uz in \n" +"OpenSSL Toolkit (http://www.openssl.org/), software cryptografic scris de \n" +"Eric Young (eay@cryptsoft.com) si software UPnP scris de Thomas Bernard." + +#: ../../../src/uibase.cpp:591 +msgid "Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)" +msgstr "Introduce o a adresa Bitcoin (exemplu: 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L)" + +#: ../../../src/uibase.cpp:605 +msgid "Pay &To:" +msgstr "Plateste &la:" + +#: ../../../src/uibase.cpp:620 +msgid "&Paste" +msgstr "&Lipeste (paste)" + +#: ../../../src/uibase.cpp:623 +msgid " Address &Book..." +msgstr "Agenda de &adrese..." + +#: ../../../src/uibase.cpp:630 +msgid "&Amount:" +msgstr "&Cantitate:" + +#: ../../../src/uibase.cpp:640 +msgid "T&ransfer:" +msgstr "T&ransfera:" + +#: ../../../src/uibase.cpp:646 +msgid " Standard" +msgstr "Standard" + +#: ../../../src/uibase.cpp:673 +msgid "&Send" +msgstr "&Trimite" + +#: ../../../src/uibase.cpp:721 +msgid "" +"\n" +"\n" +"Connecting..." +msgstr "" +"\n" +"\n" +"Se conecteaza..." + +#: ../../../src/uibase.cpp:771 +msgid "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. The highlighted address is displayed in the main window." +msgstr "Acestea sunt adresele tale pentru primit plati. Poti sa folosesti o adresa diferita pentru fiecare persoana care iti trimite pentru a putea tine cont de unde vin platile. Adresa selectionata este afisata in fereastra principala." + +#: ../../../src/uibase.cpp:784 +#: ../../../src/uibase.cpp:896 +msgid "&Edit..." +msgstr "&Editeaza..." + +#: ../../../src/uibase.cpp:787 +#: ../../../src/uibase.cpp:899 +msgid " &New Address... " +msgstr " &Adresa noua... " + +#: ../../../src/uibase.cpp:859 +msgid "Sending" +msgstr "Se trimite" + +#: ../../../src/uibase.cpp:867 +msgid "These are your Bitcoin addresses for receiving payments. You can give a different one to each sender to keep track of who is paying you. The highlighted address will be displayed in the main window." +msgstr "Acestea sunt adresele tale pentru primit plati. Poti sa folosesti o adresa diferita pentru fiecare persoana care iti trimite pentru a putea tine cont de unde vin platile. Adresa selectionata este afisata in fereastra principala." + +#: ../../../src/uibase.cpp:880 +msgid "Receiving" +msgstr "Se receptioneaza" + +#: ../../../src/uibase.cpp:890 +msgid "&Delete" +msgstr "&Sterge" + +#: ../../../src/util.cpp:870 +msgid "Warning: Please check that your computer's date and time are correct. If your clock is wrong Bitcoin will not work properly." +msgstr "Atentie: Regleaza corect hora si data calculatorului pentru ca Bitcoin sa functioneze corect." + +#: ../../../src/util.cpp:904 +msgid "beta" +msgstr "beta" + +#: ../../../src/wallet.cpp:1073 +msgid "Error: Wallet locked, unable to create transaction " +msgstr "Eroare: Portofel blocat, nu se poate crea tranzactia" + +#: ../../../src/wallet.cpp:1081 +#, c-format +msgid "Error: This transaction requires a transaction fee of at least %s because of its amount, complexity, or use of recently received funds " +msgstr "Eroare: Aceasta tranzactie necesita un comision de cel putin %s datorita cantitatii, complexitatii sau uzului de fonduri primite recent" + +#: ../../../src/wallet.cpp:1083 +msgid "Error: Transaction creation failed " +msgstr "Eroare: Crearea tranzactiei a esuat" + +#: ../../../src/wallet.cpp:1092 +msgid "Error: The transaction was rejected. This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here." +msgstr "Error: Tranzactia a fost respinsa. Acest lucru se poate intampla daca vreuna din monede a fost cheltuita sau s-a folosit o copie de portofel (wallet.dat) si monedele a fost cheltuite in copie dar nu s-au marcat cheltuite aici." + +#: ../../../src/wallet.cpp:1104 +msgid "Invalid amount" +msgstr "Cantitate incorecta" + +#: ../../../src/uibase.h:151 +msgid "Transaction Details" +msgstr "Detalii de Tranzactie" + +#: ../../../src/uibase.h:203 +msgid "Options" +msgstr "Optiuni" + +#: ../../../src/uibase.h:232 +msgid "About Bitcoin" +msgstr "Despre Bitcoin" + +#: ../../../src/uibase.h:341 +msgid "Your Bitcoin Addresses" +msgstr "Adresele Tale Bitcoin" + +#~ msgid "Invalid bitcoin address" +#~ msgstr "Dirección Bitcoin inválida" From 6a0296791d5e81102a12a3142f5be25cb40f9825 Mon Sep 17 00:00:00 2001 From: Venkatesh Srinivas Date: Tue, 6 Sep 2011 14:54:10 -0400 Subject: [PATCH 09/12] Define MSG_NOSIGNAL to 0 on platforms where it is unavailable. Enables building bitcoind on OpenBSD. --- src/util.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/util.h b/src/util.h index 3d7ef108..4a68051a 100644 --- a/src/util.h +++ b/src/util.h @@ -81,8 +81,10 @@ T* alignup(T* p) return u.ptr; } -#ifdef __WXMSW__ +#ifndef MSG_NOSIGNAL #define MSG_NOSIGNAL 0 +#endif +#ifdef __WXMSW__ #define MSG_DONTWAIT 0 #ifndef UINT64_MAX #define UINT64_MAX _UI64_MAX From fd5eaf323f70a9cd8ef227ee5a3fa775843fd7ce Mon Sep 17 00:00:00 2001 From: Matt Corallo Date: Tue, 6 Sep 2011 15:01:58 -0400 Subject: [PATCH 10/12] Add binary mo for new translation. --- locale/ro/LC_MESSAGES/bitcoin.mo | Bin 0 -> 23235 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 locale/ro/LC_MESSAGES/bitcoin.mo diff --git a/locale/ro/LC_MESSAGES/bitcoin.mo b/locale/ro/LC_MESSAGES/bitcoin.mo new file mode 100644 index 0000000000000000000000000000000000000000..0eb994bcbe5f2139cee3fe7031ec255aba502b0b GIT binary patch literal 23235 zcmd^{3zS_~dEbv6gYg9$V(b{3hmUM)EZLf?8Tlm-@?$hJvc?{b#?r{LQxZ6H@0ppS zxi6n{uSO#h9!>%{kU%glAx>y0#R1dWKoVX}Vra|zQ64UV6jBO=&^CoO?J8X+&g$>~ z?Y+;vBgvK_ZPsdgm$&}svCn>dul?g4cpqfk#1Ac@KCF_%Qg>;3MD};CDfqivA1uH1L0d&jL@Ovg(};o(5h5 zJ_Fng>btAKr+_#5`(5A*xSs>{eH(l__zF<{zYf%Q_krr?9pF>J2f<6hKLlS0ego8a z&Og`H+W?-;{biu~yUyc;e?ARv;rWZeGr_w-_4{T}?Y|w=cMpI@2TvPBf$IN1 zf}-o$KjY@H6;%CMP;~t{@VQ_URK2^w&EWn1{TD#>|4mTeec#_d213&4>F2rcE(F!y z4p8Hq0iOfj4(j_m!OOsxgZsb-K-GH;JRdxR%A(K3p!jh)D0*)P_1!dh71#xz4?X}^ z!B2vs`wu~Vuf}x$G*IpSH2*;Q=yFiwyV2tuD0;mF6g?05`#Zro?q3RC4t^Fi`2jEH z{*((`{~JNgYXbZP@_H-CRHE}CqS_k;C12Y?<1eWBPJlz;UhqorFbIpHcY~_;QBd>$ z1St7<1RMwd64ZD$Gx<&60q_X;GEnmTLy-TXGZ5Ad;HBV&;50Z2X5chNO<9i#ZdS3z6|7kR?`Hg_0=QW_{coV2`-3r2r=qR`d-UHr# zN)$Z`iaz@xqUN;%B0|y2K#l)iQ1bPA;70KMAS92z4vH@S!@vIGf2^K7swQ% zCU_e7I#B%n4N!c$-#>o{6rKM76dyhfo(g^i)OfxIil2W4z5#p`6rEnnU^KsbzzX;~ z;6>m&LAC!GQ2jjuY99Xq)I5F!Nb0Qe{oA1G zKLnlzei#%T9tO99p93|{$3XszF6HJ5a1NAQ{4yxMz7OQT=+pe8_WwKhRPZU6x%Qs{ z-oX8N;Jd(s;1|GCAj&7fFM(eM@5AV6Tx}Xp!MnhZf!_mP4nBy|i{4cRr}0jJn&)m% z^lo~5B`CXgFR1$O1tm`(2X6(x35s9aM%*|jLCxnDP;#;ciqEeHUk|p~BG-@E5^*!8d}>zS8OU{h<2&9w@!|TTt^m z_bSJ?3p`!~R(O6H_%ZbAD)4OXe+2U1s=a$a&G!ND4DgRY$-~FN zr+}Xap9MYwo&){`_*3Acpz8fCD1JV5yTdcVr*VG{DEdDiRDV0cXM%H}^x!3+#@hy^ zcSk|B_bLz(iGCft7W|-p{@0-F-=pAjz|(oD`mx7N;Q8E-fQU+TGpKp3f@=S6Q1iGK z)cEfA_YZ+;_ah)CB>J4k{|cVR{kbTW_%jTuotr_`zYP?9Yv8%yVNi1MI#Ba`2-LhE z1~uQ$f%^XIpxXT&cs?j4)cXrSeYY7@f7klww}F>(pMnYaYoOZw0r*_-F;MhBe}|i2 z3~F4XASw|}f`~#?fTHWWz$x&{py+r0bq+UxqRVDbaa=#0FKG*=&&aZ;+MNaPn#m_xAx^@>q$#)Z!{Nna7lV?+7O3y<0bdEe9~9rV?{s{h1x4o^)Odf( z<43?b?!OCazSp2kmw`8e-vU>_SA(;YuAQ%dsA%*kC^_5;u{GWofv16Q0yXZpfExF^ z!Arp32W6+e3f92C0+&vq?_G{QAH2!w-xopg=ewZj_!y|~&f4wzy9m_$_ktSl3aI|N zAVZ2?1rC9q0XKku4T`?!OuO~+1)%tQ9jNh6g6eM?d>Z%?@Ki7ZCBF?&^7bn5&EQ+W z)4@@Qe+GChsP-m6^>;HU`E7vbfk#2f*Bkxww|RUBL`0)M21TDoLDBKTTbvy|2&$b| zgL;22sD3^SN}fIniavkl@jroAbN@H~{S`B;ecaE08^Je$8pnr0R5SV%2y3I$_BcDW z8x)=Qdt3s~0g`n}uVzX8N_L~jKp2VVu%-kGy*o!bpcA72AXAN~ZCUH&?#_Mf@e z$^FIP)4AUaBC63<;Dg{Q_;0}>gz`J!skb`(OHh3J>^^*V@Y~=Q!SVfWeSG%3vn%(2 z;^TWjT)OB(p!DEtp!oO$@Oj{=2b?}#2x^>L!4+^1cn@Tb7fgW}7VKz&!a&C&Bx z@F@3tK*`A`!B>Lc0@YsqpyShBpyc&FP=3G%z;}Z`1o_cwMZYTLMvA`w z6Ur+nnhQ-6P}iZ*%hTm^;aoFGdBDl$4 zzX}|teA3@v06t8)i*gO+A5s2@vPStW%CjjuDB`Vte@^)als~1si1L2QZ%`hgyovHc ziufp5Zd1bVrCf|s?xy@p%4;a$_s3lP8s$F9Tm8c?fZwLDj70CD{4V96P%ffeLiuIN z3n&HU)s*d&k5Tm7N%=Ts7v&|Ct0@mr-bJ~L@)3$;=!2B4l*=iXQuO;*l+RFhQ=Uut zDn;_B-=8^%UJSmCQltC~h~1N3guTRdno$-9OYKZ7j@%*zXHC&U!MiO zk@5?aZ&1ENc@E`YQ+|okr0Caj5M2juq)bwtNBL)z5sLKf(-i$aMae0@uN!{T4ot`2 z>8}O%Q{GNFpR$3X-^~unf8WiObWy*19hlFq%Zn+mr3~qY-a2B zM|m&hO3FCpTapc#_ z5pF(2`R9}mP?jnGm}0+5Wuo0`rL}I>TB=s7QDy)BnYi8QX6;rn7H=xjH0~~^@y@JU zYiF(aV78LQi|ssCwIc2II&s!2x_OTV_+oP_7a>YkF!5TWS5ND49J%=}W_gqGGh-fXZ7(i1vQ~P7u6r%Wq1QA$G``U8 zbv1yY@n*Z%V$?(9olavd8k$&6T1#nsFljW>ZamehSu?h&^%&rB6;`uWy}f!|y*m&L&tO^( z;*d&`qD>o%7}oVfHKZJNHrsg`JAvICZECfGyp;FPKi=tTUH5zLJO|GTgXvf0!6L|{D#&&F7xIWhXWYSFs z?$U+9m%H+Iv;T4yX-b@|m7nj295vs7*Sxg8V#a1wzc8T= z42;H&R@i`M69tN;2eB@0-oJNtc;DPacvDn-)nuWO#LuN+knM6ylrelGJ9ZVW^6<1V4N3MOit||yK(>gzNy)p=67R)(DcAwyH1Q1 zQUlL4F0Ga+eXt8M3lSzEp6^ev&;w*?a&~{*;C-)CnDtBQb#d3`=#juQbk@b$LaIZ+?19Po8 z&7+xgOv@S>y3mq1cQAjIXs7#dEb{siFfK2KV-w~9=?$tiJZON!Lraais#E{ytg zOq1SD^%)@MRmwUiGNa{N4FLw$+U9uM$jG(B+eSu5%Nb0jhto#819>Wy z`DLvR1w7?G(|D2wHhQtUn&fG4~tsSA4c8JtR62wNzA=0x|V;I%|kHL6hguYxAnRb-p{w&jg<_7 z9XqO`VME&N)JJO^>u=Io&T9Q$#cf1eeO9J&-eA6&^`Nl%9iqPQOh%1ucFCz>(a0S1S6t#-YGWA zd67w=e6=4>XWd6j&iTOz;$~qMriP9%1})O1DI2_rXXMsIQ>`x2lax~EtqNqSE>+{v z+5Mx}WXaOChi+b)-#s~c+wF%A&rD3Uezte(75UARQ`gRH_AQ8SwO*bhs&S|EHGlCTP)(e)qE|#;uQJz2acN=+PcqmZKE&vVmJLAr+;KYLfB>WaU>&1x z78hM;&k!$S%h}zO?C84@am}m_i{N5{+18H1^X#ChmaUO#eG99BIYRPO^o6=*N2BjG_g@U78@bkYNg>=aHycTCu5d|DOh0Q~+-ADDd2p}H4x3{&R;lI4w0Wa*N^&?o}8bE2(Z_sn)0y`sQfm z4tdYl59~X(Uvb4YHWD+qnzR)B_$})U2y%ntE01^2P}n1TKH7$ucHMq?Pm;BwJ$UTu z1^cIkXh;rAw1*u)vXqWRvq>|J6y4Zo#zZy7-3B4rJJjDY@4Y3Gb7gbch(BiW6!(ZY zLe{{Dai<+N4(Ff^l(7q@U>TDqK5ECiB13{Am<=EJ0HNS1+|zy(NhY9BTWPEzV|zrB z<7$rHvXgf*I3v}OQ8C2)aFn3x2NVWYj8!5w{yv&vms-0Ymp!Vz77wujwTpqCZS$#z zaepX$tC6p3X4<*U!N2mA>uDL?S@)e{QAyJR12qCZ%TT|xdUV>%TC58YJHq`& zw}z(Y#-e>;L|Pe6;+r`MgHGWh?(`Pe5X39#njGQs@hav3=fd41k-Ew{rsde|zCn_( z4zR^hRDOGZm&>Pj_6SC)>ao2QvcDSlfSELDXl8|}il^6L7nNvVPt0=PCAF0$;$SQd zu#+ujk~Yyj5zQ?=1Gd1TOcV03BfIoQOeS`?NON2*xt4xsiESIKWaip-{eEYvP3?}X zGiWzPw_Q_31FEAK4}B}Ld6a`eH)v>hfMt{Dis=54zwGM1yESlvI~!Ro&AY@8YVr$g z_t%e;xUpAN!+N&*ojg0Nx-fRYwE3!?v}rZF_PWDXEiM%0V~9Ii>!vg^qKX!~V6jvf zbE&5=Ewevn6k$iMO6$L|05czS*$uN>iZ{W#CQDrAmzjau>%#>7o;$23C+@Fa<(*ov zNFfSh@k(*eqFB-VkbIuSG#`uRk+Z(G#iqt6*!ulTJfND=f8xCO@Hoa*|Gl#~>y3vb zm^xlT^sevAAy(NU5z=mzz4m&a4o%`K4B()e0Fu$s=_1w6Op|W8Mjxl%Z^x&%P=$Cu*>_mK}9_!1F08uhQlIgy$s5^dXyQLnwUXr zU=8Hg2Pt3`!nGE=%@0RthmZ(s4(Wrf;3*t@oG5d@Mep!O2b^zy0BsE+O$%ifo1eg2Rc#Tai@OuJ zU!f_*9|@j3-Y%pP9UR{`J3V{Tm^O%*8P+EA51p)eA4oopj^NzG{zA6JzOaq)%-;P| z@%YS4ymwc8$KC_`;+@m;6MLs;_iw0-JKI@${8*%7S)@BbS2sil*)q%IX~eeb`-Mh6 z%0U;k@F#~j`IUWXGi@%I-k~SHL2ohh;2(RfcIR7gqO0gJb1gkCA5UFK^<~j*H;^zK z$!5|}N4UDa;*Hty&eRzCS3v+ILFVk# zWr!sC#GeZGDLyQuC%2rEfMGlAuN-n&16{OqU5h;no<3VxyzOoQsWI9gkcwcI7pfkBp9tP;q!)dN@;GC#ZMz*cDg1dNTxJ zht1$O5)KH*$j(TQ#5;-25cbbF^-5OS#f?k2QVkvZTn_$mXJ24!cMEmJ#|6!QGSiFxjs#cb? z`tRK7JXS1cm}96=dwBcyt2lEUsFEgmZF!DXhev3)y4C)xM3u^Z?GUu(N|U3B>@`Pn z-K^Kjl(j=r&*AiFMqZ3d<_T(}@Mqpb1AI1*s@D;iMh0`)UD=rf>#JHmVvXqu543OZ zqOh>m*!f^gRvMvU+f{-PIhjHx_N`COy(F z_;*X3c5%=c7tYBzA=)|)eHsrXYQvIa@K}ft#uLOW5okGoxDi01?I6|jdW86xJoXy; zwj3~~ok$_0BdtdnJms>NXUgHh3v^UXx|Y)efn82d(p6SX(cusRS`SU&ooDPk3G0#9 zLu4f(N2Ru$H5YWomA4^0y=oQVa8b*e^sBv?Hr&@G`&L|1UU-Unl zDB}#gMG9K>VG!1~MG0y>Tznd8_8L#Fj!7E%PhtSnZ9+(mtAC>5=h&BOCHr86N&HE= zb{#}OSwAUaz*!D9IvS1EA7{MCC7IKpc*vok>8X-{yp?2)wn!k;WX3YJ#HmB|(mF@0P?%Mik(dQA$rK0!#9O$0;agT@WVtSS%?j(sO<%0vQjW-+kCfx*P0 zfqWu%1x0VcFMdpws zSn7&nVD{VP4Uw2aP6fH-2&F3MprF@OxQmsTpfSg4q-EH9*hH|xxp8b<{Zl5Sl^h$a zC5+A1`a~i7a$TJhClnoD&xLnR*4mF-YYdC&Jw)-iw9%rBu>kG_e#=$2d?*dhQi|Ng zoFgm5F|GEdh&7vK2(Q1J^z&}Q(upiNH;09`!*(L6#?CM}`(E0A+Ds5Jge1Y9AI?(_ zOfdZ%44F`eR&e$k-5w6LF|8O@Qa@M5AhI?Qv}S7=1UFgfbP0xF`)64oZ4 z5l_hrRhD6uLt2qMXPaE_Xjriq$-R)vWKJp~EYF}tI-p7CSgeh=SkNCw#st%%m-Or4 zGuy7h_Gby9Bh4|ay|TsquamN2(;_*@f#FP0PAcaO>;_PX8al!XY1=0)-AXRPg3vG_ zD7j$pvmBK&RCQBOU)hloEOSN8Bn8`LPZ+qzf&8Kqc;jWI0k1qf8;-}d-OuR837k7o zcJoe*hAub4Eq%zTtb^8bD2=SJa1k5Ez2J+(S}%hE?{0|pm`pOCrI4qIx3w;c@=m4++H2tRq3 z*9Z(s&nFwD!3*_iMm~9?bWWiVNnW_IeJ7jVPxQ>Pl}hrKLDGK8(Y~bU^hiwX=Z9!Z zs5~1K&Icr1qLE~lL2Ez6X2Ut&JO~azxh3ehl@Z46==3EiiVBsg*Sg;ekPZvj^*7_T|k40+Oz6ds7o{pQ8l9!r)4q5h7u3#c{Dq zM|NS>70 zWCrPpzj9elEGn$fvWwcq`>=x8EcWH;QL}}|T3^mC%B&=bpxZucpxA(r19g1-%9EcX zih&#`ea}Hw2YGBJN3y1G#hZ1X45eHs{WZ|KUXKrjgp80%LyzOp{eycDc^!@CX~c>CW?j; zo|->y6Opy@bcrA@8E3dGco(+ihL9$UCWo}`)O|}uMzTzbGWjsQQaC4*&qHP_ zjRgs(5BHU0{(ooBVlFVNqOF6ryO&?jc@FC17HVfyIo4(aQjO=@UF|~L?n>N(F+M0j z#uO0?=y$rQPmG7bp#cuP6g)yvG7@++* zxL9oqYJ$?~hRRCW!p~-PV%W}&Vek3>&m?0KtCB-99EqLS;9UC6s8Ooq)gW(K%&2et zwGa6VQ`;7>^0^Rfe>p}i2-uinu*0e2Lm$7@JyCp`9`px}h5XZMyq9(dqyV;w=^0Hk z6hAWMNSM5IlOsqc%E+HIk{(3gbl|sR2r2H%x@8^NDwS31CRDK1P+JJZOB-5kk{T(p zJmGqkJce&>IMIy$UN`S^PU}M03d3ivCgax8yS>Dlv4kr#Z}>UTY~V0J8!Ma}9m!f) zzqDRh@i5Q+e&7jW1kUg&Bi8R8?0emNhsnin!p2c?N=b~x-nHBHrwOtL=HBoXPQQ$* zZDDIkgBl8XU{%7Ny2f9nne(*MdoMP#S!WU`C*5$2Vp#e9~>%W%opwBQo{unp6WV4y-*2PZ6&+LiR9 zWfqd_)P|Xu@yTUg;cQ}0d^Q$~eHn5MJ%pHo!h+@ajK^U-`uoFjXywRU=xX32Cx_N` z`6YiB)jt6nW?=qk8$S3*3+q7$0LjV>L}^c%b3_VC7teCCETU4@fQaTr zYtQMTKnkdtEAEc7EI&f+Kx-K_J3R7Y%3%zef&C6+E#nQ2))rhfF2}aK`Lz%pg`@?u z=;ptNmAJHXgy+h3_mgpwK}ocfJQ5B8WMazr*vY6b(^1m)Sn4bB>VG@+qY1*Zii49piX%;W zom?Lm2a#f9|wU(#mGg-_&o&CBufw$CMEVdr|S RHpaB;a{ Date: Tue, 6 Sep 2011 16:19:54 -0400 Subject: [PATCH 11/12] Revert "Define MSG_NOSIGNAL to 0 on platforms where it is unavailable." This reverts commit 6a0296791d5e81102a12a3142f5be25cb40f9825. The change breaks build on Fedora Linux. --- src/util.h | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/util.h b/src/util.h index 4a68051a..3d7ef108 100644 --- a/src/util.h +++ b/src/util.h @@ -81,10 +81,8 @@ T* alignup(T* p) return u.ptr; } -#ifndef MSG_NOSIGNAL -#define MSG_NOSIGNAL 0 -#endif #ifdef __WXMSW__ +#define MSG_NOSIGNAL 0 #define MSG_DONTWAIT 0 #ifndef UINT64_MAX #define UINT64_MAX _UI64_MAX From 940669657837e4a247a4d0746c12f52e8662f325 Mon Sep 17 00:00:00 2001 From: Gavin Andresen Date: Tue, 6 Sep 2011 13:39:17 -0400 Subject: [PATCH 12/12] Fix AddAddress cs_mapaddresses/db transaction deadlock --- src/net.cpp | 36 +++++++++++++++++++++--------------- 1 file changed, 21 insertions(+), 15 deletions(-) diff --git a/src/net.cpp b/src/net.cpp index 5fca17aa..509d8905 100644 --- a/src/net.cpp +++ b/src/net.cpp @@ -443,6 +443,10 @@ bool AddAddress(CAddress addr, int64 nTimePenalty, CAddrDB *pAddrDB) if (addr.ip == addrLocalHost.ip) return false; addr.nTime = max((int64)0, (int64)addr.nTime - nTimePenalty); + bool fUpdated = false; + bool fNew = false; + CAddress addrFound = addr; + CRITICAL_BLOCK(cs_mapAddresses) { map, CAddress>::iterator it = mapAddresses.find(addr.GetKey()); @@ -451,16 +455,12 @@ bool AddAddress(CAddress addr, int64 nTimePenalty, CAddrDB *pAddrDB) // New address printf("AddAddress(%s)\n", addr.ToString().c_str()); mapAddresses.insert(make_pair(addr.GetKey(), addr)); - if (pAddrDB) - pAddrDB->WriteAddress(addr); - else - CAddrDB().WriteAddress(addr); - return true; + fUpdated = true; + fNew = true; } else { - bool fUpdated = false; - CAddress& addrFound = (*it).second; + addrFound = (*it).second; if ((addrFound.nServices | addr.nServices) != addrFound.nServices) { // Services have been added @@ -475,16 +475,22 @@ bool AddAddress(CAddress addr, int64 nTimePenalty, CAddrDB *pAddrDB) addrFound.nTime = addr.nTime; fUpdated = true; } - if (fUpdated) - { - if (pAddrDB) - pAddrDB->WriteAddress(addrFound); - else - CAddrDB().WriteAddress(addrFound); - } } } - return false; + // There is a nasty deadlock bug if this is done inside the cs_mapAddresses + // CRITICAL_BLOCK: + // Thread 1: begin db transaction (locks inside-db-mutex) + // then AddAddress (locks cs_mapAddresses) + // Thread 2: AddAddress (locks cs_mapAddresses) + // ... then db operation hangs waiting for inside-db-mutex + if (fUpdated) + { + if (pAddrDB) + pAddrDB->WriteAddress(addrFound); + else + CAddrDB().WriteAddress(addrFound); + } + return fNew; } void AddressCurrentlyConnected(const CAddress& addr)