Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrade builtin-actors and ref-fvm? #1179

Open
sanderpick opened this issue Oct 21, 2024 · 0 comments
Open

Upgrade builtin-actors and ref-fvm? #1179

sanderpick opened this issue Oct 21, 2024 · 0 comments

Comments

@sanderpick
Copy link
Contributor

Hey guys, are there any blockers in updating to the latest builtin-actors? I ask because...

  • ipc relies on builtin-actors tag v12.0.0, which relies on ref-fvm version 4.0.0-alpha.4
  • ipc relies on ref-fvm version 4.1.0, which is a little awkward

However, what led me here is that ref-fvm 4.1.0 (and I'm guessing 4.0.0-alpha.4 but can't verify because there is no corresponding tag), relies on wasmtime 12.0.2, which breaks with rust 1.82.0. Specifically, the actor bundles can't be loaded. Wasmtime throws an error:

2024-10-21T17:08:31.773610Z ERROR fendermint/app/src/main.rs:45: failed to execute Options { home_dir: "~/.fendermint", config_dir: None, mode: "dev", global: GlobalArgs { network: Testnet }, command: Genesis(GenesisArgs { genesis_file: "test-network/genesis.json", command: Ipc { command: SealGenesis(SealGenesisArgs { builtin_actors_path: "/home/sander/.fendermint/bundle.car", custom_actors_path: "/home/sander/.fendermint/custom_actors_bundle.car", artifacts_path: Some("/home/sander/.fendermint/contracts"), output_path: "test-network/sealed_genesis.car" }) } }) }: failed to init exec state

Caused by:
    0: failed to create exec state
    1: could not prepare actor with code CID bafk2bzacedzossdursdb5w4jfuyrv6fm3cznzmee3kkaqzr3aaba5gmhy7npu
    2: failed to validate actor wasm
    3: reference-types not enabled: zero byte expected (at offset 0x2b473)

See bytecodealliance/wasmtime#9130
See bytecodealliance/wasmtime#9162

Pre-wasmtime 25.0.0, the trick is to enable the gc feature which somehow enables wasm reference-types. Apparently, post-wasmtime 25.0.0, this is no longer needed. However, the version used by ref-fvm (12.0.2), does not have the gc feature. There must be some other way to fix this with the old wasmtime, but I think ideally we can just use latest builtin-actors with latest ref-fvm.

Looks like support for wasmtime 25.0.2 just landed in ref-fvm v4.4.3. Maybe a good time to try for an update?

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

No branches or pull requests

1 participant