Comments (8)
split the account loading from the accessing account metadata
Makes sense to me, and seems to better reflect the actual I/O cost of the operation.
from design.
This is simpler, but might waste some memory when contract is not interested in all data
is this really an issue? memory size is neglegible and the copy cost is dwarfed by the IO
Is is also not extensible, i.e. we cannot change the account representation in the future.
It can be mitigated easily though, by adding bitflags, integer or another versioning mechanism
from design.
Is is also not extensible, i.e. we cannot change the account representation in the future.
It can be mitigated easily though, by adding bitflags, integer or another versioning mechanism
I believe that's not enough. If you deploy a contract that supports the current version 1 there is no way to support future version 2. Maybe the contract should specify what account fields it is interested in. I added this idea as the alternative #2.
from design.
I believe that's not enough. If you deploy a contract that supports the current version 1 there is no way to support future version 2.
Could you explain me why that matters? A contract is written against version 1 and explicitly requests v.1 and gets the result in v.1, that sounds good to me and I can't see a reason why it should care about v.2 or something (unless you want to do something like a dynamic proxy that requests and forwards some account data and while it should be forward-compatible).
Maybe the contract should specify what account fields it is interested in.
Yeah, that's what i meant by bitflags : )
from design.
Could you explain me why that matters? A contract is written against version 1 and explicitly requests v.1 and gets the result in v.1, that sounds good to me and I can't see a reason why it should care about v.2 or something (unless you want to do something like a dynamic proxy that requests and forwards some account data and while it should be forward-compatible).
Yes, that will work. For that I'd rather suggest using different function names for new versions. E.g. loadAccountV2()
.
Previously, I though you meant to return the format version number as a part of the account structure.
from design.
Previously, I though you meant to return the format version number as a part of the account structure.
Ah sorry for that, I was writting on the go back then. Should have make this more clear
from design.
@pepyakin do you have anything similar in pwasm?
from design.
Nope, we don't!
from design.
Related Issues (20)
- Enviroment abstraction for eWASM code execution
- Generic buffer API
- Inlined metering HOT 6
- Update to Constantinople/Petersburg HOT 1
- Equivalence, invertable transformation, and size optimization of Wasm binaries HOT 4
- Serenity async proposal (discussion) HOT 4
- Async vs sync interface HOT 2
- Linear storage design HOT 4
- System/standard library for bignumbers HOT 19
- Eth 2.0 Phase 2 with "precompiles" proposal HOT 1
- wasm256 - Wasm with native i256 HOT 1
- how to test the gas costs
- opcode gas
- Shared memory between instances HOT 1
- "Stack too deep" in EWASM
- Provide kecccak256 host function HOT 3
- JVM pros/cons clarification
- Update EEI for London hardfork
- IP OGS HOT 1
- ewasm status HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from design.