Merge pull request #11258 from filecoin-project/feat/implement-SyntheticPoRep

feat: implement Synthetic PoRep
This commit is contained in:
Andrew Jackson (Ajax) 2023-09-19 12:05:04 -05:00 committed by GitHub
commit 4fd6eb6e87
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
50 changed files with 2030 additions and 211 deletions

View File

@ -912,6 +912,8 @@ workflows:
- build
suite: itest-sector_pledge
target: "./itests/sector_pledge_test.go"
get-params: true
- test:
name: test-itest-sector_terminate
requires:

View File

@ -545,7 +545,7 @@ workflows:
[[- if or (eq $name "worker") (eq $name "deals_concurrent") (eq $name "wdpost_worker_config")]]
executor: golang-2xl
[[- end]]
[[- if (eq $name "wdpost")]]
[[- if or (eq $name "wdpost") (eq $name "sector_pledge")]]
get-params: true
[[end]]
[[- end ]][[- end]]

Binary file not shown.

View File

@ -1,2 +1,2 @@
/dns4/bootstrap-0.butterfly.fildev.network/tcp/1347/p2p/12D3KooWD5mtdmjHQ1Puj9Md7SEfoa7kWMpwqUhAKsyYsBP56LQC
/dns4/bootstrap-1.butterfly.fildev.network/tcp/1347/p2p/12D3KooWEoYPkm6o87ES6AppFY7d7WHJUQg7XVPRAyQZjEU31efQ
/dns4/bootstrap-0.butterfly.fildev.network/tcp/1347/p2p/12D3KooWMH8fFcfL6K7dwRo2wqa4UjdM5pxg9DAnoWPrVRx4Dioj
/dns4/bootstrap-1.butterfly.fildev.network/tcp/1347/p2p/12D3KooWArCrw1TLyJ5r37pYvHgv9kkXNC8tu2t1Sx7hyoCHpRje

View File

