You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Some built-in actors reference the CodeCID of other actors. Concretely:
the init actor holds an allowlist of actors it is allowed to construct (multisig, paych)
the market and miner actors validate that only "signable" actors (account, multisig) can perform certain duties
the market actor validate that only the miner actor can perform deal management operations
the power actor validates that only the miner actor can perform privileged operations
Prior to FVM, CodeCIDs were hardcoded, but with the introduction of Wasm bytecode as a portable execution format, CodeCIDs for the first time will truly content-address executable payloads. Unfortunately, this means that actors will need to learn the CodeCIDs of other actor in a more dynamic way.
We considered various solutions like:
Architecting the build process in https://github.com/filecoin-project/builtin-actors in layers and injecting CodeCIDs values as deterministically-named env variables that could be read at compile time. However, cyclic dependencies make this impossible.
Some built-in actors reference the CodeCID of other actors. Concretely:
Prior to FVM, CodeCIDs were hardcoded, but with the introduction of Wasm bytecode as a portable execution format, CodeCIDs for the first time will truly content-address executable payloads. Unfortunately, this means that actors will need to learn the CodeCIDs of other actor in a more dynamic way.
We considered various solutions like:
Ultimately we settled on introducing a new infallible syscall:
Where the input is a CodeCID, and the return value represents the matched builtin actor type:
The text was updated successfully, but these errors were encountered: