diff --git a/.github/workflows/butterflynet.yml b/.github/workflows/butterflynet.yml index b39f3ab74937..d878ae269e2e 100644 --- a/.github/workflows/butterflynet.yml +++ b/.github/workflows/butterflynet.yml @@ -30,7 +30,7 @@ jobs: env: # To minimize compile times: https://nnethercote.github.io/perf-book/build-configuration.html#minimizing-compile-times RUSTFLAGS: "-C linker=clang -C link-arg=-fuse-ld=lld" - run: mise run install --slim + run: mise run install --slim quick - name: Run butterflynet checks run: ./scripts/tests/butterflynet_check.sh timeout-minutes: ${{ fromJSON(env.SCRIPT_TIMEOUT_MINUTES) }} diff --git a/build/bootstrap/butterflynet b/build/bootstrap/butterflynet index 879c118f8e16..8eef6793e1a4 100644 --- a/build/bootstrap/butterflynet +++ b/build/bootstrap/butterflynet @@ -1,2 +1 @@ -/dns4/bootstrap-0.butterfly.fildev.network/tcp/1347/p2p/12D3KooWKxHctsqQ41MZ64GYqz5r4DUF3Hkj9SMVEcHXdRqvWCAx -/dns4/bootstrap-1.butterfly.fildev.network/tcp/1347/p2p/12D3KooWN69aMyMuf9VrsRir5gd3xkT5q5p9NGYLFSXBTn1xkVSN +/dnsaddr/bootstrap.butterfly.fildev.network diff --git a/build/manifest.json b/build/manifest.json index e2bc94e3cc3f..15ec997a238d 100644 --- a/build/manifest.json +++ b/build/manifest.json @@ -1246,161 +1246,69 @@ "network": { "type": "butterflynet" }, - "version": "v15.0.0-rc1", - "bundle_cid": "bafy2bzacearjal5rsmzloz3ny7aoju2rgw66wgxdrydgg27thcsazbmf5qihq", - "manifest": { - "actors": [ - [ - "system", - 1, - "bafk2bzacebf6qpnaem4d3kku74hyizal7rfqmxvngvnerq3gxmyqvnib4ho22" - ], - [ - "init", - 2, - "bafk2bzacedtpna72vpmt6yyqx5lxersccnmv2aq2odfp2f5v7o2cvl6zxgrtg" - ], - [ - "cron", - 3, - "bafk2bzacediarrpbvwmkch4axjzxlu7lvpjmee5og7q2dxfqu4kkir2p2qusy" - ], - [ - "account", - 4, - "bafk2bzaceapjxl4kobnxn267u42nh2feouubkxcm62vzrk2nrfkqmtz6rgfw4" - ], - [ - "storagepower", - 5, - "bafk2bzacebdwg62s5fwmctrtsoz77qx3qk3hj5eu45aiamryphhcak65od4xe" - ], - [ - "storageminer", - 6, - "bafk2bzaceb2jyz6tx5gdmu66smksb544wrhqwgub45tq3qltc3wiv64zsbqoa" - ], - [ - "storagemarket", - 7, - "bafk2bzacecbx6yzird3wp3lkyroqizp3g5lsysh5qijstfwe4sjngbpo3lx3q" - ], - [ - "paymentchannel", - 8, - "bafk2bzaceatyws2kngfwau6o7c74cl2ogcdm4aopdaozu7r76ymtvrhuk3a4k" - ], - [ - "multisig", - 9, - "bafk2bzacebz3uwa4g5tyg5zb6nad24gnqwlplrlvakdwlytznqfqrnulpg7gm" - ], - [ - "reward", - 10, - "bafk2bzacecxt3jqyiyrqhbdr4eavgkmoijkoundxap7rdbw3g6j62t2hak23u" - ], - [ - "verifiedregistry", - 11, - "bafk2bzacebxppwtgpstn55klmiux64pwekibcapv6v26nbfrrateth5zzsdic" - ], - [ - "datacap", - 12, - "bafk2bzaceb4lpszr3axumf6f5ane5tlyj76zimptvt3lx7zpu5lx57zmua4dw" - ], - [ - "placeholder", - 13, - "bafk2bzacedfvut2myeleyq67fljcrw4kkmn5pb5dpyozovj7jpoez5irnc3ro" - ], - [ - "evm", - 14, - "bafk2bzacedj7idaxudsiwwvmgluhzvzzvcr7u2r2cfymagjq7amegxfs3oyim" - ], - [ - "eam", - 15, - "bafk2bzaceaxjorcph7nmcgfgyv225s5y44xpswtp4b5744dm7kfxiztgf4ti4" - ], - [ - "ethaccount", - 16, - "bafk2bzacebz3y3vjqrfk2x2koj733cblhyjqajldc7dfiu7jud6g64b4bzqqc" - ] - ], - "actor_list_cid": "bafy2bzaceck4a2qhrgpqtba5kpe4nhv4kcp5whuvltv67453delevwxid5eiu" - } - }, - { - "network": { - "type": "butterflynet" - }, - "version": "v16.0.1", - "bundle_cid": "bafy2bzaceda5lc7qrwp2hdm6s6erppwuydsfqrhbgld7juixalk342inqimbo", + "version": "v17.0.0", + "bundle_cid": "bafy2bzacedzjwguwuihh4tptzfkkwaj3naamrnklbaixn2wfzqh67twwp56pi", "manifest": { "actors": [ [ "system", 1, - "bafk2bzacebxmdwaw5rm2apbfqgl2yt25n4abpxhwoy3xou6j6z7aiozsvm722" + "bafk2bzacebiwv5xckqaesetmfyvvptoscnzy3mh3vdbwvmhz5mf5cn3idi3wc" ], [ "init", 2, - "bafk2bzaced6lrgkw4dnxyc72beeyct4tgjup6syt7j2llvlwtkqi3eb5ncyzu" + "bafk2bzacebd5bwoxsktpxvmlbi4kzwkiqtte7axyxt2kew4fgrglyvy7sodrc" ], [ "cron", 3, - "bafk2bzaceckhx3amza3xyxvw4x7xg7w7itsokvweiylys2mlcvvvi64uhyfhi" + "bafk2bzacea4mconfwssrytrhiwngqhraay3hn2f2mmnzs3f6x7t6st6jjskg4" ], [ "account", 4, - "bafk2bzacea4fxakv3zww2jb7aaa4v6w7usbcxho7kpc6xpho66ltny72vnzki" + "bafk2bzacecsyxlh7dvr5zkwnrqm72mgwnserkt7moaut737tig3pbkgtnw62o" ], [ "storagepower", 5, - "bafk2bzacecoi2bu2iipdnkx3pvjbe4d5pbmtcef4lxsdbv7hchgnbbvb6sy6k" + "bafk2bzacebye45hai3qedkqyr4r26ywupslx6hu5a2q6ewdg2tlxbf5fzes5y" ], [ "storageminer", 6, - "bafk2bzacebtzpyy56k4ehwgxbil5ryegys4qgbw6dnsnk3y7qf5y7le2hedoe" + "bafk2bzacech2msfuf6mnbde5r5mrggftzsyg4k7g7cegltqooyuo4pp7kusp4" ], [ "storagemarket", 7, - "bafk2bzacebrch7gi6wmzgipnx4jiwgpq2ogul6fkgfkqefoujwxsfp7i3wsic" + "bafk2bzaceblxfbbumzr2f5ehirtx2rgvgawebdxwra3okfpradd5os2kye5su" ], [ "paymentchannel", 8, - "bafk2bzaceakx75ascqt3cpgcgjjjo3lzj6etlit7rvy5r2rnpg35pn5lxdkho" + "bafk2bzacedrrz47xktsdmpysm42rptqzdt7lqtbsbvtatac2axead4bmlncvk" ], [ "multisig", 9, - "bafk2bzacebwgwsjsglawtmvmb4fmvagmyjfjvky2mkipk3ysqt2cylrut4pna" + "bafk2bzacea6lwslarfsjcwptiaca42cyccrehbowgstwkgnxh77qp5zda5jza" ], [ "reward", 10, - "bafk2bzaceagyezzhrgwp55i6zpj3qkyprebhdmszn725kdl73z6awpse2ek4m" + "bafk2bzacearim4ftupnzlfz7h6feozr3yymtyacs4ahdwfjqjceilhdhzr2bm" ], [ "verifiedregistry", 11, - "bafk2bzaceahaut5mk7ndk3yi3uvsalpqpv7h7cdjl7vhkyxmkcypvq6ynn2mk" + "bafk2bzacechruhdcrrx2ixvfu6daewg2s2iq2rrowv54fah53qjarmco7c3xa" ], [ "datacap", 12, - "bafk2bzacecx6cqocsn6e3ouq4tgumrlbazrnydp7bo2rxrtfgbd7soerqplxs" + "bafk2bzaceccqejcvj6ip5xpcqr3fosc5sgue4ro6gi63j55itd2hczzawotxg" ], [ "placeholder", @@ -1410,89 +1318,89 @@ [ "evm", 14, - "bafk2bzaced2i4ez5megwfrlxxv7akcf27hu2fezj3ipiy66skvagvzc5jtxlo" + "bafk2bzacedpxvlqericktqetgjkgsjsfaijwcbdcxqn2nmenxnlfrxirwgd7y" ], [ "eam", 15, - "bafk2bzaced54tzjl37qsxbb2cml6l2hlupaplzdrdamq7kxihcikbd4goezg4" + "bafk2bzaceabxund5zkqtgdwzjkcqnl25mjuzr3icodj7kgsvpt6oakcscb264" ], [ "ethaccount", 16, - "bafk2bzacedtz6bt2fex7xdm2tmov5kwexoayesguhx5i3ohjyw23sbbwrbokg" + "bafk2bzacebmtjmyzm6f6w33vmoq6iwrffqh6jgtgexj4mpm74j6dqvwnq3576" ] ], - "actor_list_cid": "bafy2bzacedai5hnued57xpz434xl6afmlycejoj7ac7c36u3tcegp6buc6nj6" + "actor_list_cid": "bafy2bzaceaijhx4azr3htpg4dlx67ryv7j24mxrwwqhovj4psr2djvpiyiktq" } }, { "network": { "type": "butterflynet" }, - "version": "v17.0.0", - "bundle_cid": "bafy2bzacedzjwguwuihh4tptzfkkwaj3naamrnklbaixn2wfzqh67twwp56pi", + "version": "v18.0.0-rc1", + "bundle_cid": "bafy2bzacec3ikcjko4zok3qoe7nxnqilx2mj65tp25kkkbf7bwkejflfrdpwo", "manifest": { "actors": [ [ "system", 1, - "bafk2bzacebiwv5xckqaesetmfyvvptoscnzy3mh3vdbwvmhz5mf5cn3idi3wc" + "bafk2bzacea66s5cn4oyxmejwjoccs63zlabqkzkdffeevfds7bkaxno5gsmra" ], [ "init", 2, - "bafk2bzacebd5bwoxsktpxvmlbi4kzwkiqtte7axyxt2kew4fgrglyvy7sodrc" + "bafk2bzacedabofdxxiien5hbyfkye7vjk3nj2jut25a6ci3dkgw75fiokooh6" ], [ "cron", 3, - "bafk2bzacea4mconfwssrytrhiwngqhraay3hn2f2mmnzs3f6x7t6st6jjskg4" + "bafk2bzaceate4yymxapf3blbcvqufp4pwe3hrflf25xvzsbgxb74xasw4poxs" ], [ "account", 4, - "bafk2bzacecsyxlh7dvr5zkwnrqm72mgwnserkt7moaut737tig3pbkgtnw62o" + "bafk2bzacedyssi2sxrsemgbqkets5zljhinr4n74hkegcmmmaeelmg6yjk7tg" ], [ "storagepower", 5, - "bafk2bzacebye45hai3qedkqyr4r26ywupslx6hu5a2q6ewdg2tlxbf5fzes5y" + "bafk2bzaced5hxvjvdwprscvbmrgfv6ynuzp3dlcgoaqw5bwy55u4t3kkm4sq2" ], [ "storageminer", 6, - "bafk2bzacech2msfuf6mnbde5r5mrggftzsyg4k7g7cegltqooyuo4pp7kusp4" + "bafk2bzacedck7to4lqrdaiaca7abanb5ya5rlmgyof52pusss46n2xjjrp5t2" ], [ "storagemarket", 7, - "bafk2bzaceblxfbbumzr2f5ehirtx2rgvgawebdxwra3okfpradd5os2kye5su" + "bafk2bzacebdm75sdm44sg76c46dk25567kdbcsgaf37s6xjsqbvjqbp6wv6ga" ], [ "paymentchannel", 8, - "bafk2bzacedrrz47xktsdmpysm42rptqzdt7lqtbsbvtatac2axead4bmlncvk" + "bafk2bzaced34rbwfwydxhp7cc2urtn5osz7x5cpklqwj5qbin2mrnw4a55w2e" ], [ "multisig", 9, - "bafk2bzacea6lwslarfsjcwptiaca42cyccrehbowgstwkgnxh77qp5zda5jza" + "bafk2bzacecg6i7epskoa372veotujg2cnxth4dufhcbeyxbmg6tbohbd473mq" ], [ "reward", 10, - "bafk2bzacearim4ftupnzlfz7h6feozr3yymtyacs4ahdwfjqjceilhdhzr2bm" + "bafk2bzacecc3lpet56znl6n5ffhy72fd6xm5gok5ojibfjj3ma5lnbsxal7oq" ], [ "verifiedregistry", 11, - "bafk2bzacechruhdcrrx2ixvfu6daewg2s2iq2rrowv54fah53qjarmco7c3xa" + "bafk2bzacec2lcoui6qza5y7ufbr67zkdn6wg3awxzvywjgrocam35mgggzxgw" ], [ "datacap", 12, - "bafk2bzaceccqejcvj6ip5xpcqr3fosc5sgue4ro6gi63j55itd2hczzawotxg" + "bafk2bzaceb7vxzbmybd3o3xvsyd22nfp4ym6siau5r6xaao3l73c4plksfgsw" ], [ "placeholder", @@ -1502,20 +1410,20 @@ [ "evm", 14, - "bafk2bzacedpxvlqericktqetgjkgsjsfaijwcbdcxqn2nmenxnlfrxirwgd7y" + "bafk2bzacedmvztlcgisrsjyt7bjzmxna5cnnnywib3zat66j2ui2u5edsgrb4" ], [ "eam", 15, - "bafk2bzaceabxund5zkqtgdwzjkcqnl25mjuzr3icodj7kgsvpt6oakcscb264" + "bafk2bzaceajqrtd5hm4x2ojsphhqpdx2pegtzx2xy6hoymzm6dbtbkaqovcsc" ], [ "ethaccount", 16, - "bafk2bzacebmtjmyzm6f6w33vmoq6iwrffqh6jgtgexj4mpm74j6dqvwnq3576" + "bafk2bzacebirdvqpv55vs7zyvnaebxbhguwvt7apjeelavxhjd65qljh3tyn2" ] ], - "actor_list_cid": "bafy2bzaceaijhx4azr3htpg4dlx67ryv7j24mxrwwqhovj4psr2djvpiyiktq" + "actor_list_cid": "bafy2bzaceb2nnaeyepfylvs733l3x3jat5mxzni3x43siiqzu22faluvsddem" } }, { diff --git a/src/networks/actors_bundle.rs b/src/networks/actors_bundle.rs index 2b19fef2a295..e628ebc53cdd 100644 --- a/src/networks/actors_bundle.rs +++ b/src/networks/actors_bundle.rs @@ -85,9 +85,8 @@ pub static ACTOR_BUNDLES: LazyLock> = LazyLock::new(|| { "bafy2bzacebc7zpsrihpyd2jdcvmegbbk6yhzkifre3hxtoul5wdxxklbwitry" @ "v16.0.0-rc3" for "calibrationnet", "bafy2bzacecqtwq6hjhj2zy5gwjp76a4tpcg2lt7dps5ycenvynk2ijqqyo65e" @ "v16.0.1" for "calibrationnet", "bafy2bzacecn64rlb52rjsvgopnidz6w42z3zobmjxqek5s4xqjh3ly47rcurg" @ "v17.0.0" for "calibrationnet", - "bafy2bzacearjal5rsmzloz3ny7aoju2rgw66wgxdrydgg27thcsazbmf5qihq" @ "v15.0.0-rc1" for "butterflynet", - "bafy2bzaceda5lc7qrwp2hdm6s6erppwuydsfqrhbgld7juixalk342inqimbo" @ "v16.0.1" for "butterflynet", "bafy2bzacedzjwguwuihh4tptzfkkwaj3naamrnklbaixn2wfzqh67twwp56pi" @ "v17.0.0" for "butterflynet", + "bafy2bzacec3ikcjko4zok3qoe7nxnqilx2mj65tp25kkkbf7bwkejflfrdpwo" @ "v18.0.0-rc1" for "butterflynet", "bafy2bzacedozk3jh2j4nobqotkbofodq4chbrabioxbfrygpldgoxs3zwgggk" @ "v9.0.3" for "devnet", "bafy2bzacebzz376j5kizfck56366kdz5aut6ktqrvqbi3efa2d4l2o2m653ts" @ "v10.0.0" for "devnet", "bafy2bzaceay35go4xbjb45km6o46e5bib3bi46panhovcbedrynzwmm3drr4i" @ "v11.0.0" for "devnet", diff --git a/src/networks/butterflynet/mod.rs b/src/networks/butterflynet/mod.rs index 34a1d196012f..2c0141490902 100644 --- a/src/networks/butterflynet/mod.rs +++ b/src/networks/butterflynet/mod.rs @@ -21,7 +21,7 @@ use super::{ /// Well-known network names. pub const NETWORK_COMMON_NAME: &str = "butterflynet"; -pub const GENESIS_NETWORK_VERSION: NetworkVersion = NetworkVersion::V24; +pub const GENESIS_NETWORK_VERSION: NetworkVersion = NetworkVersion::V27; /// Fetches the genesis CAR from the local database or downloads it if it does not exist. /// The result bytes may be compressed. @@ -43,20 +43,20 @@ pub async fn fetch_genesis(db: &DB) -> anyhow::Result /// Genesis CID pub static GENESIS_CID: LazyLock = LazyLock::new(|| { - Cid::from_str("bafy2bzacedmrdladdvj6ghy2ty4gqgu35vcta3brag3h7qo63sgybg4iwu6ou").unwrap() + Cid::from_str("bafy2bzaceakkgnqbuam2qoyds57f4h6ennt3o5or5ek3i3a4qpetirt7et5jw").unwrap() }); /// Compressed genesis file. It is compressed with zstd and cuts the download size by 80% (from 10 MB to 2 MB). static GENESIS_URL: LazyLock = LazyLock::new(|| { - "https://forest-snapshots.fra1.cdn.digitaloceanspaces.com/genesis/butterflynet-bafy2bzacedmrdladdvj6ghy2ty4gqgu35vcta3brag3h7qo63sgybg4iwu6ou.car.zst" + "https://forest-snapshots.fra1.cdn.digitaloceanspaces.com/genesis/butterflynet-bafy2bzaceakkgnqbuam2qoyds57f4h6ennt3o5or5ek3i3a4qpetirt7et5jw.car.zst" .parse() .expect("hard-coded URL must parse") }); /// Alternative URL for the genesis file. This is hosted on the `lotus` repository. -/// `` +/// `` static GENESIS_URL_ALT: LazyLock = LazyLock::new(|| { - "https://github.com/filecoin-project/lotus/raw/8d769c51dcaa165d90c3a0b2d36b93c644db8a13/build/genesis/butterflynet.car.zst".parse().expect("hard-coded URL must parse") + "https://github.com/filecoin-project/lotus/raw/76d4ca672262105bf406ef2f0b54ed69ea39636f/build/genesis/butterflynet.car.zst".parse().expect("hard-coded URL must parse") }); pub(crate) const MINIMUM_CONSENSUS_POWER: i64 = 2 << 30; @@ -102,11 +102,11 @@ pub static HEIGHT_INFOS: LazyLock> = LazyLock::new(| make_height!(Dragon, -25), make_height!(Phoenix, i64::MIN), make_height!(Waffle, -26), - make_height!(TukTuk, -27, get_bundle_cid("v15.0.0-rc1")), - make_height!(Teep, 50, get_bundle_cid("v16.0.1")), - make_height!(Tock, 100), - make_height!(GoldenWeek, 200, get_bundle_cid("v17.0.0")), - make_height!(FireHorse, i64::MAX), + make_height!(TukTuk, -27), + make_height!(Teep, -28), + make_height!(Tock, -29), + make_height!(GoldenWeek, -30), + make_height!(FireHorse, 960, get_bundle_cid("v18.0.0-rc1")), ]) }); diff --git a/src/state_migration/mod.rs b/src/state_migration/mod.rs index 26ed23a8d078..021a91aec860 100644 --- a/src/state_migration/mod.rs +++ b/src/state_migration/mod.rs @@ -69,10 +69,7 @@ where ] } NetworkChain::Butterflynet => { - vec![ - (Height::Teep, nv25::run_migration::), - (Height::GoldenWeek, nv27::run_migration::), - ] + vec![(Height::FireHorse, nv28::run_migration::)] } NetworkChain::Devnet(_) => { vec![ diff --git a/tests/cmd_state_migration_tests.rs b/tests/cmd_state_migration_tests.rs index e89e1517abf6..997efe8eb200 100644 --- a/tests/cmd_state_migration_tests.rs +++ b/tests/cmd_state_migration_tests.rs @@ -32,5 +32,5 @@ fn state_migration_generate_actors_metadata() { // - the bundle list was updated and the manifest was not (this is ok, just update the manifest), // - the manifest generation is non-deterministic (this is bad), // - an existing bundle was updated under the same tag (this is bad, it should be immutable). - assert_eq!(json, manifest); + assert_eq!(json.trim(), manifest.trim()); }