oceanprotocol-archive / bounties

🎣 Bounties for Ocean Protocol
Apache License 2.0
11 stars 0 forks source link

Ocean Bounty: Proof of Concept - Smart Contract Upgradability with ZeppelinOS #9

Closed Anirudh2490 closed 5 years ago

Anirudh2490 commented 5 years ago

Ocean Bounty: Proof of Concept - Smart Contract Upgradability with ZeppelinOS

How can you help?

We want a Proof of Concept that demonstrates the upgradability of our Smart Contracts using ZeppelinOS. The concept must demonstrate a general solution which defines the different scenarios to be tested independently from the pattern/framework. Some of these are bug fix upgrade (no business logic or storage change) change in business logic change in storage backward compatible change of interface breaking change of interface The below diagram is a high level overview on how ZeppelinOS will work.

screenshot 2018-12-10 at 12 16 25

We want to upgrade our keeper contract repo using ZeppelinOS’s upgradability governance. Here is an example.

What needs to be done?

Technical Stack

Keeper contracts and ZeppelinOS are both written in solidity. Repo for ZeppelinOS smart contracts can be found here.

We are very happy when

Seen this problem before?

Any help solving this is welcome. Feel free to leave any comments and help someone else to solve it. We might airdrop tokens to someone even if not directly completing bounty.

Questions & Reviews

Pull requests will be reviewed by one of the maintainers or long-term contributors. In case of any additional questions feel free to ask in this thread and we will do our best to add the missing info :)

Things to know

The bounty lifecycle process including payout will be managed using Gitcoin. We'll be responding to your questions here, but for discussion and clarification we recommend to join also our Gitter channel where our tech community is accessible. In order to see the PROCN balance in your wallet you'll need to reference the related token contract with address 0xf2aabdd898a0139195b2b5da7387d43a45ded254. If you use a Metamask plugin you'll find the the exact steps here. Lastly, even if it is a contest bounty, we will reward all valuable contributions and efforts. We greatly appreciate the value our open source community brings to Ocean and will always award some tokens to all great contributions! :smiley:

Reward

Once the project was reviewed and merged in the master branch, you will receive the reward. PROCN is a proto-Ocean token. Bounty hunters that earn PROCN will be able to convert them 1:1 to Ocean tokens on network launch (price of Ocean Token during pre-launch was valued at 0.20 EUR/token. However, once the Ocean token is available on public exchanges, the Ocean token price will likely be different). Network launch is expected to happen by Mar 31, 2019. Until then PROCN will be locked and non-transferrable in the ETH wallet to which it is delivered to.

gitcoinbot commented 5 years ago

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


This issue now has a funding of 10000.0 PROCN attached to it as part of the Ocean Protocol Foundation fund.

gitcoinbot commented 5 years ago

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


Work has been started.

These users each claimed they can complete the work by 3 years, 1 month ago. Please review their action plans below:

1) mestorlx has been approved to start work.

Hi, I worked in the past with zeppelin os and now some of the team members. I will first make a POF of the simplest contract which could be DIDRegistry.sol. Once the entire mechanism is validated will proceed with the rest. 2) astrovicis has been approved to start work.

I plan to create a boilerplate upgradeability system repo from the upgrade system currently being used by MatryxPlatform: a scientific innovation blockchain smart contract platform my company has produced.

I will create a new repo that: 1) is agnostic to particular use cases 2) allows smart contracts to undergo logic upgrades post deployment 3) allows smart contracts to undergo storage layout upgrades post deployment

Learn more on the Gitcoin Issue Details page.

Anirudh2490 commented 5 years ago

@mestorlx welcome! Thanks for applying for this bounty, it's great to have you on board. If you've got any doubts on how to proceed, we're available on chat - https://gitter.im/oceanprotocol/Lobby. You can also tell us more approach the work, what will be your steps and when you are planning to complete. Cheers!

mestorlx commented 5 years ago

@Anirudh2490 thanks for the welcome. Already joined gitter.

mestorlx commented 5 years ago

@Anirudh2490 I just created a repo with a POC here will appreciate some feedback

Astrovicis commented 5 years ago

Hey guys, check out MatryxPlatform! We've written an upgradeability system for cheap, address-retaining, post-deployment upgrades that we're quite fond of :) The bulk of the upgrade logic is contained within MatryxSystem.sol and the fallback functions of MatryxPlatform and MatryxTrinity.

I see that the time to complete this bounty is almost up, but if a boilerplate repo would be desireable, let me know! I could get one up by the end of the week.

gitcoinbot commented 5 years ago

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


Work for 10000.0 PROCN has been submitted by:

  1. @astrovicis
  2. @mestorlx

@chalidbdb please take a look at the submitted work:


Astrovicis commented 5 years ago

Boilerplate code here!

I wasn't able to get documentation done in time or run through it for errors and bugs but I can begin doing that when I wake up.

Anirudh2490 commented 5 years ago

@Astrovicis thanks for the submission! Can you create a PR to the Keeper Contracts repo? Our team will look into your solution after this.

Astrovicis commented 5 years ago

Sure thing!

mestorlx commented 5 years ago

@chalidbdb The PR has been merged. could you please close the gitcoin issue. Thanks

gitcoinbot commented 5 years ago

⚡️ A tip worth 1000.00000 PROCN has been granted to @mestorlx for this issue from @chalidbdb. ⚡️

Nice work @mestorlx! Your tip has automatically been deposited in the ETH address we have on file.

gitcoinbot commented 5 years ago

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


The funding of 10000.0 PROCN attached to this issue has been approved & issued to @mestorlx.

Additional Tips for this Bounty:


Astrovicis commented 5 years ago

Just finished generalizing our upgrade system on its own repository. I recognize that mestorlx won the bounty; would it still be useful at this point to create a PR?

Anirudh2490 commented 5 years ago

@Astrovicis absolutely! Don't worry about the bounty, we will reward any useful contribution. We've mentioned that under the 'Things to know' section in the task. Please go ahead and create a PR.