This RFC shall address the following two issues
- edit/update nodes owned by Anonymous Monk (AM)
- claim ownership of nodes initially generated by Anonymous Monk
using a simple unlock-phrase based and time-bound mechanism.
After hitting the create button, a node owned by AM cannot be updated anymore.
This is obvious since several AMs cannot be distinguished from each other (AM#1 could edit node of AM#2).
A node created by AM cannot be claimed (automatically) by a regular registered user, though
this can be useful. E.g., when forgetting to log-in, being at $work, etc.
The basic idea is to present an unlock-phrase that can be used for a given node to editing and/or to
claim ownership of this node. The unlock-phrase is presented after hitting the create-button.
An AM who intents to update the given node or who later wants to claim ownership has to remember this
unlock-phrase. Maybe the unlock-phrase can be saved as a cookie?
Usecase: Updating a Node owned by AM
When logged in as AM, presenting the unlock-phrase allows to edit the node.
A new unlock-phrase is created after the update button has been hit.
The option to edit a node owned by AM is time-restricted (e.g. 5 days). After this time, no further update is possible. The time window restriction makes it easy to protect old nodes owned by AM. Furthermore, it might reduce the PM servers load. Updating a node must not reset the time-window.
Usecase: Claiming Ownership of a Node owned by AM
During a time window of e.g. 5 days, a regular PM user, who is logged-in, sees an option to
adopt a node that is currently owned by AM. Maybe this option can be switched on/off by means of CSS and/or Display Settings? If the user enters the correct unlock-phrase, the ownership is transferred. Since the node is now owned by someone else than AM, the option to
transfer ownership vanishes.
Reputation and XP
I am not sure about that. Maybe reputation is transferred completely but not XP. So, XP changes while the node is being owned by AM goes to AMs account, while XP-changes after claiming the node go to the users account.
It should be possible to implement this RFC without introducing changes to the database layout.
The unlock-phrase could be created by hashing (e.g. MD5) a secret initial vector + the node-content + the node-ID + some other unique node-specific value. Then the digest is transformed into some human-readable unlock-phrase. Something along the idea implemented by Digest::BubbleBabble.
Since the node creation time is a known DB entry, the time-window can be computed/checked easily.
[AM initial node] ---------(time window expired)--> [AM locked node ]
| (valid unlock phrase to update node)
| [AM updated node] --(time window expired)--> [AM locked node ]
| | | ^
| | v |
| | (valid unlock phrase to update node)
(valid unlock phrase to claim ownership)
[USER claimed node] (behaves like any regular user node)
This RFC has been refined during a short CB-discussion involving the feedback of tye and mr_mischief.