You guys have no idea what is about to happen and what you guys are apart of for that matter, this is beyond amazing. If there was a list of achievements one would base an advanced civilizations progress on, this exact thing would be at the core of so much.
Sry for getting all wierd and everything, but I just know what is going to happen and it’s amazing.
I think this systemdoc is outdated. With the creation of Structured Data the safecoin is another SD, the number 7, and the transactions follows the rules of other SD. We don’t need the transaction manager.
Safecoin Management
Each safecoin is represented as a piece of data held by the group closest to it’s ID. Safecoin data structure is defined as:
‘’‘rust
ID: 64 bytes
OWNER: 64 bytes
‘’’
The ID of a safecoin is 64Bytes long, with the most meaningful 32 bits being sequenced index starts from 0 to 4294967295, and the left over part to be fullfiled with all zeros or other pre-defined pattern (to allow coin division).
The OWNER of a safecoin is the wallet address provided by the pmid_node as mentioned above.
The Safecoin Management group can only approve a farming request when no such targeted safecoin data has been created before.
When being asked to transfer the owevership, the request transcript must provide a valid signature that can be verified by the stored OWNER, which is actually a public-key. And the the owner will be updated to the new owner.
When being asked to burn a coin, the request can only be from the current owner. The piece of data will then be removed.
Account Management
An Account Management group is a group of nodes closest to a user’s wallet address. It is resposible for that user’s safecoin relation activities: rewarding, transfering or discarding.
A user’s safecoin account is defined as :
‘’‘rust
OWNER: 64 bytes
COINS: Vec<SAFECOIN_ID>
‘’’
rewarding : when received notification a safecoin has been sucessfully farmed, record the ID of that coin into the account
transfer out : remove certain number of coins from the account record, and notify the receiver’s account group and the chosen safecoins’ management groups of the ownership transferring.
transfer in : when being notified by the sender’s account group and the safecoin management group, the correspondent safecoin’s ID will be inserted into the record.
discarding : This is a special case that no receiver has been specified. the safecoin will be removed from the account and the chosen safecoins’ management groups will be notified with a burning request.
And here is the peudo-code for a transfer. As can see a transfer is a simple owner data change and a notification to the requester and receiver.
Transfer => {
if !coin_list.has(coin) {
return Error::NoSuchCoin;
}
if coin_list.get(coin).owner != requester {
return Error::InvalidRequest;
}
coin_list.update(coin, requester, receiver);
// send notification to both the requester and receiver
routing.PostResponse(coin, requester);
routing.Post(coin, receiver);
}
It’s going to be exciting to watch, even if only some parts of the community’s visions come to fruition. It will enable so many good things. I wonder how history will record events if the SAFE Network is pulled off as imagined by us here.
I’m hoping that we can use the network to make MUCH more efficient and productive use of knowledge and data. There are so many fields with very specialised knowledge, which has potential to be combined with knowledge from completely different fields. I want these chunks of knowledge to be able to readily meet each other on this network and to be used for innovation. At the moment, that is to say pre-SAFE, this sort of relies on luck (e.g. a chance discussion between two people when one says something crucial leading to a eureka moment). I think important patterns in data will be spotted with SAFE in a way which is infeasible otherwise, which could help all sorts of scientific studies and lead to great advancements.