-
Notifications
You must be signed in to change notification settings - Fork 212
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
Advanced Object Deletion #1220
Comments
Full list of definition types that this would encompass:
And a summary of some specific enhancements that were discussed offline among maintainers:
Uniqueness of names will be a problem that needs addressing, in the case that each member may have a combination of published and unpublished definitions. The verb for this action should also be carefully chosen. I've used the word "publish" here, but other options are "broadcast" or "announce". |
Notes on possible verbs and any current usage:
|
Looking to (4) - the actual "delete" portion - my first instinct would be to allow deleting anything, regardless of whether it's been published or not. That is, I can choose to delete a "published/shared" token pool or API from my node, and all record of it will be removed. This puts me voluntarily out-of-sync with the rest of the multiparty network, but that is my choice as a node operator. This tracks with the decisions that were made around deletion of data. This also implies that after deleting a "shared" item, I could reuse that name for my own local item. However, if I then tried to publish mine, it would be rejected by all other nodes on the network. That is, unless any of those nodes had also deleted the original shared item, in which case they would accept my new one. Obviously there are loads of ways to mess up your network, but I'm trying to decide if we should actually prevent them or if we should leave that to the user. |
Alternative proposal that gives less ways for nodes to be out of sync:
Notably this drops (4b) from scope, but that could always be revisited later. |
Coming back to the naming question after fleshing out #1261 - I went for "publish" and it feels fairly correct. The API spelling lines up with how the word is used around data/blobs, and the functionality is similar enough (IMO). For clarity, this is what "publish" would now mean in both contexts:
Obviously they're a bit different, but in both cases we're taking something local and making it available via IPFS. Side note: As part of this change, I'm also removing usage of the word "announce" and switching all token pool verbage to use "publish" instead. |
Did some 🤔 on the naming independently on prompting from the PR comment on #1261, and came to a pretty identical conclusion. |
This work is now completed
Of the original items proposed at the start, this implements 1, 2, 4a for these types. The others (3, 4b) are deferred for now. Datatypes and identities also need a look, as they may come with special considerations that influence multiparty messaging. |
Background
While doing some testing locally, I ended up stuck in a less than ideal state. Here's a summary of what I did:
200
response from the token connector to create the pool, then FireFly core logs:[2023-03-15T16:53:11.943Z] DEBUG Token pool ID=79a6bb2f-11bd-45e6-99a7-f3045ec911ac Locator='address=0xfd403b063ecf959867973a4cf383c48b9a06e19e&schema=ERC721NoData&type=nonfungible' already confirmed ns=default pid=1 role=event-manager
This now leaves me stuck state. I have no way of deleting the token pool, but because I created it incorrectly, I also have no way of using it. My options at this point are to:
In reality, this problem extends to more than just token pools, but this situation was exceptionally painful, so it got me thinking about the problem. The same situation could occur with contact interfaces, contract APIs, etc, though those things have versions so it may not be as big of a deal there.
What needs to change
The text was updated successfully, but these errors were encountered: