solana-labs / solana

Web-Scale Blockchain for fast, secure, scalable, decentralized apps and marketplaces.
https://solanalabs.com
Apache License 2.0
13.05k stars 4.21k forks source link

Feature Gate: Enable the `ExtendProgram` ix for the bpf upgradeable loader #26385

Closed jstarry closed 8 months ago

jstarry commented 2 years ago

Description

See #26386

Add a feature gate to enable a new ExtendProgram instruction which is permission less and allows extending the program data by a specified number of bytes so that developers don't need to pre-allocate program data accounts.

Note

Do NOT activate this before enable program redeployment cooldown.

Feature ID

8Zs9W7D9MpSEtUWSQdGniZk2cNmV22y6FLJwCx53asme

Activation Method

Single Core Contributor

Minimum Version

v1.16.0

Testnet Activation Epoch

492

Devnet Activation Epoch

547

Mainnet-Beta Activation Epoch

532

mgild commented 2 years ago

What is eta for this?

jstarry commented 2 years ago

What is eta for this?

Needs to get reviewed, audited, and then activated via feature gate. I'm hoping to get this feature into v1.11 and will activate it once each cluster is fully upgraded to that version.

codestoned1 commented 2 years ago

thanks for working on this @jstarry! any guidance on earliest possible 1.11 release?

jstarry commented 2 years ago

thanks for working on this @jstarry! any guidance on earliest possible 1.11 release?

It will be enabled on testnet soon but it's quite difficult to predict when mainnet will be updated to v1.11 at this time

mardragon commented 2 years ago

It's great change @jstarry. Will solana program deploy CLI command handle resizing automatically ?

In description you wrote "extending", I assume we can also shrink it and recover unused SOL ?

jstarry commented 2 years ago

Will solana program deploy CLI command handle resizing automatically ?

That would be a nice feature, but not implemented yet in the CLI

I assume we can also shrink it and recover unused SOL ?

The length of the program data isn't stored in the metadata so it's not possible to know how much data can be shrunk safely. That could be implemented though and added as a separate feature.

iurage commented 2 years ago

@jstarry Would you have any idea when this would hit mainnet?

jstarry commented 2 years ago

@jstarry Would you have any idea when this would hit mainnet?

When mainnet is running v14.. hopefully not too long but it could take months

Timikcool commented 2 years ago

@jstarry Would you have any idea when this would hit mainnet?

When mainnet is running v14.. hopefully not too long but it could take months

sheesh we need it a lot

enzoampil commented 1 year ago

hope this is out soon, badly needed for our side as well

ADBalici commented 1 year ago

Yeah also hope this is deployed soon.

dr497 commented 1 year ago

Is there a rough ETA for when it will be deployed?

mvines commented 1 year ago

This gate is on the schedule at https://github.com/solana-labs/solana/wiki/Feature-Gate-Activation-Schedule, and is the 25th (if I counted right) feature gate in the 1.14 release line. So best case, it'll be activated 25 epochs after mainnet adopts the 1.14 release line

Lichtso commented 1 year ago

Sorry everybody who has been patiently waiting. We will have to delay this until we fix our executor cache (https://github.com/solana-labs/solana/issues/29803).

ilmoi commented 1 year ago

@Lichtso do you have a rough timeline in mind?

Lichtso commented 1 year ago

do you have a rough timeline in mind?

It is making good progress so we should have something on testnet by the next release cycle. Though it will take a lot longer until it hits MNB. Unfortunately our current design makes it hard to implement this right.


@ilmoi @dr497 @ADBalici @enzoampil @Timikcool @iurage @mardragon @zlex7 @mgild Hate to ping you all like this, but if you are still interested in improving the program management workflow, I would like some feedback on the design of our new loader built-in program, which also comes with a new program management workflow over here: #30464

blockiosaurus commented 1 year ago

Are there any updates on the timeline of this feature? It looks like it got pushed back several minor versions but we're really hurting for more binary space.

FoxyDev42 commented 1 year ago

Would like an update on this too, out of space on multiple programs, very hard to fit in due to evolving metaplex updates and stuff.

mvines commented 1 year ago

This feature is still on the master branch, will ship in the v1.16 release line. When this reaches mainnet depends on how quickly the validators choose to adopt the v1.14 release so that we can begin stabilizing v1.16

Flawm commented 1 year ago

excellent

Lichtso commented 11 months ago

It is place 3 in the Feature-Gate-Activation-Schedule of MNB so should be in the next few weeks.

jstarry commented 11 months ago

FYI this feature was activated a few days ago in epoch 532 on mainnet-beta

ksolana commented 9 months ago

okay to close it then?

jstarry commented 9 months ago

Once the feature gate code is cleaned up it will be closed