@ -95,27 +95,27 @@ var EmbeddedBuiltinActorsMetadata []*BuiltinActorsMetadata = []*BuiltinActorsMet
"verifiedregistry": MustParseCid("bafk2bzaceb37hxeuoo5rgf6ansrdl2ykm5v5zp6kireubn4orcopr67jbxv6k"),
},
}, {
Network: "butterflynet",
Version: 12,
BundleGitTag: "v11.0.0",
ManifestCid: MustParseCid("bafy2bzaceaiy4dsxxus5xp5n5i4tjzkb7sc54mjz7qnk2efhgmsrobjesxnza"),
Network: "butterflynet",
Version: 12,
ManifestCid: MustParseCid("bafy2bzacebwfbz63adpfgjtub2tg7yrosmxtyc4cmi55lvrv6rqnurzviuzlg"),
Actors: map[string]cid.Cid{
"account": MustParseCid("bafk2bzacecfdqb7p3jakhaa3cqnzpt7hxmhghrbxvafsylqno3febx55fnidw"),
"cron": MustParseCid("bafk2bzaceavmqu2qihgbe3xdaotgypuzvdpiifnm7ll6rolks2u4lac6voosk"),
"datacap": MustParseCid("bafk2bzacealtvh65rzb34fmyzw4m2np2htnio4w3pn4alzqovwxkdbf23dvpo"),
"eam": MustParseCid("bafk2bzacedko6hcjmwpuwgma5pb4gr2wgyvregk3nqqjxit7dv4es6vh5cjoc"),
"ethaccount": MustParseCid("bafk2bzacedhcei2xnr34poxr4xziypm2obqlibke4cs2cjfnr3sz6nf6h7fyy"),
"evm": MustParseCid("bafk2bzacebn5lwxboiikhz67ajwa34v2lc4qevnhpwdnipbmrnutkvrrqkb46"),
"init": MustParseCid("bafk2bzacea6vw4esh5tg7mprv5jkbx5xcyilcy4vvf64lss32mjyuvv2mh5ng"),
"multisig": MustParseCid("bafk2bzacedq2afnwcfipay5twv5mgzjoio5bbjvyo4yqchdwqcr7wrareyx54"),
"paymentchannel": MustParseCid("bafk2bzacebbsvr7i7mqmaadyjibe5wxnv7bwvvec2wlgknuwda6ep45amnd5w"),
"account": MustParseCid("bafk2bzacea55xtffuyilgsriwilzkezlddbjb5yqsoy7ejjx5lhuvwniev2zs"),
"cron": MustParseCid("bafk2bzacebp4sc3finb4tz7imuw7qkk7gvyaprs5rohpuomu3f4x4sub7zy4e"),
"datacap": MustParseCid("bafk2bzacea5occ7omwxfrqohsage677sift7vn5ogcyxn3g7e6rmz3wcnfbj4"),
"eam": MustParseCid("bafk2bzacebogeqkimibpwigydinqrn4j7vd23pscs4de5yfrpf2ltppcqrtec"),
"ethaccount": MustParseCid("bafk2bzacecs3afxqq4fzrvycqvpgdqcvqbojoa3nihokqox4f6dv6jmz23dpg"),
"evm": MustParseCid("bafk2bzacebbsfhhwiv6n4k5buz2xdu3yff4qs43hxlibb335jmdx5xc44wv6g"),
"init": MustParseCid("bafk2bzacecuog2pnpc6r55suclspolpnrrnxykcgc33lhlz7n3fgjy22vn7de"),
"multisig": MustParseCid("bafk2bzaceczgigux7xwsfpg2e5zyjpvpay32hn47gpn7l4jhbofii7rqgxteg"),
"paymentchannel": MustParseCid("bafk2bzacect2psbtgvrvasxef46lvk7kitpdcbfkg5u3nac72pobqcmfilhh4"),
"placeholder": MustParseCid("bafk2bzacedfvut2myeleyq67fljcrw4kkmn5pb5dpyozovj7jpoez5irnc3ro"),
"reward": MustParseCid("bafk2bzaceafuh6idvaqqkj353vs4qdl42tcmvnymewu5zf4rq2nruxdyunses"),
"storagemarket": MustParseCid("bafk2bzaceb7bx4honi3byjllpdk6fea32dpu3vqvil3okodybdk5m3erlnwjw"),
"storageminer": MustParseCid("bafk2bzacebxjhofdr3sb2uhy2ky2vcijh4nhmwkh5xijtbgk6dzkknji2kn7a"),
"storagepower": MustParseCid("bafk2bzaceabskmmkas6njbowols7t4ib3bipa5abpomk3jtgfwojtzd7mjzfm"),
"system": MustParseCid("bafk2bzacedtuh7cht3fud7fb4avl4g2zbz57lc4ohiaufpaex6dkmdokn5rgo"),
"verifiedregistry": MustParseCid("bafk2bzaceb37hxeuoo5rgf6ansrdl2ykm5v5zp6kireubn4orcopr67jbxv6k"),
"reward": MustParseCid("bafk2bzacecwudnigxo45gd6khqqeowquzlguj4fkkstccnmnziovutav4fey6"),
"storagemarket": MustParseCid("bafk2bzacecfmp3jh6i3csrtyr2zyzhzpkmgelyykznin6lmyagicwf7gjpk5y"),
"storageminer": MustParseCid("bafk2bzacea7esq47iaiu6ecukvmtlgmv7oforo4f456p2gerumapbykh4cjf4"),
"storagepower": MustParseCid("bafk2bzacec6eyeyvmh5hnb6aqhmpns3ry4isxxmtqfcdlfhgatbandlfh3tzu"),
"system": MustParseCid("bafk2bzacecs7cbnk4rd2qke4jrag5evyq4a4qlp4h5mbycgoiunqrgtnz7bnk"),
"verifiedregistry": MustParseCid("bafk2bzacebwqzbqvaxyr4wlrwj7l4zg7ymu6pcqaoltnodmgjgynuizc56y4m"),
},
}, {
Network: "calibrationnet",
@ -201,27 +201,27 @@ var EmbeddedBuiltinActorsMetadata []*BuiltinActorsMetadata = []*BuiltinActorsMet
"verifiedregistry": MustParseCid("bafk2bzaceceoo5jlom2zweh7kpye2vkj33wgqnkjshlsw2neemqkfg5g2rmvg"),
},
}, {
Network: "calibrationnet",
Version: 12,
BundleGitTag: "v11.0.0",
ManifestCid: MustParseCid("bafy2bzacec5fl7crmxyw234qsmijvffhssgqwuphyaejulbryhel2pxxrxgey"),
Network: "calibrationnet",
Version: 12,
ManifestCid: MustParseCid("bafy2bzaceaipkdiplb5geo2plfrpaxisen46lqbzn4lt7ffmsdwdps4zb6424"),
Actors: map[string]cid.Cid{
"account": MustParseCid("bafk2bzacecrjovyiuh4jryepy4pxddzqjyrg2hfinxzbv37bpzlci54r5mkr6"),
"cron": MustParseCid("bafk2bzacedy76woxmtalmsuaji4kog6wmq4h2kcgcyv5wpxbdz7f2ls2tjjmw"),
"datacap": MustParseCid("bafk2bzacec2inqddxpfm3rufwqr752d2ok3ve4cxfhmloyosy6rj2krtkpwus"),
"eam": MustParseCid("bafk2bzacea6sxno66egkqz5rqjq4e22obkeblxl7e3funjifljuinmrc2ztzg"),
"ethaccount": MustParseCid("bafk2bzacecdsvs7xm3ncm66lsjqh65uzhr3rmu3dlux7qzdgpg737r4kslhxm"),
"evm": MustParseCid("bafk2bzaceaz3b66m2znt27clmbp2zi5jsobw6g2x6fiezynyijgtkehgqhq3a"),
"init": MustParseCid("bafk2bzacecdrw7uedx456hnowtyyhm63mkekdlkh3vmlhvqlya6pn6pokiq5y"),
"multisig": MustParseCid("bafk2bzaceaxyxvmng5cel5huzy5nezscm34s7wuzn2fhndexurs3xjtp7xg5i"),
"paymentchannel": MustParseCid("bafk2bzacedrmyc4c6u6ipdo7hwaagx3urr47r4pw6lwv257wqbj6roumwfvky"),
"account": MustParseCid("bafk2bzacedgtgdr2oj2jwdp6kapxvqvuec5s5awvbcjre3npygezasdl5yb52"),
"cron": MustParseCid("bafk2bzacea4k2cgqv2aefs2rz3xd2ky25wlqoo6r3fdytlmhsf4emzqpvid2s"),
"datacap": MustParseCid("bafk2bzaceab4367hss5dd4a2q5oodmtpml5nnrnybtmf52wgxfb4cw7voxu62"),
"eam": MustParseCid("bafk2bzaceac3qbafk2ucohhurwqmoolanf33tiwtyicukiecboj3zshbd7ao2"),
"ethaccount": MustParseCid("bafk2bzacedy2lbg6qrr5z3vzyuz3qeaids7t4pvdu7ohk34e7a56xtijmhj4u"),
"evm": MustParseCid("bafk2bzacebqx3jxucwtjo5j7b5mupuybrzamq2gzd5t6lohwxzga7vuc6zhag"),
"init": MustParseCid("bafk2bzacebvqeg7ka4ogomupjnikaziqf37huz4jgvoctqwiobffdad3e2d3y"),
"multisig": MustParseCid("bafk2bzacechwpp2kvsjvrj4ry5ploj2ejkfo2zvzq4umxy7tberjaregp6kdo"),
"paymentchannel": MustParseCid("bafk2bzacedfhhvzjzhrpokf2jt7es4jq25ryagzf4qy3txyffvje23vih75i4"),
"placeholder": MustParseCid("bafk2bzacedfvut2myeleyq67fljcrw4kkmn5pb5dpyozovj7jpoez5irnc3ro"),
"reward": MustParseCid("bafk2bzacecq3bhrkatwash5zhy2275ksaj3criqb6rox5e3hsyvz7mrl2jh3o"),
"storagemarket": MustParseCid("bafk2bzacedswrpkbh7jmttskllbblym7oj2ynxp7bxtj2fpbxsx55mraog6sc"),
"storageminer": MustParseCid("bafk2bzacecki6ckm7gf4uje3fxvw6x5f77ukaqctvcsfha6oaecvl67veh3sg"),
"storagepower": MustParseCid("bafk2bzacecjcvxwibkgpufeah33gfd2jzlqjx5rn2pguvvch2squon23u6kne"),
"system": MustParseCid("bafk2bzaceavvlgqbcwhy3c24aa24z23wcbzggmb66gj7x5if7o3fbvddaocc4"),
"verifiedregistry": MustParseCid("bafk2bzacedmxdtnpy2mc63b6bi2h4vp4dfc6hxjckqnwaxyijgkpmangygcmk"),
"reward": MustParseCid("bafk2bzaceby3y6qhaunjqmwrvegqh7ouj4ua7advg6eyzxcj43spaypeomjgg"),
"storagemarket": MustParseCid("bafk2bzacedgdck3s5asnn5di5ijg22gpqnxj7bynekbycvydwqgemqwzzmere"),
"storageminer": MustParseCid("bafk2bzacebwecbrksabe5w25iop6ysgwk57etueo67vnwsyny3nkzbnk6xshq"),
"storagepower": MustParseCid("bafk2bzacedam2fr6yyo5qhief6mxkxz7b53xgflntwgch6ujbc3wp35h4g4sa"),
"system": MustParseCid("bafk2bzacecfs5d6ktybdq6jeqiomte6tewufptk72qc6gstn6hb3gzkyedn3a"),
"verifiedregistry": MustParseCid("bafk2bzaceamkpusx5yglkb5oghqeihugs6zyouzxz6jjmk5s4qs4bovnpldgg"),
},
}, {
Network: "caterpillarnet",
@ -316,27 +316,27 @@ var EmbeddedBuiltinActorsMetadata []*BuiltinActorsMetadata = []*BuiltinActorsMet
"verifiedregistry": MustParseCid("bafk2bzacedaws3or3twy45ltcxucgvqijsje4x675ph6vup2w35smlfneamno"),
},
}, {
Network: "caterpillarnet",
Version: 12,
BundleGitTag: "v11.0.0",
ManifestCid: MustParseCid("bafy2bzacebexc2jgzwr5ngn6jdnkwdqwwmcapajuypdgvopoe6bnvp4yxm4o2"),
Network: "caterpillarnet",
Version: 12,
ManifestCid: MustParseCid("bafy2bzaceaq2fun5mrdea6zrpbctybhbmjnhfwb42xryabxchdyjewdlembu4"),
Actors: map[string]cid.Cid{
"account": MustParseCid("bafk2bzaceanjiq5m3feytue5m7hhxfkob2ofg2greoct5tr77reuhrjglo66g"),
"cron": MustParseCid("bafk2bzaceavgd5qj6n744tukhdrvxejygzs3jnlizmcvjsdnxkgiimrd5jrys"),
"datacap": MustParseCid("bafk2bzacedmdywxwrzop2gmf4ys5stydlmvbe35j3nyr2efmf273briksuvse"),
"eam": MustParseCid("bafk2bzacec7qo7s72li7tqysllstlrxxm2dhfqv2w32pytel2e775cki4ozqm"),
"ethaccount": MustParseCid("bafk2bzaceaygtkliu26ubb7ivljrvaeesp5sbjlis5okzl35ishxioa2tlx4w"),
"evm": MustParseCid("bafk2bzacebo7iqzy2ophz4f3civzwlltec7q5fut7kmtfckr6vy33r6ic5eqe"),
"init": MustParseCid("bafk2bzaceb7uzzlsquqwrqhb2vpbvk3jgr4wp5i3smu2splnag2v5sppdehns"),
"multisig": MustParseCid("bafk2bzacebwibfqrytobl4pjtny244zkmfoomazbap3r5gddjryckx5js4csi"),
"paymentchannel": MustParseCid("bafk2bzacecuaa5esuxpouigxoamyl5gire2qqqhvyhewsig2x2j73f6ksh7go"),
"account": MustParseCid("bafk2bzacecvsfyecyerrkhb4wtdahiwltc47abn2an5bxktkef2wxzevuh2vg"),
"cron": MustParseCid("bafk2bzacedgofnfgnlrcsihb2dvjacekhlz6k4txc4wof3wm2n3yj2wv2exii"),
"datacap": MustParseCid("bafk2bzacedd7j6fmon4k4pepohsm5nsvdr52xagbkbroeouid2fkgkpwug32e"),
"eam": MustParseCid("bafk2bzacecbita45luvxs7v4lmwqj3pv2z5qbjeugt7vl6ct46kvd3zl53fzo"),
"ethaccount": MustParseCid("bafk2bzaceaz7esfh3itqdxiraogqtair3jlxevb2quuxfhgm3bxyers5s2mgw"),
"evm": MustParseCid("bafk2bzaceacl3yet4pmuyzzfu6bnqtcslqjbinpjlhgwltu6iklqqmytkxjro"),
"init": MustParseCid("bafk2bzaceb2iuaasrij2232x4a35glhisddmmlykqwao723urapgacqyrcixk"),
"multisig": MustParseCid("bafk2bzacedqjjgilxkqjupkwppmolav5757ngdv4vdg4hitth4kamsv272m6k"),
"paymentchannel": MustParseCid("bafk2bzaced67dmxjymwype5ugx3i2kdugh56eyew6s3rgn5uc7fhjr5tq4dwg"),
"placeholder": MustParseCid("bafk2bzacedfvut2myeleyq67fljcrw4kkmn5pb5dpyozovj7jpoez5irnc3ro"),
"reward": MustParseCid("bafk2bzaced4xxqhv63njf2ibvsqshlwikafctxev7aho5lgsfxyt2javjwvtw"),
"storagemarket": MustParseCid("bafk2bzacedwtx3xokqmbgkgkoqkdt6lam4ymdjb3eznlbtec5wcrtx74l2bpc"),
"storageminer": MustParseCid("bafk2bzacebbbe4sdo3xxkez7x7lkl6j46w34vx7eg7xswmdzhp7moa44p3wjg"),
"storagepower": MustParseCid("bafk2bzacedfgz6n24tjsor4pcayomim2f5f3a3fgyatmjgwxxeejna7okndda"),
"system": MustParseCid("bafk2bzacebxfzeom3d7ahcz2n2nlwp7ncv767bdbbrisugks4l6v7lcu2tmyg"),
"verifiedregistry": MustParseCid("bafk2bzacedaws3or3twy45ltcxucgvqijsje4x675ph6vup2w35smlfneamno"),
"reward": MustParseCid("bafk2bzacedqwx7ntb2lz4l6oorvlv732oxt6ots7wfzkjeyn6wmfmasr3opvu"),
"storagemarket": MustParseCid("bafk2bzacecprrqtbvrxrbviv4x5iu7xcbf4vm3jkftsauh7dfx5lab3z4z4es"),
"storageminer": MustParseCid("bafk2bzacecesuudr3q3do4semhdtrj3j4tjaxheqz3hrqtkja42ceszxzubwe"),
"storagepower": MustParseCid("bafk2bzacednsnvf6hrjoagqnvdoa74hu7m4fbrvezqhfsq6r7n3vmv5kjoc5a"),
"system": MustParseCid("bafk2bzaceczxdboh4nwcou4lkfnxzaixqhhlpq2ypyql73p55l2qlkeeuliei"),
"verifiedregistry": MustParseCid("bafk2bzacebr3pjfzmpkauu3qs2c2ow53frjux564zjawb5tclacll23omulzk"),
},
}, {
Network: "devnet",
@ -422,27 +422,27 @@ var EmbeddedBuiltinActorsMetadata []*BuiltinActorsMetadata = []*BuiltinActorsMet
"verifiedregistry": MustParseCid("bafk2bzacebdqi5tr5pjnem5nylg2zbqcugvi7oxi35bhnrfudx4y4ufhlit2k"),
},
}, {
Network: "devnet",
Version: 12,
BundleGitTag: "v11.0.0",
ManifestCid: MustParseCid("bafy2bzaceay35go4xbjb45km6o46e5bib3bi46panhovcbedrynzwmm3drr4i"),
Network: "devnet",
Version: 12,
ManifestCid: MustParseCid("bafy2bzaceagonf7bxmnyf7hdkw6hktywrc4qachnpocas2mhayuyucdpsi6de"),
Actors: map[string]cid.Cid{
"account": MustParseCid("bafk2bzacecf2pprkbdlpm4e2xz3ufunxtgrgyh2ie3stuqiyhibsvdze7kvri"),
"cron": MustParseCid("bafk2bzaceasr5d2skowvzv5mzsyak6waqrgc46ewj6rzbapkfi5woom6n6bwa"),
"datacap": MustParseCid("bafk2bzaceaqd77gptubupda7rp7daxkxbkzwc253dxhiyoezxvj2tljmkgpny"),
"eam": MustParseCid("bafk2bzacedve6p4ye6zxydjbfs4ode5r2equ7rqzpyltujsq2lu6wyxnijfx4"),
"ethaccount": MustParseCid("bafk2bzacea25xfsxwew3h2crer6jlb4c5vwu2gtch2jh73ocuxjhupenyrugy"),
"evm": MustParseCid("bafk2bzacece5hivtkmi757lyfahgti7xuqgofodb2u65pxgf6oizfwiiwlcsi"),
"init": MustParseCid("bafk2bzacecxnr5y7qifzdqqiwfbjxv2yr7lbkcyu3e2mf5zjdncteupxdlquu"),
"multisig": MustParseCid("bafk2bzaceayap4k4u3lbysaeeixct5fvhmafy3fa5eagvdpk3i4a7ubfdpobe"),
"paymentchannel": MustParseCid("bafk2bzaceafgrz5wepbein35gie7rnsu7zttxvgllgdneuefmmy4j5izydtza"),
"account": MustParseCid("bafk2bzacebzxft7ljumqlwrj6kbwaiblwftfigvde6zpk2jlfy6kfab3eivvw"),
"cron": MustParseCid("bafk2bzacedzx7dxt2vj27gc7rzi73qshakdjd4r4h7rjlft573kql6uuuoxze"),
"datacap": MustParseCid("bafk2bzacecut7lxz2bbfq5r2izmhbnbebdivwkfr45lfy262oiaqietmxow54"),
"eam": MustParseCid("bafk2bzaceadhudlti25kcsiuxvpjtipjh6p7wr66m76q25lcha56vxhe7iio6"),
"ethaccount": MustParseCid("bafk2bzacec2a4fcnhgvnei2eeafevcanbtmzxndprejlgigesmoyyq3vxjrta"),
"evm": MustParseCid("bafk2bzaceaikthq6wlk47covv55ddwjupvomcj6nmj6gfdpqemri2ymimtgeq"),
"init": MustParseCid("bafk2bzaceaka7tbqwgi3ogp2kcu5r7meo4l7zflycyezlck7lv5yp32ttxqyo"),
"multisig": MustParseCid("bafk2bzacebrhrgjid4mi2ch6fm7aqgwlqqt22vk54dv3o4a3iqg6scp2a6irs"),
"paymentchannel": MustParseCid("bafk2bzacecpiztcznkmreklw4kmfcydiwbnmb3pkptrr47dy6vwa6awecodzq"),
"placeholder": MustParseCid("bafk2bzacedfvut2myeleyq67fljcrw4kkmn5pb5dpyozovj7jpoez5irnc3ro"),
"reward": MustParseCid("bafk2bzacedwbtfqlx47fdkxjrb5mwiatheci44x3zkpx33smybc2cme23ymuo"),
"storagemarket": MustParseCid("bafk2bzaceaj74fmooaf3gj3ebwon64ky7hhdh7kytdr3agclqfrqzmpzykh7g"),
"storageminer": MustParseCid("bafk2bzacedb7bokkzzs7hnbhivp74pgcpermuy7j6b3ncodylksukkxtnn7ze"),
"storagepower": MustParseCid("bafk2bzacedilnkegizkxz3nuutib4d4wwlk4bkla22loepia2h53yf4hysmq6"),
"system": MustParseCid("bafk2bzacedpyoncjbl4oxkjm5e77ngvpy2xfajjc4myfsv2vltvzxioattlu2"),
"verifiedregistry": MustParseCid("bafk2bzacebdqi5tr5pjnem5nylg2zbqcugvi7oxi35bhnrfudx4y4ufhlit2k"),
"reward": MustParseCid("bafk2bzaceag34lek46iifugz7bqx5pjoszasp2ldkqnbfesvpwczhlnl2giiu"),
"storagemarket": MustParseCid("bafk2bzacea7574mwdfgpsgucvgmpg6upblalqh4dgk6lurzxugj7vrygmbiga"),
"storageminer": MustParseCid("bafk2bzaceclulipufdxs46niodn7peetgd7uhrxenw7sjiilsutquj5ac3rjs"),
"storagepower": MustParseCid("bafk2bzacednqafym2q3o3t63dirrrlurtiyau5vxlup7anc4k7nxkyxdayegm"),
"system": MustParseCid("bafk2bzacea4bi63eonaqh3ol2dx5neiw245gh3h4bc5nyourvsqfwo32go3bc"),
"verifiedregistry": MustParseCid("bafk2bzacebxo7xv4gruof2p36pvdt4nqlrjypewemz35m5rvkta2unfjkhfgg"),
},
}, {
Network: "hyperspace",
@ -551,27 +551,27 @@ var EmbeddedBuiltinActorsMetadata []*BuiltinActorsMetadata = []*BuiltinActorsMet
"verifiedregistry": MustParseCid("bafk2bzacedej3dnr62g2je2abmyjg3xqv4otvh6e26du5fcrhvw7zgcaaez3a"),
},
}, {
Network: "mainnet",
Version: 12,
BundleGitTag: "v11.0.0",
ManifestCid: MustParseCid("bafy2bzacecnhaiwcrpyjvzl4uv4q3jzoif26okl3m66q3cijp3dfwlcxwztwo"),
Network: "mainnet",
Version: 12,
ManifestCid: MustParseCid("bafy2bzacedowjygm2fy5yryyyjcww6znqngoz4rildgouuj6uk35z7a2u5gmc"),
Actors: map[string]cid.Cid{
"account": MustParseCid("bafk2bzacealnlr7st6lkwoh6wxpf2hnrlex5sknaopgmkr2tuhg7vmbfy45so"),
"cron": MustParseCid("bafk2bzacebpewdvvgt6tk2o2u4rcovdgym67tadiis5usemlbejg7k3kt567o"),
"datacap": MustParseCid("bafk2bzacebslykoyrb2hm7aacjngqgd5n2wmeii2goadrs5zaya3pvdf6pdnq"),
"eam": MustParseCid("bafk2bzaceaelwt4yfsfvsu3pa3miwalsvy3cfkcjvmt4sqoeopsppnrmj2mf2"),
"ethaccount": MustParseCid("bafk2bzaceclkmc4yidxc6lgcjpfypbde2eddnevcveo4j5kmh4ek6inqysz2k"),
"evm": MustParseCid("bafk2bzacediwh6etwzwmb5pivtclpdplewdjzphouwqpppce6opisjv2fjqfe"),
"init": MustParseCid("bafk2bzaceckwf3w6n2nw6eh77ktmsxqgsvshonvgnyk5q5syyngtetxvasfxg"),
"multisig": MustParseCid("bafk2bzaceafajceqwg5ybiz7xw6rxammuirkgtuv625gzaehsqfprm4bazjmk"),
"paymentchannel": MustParseCid("bafk2bzaceb4e6cnsnviegmqvsmoxzncruvhra54piq7bwiqfqevle6oob2gvo"),
"account": MustParseCid("bafk2bzacedzaf3mtu57zkzg64druer5yyckyjxcqzp6j7d5aub3bhtukocges"),
"cron": MustParseCid("bafk2bzaceadfvanqrxocz4meefl45p7gwf37oboufk3ek54qdpnlz3vkpecw2"),
"datacap": MustParseCid("bafk2bzacecvy53fceivrvl3zks37y5nx5a6u24h72toebefrnwcl4nxkla6j2"),
"eam": MustParseCid("bafk2bzacedpxcqfmommw6yvqmdqryb2lloyou72ga6b3daph56gntgbrachdg"),
"ethaccount": MustParseCid("bafk2bzaceaqqvv22w5664fbktnzo2pqlli3mwr6sqsm6bn2tmcrecyudclz66"),
"evm": MustParseCid("bafk2bzaceb3aktnl7hgsr7nr2murlyqzecmxcs5t3wiatdsxfgmctxh44uzcg"),
"init": MustParseCid("bafk2bzaceb4dichby4a2dilbzspkxpklbittslnnuhfe32ouotcydbaxjkyoc"),
"multisig": MustParseCid("bafk2bzaced2dvtci3pemxonxkfnyeew2fxsmzqcaun2kqkcf7eyot7k6k23zq"),
"paymentchannel": MustParseCid("bafk2bzacec64pr3ekvcokfx4z6nyl7ge4gk6ddlnv6vcpfnw3llsfxlukqbbi"),
"placeholder": MustParseCid("bafk2bzacedfvut2myeleyq67fljcrw4kkmn5pb5dpyozovj7jpoez5irnc3ro"),
"reward": MustParseCid("bafk2bzacebwjw2vxkobs7r2kwjdqqb42h2kucyuk6flbnyzw4odg5s4mogamo"),
"storagemarket": MustParseCid("bafk2bzaceazu2j2zu4p24tr22btnqzkhzjvyjltlvsagaj6w3syevikeb5d7m"),
"storageminer": MustParseCid("bafk2bzacec24okjqrp7c7rj3hbrs5ez5apvwah2ruka6haesgfngf37mhk6us"),
"storagepower": MustParseCid("bafk2bzaceaxgloxuzg35vu7l7tohdgaq2frsfp4ejmuo7tkoxjp5zqrze6sf4"),
"system": MustParseCid("bafk2bzaced7npe5mt5nh72jxr2igi2sofoa7gedt4w6kueeke7i3xxugqpjfm"),
"verifiedregistry": MustParseCid("bafk2bzacedej3dnr62g2je2abmyjg3xqv4otvh6e26du5fcrhvw7zgcaaez3a"),
"reward": MustParseCid("bafk2bzacedwhowydy4bzqvixahs3dfofzuxgdmgtmbbsymgn7ml5vcx4noyb6"),
"storagemarket": MustParseCid("bafk2bzaceczbmzpnucj4jtk3i5pcygf4cnl3sd4yfpvlpwed2vte25q7crevw"),
"storageminer": MustParseCid("bafk2bzaceddf5eoidcxj3ujktarujfgvujy2ry2uhr56ah4cl5ppyonx4mib6"),
"storagepower": MustParseCid("bafk2bzacebm7akrycbzyzlkophliwlemt72qhald2f67yfzzmcjzrz4vyanpa"),
"system": MustParseCid("bafk2bzacedksemrry4htnpmlx2wxp7e6qm733zqkfxiqpm4g34g7cqkqm55tg"),
"verifiedregistry": MustParseCid("bafk2bzacea4rrffnjxdqtdluf2jgawvcksx7yhilru4bzsbdxafyxuxpbtous"),
},
}, {
Network: "testing",
@ -657,27 +657,27 @@ var EmbeddedBuiltinActorsMetadata []*BuiltinActorsMetadata = []*BuiltinActorsMet
"verifiedregistry": MustParseCid("bafk2bzacebp2r56wxadvfzpfbmqwfi3dlnwpmoc5u4tau2hfftbkuafkhye64"),
},
}, {
Network: "testing",
Version: 12,
BundleGitTag: "v11.0.0",
ManifestCid: MustParseCid("bafy2bzacea2vxre32tg3xhpejrktiuzx4d3pcoe7yyazgscfibmegmchr6n42"),
Network: "testing",
Version: 12,
ManifestCid: MustParseCid("bafy2bzacea2qiia5hnmpryp4oxeijq4rxex2wbutksvlnfqqic3ioeh3hk4wk"),
Actors: map[string]cid.Cid{
"account": MustParseCid("bafk2bzaceccerssb3tgel6ukdghlwvs7dxsolj4fpkgn7dh7owzwapqb6ejpw"),
"cron": MustParseCid("bafk2bzacebtfl6fczxnitrqqjhyefskf3asyn3gzuvqcddieoqfsaddk5fd4q"),
"datacap": MustParseCid("bafk2bzacediikc55y6uzmnhucf4mik6rqpjulwvgp5gdibogxjhgbvusmzff2"),
"eam": MustParseCid("bafk2bzaceazqi5ezossp6kvqogaaba6hxlfarqgniktmb7iy5qonha3eflz6m"),
"ethaccount": MustParseCid("bafk2bzaceb77ospgfqqmf67v23wkyeg7lr2mu53ybaacu3bslx7s7nhttdueo"),
"evm": MustParseCid("bafk2bzacedvgt7mv22hux4vrnklylq7qmw43kfrqwam6wdsfzkdnaewr33qbu"),
"init": MustParseCid("bafk2bzacealzb3nk2oypway5ubz3hs5py5ok5tuw545454vg4d3mwbslef4js"),
"multisig": MustParseCid("bafk2bzacec45ppn4hrwizmopp2v2atkxw35tb6yem6uqhqilrv7aiaknnnxmu"),
"paymentchannel": MustParseCid("bafk2bzaceajbr3t6cngzh3katqteflbcrtwtdgbthnlfemon5tg6rytf2uonw"),
"account": MustParseCid("bafk2bzaceb432jqlwz2tfafqbmyrowojd6lhevcyg6i2gkot2a4742n4vld3c"),
"cron": MustParseCid("bafk2bzacedl5w6nowgjzrul5mllwtfhoxqr7mmovu74egitkx5v5gqunmeyrk"),
"datacap": MustParseCid("bafk2bzaceb3763jtueduhikfakm5uu7lglom5yd3kyqtjxdrgmbtmjdk3utyy"),
"eam": MustParseCid("bafk2bzaceb3fijyw3y7jcqojsos4nmhj2n5kg7jpmyh74pqic7vowvyevyrfe"),
"ethaccount": MustParseCid("bafk2bzaceb6je4q53fuvnsbubr2ozpow6jphugjfafcrdtrycpoe3742erldq"),
"evm": MustParseCid("bafk2bzaceawy7ntpzraa7zpb3jn3ins5v7z2a2bafdg6hfijme3pzeibmqudo"),
"init": MustParseCid("bafk2bzacecjnj4dupkeg6vfa4d5abhwzlgti5lxj62d76ebxuwi72qfswzsxe"),
"multisig": MustParseCid("bafk2bzacebrasao55cae4t6ss7lkmybglsbc5ep23k2xemyw4tmkklf47xah4"),
"paymentchannel": MustParseCid("bafk2bzacebfse3hrno6joffqhr7m3lqqxkbcm4h35b53zxfa7u7vuuq7avhde"),
"placeholder": MustParseCid("bafk2bzacedfvut2myeleyq67fljcrw4kkmn5pb5dpyozovj7jpoez5irnc3ro"),
"reward": MustParseCid("bafk2bzacea7ycf53kbq4robcuh3ziy7qwwhaqamc5krn3lugypgpxhlewdaiq"),
"storagemarket": MustParseCid("bafk2bzacedskmbcpaeb6bezs32szh52jrukvihobluadauayroo5gzrt32tkm"),
"storageminer": MustParseCid("bafk2bzaced3yg5lctmswnbkxyd6cleg3llyux7fu2vbddyd2ho36fpym423mq"),
"storagepower": MustParseCid("bafk2bzacebvpdf372fzxgixztbz2r7ayxyvx7jmdxwlfuqt2cq7tnqgie3klw"),
"system": MustParseCid("bafk2bzaceaatvscbnkv36ixhtt2zel4er5oskxevgumh5gegqkv7uzah36f24"),
"verifiedregistry": MustParseCid("bafk2bzacebp2r56wxadvfzpfbmqwfi3dlnwpmoc5u4tau2hfftbkuafkhye64"),
"reward": MustParseCid("bafk2bzacedbx7lduyouqad2r32kugdfvornk25zvwhgua5u3b3qr44mcafxgm"),
"storagemarket": MustParseCid("bafk2bzacebvnjqvwqbvdrv47ti4fqjada4qynnph7i3dcg7pwcq44kksxiqr4"),
"storageminer": MustParseCid("bafk2bzacednlenhzjjxgue7z2vsjbnwt2pplyvh3t3ok2a6vimjdqiq4hnnkc"),
"storagepower": MustParseCid("bafk2bzacedizg46rjo3os6mopuvnyftlecfixsf5eijz2u4os3zzsepoqhrqw"),
"system": MustParseCid("bafk2bzacedvnvuuxvaednmoqtm7vo2rzdwjkwmn46oheck5xqy7i2txrwsjci"),
"verifiedregistry": MustParseCid("bafk2bzacedisnzlqdxpuopf22ya77n54jto6vi3lf7fxfcdqnchmhemlychca"),
},
}, {
Network: "testing-fake-proofs",
@ -763,26 +763,26 @@ var EmbeddedBuiltinActorsMetadata []*BuiltinActorsMetadata = []*BuiltinActorsMet
"verifiedregistry": MustParseCid("bafk2bzacebp2r56wxadvfzpfbmqwfi3dlnwpmoc5u4tau2hfftbkuafkhye64"),
},
}, {
Network: "testing-fake-proofs",
Version: 12,
BundleGitTag: "v11.0.0",
ManifestCid: MustParseCid("bafy2bzacecojemqglhzzhjnhgtrcbsgkyv67ziytvtbhwlr4ym4oxqofv7zui"),
Network: "testing-fake-proofs",
Version: 12,
ManifestCid: MustParseCid("bafy2bzacebejjwowoaa3kkss27eksvehslp7khhrtl33dr6fz2v3tznkne25c"),
Actors: map[string]cid.Cid{
"account": MustParseCid("bafk2bzaceccerssb3tgel6ukdghlwvs7dxsolj4fpkgn7dh7owzwapqb6ejpw"),
"cron": MustParseCid("bafk2bzacebtfl6fczxnitrqqjhyefskf3asyn3gzuvqcddieoqfsaddk5fd4q"),
"datacap": MustParseCid("bafk2bzacediikc55y6uzmnhucf4mik6rqpjulwvgp5gdibogxjhgbvusmzff2"),
"eam": MustParseCid("bafk2bzaceazqi5ezossp6kvqogaaba6hxlfarqgniktmb7iy5qonha3eflz6m"),
"ethaccount": MustParseCid("bafk2bzaceb77ospgfqqmf67v23wkyeg7lr2mu53ybaacu3bslx7s7nhttdueo"),
"evm": MustParseCid("bafk2bzacedvgt7mv22hux4vrnklylq7qmw43kfrqwam6wdsfzkdnaewr33qbu"),
"init": MustParseCid("bafk2bzacealzb3nk2oypway5ubz3hs5py5ok5tuw545454vg4d3mwbslef4js"),
"multisig": MustParseCid("bafk2bzacec45ppn4hrwizmopp2v2atkxw35tb6yem6uqhqilrv7aiaknnnxmu"),
"paymentchannel": MustParseCid("bafk2bzaceajbr3t6cngzh3katqteflbcrtwtdgbthnlfemon5tg6rytf2uonw"),
"account": MustParseCid("bafk2bzaceb432jqlwz2tfafqbmyrowojd6lhevcyg6i2gkot2a4742n4vld3c"),
"cron": MustParseCid("bafk2bzacedl5w6nowgjzrul5mllwtfhoxqr7mmovu74egitkx5v5gqunmeyrk"),
"datacap": MustParseCid("bafk2bzaceb3763jtueduhikfakm5uu7lglom5yd3kyqtjxdrgmbtmjdk3utyy"),
"eam": MustParseCid("bafk2bzaceb3fijyw3y7jcqojsos4nmhj2n5kg7jpmyh74pqic7vowvyevyrfe"),
"ethaccount": MustParseCid("bafk2bzaceb6je4q53fuvnsbubr2ozpow6jphugjfafcrdtrycpoe3742erldq"),
"evm": MustParseCid("bafk2bzaceawy7ntpzraa7zpb3jn3ins5v7z2a2bafdg6hfijme3pzeibmqudo"),
"init": MustParseCid("bafk2bzacecjnj4dupkeg6vfa4d5abhwzlgti5lxj62d76ebxuwi72qfswzsxe"),
"multisig": MustParseCid("bafk2bzacebrasao55cae4t6ss7lkmybglsbc5ep23k2xemyw4tmkklf47xah4"),
"paymentchannel": MustParseCid("bafk2bzacebfse3hrno6joffqhr7m3lqqxkbcm4h35b53zxfa7u7vuuq7avhde"),
"placeholder": MustParseCid("bafk2bzacedfvut2myeleyq67fljcrw4kkmn5pb5dpyozovj7jpoez5irnc3ro"),
"reward": MustParseCid("bafk2bzacea7ycf53kbq4robcuh3ziy7qwwhaqamc5krn3lugypgpxhlewdaiq"),
"storagemarket": MustParseCid("bafk2bzacedskmbcpaeb6bezs32szh52jrukvihobluadauayroo5gzrt32tkm"),
"storageminer": MustParseCid("bafk2bzacebqeztpa5exztccqjwqhan5droiy7ga6zekm6f2gzxoe655vneczm"),
"storagepower": MustParseCid("bafk2bzaceb2tlyuwxncdxsh3hc4fwcjnpxaijkiv54ustwdjbrqabxdsc27km"),
"system": MustParseCid("bafk2bzaceaatvscbnkv36ixhtt2zel4er5oskxevgumh5gegqkv7uzah36f24"),
"verifiedregistry": MustParseCid("bafk2bzacebp2r56wxadvfzpfbmqwfi3dlnwpmoc5u4tau2hfftbkuafkhye64"),
"reward": MustParseCid("bafk2bzacedbx7lduyouqad2r32kugdfvornk25zvwhgua5u3b3qr44mcafxgm"),
"storagemarket": MustParseCid("bafk2bzacebvnjqvwqbvdrv47ti4fqjada4qynnph7i3dcg7pwcq44kksxiqr4"),
"storageminer": MustParseCid("bafk2bzacebhb4prwkgqzcdvq3vziuk4n4t74fnedgpok44cakkzc47a774oou"),
"storagepower": MustParseCid("bafk2bzacebzijogcuowc7bgwb76vqhq5hkpczianyeg6bqspd4isajn66w6mu"),
"system": MustParseCid("bafk2bzacedvnvuuxvaednmoqtm7vo2rzdwjkwmn46oheck5xqy7i2txrwsjci"),
"verifiedregistry": MustParseCid("bafk2bzacedisnzlqdxpuopf22ya77n54jto6vi3lf7fxfcdqnchmhemlychca"),
},
}}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -19,7 +19,7 @@ var DrandSchedule = map[abi.ChainEpoch]DrandEnum{
0: DrandMainnet,
}
const GenesisNetworkVersion = network.Version18
const GenesisNetworkVersion = network.Version20
var NetworkBundle = "butterflynet"
var BundleOverrides map[actorstypes.Version]string
@ -52,10 +52,11 @@ const UpgradeOhSnapHeight = -18
const UpgradeSkyrHeight = -19
const UpgradeSharkHeight = -20
const UpgradeHyggeHeight = -21
const UpgradeLightningHeight = -22
const UpgradeThunderHeight = -23
const UpgradeLightningHeight = 50
const UpgradeThunderHeight = UpgradeLightningHeight + 360
// 2023-08-07
const UpgradeWatermelonHeight = 900
// ??????????
const UpgradeWatermelonHeight = 999999999999999

