fix UTXO waiting logic
This commit is contained in:
parent
b5c9806dd0
commit
a8551bc9ee
3 changed files with 17 additions and 11 deletions
2
go.mod
2
go.mod
|
@ -15,7 +15,7 @@ require (
|
||||||
github.com/konsorten/go-windows-terminal-sequences v1.0.2 // indirect
|
github.com/konsorten/go-windows-terminal-sequences v1.0.2 // indirect
|
||||||
github.com/kr/pretty v0.1.0 // indirect
|
github.com/kr/pretty v0.1.0 // indirect
|
||||||
github.com/lbryio/errors.go v0.0.0-20180223142025-ad03d3cc6a5c
|
github.com/lbryio/errors.go v0.0.0-20180223142025-ad03d3cc6a5c
|
||||||
github.com/lbryio/lbry.go v1.0.14
|
github.com/lbryio/lbry.go v1.0.15
|
||||||
github.com/lusis/slack-test v0.0.0-20190408224659-6cf59653add2 // indirect
|
github.com/lusis/slack-test v0.0.0-20190408224659-6cf59653add2 // indirect
|
||||||
github.com/mitchellh/go-ps v0.0.0-20170309133038-4fdf99ab2936
|
github.com/mitchellh/go-ps v0.0.0-20170309133038-4fdf99ab2936
|
||||||
github.com/mitchellh/mapstructure v1.1.2 // indirect
|
github.com/mitchellh/mapstructure v1.1.2 // indirect
|
||||||
|
|
4
go.sum
4
go.sum
|
@ -129,8 +129,8 @@ github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
|
||||||
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
|
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
|
||||||
github.com/lbryio/errors.go v0.0.0-20180223142025-ad03d3cc6a5c h1:BhdcWGsuKif/XoSZnqVGNqJ1iEmH0czWR5upj+AuR8M=
|
github.com/lbryio/errors.go v0.0.0-20180223142025-ad03d3cc6a5c h1:BhdcWGsuKif/XoSZnqVGNqJ1iEmH0czWR5upj+AuR8M=
|
||||||
github.com/lbryio/errors.go v0.0.0-20180223142025-ad03d3cc6a5c/go.mod h1:muH7wpUqE8hRA3OrYYosw9+Sl681BF9cwcjzE+OCNK8=
|
github.com/lbryio/errors.go v0.0.0-20180223142025-ad03d3cc6a5c/go.mod h1:muH7wpUqE8hRA3OrYYosw9+Sl681BF9cwcjzE+OCNK8=
|
||||||
github.com/lbryio/lbry.go v1.0.14 h1:lpaO96YyP3d2RJzgl1WFkcyS15/ROd04OV3S1E5Av8E=
|
github.com/lbryio/lbry.go v1.0.15 h1:vp4pkcM4jGDaPF0aPtLCvOBfe1ajogtyJPjkMUzLWsU=
|
||||||
github.com/lbryio/lbry.go v1.0.14/go.mod h1:JtyI30bU51rm0LZ/po3mQuzf++14OWb6kR/6mMRAmKU=
|
github.com/lbryio/lbry.go v1.0.15/go.mod h1:JtyI30bU51rm0LZ/po3mQuzf++14OWb6kR/6mMRAmKU=
|
||||||
github.com/lbryio/lbryschema.go v0.0.0-20190428231007-c54836bca002 h1:urfYK5ElpUrAv90auPLldoVC60LwiGAcY0OE6HJB9KI=
|
github.com/lbryio/lbryschema.go v0.0.0-20190428231007-c54836bca002 h1:urfYK5ElpUrAv90auPLldoVC60LwiGAcY0OE6HJB9KI=
|
||||||
github.com/lbryio/lbryschema.go v0.0.0-20190428231007-c54836bca002/go.mod h1:dAzPCBj3CKKWBGYBZxK6tKBP5SCgY2tqd9SnQd/OyKo=
|
github.com/lbryio/lbryschema.go v0.0.0-20190428231007-c54836bca002/go.mod h1:dAzPCBj3CKKWBGYBZxK6tKBP5SCgY2tqd9SnQd/OyKo=
|
||||||
github.com/lbryio/ozzo-validation v0.0.0-20170323141101-d1008ad1fd04 h1:Nze+C2HbeKvhjI/kVn+9Poj/UuEW5sOQxcsxqO7L3GI=
|
github.com/lbryio/ozzo-validation v0.0.0-20170323141101-d1008ad1fd04 h1:Nze+C2HbeKvhjI/kVn+9Poj/UuEW5sOQxcsxqO7L3GI=
|
||||||
|
|
|
@ -166,14 +166,19 @@ func (s *Sync) ensureEnoughUTXOs() error {
|
||||||
target := 40
|
target := 40
|
||||||
slack := int(float32(0.1) * float32(target))
|
slack := int(float32(0.1) * float32(target))
|
||||||
count := 0
|
count := 0
|
||||||
|
confirmedCount := 0
|
||||||
|
|
||||||
for _, utxo := range *utxolist {
|
for _, utxo := range *utxolist {
|
||||||
amount, _ := strconv.ParseFloat(utxo.Amount, 64)
|
amount, _ := strconv.ParseFloat(utxo.Amount, 64)
|
||||||
if !utxo.IsClaim && !utxo.IsSupport && !utxo.IsUpdate && amount > 0.001 {
|
if !utxo.IsMine && utxo.Type == "payment" && amount > 0.001 {
|
||||||
|
if utxo.Confirmations > 0 {
|
||||||
|
confirmedCount++
|
||||||
|
}
|
||||||
count++
|
count++
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
log.Infof("utxo count: %d", count)
|
log.Infof("utxo count: %d (%d confirmed)", count, confirmedCount)
|
||||||
|
UTXOWaitThreshold := 16
|
||||||
if count < target-slack {
|
if count < target-slack {
|
||||||
balance, err := s.daemon.AccountBalance(&defaultAccount)
|
balance, err := s.daemon.AccountBalance(&defaultAccount)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -200,12 +205,13 @@ func (s *Sync) ensureEnoughUTXOs() error {
|
||||||
} else if prefillTx == nil {
|
} else if prefillTx == nil {
|
||||||
return errors.Err("no response")
|
return errors.Err("no response")
|
||||||
}
|
}
|
||||||
|
if confirmedCount < UTXOWaitThreshold {
|
||||||
err = s.waitForNewBlock()
|
err = s.waitForNewBlock()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
} else if !allUTXOsConfirmed(utxolist) {
|
}
|
||||||
|
} else if confirmedCount < UTXOWaitThreshold {
|
||||||
log.Println("Waiting for previous txns to confirm")
|
log.Println("Waiting for previous txns to confirm")
|
||||||
err := s.waitForNewBlock()
|
err := s.waitForNewBlock()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -400,7 +406,7 @@ func allUTXOsConfirmed(utxolist *jsonrpc.UTXOListResponse) bool {
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, utxo := range *utxolist {
|
for _, utxo := range *utxolist {
|
||||||
if utxo.Height == 0 {
|
if utxo.Confirmations < 0 {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue