pomelo-io / bounties-issues-dev

Dev repo for bounties
0 stars 0 forks source link

💰 0 USDT Bounty - "Review Music Encyclopedia Smart Contract Design" #118

Closed PomeloBounties closed 7 months ago

PomeloBounties commented 7 months ago

Bounty

Review Music Encyclopedia Smart Contract Design created by @drewbop on Pomelo Bounties

Summary

Job Description: Review the design of the Music Encyclopedia Smart Contract, including logic and flows, economic system, computing efficiency, contract/back-end/front-end design, and potential vulnerabilities. Identify potential contract vulnerabilities, consider economic and game theoretical vulnerabilities, explore Sybil and DDOS vulnerability, and describe mitigation techniques.

Apply

https://bounties.pomelo.io/bc2acb421413

Original Issue

https://github.com/ursapolarisrecords/polaris/issues/12

Title

Review Music Encyclopedia Smart Contract Design

Body

Acceptance Criteria:

Background:

Base operation:

The smart contract is used as an event source for the music encyclopedia database. The database should be able to be reconstructed by replaying each blockchain action, including additions, deletions, and edits, in sequence.

The contract will create a token, maybe called POL or PLR or POLR. In the future, we hope to expand the scope to include another token, to be used to reward artists based on their representation on the graph. However, this is not part of the current scope and is mentioned only to share the north star of the project.

Upon signup, the user stakes a number of EOS sufficient to cover their resource usage.

This contract will allow any person to stake a number of tokens (either native POL or EOS/USDT/?) and then publish a proposed addition to the Polaris Music Encyclopedia. The submission will then enter the queue that waits for other users to stake their own tokens to verify the submission as good or bad data. Each subsequent submission by the user will result in an increase in the required stake.

Bad data is punished by having the submission user's stake slashed, as are verifiers who vote against the consensus result. Original stake and a portion of slashed funds are returned to those verifiers who reached consensus.

Good data is rewarded with the minting of new tokens to be shared between the submitter and the verifiers. Potentially 70% to submitter, 20% to verifiers, and 10% to the team.

Each subsequent token reward diminishes the amount of the next reward, such that if this reward is "R" and the number of previous transactions is "t", R = log(t) / t . This formula is based on Metcalfe's law of network growth (n)(log(n)) combined with the inverse square law 1/n^2.

Front-end interaction:

Front end consists of a graph visualization displaying nodes and edges representing the relationships between musical artists, as well as a text sidebar that displays information about the selected node. It also includes a submission form for adding new data.

The contract must keep the following in its global state:

The contract must keep the following data in state for each account:

The contract must keep the following data in state for each submitted data item, temporarily, until the data is verified by a supermajority after 10 days:

More detailed explorations and explanations are in the pseudocode for the smart contract https://github.com/UrsaPolarisRecords/Polaris/blob/main/eosSmartContractPSEUDO.md as well as in the rudimentary initial smart contract https://github.com/UrsaPolarisRecords/Polaris/blob/main/ursa.cpp

Base Reward

0.0500 USDT

Note

For technical discussion use the original issue. This issue is for tracking the bounty application and implementation progress.

PomeloBounties commented 7 months ago

Bounty fully funded with 0.0500 USDT reward!

Accepting applications here

PomeloBounties commented 7 months ago

Bounty application submitted by @andrewrec with a message:

I want to do this!

Waiting for your approval @drewbop

PomeloBounties commented 7 months ago

Bounty application submitted by @andrewrec with a message:

I want to do it!

Waiting for your approval @drewbop

PomeloBounties commented 7 months ago

Bounty application submitted by @drew-bop with a message:

I can accomplish this task!

Waiting for your approval @drewbop

PomeloBounties commented 7 months ago

Bounty application denied for @drew-bop with a message:

I don't like the look of you

PomeloBounties commented 7 months ago

Bounty application approved. Good luck @andrewrec!

PomeloBounties commented 7 months ago

Bounty work submitted by @andrewrec with a message:

https://www.google.com

Waiting for your approval @drewbop!

PomeloBounties commented 7 months ago

Bounty work denied for @andrewrec with a message:

That's just google

PomeloBounties commented 7 months ago

Bounty work submitted by @andrewrec with a message:

I'm done!

Waiting for your approval @drewbop!

PomeloBounties commented 7 months ago

Bounty forfeited by @andrewrec with a message:

Over it

PomeloBounties commented 7 months ago

Bounty application submitted by @andrewrec with a message:

I've done it already!

Waiting for your approval @drewbop

PomeloBounties commented 7 months ago

Bounty application approved. Good luck @andrewrec!

PomeloBounties commented 7 months ago

Bounty work submitted by @andrewrec with a message:

How about now!

Waiting for your approval @drewbop!

PomeloBounties commented 7 months ago

Bounty funds released and ready to be claimed @andrewrec!

PomeloBounties commented 7 months ago

Bounty 0.0500 USDT successfully claimed