diff --git a/CHANGELOG.md b/CHANGELOG.md index 145ac01a96a2..b12437a44fa5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -29,6 +29,8 @@ ### Added +- [#6913](https://github.com/ChainSafe/forest/issues/6913): Added support for NV28 for devnets. Use `FOREST_FIREHORSE_HEIGHT` environment variable to set the upgrade height. Note that `FIP-0115` is not yet automatically activated with this change. + ### Changed ### Removed diff --git a/build/manifest.json b/build/manifest.json index b79befdab387..e2bc94e3cc3f 100644 --- a/build/manifest.json +++ b/build/manifest.json @@ -2335,6 +2335,99 @@ "actor_list_cid": "bafy2bzacebtphhsu3tbrybn4gmjbbwhwhviwmeln4vgxhq7iuttfxzeryxvo4" } }, + { + "network": { + "type": "devnet", + "name": "devnet" + }, + "version": "v18.0.0-rc1", + "bundle_cid": "bafy2bzacedgr2tg3uadekvxcuxpazjss3e6nf5tocs6n6e4nbagm6ti2npfey", + "manifest": { + "actors": [ + [ + "system", + 1, + "bafk2bzacea22c2zrjumofpcirjkyoo7cmr4symweilq3drrmgpm6265tbm7fo" + ], + [ + "init", + 2, + "bafk2bzacecpmpf4k7a3lyqfjozyznvzs2qxwb3nbi3x6n4u5jk5p74uqkxgfs" + ], + [ + "cron", + 3, + "bafk2bzacedwjj3ooxg6y4grohzeowxjgrdj5kedp64t7mbj56eseubykpmixe" + ], + [ + "account", + 4, + "bafk2bzacedx7jbhdhhtolepjm5x7gzm6rplzfjdeiz44uno2jcozveuglu42e" + ], + [ + "storagepower", + 5, + "bafk2bzacebgwwl5j7qbewhr3hejzy5d7td26n245ww5222unoqclgdf7seehc" + ], + [ + "storageminer", + 6, + "bafk2bzaceamtc7wqpxthlrybxfydcqcjb37yrrhngu72xpm6ulp23v724tf3s" + ], + [ + "storagemarket", + 7, + "bafk2bzacebrbc3f65nptladzpfq22f7hitmmojq3j744rmzoqgfrzf3ancfz2" + ], + [ + "paymentchannel", + 8, + "bafk2bzaced5e4vhrno2b6hvc5zmvk5stx33qxyq4qntuiz5obka2no4bxtxie" + ], + [ + "multisig", + 9, + "bafk2bzacecg7qzud3mvlgljgazspwvq4vvzp7sdzewb5ccocekc2r422oevxg" + ], + [ + "reward", + 10, + "bafk2bzacedat6wbjrkkmfixoo6xqpbbvvtqd57u37owwmykdu3yeybyjj7vmi" + ], + [ + "verifiedregistry", + 11, + "bafk2bzacedwssd5h4bmsoz2gfximmhm7kkvspc6zcx6y6trsnncbqsah454ty" + ], + [ + "datacap", + 12, + "bafk2bzacedvxo5fgzxrplxzbg2y4krqvlnef6fvr3ckobgcwkseme5zxm3tf4" + ], + [ + "placeholder", + 13, + "bafk2bzacedfvut2myeleyq67fljcrw4kkmn5pb5dpyozovj7jpoez5irnc3ro" + ], + [ + "evm", + 14, + "bafk2bzacedkqtsnb3he4s4yhlul52grqmebor4ri3yadlpv3lsxmfbx55yysc" + ], + [ + "eam", + 15, + "bafk2bzaceakhdu24zwokc2ogsh2247bodudrin562tvq3i5qjemv5ntgnbk2o" + ], + [ + "ethaccount", + 16, + "bafk2bzaced5vbq325rjgf3nwlqffu7whe4pvpbzcwwptaiyfqtvaybjoidana" + ] + ], + "actor_list_cid": "bafy2bzaced4qgmabr2qprgnp7c6v66dbry7adat75nqjpnootd3ggaw6crti6" + } + }, { "network": { "type": "mainnet" diff --git a/scripts/devnet/.env b/scripts/devnet/.env index 8ab1f3f81037..34dba6b63ad6 100644 --- a/scripts/devnet/.env +++ b/scripts/devnet/.env @@ -1,4 +1,4 @@ -LOTUS_IMAGE=filecoin/lotus-all-in-one:v1.35.1-2k +LOTUS_IMAGE=ghcr.io/chainsafe/lotus-devnet:2026-04-20-4f7bde5 FOREST_DATA_DIR=/forest_data LOTUS_DATA_DIR=/lotus_data FIL_PROOFS_PARAMETER_CACHE=/var/tmp/filecoin-proof-parameters @@ -22,4 +22,5 @@ TUKTUK_HEIGHT=20 TEEP_HEIGHT=22 TOCK_HEIGHT=24 GOLDEN_WEEK_HEIGHT=26 -TARGET_HEIGHT=30 +FIREHORSE_HEIGHT=28 +TARGET_HEIGHT=32 diff --git a/scripts/devnet/check.sh b/scripts/devnet/check.sh index 479965491bc8..2c3f23fe8f96 100755 --- a/scripts/devnet/check.sh +++ b/scripts/devnet/check.sh @@ -10,7 +10,7 @@ pushd "${PARENT_PATH}" source .env # Forest check - assert that we sync past the genesis block. -# Allow for 300 seconds of sync time. +# Allow for 360 seconds of sync time. function get_sync_height { local port=$1 curl --silent -X POST -H "Content-Type: application/json" \ @@ -26,7 +26,7 @@ function get_f3_latest_cert_instance { } start_time=$(date +%s) -timeout=$((start_time + 300)) # Set timeout to 5 minutes +timeout=$((start_time + 360)) # Set timeout to 6 minutes # Target height set so that all migrations are applied. target_height=$TARGET_HEIGHT diff --git a/scripts/devnet/docker-compose.yml b/scripts/devnet/docker-compose.yml index 1d8474e29f26..a8357b20865a 100644 --- a/scripts/devnet/docker-compose.yml +++ b/scripts/devnet/docker-compose.yml @@ -27,6 +27,7 @@ services: - LOTUS_TEEP_HEIGHT=${TEEP_HEIGHT} - LOTUS_TOCK_HEIGHT=${TOCK_HEIGHT} - LOTUS_GOLDENWEEK_HEIGHT=${GOLDEN_WEEK_HEIGHT} + - LOTUS_FIREHORSE_HEIGHT=${FIREHORSE_HEIGHT} env_file: - lotus.env entrypoint: ["/bin/bash", "-c"] @@ -77,6 +78,7 @@ services: - LOTUS_TEEP_HEIGHT=${TEEP_HEIGHT} - LOTUS_TOCK_HEIGHT=${TOCK_HEIGHT} - LOTUS_GOLDENWEEK_HEIGHT=${GOLDEN_WEEK_HEIGHT} + - LOTUS_FIREHORSE_HEIGHT=${FIREHORSE_HEIGHT} ports: - ${LOTUS_RPC_PORT}:${LOTUS_RPC_PORT} - ${LOTUS_P2P_PORT}:${LOTUS_P2P_PORT} @@ -121,6 +123,7 @@ services: - LOTUS_TEEP_HEIGHT=${TEEP_HEIGHT} - LOTUS_TOCK_HEIGHT=${TOCK_HEIGHT} - LOTUS_GOLDENWEEK_HEIGHT=${GOLDEN_WEEK_HEIGHT} + - LOTUS_FIREHORSE_HEIGHT=${FIREHORSE_HEIGHT} ports: - ${MINER_RPC_PORT}:${MINER_RPC_PORT} env_file: @@ -160,6 +163,7 @@ services: - LOTUS_TEEP_HEIGHT=${TEEP_HEIGHT} - LOTUS_TOCK_HEIGHT=${TOCK_HEIGHT} - LOTUS_GOLDENWEEK_HEIGHT=${GOLDEN_WEEK_HEIGHT} + - LOTUS_FIREHORSE_HEIGHT=${FIREHORSE_HEIGHT} entrypoint: ["/bin/bash", "-c"] env_file: - lotus.env @@ -209,6 +213,7 @@ services: - FOREST_TEEP_HEIGHT=${TEEP_HEIGHT} - FOREST_TOCK_HEIGHT=${TOCK_HEIGHT} - FOREST_GOLDEN_WEEK_HEIGHT=${GOLDEN_WEEK_HEIGHT} + - FOREST_FIREHORSE_HEIGHT=${FIREHORSE_HEIGHT} networks: - devnet ports: @@ -258,6 +263,7 @@ services: - FOREST_TEEP_HEIGHT=${TEEP_HEIGHT} - FOREST_TOCK_HEIGHT=${TOCK_HEIGHT} - FOREST_GOLDEN_WEEK_HEIGHT=${GOLDEN_WEEK_HEIGHT} + - FOREST_FIREHORSE_HEIGHT=${FIREHORSE_HEIGHT} networks: - devnet ports: diff --git a/scripts/devnet/lotus.dockerfile b/scripts/devnet/lotus.dockerfile index fc87944f2334..f5a9017b69f1 100644 --- a/scripts/devnet/lotus.dockerfile +++ b/scripts/devnet/lotus.dockerfile @@ -1,5 +1,5 @@ # Lotus binaries image, to be used in the local devnet with Forest. -FROM golang:1.23-bookworm AS lotus-builder +FROM golang:1.25-bookworm AS lotus-builder SHELL ["/bin/bash", "-o", "pipefail", "-c"] RUN apt-get update && \ @@ -13,7 +13,7 @@ RUN curl https://sh.rustup.rs -sSf | sh -s -- -y --no-modify-path --profile mini ENV PATH="/root/.cargo/bin:${PATH}" -RUN git clone https://github.com/filecoin-project/lotus.git . && git reset --hard c41477 +RUN git clone https://github.com/filecoin-project/lotus.git . && git reset --hard d036ad9521d6621b5393d3d1b707a9994e94feed # https://github.com/Filecoin-project/filecoin-ffi?tab=readme-ov-file#building-from-source RUN CGO_CFLAGS_ALLOW="-D__BLST_PORTABLE__" \ diff --git a/src/networks/actors_bundle.rs b/src/networks/actors_bundle.rs index 2c5d35f4c5c9..2b19fef2a295 100644 --- a/src/networks/actors_bundle.rs +++ b/src/networks/actors_bundle.rs @@ -97,6 +97,7 @@ pub static ACTOR_BUNDLES: LazyLock> = LazyLock::new(|| { "bafy2bzacedlusqjwf7chvl2ve2fum5noyqrtjzcrzkhpbzpkg7puiru7dj4ug" @ "v15.0.0-rc1" for "devnet", "bafy2bzaceclp3wfrwdjgh6c3gee5smwj3zmmrhb4fdbc4yfchfaia6rlljx5o" @ "v16.0.1" for "devnet", "bafy2bzaceasvgkke3j4cs3xsxnjswpcdmokkvkiehzxzcgfox3ozlehimbuqk" @ "v17.0.0" for "devnet", + "bafy2bzacedgr2tg3uadekvxcuxpazjss3e6nf5tocs6n6e4nbagm6ti2npfey" @ "v18.0.0-rc1" for "devnet", "bafy2bzaceb6j6666h36xnhksu3ww4kxb6e25niayfgkdnifaqi6m6ooc66i6i" @ "v9.0.3" for "mainnet", "bafy2bzacecsuyf7mmvrhkx2evng5gnz5canlnz2fdlzu2lvcgptiq2pzuovos" @ "v10.0.0" for "mainnet", "bafy2bzacecnhaiwcrpyjvzl4uv4q3jzoif26okl3m66q3cijp3dfwlcxwztwo" @ "v11.0.0" for "mainnet", diff --git a/src/networks/devnet/mod.rs b/src/networks/devnet/mod.rs index d87f8bba1d4c..dbe5f18d57e9 100644 --- a/src/networks/devnet/mod.rs +++ b/src/networks/devnet/mod.rs @@ -166,7 +166,8 @@ pub static HEIGHT_INFOS: LazyLock> = LazyLock::new(| ), make_height!( FireHorse, - get_upgrade_height_from_env("FOREST_FIREHORSE_HEIGHT").unwrap_or(9999999999) + get_upgrade_height_from_env("FOREST_FIREHORSE_HEIGHT").unwrap_or(9999999999), + get_bundle_cid("v18.0.0-rc1") ), ]) }); diff --git a/src/state_migration/mod.rs b/src/state_migration/mod.rs index bc7dbf58c792..26ed23a8d078 100644 --- a/src/state_migration/mod.rs +++ b/src/state_migration/mod.rs @@ -85,6 +85,7 @@ where (Height::TukTuk, nv24::run_migration::), (Height::Teep, nv25::run_migration::), (Height::GoldenWeek, nv27::run_migration::), + (Height::FireHorse, nv28::run_migration::), ] } }