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

Add Contract Deployment System #1071

Closed
Tracked by #1689
HDauven opened this issue Sep 25, 2023 · 1 comment
Closed
Tracked by #1689

Add Contract Deployment System #1071

HDauven opened this issue Sep 25, 2023 · 1 comment
Assignees
Labels
Epic A large feature encompassing multiple sub-issues module:rusk Issues related to rusk module type:feature implementing a new feature

Comments

@HDauven
Copy link
Member

HDauven commented Sep 25, 2023

Summary

We currently only support the deployment of genesis contracts in Rusk. The virtual machine itself contains the logic to deal with deployments. To allow for post-genesis deployments, we need to add a contract deployment system.

Possible solution design or implementation

We need to:

  1. Transaction type: Introduce a transaction type or add an extra field to specify it is a contract deployment. This transaction will include the compiled bytecode of the contract. (Related issue Add contract deployment transaction #1882)
  2. Contract format: Specify a common contract format in ABI form. (Wiki: Contract Deployment Format, ID format: Implement contract ID generation mechanism #1884)
  3. Address generation: Implement a mechanism for generating a unique address for each deployment.
  4. Gas and fees: Define the gas cost for deploying a smart contract. (Charge for a contract deployment transaction #1883)
  5. Security: Consider whether we need some form of verification procedure to ensure the validity and security of a deployed contract. (Related issue Prevent JIT bomb attacks piecrust#351)
  6. Documentation: Provide minimal documentation on the standards/procedures for third-party devs to follow when deploying a contract. (Related issue https://github.com/dusk-network/docs/issues/74, TODO: Add DIP)
  7. Tooling: Provide a simple tool to deploy contracts. (Related issue: CLI Tool for smart contracts' deployment dusk-deploy-cli#1)
@HDauven HDauven added type:feature implementing a new feature team:Core module:rusk Issues related to rusk module labels Sep 25, 2023
@miloszm miloszm self-assigned this Jan 10, 2024
@HDauven HDauven removed the team:core label Apr 8, 2024
@HDauven HDauven added this to the Mainnet milestone Apr 8, 2024
@HDauven HDauven assigned ureeves and unassigned miloszm Apr 10, 2024
@HDauven HDauven added the Epic A large feature encompassing multiple sub-issues label Jun 27, 2024
@HDauven HDauven assigned miloszm and unassigned ureeves Jun 27, 2024
@HDauven HDauven removed this from the Remaining for Mainnet milestone Jul 3, 2024
@HDauven
Copy link
Member Author

HDauven commented Aug 21, 2024

Closing, dusk-network/piecrust#351 will be tackled separately.

@HDauven HDauven closed this as completed Aug 21, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Epic A large feature encompassing multiple sub-issues module:rusk Issues related to rusk module type:feature implementing a new feature
Projects
None yet
Development

No branches or pull requests

3 participants