The road to mainnet

@bumi and I are talking about this topic in person in Berlin currently, so we’ll try to keep notes of the steps/requirements that we’re discussing. Could be random, might organize more later.

Mainnet choice

As discussed in multiple weekly calls before, we’d like to try deploying to RSK, as it’s both tied to bitcoin as well as compatible with Solidity contracts (which we’re currently using).

Challenges

Required features

Ideas

  • Use OpenZeppelin upgradable contracts with hardhat plugin
  • Upgrades can currently be managed by one admin key - can be changed later to a multisig or voting contract
  • permissions can be hardcoded in the contracts - we use only 4-5 different roles/permissions
  • contracts can manually be linked together (the contribution contract knows the address to the contributor proxy contract address - those do not need to be changed)
1 Like

After looking into it for a while, we’re fairly certain that using the Aragon parts of our setup will not be feasible on RSK. We’ll have to look into replacing that functionality with either custom code and/or other, perhaps more specialized libraries or contracts.

Quick update:

We had some nice, and fairly easy wins today, removing the Aragon parts from the Contributor contract, and using OpenZeppelin upgradeable contracts instead, then deploying to a local chain using Hardhat instead of Truffle.

Still completely WIP, but looking promising.