Skip to content

Commit

Permalink
Merge pull request #184 from lightninglabs/match-node-id
Browse files Browse the repository at this point in the history
zombierecovery: match against ancient channel list
  • Loading branch information
guggero authored Feb 24, 2025
2 parents 9301539 + c15cf58 commit b8cb81a
Show file tree
Hide file tree
Showing 5 changed files with 5,573 additions and 2,771 deletions.
37 changes: 25 additions & 12 deletions cmd/chantools/summary.go
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,24 @@ func summarizeAncientChannels(apiURL string,

api := newExplorerAPI(apiURL)

results, err := ancientChannelCandidates(api, channels)
if err != nil {
return fmt.Errorf("error finding ancient channels: %w", err)
}

summaryBytes, err := json.MarshalIndent(results, "", " ")
if err != nil {
return err
}
fileName := fmt.Sprintf("results/summary-ancient-%s.json",
time.Now().Format("2006-01-02-15-04-05"))
log.Infof("Writing result to %s", fileName)
return os.WriteFile(fileName, summaryBytes, 0644)
}

func ancientChannelCandidates(api *btc.ExplorerAPI,
channels []*dataformat.SummaryEntry) ([]*ancientChannel, error) {

var results []*ancientChannel
for _, target := range channels {
if target.ClosingTX == nil {
Expand Down Expand Up @@ -155,8 +173,9 @@ func summarizeAncientChannels(apiURL string,

addr, err := lnd.ParseAddress(closeTx.ToRemoteAddr, chainParams)
if err != nil {
return fmt.Errorf("error parsing address %s of %s: %w",
closeTx.ToRemoteAddr, closeTx.TXID, err)
return nil, fmt.Errorf("error parsing address %s of "+
"%s: %w", closeTx.ToRemoteAddr, closeTx.TXID,
err)
}

if _, ok := addr.(*btcutil.AddressWitnessPubKeyHash); !ok {
Expand All @@ -167,8 +186,8 @@ func summarizeAncientChannels(apiURL string,

tx, err := api.Transaction(closeTx.TXID)
if err != nil {
return fmt.Errorf("error fetching transaction %s: %w",
closeTx.TXID, err)
return nil, fmt.Errorf("error fetching transaction "+
"%s: %w", closeTx.TXID, err)
}

for idx, txOut := range tx.Vout {
Expand All @@ -182,19 +201,13 @@ func summarizeAncientChannels(apiURL string,
idx),
Addr: closeTx.ToRemoteAddr,
CP: target.LocalUnrevokedCommitPoint,
Node: target.RemotePubkey,
})
}
}
}

summaryBytes, err := json.MarshalIndent(results, "", " ")
if err != nil {
return err
}
fileName := fmt.Sprintf("results/summary-ancient-%s.json",
time.Now().Format("2006-01-02-15-04-05"))
log.Infof("Writing result to %s", fileName)
return os.WriteFile(fileName, summaryBytes, 0644)
return results, nil
}

func summarizeAncientChannelOutputs(apiURL, ancientFile string) error {
Expand Down
1 change: 1 addition & 0 deletions cmd/chantools/sweepremoteclosed.go
Original file line number Diff line number Diff line change
Expand Up @@ -462,6 +462,7 @@ type ancientChannel struct {
OP string `json:"close_outpoint"`
Addr string `json:"close_addr"`
CP string `json:"commit_point"`
Node string `json:"node"`
}

func findAncientChannels(channels []ancientChannel, numKeys uint32,
Expand Down
Loading

0 comments on commit b8cb81a

Please sign in to comment.