lbry-sdk not making progress during initial address sync when connecting to herald.go #77
Labels
No labels
consider soon
documentation
good first issue
hacktoberfest
help wanted
priority: blocker
priority: high
priority: low
priority: medium
type: bug
type: discussion
type: improvement
type: new feature
type: refactor
type: task
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: LBRYCommunity/herald.go#77
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
This data was gathered with some local changes plus my published branch herald.go/blockchain_tx_rpc1:
failure.txt
It's not completing, even though some messages are emitted like these:
It just keeps spinning in some loop alternating between
address.get_history
andtransaction.get_batch
. It's also only mentioning a couple of specific transactions -- one at height=0 and one at height=1I will continue investigating this, but maybe @eukreign, @jackrobison, or @shyba could point me in the right direction.
Herald.go is not generating address notifications and header notifications at this time AFAICT. That's one difference in behavior between herald.go and python herald that may be relevant.
Lbry-sdk <-> Herald RPCs sent & responses:
Baseline: a.txt
Herald.go: b.txt
It's starting to diverge at the point of
blockchain.address.subcribe
(Python hub returns None a lot of the time) and later atblockchain.address.get_history
(Herald.go returns 2 different transactions at height 0 and height 1, Python returns same transaction at height -1 and later height 201).Found a problem with
address.get_history
. The interpretation ofIncludeStop
iteration option was confusing me. Hence I was finding an extra record following the desiredhashX
when no matching record existed.Secondly, I have narrowed down where it's stuck. Test setup sequence is now at the stage (
send_to_address_and_wait
) where mempool TXs must generate notifications and be reportable. The existing mechanismdetectChanges()
is only monitoring height inDBStateValue
. But there can't be a change in height untilsend_to_address_and_wait
moves on to generate blocks.