The CLI command (solana program deploy
) doesn't seem to permit offline signing.
Is there any other way to deploy a solana program without putting the contract authority on an internet-connected computer?
It's almost possible. You'll need to follow the instructions for deploying to a buffer before performing the upgrade in one transaction.
Essentially, you have a hot key write the program buffer with solana program write-buffer
, and then the upgrade authority only authorizes the upgrade transaction with solana program deploy --program-id <> --buffer <>
.
It wouldn't be a lot of work to add the sign_only
flag to the deploy
command to have the last bit done offline. Feel free to submit an issue for that! https://github.com/solana-labs/solana/issues
More information at: https://docs.solana.com/cli/deploy-a-program#using-an-intermediary-buffer-account