⬆ A program for deploying and upgrading programs.

Overview

DeployDAO Migrator

Crates.io License Build Status Contributors

WARNING: This code is a work in progress. Please do not use it as is.

A program for deploying and upgrading programs.

About

The Migrator:

  • Performs program deploys and upgrades
  • Decouples program deploys/upgrades into 3 roles: the proposer, the approver, and the deployer
  • Leaves an on-chain audit trail of program upgrades and deploys

Usage

There are two forms of intended usage: "self-hosted" and the DeployDAO.

Self-hosted

This may be used for development or if you want to maintain full control over your own smart contract deployment.

  1. Reserve a program ID. This allows for the program to be deployed at the same address across multiple chains.
  2. Create a new migrator, with the approver set to your own address, a multisig, or a DAO.
  3. Upload the bytecode of the program to a buffer via solana program write-buffer. Ideally this bytecode is generated in a verifiable manner.
  4. Create a proposal to deploy the program.
  5. Approve your proposal.
  6. Anyone must supply the migrator account with enough SOL to cover the program deployment.
  7. Anyone may deploy the new migration, until the migration expires.

DeployDAO

note: this is subject to change

The DeployDAO is a decentralized autonomous organization that elects multisig holders to approve program upgrades and deploys.

To deploy a program, one should:

  1. Reserve a program ID. This allows for the program to be deployed at the same address across multiple chains.
  2. Create a new migrator, with the approver set to the DeployDAO address.
  3. Upload the bytecode of the program to a buffer via solana program write-buffer. Ideally this bytecode is generated in a verifiable manner.
  4. Create a proposal to deploy the program.
  5. Contact the DeployDAO requesting for your program to be approved for deployment.
  6. If the DeployDAO likes your code, they may approve the deployment.
  7. Anyone in the community must supply the migrator account with enough SOL to cover the program deployment.
  8. Anyone in the community may deploy the new migration, until the migration expires.

Upgrading is done very similarly.

License

The DeployDAO program and SDK is distributed under the GPL v3.0 license.

Comments
Owner
Deploy DAO
DAO for deploying smart contracts.
Deploy DAO
Allows deploying modules to Aptos under resource accounts.

Aptos Deployer Module containing helpers for deploying resource accounts. Resource accounts allow the module to sign as itself on-chain, which is usef

Deploy DAO 6 Oct 31, 2022
The Solana Program Library (SPL) is a collection of on-chain programs targeting the Sealevel parallel runtime.

Solana Program Library The Solana Program Library (SPL) is a collection of on-chain programs targeting the Sealevel parallel runtime. These programs a

null 6 Jun 12, 2022
Gum Program Library, a collection of on chain programs maintained by Gum

Gum, at its core, is a decentralized social media protocol on Solana. It unbundles traditional social media into Social Legos similar to how Defi unbu

Gum 4 Feb 22, 2023
A suite of programs for Solana key management and security.

?? goki Goki is a suite of programs for Solana key management and security. It currently features: Goki Smart Wallet: A wallet loosely based on the Se

Goki Protocol 157 Dec 8, 2022
🧑‍✈ Version control and key management for Solana programs.

captain ??‍✈️ Version control and key management for Solana programs. Automatic versioning of program binaries based on Cargo Separation of deployer a

Saber 35 Mar 1, 2022
CLI tool for deterministically building and verifying executable against on-chain programs or buffer accounts

Solana Verify CLI A command line tool to build and verify solana programs. Users can ensure that the hash of the on-chain program matches the hash of

Ellipsis Labs 5 Jan 30, 2023
Extract data from helium-programs via Solana RPC and serves it via HTTP

hnt-explorer This application extracts data from helium-programs via Solana RPC and serves it via HTTP. There are CLI commands meant to run and test t

Louis Thiery 3 May 4, 2023
⛏ An open protocol for launching liquidity mining programs on Solana.

⛏ Quarry An open protocol for launching liquidity mining programs on Solana. Background Quarry was built with the intention of helping more Solana pro

Quarry Protocol 207 Dec 19, 2022
Examples of Solana on-chain programs

spl-examples List of Solana on-chain programs which demonstrate different aspects of Solana architecture. 01__state It's a counter program. Each user

Max Block 51 Dec 6, 2022
Synchronized shadow state of Solana programs available for off-chain processing.

Solana Shadow The Solana Shadow crate adds shadows to solana on-chain accounts for off-chain processing. This create synchronises all accounts and the

null 40 Oct 30, 2022
A collection of Solana-maintained on-chain programs

Solana Program Library The Solana Program Library (SPL) is a collection of on-chain programs targeting the Sealevel parallel runtime. These programs a

Solana Foundation 2.2k Jan 6, 2023
Deploy your Solana programs during high load.

solana-deployer IMPORTANT: There is a known bug with the current program that will be fixed soon. In the meantime you should deploy from Solana Playgr

acheron 34 Nov 7, 2022
A template for command-line Rust programs

This is a template for command-line Rust programs. Clone and run the rename script with both a lowercase and UpperCase name. In the dev profile, depen

ludios 2 Oct 3, 2022
Write Anchor-compatible Solana programs in TypeScript

Axolotl Write Achor-compatible Solana programs using TypeScript. Writing Rust is hard, but safe. It's also the go-to language for writing Solana progr

Anthony Morris 17 Nov 27, 2022
Simple shared types for multi-threaded Rust programs

Keep Calm (and call Clone) Simple shared types for multi-threaded Rust programs: keepcalm gives you permission to simplify your synchronization code i

Matt Mastracci 5 Mar 6, 2023
shavee is a Program to automatically decrypt and mount ZFS datasets using Yubikey HMAC as 2FA or any USB drive with support for PAM to auto mount home directories.

shavee is a simple program to decrypt and mount encrypted ZFS user home directories at login using Yubikey HMAC or a Simple USB drive as 2FA written in rust.

Ashutosh Verma 38 Dec 24, 2022
Marinde Anchor-Based, first on mainnet, liquid-staking-program and mSOL->SOL swap pool

marinade-anchor Marinade-finance liquid staking program for the Solana blockchain Audits & Code Review Kudelski Security: https://marinade.finance/Kud

Marinade.Finance 42 Dec 11, 2022
Making composability with the Zeta DEX a breeze, FuZe provides CPI interfaces and sample implementations for on-chain program integration.

Zeta FuZe ?? Zeta FuZe FuZe is Zeta's cross-program integration ecosystem. This repository contains the Zeta Cross Program Invocation (CPI) interface

Zeta 39 Aug 27, 2022
Making Token Exchange program with Solana(Rust), Web3, and Vue

Escrow program for Solana blockchain Tech stack Program (Smart Contract) Rust crates: solana-program, spl-token Solana CLI for test validator UI Types

Hoon Wee 3 May 10, 2022