breacharbiter: introduce new sub-system to watch for breaches

This commit introduces a new sub-system into the daemon whose job it is
to vigilantly watch for any potential channel breaches throughout the
up-time of the daemon. The logic which was moved from the utxoNursery
in a prior commit now resides within the breachArbiter.

Upon start-up the breachArbiter will query the database for all active
channels, launching a goroutine for each channel in order to be able to
take action if a channel breach is detected. The breachArbiter is also
responsible for notifying the htlcSwitch about channel breaches in
order to black-list the breached linked during any multi-hop forwarding
decisions.
This commit is contained in:
Olaoluwa Osuntokun
2016-11-28 19:43:57 -08:00
parent 93cbfdbd60
commit 494fcec874
10 changed files with 593 additions and 43 deletions

View File

@ -370,6 +370,8 @@ func (r *rpcServer) CloseChannel(in *lnrpc.CloseChannelRequest,
var closeType LinkCloseType
switch force {
case true:
// TODO(roasbeef): should be able to force close w/o connection
// to peer
closeType = CloseForce
case false:
closeType = CloseRegular