|
| 1 | +# Tornado-SVM GitHub Actions Workflows |
| 2 | + |
| 3 | +## Testnet Transaction Metrics Workflow |
| 4 | + |
| 5 | +This workflow automates the process of running Tornado-SVM privacy solution transactions on Solana testnet and generating comprehensive metrics reports. |
| 6 | + |
| 7 | +### Workflow: `tornado_testnet_transaction.yml` |
| 8 | + |
| 9 | +**Purpose:** Execute the complete Tornado-SVM transaction flow on Solana testnet and collect detailed performance metrics. |
| 10 | + |
| 11 | +### Trigger Methods: |
| 12 | + |
| 13 | +1. **Manual Trigger:** Run the workflow on-demand via GitHub UI with configurable parameters |
| 14 | +2. **Scheduled Runs:** Automatically runs weekly on Sundays at midnight UTC |
| 15 | +3. **Pull Request Trigger:** Runs on PRs to the master branch that modify core files |
| 16 | + |
| 17 | +### Configurable Parameters: |
| 18 | + |
| 19 | +- **Denomination:** Amount of SOL to use in the transaction (default: 1 SOL) |
| 20 | +- **Merkle Tree Height:** Height of the Merkle tree for the Tornado instance (default: 20) |
| 21 | +- **RPC URL:** Custom Solana RPC URL (defaults to testnet) |
| 22 | + |
| 23 | +### What the Workflow Does: |
| 24 | + |
| 25 | +1. Sets up the Solana toolchain and required dependencies |
| 26 | +2. Creates a new Solana wallet and requests an airdrop |
| 27 | +3. Deploys the Tornado-SVM program to the Solana testnet |
| 28 | +4. Initializes a new Tornado instance |
| 29 | +5. Performs a complete deposit and withdrawal flow with zkSNARK proofs |
| 30 | +6. Captures detailed metrics at each step including: |
| 31 | + - Execution times for each phase |
| 32 | + - Transaction signatures |
| 33 | + - Compute unit consumption |
| 34 | + - Gas fees |
| 35 | + - Transaction details |
| 36 | +7. Generates a comprehensive markdown report with visualizations |
| 37 | +8. Creates a GitHub job summary |
| 38 | +9. Uploads all reports and raw metrics as artifacts |
| 39 | + |
| 40 | +### Artifacts Generated: |
| 41 | + |
| 42 | +- **transaction_report.md:** Complete markdown report with all metrics and visualizations |
| 43 | +- **metrics/*.json:** Raw JSON data for transaction details |
| 44 | +- **metrics/execution_times.txt:** Detailed timing measurements for each phase |
| 45 | + |
| 46 | +### Using the Report: |
| 47 | + |
| 48 | +1. Download the artifact from the completed workflow run |
| 49 | +2. Open the markdown report to view all metrics and visualizations |
| 50 | +3. The report includes: |
| 51 | + - Executive summary |
| 52 | + - Configuration details |
| 53 | + - Transaction logs |
| 54 | + - Detailed metrics for each transaction |
| 55 | + - Explorer links for all on-chain activity |
| 56 | + - Visualizations of the transaction flow and zkSNARK process |
| 57 | + - Solana network stats during the test |
| 58 | + |
| 59 | +### Example Usage |
| 60 | + |
| 61 | +To manually trigger the workflow with custom parameters: |
| 62 | + |
| 63 | +1. Go to the "Actions" tab in the GitHub repository |
| 64 | +2. Select "Tornado SVM Testnet Transaction Test" workflow |
| 65 | +3. Click "Run workflow" |
| 66 | +4. Enter your desired parameters (denomination, Merkle tree height, RPC URL) |
| 67 | +5. Click "Run workflow" |
| 68 | +6. Once completed, download the artifacts from the workflow run |
0 commit comments