DIN-center / din-sc

1 stars 0 forks source link

Tracking and Storing Deployment Bundles for Transparency and Auditability #26

Open noleto opened 3 months ago

noleto commented 3 months ago

Goal

Enable any public user to consult, audit, and suggest improvements on the Deployment Bundle composed of generated Solidity contracts.

Context

DIN supports several blockchain networks in a decentralized fashion. To ensure code quality, security, and an easy and maintainable development workflow, we generate all Solidity code required to deploy a network in the DIN protocol from a well-structured definition file (YAML format). In the main repository, we store the definition files and the meta-code (the code that generates the specialized Solidity codes for each network). To deploy a network, we generate, in addition to the smart contract for the JSON RPC provider itself, the deployment scripts. Currently, these generated artifacts are not tracked in the repository.

Desired Situation

Any user should be able to browse, audit, check, or question the Solidity files that were generated by the din-sc repository. These files should be tracked and provided in an easy format for consultation. They should be linkable to any blockchain explorer as proof of validated contracts and easily used in any standard versioning tool to compare differences and changes from one version to another. Since the deployment bundle contains all Solidity code that is deployed on the blockchain, it should be stored, versioned, and aligned with the versions deployed on the blockchain. Storing the deployed bundles ensures transparency, consistency, reproducibility, and a robust audit trail, all of which are critical for maintaining trust, security, and quality in a decentralized protocol.

noleto commented 3 months ago

FYI @cds-amal

cds-amal commented 2 months ago

This PR should define and enforce the naming conventions for deployment bundles. See: https://github.com/DIN-center/din-sc/pull/27#discussion_r1666474700