Comments (5)
One big benefit of this approach is that an SQL database is overkill for an append-only data structure. Decoupling would allow a change in backend. Lengthy syncing time is likely related to SQL inserts/appends of one transaction at a time.
from ocore.
@Pascal-J check out #42 for a discussion on validation (and hence sync times), specifically re: avoiding multiple serial round trips through SQL for every single unit being validated/synced :)
from ocore.
good advise, the SQL way is a fast implementation, "pluggable" backend will
force abstract the logic from the SQL , it make it better scaleable, but this is a big job :), Hope do it earler
from ocore.
@iamliqiang a big job indeed, i think the current approach is to get more unit tests in place for existing functionality, then see what can be proposed
from ocore.
Obyte database is not strictly with "append-only" structure. It kind of is append-only if you take account only everything that is stable already, but all the data that is not stable gets updated a lot to figure out the next stability point.
Data feeds are append only, but Autonomous Agent state is not. Both of these are now moved to RocksDB because it makes more sense for key/value data.
Address definitions are not strictly append-only either, these are appended to separate table when they become public (when it is spent from them). Address definitions can be changed to different public key too.
Obyte full nodes have state and history of UTXOs (outputs table), which get updated with the is_spent=1 when they are spent. Archival nodes would be more strictly "append-only", but Obyte full nodes are not archival nodes because they have current state, not all history states.
from ocore.
Related Issues (20)
- Question : what's the purpose of witness proof in catch up process ? HOT 1
- Catchup is slow when tps is more than 60 HOT 2
- "inputs and outputs do not balance" - composer and validator inconsistency HOT 2
- resend multi-sig wallet creation notification
- Question: Can user change a shared_address's definition by sending a definition_change unit ? HOT 1
- Question : Does 'send to address' make always new change address? HOT 1
- Error: Error: SQLITE_ERROR: too many SQL variables HOT 1
- "unstable unit not found: "+best_parent_unit HOT 1
- ParentFingerPrint argument is not a buffer HOT 2
- did not check whether the amount is real HOT 3
- iPhone & Apple watch notification
- Add method on the WS API to retrieve AA state vars? HOT 1
- backups not possible when node is only HOT 4
- Introduce logging framework HOT 10
- Introduce health check HOT 1
- Allow to externalize crypto operations to HSM HOT 4
- Fork byteball Tortik HOT 8
- 'wrong profile hash' message is shown incorrectly in live and testnet HOT 2
- Is there no way to set an alias for an asset? HOT 1
- ER_BAD_FIELD_ERROR: Unknown column 'getters' in 'field list' 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 ocore.