steemit / steem

The blockchain for Smart Media Tokens (SMTs) and decentralized applications.
https://steem.com
Other
1.95k stars 790 forks source link

Versioning of plugin data #285

Open theoreticalbts opened 8 years ago

theoreticalbts commented 8 years ago

When plugin settings change, plugin needs to be able to request a re-index. Likewise, some plugins may never need to re-index -- for example, plugins that don't provide objects, or whose object lifetimes are limited to a single run.

Related: #264 proposes updating based on schema changes, this code will have to interact with that.

mvandeberg commented 7 years ago

This is partially implemented in chainbase already but should be formalized by #264

theoreticalbts commented 7 years ago

Specifically, the version of a file may be defined as schema and there is semantics. Schema is the set of available fields.

Plugins and core must create schema and semantics objects. Schema objects can automatically be created with FC (see #683). Semantics objects must be manually defined, and manually updated whenever the way a field is calculated changes. Updating semantics should be made part of the release process for every major release.

theoreticalbts commented 7 years ago

I should make a special note that the core semantics version is different from STEEMIT_BLOCKCHAIN_VERSION. Here are some of the differences:

theoreticalbts commented 6 years ago

Let's go for a little more detailed specification of what we should actually implement for this.