-
Notifications
You must be signed in to change notification settings - Fork 184
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
Add a protocol version to Store and World #1130
Comments
could/should add this to |
ProtocolVersion
to Store and World
In the client, we should detect if the store/world protocol version matches the version we expect to parse and throw an error otherwise. I just spent a while debugging an issue with Sky Strife where they were using a different client from the contracts, so table data wasn't getting into the proper places due to version mismatch. |
I thought this might be an interesting issue to take a look at contributing to but not really sure best approach. Seems like currently a world emits a HelloWorld event on init and this is used by the SyncWorker to get the block number to start sync - is this what you mean by the client? Some random thoughts: Versions just stored as hardcorded values in World.sol and StoreRead.sol? Emitting once:
Adding a view function:
Is a factory pattern interesting to consider?
|
Some thoughts:
|
Agree with the thoughts on emitting the version as part of the deploy event and as a static function. Re factories: I really like the idea! We could definitely move the whole vanilla world setup to a factory contract (deploying the World, installing the core module). If we combine this with something like |
Root systems can do anything and negate any security benefit of a canonical deployment. Also people may want to alter World, since it's a protocol/framework, not an application-specific contract. |
It might be nice to have deterministic deploys/addresses for systems, modules, etc. too so we can detect and avoid redeploying those too. |
Just a note on people wanting to alter a World - I think it could be quite exciting if people do want to do that and it doesn't stop it. It might even make it easier to integrate into the overall system. At Balancer we've seen quite a few custom pool factories with different AMM behaviour developed independently by external teams and integrated into the overall system, mainly by indexing off different factory addresses on the Subgraph. |
The text was updated successfully, but these errors were encountered: