Gevulot Docs
Search
K
Comment on page

Transactions

Transaction types in Gevulot:
Type
Description
Transfer
Transfer funds from one address to another
Stake
Stake funds to a prover or validator node
Unstake
Unstake funds from a prover or validator node
Deploy
Deploy a prover and/or verifier program
Run
Run a proving workload
Cancel
Cancel a proving workload
Deploying a Program
Deployments in Gevulot are immutable and permanent by default. Deployment transactions need to contain a pointer to the program binary (URL) and a hash commitment so the downloaded program can be verified. When a program is deployed, it becomes usable at the next epoch.
Running a Program
The full lifecycle of running a prover program:
  1. 1.
    Run transaction is sent to network, which specifies program ID, input pointer + hash commitment, amount of provers and max cycles per prover.
  2. 2.
    Receiving node puts the transaction into the mempool for prover allocation and for inclusion in the next block.
  3. 3.
    Prover nodes complete workload and put the proof back into the mempool for verification
  4. 4.
    Validator nodes verify the proof and vote on its correctness
  5. 5.
    Once 2/3 of validator nodes have verified, the leader includes the proof in the next block
A user can also cancel a workload, by submitting a cancel transaction. The cancellation will only be heeded by the provers once the transaction has finality and has propagated across the network at which point they will cease running the program. Once a proving workload is cancelled the user will pay for the cycles used up until the cancellation transaction reached finality.