Skip to content
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

feat: limit PoSted partitions to 3 #11327

Merged
merged 1 commit into from
Oct 11, 2023
Merged

feat: limit PoSted partitions to 3 #11327

merged 1 commit into from
Oct 11, 2023

Conversation

arajasek
Copy link
Contributor

@@ -685,6 +691,66 @@ func GetAddressedSectorsMax(nwVer network.Version) (int, error) {
}
}

func getPoStedPartitionsMax(nwVer network.Version) (int, error) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

IMO, this isn't really necessary. It's "correct", but we could also just limit to miner12.PoStedPartitionsMax for all actor versions 0-12 without actually breaking anything.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm, I'm not sure how much I like that -- it is wrong to do so. But I'm also very uninterested in "supporting" earlier network versions, so I'm not opposed to making that change.

Your proposed change also has the nice advantage that SPs will start respecting the v12 limit when they upgrade to this release, which reduces the risk of inflight PoSts getting funky over the upgrade.

So...yeah, let's do it.

@magik6k
Copy link
Contributor

magik6k commented Oct 11, 2023

We should add a note about this limitation to https://github.com/filecoin-project/lotus/blob/master/node/config/types.go#L293-L304

@rjan90
Copy link
Contributor

rjan90 commented Oct 11, 2023

So I ran this branch in a local devnet w/needed dependecies:

And can confirm that after the nv-upgrade I see WdPoSt-msg being sliced into message with 2 partitions

Dedaline table:

lotus-miner proving deadlines
Miner: t01000
deadline  partitions  sectors (faults)  proven partitions
---------
42        4           8 (0)             4  (current)

PoSt cycle begins:

2023-10-11T05:24:02.098-0400    INFO    wdpost  wdpost/wdpost_run.go:274        starting PoSt cycle     {"cycle": "2023-10-11T05:24:02.098-0400", "manual": false, "ts": "[bafy2bzaced6vqfvf7w244zu2756qz5fmboyruzffkxeke2eorfwv2lwmml3ay]", "deadline": 42}
2023-10-11T05:24:02.104-0400    WARN    wdpost  wdpost/wdpost_run.go:249        Checked sectors {"checked": 2, "good": 2}
2023-10-11T05:24:02.109-0400    WARN    wdpost  wdpost/wdpost_run.go:249        Checked sectors {"checked": 2, "good": 2}
2023-10-11T05:24:02.109-0400    INFO    wdpost  wdpost/wdpost_run.go:411        running window post     {"cycle": "2023-10-11T05:24:02.098-0400", "chain-random": "ao36Vl5MG1i5EL4kX8G82s1nf9/wAuv7IbKvoHRbKwE=", "deadline": {"CurrentEpoch":279,"PeriodStart":-2222,"Index":42,"Open":298,"Close":358,"Challenge":278,"FaultCutoff":228,"WPoStPeriodDeadlines":48,"WPoStProvingPeriod":2880,"WPoStChallengeWindow":60,"WPoStChallengeLookback":20,"FaultDeclarationCutoff":70}, "height": "279", "skipped": 0}
2023-10-11T05:24:02.109-0400    INFO    advmgr  sealer/manager_post.go:85       GenerateWindowPoSt run at lotus-miner
2023-10-11T05:24:02.973-0400    INFO    wdpost  wdpost/wdpost_run.go:431        computing window post   {"cycle": "2023-10-11T05:24:02.098-0400", "batch": 0, "elapsed": 0.864421108, "skip": 0, "err": null}
2023-10-11T05:24:02.978-0400    WARN    wdpost  wdpost/wdpost_run.go:249        Checked sectors {"checked": 2, "good": 2}
2023-10-11T05:24:02.982-0400    WARN    wdpost  wdpost/wdpost_run.go:249        Checked sectors {"checked": 2, "good": 2}
2023-10-11T05:24:02.983-0400    INFO    wdpost  wdpost/wdpost_run.go:411        running window post     {"cycle": "2023-10-11T05:24:02.098-0400", "chain-random": "ao36Vl5MG1i5EL4kX8G82s1nf9/wAuv7IbKvoHRbKwE=", "deadline": {"CurrentEpoch":279,"PeriodStart":-2222,"Index":42,"Open":298,"Close":358,"Challenge":278,"FaultCutoff":228,"WPoStPeriodDeadlines":48,"WPoStProvingPeriod":2880,"WPoStChallengeWindow":60,"WPoStChallengeLookback":20,"FaultDeclarationCutoff":70}, "height": "279", "skipped": 0}
2023-10-11T05:24:03.921-0400    INFO    wdpost  wdpost/wdpost_run.go:431        computing window post   {"cycle": "2023-10-11T05:24:02.098-0400", "batch": 1, "elapsed": 0.938171753, "skip": 0, "err": null}
2023-10-11T05:24:03.924-0400    INFO    wdpost  wdpost/wdpost_run.go:276        post cycle done {"cycle": "2023-10-11T05:24:0

WdPoSt msg submission:

2023-10-11T05:25:34.129-0400    INFO    wdpost  wdpost/wdpost_run.go:661        Submitted window post: bafy2bzaceaizupruuolstok33zkxcpn7tsx3nggep5bfwrwhngqfmncnzf27g (deadline 42)
2023-10-11T05:25:34.178-0400    INFO    wdpost  wdpost/wdpost_run.go:661        Submitted window post: bafy2bzaced2o2zvji4js2edlhxbmdrwpjqowgnvwc3g7lnlaz4tdsxumsorjy (deadline 42)

Inspecting one of the msgs:

lotus chain get-msg bafy2bzaced2o2zvji4js2edlhxbmdrwpjqowgnvwc3g7lnlaz4tdsxumsorjy
{
  "Version": 0,
  "To": "t01000",
  "From": "t3vp4k5qnppiyrom354lfrj3njqyczun2vs66aam4rtc2cjwy6khptfptzy7rnvkij54c63mtvi63t6ggvdvsq",
  "Nonce": 6,
  "Value": "0",
  "GasLimit": 32222795,
  "GasFeeCap": "99656",
  "GasPremium": "98602",
  "Method": 5,
  "Params": "hRgqgoICQIIDQIGCClkBgJZl80pmB1aflyi6t0w+8k0Vrv6NeIPzmojqAgEFVCAYre1u64j3FWUDoQW3VjWlV7aCo917lXnp2I/5IsnAl/K8/cp70cguGbsnUZVBhFYEzAzdBi5wehf0bRXrl6BUjRgg4eEDX4Ynmz3+YdUQoznWroGA0USAE1c/SRYbn3PXHM6YP/ODlNyVstGZ6WNxUJP9SjEQfBjm0BGL9TEUAByTaGqQt21HqVXhOHgmAIhb86YiTb8CDCDxbeCfstIl2IhmZRFcmg36QJCgnbTctd6N1Rsa5qE6yodeHTA92TyvDeLmJocp2vCAAT36WldyXIjSr2BUDRYb4DXWH0M/y/556IuGu/paexp+4YtkeHapvRBSLBtlY7EsqXu8SSfC+QqYBLZesktS8UroQUDyuAmsvi0wcMfJXtZVFztvKQkphgDCM3g14hzFovyznVUqRI3aWY59W3MZ2rR604CRdddPn0oPEV7BS/uMWUIMmCOeps7blvMFXbYq5lAFCMDdWxkBFlggP0jXK4+EzwdsSAzbHWGGh3EJrDcsey7LhMlWLKzgJd8=",
  "CID": {
    "/": "bafy2bzaced2o2zvji4js2edlhxbmdrwpjqowgnvwc3g7lnlaz4tdsxumsorjy"
  }
}

-----

lotus chain decode params t01000 5 hRgqgoICQIIDQIGCClkBgJZl80pmB1aflyi6t0w+8k0Vrv6NeIPzmojqAgEFVCAYre1u64j3FWUDoQW3VjWlV7aCo917lXnp2I/5IsnAl/K8/cp70cguGbsnUZVBhFYEzAzdBi5wehf0bRXrl6BUjRgg4eEDX4Ynmz3+YdUQoznWroGA0USAE1c/SRYbn3PXHM6YP/ODlNyVstGZ6WNxUJP9SjEQfBjm0BGL9TEUAByTaGqQt21HqVXhOHgmAIhb86YiTb8CDCDxbeCfstIl2IhmZRFcmg36QJCgnbTctd6N1Rsa5qE6yodeHTA92TyvDeLmJocp2vCAAT36WldyXIjSr2BUDRYb4DXWH0M/y/556IuGu/paexp+4YtkeHapvRBSLBtlY7EsqXu8SSfC+QqYBLZesktS8UroQUDyuAmsvi0wcMfJXtZVFztvKQkphgDCM3g14hzFovyznVUqRI3aWY59W3MZ2rR604CRdddPn0oPEV7BS/uMWUIMmCOeps7blvMFXbYq5lAFCMDdWxkBFlggP0jXK4+EzwdsSAzbHWGGh3EJrDcsey7LhMlWLKzgJd8=
{
  "Deadline": 42,
  "Partitions": [
    {
      "Index": 2,
      "Skipped": [
        0
      ]
    },
    {
      "Index": 3,
      "Skipped": [
        0
      ]
    }
  ],
  "Proofs": [
    {
      "PoStProof": 10,
      "ProofBytes": "lmXzSmYHVp+XKLq3TD7yTRWu/o14g/OaiOoCAQVUIBit7W7riPcVZQOhBbdWNaVXtoKj3XuVeenYj/kiycCX8rz9ynvRyC4ZuydRlUGEVgTMDN0GLnB6F/RtFeuXoFSNGCDh4QNfhiebPf5h1RCjOdaugYDRRIATVz9JFhufc9cczpg/84OU3JWy0ZnpY3FQk/1KMRB8GObQEYv1MRQAHJNoapC3bUepVeE4eCYAiFvzpiJNvwIMIPFt4J+y0iXYiGZlEVyaDfpAkKCdtNy13o3VGxrmoTrKh14dMD3ZPK8N4uYmhyna8IABPfpaV3JciNKvYFQNFhvgNdYfQz/L/nnoi4a7+lp7Gn7hi2R4dqm9EFIsG2VjsSype7xJJ8L5CpgEtl6yS1LxSuhBQPK4Cay+LTBwx8le1lUXO28pCSmGAMIzeDXiHMWi/LOdVSpEjdpZjn1bcxnatHrTgJF110+fSg8RXsFL+4xZQgyYI56mztuW8wVdtirmUAUIwN1b"
    }
  ],
  "ChainCommitEpoch": 278,
  "ChainCommitRand": "P0jXK4+EzwdsSAzbHWGGh3EJrDcsey7LhMlWLKzgJd8="
}

@arajasek
Copy link
Contributor Author

We should add a note about this limitation to https://github.com/filecoin-project/lotus/blob/master/node/config/types.go#L293-L304

Thanks for the callout!

@arajasek arajasek changed the title WIP:feat: limit PoSted partitions to 2 WIP:feat: limit PoSted partitions to 3 Oct 11, 2023
@arajasek arajasek marked this pull request as ready for review October 11, 2023 14:26
@arajasek arajasek requested a review from a team as a code owner October 11, 2023 14:26
go.mod Outdated Show resolved Hide resolved
@arajasek arajasek changed the title WIP:feat: limit PoSted partitions to 3 feat: limit PoSted partitions to 3 Oct 11, 2023
@rjan90
Copy link
Contributor

rjan90 commented Oct 11, 2023

Will re-run the testing for sanity to see that we are now splitting messages before nv21. But looks good to me once CI is happy

@@ -298,7 +298,7 @@ func TestWDPostDoPostPartLimitConfig(t *testing.T) {
//stm: @CHAIN_SYNCER_COLLECT_CHAIN_001, @CHAIN_SYNCER_COLLECT_HEADERS_001, @CHAIN_SYNCER_VALIDATE_TIPSET_001
//stm: @CHAIN_SYNCER_NEW_PEER_HEAD_001, @CHAIN_SYNCER_VALIDATE_MESSAGE_META_001, @CHAIN_SYNCER_STOP_001
ctx := context.Background()
expectedMsgCount := 364
expectedMsgCount := 8
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@magik6k Please review changes to magic numbers here.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Those seem to make sense

@arajasek arajasek merged commit 6ddc674 into feat/nv21 Oct 11, 2023
87 checks passed
@arajasek arajasek deleted the asr/limit-partitions branch October 11, 2023 17:05
@rjan90
Copy link
Contributor

rjan90 commented Oct 12, 2023

Will re-run the testing for sanity to see that we are now splitting messages before nv21.

Can confirm that WdPoSt-messages are now getting split into partitions of 3 before nv21:

Dedaline table:

lotus-miner proving deadlines
Miner: t01000
deadline  partitions  sectors (faults)  proven partitions
----
39        4           8 (0)             4  (current)

PoSt cycle begins:

2023-10-12T07:50:12.092-0400    INFO    wdpost  wdpost/wdpost_run.go:274        starting PoSt cycle     {"cycle": "2023-10-12T07:50:12.092-0400", "manual": false, "ts": "[bafy2bzacedsvjyq6a7j4q4rq2zb7oxelnkfrzxvn4ugj36abjwz4x6p2yhwv4]", "deadline": 39}
2023-10-12T07:50:12.098-0400    WARN    wdpost  wdpost/wdpost_run.go:249        Checked sectors {"checked": 2, "good": 2}
2023-10-12T07:50:12.102-0400    WARN    wdpost  wdpost/wdpost_run.go:249        Checked sectors {"checked": 2, "good": 2}
2023-10-12T07:50:12.106-0400    WARN    wdpost  wdpost/wdpost_run.go:249        Checked sectors {"checked": 2, "good": 2}
2023-10-12T07:50:12.106-0400    INFO    wdpost  wdpost/wdpost_run.go:411        running window post     {"cycle": "2023-10-12T07:50:12.092-0400", "chain-random": "Qj0DabezMjow17FzkR+51A9D7+yK5oQIhTmMviorkqI=", "deadline": {"CurrentEpoch":99,"PeriodStart":-2222,"Index":39,"Open":118,"Close":178,"Challenge":98,"FaultCutoff":48,"WPoStPeriodDeadlines":48,"WPoStProvingPeriod":2880,"WPoStChallengeWindow":60,"WPoStChallengeLookback":20,"FaultDeclarationCutoff":70}, "height": "99", "skipped": 0}
2023-10-12T07:50:13.460-0400    INFO    wdpost  wdpost/wdpost_run.go:431        computing window post   {"cycle": "2023-10-12T07:50:12.092-0400", "batch": 0, "elapsed": 1.353332136, "skip": 0, "err": null}
2023-10-12T07:50:13.478-0400    WARN    wdpost  wdpost/wdpost_run.go:249        Checked sectors {"checked": 2, "good": 2}
2023-10-12T07:50:13.479-0400    INFO    wdpost  wdpost/wdpost_run.go:411        running window post     {"cycle": "2023-10-12T07:50:12.092-0400", "chain-random": "Qj0DabezMjow17FzkR+51A9D7+yK5oQIhTmMviorkqI=", "deadline": {"CurrentEpoch":99,"PeriodStart":-2222,"Index":39,"Open":118,"Close":178,"Challenge":98,"FaultCutoff":48,"WPoStPeriodDeadlines":48,"WPoStProvingPeriod":2880,"WPoStChallengeWindow":60,"WPoStChallengeLookback":20,"FaultDeclarationCutoff":70}, "height": "99", "skipped": 0}
2023-10-12T07:50:15.359-0400    INFO    wdpost  wdpost/wdpost_run.go:431        computing window post   {"cycle": "2023-10-12T07:50:12.092-0400", "batch": 1, "elapsed": 1.880051245, "skip": 0, "err": null}
2023-10-12T07:50:15.361-0400    INFO    wdpost  wdpost/wdpost_run.go:276        post cycle done {"cycle": "2023-10-12T07:50:12.092-0400", "took": 3.269326766}

WdPoSt msg submission:

2023-10-12T07:51:44.135-0400    INFO    wdpost  wdpost/wdpost_run.go:661        Submitted window post: bafy2bzacedlveihnxa2rkky7r6c32i2qsc6fgfqwnzclxogvtcmwxuwxuxjhc (deadline 39)
2023-10-12T07:51:44.178-0400    INFO    wdpost  wdpost/wdpost_run.go:661        Submitted window post: bafy2bzacecqv4xkthjicfzzhrtpnexixwzh22kuofkg2gdpvpb27i4zhyxj7q (deadline 39)

Inspecting one of the msgs:

lotus chain get-msg bafy2bzacedlveihnxa2rkky7r6c32i2qsc6fgfqwnzclxogvtcmwxuwxuxjhc
{
  "Version": 0,
  "To": "t01000",
  "From": "t3xerjdnx2jo5w6nqajupkvngv2iwmmjkcvrrjdzbi6xaso2othz3hcicd6zoen3orl4kg7pyiyqk5opio7viq",
  "Nonce": 1,
  "Value": "0",
  "GasLimit": 33568225,
  "GasFeeCap": "101948",
  "GasPremium": "100894",
  "Method": 5,
  "Params": "hRgng4IAQIIBQIICQIGCClkCQLAhOM8PoqWHc4DQBPXBuRe3z0ZFQca2znrw1cjbZR/L7PnnayLv8Gb5qg/CmFjQ0qD6CqyzlcThU85GmcKzJG755nZW7FoA5+EgUaFbSRgcRYhX4qB9dURnUIHKd5PlEgbXrhWOG/UQaxqizRotLHxjNGGIe9aG2VM2raEvOQUAVhqh67/2yusKnkl8S/P9nolX2cg+t4EJKxfDzk6eNGBQsoL45/cX+dBBOL0VdyD/QAVs2oWCetPhlZIC5yeqvrBC5+gpn1LYGnwirccBlyk+p4adn07yOq8GTbDapZFhuT6aheMt4/9LYj5uPyIvmaF7MfEN3mER1LCkdtjl9Bwo9Yt7kdeE7X40E2fOGdKd7qGsfE056jfELAN7+uPq4xY6MU0ohommInCoaEoAAueeNDLHwWptNk0Tx+7JuzL7p6I5qh+bHRaWg1pX6iXpDKHLTBJfiXW9XYeoeJaBNkYbvTr9avnKy3KVQ0cgLaLb6ooj/6uHcO3x36D3ajfrjrVpGU8RVXYe8c+jGfmQEdxGIuijyTw57x36XRjsT2JX2osN68uuARc+FAM2QV4dZ4pvUzBJNRaivvqdkt3FOXzFsD7PB0Nz364Ydfg016YJYNSSg1kUUCW82QNfD2TGLw/RzPx+o1OHBx3FIrVKiRJD4uttySw40ZHDh3z98SsI5CZodRSMq3jmLPPqzs5ukIZysE4iCVdbvaHK3XEqJEQbOmsKW+AFXtNZh/Cll4fQMJThQh2b19svYLsHizH8pxhiWCAHPbW+jTfCdvjL1P1h1DVX0dW0alvm5BUWGSQeFdB4zw==",
  "CID": {
    "/": "bafy2bzacedlveihnxa2rkky7r6c32i2qsc6fgfqwnzclxogvtcmwxuwxuxjhc"
  }
}

----

lotus chain decode params t01000 5 hRgng4IAQIIBQIICQIGCClkCQLAhOM8PoqWHc4DQBPXBuRe3z0ZFQca2znrw1cjbZR/L7PnnayLv8Gb5qg/CmFjQ0qD6CqyzlcThU85GmcKzJG755nZW7FoA5+EgUaFbSRgcRYhX4qB9dURnUIHKd5PlEgbXrhWOG/UQaxqizRotLHxjNGGIe9aG2VM2raEvOQUAVhqh67/2yusKnkl8S/P9nolX2cg+t4EJKxfDzk6eNGBQsoL45/cX+dBBOL0VdyD/QAVs2oWCetPhlZIC5yeqvrBC5+gpn1LYGnwirccBlyk+p4adn07yOq8GTbDapZFhuT6aheMt4/9LYj5uPyIvmaF7MfEN3mER1LCkdtjl9Bwo9Yt7kdeE7X40E2fOGdKd7qGsfE056jfELAN7+uPq4xY6MU0ohommInCoaEoAAueeNDLHwWptNk0Tx+7JuzL7p6I5qh+bHRaWg1pX6iXpDKHLTBJfiXW9XYeoeJaBNkYbvTr9avnKy3KVQ0cgLaLb6ooj/6uHcO3x36D3ajfrjrVpGU8RVXYe8c+jGfmQEdxGIuijyTw57x36XRjsT2JX2osN68uuARc+FAM2QV4dZ4pvUzBJNRaivvqdkt3FOXzFsD7PB0Nz364Ydfg016YJYNSSg1kUUCW82QNfD2TGLw/RzPx+o1OHBx3FIrVKiRJD4uttySw40ZHDh3z98SsI5CZodRSMq3jmLPPqzs5ukIZysE4iCVdbvaHK3XEqJEQbOmsKW+AFXtNZh/Cll4fQMJThQh2b19svYLsHizH8pxhiWCAHPbW+jTfCdvjL1P1h1DVX0dW0alvm5BUWGSQeFdB4zw==
{
  "Deadline": 39,
  "Partitions": [
    {
      "Index": 0,
      "Skipped": [
        0
      ]
    },
    {
      "Index": 1,
      "Skipped": [
        0
      ]
    },
    {
      "Index": 2,
      "Skipped": [
        0
      ]
    }
  ],
  "Proofs": [
    {
      "PoStProof": 10,
      "ProofBytes": "sCE4zw+ipYdzgNAE9cG5F7fPRkVBxrbOevDVyNtlH8vs+edrIu/wZvmqD8KYWNDSoPoKrLOVxOFTzkaZwrMkbvnmdlbsWgDn4SBRoVtJGBxFiFfioH11RGdQgcp3k+USBteuFY4b9RBrGqLNGi0sfGM0YYh71obZUzatoS85BQBWGqHrv/bK6wqeSXxL8/2eiVfZyD63gQkrF8POTp40YFCygvjn9xf50EE4vRV3IP9ABWzahYJ60+GVkgLnJ6q+sELn6CmfUtgafCKtxwGXKT6nhp2fTvI6rwZNsNqlkWG5PpqF4y3j/0tiPm4/Ii+ZoXsx8Q3eYRHUsKR22OX0HCj1i3uR14TtfjQTZ84Z0p3uoax8TTnqN8QsA3v64+rjFjoxTSiGiaYicKhoSgAC5540MsfBam02TRPH7sm7MvunojmqH5sdFpaDWlfqJekMoctMEl+Jdb1dh6h4loE2Rhu9Ov1q+crLcpVDRyAtotvqiiP/q4dw7fHfoPdqN+uOtWkZTxFVdh7xz6MZ+ZAR3EYi6KPJPDnvHfpdGOxPYlfaiw3ry64BFz4UAzZBXh1nim9TMEk1FqK++p2S3cU5fMWwPs8HQ3Pfrhh1+DTXpglg1JKDWRRQJbzZA18PZMYvD9HM/H6jU4cHHcUitUqJEkPi623JLDjRkcOHfP3xKwjkJmh1FIyreOYs8+rOzm6QhnKwTiIJV1u9ocrdcSokRBs6awpb4AVe01mH8KWXh9AwlOFCHZvX2y9guweLMfyn"
    }
  ],
  "ChainCommitEpoch": 98,
  "ChainCommitRand": "Bz21vo03wnb4y9T9YdQ1V9HVtGpb5uQVFhkkHhXQeM8="
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants