From 4e00a9002f3afbd9522cc0ccb179f416bf67c1ab Mon Sep 17 00:00:00 2001 From: Hubert Bugaj Date: Mon, 8 Sep 2025 09:52:02 +0200 Subject: [PATCH] feat: NV27 butterflynet --- build/bootstrap/butterflynet | 3 +- build/manifest.json | 92 ++++++++++++++++++++++++++++++++ src/networks/actors_bundle.rs | 1 + src/networks/butterflynet/mod.rs | 18 +++---- src/state_migration/mod.rs | 7 +-- 5 files changed, 106 insertions(+), 15 deletions(-) diff --git a/build/bootstrap/butterflynet b/build/bootstrap/butterflynet index 8eef6793e1a4..879c118f8e16 100644 --- a/build/bootstrap/butterflynet +++ b/build/bootstrap/butterflynet @@ -1 +1,2 @@ -/dnsaddr/bootstrap.butterfly.fildev.network +/dns4/bootstrap-0.butterfly.fildev.network/tcp/1347/p2p/12D3KooWKxHctsqQ41MZ64GYqz5r4DUF3Hkj9SMVEcHXdRqvWCAx +/dns4/bootstrap-1.butterfly.fildev.network/tcp/1347/p2p/12D3KooWN69aMyMuf9VrsRir5gd3xkT5q5p9NGYLFSXBTn1xkVSN diff --git a/build/manifest.json b/build/manifest.json index 444af73c2fde..028b069ceb01 100644 --- a/build/manifest.json +++ b/build/manifest.json @@ -1334,6 +1334,98 @@ "actor_list_cid": "bafy2bzacedai5hnued57xpz434xl6afmlycejoj7ac7c36u3tcegp6buc6nj6" } }, + { + "network": { + "type": "butterflynet" + }, + "version": "v17.0.0-rc1", + "bundle_cid": "bafy2bzacedzjwguwuihh4tptzfkkwaj3naamrnklbaixn2wfzqh67twwp56pi", + "manifest": { + "actors": [ + [ + "system", + 1, + "bafk2bzacebiwv5xckqaesetmfyvvptoscnzy3mh3vdbwvmhz5mf5cn3idi3wc" + ], + [ + "init", + 2, + "bafk2bzacebd5bwoxsktpxvmlbi4kzwkiqtte7axyxt2kew4fgrglyvy7sodrc" + ], + [ + "cron", + 3, + "bafk2bzacea4mconfwssrytrhiwngqhraay3hn2f2mmnzs3f6x7t6st6jjskg4" + ], + [ + "account", + 4, + "bafk2bzacecsyxlh7dvr5zkwnrqm72mgwnserkt7moaut737tig3pbkgtnw62o" + ], + [ + "storagepower", + 5, + "bafk2bzacebye45hai3qedkqyr4r26ywupslx6hu5a2q6ewdg2tlxbf5fzes5y" + ], + [ + "storageminer", + 6, + "bafk2bzacech2msfuf6mnbde5r5mrggftzsyg4k7g7cegltqooyuo4pp7kusp4" + ], + [ + "storagemarket", + 7, + "bafk2bzaceblxfbbumzr2f5ehirtx2rgvgawebdxwra3okfpradd5os2kye5su" + ], + [ + "paymentchannel", + 8, + "bafk2bzacedrrz47xktsdmpysm42rptqzdt7lqtbsbvtatac2axead4bmlncvk" + ], + [ + "multisig", + 9, + "bafk2bzacea6lwslarfsjcwptiaca42cyccrehbowgstwkgnxh77qp5zda5jza" + ], + [ + "reward", + 10, + "bafk2bzacearim4ftupnzlfz7h6feozr3yymtyacs4ahdwfjqjceilhdhzr2bm" + ], + [ + "verifiedregistry", + 11, + "bafk2bzacechruhdcrrx2ixvfu6daewg2s2iq2rrowv54fah53qjarmco7c3xa" + ], + [ + "datacap", + 12, + "bafk2bzaceccqejcvj6ip5xpcqr3fosc5sgue4ro6gi63j55itd2hczzawotxg" + ], + [ + "placeholder", + 13, + "bafk2bzacedfvut2myeleyq67fljcrw4kkmn5pb5dpyozovj7jpoez5irnc3ro" + ], + [ + "evm", + 14, + "bafk2bzacedpxvlqericktqetgjkgsjsfaijwcbdcxqn2nmenxnlfrxirwgd7y" + ], + [ + "eam", + 15, + "bafk2bzaceabxund5zkqtgdwzjkcqnl25mjuzr3icodj7kgsvpt6oakcscb264" + ], + [ + "ethaccount", + 16, + "bafk2bzacebmtjmyzm6f6w33vmoq6iwrffqh6jgtgexj4mpm74j6dqvwnq3576" + ] + ], + "actor_list_cid": "bafy2bzaceaijhx4azr3htpg4dlx67ryv7j24mxrwwqhovj4psr2djvpiyiktq" + } + }, { "network": { "type": "devnet", diff --git a/src/networks/actors_bundle.rs b/src/networks/actors_bundle.rs index c2bf177d212d..8864b9e0ffab 100644 --- a/src/networks/actors_bundle.rs +++ b/src/networks/actors_bundle.rs @@ -86,6 +86,7 @@ pub static ACTOR_BUNDLES: LazyLock> = LazyLock::new(|| { "bafy2bzacecqtwq6hjhj2zy5gwjp76a4tpcg2lt7dps5ycenvynk2ijqqyo65e" @ "v16.0.1" for "calibrationnet", "bafy2bzacearjal5rsmzloz3ny7aoju2rgw66wgxdrydgg27thcsazbmf5qihq" @ "v15.0.0-rc1" for "butterflynet", "bafy2bzaceda5lc7qrwp2hdm6s6erppwuydsfqrhbgld7juixalk342inqimbo" @ "v16.0.1" for "butterflynet", + "bafy2bzacedzjwguwuihh4tptzfkkwaj3naamrnklbaixn2wfzqh67twwp56pi" @ "v17.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 f3b3a28e495b..f65475557a42 100644 --- a/src/networks/butterflynet/mod.rs +++ b/src/networks/butterflynet/mod.rs @@ -9,10 +9,7 @@ use std::sync::LazyLock; use url::Url; use crate::{ - db::SettingsStore, - eth::EthChainId, - make_height, - shim::{clock::EPOCHS_IN_DAY, version::NetworkVersion}, + db::SettingsStore, eth::EthChainId, make_height, shim::version::NetworkVersion, utils::net::http_get, }; @@ -46,12 +43,12 @@ pub async fn fetch_genesis(db: &DB) -> anyhow::Result /// Genesis CID pub static GENESIS_CID: LazyLock = LazyLock::new(|| { - Cid::from_str("bafy2bzacec4thmmboc5ye5lionzlyuvd4rfncggwdzrbbvqcepdrexny5qrx2").unwrap() + Cid::from_str("bafy2bzacedmrdladdvj6ghy2ty4gqgu35vcta3brag3h7qo63sgybg4iwu6ou").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-bafy2bzacec4thmmboc5ye5lionzlyuvd4rfncggwdzrbbvqcepdrexny5qrx2.car.zst" + "https://forest-snapshots.fra1.cdn.digitaloceanspaces.com/genesis/butterflynet-bafy2bzacedmrdladdvj6ghy2ty4gqgu35vcta3brag3h7qo63sgybg4iwu6ou.car.zst" .parse() .expect("hard-coded URL must parse") }); @@ -59,7 +56,7 @@ static GENESIS_URL: LazyLock = LazyLock::new(|| { /// 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/c6068b60c526d44270bfc5d612045f0b27322dfb/build/genesis/butterflynet.car.zst".parse().expect("hard-coded URL must parse") + "https://github.com/filecoin-project/lotus/raw/8d769c51dcaa165d90c3a0b2d36b93c644db8a13/build/genesis/butterflynet.car.zst".parse().expect("hard-coded URL must parse") }); pub(crate) const MINIMUM_CONSENSUS_POWER: i64 = 2 << 30; @@ -106,10 +103,9 @@ pub static HEIGHT_INFOS: LazyLock> = LazyLock::new(| make_height!(Phoenix, i64::MIN), make_height!(Waffle, -26), make_height!(TukTuk, -27, get_bundle_cid("v15.0.0-rc1")), - make_height!(Teep, 100, get_bundle_cid("v16.0.1")), - make_height!(Tock, 100 + 2 * EPOCHS_IN_DAY), - // TODO(forest): https://github.com/ChainSafe/forest/issues/6022 - make_height!(GoldenWeek, i64::MAX, get_bundle_cid("v16.0.1")), + make_height!(Teep, 50, get_bundle_cid("v16.0.1")), + make_height!(Tock, 100), + make_height!(GoldenWeek, 200, get_bundle_cid("v17.0.0-rc1")), ]) }); diff --git a/src/state_migration/mod.rs b/src/state_migration/mod.rs index c37ba288c6b4..fc711589b17a 100644 --- a/src/state_migration/mod.rs +++ b/src/state_migration/mod.rs @@ -70,9 +70,10 @@ where ] } NetworkChain::Butterflynet => { - vec![(Height::Teep, nv25::run_migration::)] - // TODO(forest): https://github.com/ChainSafe/forest/issues/6022 - // (Height::GoldenWeek, nv27::run_migration::), + vec![ + (Height::Teep, nv25::run_migration::), + (Height::GoldenWeek, nv27::run_migration::), + ] } NetworkChain::Devnet(_) => { vec![