Bitcoin Forum
May 09, 2024, 01:59:47 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: All Bitcoind / Bitcoin-qt nodes failing to come up. Workaround inside!  (Read 3215 times)
gmaxwell (OP)
Moderator
Legendary
*
expert
Offline Offline

Activity: 4172
Merit: 8419



View Profile WWW
September 09, 2013, 09:35:02 AM
Last edit: September 13, 2013, 07:15:34 AM by gmaxwell
 #1

Due to a bug introduced in Bitcoind/-qt introduced in v0.8.0 nodes may fail to come up after restart, reporting:

": *** coin database inconsistencies found"
and/or
"Do you want to rebuild the block database now?"

Reindexing will not solve the problem (so I do not recommend you do so, at it will just waste your time).

You can workaround this issue by adding -checklevel=2 to your command-line arguments or checklevel=2 to your configuration file.

The problem that an inconsistency in the transaction database has been caused by some unusual whos version cannot be represented in the database. This inconsistency is correctly detected by the agressive database sanity-checks on startup.  Because this inconsistency happens to be in a field we currently do not use for anything, it is safe to ignore it for now. Lowering the checklevel skips these and other checks and allows the node to proceed as usual.

The issue may resolve itself within another 200 blocks or so if no more of the trigger transactions are added to the blockchain after the triggering block falls out of the window used for consistency checking, but because it could easily happen again a longer term fix is required and has been submitted for review.

UPDATE: 0.8.5 is now out and fixes this issue.

Walkthrough in OSX:
Open a terminal and type
open /Applications/Bitcoin-Qt.app --args -checklevel=2

Walkthrough in Windows:
In Windows, locate the file bitcoin-qt.exe
Usually is to be found in C:\Program Files (x86)\Bitcoin\ (on 64 bit version) or C:\Program Files\Bitcoin\

Right click on the file bitcoin-qt.exe  and select Create Shortcut. On the new file that appeared (bitcoin-qt.exe - Shortcut or bitcoin-qt.lnk) right click and select Properties.
add to Target line
-checklevel=2

as in this picture

https://i.imgur.com/8P1rnRA.png

Then click Apply, then execute.
The Bitcoin network protocol was designed to be extremely flexible. It can be used to create timed transactions, escrow transactions, multi-signature transactions, etc. The current features of the client only hint at what will be possible in the future.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1715263187
Hero Member
*
Offline Offline

Posts: 1715263187

View Profile Personal Message (Offline)

Ignore
1715263187
Reply with quote  #2

1715263187
Report to moderator
1715263187
Hero Member
*
Offline Offline

Posts: 1715263187

View Profile Personal Message (Offline)

Ignore
1715263187
Reply with quote  #2

1715263187
Report to moderator
1715263187
Hero Member
*
Offline Offline

Posts: 1715263187

View Profile Personal Message (Offline)

Ignore
1715263187
Reply with quote  #2

1715263187
Report to moderator
btcsql
Sr. Member
****
Offline Offline

Activity: 292
Merit: 250


View Profile
September 09, 2013, 09:49:32 AM
 #2

amazing work, most appreciated. Thank you.
favdesu
Legendary
*
Offline Offline

Activity: 1764
Merit: 1000



View Profile WWW
September 09, 2013, 12:57:01 PM
 #3

so it'd be better to wait until this is fixed if I don't need bitcoin-qt asap?

fpgaminer
Hero Member
*****
Offline Offline

Activity: 560
Merit: 517



View Profile WWW
September 09, 2013, 01:19:49 PM
 #4

gmaxwell, I'm curious about a discrepancy between the wiki's Protocol Specification page, and the Bitcoin-QT client's CTransaction class.  The wiki says nVersion is uint32.  CTransaction says int.  Which is correct?  Should the wiki be updated?  Seems to me like versions should never be negative, and uint32 is thus more appropriate.

gmaxwell (OP)
Moderator
Legendary
*
expert
Offline Offline

Activity: 4172
Merit: 8419



View Profile WWW
September 09, 2013, 04:20:55 PM
 #5

gmaxwell, I'm curious about a discrepancy between the wiki's Protocol Specification page, and the Bitcoin-QT client's CTransaction class.  The wiki says nVersion is uint32.  CTransaction says int.  Which is correct?  Should the wiki be updated?  Seems to me like versions should never be negative, and uint32 is thus more appropriate.
The "protocol specification" page is just some page on the wiki. It has some useful things, but I wouldn't be shocked if it had some flaming errors. (The 'protocol rules' page certainly has some humming omissions).  Right now the version is meaningless: all values should work in blocks.  The issue here is not really uint32 vs int32.
goodbc
Member
**
Offline Offline

Activity: 105
Merit: 11



View Profile
September 09, 2013, 10:50:51 PM
Last edit: September 09, 2013, 11:19:21 PM by goodbc
 #6

In Windows, locate the file bitcoin-qt.exe
Usually is to be found in C:\Program Files (x86)\Bitcoin\ (on 64 bit version) or C:\Program Files\Bitcoin\

Right click on the file bitcoin-qt.exe  and select Create Shortcut. On the new file that appeared (bitcoin-qt.exe - Shortcut or bitcoin-qt.lnk) right click and select Properties.
add to Target line
-checklevel=2

as in this picture

https://i.imgur.com/8P1rnRA.png

Then click Apply, then execute.

Check your IQ! Send any amount to this address:
1GoodBTCiGyd1J1LkDhCThfTHG8n9WJnNn
fpgaminer
Hero Member
*****
Offline Offline

Activity: 560
Merit: 517



View Profile WWW
September 09, 2013, 11:00:36 PM
 #7

Quote
Right now the version is meaningless: all values should work in blocks.  The issue here is not really uint32 vs int32.
Well, if the Satoshi client had used uint32 ...

Quote
all values should work in blocks.
Except now nVersion == 0 or with the high bit set is non-standard Tongue

Anyway, thank you for the response!  I was just curious, and wanted to make sure there weren't going to be any other weird bugs cropping up because of it.

gmaxwell (OP)
Moderator
Legendary
*
expert
Offline Offline

Activity: 4172
Merit: 8419



View Profile WWW
September 09, 2013, 11:21:44 PM
 #8

Quote
all values should work in blocks.
Except now nVersion == 0 or with the high bit set is non-standard Tongue
Which has nothing to do with them working in blocks.  >1 was already non-standard, the other values not being was an omission. Discouraging the casual use of these fields is important for having them be viable upgrade mechanisms: E.g. if in the future the community wants to do a soft-fork to enforce some kind of coin-value-in-scriptsig, say, we'd use a version=2 to trigger making sure the inputs values matched after some height... but we couldn't do that if some implementations were putting random numbers in the version field just for fun. Smiley

Quote
I was just curious, and wanted to make sure there weren't going to be any other weird bugs cropping up because of it.
Always bet on more bugs. I suspect we'll ultimately make the version field unsigned, but I can't say for sure until I've actually gone and done it and seen how disruptive it'll be to the codebase.
goldlyre
Hero Member
*****
Offline Offline

Activity: 1101
Merit: 512


View Profile
September 10, 2013, 02:31:32 AM
 #9

I've put all my coin in Armory which requires Bitcoin-qt working properly first.  Huh
omehenk
Sr. Member
****
Offline Offline

Activity: 278
Merit: 250


View Profile
September 10, 2013, 02:39:43 AM
 #10

In Windows, locate the file bitcoin-qt.exe
Usually is to be found in C:\Program Files (x86)\Bitcoin\ (on 64 bit version) or C:\Program Files\Bitcoin\

Right click on the file bitcoin-qt.exe  and select Create Shortcut. On the new file that appeared (bitcoin-qt.exe - Shortcut or bitcoin-qt.lnk) right click and select Properties.
add to Target line
-checklevel=2

as in this picture

https://i.imgur.com/8P1rnRA.png

Then click Apply, then execute.

This worked for me - thx U.   Grin

Henk

bitcoindigi
Full Member
***
Offline Offline

Activity: 238
Merit: 100



View Profile
September 10, 2013, 05:08:58 AM
 #11

Quote
You can workaround this issue by adding -checklevel=2 to your command-line arguments or checklevel=2 to your configuration file.

worked, thanks!!
FrankDizapo
Newbie
*
Offline Offline

Activity: 6
Merit: 0


View Profile
September 10, 2013, 08:12:39 AM
 #12

Thanks this works for me!
samson
Legendary
*
Offline Offline

Activity: 2097
Merit: 1070


View Profile
September 11, 2013, 01:32:30 PM
 #13

Is this bug present in the latest 0.8.4 version released on September 3rd ?

Does anyone have any idea of the timescale until the full fix is released in a new version that new users can download and start using without using the workaround ?
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!