-
Notifications
You must be signed in to change notification settings - Fork 1k
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
Incentives for the user / developer to release storage #278
Comments
People could just delete the storage of others SC free... 🗡️ Sounds bad... |
The pricing structure will be adjusted in NEO 3.0, please wait for the new white paper. |
I like this idea, a lot of projects don't remove unuseful data |
@everyone You need to realize that physical blockchain storage (blocks and Txs) for "deleted" NEO storage is never freed up, correct? The transactions that stored the original values and subsequent updates into NEO storage cannot be deleted ... it's a blockchain. In fact, deleting storage takes up more physical space not less and, in effect, can create another free/cheaper way to store "dumb data" on the NEO blockchain. Similarly, writing less data for a specific key uses more storage - not less. I recommend that this issue should be closed. |
@mwherman2000 there two ways of storing information: in the blockchain hash data or in Storage space. While blockchain data won't need to be carried out forever, the Storage needs to... so in my opinion (and Ethereum design agrees with that), Storage cleaning must be VERY incentived. By the way, the blockchain space won't even increase in this case, because if a given function call is performed, it won't be bigger just because it has a Storage.Delete inside (that have been registered already in AVM opcode). So, in my opinion, that should be seriously considered, as soon as possible, and I hope to see that in Neo 3.0 :) |
There is no long lived/replicated Storage Space in the NEO architecture. The only long lived Storage Space is for Blocks of Tx of Opcodes.
Get Outlook for Android<https://aka.ms/ghei36>
…________________________________
From: Michael Herman (Parallelspace)
Sent: Saturday, June 23, 2018 7:34:00 PM
To: neo-project/neo; neo-project/neo
Cc: Mention
Subject: Re: [neo-project/neo] Storage.Delete must be free (#278)
It's irrelevant if it's only a facade.
Get Outlook for Android<https://aka.ms/ghei36>
________________________________
From: Igor Machado Coelho <[email protected]>
Sent: Saturday, June 23, 2018 5:37:49 PM
To: neo-project/neo
Cc: Michael Herman (Parallelspace); Mention
Subject: Re: [neo-project/neo] Storage.Delete must be free (#278)
@mwherman2000<https://github.com/mwherman2000> there two ways of storing information: in the blockchain hash data or in Storage space. While blockchain data won't need to be carried out forever, the Storage needs to... so in my opinion (and Ethereum design agrees with that), Storage cleaning must be VERY incentived.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub<#278 (comment)>, or mute the thread<https://github.com/notifications/unsubscribe-auth/AF0a6CmAisSRSpCzvel6vUeJ25fMsRwKks5t_rUtgaJpZM4U0MqP>.
|
It's irrelevant if it's only a facade.
Get Outlook for Android<https://aka.ms/ghei36>
…________________________________
From: Igor Machado Coelho <[email protected]>
Sent: Saturday, June 23, 2018 5:37:49 PM
To: neo-project/neo
Cc: Michael Herman (Parallelspace); Mention
Subject: Re: [neo-project/neo] Storage.Delete must be free (#278)
@mwherman2000<https://github.com/mwherman2000> there two ways of storing information: in the blockchain hash data or in Storage space. While blockchain data won't need to be carried out forever, the Storage needs to... so in my opinion (and Ethereum design agrees with that), Storage cleaning must be VERY incentived.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub<#278 (comment)>, or mute the thread<https://github.com/notifications/unsubscribe-auth/AF0a6CmAisSRSpCzvel6vUeJ25fMsRwKks5t_rUtgaJpZM4U0MqP>.
|
See #286 |
Delete should really only be incentivized where it is performant. Conventionally, It is more efficient to clean storage only when it is needed due to the compute requirements and quality impacts associated with making changes. Introducing free codes also has the risk of opening us to compute exploitation. |
@lllwvlvwlll, Tyler the great, nice very gud. We like to clean everything! aheuahueahueaea Transactions with only deletes would probably enter in the limited quota of free transactions, perhaps, some greedy heuristic could postpone these free/delete-only transactions if the free block part is already full. |
@lllwvlvwlll Tyler, perhaps it's better to discuss in the other thread... this idea conflicts/adds up with all the others related to the new pricing model. |
Now we are back to Neo 3 roadmap, this is an important change. Useful for: #824 |
Nothing should be free, but i agree that could be cheaper |
It should be more than free... negative is better 😂 its a favor done to the network. |
awesome idea :) |
@shargon how can we incentivize the user to release space? |
@neo-project/core we need to decide about this.
I think that it can be free if we release more than 'x' bytes. or pay back the user, to create an incentive. Maybe return part of the gas to cover the costs of the current running transaction (not sure if neo-vm is compatible with this). If we "payback" the user, if we insert "2 keys with both using 1024 bytes", the first TX would cost 2 gas, but the "update" would cost 1 gas only (if we have 50% payback). We really want to incentive users to release space, we need to think about a good solution here, it has huge long term impacts. |
Payback is nice and compatible, we just need to put a negative price per released byte. Ideally for me, sending assets to someone that already has assets, or sending all assets to anotger account, should be free, or nearly free (from sysfee perspective, but still paid from netfee perspective). Only slight byte differences in bigint representation would matter, but if reducing is much cheaper than adding, we can achieve this behavior (perhaps Delete = -2 * Put)... but these negative impacts should only affect other Storage paid stuff, not other operations, as these things may become dangerous too, and could create eternal loops xD |
@igormcoelho agreed. So you think paypack is feasible? In the same transaction only? |
My proposed design:
|
@shargon should we allow a negative number in the gas consumption? I think it is the only way to make this "correctly". What do you think? |
Negative means 0, no reward. You will pay less if you remove some entries. |
@shargon I mean during execution, the final result I understand cannot be negative |
Hi @neo-project/core, may I assign this issue to me? |
If you want, is good for me |
Thanks. I spoke with @igormcoelho he let me do it too. Thanks |
No need for my approval man.. go for it! 💪 |
Purely for the historical record, here's a link to the article I wrote about storing #DumbData for free on the NEO Blockchain in June, 2018. I have no idea if this still works on the current version of NEO: Here's a link to a NEO Blockchain DumbData example (from the end of the above article). Best regards, |
In System Fees (http://docs.neo.org/en-us/sc/systemfees.html), Storage.Delete operation has 0.1 GAS cost. That does not incentive Storage reduction. It should be free (or user must even profit with it!).
Is there any negative aspect on executing Storage.Delete that must be avoided?
The same should be applied to Storage.Put when used space is reduced (It should cost only over the increased space in KB). Is there ANY negative impact associated to it?
The text was updated successfully, but these errors were encountered: