Comments (4)
Iteration over storage keys was part of the initial nearcore implementation, but then it was deprecated due to security considerations:
from neps.
The tree growth is a classic problem and was well studied in Ethereum world. There are already good solutions for that, starting from separating store for queries, storage cost adjustments and few other patterns that go-ethereum did in last 2 years, key compression etc...
In Cosmos we had an interesting project for the tree compression, which didn't reach implementation phase due to other priorities.
Classic hash maps may have similar problems and were a source of few exploits.
from neps.
TL;DR: I don't see how we solved the problem. Instead we implement a tree on top of a tree on top of a tree to solve the iteration use case. This adds a lot of round trips and often kills the native cache.
All state of the art solutions for store commitment include a tree, at least at the contract level (see also Verkle Trees).
from neps.
Moreover, all good DBs that I tested for blockchain store backend (and I tested many in Cosmos), provide prefix scan functionality.
from neps.
Related Issues (20)
- relayer callback HOT 1
- Guideline for bytes encoding for JSON input and outuput types (smart contracts) HOT 1
- Atomic/Isolated/Synchronous transaction execution HOT 1
- Ethereum wallet & transaction support HOT 17
- run
- URL: https://explorer.mainnet.aurora.dev/api/eth-rpc
- Chain Signatures HOT 8
- Problems with storage staking HOT 7
- Security Policy violation Branch Protection HOT 2
- Security Policy violation SECURITY.md HOT 2
- Runtime triggers HOT 37
- Proposal for web3-compatible wallets support HOT 20
- Wrapped NEAR v2
- Privacy with Chain Signatures HOT 6
- Improvement to gas pricing and prioritization HOT 3
- Reduce storage staking price by 10x HOT 11
- On minimally volatile gas pricing
- Bounty: HOT 1
- Shared contract code HOT 17
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 neps.