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

Tutorial for builtin-actor development #1567

Open
BigLep opened this issue Jul 13, 2024 · 3 comments
Open

Tutorial for builtin-actor development #1567

BigLep opened this issue Jul 13, 2024 · 3 comments
Assignees
Milestone

Comments

@BigLep
Copy link
Member

BigLep commented Jul 13, 2024

Done Criteria

There is a tutorial(s) for doing builtin-actor development and getting those changes into Lotus.
Since this focuses on getting changes into Lotus, the docs probably belong in Lotus, and then a pointer to those docs can be in builtin-actors' readme.

Why Important

FilOz wants to empower other people/teams to do this work. One part of doing this is pointing to an example for the steps involved.

User/Customer

New builtin-actor contributors (e.g., new FIP implementers)

Notes

  1. There are multiple tiers of change going from easier to harder:
    1. No new method methods
    2. New/changed methods (e.g., serialization change). This involves having corresponding go-state-types change
    3. Change in ref-fvm or proofs
  2. In 2024Q3, we expect this to be helpful at the minimum for having others help do FIP-TBD: Export sector termination method from miner actor FIPs#1035 and/or Supporting EIP-5656 (MCOPY opcode) in the Filecoin EVM runtime FIPs#1025
@BigLep BigLep added this to FilOz Jul 13, 2024
@BigLep BigLep added this to the DX-Streamline milestone Jul 13, 2024
@BigLep
Copy link
Member Author

BigLep commented Sep 5, 2024

Assigning to @rjan90 said in https://docs.google.com/document/d/1NgD_Rza3sUfDbyV4dbAs9D4SmXrWJwk9OdkL5UHszu8/edit that he would take this in support of #1572

@BigLep
Copy link
Member Author

BigLep commented Oct 2, 2024

@rvagg : can you drop some notes about this based off what you have done for filecoin-project/lotus#12526 ? Feel free to comments here and @rjan90 or I can turn it into a doc.

rvagg added a commit to filecoin-project/lotus that referenced this issue Oct 3, 2024
rvagg added a commit to filecoin-project/lotus that referenced this issue Oct 4, 2024
* docs(actors): builtin-actors development docs

Ref: filecoin-project/builtin-actors#1567

Co-authored-by: Steve Loeppky <[email protected]>
@rvagg
Copy link
Member

rvagg commented Oct 8, 2024

Follow-up on what I already landed: the discussion with Mikers in Slack about MCOPY made me realise that I've made it sound too simple and even that first section needs a revision. Some thoughts about the deficiencies:

  • The text assumes that you can do a network upgrade from nvX to nvY, and that putting a new builtin-actors bundle in for Y will be fine.
  • Lotus requires that we have a ref-fvm that supports version Y in order for it to perform a migration and start mining on that network version.
  • There is a process we have in place for bumping this in ref-fvm and bubbling those changes up to Lotus, so once that's done this isn't a problem, but before it's done, the docs need nuance.
  • The docs should probably outline the ref-fvm dependency upgrade problem for a new builtin-actors, for educational purposes.
  • The docs could instead suggest that if you're just doing builtin-actors dev, then without a ref-fvm update in place, you could just do it for network verison X, i.e. the current one, so install your actors with that network version, replacing what's there, and test against that, knowing that your final version, when it lands, is probably going to need a ref-fvm update (by someone else) and to have version Y in place where your builtin-actors changes are likely to land.

@rjan90 rjan90 moved this to ⌨️ In Progress in FilOz Oct 14, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: ⌨️ In Progress
Development

No branches or pull requests

3 participants