Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Colony Multi-chain Support #1083

Open
arrenv opened this issue Aug 25, 2022 · 0 comments
Open

Colony Multi-chain Support #1083

arrenv opened this issue Aug 25, 2022 · 0 comments
Labels

Comments

@arrenv
Copy link
Member

arrenv commented Aug 25, 2022

Description

In order to meet the needs of our prospective users, Colony needs to be deployed to and usable on multiple chains. The biggest concern for this implementation is Reputation, such as the cost of reputation mining.

Implementation

  • We will start a new deployment of a multi-chain compatible reputation mining client.

  • This will mean reputation mining for all chains supported by Colony will take place on a single chain.

    • The main chain for the reputation mining service is TBD. Consideration should be given to the quality of infrastructure supporting whatever chain we choose and whether or not reliable and trusted bridges/oracles exist between the host chain and the sub-chains. Gnosis chain may not be the best choice given the issues we’ve had with infra providers there requiring us to eventually roll our own.

    • A decentralised and trustless oracle service such as Chainlink, API3, or Witnet, Axelar, LayerZero, li.fi (or other suitable options) will be used to write the reputation state and logs from the reputation mining chain to the chain for which reputation was being calculated.

  • Transitioning the existing Reputation mining state to the new reputation mining solution would require a hard fork and a lot of additional work. Instead therefore we intend to save dev effort by developing the new reputation mining client and deploy it afresh on whichever chain appears most suitable for the purpose.

  • We will deploy app.colony.io which will use the new multi-chain compatible reputation network.

  • Current users on Gnosis chain will be able to continue to use Colony and the current reputation network as is on xdai.colony.io it they wish but will be encouraged to deprecate their old colonies and migrate to one of the new chains as we will set a timeline for ceasing to support the legacy gnosis chain deployment.

  • When migrating, colonies will need to recreate their old colony’s reputation state on the new chain. Therefore we might wish to consider designing a migration tool which reads the current reputation state of their colony on Gnosis chain, and creates a batch reputation update transaction in their new colony to get them started where they left off.

  • Being able to link colonies between chains would also be a desirable feature.

Stages of Implementation

  1. Create a list of suitable chain options
    • Look into popularity with target market
    • The costs of deployment, reputation mining, updating and ongoing use.
    • Look into and apply for grant opportunities
    • Current picks for this are Gnosis Chain and Polygon
  2. Choose a chain to deploy to as the main/host chain
    • It will host the reputation mining client
    • The main Metacolony (however, it may make sense to have the main Metacolony on mainnet, something to note though is if the main Metacolony is on mainnet then how could we have reputation miners earning CLNY and reputation on mainnet. A potential way to make this work could be a mining reward token e.g. mCLNY. That can be bridged/burnt and redeemed on mainnet for CLNY.)
  3. Choose a chain to deploy to as the first additional chain to support
  4. Start work on multi-chain compatible reputation mining client and reputation state contract for other chains
  5. Deploy Colony contracts to the main chain and the first other chain
  6. Deploy new multi-chain compatible reputation mining client to main chain
  7. Deploy new reputation state contract to first other chain
@arrenv arrenv added the feature label Aug 25, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant