Bitcoin Forum

Bitcoin => Bitcoin Technical Support => Topic started by: jnano on November 28, 2017, 06:53:08 AM



Title: Core temporarily marks past transactions as "offline"?
Post by: jnano on November 28, 2017, 06:53:08 AM
Starting up Core today, I noticed that the most recent transaction was greyed out, its value in square brackets, and the tooltip read "offline" instead of 100s of confirmations. The transaction before it didn't show these symptoms. A few minutes later the "offline" transaction became normal again.

What does offline mean here?



Title: Re: Core temporarily marks past transactions as "offline"?
Post by: LoyceV on November 28, 2017, 11:44:48 AM
It means your Bitcoin Core is still starting up, and not yet properly connected to the network.
It's normal, mine does the same.

As a workaround: don't turn off Bitcoin Core, I keep it running all the time.


Title: Re: Core temporarily marks past transactions as "offline"?
Post by: jnano on November 28, 2017, 08:02:01 PM
Other transactions doesn't show as offline. What decides which fall into each category?

I can't keep it on all the time. It's unfortunate it's totally inefficient at starting up. Even when there are no blocks to catch up, and it's supposedly synced, it keeps thrashing the HDD for 10 minutes after startup, during which there are side effects like the above, or the GUI being barely responsive.

I haven't upgraded yet from 15.0.1, but I didn't see any change notes about improving memory caching or disk access.



Title: Re: Core temporarily marks past transactions as "offline"?
Post by: LoyceV on November 28, 2017, 09:10:10 PM
it keeps trashing the HDD for 10 minutes after startup
I recently tested this: it took 80 seconds to startup from my HDD. After I moved the chainstate-directory to an SSD, the startup time went down to 20 seconds.

If it takes your PC 10 minutes, I guess you're low on memory. If that's the case, see if you can install some more RAM. If you're low on memory, this upgrade can make a huge difference in overall performance.

Addition: I just restarted Bitcoin Core. Since I have the chainstate-directory on my SSD, it takes less than a second to switch from "offline" to "normal" after starting up.


Title: Re: Core temporarily marks past transactions as "offline"?
Post by: jnano on November 28, 2017, 09:46:41 PM
No memory shortage. And I don't mean the initial startup. After the software shows the main GUI and is fully interactive, with no blocks to catch up with, it still crunches for a few minutes. Maybe it's related to the general caching problems (https://bitcointalk.org/index.php?topic=2291857.0), which, as you said in the past, can be alleviated by using a RAM drive. But these caching problems are a topic for another day. :)

I was mainly curious why some transaction show as "offline" during this initial period, but others don't. A theory: newer transactions may be affected by some chainstate reorganization that happens on startup.


Title: Re: Core temporarily marks past transactions as "offline"?
Post by: achow101 on November 29, 2017, 05:35:53 AM
Bitcoin Core will rewind several blocks at startup and re-verify them as a sanity check. It's likely that those transactions were in blocks that were rewound and being rechecked at startup, so they are shown as offline.


Title: Re: Core temporarily marks past transactions as "offline"?
Post by: jnano on November 29, 2017, 05:50:09 AM
That transaction had hundreds of confirmations at that stage.
Would it rewind that many?



Title: Re: Core temporarily marks past transactions as "offline"?
Post by: achow101 on November 29, 2017, 06:15:16 AM
That transaction had hundreds of confirmations at that stage.
Would it rewind that many?
It could happen. I have seen it rewind a few hundred blocks before due to unclean shutdown.


Title: Re: Core temporarily marks past transactions as "offline"?
Post by: jnano on November 29, 2017, 06:55:01 AM
I don't think there was an unclean shutdown.
Is that the only reason a tx would show as offline?

If the following is the rewinding you mean, doesn't that happen before the main GUI shows?

Code:
2017-11-28 06:40:25 init message: Rewinding blocks...
2017-11-28 06:40:27 init message: Verifying blocks...