Skip to content

Commit ef769ae

Browse files
authored
Merge pull request #73 from unattended-backpack/dev
feat: devops refactor
2 parents 73f4dc5 + 424f719 commit ef769ae

110 files changed

Lines changed: 10092 additions & 881 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.actrc

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# This is an act configuration to test GitHub Actions locally.
2+
# See docs/WORKFLOW_TESTING.md for more details.
3+
4+
# Use minimal Ubuntu image for self-hosted runners (authenticate job).
5+
# The release job uses its own explicit container specification.
6+
# Pinned to specific digest for supply-chain security.
7+
-P self-hosted=catthehacker/ubuntu@sha256:421db41052a1c9eb3c62668e04cbfbd353855619a9771657d9a8a370655db04a
8+
-P actions-runner=catthehacker/ubuntu@sha256:421db41052a1c9eb3c62668e04cbfbd353855619a9771657d9a8a370655db04a

.env.example

Lines changed: 104 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,105 @@
1-
###############################################################################
2-
# ↓ REQUIRED ALWAYS↓ #
3-
###############################################################################
4-
5-
### Used in Magister (Vast.ai wrapper) and Hierophant
6-
# Publically reachable ip of the machine this docker setup is running on.
7-
# Used by remotely hosted vast.ai Contemplants to communicate to the Hierophant at this ip.
8-
# Also used by Magister to make Hierophant aware of it.
9-
# Used in Hierophant to advertise where to upload artifacts.
10-
THIS_IP=
11-
12-
### Used in Magister (Vast.ai wrapper)
13-
# Make a vast.ai account, load it with some funds, and get an api key.
14-
# This is to allow for easy allocation and deallocation of worker nodes for the
15-
# Hierophant prover network. Each vast.ai instance only cost 0.3 - 0.6 $/hour
16-
VAST_API_KEY=
17-
18-
###############################################################################
19-
# ↓ DEFAULTS ↓ #
20-
###############################################################################
21-
# Only modify this section if you know what you're doing
22-
23-
### Used in Magister (Vast.ai wrapper)
24-
# number of provers (Contemplant instances) running on vast.ai
25-
# This will impact your vast.ai bill.
26-
NUMBER_PROVERS=1
27-
# This is a vast.ai template that contains a `contemplant` binary. Vast.ai instances run using this template.
28-
# When a new Contemplant template is pushed to Vast.ai make sure to copy the new template hash from the Vast UI and add it here.
29-
VAST_TEMPLATE_HASH=1878058a3fab0d314a768287dc41c456
30-
31-
PORT__HIEROPHANT_GRPC=9000
32-
PORT__HIEROPHANT_HTTP=9010
33-
PORT__MAGISTER_HTTP=8555
1+
# Example environment configuration.
2+
# Copy this file to .env and adjust as needed.
3+
# Environment variables override values in hierophant.toml and contemplant.toml.
344

5+
# Hierophant Configuration
6+
# ========================
7+
8+
# OPTIONAL: Port for gRPC service (default: 9000).
9+
# GRPC_PORT=9000
10+
11+
# OPTIONAL: Port for HTTP and WebSocket service (default: 9010).
12+
# HTTP_PORT=9010
13+
14+
# OPTIONAL: Timeout in seconds for worker responses (default: 30).
15+
# How long to wait for a response from a worker before evicting them.
16+
# WORKER_RESPONSE_TIMEOUT_SECS=30
17+
18+
# OPTIONAL: Publicly reachable address of this Hierophant for artifact uploads.
19+
# This is used by clients to upload program inputs and download proofs.
20+
# THIS_HIEROPHANT_IP=
21+
22+
# OPTIONAL: Public key for signing messages (default: zero address).
23+
# Key pair used for signing messages to the client and retrieving nonces.
24+
# PUB_KEY=0x0000000000000000000000000000000000000000
25+
26+
# OPTIONAL: Create mock proofs instead of real proofs (default: false).
27+
# Witness generation still happens, but proof generation is skipped.
28+
# MOCK_MODE=false
29+
30+
# OPTIONAL: Directory for storing artifacts on disk (default: "artifacts").
31+
# ARTIFACT_STORE_DIRECTORY=artifacts
32+
33+
# OPTIONAL: Maximum number of stdin artifacts stored (default: 50).
34+
# Artifacts can be large, so we limit how many are stored on disk.
35+
# MAX_STDIN_ARTIFACTS_STORED=50
36+
37+
# OPTIONAL: Maximum number of proof artifacts stored (default: 10).
38+
# MAX_PROOF_ARTIFACTS_STORED=10
39+
40+
# Worker Registry Settings
41+
# -------------------------
42+
# These settings control when workers are evicted.
43+
44+
# OPTIONAL: Number of strikes before eviction (default: 3).
45+
# Workers get strikes when they fail to respond to requests.
46+
# MAX_WORKER_STRIKES=3
47+
48+
# OPTIONAL: Maximum seconds between heartbeats before eviction (default: 180).
49+
# Workers must send heartbeats regularly to stay registered.
50+
# MAX_WORKER_HEARTBEAT_INTERVAL_SECS=180
51+
52+
# OPTIONAL: Maximum minutes a worker can spend on a proof (default: 300).
53+
# Workers taking longer than this are considered dead and evicted.
54+
# PROOF_TIMEOUT_MINS=300
55+
56+
# OPTIONAL: Minutes between required progress updates (default: 0).
57+
# Workers must show at least 1% progress every N minutes or be evicted.
58+
# Set to 0 to disable progress checking.
59+
# WORKER_REQUIRED_PROGRESS_INTERVAL_MINS=0
60+
61+
# OPTIONAL: Maximum minutes for execution report phase (default: 45).
62+
# Time allowed for execution report before proof generation starts.
63+
# WORKER_MAX_EXECUTION_REPORT_MINS=45
64+
65+
# Contemplant Configuration
66+
# ==========================
67+
68+
# OPTIONAL: WebSocket address of the Hierophant to connect to.
69+
# Format: ws://[host]:[port]/ws where port is the Hierophant HTTP port.
70+
# HIEROPHANT_WS_ADDRESS=ws://127.0.0.1:9010/ws
71+
72+
# OPTIONAL: Human-readable name for this Contemplant (default: from names.txt).
73+
# CONTEMPLANT_NAME=
74+
75+
# OPTIONAL: Prover type - "cpu" or "cuda" (default: "cpu").
76+
# CPU proving is slower but doesn't require a GPU.
77+
# PROVER_TYPE=cpu
78+
79+
# OPTIONAL: Moongate CUDA prover endpoint (default: none).
80+
# Only used when prover_type is "cuda". If not set, Contemplant will spin up
81+
# a moongate-server Docker container automatically.
82+
# MOONGATE_ENDPOINT=
83+
84+
# OPTIONAL: Heartbeat interval in seconds (default: 30).
85+
# How often to tell Hierophant that this Contemplant is still alive.
86+
# HEARTBEAT_INTERVAL_SECONDS=30
87+
88+
# OPTIONAL: Maximum number of finished proofs stored in memory (default: 2).
89+
# MAX_PROOFS_STORED=2
90+
91+
# OPTIONAL: Magister drop endpoint (default: none).
92+
# Endpoint to notify when this Contemplant should be dropped from its Magister.
93+
# Only set if this Contemplant is managed by a Magister.
94+
# MAGISTER_DROP_ENDPOINT=
95+
96+
# Assessor Settings
97+
# -----------------
98+
# These settings control proof progress monitoring.
99+
100+
# OPTIONAL: Path to log file for progress tracking (default: "./moongate.log").
101+
# MOONGATE_LOG_PATH=./moongate.log
102+
103+
# OPTIONAL: Log polling interval in milliseconds (default: 2000).
104+
# How frequently to check the moongate log file for progress updates.
105+
# WATCHER_POLLING_INTERVAL_MS=2000

.env.maintainer

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# This file is updated by the maintaining team as keys or details change. You
2+
# should not need to manually adjust it. If you wish to override it, there are
3+
# instructions in the README file.
4+
5+
# The name of the Hierophant Docker image.
6+
HIEROPHANT_NAME=hierophant
7+
8+
# The name of the Contemplant Docker image.
9+
CONTEMPLANT_NAME=contemplant
10+
11+
# The image to use for building this project.
12+
BUILD_IMAGE=unattended/petros:latest
13+
14+
# The runtime image to use for the final container.
15+
RUNTIME_IMAGE=debian:trixie-slim@sha256:66b37a5078a77098bfc80175fb5eb881a3196809242fd295b25502854e12cbec
16+
17+
# The URL where large, specifically-vendored binaries are downloaded from.
18+
VENDOR_BASE_URL=https://sigil-attic.nyc3.digitaloceanspaces.com/sigil-tarballs
19+
20+
# The SP1 circuits version to use in the build.
21+
CIRCUITS_VERSION=v5.0.0

.github/pull_request_template.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
## Description
2+
<!-- Describe your changes in detail -->
3+
4+
## Breaking Changes
5+
<!-- List any breaking changes. Delete this section if none. -->
6+
7+
## Bug Fixes
8+
<!-- List bug fixes. Delete this section if none. -->
9+
10+
## Features
11+
<!-- List new features. Delete this section if none. -->
12+
13+
## Checklist
14+
- [ ] I confirm all tests pass (`make test`)
15+
- [ ] I confirm any manual testing is completed
16+
- [ ] I updated any relevant documentation
17+
- [ ] My code follows style guidelines
18+
19+
---
20+
*Note to maintainers: Sections above will be included in the release notes. You can edit this PR description before merging to improve the release notes.*

0 commit comments

Comments
 (0)