-
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
Remove StorageItem.IsConstant #2351
Conversation
Not a trivial thing for me. On one hand it's a useful security feature (ensuring that whatever is written there couldn't be changed in any way), on the other hand the fact that constant entry couldn't be removed is a problem of its own and additional serialization overhead is also not a good thing. I've added a simple check for attempts to store a constant entry to Neo 2 neo-go (the node will just panic and stop in this case) and running through the chain dump at the moment, 2.6M blocks processed and it's still running. |
Do you have the numbers? |
Sorry, it ran out of disk space at 3.2M, but it means at least that there are exactly zero |
I think that the contract can ensure that is never modified, with a good code and security audits, in my opinion it's not needed |
FYI: I wasn't able to find a single use of this feature on Neo 2 chain, so looks like it won't be missed. |
After neo-project#2351 StorageItem is just a thin wrapper for some byte array in its essence so we can Use the same trick as was used for storage keys in neo-project#1566 and avoid additional wrapping/unwrapping with VarBytes encoding.
* StorageItem: optimize binary representation After #2351 StorageItem is just a thin wrapper for some byte array in its essence so we can Use the same trick as was used for storage keys in #1566 and avoid additional wrapping/unwrapping with VarBytes encoding. * StorageItem: optimize out reader.BaseStream.Position It's always 0.
* neo-project/neo#2295 * neo-project/neo#2290 * neo-project/neo#2292 * neo-project/neo#2296 * neo-project/neo#2301 * neo-project/neo#2298 * neo-project/neo#2312 * neo-project/neo#2300 * neo-project/neo#2333 * neo-project/neo#2337 * neo-project/neo#2331 * neo-project/neo#2332 * neo-project/neo#2343 * neo-project/neo#2339 * neo-project/neo#2350 * neo-project/neo#2351 * neo-project/neo#2353 * neo-project/neo#2356 * neo-project/neo#2375 * neo-project/neo#2377 * neo-project/neo#2379 * https://github.com/neo-project/neo/pull/2392/files * neo-project/neo#2400 * audit updates * refactor and bump VM requirement
No description provided.