You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The objective in this proposal is a smart contract to control the reputation of collaborators in GoBlockchain.
The base of a trust is a reputation, because that were created intermediary to establish relationships of trust between people.
When people join a GoBlockchain to make projects or give class, they need to getting points through tasks as participate of creation projects, events, class, etc.
How:
contractReputation{/** * contract address */PersonIdentitypublicpersonIdentity;/** * Profile by collaborators */enumTypeProfile{COLAB,AMBASSADOR,ESPECIALIST,ADVISOR}TypeProfilepublictypeProfile;/** * map with id profile and range of reputation */mapping(uint8=>Profile)mapProfile;/** * map with the colab address and your profile */mapping(address=>ProfileColab)mapProfileColab;/** * Range of reputation, ex: * 1 until 100 is a collaborator * 101 until 300 is a ambassador */structRangeReputation{uint64start;uint64end;}/** * Profile of collaborators */structProfile{TypeProfiletypeProfile;RangeReputationrange;boolstatus;}/** * Colab profile with the total points */structProfileColab{addressaddresssColab;Profileprofile;intpoints;}/** * @dev setIdentityContract Add a address of indentity to check if a address is a collaborator. * @param address is the contract Identity */functionsetIdentityContract(address_contractAddress)public;/** * @dev addReputation. Add a reputation with the range, ex: Ambassador = 100, 200 * @param _type is the type of profile * @param _start the number of start range * @param _end the number of end range */functionaddReputation(TypeProfile_type,uint64_start,uint64_end)public;/** * @dev removeReputation. Remove a reputation, change the status to false */functionremoveReputation(TypeProfile_type)public;/** * @dev addPersonReputation. Add a reputation in a person * @TODO change the modifiers to a vote */functionaddPersonReputation(address_addressColab,int8_points);/** * @dev removePersonReputation. Remove a reputation of the person * @TODO change the modifiers to a vote */functionremovePersonReputation(address_addressColab,int8_points);}
What if we change the TypeProfile to an array or some sort of structed data, so we can create different types of profiles.
Instead of being limited to "COLAB, AMBASSADOR, ESPECIALIST, ADVISOR" we can have some flexibility to create and setup new kinds of profiles when we need.
Author: Henrique Leite
Category: Smart Contract
Why
The objective in this proposal is a smart contract to control the reputation of collaborators in GoBlockchain.
The base of a trust is a reputation, because that were created intermediary to establish relationships of trust between people.
When people join a GoBlockchain to make projects or give class, they need to getting points through tasks as participate of creation projects, events, class, etc.
How:
Date Created:
15/09/2018
Requires:
Link used to study:
https://github.com/pandoraboxchain/token-1329-hackathon/blob/master/contracts/reputation/ReputationIssuable.sol
The text was updated successfully, but these errors were encountered: