threshold-network / solidity-contracts

39 stars 18 forks source link

Support deployment on Sepolia #150

Closed michalinacienciala closed 9 months ago

michalinacienciala commented 1 year ago

Why?

The Görli testnet currently used by Threshold/Keep for development purposes is planned to become deprecated with the end of year 2023. The testnet that is planned to replace it is called Holešky, however it's not yet available - it's planned it will become widely accessible on Oct 1, 2023 (source). Switching our infrastructure to support new testnet is quite time consuming, so moving directly from Görli to Holešky may be quite risky, especially if there would be some delays in the date of Holešky genesis (not meeting the planned timelines is not a rare occurrence in the Ethereum space). As a solution, we decided to switch first to another testnet that is currently live - Sepolia. This testnet's EOL is planned for 2026, which gives us plenty of time to move to Holešky before Sepolia gets deprecated.

Testnets Lifecycle: image Read more in Predictable Ethereum Testnet Lifecycle Proposal.

How?

Deploying contracts to a new testnet and adjusting CI accordingly is a work consisting of many tasks and requiring coordination of several team members. We shouldn't get rid of Görli support until we're sure that everything works on Sepolia smoothly (maybe even until Görli gets deprecated). We may consider adding Holešky support together with Sepolia in some places, for the future use (for example in Hardhat config).

What & who?

michalinacienciala commented 1 year ago

Documenting some decisions and steps of the process:

Deployer account We decided to deploy the non-dapp-dev contracts on Sepolia using the 0x68ad60CC5e8f3B7cC53beaB321cf0e6036962dBc account. This is an account that was also used for Goerli deployment. We'll use it to deploy both Keep (v1, v2) and Threshold contracts.

Deploying legacy v1 Keep contracts As some of the legacy projects are deprecated, we didn't commit the changes needed for Sepolia deployment to the repos. Only did this for keep-core project. Here is the list of updates that was done in the deprecated projects to publish the NPM packages:

michalinacienciala commented 9 months ago

As the main objective of this Issue was fulfilled (we moved the crucial components to Sepolia) and task was becoming hard to manage due to many subtasks, we decided to close this one and create a new one, just for the outstanding/blocked tasks: https://github.com/threshold-network/solidity-contracts/issues/163.