You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I'm not sure if we need to try to solve these issues with code (the solution would be something like adding if (testnet) everywhere or modifying the common if (!this.syncing)) but I wanted to document since I suspect it could be a FAQ:
hsd thinks it is "syncing" (i.e. initial block download)
The main culprit here is that the last block is over 40 minutes old. There are no checkpoints and the minimum chain work is 0. Once a node has switched synced to true, it is mostly latched until restart, meaning this is a particular problem for new nodes on testnet.
No peers are syncable (allowed to be synced from) except the loader peer, which must be an outbound connection. Therefore if you connect to Alice's node and mine a block, Alice will not accept it because Alice is "syncing" and you are not her loader peer.
Peers send getblocks, receive nothing in response, timeout after 30 seconds, and disconnect... repeatedly. Since we think we are syncing we expect peers to have blocks for us. They don't. One possible solution for this is to send empty INV messages back if there are no blocks in the chain following the requesting peer's getblocksstop
The text was updated successfully, but these errors were encountered:
This also blocks rpc getblocktemplate, making mining impossible, meaning testnet can't really proceed at all. I'm trying to CPU mine with hsd by itself just to hopefully get one block added to the chain so it thinks its "synced" and start generating block templates for hs-miner:
I'm not sure if we need to try to solve these issues with code (the solution would be something like adding
if (testnet)
everywhere or modifying the commonif (!this.syncing)
) but I wanted to document since I suspect it could be a FAQ:hsd thinks it is "syncing" (i.e. initial block download)
The main culprit here is that the last block is over 40 minutes old. There are no checkpoints and the minimum chain work is
0
. Once a node has switchedsynced
totrue
, it is mostly latched until restart, meaning this is a particular problem for new nodes on testnet.hsd/lib/blockchain/chain.js
Lines 2701 to 2718 in 61defcc
Node behavior when
syncing
istrue
No peers are syncable (allowed to be synced from) except the loader peer, which must be an outbound connection. Therefore if you connect to Alice's node and mine a block, Alice will not accept it because Alice is "syncing" and you are not her loader peer.
Peers send
getblocks
, receive nothing in response, timeout after 30 seconds, and disconnect... repeatedly. Since we think we are syncing we expect peers to have blocks for us. They don't. One possible solution for this is to send emptyINV
messages back if there are no blocks in the chain following the requesting peer'sgetblocks
stop
The text was updated successfully, but these errors were encountered: