-
Notifications
You must be signed in to change notification settings - Fork 389
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
Move standard library initialization to genesis transactions #2730
Comments
The goal is to use a go-embed of the standard libraries and utilize this embedded component while generating the hot genesis in |
Should we create a new message type like If we just use If I keep this direction (special behavior if height is 0) I will modify the check to only allow normal pkg paths and stdlibs during genesis and not fully disable the check. WDYT? |
Stdlibs break the promise that a pkgpath uniquely identifies code across all chains, if we do want to treat stdlibs as regular packages then they should probably get a full pkgpath like |
I'm realising that using goembed is a much wider scope than injecting stdlibs in genesis txs from the sources and are mostly independent. Which one do you want first? EDIT: actually it's okay, I had some troubles with the embeds in the TestStore but it's resolved now |
I'm honestly more leaning towards What do you think about this, we need to unblock @n0izn0iz ? |
Standard libraries are just pure packages, no? I'm of the opinion we should allow this in the keeper, and allow using any import path at genesis: then restrict to gno.land/{p,r} after genesis. |
Standard libraries can and should be treated as regular packages; which, at least for the time being, can only be loaded at genesis.
Related discussion: #2319 (comment)
After discussing with Milos, we agreed that it makes sense for the gno.land node at startup to be ignorant about standard libraries; this way, we can further separate the gno.land application binary from needing a surrounding gno repository to work.
To make this work, we'll likely additionally need adequate mechanisms to make stdlib loading fast in testing code and in gnodev, which often restart nodes from genesis. Currently, this is implemented by the method LoadStdlibCached, which is very effective at cutting down start-up costs in these scenarios currently, but would have to be removed if we moved to having stdlibs in the genesis file.
Related #1248
The text was updated successfully, but these errors were encountered: