The F4 Address Class (FIP-0048) #473
Replies: 6 comments 19 replies
-
Hey @Stebalien
Talking to @magik6k about this. Dashes are a huge problem for UX -- they break copy paste in most tools. IPFS & the blockchain world worked super hard to keep dashes out of identifiers for the goal of making them very easy to transport across lots of devices (think copy-pasting in a bunch of different kinds of devices and phones, etc). Strong opinion here that we should go for human friendliness in copy-pasting, not reading. most end users don't read & try to interpret addresses, but they do copy-paste them a lot. |
Beta Was this translation helpful? Give feedback.
-
Thanks for the FIP @Stebalien, this looks great. |
Beta Was this translation helpful? Give feedback.
-
How should an embryo react if called with a non-zero method number? This isn't covered in the current spec.
Personally, I believe the prototype's approach (reject the calls) is safer. It means that, e.g., if an actor fails to deploy because of some chain re-org, a follow-on invocation of said actor won't just silently succeed. I.e.:
In Ethreum's model, if step 2 gets "re-orged out", user C's message will silently "succeed" (spending the funds) but intended actor won't be invoked (because it hasn't been deployed yet). In the current prototype's model, the message at step 3 will fail, reverting the send. |
Beta Was this translation helpful? Give feedback.
-
Future improvement: assign f4 addresses to all actors (cc @shrenujbansal who suggested it). For accounts (f1/f3):
This should let us (eventually) use account abstraction for "builtin" accounts (as long as we maintain backwards compatibility). For actors, we treat the init actor as an "address manager". If the user calls |
Beta Was this translation helpful? Give feedback.
-
The name "embryo" is confusing. As @raulk notes:
@ribasushi then proposed "stub". Discuss
|
Beta Was this translation helpful? Give feedback.
-
In the future, I'd like to revisit placeholders. I believe placeholders will serve us for now, but I'm becoming increasingly convinced that we should get rid of them and instead deploy real actors on first send.
Specifically, I'd let address managers register an actor that should automatically be deployed on first send to one of the addresses they control. Unlike most actors, these actors would not be able to run a constructor (to avoid running user-defined code on method-0 sends). Instead, a user would have to later "initialize" the actor. This would require an Example automatic multisig deployment:
However, this is something we can decide on later. A future migration can replace all |
Beta Was this translation helpful? Give feedback.
-
Previous discussion: #459
FIP: #474
I'm opening a new discussion so we can discuss the final text of the FIP with no confusion. Please refer to the previous discussion for context, but keep discussion of the FIP itself here.
Beta Was this translation helpful? Give feedback.
All reactions