Pages:
Author

Topic: TRC: 32-bit Linux client cannot synchronize with TerraCoin network (Read 3875 times)

full member
Activity: 148
Merit: 100
Bug still present and cause is unknown, but it is "fixed" by https://github.com/terracoin/terracoin/commit/856387e


Was this fix tested? When I check the code, I don't understand it... Is the function GetEmaNextWorkRequired right place for the fix??

Well, it is not a fix but workaround. It is working, blockchain was synchronized till block 190965.
Exactly. This commit allowing affected machines to synchronize w/o any trouble, it also adds additional checkpoint right after "messy" block 137161 to make sure that you are in proper chain.
This is only workaround, not real fix and it is valid only for this block.
If this unknown bug hit again code need be changed again, and again...


except that the EMA thing is not in use anymore, so there's (hopefully) no need to change it again.

i've no time to spend on that, but i'd like to see what previous block somehow borked the ema calculation in the ~2k (?) blocks prior to 137161, and how

I like the alert related changes bring by this release though. I guess alerts will be used to announce the (HOPEFULLY) next major change announced on github issue tracker (shorter retarget window with smaller caps), so the coin returns to a faster block rate.
legendary
Activity: 1361
Merit: 1003
Don`t panic! Organize!
Bug still present and cause is unknown, but it is "fixed" by https://github.com/terracoin/terracoin/commit/856387e


Was this fix tested? When I check the code, I don't understand it... Is the function GetEmaNextWorkRequired right place for the fix??

Well, it is not a fix but workaround. It is working, blockchain was synchronized till block 190965.
Exactly. This commit allowing affected machines to synchronize w/o any trouble, it also adds additional checkpoint right after "messy" block 137161 to make sure that you are in proper chain.
This is only workaround, not real fix and it is valid only for this block.
If this unknown bug hit again code need be changed again, and again...
PSL
member
Activity: 166
Merit: 10
Well, it is not a fix but workaround. It is working, blockchain was synchronized till block 190965.
PSL
member
Activity: 166
Merit: 10
Bug still present and cause is unknown, but it is "fixed" by https://github.com/terracoin/terracoin/commit/856387e


Was this fix tested? When I check the code, I don't understand it... Is the function GetEmaNextWorkRequired right place for the fix??
legendary
Activity: 1361
Merit: 1003
Don`t panic! Organize!
Bug still present and cause is unknown, but it is "fixed" by https://github.com/terracoin/terracoin/commit/856387e
full member
Activity: 209
Merit: 100
i'use ubuntu 64bit ... 12.04

you see my output, i'was look ... i get also errors ... or not ... i'dont kow i'ts correct ... to get this errors or not.
but if it's help to found bugs ... of course ... i'give this information ... if my the daemon found errors. 
PSL
member
Activity: 166
Merit: 10
I tried to compile TRC client for smartbook Toshiba AC100 that is based around Nvidia Tegra2 (32-bit ARM processor). I run Ubuntu 12.10 (armhf) at AC100.
TRC client passed the test, whole blockchain was downloaded, no issue at all.

I observe the problem at several x86 computers running different 32-bit versions of Ubuntu.
PSL
member
Activity: 166
Merit: 10
hm ... here my output.

root@bitcoin:~/.terracoin# grep 00000000000342fd6e38765cc6f8f56d60c49e3e9522a54d99f561d35800a293 *
debug.log:received block 00000000000342fd6e38765cc6f8f56d60c49e3e9522a54d99f561d35800a293 from 5.39.79.140:13333
debug.log:SetBestChain: new best=00000000000342fd6e38765cc6f8f56d60c49e3e9522a54d99f561d35800a293  height=137162  work=4137787908838877763  tx=272549  date=2013-05-30 11:54:41
root@bitcoin:~/.terracoin#

You don't have the problem described in this thread, your client accepted block 137162.
Is your report from 32-bit Linux? What distribution is that?
full member
Activity: 209
Merit: 100
yes you are right ... i geht this error also.

Quote
root@bitcoin:~/.terracoin# grep ERROR *
debug.log:ERROR: CAddrman::Read() : open failed
debug.log:ERROR: GetMyExternalIP() : connection to 91.198.22.70:80 failed
debug.log:ERROR: GetMyExternalIP() : connection to 74.208.43.192:80 failed
debug.log:ERROR: CTxMemPool::accept() : inputs already spent
debug.log:ERROR: CTxMemPool::accept() : nonstandard transaction type
debug.log:ERROR: CTxMemPool::accept() : inputs already spent
debug.log:ERROR: CTransaction::CheckTransaction() : vin empty
debug.log:ERROR: CTxMemPool::accept() : CheckTransaction failed
debug.log:ERROR: CTxMemPool::accept() : nonstandard transaction type
debug.log:ERROR: CTransaction::CheckTransaction() : vin empty
debug.log:ERROR: CTxMemPool::accept() : CheckTransaction failed
debug.log:ERROR: CTransaction::CheckTransaction() : vin empty
debug.log:ERROR: CTxMemPool::accept() : CheckTransaction failed
debug.log:ERROR: CTransaction::CheckTransaction() : vin empty
debug.log:ERROR: CTxMemPool::accept() : CheckTransaction failed
debug.log:ERROR: CTransaction::CheckTransaction() : vin empty
debug.log:ERROR: CTxMemPool::accept() : CheckTransaction failed
debug.log:ERROR: CTransaction::CheckTransaction() : vin empty
debug.log:ERROR: CTxMemPool::accept() : CheckTransaction failed
root@bitcoin:~/.terracoin# grep Misbehaving
^C
root@bitcoin:~/.terracoin# grep Misbehaving *
debug.log:Misbehaving: 46.105.103.55:13333 (0 -> 0)
debug.log:Misbehaving: 85.10.234.182:13333 (0 -> 0)
debug.log:Misbehaving: 5.39.79.140:13333 (0 -> 10)
debug.log:Misbehaving: 86.24.151.91:39923 (0 -> 10)
debug.log:Misbehaving: 124.170.9.80:54193 (0 -> 10)
debug.log:Misbehaving: 2.206.184.168:55760 (0 -> 10)
debug.log:Misbehaving: 2.206.184.168:53250 (0 -> 10)
debug.log:Misbehaving: 2.206.184.168:55375 (0 -> 10)
root@bitcoin:~/.terracoin#
full member
Activity: 209
Merit: 100
hm ... here my output.


{
    "version" : 80000,
    "protocolversion" : 70001,
    "walletversion" : 60000,
    "balance" : 0.00000000,
    "blocks" : 190777,
    "timeoffset" : -19,
    "connections" : 20,
    "proxy" : "",
    "difficulty" : 174945.08187373,
    "testnet" : false,
    "keypoololdest" : 1379669693,
    "keypoolsize" : 101,
    "paytxfee" : 0.00000000,
    "errors" : ""
}


root@bitcoin:~/.terracoin# grep 00000000000342fd6e38765cc6f8f56d60c49e3e9522a54d99f561d35800a293 *
debug.log:received block 00000000000342fd6e38765cc6f8f56d60c49e3e9522a54d99f561d35800a293 from 5.39.79.140:13333
debug.log:SetBestChain: new best=00000000000342fd6e38765cc6f8f56d60c49e3e9522a54d99f561d35800a293  height=137162  work=4137787908838877763  tx=272549  date=2013-05-30 11:54:41
root@bitcoin:~/.terracoin#
PSL
member
Activity: 166
Merit: 10
i'think it's work very fine. i was clone today from github ... and is run perfect. no problems ... 

I updated source code from github to the latest version and after retest I am sure this bug WAS NOT FIXED...

Code:
$ ./terracoind getinfo
{
    "version" : 80000,
    "protocolversion" : 70001,
    "walletversion" : 60000,
    "balance" : 0.00000000,
    "blocks" : 137161,
    "timeoffset" : 0,
    "connections" : 10,
    "proxy" : "",
    "difficulty" : 19373.63213164,
    "testnet" : false,
    "keypoololdest" : 1370166643,
    "keypoolsize" : 101,
    "paytxfee" : 0.00000000,
    "errors" : ""
}

This is in debug.log:

received block 00000000000342fd6e38765cc6f8f56d60c49e3e9522a54d99f561d35800a293 from 46.59.225.84:41156
ERROR: AcceptBlock() : incorrect proof of work
ERROR: ProcessBlock() : AcceptBlock FAILED
Misbehaving: 46.59.225.84:41156 (0 -> 100) DISCONNECTING
full member
Activity: 209
Merit: 100
i'think it's work very fine. i was clone today from github ... and is run perfect. no problems ... 
legendary
Activity: 1361
Merit: 1003
Don`t panic! Organize!
I made change in code that allows to sync linux 32 bit client, but this is VERY dangerous for network, so use it only as temporary "fix" that is NOT fixing issue, only skipping check that is failing on block.
https://github.com/terracoin/terracoin/issues/10#issuecomment-20153594
I hope TRC devs will found some real solution.
newbie
Activity: 3
Merit: 0
Hi calonew,

I tried your suggestions (copying block procedure, deleting database/log.*), but the daemon quit afters a few seconds started, giving a core dump:

Code:
Line 1: 986 segmentation fault (core dumped)

using gdb with the core dumpshows at end:

Code:
[debug libthread_db enabled]
Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1".
Program finish with signal 11, Segmentation fault.
#0  0x080b7c66 in GetBlockTime (this=) at main.h:1731


In debug.log, everything seems normal, but final lines shows when the daemon try to recover last generated blocks the program fails:

Code:
Terracoin version v0.1.3rc4-11-gee218b9 (2013-04-19 12:05:41 +0200)
Using OpenSSL version OpenSSL 1.0.1 14 Mar 2012
Startup time: 2013-06-28 21:29:02
[ ... cut ...]
trying connection xxx:13333 lastseen=1.3hrs
connected xxx:13333
send version message: version 70001, blocks=150826, us=yyyyyy:13333, them=xxx:13333, peer=xxx:13333
trying connection zzzzz:13333 lastseen=283.0hrs
Added time data, samples 2, offset -7 (+0 minutes)
receive version message: version 70001, blocks=150835, us=yyyyyyy:59541, them=xxxx:13333, peer=xxxx:13333
received block 0000000000003b30adb25cd4feda8827f94e8aecf4202b716e46768d30757283 from xxxx:13333
[end log]


The Daemon never gets the 150835 block. Now i'm stuck on 150826, that was previusly downloaded by a Windoze machine.

db.log is clean (no records on it).

the "Copy Block" procedure doesn't work for me either.  Sad

Any ideas?

K0T0
full member
Activity: 196
Merit: 100
It is "working" only because not all blocks are checked on daemon start, use -rescan and you are in same point!
The -rescan option is NOT redownloading the chain blocks. It only checks and update the WALLET for missing transactions, using the already downloaded chain block database. However, it does not affect the downloaded chain in any way.
(more information about -rescan here: http://bitcoin.stackexchange.com/questions/1249/how-exactly-does-rescan-work

Does not for me.
After copying files terracoind wont start beacouse:
Code:
: Error opening block database.
with -rescan, same thing
That happened to me too, until I deleted all log.xxx files from .terracoin/database/ folder.
So, after copying the database files from Windows machine, do not forget to delete log.xxx files (from STEP 3)
Otherwise it gives that database error message.

However, following these steps was the only solution for me.
newbie
Activity: 3
Merit: 0
@calonew & @rav3n_pl & @pawlak2   Many thanks for your quick answers!.   Smiley

I was read all the post before putting my question.. and yes I saw the "block-copy solution", thanks for remember me, but honestly I didn't convince me too much... mainly because in some point the daemon will get stuck again, sooner or later.... and  .... my afraid was confirmed with the pawlak2 comments... Thanks for testing it.

I spend Yesterday installing another new box with windoze and downloaded all the block chains. The daemon for windows works fine (I was tested the binary version on windows 7).

The problem seems to be NOT in the block chain (data) itself, is somewhere into the code... but where??? and why only Linux 32 is affected. Is a sort of compiler trick that with the same source code do it good in 64bits and Win and simultaneously does bad in Linux 32 bits... very strange.

may be some forget compiler flag for 64/32bits fooling around?

Thanks to all for the help.

K0T0
newbie
Activity: 36
Merit: 0
Does not for me.
After copying files terracoind wont start beacouse:
Code:
: Error opening block database.
with -rescan, same thing

When I start terracoind -reindex, it's going fine until the fatal block

Code:
2013-06-27 20:27:06 SetBestChain: new best=000000000002fd58866ebe4bf20cc4f125d0f73a8f3062af33cf2a51b28e3101  height=137161  work=4137702564537257511  tx=272545  date=2013-05-30 12:04:04
2013-06-27 20:27:06 ProcessBlock: ACCEPTED
2013-06-27 20:27:06 ERROR: AcceptBlock() : incorrect proof of work
2013-06-27 20:27:06 ERROR: ProcessBlock() : AcceptBlock FAILED
2013-06-27 20:27:06 ProcessBlock: ORPHAN BLOCK, prev=00000000000342fd6e38765cc6f8f56d60c49e3e9522a54d99f561d35800a293
2013-06-27 20:27:06 ProcessBlock: ORPHAN BLOCK, prev=0000000000006dea252906e11034b87986b5fdbc5b274f7dd20d458c2896d18b
2013-06-27 20:27:06 ProcessBlock: ORPHAN BLOCK, prev=00000000000144bbd7811379826a285a0793ca9759fc2ecae51681d18c84bfef
2013-06-27 20:27:06 ProcessBlock: ORPHAN BLOCK, prev=000000000004070c47c85fa6a0b78ce8c49a07af81d6a063db1026a48f781261
2013-06-27 20:27:06 ProcessBlock: ORPHAN BLOCK, prev=000000000003b5c07dde8034be5196c265e6799244409bb6f0ef3d5c4d6599df

Are You sure your trying this on 32bit linux version ?
My version:
Code:
Terracoin version v0.1.3rc4-11-gee218b9 (2013-04-19 12:05:41 +0200)
legendary
Activity: 1361
Merit: 1003
Don`t panic! Organize!
It is "working" only because not all blocks are checked on daemon start, use -rescan and you are in same point!
full member
Activity: 196
Merit: 100
Same problem on my side.
...
I really don't want to format my linux box for installing 64bit version or Windoze.
Any suggestions will be very wellcome.

