-
Notifications
You must be signed in to change notification settings - Fork 2.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Beat [5/4]: fix itests for blockbeat
#9227
Changes from all commits
a12942a
28334af
da46e41
afdbbb1
dad98b4
dcbaf4a
7ad4c98
e054515
1226d4f
a1ad9ca
73fb582
c8fdca3
8d08283
0910db8
eb1a923
c3a0bc9
94dccfb
0dac647
dd4a644
d3d6c8d
3c28a3b
37957f1
9eb4e74
13a41d7
29828f9
142f673
d8de303
3250e94
b4ab36c
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
@@ -13,10 +13,6 @@ var allTestCases = []*lntest.TestCase{ | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Name: "basic funding flow", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
TestFunc: testBasicChannelFunding, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
}, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Name: "multi hop receiver chain claim", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
TestFunc: testMultiHopReceiverChainClaim, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
}, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Name: "external channel funding", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
TestFunc: testExternalFundingChanPoint, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
@@ -153,18 +149,6 @@ var allTestCases = []*lntest.TestCase{ | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Name: "addpeer config", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
TestFunc: testAddPeerConfig, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
}, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Name: "multi hop htlc local timeout", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
TestFunc: testMultiHopHtlcLocalTimeout, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
}, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Name: "multi hop local force close on-chain htlc timeout", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
TestFunc: testMultiHopLocalForceCloseOnChainHtlcTimeout, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
}, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Name: "multi hop remote force close on-chain htlc timeout", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
TestFunc: testMultiHopRemoteForceCloseOnChainHtlcTimeout, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
}, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Name: "private channel update policy", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
TestFunc: testUpdateChannelPolicyForPrivateChannel, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
@@ -226,11 +210,15 @@ var allTestCases = []*lntest.TestCase{ | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
TestFunc: testChannelUnsettledBalance, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
}, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Name: "channel force closure", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
TestFunc: testChannelForceClosure, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Name: "channel force closure anchor", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
TestFunc: testChannelForceClosureAnchor, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
}, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Name: "channel force closure simple taproot", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
TestFunc: testChannelForceClosureSimpleTaproot, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
}, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Name: "failing link", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Name: "failing channel", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
TestFunc: testFailingChannel, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
}, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
@@ -313,18 +301,6 @@ var allTestCases = []*lntest.TestCase{ | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Name: "REST API", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
TestFunc: testRestAPI, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
}, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Name: "multi hop htlc local chain claim", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
TestFunc: testMultiHopHtlcLocalChainClaim, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
}, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Name: "multi hop htlc remote chain claim", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
TestFunc: testMultiHopHtlcRemoteChainClaim, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
}, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Name: "multi hop htlc aggregation", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
TestFunc: testMultiHopHtlcAggregation, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
}, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Name: "revoked uncooperative close retribution", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
TestFunc: testRevokedCloseRetribution, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
@@ -574,10 +550,6 @@ var allTestCases = []*lntest.TestCase{ | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Name: "lookup htlc resolution", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
TestFunc: testLookupHtlcResolution, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
}, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Name: "watchtower", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
TestFunc: testWatchtower, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
}, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Name: "channel fundmax", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
TestFunc: testChannelFundMax, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
@@ -715,3 +687,9 @@ var allTestCases = []*lntest.TestCase{ | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
TestFunc: testQuiescence, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
}, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
func init() { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
// Register subtests. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
allTestCases = append(allTestCases, multiHopForceCloseTestCases...) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
allTestCases = append(allTestCases, watchtowerTestCases...) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I propose to avoid var allTestCases = append([]*lntest.TestCase{
{
Name: "update channel status",
TestFunc: testUpdateChanStatus,
},
// all other tests
}, multiHopForceCloseTestCases...,
) There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. this is an intermediate version, and the final version is, Lines 703 to 754 in 96756b4
Since it involve a function call, think we have to do it here. Other than that, I'm curious why avoiding |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -637,8 +637,8 @@ func runChanRestoreScenarioCommitTypes(ht *lntest.HarnessTest, | |
minerHeight := ht.CurrentHeight() | ||
thawHeight := minerHeight + thawHeightDelta | ||
|
||
fundingShim, _ = deriveFundingShim( | ||
ht, dave, carol, crs.params.Amt, thawHeight, true, ct, | ||
fundingShim, _ = ht.DeriveFundingShim( | ||
dave, carol, crs.params.Amt, thawHeight, true, ct, | ||
) | ||
crs.params.FundingShim = fundingShim | ||
} | ||
|
@@ -1320,12 +1320,20 @@ func testDataLossProtection(ht *lntest.HarnessTest) { | |
// information Dave needs to sweep his funds. | ||
require.NoError(ht, restartDave(), "unable to restart Eve") | ||
|
||
// Mine a block to trigger Dave's chain watcher to process Carol's sweep | ||
// tx. | ||
// | ||
// TODO(yy): remove this block once the blockbeat starts remembering | ||
// its last processed block and can handle looking for spends in the | ||
// past blocks. | ||
ht.MineEmptyBlocks(1) | ||
|
||
// Make sure Dave still has the pending force close channel. | ||
ht.AssertNumPendingForceClose(dave, 1) | ||
|
||
// Dave should have a pending sweep. | ||
ht.AssertNumPendingSweeps(dave, 1) | ||
|
||
// Mine a block to trigger the sweep. | ||
ht.MineBlocks(1) | ||
|
||
// Dave should sweep his funds. | ||
ht.AssertNumTxsInMempool(1) | ||
|
||
|
@@ -1482,7 +1490,6 @@ func assertTimeLockSwept(ht *lntest.HarnessTest, carol, dave *node.HarnessNode, | |
expectedTxes := 1 | ||
|
||
// Mine a block to trigger the sweeps. | ||
ht.MineBlocks(1) | ||
ht.AssertNumTxsInMempool(expectedTxes) | ||
|
||
// Carol should consider the channel pending force close (since she is | ||
|
@@ -1512,7 +1519,7 @@ func assertTimeLockSwept(ht *lntest.HarnessTest, carol, dave *node.HarnessNode, | |
// The commit sweep resolver publishes the sweep tx at defaultCSV-1 and | ||
// we already mined one block after the commitment was published, and | ||
// one block to trigger Carol's sweeps, so take that into account. | ||
ht.MineEmptyBlocks(1) | ||
ht.MineBlocks(2) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. hmm why do we need to mine more blocks eventho blockbeat should take care of the additonal block to trigger the sweep or ? I would expect to mine less blocks ? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. yeah the devil lies in the flow - because we removed multiple |
||
ht.AssertNumPendingSweeps(dave, 2) | ||
|
||
// Mine a block to trigger the sweeps. | ||
|
@@ -1615,8 +1622,6 @@ func assertDLPExecuted(ht *lntest.HarnessTest, | |
// output and the other for her anchor. | ||
ht.AssertNumPendingSweeps(carol, 2) | ||
|
||
// Mine a block to trigger the sweep. | ||
ht.MineEmptyBlocks(1) | ||
ht.MineBlocksAndAssertNumTxes(1, 1) | ||
|
||
// Now the channel should be fully closed also from Carol's POV. | ||
|
@@ -1635,8 +1640,6 @@ func assertDLPExecuted(ht *lntest.HarnessTest, | |
// output and the other for his anchor. | ||
ht.AssertNumPendingSweeps(dave, 2) | ||
|
||
// Mine a block to trigger the sweep. | ||
ht.MineEmptyBlocks(1) | ||
ht.MineBlocksAndAssertNumTxes(1, 1) | ||
|
||
// Now Dave should consider the channel fully closed. | ||
|
@@ -1652,10 +1655,6 @@ func assertDLPExecuted(ht *lntest.HarnessTest, | |
ht.AssertNumPendingSweeps(dave, 1) | ||
} | ||
|
||
// Mine one block to trigger the sweeper to sweep. | ||
ht.MineEmptyBlocks(1) | ||
blocksMined++ | ||
|
||
// Expect one tx - the commitment sweep from Dave. For anchor | ||
// channels, we expect the two anchor sweeping txns to be | ||
// failed due they are uneconomical. | ||
|
@@ -1673,9 +1672,6 @@ func assertDLPExecuted(ht *lntest.HarnessTest, | |
// commitmment was published, so take that into account. | ||
ht.MineEmptyBlocks(int(defaultCSV - blocksMined)) | ||
|
||
// Mine one block to trigger the sweeper to sweep. | ||
ht.MineEmptyBlocks(1) | ||
|
||
// Carol should have two pending sweeps: | ||
// 1. her commit output. | ||
// 2. her anchor output, if this is anchor channel. | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does this implementation account for the resolver receiving new
blockbeat
information? For example,htlcOutgoingContestResolver.Launch()
first checks itslaunched
state and exits immediately if it has already been launched. Then, it queriesh.ChainIO.GetBestBlock
and proceeds based on the best block height.Should the resolver consider the
blockbeat
information passed as an argument tohandleBlockbeat
? Specifically, could this argument influence its decision-making in the resolver?There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for taking a more detailed look! Yes, the only
blockbeat
info the resolvers need is the exact block where the resolvers should be launched, beyond that, there's no need to process more beats.For contest resolvers, they are a bit different - we never set the
launched
state inLaunch
, but relying its underlying timeout/success resolvers to set that state.