View File

@ -154,7 +154,7 @@ type Partition interface {
type SectorOnChainInfo = minertypes.SectorOnChainInfo
func PreferredSealProofTypeFromWindowPoStType(nver network.Version, proof abi.RegisteredPoStProof) (abi.RegisteredSealProof, error) {
func PreferredSealProofTypeFromWindowPoStType(nver network.Version, proof abi.RegisteredPoStProof, configWantSynthetic bool) (abi.RegisteredSealProof, error) {
// We added support for the new proofs in network version 7, and removed support for the old
// ones in network version 8.
if nver < network.Version7 {
@ -174,17 +174,34 @@ func PreferredSealProofTypeFromWindowPoStType(nver network.Version, proof abi.Re
}
}
if nver < MinSyntheticPoRepVersion || !configWantSynthetic {
switch proof {
case abi.RegisteredPoStProof_StackedDrgWindow2KiBV1, abi.RegisteredPoStProof_StackedDrgWindow2KiBV1_1:
return abi.RegisteredSealProof_StackedDrg2KiBV1_1, nil
case abi.RegisteredPoStProof_StackedDrgWindow8MiBV1, abi.RegisteredPoStProof_StackedDrgWindow8MiBV1_1:
return abi.RegisteredSealProof_StackedDrg8MiBV1_1, nil
case abi.RegisteredPoStProof_StackedDrgWindow512MiBV1, abi.RegisteredPoStProof_StackedDrgWindow512MiBV1_1:
return abi.RegisteredSealProof_StackedDrg512MiBV1_1, nil
case abi.RegisteredPoStProof_StackedDrgWindow32GiBV1, abi.RegisteredPoStProof_StackedDrgWindow32GiBV1_1:
return abi.RegisteredSealProof_StackedDrg32GiBV1_1, nil
case abi.RegisteredPoStProof_StackedDrgWindow64GiBV1, abi.RegisteredPoStProof_StackedDrgWindow64GiBV1_1:
return abi.RegisteredSealProof_StackedDrg64GiBV1_1, nil
default:
return -1, xerrors.Errorf("unrecognized window post type: %d", proof)
}
}
switch proof {
case abi.RegisteredPoStProof_StackedDrgWindow2KiBV1, abi.RegisteredPoStProof_StackedDrgWindow2KiBV1_1:
return abi.RegisteredSealProof_StackedDrg2KiBV1_1, nil
return abi.RegisteredSealProof_StackedDrg2KiBV1_1_Feat_SyntheticPoRep, nil
case abi.RegisteredPoStProof_StackedDrgWindow8MiBV1, abi.RegisteredPoStProof_StackedDrgWindow8MiBV1_1:
return abi.RegisteredSealProof_StackedDrg8MiBV1_1, nil
return abi.RegisteredSealProof_StackedDrg8MiBV1_1_Feat_SyntheticPoRep, nil
case abi.RegisteredPoStProof_StackedDrgWindow512MiBV1, abi.RegisteredPoStProof_StackedDrgWindow512MiBV1_1:
return abi.RegisteredSealProof_StackedDrg512MiBV1_1, nil
return abi.RegisteredSealProof_StackedDrg512MiBV1_1_Feat_SyntheticPoRep, nil
case abi.RegisteredPoStProof_StackedDrgWindow32GiBV1, abi.RegisteredPoStProof_StackedDrgWindow32GiBV1_1:
return abi.RegisteredSealProof_StackedDrg32GiBV1_1, nil
return abi.RegisteredSealProof_StackedDrg32GiBV1_1_Feat_SyntheticPoRep, nil
case abi.RegisteredPoStProof_StackedDrgWindow64GiBV1, abi.RegisteredPoStProof_StackedDrgWindow64GiBV1_1:
return abi.RegisteredSealProof_StackedDrg64GiBV1_1, nil
return abi.RegisteredSealProof_StackedDrg64GiBV1_1_Feat_SyntheticPoRep, nil
default:
return -1, xerrors.Errorf("unrecognized window post type: %d", proof)
}

View File

@ -214,7 +214,7 @@ type Partition interface {
type SectorOnChainInfo = minertypes.SectorOnChainInfo
func PreferredSealProofTypeFromWindowPoStType(nver network.Version, proof abi.RegisteredPoStProof) (abi.RegisteredSealProof, error) {
func PreferredSealProofTypeFromWindowPoStType(nver network.Version, proof abi.RegisteredPoStProof, configWantSynthetic bool) (abi.RegisteredSealProof, error) {
// We added support for the new proofs in network version 7, and removed support for the old
// ones in network version 8.
if nver < network.Version7 {
@ -234,17 +234,34 @@ func PreferredSealProofTypeFromWindowPoStType(nver network.Version, proof abi.Re
}
}
if nver < MinSyntheticPoRepVersion || !configWantSynthetic {
switch proof {
case abi.RegisteredPoStProof_StackedDrgWindow2KiBV1, abi.RegisteredPoStProof_StackedDrgWindow2KiBV1_1:
return abi.RegisteredSealProof_StackedDrg2KiBV1_1, nil
case abi.RegisteredPoStProof_StackedDrgWindow8MiBV1, abi.RegisteredPoStProof_StackedDrgWindow8MiBV1_1:
return abi.RegisteredSealProof_StackedDrg8MiBV1_1, nil
case abi.RegisteredPoStProof_StackedDrgWindow512MiBV1, abi.RegisteredPoStProof_StackedDrgWindow512MiBV1_1:
return abi.RegisteredSealProof_StackedDrg512MiBV1_1, nil
case abi.RegisteredPoStProof_StackedDrgWindow32GiBV1, abi.RegisteredPoStProof_StackedDrgWindow32GiBV1_1:
return abi.RegisteredSealProof_StackedDrg32GiBV1_1, nil
case abi.RegisteredPoStProof_StackedDrgWindow64GiBV1, abi.RegisteredPoStProof_StackedDrgWindow64GiBV1_1:
return abi.RegisteredSealProof_StackedDrg64GiBV1_1, nil
default:
return -1, xerrors.Errorf("unrecognized window post type: %d", proof)
}
}
switch proof {
case abi.RegisteredPoStProof_StackedDrgWindow2KiBV1, abi.RegisteredPoStProof_StackedDrgWindow2KiBV1_1:
return abi.RegisteredSealProof_StackedDrg2KiBV1_1, nil
return abi.RegisteredSealProof_StackedDrg2KiBV1_1_Feat_SyntheticPoRep, nil
case abi.RegisteredPoStProof_StackedDrgWindow8MiBV1, abi.RegisteredPoStProof_StackedDrgWindow8MiBV1_1:
return abi.RegisteredSealProof_StackedDrg8MiBV1_1, nil
return abi.RegisteredSealProof_StackedDrg8MiBV1_1_Feat_SyntheticPoRep, nil
case abi.RegisteredPoStProof_StackedDrgWindow512MiBV1, abi.RegisteredPoStProof_StackedDrgWindow512MiBV1_1:
return abi.RegisteredSealProof_StackedDrg512MiBV1_1, nil
return abi.RegisteredSealProof_StackedDrg512MiBV1_1_Feat_SyntheticPoRep, nil
case abi.RegisteredPoStProof_StackedDrgWindow32GiBV1, abi.RegisteredPoStProof_StackedDrgWindow32GiBV1_1:
return abi.RegisteredSealProof_StackedDrg32GiBV1_1, nil
return abi.RegisteredSealProof_StackedDrg32GiBV1_1_Feat_SyntheticPoRep, nil
case abi.RegisteredPoStProof_StackedDrgWindow64GiBV1, abi.RegisteredPoStProof_StackedDrgWindow64GiBV1_1:
return abi.RegisteredSealProof_StackedDrg64GiBV1_1, nil
return abi.RegisteredSealProof_StackedDrg64GiBV1_1_Feat_SyntheticPoRep, nil
default:
return -1, xerrors.Errorf("unrecognized window post type: %d", proof)
}

View File

@ -8,6 +8,8 @@ import (
"github.com/filecoin-project/go-state-types/network"
)
var MinSyntheticPoRepVersion = network.Version21
func AllPartSectors(mas State, sget func(Partition) (bitfield.BitField, error)) (bitfield.BitField, error) {
var parts []bitfield.BitField
@ -31,7 +33,7 @@ func AllPartSectors(mas State, sget func(Partition) (bitfield.BitField, error))
// SealProofTypeFromSectorSize returns preferred seal proof type for creating
// new miner actors and new sectors
func SealProofTypeFromSectorSize(ssize abi.SectorSize, nv network.Version) (abi.RegisteredSealProof, error) {
func SealProofTypeFromSectorSize(ssize abi.SectorSize, nv network.Version, synthetic bool) (abi.RegisteredSealProof, error) {
switch {
case nv < network.Version7:
switch ssize {
@ -49,25 +51,49 @@ func SealProofTypeFromSectorSize(ssize abi.SectorSize, nv network.Version) (abi.
return 0, xerrors.Errorf("unsupported sector size for miner: %v", ssize)
}
case nv >= network.Version7:
var v abi.RegisteredSealProof
switch ssize {
case 2 << 10:
return abi.RegisteredSealProof_StackedDrg2KiBV1_1, nil
v = abi.RegisteredSealProof_StackedDrg2KiBV1_1
case 8 << 20:
return abi.RegisteredSealProof_StackedDrg8MiBV1_1, nil
v = abi.RegisteredSealProof_StackedDrg8MiBV1_1
case 512 << 20:
return abi.RegisteredSealProof_StackedDrg512MiBV1_1, nil
v = abi.RegisteredSealProof_StackedDrg512MiBV1_1
case 32 << 30:
return abi.RegisteredSealProof_StackedDrg32GiBV1_1, nil
v = abi.RegisteredSealProof_StackedDrg32GiBV1_1
case 64 << 30:
return abi.RegisteredSealProof_StackedDrg64GiBV1_1, nil
v = abi.RegisteredSealProof_StackedDrg64GiBV1_1
default:
return 0, xerrors.Errorf("unsupported sector size for miner: %v", ssize)
}
if nv >= MinSyntheticPoRepVersion && synthetic {
return toSynthetic(v)
} else {
return v, nil
}
}
return 0, xerrors.Errorf("unsupported network version")
}
func toSynthetic(in abi.RegisteredSealProof) (abi.RegisteredSealProof, error) {
switch in {
case abi.RegisteredSealProof_StackedDrg2KiBV1_1:
return abi.RegisteredSealProof_StackedDrg2KiBV1_1_Feat_SyntheticPoRep, nil
case abi.RegisteredSealProof_StackedDrg8MiBV1_1:
return abi.RegisteredSealProof_StackedDrg8MiBV1_1_Feat_SyntheticPoRep, nil
case abi.RegisteredSealProof_StackedDrg512MiBV1_1:
return abi.RegisteredSealProof_StackedDrg512MiBV1_1_Feat_SyntheticPoRep, nil
case abi.RegisteredSealProof_StackedDrg32GiBV1_1:
return abi.RegisteredSealProof_StackedDrg32GiBV1_1_Feat_SyntheticPoRep, nil
case abi.RegisteredSealProof_StackedDrg64GiBV1_1:
return abi.RegisteredSealProof_StackedDrg64GiBV1_1_Feat_SyntheticPoRep, nil
default:
return 0, xerrors.Errorf("unsupported conversion to synthetic: %v", in)
}
}
// WindowPoStProofTypeFromSectorSize returns preferred post proof type for creating
// new miner actors and new sectors
func WindowPoStProofTypeFromSectorSize(ssize abi.SectorSize, nv network.Version) (abi.RegisteredPoStProof, error) {

View File

@ -578,7 +578,7 @@ func MakeGenesisBlock(ctx context.Context, j journal.Journal, bs bstore.Blocksto
}
// setup Storage Miners
stateroot, err = SetupStorageMiners(ctx, cs, sys, stateroot, template.Miners, template.NetworkVersion)
stateroot, err = SetupStorageMiners(ctx, cs, sys, stateroot, template.Miners, template.NetworkVersion, false)
if err != nil {
return nil, xerrors.Errorf("setup miners failed: %w", err)
}

View File

@ -79,7 +79,7 @@ func mkFakedSigSyscalls(base vm.SyscallBuilder) vm.SyscallBuilder {
}
// Note: Much of this is brittle, if the methodNum / param / return changes, it will break things
func SetupStorageMiners(ctx context.Context, cs *store.ChainStore, sys vm.SyscallBuilder, sroot cid.Cid, miners []genesis.Miner, nv network.Version) (cid.Cid, error) {
func SetupStorageMiners(ctx context.Context, cs *store.ChainStore, sys vm.SyscallBuilder, sroot cid.Cid, miners []genesis.Miner, nv network.Version, synthetic bool) (cid.Cid, error) {
cst := cbor.NewCborStore(cs.StateBlockstore())
av, err := actorstypes.VersionForNetwork(nv)
@ -132,7 +132,7 @@ func SetupStorageMiners(ctx context.Context, cs *store.ChainStore, sys vm.Syscal
i := i
m := m
spt, err := miner.SealProofTypeFromSectorSize(m.SectorSize, nv)
spt, err := miner.SealProofTypeFromSectorSize(m.SectorSize, nv, synthetic)
if err != nil {
return cid.Undef, err
}

View File

@ -2289,7 +2289,7 @@ func (t *GasTrace) UnmarshalCBOR(r io.Reader) (err error) {
return nil
}
var lengthBufMessageTrace = []byte{134}
var lengthBufMessageTrace = []byte{137}
func (t *MessageTrace) MarshalCBOR(w io.Writer) error {
if t == nil {
@ -2343,6 +2343,23 @@ func (t *MessageTrace) MarshalCBOR(w io.Writer) error {
return err
}
// t.GasLimit (uint64) (uint64)
if err := cw.WriteMajorTypeHeader(cbg.MajUnsignedInt, uint64(t.GasLimit)); err != nil {
return err
}
// t.ReadOnly (bool) (bool)
if err := cbg.WriteBool(w, t.ReadOnly); err != nil {
return err
}
// t.CodeCid (cid.Cid) (struct)
if err := cbg.WriteCid(cw, t.CodeCid); err != nil {
return xerrors.Errorf("failed to write cid field t.CodeCid: %w", err)
}
return nil
}
@ -2365,7 +2382,7 @@ func (t *MessageTrace) UnmarshalCBOR(r io.Reader) (err error) {
return fmt.Errorf("cbor input should be of type array")
}
if extra != 6 {
if extra != 9 {
return fmt.Errorf("cbor input had wrong number of fields")
}
@ -2444,6 +2461,49 @@ func (t *MessageTrace) UnmarshalCBOR(r io.Reader) (err error) {
}
t.ParamsCodec = uint64(extra)
}
// t.GasLimit (uint64) (uint64)
{
maj, extra, err = cr.ReadHeader()
if err != nil {
return err
}
if maj != cbg.MajUnsignedInt {
return fmt.Errorf("wrong type for uint64 field")
}
t.GasLimit = uint64(extra)
}
// t.ReadOnly (bool) (bool)
maj, extra, err = cr.ReadHeader()
if err != nil {
return err
}
if maj != cbg.MajOther {
return fmt.Errorf("booleans must be major type 7")
}
switch extra {
case 20:
t.ReadOnly = false
case 21:
t.ReadOnly = true
default:
return fmt.Errorf("booleans are either major type 7, value 20 or 21 (got %d)", extra)
}
// t.CodeCid (cid.Cid) (struct)
{
c, err := cbg.ReadCid(cr)
if err != nil {
return xerrors.Errorf("failed to read cid field t.CodeCid: %w", err)
}
t.CodeCid = c
}
return nil
}

View File

@ -4,6 +4,8 @@ import (
"encoding/json"
"time"
"github.com/ipfs/go-cid"
"github.com/filecoin-project/go-address"
"github.com/filecoin-project/go-state-types/abi"
"github.com/filecoin-project/go-state-types/exitcode"
@ -24,6 +26,9 @@ type MessageTrace struct {
Method abi.MethodNum
Params []byte
ParamsCodec uint64
GasLimit uint64
ReadOnly bool
CodeCid cid.Cid
}
type ReturnTrace struct {

View File

@ -334,7 +334,7 @@ var sealBenchCmd = &cli.Command{
if !skipc2 {
log.Info("generating winning post candidates")
wipt, err := spt(sectorSize).RegisteredWinningPoStProof()
wipt, err := spt(sectorSize, false).RegisteredWinningPoStProof()
if err != nil {
return err
}
@ -552,7 +552,7 @@ func runSeals(sb *ffiwrapper.Sealer, sbfs *basicfs.Provider, numSectors int, par
Miner: mid,
Number: i,
},
ProofType: spt(sectorSize),
ProofType: spt(sectorSize, false),
}
start := time.Now()
@ -584,7 +584,7 @@ func runSeals(sb *ffiwrapper.Sealer, sbfs *basicfs.Provider, numSectors int, par
Miner: mid,
Number: i,
},
ProofType: spt(sectorSize),
ProofType: spt(sectorSize, false),
}
start := time.Now()
@ -795,7 +795,7 @@ var proveCmd = &cli.Command{
Miner: abi.ActorID(mid),
Number: abi.SectorNumber(c2in.SectorNum),
},
ProofType: spt(abi.SectorSize(c2in.SectorSize)),
ProofType: spt(abi.SectorSize(c2in.SectorSize), false),
}
fmt.Printf("----\nstart proof computation\n")
@ -826,8 +826,8 @@ func bps(sectorSize abi.SectorSize, sectorNum int, d time.Duration) string {
return types.SizeStr(types.BigInt{Int: bps}) + "/s"
}
func spt(ssize abi.SectorSize) abi.RegisteredSealProof {
spt, err := miner.SealProofTypeFromSectorSize(ssize, build.TestNetworkVersion)
func spt(ssize abi.SectorSize, synth bool) abi.RegisteredSealProof {
spt, err := miner.SealProofTypeFromSectorSize(ssize, build.TestNetworkVersion, synth)
if err != nil {
panic(err)
}

View File

@ -181,7 +181,7 @@ var simpleAddPiece = &cli.Command{
Miner: mid,
Number: 1,
},
ProofType: spt(sectorSize),
ProofType: spt(sectorSize, false),
}
data, err := os.Open(cctx.Args().First())
@ -218,6 +218,10 @@ var simplePreCommit1 = &cli.Command{
Usage: "pass miner address (only necessary if using existing sectorbuilder)",
Value: "t01000",
},
&cli.BoolFlag{
Name: "synthetic",
Usage: "generate synthetic PoRep proofs",
},
},
ArgsUsage: "[unsealed] [sealed] [cache] [[piece cid] [piece size]]...",
Action: func(cctx *cli.Context) error {
@ -254,7 +258,7 @@ var simplePreCommit1 = &cli.Command{
Miner: mid,
Number: 1,
},
ProofType: spt(sectorSize),
ProofType: spt(sectorSize, cctx.Bool("synthetic")),
}
var ticket [32]byte // all zero
@ -292,6 +296,10 @@ var simplePreCommit2 = &cli.Command{
Usage: "pass miner address (only necessary if using existing sectorbuilder)",
Value: "t01000",
},
&cli.BoolFlag{
Name: "synthetic",
Usage: "generate synthetic PoRep proofs",
},
},
ArgsUsage: "[sealed] [cache] [pc1 out]",
Action: func(cctx *cli.Context) error {
@ -332,7 +340,7 @@ var simplePreCommit2 = &cli.Command{
Miner: mid,
Number: 1,
},
ProofType: spt(sectorSize),
ProofType: spt(sectorSize, cctx.Bool("synthetic")),
}
start := time.Now()
@ -363,6 +371,10 @@ var simpleCommit1 = &cli.Command{
Usage: "pass miner address (only necessary if using existing sectorbuilder)",
Value: "t01000",
},
&cli.BoolFlag{
Name: "synthetic",
Usage: "generate synthetic PoRep proofs",
},
},
ArgsUsage: "[sealed] [cache] [comm D] [comm R] [c1out.json]",
Action: func(cctx *cli.Context) error {
@ -398,7 +410,7 @@ var simpleCommit1 = &cli.Command{
Miner: mid,
Number: 1,
},
ProofType: spt(sectorSize),
ProofType: spt(sectorSize, cctx.Bool("synthetic")),
}
start := time.Now()
@ -464,6 +476,10 @@ var simpleCommit2 = &cli.Command{
Usage: "pass miner address (only necessary if using existing sectorbuilder)",
Value: "t01000",
},
&cli.BoolFlag{
Name: "synthetic",
Usage: "generate synthetic PoRep proofs",
},
},
Action: func(c *cli.Context) error {
if c.Bool("no-gpu") {
@ -510,7 +526,7 @@ var simpleCommit2 = &cli.Command{
Miner: abi.ActorID(mid),
Number: abi.SectorNumber(c2in.SectorNum),
},
ProofType: spt(abi.SectorSize(c2in.SectorSize)),
ProofType: spt(abi.SectorSize(c2in.SectorSize), c.Bool("synthetic")),
}
start := time.Now()
@ -568,7 +584,7 @@ var simpleWindowPost = &cli.Command{
return xerrors.Errorf("parse commr: %w", err)
}
wpt, err := spt(sectorSize).RegisteredWindowPoStProof()
wpt, err := spt(sectorSize, false).RegisteredWindowPoStProof()
if err != nil {
return err
}
@ -588,7 +604,7 @@ var simpleWindowPost = &cli.Command{
vp, err := ffi.GenerateSingleVanillaProof(ffi.PrivateSectorInfo{
SectorInfo: prf.SectorInfo{
SealProof: spt(sectorSize),
SealProof: spt(sectorSize, false),
SectorNumber: sn,
SealedCID: commr,
},
@ -655,7 +671,7 @@ var simpleWinningPost = &cli.Command{
return xerrors.Errorf("parse commr: %w", err)
}
wpt, err := spt(sectorSize).RegisteredWinningPoStProof()
wpt, err := spt(sectorSize, false).RegisteredWinningPoStProof()
if err != nil {
return err
}
@ -675,7 +691,7 @@ var simpleWinningPost = &cli.Command{
vp, err := ffi.GenerateSingleVanillaProof(ffi.PrivateSectorInfo{
SectorInfo: prf.SectorInfo{
SealProof: spt(sectorSize),
SealProof: spt(sectorSize, false),
SectorNumber: sn,
SealedCID: commr,
},
@ -758,7 +774,7 @@ var simpleReplicaUpdate = &cli.Command{
Miner: mid,
Number: 1,
},
ProofType: spt(sectorSize),
ProofType: spt(sectorSize, false),
}
start := time.Now()
@ -826,7 +842,7 @@ var simpleProveReplicaUpdate1 = &cli.Command{
Miner: mid,
Number: 1,
},
ProofType: spt(sectorSize),
ProofType: spt(sectorSize, false),
}
start := time.Now()
@ -913,7 +929,7 @@ var simpleProveReplicaUpdate2 = &cli.Command{
Miner: mid,
Number: 1,
},
ProofType: spt(sectorSize),
ProofType: spt(sectorSize, false),
}
start := time.Now()

View File

@ -1740,7 +1740,7 @@ var sectorsCapacityCollateralCmd = &cli.Command{
return err
}
spt, err := miner.PreferredSealProofTypeFromWindowPoStType(nv, mi.WindowPoStProofType)
spt, err := miner.PreferredSealProofTypeFromWindowPoStType(nv, mi.WindowPoStProofType, false)
if err != nil {
return err
}

View File

@ -137,7 +137,9 @@ var preSealCmd = &cli.Command{
nv = network.Version(c.Uint64("network-version"))
}
spt, err := miner.SealProofTypeFromSectorSize(sectorSize, nv)
var synthetic = false // there's little reason to have this for a seed.
spt, err := miner.SealProofTypeFromSectorSize(sectorSize, nv, synthetic)
if err != nil {
return err
}

View File

@ -5,6 +5,7 @@ import (
"fmt"
"os"
"os/signal"
"runtime/pprof"
logging "github.com/ipfs/go-log/v2"
"github.com/urfave/cli/v2"
@ -114,10 +115,31 @@ func main() {
Name: "log-level",
Value: "info",
},
&cli.StringFlag{
Name: "pprof",
Usage: "specify name of file for writing cpu profile to",
},
},
Before: func(cctx *cli.Context) error {
if prof := cctx.String("pprof"); prof != "" {
profile, err := os.Create(prof)
if err != nil {
return err
}
if err := pprof.StartCPUProfile(profile); err != nil {
return err
}
}
return logging.SetLogLevel("lotus-shed", cctx.String("log-level"))
},
After: func(cctx *cli.Context) error {
if prof := cctx.String("pprof"); prof != "" {
pprof.StopCPUProfile()
}
return nil
},
}
// terminate early on ctrl+c

View File

@ -21,6 +21,7 @@ import (
"github.com/filecoin-project/go-state-types/builtin"
v10 "github.com/filecoin-project/go-state-types/builtin/v10"
v11 "github.com/filecoin-project/go-state-types/builtin/v11"
v12 "github.com/filecoin-project/go-state-types/builtin/v12"
market8 "github.com/filecoin-project/go-state-types/builtin/v8/market"
adt8 "github.com/filecoin-project/go-state-types/builtin/v8/util/adt"
v9 "github.com/filecoin-project/go-state-types/builtin/v9"
@ -243,6 +244,8 @@ func getMigrationFuncsForNetwork(nv network.Version) (UpgradeActorsFunc, PreUpgr
return filcns.UpgradeActorsV10, filcns.PreUpgradeActorsV10, checkNv18Invariants, nil
case network.Version19:
return filcns.UpgradeActorsV11, filcns.PreUpgradeActorsV11, checkNv19Invariants, nil
case network.Version21:
return filcns.UpgradeActorsV12, filcns.PreUpgradeActorsV12, checkNv21Invariants, nil
default:
return nil, nil, nil, xerrors.Errorf("migration not implemented for nv%d", nv)
}
@ -252,6 +255,38 @@ type UpgradeActorsFunc = func(context.Context, *stmgr.StateManager, stmgr.Migrat
type PreUpgradeActorsFunc = func(context.Context, *stmgr.StateManager, stmgr.MigrationCache, cid.Cid, abi.ChainEpoch, *types.TipSet) error
type CheckInvariantsFunc = func(context.Context, cid.Cid, cid.Cid, blockstore.Blockstore, abi.ChainEpoch) error
func checkNv21Invariants(ctx context.Context, oldStateRootCid cid.Cid, newStateRootCid cid.Cid, bs blockstore.Blockstore, epoch abi.ChainEpoch) error {
actorStore := store.ActorStore(ctx, bs)
startTime := time.Now()
// Load the new state root.
var newStateRoot types.StateRoot
if err := actorStore.Get(ctx, newStateRootCid, &newStateRoot); err != nil {
return xerrors.Errorf("failed to decode state root: %w", err)
}
actorCodeCids, err := actors.GetActorCodeIDs(actorstypes.Version12)
if err != nil {
return err
}
newActorTree, err := builtin.LoadTree(actorStore, newStateRoot.Actors)
if err != nil {
return err
}
messages, err := v12.CheckStateInvariants(newActorTree, epoch, actorCodeCids)
if err != nil {
return xerrors.Errorf("checking state invariants: %w", err)
}
for _, message := range messages.Messages() {
fmt.Println("got the following error: ", message)
}
fmt.Println("completed invariant checks, took ", time.Since(startTime))
return nil
}
func checkNv19Invariants(ctx context.Context, oldStateRootCid cid.Cid, newStateRootCid cid.Cid, bs blockstore.Blockstore, epoch abi.ChainEpoch) error {
actorStore := store.ActorStore(ctx, bs)

View File

@ -165,7 +165,7 @@ func (stage *PreCommitStage) packMiner(
// Generate pre-commits.
sealType, err := miner.PreferredSealProofTypeFromWindowPoStType(
nv, minerInfo.WindowPoStProofType,
nv, minerInfo.WindowPoStProofType, false,
)
if err != nil {
return 0, false, err

View File

@ -4213,6 +4213,51 @@ Response:
"BaseMinMemory": 8388608,
"MaxConcurrent": 0
},
"10": {
"MinMemory": 2048,
"MaxMemory": 2048,
"GPUUtilization": 1,
"MaxParallelism": 1,
"MaxParallelismGPU": 0,
"BaseMinMemory": 2048,
"MaxConcurrent": 0
},
"11": {
"MinMemory": 8388608,
"MaxMemory": 8388608,
"GPUUtilization": 1,
"MaxParallelism": 1,
"MaxParallelismGPU": 0,
"BaseMinMemory": 8388608,
"MaxConcurrent": 0
},
"12": {
"MinMemory": 1073741824,
"MaxMemory": 1610612736,
"GPUUtilization": 1,
"MaxParallelism": 1,
"MaxParallelismGPU": 0,
"BaseMinMemory": 10737418240,
"MaxConcurrent": 0
},
"13": {
"MinMemory": 32212254720,
"MaxMemory": 103079215104,
"GPUUtilization": 1,
"MaxParallelism": -1,
"MaxParallelismGPU": 6,
"BaseMinMemory": 34359738368,
"MaxConcurrent": 0
},
"14": {
"MinMemory": 64424509440,
"MaxMemory": 128849018880,
"GPUUtilization": 1,
"MaxParallelism": -1,
"MaxParallelismGPU": 6,
"BaseMinMemory": 68719476736,
"MaxConcurrent": 0
},
"2": {
"MinMemory": 1073741824,
"MaxMemory": 1610612736,
@ -4305,6 +4350,51 @@ Response:
"BaseMinMemory": 8388608,
"MaxConcurrent": 0
},
"10": {
"MinMemory": 2048,
"MaxMemory": 2048,
"GPUUtilization": 1,
"MaxParallelism": 1,
"MaxParallelismGPU": 0,
"BaseMinMemory": 2048,
"MaxConcurrent": 0
},
"11": {
"MinMemory": 8388608,
"MaxMemory": 8388608,
"GPUUtilization": 1,
"MaxParallelism": 1,
"MaxParallelismGPU": 0,
"BaseMinMemory": 8388608,
"MaxConcurrent": 0
},
"12": {
"MinMemory": 2048,
"MaxMemory": 2048,
"GPUUtilization": 1,
"MaxParallelism": 1,
"MaxParallelismGPU": 0,
"BaseMinMemory": 10737418240,
"MaxConcurrent": 0
},
"13": {
"MinMemory": 1073741824,
"MaxMemory": 1073741824,
"GPUUtilization": 1,
"MaxParallelism": -1,
"MaxParallelismGPU": 6,
"BaseMinMemory": 34359738368,
"MaxConcurrent": 0
},
"14": {
"MinMemory": 1073741824,
"MaxMemory": 1073741824,
"GPUUtilization": 1,
"MaxParallelism": -1,
"MaxParallelismGPU": 6,
"BaseMinMemory": 68719476736,
"MaxConcurrent": 0
},
"2": {
"MinMemory": 2048,
"MaxMemory": 2048,
@ -4397,6 +4487,51 @@ Response:
"BaseMinMemory": 8388608,
"MaxConcurrent": 0
},
"10": {
"MinMemory": 2048,
"MaxMemory": 2048,
"GPUUtilization": 0,
"MaxParallelism": 1,
"MaxParallelismGPU": 0,
"BaseMinMemory": 2048,
"MaxConcurrent": 0
},
"11": {
"MinMemory": 8388608,
"MaxMemory": 8388608,
"GPUUtilization": 0,
"MaxParallelism": 1,
"MaxParallelismGPU": 0,
"BaseMinMemory": 8388608,
"MaxConcurrent": 0
},
"12": {
"MinMemory": 1073741824,
"MaxMemory": 1073741824,
"GPUUtilization": 0,
"MaxParallelism": 1,
"MaxParallelismGPU": 0,
"BaseMinMemory": 1073741824,
"MaxConcurrent": 0
},
"13": {
"MinMemory": 4294967296,
"MaxMemory": 4294967296,
"GPUUtilization": 0,
"MaxParallelism": 1,
"MaxParallelismGPU": 0,
"BaseMinMemory": 1073741824,
"MaxConcurrent": 0
},
"14": {
"MinMemory": 8589934592,
"MaxMemory": 8589934592,
"GPUUtilization": 0,
"MaxParallelism": 1,
"MaxParallelismGPU": 0,
"BaseMinMemory": 1073741824,
"MaxConcurrent": 0
},
"2": {
"MinMemory": 1073741824,
"MaxMemory": 1073741824,
@ -4489,6 +4624,51 @@ Response:
"BaseMinMemory": 8388608,
"MaxConcurrent": 0
},
"10": {
"MinMemory": 2048,
"MaxMemory": 2048,
"GPUUtilization": 0,
"MaxParallelism": 0,
"MaxParallelismGPU": 0,
"BaseMinMemory": 2048,
"MaxConcurrent": 0
},
"11": {
"MinMemory": 8388608,
"MaxMemory": 8388608,
"GPUUtilization": 0,
"MaxParallelism": 0,
"MaxParallelismGPU": 0,
"BaseMinMemory": 8388608,
"MaxConcurrent": 0
},
"12": {
"MinMemory": 1073741824,
"MaxMemory": 1073741824,
"GPUUtilization": 0,
"MaxParallelism": 0,
"MaxParallelismGPU": 0,
"BaseMinMemory": 1073741824,
"MaxConcurrent": 0
},
"13": {
"MinMemory": 1073741824,
"MaxMemory": 1073741824,
"GPUUtilization": 0,
"MaxParallelism": 0,
"MaxParallelismGPU": 0,
"BaseMinMemory": 1073741824,
"MaxConcurrent": 0
},
"14": {
"MinMemory": 1073741824,
"MaxMemory": 1073741824,
"GPUUtilization": 0,
"MaxParallelism": 0,
"MaxParallelismGPU": 0,
"BaseMinMemory": 1073741824,
"MaxConcurrent": 0
},
"2": {
"MinMemory": 1073741824,
"MaxMemory": 1073741824,
@ -4581,6 +4761,51 @@ Response:
"BaseMinMemory": 8388608,
"MaxConcurrent": 0
},
"10": {
"MinMemory": 2048,
"MaxMemory": 2048,
"GPUUtilization": 1,
"MaxParallelism": 1,
"MaxParallelismGPU": 0,
"BaseMinMemory": 2048,
"MaxConcurrent": 0
},
"11": {
"MinMemory": 8388608,
"MaxMemory": 8388608,
"GPUUtilization": 1,
"MaxParallelism": 1,
"MaxParallelismGPU": 0,
"BaseMinMemory": 8388608,
"MaxConcurrent": 0
},
"12": {
"MinMemory": 1073741824,
"MaxMemory": 1610612736,
"GPUUtilization": 1,
"MaxParallelism": 1,
"MaxParallelismGPU": 0,
"BaseMinMemory": 10737418240,
"MaxConcurrent": 0
},
"13": {
"MinMemory": 32212254720,
"MaxMemory": 161061273600,
"GPUUtilization": 1,
"MaxParallelism": -1,
"MaxParallelismGPU": 6,
"BaseMinMemory": 34359738368,
"MaxConcurrent": 0
},
"14": {
"MinMemory": 64424509440,
"MaxMemory": 204010946560,
"GPUUtilization": 1,
"MaxParallelism": -1,
"MaxParallelismGPU": 6,
"BaseMinMemory": 68719476736,
"MaxConcurrent": 0
},
"2": {
"MinMemory": 1073741824,
"MaxMemory": 1610612736,
@ -4673,6 +4898,51 @@ Response:
"BaseMinMemory": 1073741824,
"MaxConcurrent": 0
},
"10": {
"MinMemory": 4294967296,
"MaxMemory": 4294967296,
"GPUUtilization": 0,
"MaxParallelism": 1,
"MaxParallelismGPU": 0,
"BaseMinMemory": 1073741824,
"MaxConcurrent": 0
},
"11": {
"MinMemory": 4294967296,
"MaxMemory": 4294967296,
"GPUUtilization": 0,
"MaxParallelism": 1,
"MaxParallelismGPU": 0,
"BaseMinMemory": 1073741824,
"MaxConcurrent": 0
},
"12": {
"MinMemory": 4294967296,
"MaxMemory": 4294967296,
"GPUUtilization": 0,
"MaxParallelism": 1,
"MaxParallelismGPU": 0,
"BaseMinMemory": 1073741824,
"MaxConcurrent": 0
},
"13": {
"MinMemory": 4294967296,
"MaxMemory": 4294967296,
"GPUUtilization": 0,
"MaxParallelism": 1,
"MaxParallelismGPU": 0,
"BaseMinMemory": 1073741824,
"MaxConcurrent": 0
},
"14": {
"MinMemory": 4294967296,
"MaxMemory": 4294967296,
"GPUUtilization": 0,
"MaxParallelism": 1,
"MaxParallelismGPU": 0,
"BaseMinMemory": 1073741824,
"MaxConcurrent": 0
},
"2": {
"MinMemory": 4294967296,
"MaxMemory": 4294967296,
@ -4765,6 +5035,51 @@ Response:
"BaseMinMemory": 0,
"MaxConcurrent": 0
},
"10": {
"MinMemory": 1048576,
"MaxMemory": 1048576,
"GPUUtilization": 0,
"MaxParallelism": 0,
"MaxParallelismGPU": 0,
"BaseMinMemory": 0,
"MaxConcurrent": 0
},
"11": {
"MinMemory": 1048576,
"MaxMemory": 1048576,
"GPUUtilization": 0,
"MaxParallelism": 0,
"MaxParallelismGPU": 0,
"BaseMinMemory": 0,
"MaxConcurrent": 0
},
"12": {
"MinMemory": 1048576,
"MaxMemory": 1048576,
"GPUUtilization": 0,
"MaxParallelism": 0,
"MaxParallelismGPU": 0,
"BaseMinMemory": 0,
"MaxConcurrent": 0
},
"13": {
"MinMemory": 1048576,
"MaxMemory": 1048576,
"GPUUtilization": 0,
"MaxParallelism": 0,
"MaxParallelismGPU": 0,
"BaseMinMemory": 0,
"MaxConcurrent": 0
},
"14": {
"MinMemory": 1048576,
"MaxMemory": 1048576,
"GPUUtilization": 0,
"MaxParallelism": 0,
"MaxParallelismGPU": 0,
"BaseMinMemory": 0,
"MaxConcurrent": 0
},
"2": {
"MinMemory": 1048576,
"MaxMemory": 1048576,
@ -4857,6 +5172,51 @@ Response:
"BaseMinMemory": 8388608,
"MaxConcurrent": 0
},
"10": {
"MinMemory": 2048,
"MaxMemory": 2048,
"GPUUtilization": 0,
"MaxParallelism": 1,
"MaxParallelismGPU": 0,
"BaseMinMemory": 2048,
"MaxConcurrent": 0
},
"11": {
"MinMemory": 8388608,
"MaxMemory": 8388608,
"GPUUtilization": 0,
"MaxParallelism": 1,
"MaxParallelismGPU": 0,
"BaseMinMemory": 8388608,
"MaxConcurrent": 0
},
"12": {
"MinMemory": 805306368,
"MaxMemory": 1073741824,
"GPUUtilization": 0,
"MaxParallelism": 1,
"MaxParallelismGPU": 0,
"BaseMinMemory": 1048576,
"MaxConcurrent": 0
},
"13": {
"MinMemory": 60129542144,
"MaxMemory": 68719476736,
"GPUUtilization": 0,
"MaxParallelism": 1,
"MaxParallelismGPU": 0,
"BaseMinMemory": 10485760,
"MaxConcurrent": 0
},
"14": {
"MinMemory": 120259084288,
"MaxMemory": 137438953472,
"GPUUtilization": 0,
"MaxParallelism": 1,
"MaxParallelismGPU": 0,
"BaseMinMemory": 10485760,
"MaxConcurrent": 0
},
"2": {
"MinMemory": 805306368,
"MaxMemory": 1073741824,
@ -4949,6 +5309,51 @@ Response:
"BaseMinMemory": 8388608,
"MaxConcurrent": 0
},
"10": {
"MinMemory": 2048,
"MaxMemory": 2048,
"GPUUtilization": 0,
"MaxParallelism": -1,
"MaxParallelismGPU": 0,
"BaseMinMemory": 2048,
"MaxConcurrent": 0
},
"11": {
"MinMemory": 8388608,
"MaxMemory": 8388608,
"GPUUtilization": 0,
"MaxParallelism": -1,
"MaxParallelismGPU": 0,
"BaseMinMemory": 8388608,
"MaxConcurrent": 0
},
"12": {
"MinMemory": 1073741824,
"MaxMemory": 1610612736,
"GPUUtilization": 0,
"MaxParallelism": -1,
"MaxParallelismGPU": 0,
"BaseMinMemory": 1073741824,
"MaxConcurrent": 0
},
"13": {
"MinMemory": 16106127360,
"MaxMemory": 16106127360,
"GPUUtilization": 1,
"MaxParallelism": -1,
"MaxParallelismGPU": 6,
"BaseMinMemory": 1073741824,
"MaxConcurrent": 0
},
"14": {
"MinMemory": 32212254720,
"MaxMemory": 32212254720,
"GPUUtilization": 1,
"MaxParallelism": -1,
"MaxParallelismGPU": 6,
"BaseMinMemory": 1073741824,
"MaxConcurrent": 0
},
"2": {
"MinMemory": 1073741824,
"MaxMemory": 1610612736,
@ -5041,6 +5446,51 @@ Response:
"BaseMinMemory": 8388608,
"MaxConcurrent": 0
},
"10": {
"MinMemory": 2048,
"MaxMemory": 2048,
"GPUUtilization": 0,
"MaxParallelism": 0,
"MaxParallelismGPU": 0,
"BaseMinMemory": 2048,
"MaxConcurrent": 0
},
"11": {
"MinMemory": 8388608,
"MaxMemory": 8388608,
"GPUUtilization": 0,
"MaxParallelism": 0,
"MaxParallelismGPU": 0,
"BaseMinMemory": 8388608,
"MaxConcurrent": 0
},
"12": {
"MinMemory": 1073741824,
"MaxMemory": 1073741824,
"GPUUtilization": 0,
"MaxParallelism": 0,
"MaxParallelismGPU": 0,
"BaseMinMemory": 1073741824,
"MaxConcurrent": 0
},
"13": {
"MinMemory": 1073741824,
"MaxMemory": 1073741824,
"GPUUtilization": 0,
"MaxParallelism": 0,
"MaxParallelismGPU": 0,
"BaseMinMemory": 1073741824,
"MaxConcurrent": 0
},
"14": {
"MinMemory": 1073741824,
"MaxMemory": 1073741824,
"GPUUtilization": 0,
"MaxParallelism": 0,
"MaxParallelismGPU": 0,
"BaseMinMemory": 1073741824,
"MaxConcurrent": 0
},
"2": {
"MinMemory": 1073741824,
"MaxMemory": 1073741824,
@ -5133,6 +5583,51 @@ Response:
"BaseMinMemory": 8388608,
"MaxConcurrent": 0
},
"10": {
"MinMemory": 2048,
"MaxMemory": 2048,
"GPUUtilization": 1,
"MaxParallelism": 1,
"MaxParallelismGPU": 0,
"BaseMinMemory": 2048,
"MaxConcurrent": 0
},
"11": {
"MinMemory": 8388608,
"MaxMemory": 8388608,
"GPUUtilization": 1,
"MaxParallelism": 1,
"MaxParallelismGPU": 0,
"BaseMinMemory": 8388608,
"MaxConcurrent": 0
},
"12": {
"MinMemory": 1073741824,
"MaxMemory": 1610612736,
"GPUUtilization": 1,
"MaxParallelism": 1,
"MaxParallelismGPU": 0,
"BaseMinMemory": 10737418240,
"MaxConcurrent": 0
},
"13": {
"MinMemory": 32212254720,
"MaxMemory": 161061273600,
"GPUUtilization": 1,
"MaxParallelism": -1,
"MaxParallelismGPU": 6,
"BaseMinMemory": 34359738368,
"MaxConcurrent": 0
},
"14": {
"MinMemory": 64424509440,
"MaxMemory": 204010946560,
"GPUUtilization": 1,
"MaxParallelism": -1,
"MaxParallelismGPU": 6,
"BaseMinMemory": 68719476736,
"MaxConcurrent": 0
},
"2": {
"MinMemory": 1073741824,
"MaxMemory": 1610612736,
@ -5225,6 +5720,51 @@ Response:
"BaseMinMemory": 8388608,
"MaxConcurrent": 0
},
"10": {
"MinMemory": 2048,
"MaxMemory": 2048,
"GPUUtilization": 1,
"MaxParallelism": 1,
"MaxParallelismGPU": 0,
"BaseMinMemory": 2048,
"MaxConcurrent": 0
},
"11": {
"MinMemory": 8388608,
"MaxMemory": 8388608,
"GPUUtilization": 1,
"MaxParallelism": 1,
"MaxParallelismGPU": 0,
"BaseMinMemory": 8388608,
"MaxConcurrent": 0
},
"12": {
"MinMemory": 1073741824,
"MaxMemory": 1073741824,
"GPUUtilization": 1,
"MaxParallelism": 1,
"MaxParallelismGPU": 0,
"BaseMinMemory": 1073741824,
"MaxConcurrent": 0
},
"13": {
"MinMemory": 4294967296,
"MaxMemory": 4294967296,
"GPUUtilization": 1,
"MaxParallelism": 1,
"MaxParallelismGPU": 6,
"BaseMinMemory": 1073741824,
"MaxConcurrent": 0
},
"14": {
"MinMemory": 8589934592,
"MaxMemory": 8589934592,
"GPUUtilization": 1,
"MaxParallelism": 1,
"MaxParallelismGPU": 6,
"BaseMinMemory": 1073741824,
"MaxConcurrent": 0
},
"2": {
"MinMemory": 1073741824,
"MaxMemory": 1073741824,
@ -5317,6 +5857,51 @@ Response:
"BaseMinMemory": 8388608,
"MaxConcurrent": 0
},
"10": {
"MinMemory": 2048,
"MaxMemory": 2048,
"GPUUtilization": 1,
"MaxParallelism": 1,
"MaxParallelismGPU": 0,
"BaseMinMemory": 2048,
"MaxConcurrent": 0
},
"11": {
"MinMemory": 8388608,
"MaxMemory": 8388608,
"GPUUtilization": 1,
"MaxParallelism": 1,
"MaxParallelismGPU": 0,
"BaseMinMemory": 8388608,
"MaxConcurrent": 0
},
"12": {
"MinMemory": 1073741824,
"MaxMemory": 1073741824,
"GPUUtilization": 1,
"MaxParallelism": 1,
"MaxParallelismGPU": 0,
"BaseMinMemory": 1073741824,
"MaxConcurrent": 0
},
"13": {
"MinMemory": 4294967296,
"MaxMemory": 4294967296,
"GPUUtilization": 1,
"MaxParallelism": 1,
"MaxParallelismGPU": 6,
"BaseMinMemory": 1073741824,
"MaxConcurrent": 0
},
"14": {
"MinMemory": 8589934592,
"MaxMemory": 8589934592,
"GPUUtilization": 1,
"MaxParallelism": 1,
"MaxParallelismGPU": 6,
"BaseMinMemory": 1073741824,
"MaxConcurrent": 0
},
"2": {
"MinMemory": 1073741824,
"MaxMemory": 1073741824,
@ -5409,6 +5994,51 @@ Response:
"BaseMinMemory": 8388608,
"MaxConcurrent": 0
},
"10": {
"MinMemory": 2048,
"MaxMemory": 2048,
"GPUUtilization": 0,
"MaxParallelism": 1,
"MaxParallelismGPU": 0,
"BaseMinMemory": 2048,
"MaxConcurrent": 0
},
"11": {
"MinMemory": 8388608,
"MaxMemory": 8388608,
"GPUUtilization": 0,
"MaxParallelism": 1,
"MaxParallelismGPU": 0,
"BaseMinMemory": 8388608,
"MaxConcurrent": 0
},
"12": {
"MinMemory": 805306368,
"MaxMemory": 1073741824,
"GPUUtilization": 0,
"MaxParallelism": 1,
"MaxParallelismGPU": 0,
"BaseMinMemory": 1048576,
"MaxConcurrent": 0
},
"13": {
"MinMemory": 60129542144,
"MaxMemory": 68719476736,
"GPUUtilization": 0,
"MaxParallelism": 1,
"MaxParallelismGPU": 0,
"BaseMinMemory": 10485760,
"MaxConcurrent": 0
},
"14": {
"MinMemory": 120259084288,
"MaxMemory": 137438953472,
"GPUUtilization": 0,
"MaxParallelism": 1,
"MaxParallelismGPU": 0,
"BaseMinMemory": 10485760,
"MaxConcurrent": 0
},
"2": {
"MinMemory": 805306368,
"MaxMemory": 1073741824,

View File

@ -138,6 +138,51 @@ Response:
"BaseMinMemory": 8388608,
"MaxConcurrent": 0
},
"10": {
"MinMemory": 2048,
"MaxMemory": 2048,
"GPUUtilization": 1,
"MaxParallelism": 1,
"MaxParallelismGPU": 0,
"BaseMinMemory": 2048,
"MaxConcurrent": 0
},
"11": {
"MinMemory": 8388608,
"MaxMemory": 8388608,
"GPUUtilization": 1,
"MaxParallelism": 1,
"MaxParallelismGPU": 0,
"BaseMinMemory": 8388608,
"MaxConcurrent": 0
},
"12": {
"MinMemory": 1073741824,
"MaxMemory": 1610612736,
"GPUUtilization": 1,
"MaxParallelism": 1,
"MaxParallelismGPU": 0,
"BaseMinMemory": 10737418240,
"MaxConcurrent": 0
},
"13": {
"MinMemory": 32212254720,
"MaxMemory": 103079215104,
"GPUUtilization": 1,
"MaxParallelism": -1,
"MaxParallelismGPU": 6,
"BaseMinMemory": 34359738368,
"MaxConcurrent": 0
},
"14": {
"MinMemory": 64424509440,
"MaxMemory": 128849018880,
"GPUUtilization": 1,
"MaxParallelism": -1,
"MaxParallelismGPU": 6,
"BaseMinMemory": 68719476736,
"MaxConcurrent": 0
},
"2": {
"MinMemory": 1073741824,
"MaxMemory": 1610612736,
@ -230,6 +275,51 @@ Response:
"BaseMinMemory": 8388608,
"MaxConcurrent": 0
},
"10": {
"MinMemory": 2048,
"MaxMemory": 2048,
"GPUUtilization": 1,
"MaxParallelism": 1,
"MaxParallelismGPU": 0,
"BaseMinMemory": 2048,
"MaxConcurrent": 0
},
"11": {
"MinMemory": 8388608,
"MaxMemory": 8388608,
"GPUUtilization": 1,
"MaxParallelism": 1,
"MaxParallelismGPU": 0,
"BaseMinMemory": 8388608,
"MaxConcurrent": 0
},
"12": {
"MinMemory": 2048,
"MaxMemory": 2048,
"GPUUtilization": 1,
"MaxParallelism": 1,
"MaxParallelismGPU": 0,
"BaseMinMemory": 10737418240,
"MaxConcurrent": 0
},
"13": {
"MinMemory": 1073741824,
"MaxMemory": 1073741824,
"GPUUtilization": 1,
"MaxParallelism": -1,
"MaxParallelismGPU": 6,
"BaseMinMemory": 34359738368,
"MaxConcurrent": 0
},
"14": {
"MinMemory": 1073741824,
"MaxMemory": 1073741824,
"GPUUtilization": 1,
"MaxParallelism": -1,
"MaxParallelismGPU": 6,
"BaseMinMemory": 68719476736,
"MaxConcurrent": 0
},
"2": {
"MinMemory": 2048,
"MaxMemory": 2048,
@ -322,6 +412,51 @@ Response:
"BaseMinMemory": 8388608,
"MaxConcurrent": 0
},
"10": {
"MinMemory": 2048,
"MaxMemory": 2048,
"GPUUtilization": 0,
"MaxParallelism": 1,
"MaxParallelismGPU": 0,
"BaseMinMemory": 2048,
"MaxConcurrent": 0
},
"11": {
"MinMemory": 8388608,
"MaxMemory": 8388608,
"GPUUtilization": 0,
"MaxParallelism": 1,
"MaxParallelismGPU": 0,
"BaseMinMemory": 8388608,
"MaxConcurrent": 0
},
"12": {
"MinMemory": 1073741824,
"MaxMemory": 1073741824,
"GPUUtilization": 0,
"MaxParallelism": 1,
"MaxParallelismGPU": 0,
"BaseMinMemory": 1073741824,
"MaxConcurrent": 0
},
"13": {
"MinMemory": 4294967296,
"MaxMemory": 4294967296,
"GPUUtilization": 0,
"MaxParallelism": 1,
"MaxParallelismGPU": 0,
"BaseMinMemory": 1073741824,
"MaxConcurrent": 0
},
"14": {
"MinMemory": 8589934592,
"MaxMemory": 8589934592,
"GPUUtilization": 0,
"MaxParallelism": 1,
"MaxParallelismGPU": 0,
"BaseMinMemory": 1073741824,
"MaxConcurrent": 0
},
"2": {
"MinMemory": 1073741824,
"MaxMemory": 1073741824,
@ -414,6 +549,51 @@ Response:
"BaseMinMemory": 8388608,
"MaxConcurrent": 0
},
"10": {
"MinMemory": 2048,
"MaxMemory": 2048,
"GPUUtilization": 0,
"MaxParallelism": 0,
"MaxParallelismGPU": 0,
"BaseMinMemory": 2048,
"MaxConcurrent": 0
},
"11": {
"MinMemory": 8388608,
"MaxMemory": 8388608,
"GPUUtilization": 0,
"MaxParallelism": 0,
"MaxParallelismGPU": 0,
"BaseMinMemory": 8388608,
"MaxConcurrent": 0
},
"12": {
"MinMemory": 1073741824,
"MaxMemory": 1073741824,
"GPUUtilization": 0,
"MaxParallelism": 0,
"MaxParallelismGPU": 0,
"BaseMinMemory": 1073741824,
"MaxConcurrent": 0
},
"13": {
"MinMemory": 1073741824,
"MaxMemory": 1073741824,
"GPUUtilization": 0,
"MaxParallelism": 0,
"MaxParallelismGPU": 0,
"BaseMinMemory": 1073741824,
"MaxConcurrent": 0
},
"14": {
"MinMemory": 1073741824,
"MaxMemory": 1073741824,
"GPUUtilization": 0,
"MaxParallelism": 0,
"MaxParallelismGPU": 0,
"BaseMinMemory": 1073741824,
"MaxConcurrent": 0
},
"2": {
"MinMemory": 1073741824,
"MaxMemory": 1073741824,
@ -506,6 +686,51 @@ Response:
"BaseMinMemory": 8388608,
"MaxConcurrent": 0
},
"10": {
"MinMemory": 2048,
"MaxMemory": 2048,
"GPUUtilization": 1,
"MaxParallelism": 1,
"MaxParallelismGPU": 0,
"BaseMinMemory": 2048,
"MaxConcurrent": 0
},
"11": {
"MinMemory": 8388608,
"MaxMemory": 8388608,
"GPUUtilization": 1,
"MaxParallelism": 1,
"MaxParallelismGPU": 0,
"BaseMinMemory": 8388608,
"MaxConcurrent": 0
},
"12": {
"MinMemory": 1073741824,
"MaxMemory": 1610612736,
"GPUUtilization": 1,
"MaxParallelism": 1,
"MaxParallelismGPU": 0,
"BaseMinMemory": 10737418240,
"MaxConcurrent": 0
},
"13": {
"MinMemory": 32212254720,
"MaxMemory": 161061273600,
"GPUUtilization": 1,
"MaxParallelism": -1,
"MaxParallelismGPU": 6,
"BaseMinMemory": 34359738368,
"MaxConcurrent": 0
},
"14": {
"MinMemory": 64424509440,
"MaxMemory": 204010946560,
"GPUUtilization": 1,
"MaxParallelism": -1,
"MaxParallelismGPU": 6,
"BaseMinMemory": 68719476736,
"MaxConcurrent": 0
},
"2": {
"MinMemory": 1073741824,
"MaxMemory": 1610612736,
@ -598,6 +823,51 @@ Response:
"BaseMinMemory": 1073741824,
"MaxConcurrent": 0
},
"10": {
"MinMemory": 4294967296,
"MaxMemory": 4294967296,
"GPUUtilization": 0,
"MaxParallelism": 1,
"MaxParallelismGPU": 0,
"BaseMinMemory": 1073741824,
"MaxConcurrent": 0
},
"11": {
"MinMemory": 4294967296,
"MaxMemory": 4294967296,
"GPUUtilization": 0,
"MaxParallelism": 1,
"MaxParallelismGPU": 0,
"BaseMinMemory": 1073741824,
"MaxConcurrent": 0
},
"12": {
"MinMemory": 4294967296,
"MaxMemory": 4294967296,
"GPUUtilization": 0,
"MaxParallelism": 1,
"MaxParallelismGPU": 0,
"BaseMinMemory": 1073741824,
"MaxConcurrent": 0
},
"13": {
"MinMemory": 4294967296,
"MaxMemory": 4294967296,
"GPUUtilization": 0,
"MaxParallelism": 1,
"MaxParallelismGPU": 0,
"BaseMinMemory": 1073741824,
"MaxConcurrent": 0
},
"14": {
"MinMemory": 4294967296,
"MaxMemory": 4294967296,
"GPUUtilization": 0,
"MaxParallelism": 1,
"MaxParallelismGPU": 0,
"BaseMinMemory": 1073741824,
"MaxConcurrent": 0
},
"2": {
"MinMemory": 4294967296,
"MaxMemory": 4294967296,
@ -690,6 +960,51 @@ Response:
"BaseMinMemory": 0,
"MaxConcurrent": 0
},
"10": {
"MinMemory": 1048576,
"MaxMemory": 1048576,
"GPUUtilization": 0,
"MaxParallelism": 0,
"MaxParallelismGPU": 0,
"BaseMinMemory": 0,
"MaxConcurrent": 0
},
"11": {
"MinMemory": 1048576,
"MaxMemory": 1048576,
"GPUUtilization": 0,
"MaxParallelism": 0,
"MaxParallelismGPU": 0,
"BaseMinMemory": 0,
"MaxConcurrent": 0
},
"12": {
"MinMemory": 1048576,
"MaxMemory": 1048576,
"GPUUtilization": 0,
"MaxParallelism": 0,
"MaxParallelismGPU": 0,
"BaseMinMemory": 0,
"MaxConcurrent": 0
},
"13": {
"MinMemory": 1048576,
"MaxMemory": 1048576,
"GPUUtilization": 0,
"MaxParallelism": 0,
"MaxParallelismGPU": 0,
"BaseMinMemory": 0,
"MaxConcurrent": 0
},
"14": {
"MinMemory": 1048576,
"MaxMemory": 1048576,
"GPUUtilization": 0,
"MaxParallelism": 0,
"MaxParallelismGPU": 0,
"BaseMinMemory": 0,
"MaxConcurrent": 0
},
"2": {
"MinMemory": 1048576,
"MaxMemory": 1048576,
@ -782,6 +1097,51 @@ Response:
"BaseMinMemory": 8388608,
"MaxConcurrent": 0
},
"10": {
"MinMemory": 2048,
"MaxMemory": 2048,
"GPUUtilization": 0,
"MaxParallelism": 1,
"MaxParallelismGPU": 0,
"BaseMinMemory": 2048,
"MaxConcurrent": 0
},
"11": {
"MinMemory": 8388608,
"MaxMemory": 8388608,
"GPUUtilization": 0,
"MaxParallelism": 1,
"MaxParallelismGPU": 0,
"BaseMinMemory": 8388608,
"MaxConcurrent": 0
},
"12": {
"MinMemory": 805306368,
"MaxMemory": 1073741824,
"GPUUtilization": 0,
"MaxParallelism": 1,
"MaxParallelismGPU": 0,
"BaseMinMemory": 1048576,
"MaxConcurrent": 0
},
"13": {
"MinMemory": 60129542144,
"MaxMemory": 68719476736,
"GPUUtilization": 0,
"MaxParallelism": 1,
"MaxParallelismGPU": 0,
"BaseMinMemory": 10485760,
"MaxConcurrent": 0
},
"14": {
"MinMemory": 120259084288,
"MaxMemory": 137438953472,
"GPUUtilization": 0,
"MaxParallelism": 1,
"MaxParallelismGPU": 0,
"BaseMinMemory": 10485760,
"MaxConcurrent": 0
},
"2": {
"MinMemory": 805306368,
"MaxMemory": 1073741824,
@ -874,6 +1234,51 @@ Response:
"BaseMinMemory": 8388608,
"MaxConcurrent": 0
},
"10": {
"MinMemory": 2048,
"MaxMemory": 2048,
"GPUUtilization": 0,
"MaxParallelism": -1,
"MaxParallelismGPU": 0,
"BaseMinMemory": 2048,
"MaxConcurrent": 0
},
"11": {
"MinMemory": 8388608,
"MaxMemory": 8388608,
"GPUUtilization": 0,
"MaxParallelism": -1,
"MaxParallelismGPU": 0,
"BaseMinMemory": 8388608,
"MaxConcurrent": 0
},
"12": {
"MinMemory": 1073741824,
"MaxMemory": 1610612736,
"GPUUtilization": 0,
"MaxParallelism": -1,
"MaxParallelismGPU": 0,
"BaseMinMemory": 1073741824,
"MaxConcurrent": 0
},
"13": {
"MinMemory": 16106127360,
"MaxMemory": 16106127360,
"GPUUtilization": 1,
"MaxParallelism": -1,
"MaxParallelismGPU": 6,
"BaseMinMemory": 1073741824,
"MaxConcurrent": 0
},
"14": {
"MinMemory": 32212254720,
"MaxMemory": 32212254720,
"GPUUtilization": 1,
"MaxParallelism": -1,
"MaxParallelismGPU": 6,
"BaseMinMemory": 1073741824,
"MaxConcurrent": 0
},
"2": {
"MinMemory": 1073741824,
"MaxMemory": 1610612736,
@ -966,6 +1371,51 @@ Response:
"BaseMinMemory": 8388608,
"MaxConcurrent": 0
},
"10": {
"MinMemory": 2048,
"MaxMemory": 2048,
"GPUUtilization": 0,
"MaxParallelism": 0,
"MaxParallelismGPU": 0,
"BaseMinMemory": 2048,
"MaxConcurrent": 0
},
"11": {
"MinMemory": 8388608,
"MaxMemory": 8388608,
"GPUUtilization": 0,
"MaxParallelism": 0,
"MaxParallelismGPU": 0,
"BaseMinMemory": 8388608,
"MaxConcurrent": 0
},
"12": {
"MinMemory": 1073741824,
"MaxMemory": 1073741824,
"GPUUtilization": 0,
"MaxParallelism": 0,
"MaxParallelismGPU": 0,
"BaseMinMemory": 1073741824,
"MaxConcurrent": 0
},
"13": {
"MinMemory": 1073741824,
"MaxMemory": 1073741824,
"GPUUtilization": 0,
"MaxParallelism": 0,
"MaxParallelismGPU": 0,
"BaseMinMemory": 1073741824,
"MaxConcurrent": 0
},
"14": {
"MinMemory": 1073741824,
"MaxMemory": 1073741824,
"GPUUtilization": 0,
"MaxParallelism": 0,
"MaxParallelismGPU": 0,
"BaseMinMemory": 1073741824,
"MaxConcurrent": 0
},
"2": {
"MinMemory": 1073741824,
"MaxMemory": 1073741824,
@ -1058,6 +1508,51 @@ Response:
"BaseMinMemory": 8388608,
"MaxConcurrent": 0
},
"10": {
"MinMemory": 2048,
"MaxMemory": 2048,
"GPUUtilization": 1,
"MaxParallelism": 1,
"MaxParallelismGPU": 0,
"BaseMinMemory": 2048,
"MaxConcurrent": 0
},
"11": {
"MinMemory": 8388608,
"MaxMemory": 8388608,
"GPUUtilization": 1,
"MaxParallelism": 1,
"MaxParallelismGPU": 0,
"BaseMinMemory": 8388608,
"MaxConcurrent": 0
},
"12": {
"MinMemory": 1073741824,
"MaxMemory": 1610612736,
"GPUUtilization": 1,
"MaxParallelism": 1,
"MaxParallelismGPU": 0,
"BaseMinMemory": 10737418240,
"MaxConcurrent": 0
},
"13": {
"MinMemory": 32212254720,
"MaxMemory": 161061273600,
"GPUUtilization": 1,
"MaxParallelism": -1,
"MaxParallelismGPU": 6,
"BaseMinMemory": 34359738368,
"MaxConcurrent": 0
},
"14": {
"MinMemory": 64424509440,
"MaxMemory": 204010946560,
"GPUUtilization": 1,
"MaxParallelism": -1,
"MaxParallelismGPU": 6,
"BaseMinMemory": 68719476736,
"MaxConcurrent": 0
},
"2": {
"MinMemory": 1073741824,
"MaxMemory": 1610612736,
@ -1150,6 +1645,51 @@ Response:
"BaseMinMemory": 8388608,
"MaxConcurrent": 0
},
"10": {
"MinMemory": 2048,
"MaxMemory": 2048,
"GPUUtilization": 1,
"MaxParallelism": 1,
"MaxParallelismGPU": 0,
"BaseMinMemory": 2048,
"MaxConcurrent": 0
},
"11": {
"MinMemory": 8388608,
"MaxMemory": 8388608,
"GPUUtilization": 1,
"MaxParallelism": 1,
"MaxParallelismGPU": 0,
"BaseMinMemory": 8388608,
"MaxConcurrent": 0
},
"12": {
"MinMemory": 1073741824,
"MaxMemory": 1073741824,
"GPUUtilization": 1,
"MaxParallelism": 1,
"MaxParallelismGPU": 0,
"BaseMinMemory": 1073741824,
"MaxConcurrent": 0
},
"13": {
"MinMemory": 4294967296,
"MaxMemory": 4294967296,
"GPUUtilization": 1,
"MaxParallelism": 1,
"MaxParallelismGPU": 6,
"BaseMinMemory": 1073741824,
"MaxConcurrent": 0
},
"14": {
"MinMemory": 8589934592,
"MaxMemory": 8589934592,
"GPUUtilization": 1,
"MaxParallelism": 1,
"MaxParallelismGPU": 6,
"BaseMinMemory": 1073741824,
"MaxConcurrent": 0
},
"2": {
"MinMemory": 1073741824,
"MaxMemory": 1073741824,
@ -1242,6 +1782,51 @@ Response:
"BaseMinMemory": 8388608,
"MaxConcurrent": 0
},
"10": {
"MinMemory": 2048,
"MaxMemory": 2048,
"GPUUtilization": 1,
"MaxParallelism": 1,
"MaxParallelismGPU": 0,
"BaseMinMemory": 2048,
"MaxConcurrent": 0
},
"11": {
"MinMemory": 8388608,
"MaxMemory": 8388608,
"GPUUtilization": 1,
"MaxParallelism": 1,
"MaxParallelismGPU": 0,
"BaseMinMemory": 8388608,
"MaxConcurrent": 0
},
"12": {
"MinMemory": 1073741824,
"MaxMemory": 1073741824,
"GPUUtilization": 1,
"MaxParallelism": 1,
"MaxParallelismGPU": 0,
"BaseMinMemory": 1073741824,
"MaxConcurrent": 0
},
"13": {
"MinMemory": 4294967296,
"MaxMemory": 4294967296,
"GPUUtilization": 1,
"MaxParallelism": 1,
"MaxParallelismGPU": 6,
"BaseMinMemory": 1073741824,
"MaxConcurrent": 0
},
"14": {
"MinMemory": 8589934592,
"MaxMemory": 8589934592,
"GPUUtilization": 1,
"MaxParallelism": 1,
"MaxParallelismGPU": 6,
"BaseMinMemory": 1073741824,
"MaxConcurrent": 0
},
"2": {
"MinMemory": 1073741824,
"MaxMemory": 1073741824,
@ -1334,6 +1919,51 @@ Response:
"BaseMinMemory": 8388608,
"MaxConcurrent": 0
},
"10": {
"MinMemory": 2048,
"MaxMemory": 2048,
"GPUUtilization": 0,
"MaxParallelism": 1,
"MaxParallelismGPU": 0,
"BaseMinMemory": 2048,
"MaxConcurrent": 0
},
"11": {
"MinMemory": 8388608,
"MaxMemory": 8388608,
"GPUUtilization": 0,
"MaxParallelism": 1,
"MaxParallelismGPU": 0,
"BaseMinMemory": 8388608,
"MaxConcurrent": 0
},
"12": {
"MinMemory": 805306368,
"MaxMemory": 1073741824,
"GPUUtilization": 0,
"MaxParallelism": 1,
"MaxParallelismGPU": 0,
"BaseMinMemory": 1048576,
"MaxConcurrent": 0
},
"13": {
"MinMemory": 60129542144,
"MaxMemory": 68719476736,
"GPUUtilization": 0,
"MaxParallelism": 1,
"MaxParallelismGPU": 0,
"BaseMinMemory": 10485760,
"MaxConcurrent": 0
},
"14": {
"MinMemory": 120259084288,
"MaxMemory": 137438953472,
"GPUUtilization": 0,
"MaxParallelism": 1,
"MaxParallelismGPU": 0,
"BaseMinMemory": 10485760,
"MaxConcurrent": 0
},
"2": {
"MinMemory": 805306368,
"MaxMemory": 1073741824,

View File

@ -4873,7 +4873,12 @@ Response:
"Value": "0",
"Method": 1,
"Params": "Ynl0ZSBhcnJheQ==",
"ParamsCodec": 42
"ParamsCodec": 42,
"GasLimit": 42,
"ReadOnly": true,
"CodeCid": {
"/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4"
}
},
"MsgRct": {
"ExitCode": 0,
@ -4897,7 +4902,12 @@ Response:
"Value": "0",
"Method": 1,
"Params": "Ynl0ZSBhcnJheQ==",
"ParamsCodec": 42
"ParamsCodec": 42,
"GasLimit": 42,
"ReadOnly": true,
"CodeCid": {
"/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4"
}
},
"MsgRct": {
"ExitCode": 0,
@ -5103,7 +5113,12 @@ Response:
"Value": "0",
"Method": 1,
"Params": "Ynl0ZSBhcnJheQ==",
"ParamsCodec": 42
"ParamsCodec": 42,
"GasLimit": 42,
"ReadOnly": true,
"CodeCid": {
"/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4"
}
},
"MsgRct": {
"ExitCode": 0,
@ -5127,7 +5142,12 @@ Response:
"Value": "0",
"Method": 1,
"Params": "Ynl0ZSBhcnJheQ==",
"ParamsCodec": 42
"ParamsCodec": 42,
"GasLimit": 42,
"ReadOnly": true,
"CodeCid": {
"/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4"
}
},
"MsgRct": {
"ExitCode": 0,
@ -6492,7 +6512,12 @@ Response:
"Value": "0",
"Method": 1,
"Params": "Ynl0ZSBhcnJheQ==",
"ParamsCodec": 42
"ParamsCodec": 42,
"GasLimit": 42,
"ReadOnly": true,
"CodeCid": {
"/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4"
}
},
"MsgRct": {
"ExitCode": 0,
@ -6516,7 +6541,12 @@ Response:
"Value": "0",
"Method": 1,
"Params": "Ynl0ZSBhcnJheQ==",
"ParamsCodec": 42
"ParamsCodec": 42,
"GasLimit": 42,
"ReadOnly": true,
"CodeCid": {
"/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4"
}
},
"MsgRct": {
"ExitCode": 0,

View File

@ -6312,7 +6312,12 @@ Response:
"Value": "0",
"Method": 1,
"Params": "Ynl0ZSBhcnJheQ==",
"ParamsCodec": 42
"ParamsCodec": 42,
"GasLimit": 42,
"ReadOnly": true,
"CodeCid": {
"/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4"
}
},
"MsgRct": {
"ExitCode": 0,
@ -6336,7 +6341,12 @@ Response:
"Value": "0",
"Method": 1,
"Params": "Ynl0ZSBhcnJheQ==",
"ParamsCodec": 42
"ParamsCodec": 42,
"GasLimit": 42,
"ReadOnly": true,
"CodeCid": {
"/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4"
}
},
"MsgRct": {
"ExitCode": 0,
@ -6542,7 +6552,12 @@ Response:
"Value": "0",
"Method": 1,
"Params": "Ynl0ZSBhcnJheQ==",
"ParamsCodec": 42
"ParamsCodec": 42,
"GasLimit": 42,
"ReadOnly": true,
"CodeCid": {
"/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4"
}
},
"MsgRct": {
"ExitCode": 0,
@ -6566,7 +6581,12 @@ Response:
"Value": "0",
"Method": 1,
"Params": "Ynl0ZSBhcnJheQ==",
"ParamsCodec": 42
"ParamsCodec": 42,
"GasLimit": 42,
"ReadOnly": true,
"CodeCid": {
"/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4"
}
},
"MsgRct": {
"ExitCode": 0,
@ -8060,7 +8080,12 @@ Response:
"Value": "0",
"Method": 1,
"Params": "Ynl0ZSBhcnJheQ==",
"ParamsCodec": 42
"ParamsCodec": 42,
"GasLimit": 42,
"ReadOnly": true,
"CodeCid": {
"/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4"
}
},
"MsgRct": {
"ExitCode": 0,
@ -8084,7 +8109,12 @@ Response:
"Value": "0",
"Method": 1,
"Params": "Ynl0ZSBhcnJheQ==",
"ParamsCodec": 42
"ParamsCodec": 42,
"GasLimit": 42,
"ReadOnly": true,
"CodeCid": {
"/": "bafy2bzacea3wsdh6y3a36tb3skempjoxqpuyompjbmfeyf34fi3uy6uue42v4"
}
},
"MsgRct": {
"ExitCode": 0,

View File

@ -666,6 +666,14 @@
# env var: LOTUS_SEALING_TERMINATEBATCHWAIT
#TerminateBatchWait = "5m0s"
# UseSyntheticPoRep will reduce the amout of data held on disk in the WaitSeed phase to 32GiB
# at the cost of having to precompute the synthetic challenges.
# TODO: put estimated costs here
#
# type: bool
# env var: LOTUS_SEALING_USESYNTHETICPOREP
#UseSyntheticPoRep = false
[Storage]
# type: int

2
extern/filecoin-ffi vendored

@ -1 +1 @@
Subproject commit 5686133a636880968d3986a673b70d085433c972
Subproject commit 310f0ccd42760f8db567d2fa10959e3ef8b6186f

2
go.sum
View File

@ -337,7 +337,7 @@ github.com/filecoin-project/go-state-types v0.0.0-20201102161440-c8033295a1fc/go
github.com/filecoin-project/go-state-types v0.1.0/go.mod h1:ezYnPf0bNkTsDibL/psSz5dy4B5awOJ/E7P2Saeep8g=
github.com/filecoin-project/go-state-types v0.1.6/go.mod h1:UwGVoMsULoCK+bWjEdd/xLCvLAQFBC7EDT477SKml+Q=
github.com/filecoin-project/go-state-types v0.1.10/go.mod h1:UwGVoMsULoCK+bWjEdd/xLCvLAQFBC7EDT477SKml+Q=
github.com/filecoin-project/go-state-types v0.11.1/go.mod h1:SyNPwTsU7I22gL2r0OAPcImvLoTVfgRwdK/Y5rR1zz8=
github.com/filecoin-project/go-state-types v0.11.2-0.20230712101859-8f37624fa540/go.mod h1:SyNPwTsU7I22gL2r0OAPcImvLoTVfgRwdK/Y5rR1zz8=
github.com/filecoin-project/go-state-types v0.12.1 h1:/1ip/jXIP4QzWd3hlaQ7RGp1DHKKYG3+NOhd/r08UJY=
github.com/filecoin-project/go-state-types v0.12.1/go.mod h1:KOBGyvCalT8uHBS7KSKOVbjsilD90bBZHgLAqrzz6gU=
github.com/filecoin-project/go-statemachine v0.0.0-20200925024713-05bd7c71fbfe/go.mod h1:FGwQgZAt2Gh5mjlwJUlVB62JeYdo+if0xWxSEfBD9ig=

View File

@ -618,10 +618,10 @@ func TestFEVMRecursiveActorCall(t *testing.T) {
t.Run("n=251,r=32", testN(251, 32, exitcode.Ok))
t.Run("n=0,r=252", testN(0, 252, exitcode.Ok))
t.Run("n=251,r=166", testN(251, 166, exitcode.Ok))
t.Run("n=251,r=164", testN(251, 164, exitcode.Ok))
t.Run("n=0,r=253-fails", testN(0, 254, exitcode.ExitCode(33))) // 33 means transaction reverted
t.Run("n=251,r=167-fails", testN(251, 167, exitcode.ExitCode(33)))
t.Run("n=251,r=167-fails", testN(251, 165, exitcode.ExitCode(33)))
}
// TestFEVMRecursiveActorCallEstimate

View File

@ -258,7 +258,7 @@ func (n *Ensemble) MinerEnroll(minerNode *TestMiner, full *TestFullNode, opts ..
)
// Will use 2KiB sectors by default (default value of sectorSize).
proofType, err := miner.SealProofTypeFromSectorSize(options.sectorSize, n.genesis.version)
proofType, err := miner.SealProofTypeFromSectorSize(options.sectorSize, n.genesis.version, false)
require.NoError(n.t, err)
// Create the preseal commitment.

View File

@ -34,6 +34,7 @@ import (
"github.com/filecoin-project/lotus/chain/actors/builtin/datacap"
"github.com/filecoin-project/lotus/chain/actors/builtin/market"
"github.com/filecoin-project/lotus/chain/actors/builtin/miner"
"github.com/filecoin-project/lotus/chain/actors/builtin/system"
"github.com/filecoin-project/lotus/chain/actors/builtin/verifreg"
"github.com/filecoin-project/lotus/chain/consensus/filcns"
"github.com/filecoin-project/lotus/chain/state"
@ -301,7 +302,7 @@ func TestMigrationNV17(t *testing.T) {
minerInfo, err := testClient.StateMinerInfo(ctx, testMiner.ActorAddr, types.EmptyTSK)
require.NoError(t, err)
spt, err := miner.SealProofTypeFromSectorSize(minerInfo.SectorSize, network.Version17)
spt, err := miner.SealProofTypeFromSectorSize(minerInfo.SectorSize, network.Version17, false)
require.NoError(t, err)
preCommitParams := miner9.PreCommitSectorParams{
@ -762,3 +763,68 @@ waitForProof20:
require.Equal(t, v1proof, minerInfo.WindowPoStProofType)
}
func TestMigrationNV21(t *testing.T) {
kit.QuietMiningLogs()
nv21epoch := abi.ChainEpoch(100)
testClient, _, ens := kit.EnsembleMinimal(t, kit.MockProofs(),
kit.UpgradeSchedule(stmgr.Upgrade{
Network: network.Version20,
Height: -1,
}, stmgr.Upgrade{
Network: network.Version21,
Height: nv21epoch,
Migration: filcns.UpgradeActorsV12,
},
))
ens.InterconnectAll().BeginMining(10 * time.Millisecond)
clientApi := testClient.FullNode.(*impl.FullNodeAPI)
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
testClient.WaitTillChain(ctx, kit.HeightAtLeast(nv21epoch+5))
// Now that we have upgraded, we need to verify:
// - Sector info changes executed successfully
// - Direct data onboarding correct
bs := blockstore.NewAPIBlockstore(testClient)
ctxStore := gstStore.WrapBlockStore(ctx, bs)
currTs, err := clientApi.ChainHead(ctx)
require.NoError(t, err)
newStateTree, err := state.LoadStateTree(ctxStore, currTs.Blocks()[0].ParentStateRoot)
require.NoError(t, err)
require.Equal(t, types.StateTreeVersion5, newStateTree.Version())
// check the system actor
systemAct, err := newStateTree.GetActor(builtin.SystemActorAddr)
require.NoError(t, err)
systemCode, ok := actors.GetActorCodeID(actorstypes.Version12, manifest.SystemKey)
require.True(t, ok)
require.Equal(t, systemCode, systemAct.Code)
systemSt, err := system.Load(ctxStore, systemAct)
require.NoError(t, err)
manifest12Cid, ok := actors.GetManifest(actorstypes.Version12)
require.True(t, ok)
manifest12, err := actors.LoadManifest(ctx, manifest12Cid, ctxStore)
require.NoError(t, err)
require.Equal(t, manifest12.Data, systemSt.GetBuiltinActors())
// start post migration checks
//todo @aayush sector info changes
//todo @zen Direct data onboarding tests
}

View File

@ -88,7 +88,7 @@ func TestSectorImport(t *testing.T) {
require.NoError(t, err)
ver, err := client.StateNetworkVersion(ctx, types.EmptyTSK)
require.NoError(t, err)
spt, err := lminer.PreferredSealProofTypeFromWindowPoStType(ver, mi.WindowPoStProofType)
spt, err := lminer.PreferredSealProofTypeFromWindowPoStType(ver, mi.WindowPoStProofType, false)
require.NoError(t, err)
ssize, err := spt.SectorSize()

View File

@ -63,7 +63,7 @@ func TestSectorImportAfterPC2(t *testing.T) {
require.NoError(t, err)
ver, err := client.StateNetworkVersion(ctx, types.EmptyTSK)
require.NoError(t, err)
spt, err := lminer.PreferredSealProofTypeFromWindowPoStType(ver, mi.WindowPoStProofType)
spt, err := lminer.PreferredSealProofTypeFromWindowPoStType(ver, mi.WindowPoStProofType, false)
require.NoError(t, err)
ssize, err := spt.SectorSize()

View File

@ -18,6 +18,7 @@ import (
"github.com/filecoin-project/lotus/build"
"github.com/filecoin-project/lotus/chain/types"
"github.com/filecoin-project/lotus/itests/kit"
"github.com/filecoin-project/lotus/node/config"
"github.com/filecoin-project/lotus/node/impl"
sealing "github.com/filecoin-project/lotus/storage/pipeline"
)
@ -195,3 +196,30 @@ func TestPledgeMaxBatching(t *testing.T) {
t.Run("Force max prove commit aggregate size", runTest)
}
func TestPledgeSynth(t *testing.T) {
kit.QuietMiningLogs()
blockTime := 50 * time.Millisecond
runTest := func(t *testing.T, nSectors int) {
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
_, miner, ens := kit.EnsembleMinimal(t, kit.MutateSealingConfig(func(sc *config.SealingConfig) {
sc.UseSyntheticPoRep = true
})) // no mock proofs
ens.InterconnectAll().BeginMiningMustPost(blockTime)
miner.PledgeSectors(ctx, nSectors, 0, nil)
}
t.Run("1", func(t *testing.T) {
runTest(t, 1)
})
t.Run("3", func(t *testing.T) {
runTest(t, 3)
})
}

View File

@ -186,7 +186,10 @@ func (n *ProviderNodeAdapter) GetProofType(ctx context.Context, maddr address.Ad
return 0, err
}
return miner.PreferredSealProofTypeFromWindowPoStType(nver, mi.WindowPoStProofType)
// false because this variance is not consumed.
const configWantSynthetic = false
return miner.PreferredSealProofTypeFromWindowPoStType(nver, mi.WindowPoStProofType, configWantSynthetic)
}
func (n *ProviderNodeAdapter) SignBytes(ctx context.Context, signer address.Address, b []byte) (*crypto.Signature, error) {

View File

@ -158,6 +158,7 @@ func DefaultStorageMiner() *StorageMiner {
TerminateBatchMax: 100,
TerminateBatchWait: Duration(5 * time.Minute),
MaxSectorProveCommitsSubmittedPerEpoch: 20,
UseSyntheticPoRep: false,
},
Proving: ProvingConfig{

View File

@ -1295,6 +1295,14 @@ Submitting a smaller number of prove commits per epoch would reduce the possibil
Comment: ``,
},
{
Name: "UseSyntheticPoRep",
Type: "bool",
Comment: `UseSyntheticPoRep will reduce the amout of data held on disk in the WaitSeed phase to 32GiB
at the cost of having to precompute the synthetic challenges.
TODO: put estimated costs here`,
},
},
"Splitstore": []DocField{
{

View File

@ -429,6 +429,11 @@ type SealingConfig struct {
// todo TargetSealingSectors uint64
// todo TargetSectors - stop auto-pleding new sectors after this many sectors are sealed, default CC upgrade for deals sectors if above
// UseSyntheticPoRep will reduce the amout of data held on disk in the WaitSeed phase to 32GiB
// at the cost of having to precompute the synthetic challenges.
// TODO: put estimated costs here
UseSyntheticPoRep bool
}
type SealerConfig struct {

View File

@ -197,7 +197,7 @@ func (a *API) dealStarter(ctx context.Context, params *api.StartDealParams, isSt
return nil, xerrors.Errorf("failed to get network version: %w", err)
}
st, err := miner.PreferredSealProofTypeFromWindowPoStType(networkVersion, mi.WindowPoStProofType)
st, err := miner.PreferredSealProofTypeFromWindowPoStType(networkVersion, mi.WindowPoStProofType, false)
if err != nil {
return nil, xerrors.Errorf("failed to get seal proof type: %w", err)
}

View File

@ -157,7 +157,8 @@ func SealProofType(maddr dtypes.MinerAddress, fnapi v1api.FullNode) (abi.Registe
return 0, err
}
return miner.PreferredSealProofTypeFromWindowPoStType(networkVersion, mi.WindowPoStProofType)
// node seal proof type does not decide whether or not we use synthetic porep
return miner.PreferredSealProofTypeFromWindowPoStType(networkVersion, mi.WindowPoStProofType, false)
}
func AddressSelector(addrConf *config.MinerAddressConfig) func() (*ctladdr.AddressSelector, error) {
@ -1016,6 +1017,7 @@ func NewSetSealConfigFunc(r repo.LockedRepo) (dtypes.SetSealingConfigFunc, error
TerminateBatchMin: cfg.TerminateBatchMin,
TerminateBatchWait: config.Duration(cfg.TerminateBatchWait),
MaxSectorProveCommitsSubmittedPerEpoch: cfg.MaxSectorProveCommitsSubmittedPerEpoch,
UseSyntheticPoRep: cfg.UseSyntheticPoRep,
}
c.SetSealingConfig(newCfg)
})
@ -1060,6 +1062,7 @@ func ToSealingConfig(dealmakingCfg config.DealmakingConfig, sealingCfg config.Se
TerminateBatchMax: sealingCfg.TerminateBatchMax,
TerminateBatchMin: sealingCfg.TerminateBatchMin,
TerminateBatchWait: time.Duration(sealingCfg.TerminateBatchWait),
UseSyntheticPoRep: sealingCfg.UseSyntheticPoRep,
}
}

View File

@ -60,4 +60,6 @@ type Config struct {
TerminateBatchMax uint64
TerminateBatchMin uint64
TerminateBatchWait time.Duration
UseSyntheticPoRep bool
}

View File

@ -339,7 +339,12 @@ func (m *Sealing) currentSealProof(ctx context.Context) (abi.RegisteredSealProof
return 0, err
}
return lminer.PreferredSealProofTypeFromWindowPoStType(ver, mi.WindowPoStProofType)
c, err := m.getConfig()
if err != nil {
return 0, err
}
return lminer.PreferredSealProofTypeFromWindowPoStType(ver, mi.WindowPoStProofType, c.UseSyntheticPoRep)
}
func (m *Sealing) minerSector(spt abi.RegisteredSealProof, num abi.SectorNumber) storiface.SectorRef {

View File

@ -584,6 +584,7 @@ func (m *Sealing) handleCommitting(ctx statemachine.Context, sector SectorInfo)
porepProof, err = m.sealer.SealCommit2(sector.sealingCtx(ctx.Context()), m.minerSector(sector.SectorType, sector.SectorNumber), c2in)
if err != nil {
log.Errorw("Commit2 error", "error", err)
return ctx.Send(SectorComputeProofFailed{xerrors.Errorf("computing seal proof failed(2): %w", err)})
}
} else {

View File

@ -825,15 +825,49 @@ func (sb *Sealer) SealPreCommit2(ctx context.Context, sector storiface.SectorRef
return storiface.SectorCids{}, xerrors.Errorf("unmarshaling pc1 output: %w", err)
}
var ticket abi.SealRandomness
ti, found := p1odec["_lotus_SealRandomness"]
if abi.Synthetic[sector.ProofType] {
if !found {
return storiface.SectorCids{}, xerrors.Errorf("synthetic mode: ticket not found")
}
}
if found {
ticket, err = base64.StdEncoding.DecodeString(ti.(string))
ticket, err := base64.StdEncoding.DecodeString(ti.(string))
if err != nil {
return storiface.SectorCids{}, xerrors.Errorf("decoding ticket: %w", err)
}
if abi.Synthetic[sector.ProofType] {
// note: we generate synth porep challenges first because the C1 check below reads from those
err = ffi.GenerateSynthProofs(
sector.ProofType,
sealedCID,
unsealedCID,
paths.Cache,
paths.Sealed,
sector.ID.Number,
sector.ID.Miner, ticket,
[]abi.PieceInfo{{Size: abi.PaddedPieceSize(ssize), PieceCID: unsealedCID}})
if err != nil {
log.Warn("GenerateSynthProofs() failed: ", err)
log.Warnf("num:%d tkt:%v, sealedCID:%v, unsealedCID:%v", sector.ID.Number, ticket, sealedCID, unsealedCID)
return storiface.SectorCids{}, xerrors.Errorf("generate synth proofs: %w", err)
}
if err = ffi.ClearLayerData(ssize, paths.Cache); err != nil {
log.Warn("failed to GenerateSynthProofs(): ", err)
log.Warnf("num:%d tkt:%v, sealedCID:%v, unsealedCID:%v", sector.ID.Number, ticket, sealedCID, unsealedCID)
return storiface.SectorCids{
Unsealed: unsealedCID,
Sealed: sealedCID,
}, nil
// Note: non-fatal error.
}
}
for i := 0; i < PC2CheckRounds; i++ {
var sd [32]byte
_, _ = rand.Read(sd[:])
@ -889,6 +923,7 @@ func (sb *Sealer) SealCommit1(ctx context.Context, sector storiface.SectorRef, t
return nil, xerrors.Errorf("StandaloneSealCommit: %w", err)
}
return output, nil
}
@ -1078,6 +1113,13 @@ func (sb *Sealer) FinalizeSector(ctx context.Context, sector storiface.SectorRef
}
defer done()
if abi.Synthetic[sector.ProofType] {
if err = ffi.ClearSyntheticProofs(uint64(ssize), paths.Cache); err != nil {
log.Warn("Unable to delete Synth cache:", err)
// Pass-Thru on error.
}
}
return ffi.ClearCache(uint64(ssize), paths.Cache)
}
@ -1116,6 +1158,13 @@ func (sb *Sealer) FinalizeSectorInto(ctx context.Context, sector storiface.Secto
}
}
if abi.Synthetic[sector.ProofType] {
if err = ffi.ClearSyntheticProofs(uint64(ssize), dest); err != nil {
log.Warn("Unable to delete Synth cache:", err)
// Pass-Thru on error.
}
}
return ffi.ClearCache(uint64(ssize), dest)
}
@ -1132,6 +1181,12 @@ func (sb *Sealer) FinalizeReplicaUpdate(ctx context.Context, sector storiface.Se
}
defer done()
if abi.Synthetic[sector.ProofType] {
if err = ffi.ClearSyntheticProofs(uint64(ssize), paths.Cache); err != nil {
return xerrors.Errorf("clear synth cache: %w", err)
}
}
if err := ffi.ClearCache(uint64(ssize), paths.Cache); err != nil {
return xerrors.Errorf("clear cache: %w", err)
}
@ -1144,6 +1199,8 @@ func (sb *Sealer) FinalizeReplicaUpdate(ctx context.Context, sector storiface.Se
}
defer done()
// note: synth cache is not a thing for snapdeals
if err := ffi.ClearCache(uint64(ssize), paths.UpdateCache); err != nil {
return xerrors.Errorf("clear cache: %w", err)
}

View File

@ -1066,7 +1066,111 @@ func TestDCAPCloses(t *testing.T) {
require.Equal(t, "baga6ea4seaqeje7jy4hufnybpo7ckxzujaigqbcxhdjq7ojb4b6xzgqdugkyciq", c.PieceCID.String())
require.True(t, clr.closed)
})
}
func TestSealAndVerifySynth(t *testing.T) {
sealProofType = abi.RegisteredSealProof_StackedDrg2KiBV1_1_Feat_SyntheticPoRep
if testing.Short() {
t.Skip("skipping test in short mode")
}
defer requireFDsClosed(t, openFDs(t))
if runtime.NumCPU() < 10 && os.Getenv("CI") == "" { // don't bother on slow hardware
t.Skip("this is slow")
}
_ = os.Setenv("RUST_LOG", "info")
getGrothParamFileAndVerifyingKeys(sectorSize)
cdir, err := os.MkdirTemp("", "sbtest-c-")
if err != nil {
t.Fatal(err)
}
miner := abi.ActorID(123)
synthPorRepVProofsName := "syn-porep-vanilla-proofs.dat"
printFileList := func(stage string, expectSynthPorep bool) {
var hasSynthPorep bool
fmt.Println("----file list:", stage)
err := filepath.Walk(cdir, func(path string, info os.FileInfo, err error) error {
if strings.Contains(path, synthPorRepVProofsName) {
hasSynthPorep = true
}
fmt.Println(path)
return nil
})
if err != nil {
t.Fatal(err)
}
require.Equal(t, expectSynthPorep, hasSynthPorep)
fmt.Println("----")
}
sp := &basicfs.Provider{
Root: cdir,
}
sb, err := New(sp)
if err != nil {
t.Fatalf("%+v", err)
}
t.Cleanup(func() {
if t.Failed() {
fmt.Printf("not removing %s\n", cdir)
return
}
if err := os.RemoveAll(cdir); err != nil {
t.Error(err)
}
})
si := storiface.SectorRef{
ID: abi.SectorID{Miner: miner, Number: 1},
ProofType: sealProofType,
}
s := seal{ref: si}
start := time.Now()
s.precommit(t, sb, si, func() {})
printFileList("precommit", true)
precommit := time.Now()
s.commit(t, sb, func() {})
printFileList("commit", true)
commit := time.Now()
post(t, sb, nil, s)
printFileList("post", true)
epost := time.Now()
post(t, sb, nil, s)
if err := sb.FinalizeSector(context.TODO(), si); err != nil {
t.Fatalf("%+v", err)
}
printFileList("finalize", false)
s.unseal(t, sb, sp, si, func() {})
printFileList("unseal", false)
fmt.Printf("PreCommit: %s\n", precommit.Sub(start).String())
fmt.Printf("Commit: %s\n", commit.Sub(precommit).String())
fmt.Printf("EPoSt: %s\n", epost.Sub(commit).String())
}
type closeAssertReader struct {

View File

@ -587,13 +587,18 @@ func init() {
ResourceTable[sealtasks.TTDataCid][proof] = ResourceTable[sealtasks.TTAddPiece][abi.RegisteredSealProof_StackedDrg32GiBV1]
}
// V1_1 is the same as V1
// V1_1 and SynthethicpoRep is the same as V1
for _, m := range ResourceTable {
m[abi.RegisteredSealProof_StackedDrg2KiBV1_1] = m[abi.RegisteredSealProof_StackedDrg2KiBV1]
m[abi.RegisteredSealProof_StackedDrg2KiBV1_1_Feat_SyntheticPoRep] = m[abi.RegisteredSealProof_StackedDrg2KiBV1]
m[abi.RegisteredSealProof_StackedDrg8MiBV1_1] = m[abi.RegisteredSealProof_StackedDrg8MiBV1]
m[abi.RegisteredSealProof_StackedDrg8MiBV1_1_Feat_SyntheticPoRep] = m[abi.RegisteredSealProof_StackedDrg8MiBV1]
m[abi.RegisteredSealProof_StackedDrg512MiBV1_1] = m[abi.RegisteredSealProof_StackedDrg512MiBV1]
m[abi.RegisteredSealProof_StackedDrg512MiBV1_1_Feat_SyntheticPoRep] = m[abi.RegisteredSealProof_StackedDrg512MiBV1]
m[abi.RegisteredSealProof_StackedDrg32GiBV1_1] = m[abi.RegisteredSealProof_StackedDrg32GiBV1]
m[abi.RegisteredSealProof_StackedDrg32GiBV1_1_Feat_SyntheticPoRep] = m[abi.RegisteredSealProof_StackedDrg32GiBV1]
m[abi.RegisteredSealProof_StackedDrg64GiBV1_1] = m[abi.RegisteredSealProof_StackedDrg64GiBV1]
m[abi.RegisteredSealProof_StackedDrg64GiBV1_1_Feat_SyntheticPoRep] = m[abi.RegisteredSealProof_StackedDrg64GiBV1]
}
}