@K0T0: You may copy the chain database from a synchronized Windows machine.
Don't forget to save (backup) your terracoin.conf and wallet.dat files (from your linux machine), then copy the rest from Windows.
That's what I did, and it worked! See below post:


I've finally managed to copy the block chain from Windows to Linux!
Here is how:

1. Copy the ENTIRE Terracoin folder from Windows (which was synchronized) - without wallet.dat and terracoin.conf
2. Paste to .terracoin folder in Linux
3. IMPORTANT! Delete .terracoin/database/log.00000000  files! (all log.xxx files from .terracoin/database/ folder!)
4. copy your saved wallet.dat and terracoin.conf files to .terracoin folder on Linux
5. start the daemon (terracoind -daemon)

Done! Linux daemon is now synchronized!

newbie
Activity: 3
Merit: 0
Same problem on my side. I recently post on github my situation: I have an Ubuntu1204 box 32-bit with a headless terracoind compiled from sources (git). Block loading is getting stuck on #137429.

I try the usual: restart daemon, restart OS, compile an older and newer terracoin clients and test it, start the daemon with "-rescan" option but nothing seems to overcome the problem. Still get it stuck on same block.

cat@ubuntu1204S:~/coins/terracoin-master/src$ ./terracoind getinfo
{
"version" : 80000,
"protocolversion" : 70001,
"walletversion" : 60000,
"balance" : 2.86100020,
"blocks" : 137429,
"timeoffset" : -1,
"connections" : 8,
"proxy" : "",
"difficulty" : 5254.96236407,
"testnet" : false,
"keypoololdest" : 1367619363,
"keypoolsize" : 101,
"paytxfee" : 0.00000000,
"errors" : ""
}

in debug.log shows things similiar that some people already commented:

received block 00000000000342fd6e38765cc6f8f56d60c49e3e9522a54d99f561d35800a293 from xxxxxx:13333
ERROR: AcceptBlock() : incorrect proof of work
ERROR: ProcessBlock() : AcceptBlock FAILED

mmm... seems to be the same "problematic" block described earlier: 137162...


I really don't want to format my linux box for installing 64bit version or Windoze.

Any suggestions will be very wellcome.

Thanks for your help,
K0T0
Pages:
Jump to: