ledgerloops / jerboa

A state-driven Ledger Loops node in TypeScript. Successor of strategies in https://github.com/ledgerloops/strategy-pit
Apache License 2.0
1 stars 0 forks source link

In hourglass: 1 picked 3 who is not on the loop #50

Closed michielbdejong closed 1 month ago

michielbdejong commented 1 month ago

1 picked 3 who is not on the loop {"command":"scout","probeId":"5-4","maxIncarnation":3,"amount":20,"debugInfo":{"loop":["5","4","1","6","5"]}} - {"in":{"3":2,"4":2,"6":0},"looper":{"2":0},"out":{"2":2,"3":0,"6":3},"loops":{"nsvc6aUBGf/zYBi8ydX+LmRe1e+hOaKzse1bLRvdFgk=":{"preimage":"genRanHex57","proposeTo":"2","amount":-16,"commitTo":"3","commitFrom":"2"}},"currentOut":"6"}
michielbdejong commented 1 month ago
5-4:0 goes 5 6 [ 1 3 2 1 ]
5-4:1 goes 5 / 6
5-4:2 goes 5 4 1 / 2 3 1
5-4:3 goes [ 5 4 1 6 5 ]

Then the scout for 5-4:3 should go 5 6 1 4 5, but at 1 it derails, because 5 4 1 / 2 3 1 contains both 4 1 and 3 1. Node 1 should pick node 4 but it picks node 3.

michielbdejong commented 1 month ago

I think in general, an in record should be cancelled when a probe nacks. I think that would solve this issue.