Currently, the Rollups CLI allows anyone to deploy a new CartesiDApp contract subscribed to any consensus. If the address of the consensus contract is not provided, the Rollups CLI assigns the DApp to a default Authority, deployed by us.
This default behavior, however, poses a serious threat to our roadmap to decentralization, since the power of submitting claims is very much centralized in the hands of the Authority owner. Therefore, we intend to remove the deployment information of this contract for the next release of the @cartesi/rollups package.
With the absence of a single Authority contract, we are making the effort of creating factories so that anyone can deploy new Authority contracts for their own projects. We need to make this change be reflected in the Rollups CLI as well.
āļø Solution
There should be no default value for the initial consensus of a DApp deployed through the Rollups CLI.
We can add a command to the Rollups CLI that would allow the user to deploy a new Authority contract. This command should accept an optional salt to deterministically deploy contracts with the CREATE2 opcode. If such a salt is not provided, the Rollups CLI may deploy contracts in a non-deterministic way.
:chains: Requires
[x] cartesi/rollups-contracts#25
[x] cartesi/rollups-contracts#27
[x] cartesi/rollups-contracts#29
š Subtasks
[x] Remove default value for consensus
[x] Add command for deploying a new Authority contract
š Context
Currently, the Rollups CLI allows anyone to deploy a new
CartesiDApp
contract subscribed to any consensus. If the address of the consensus contract is not provided, the Rollups CLI assigns the DApp to a default Authority, deployed by us.This default behavior, however, poses a serious threat to our roadmap to decentralization, since the power of submitting claims is very much centralized in the hands of the
Authority
owner. Therefore, we intend to remove the deployment information of this contract for the next release of the@cartesi/rollups
package.With the absence of a single
Authority
contract, we are making the effort of creating factories so that anyone can deploy newAuthority
contracts for their own projects. We need to make this change be reflected in the Rollups CLI as well.āļø Solution
There should be no default value for the initial consensus of a DApp deployed through the Rollups CLI.
We can add a command to the Rollups CLI that would allow the user to deploy a new
Authority
contract. This command should accept an optional salt to deterministically deploy contracts with theCREATE2
opcode. If such a salt is not provided, the Rollups CLI may deploy contracts in a non-deterministic way.:chains: Requires
š Subtasks
Authority
contract