Skip to content
Merged

Gc v2 #443

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
06d048f
BitvmGC V2 (#403)
KSlashh Jun 18, 2026
824990b
update validate_pubin_disprove (#405)
KSlashh Jun 22, 2026
821775b
Feat: Implement BitVM3 deferred binding. (#404)
VanhGer Jun 22, 2026
c8e7751
remove wrapper proofs (#406)
blake-pro Jun 23, 2026
8d22085
bind graph watchtower public keys at runtime in operator proofs (#408)
blake-pro Jun 24, 2026
130763e
fix some problem (#407)
KSlashh Jun 25, 2026
c3303e4
Update operator assert logic (#409)
KSlashh Jun 28, 2026
786c9a5
Feat: validate assert witness in handle sent verifier. (#410)
VanhGer Jul 1, 2026
3893de9
Fix some problems (#411)
KSlashh Jul 1, 2026
2c5a426
Fix/gc v2 debug (#412)
blake-pro Jul 2, 2026
d6e34df
adapt to lastest change of bitvm-gc (#413)
VanhGer Jul 3, 2026
1af0dc4
Dev fix (#414)
KSlashh Jul 9, 2026
462664d
Fix: handle empty watchtower challenge txids (#415)
blake-pro Jul 11, 2026
73cdb49
audit: use tla+ to formally verify transaction graphs (#417)
eigmax Jul 22, 2026
653fbdc
Fix/flounder audit circuit (#416)
blake-pro Jul 31, 2026
f673499
fix some problems (#421)
KSlashh Aug 3, 2026
d5509b3
Feat/pi blake3 (#422)
blake-pro Aug 5, 2026
d17fd85
fix some problem & refactor (#423)
KSlashh Aug 13, 2026
c5f02cf
Refactor/bitvm (#424)
blake-pro Aug 13, 2026
ed67979
update cleanup_babe_setup_states (#425)
KSlashh Aug 13, 2026
96370ff
update deps (#426)
KSlashh Aug 13, 2026
f2f0285
Dep/ziren v1.2.7 (#427)
blake-pro Aug 17, 2026
b7100d2
Get the valid watchtowers and operators from the GOAT contract (#432)
blake-pro Aug 20, 2026
db4970c
Update deployment scripts and configuration. (#433)
blake-pro Aug 21, 2026
ad9ecd5
feat: dispatch ephemeral messages immediately (#434)
KSlashh Aug 21, 2026
6d6468b
update deps to AES garbling hash feature. (#440)
VanhGer Aug 23, 2026
e77ba20
fix node index (#441)
blake-pro Aug 24, 2026
cc668fb
Fix obsolete graph logic (#442)
KSlashh Aug 24, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .cargo/config.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
[env]
ZKM_IMM_WRAP_VK = "1"
4 changes: 2 additions & 2 deletions .claude/commands/bridge-out.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,11 @@ Initiate Bridge Out via the `bridge-out` binary (payInvoice quote -> swap initia

3. Check if the `bridge-out` binary exists at `./bin/bridge-out`. If not, run the install script to download it:
```bash
.claude/commands/install-bitvm2.sh install
.claude/commands/install-bitvm.sh install
```
To upgrade to the latest version:
```bash
.claude/commands/install-bitvm2.sh upgrade
.claude/commands/install-bitvm.sh upgrade
```
The script auto-detects the platform (x86_64-linux / aarch64-macos), downloads from GitHub Releases,
verifies the sha256 checksum, and installs all binaries to `./bin/`.
Expand Down
2 changes: 1 addition & 1 deletion .claude/commands/challenge.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ Use the `/run-challenger-node` skill to start one, or see `deployment/README.md`

5. Check if the `challenge` binary exists at `./bin/challenge`. If not, run:
```bash
.claude/commands/install-bitvm2.sh install
.claude/commands/install-bitvm.sh install
```

6. Run the command using the pre-built binary:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
#!/usr/bin/env bash
set -euo pipefail

REPO="GOATNetwork/bitvm2-node"
REPO="GOATNetwork/bitvm-node"
API_URL="https://api.github.com/repos/${REPO}/releases"
INSTALL_DIR="./bin"
VERSION_FILE=".bitvm2-version"
VERSION_FILE=".bitvm-version"

usage() {
cat <<EOF
Expand Down Expand Up @@ -71,7 +71,7 @@ do_install() {
local platform
platform="$(detect_platform)"

local tarball="bitvm2-node-${version}-${platform}.tar.gz"
local tarball="bitvm-node-${version}-${platform}.tar.gz"
local base_url="https://github.com/${REPO}/releases/download/${version}"
local url="${base_url}/${tarball}"
local sha_url="${url}.sha256"
Expand Down
4 changes: 2 additions & 2 deletions .claude/commands/pegin-request.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,11 @@ Send a pegin request to GoatChain via the `pegin-request` binary.

3. Check if the `pegin-request` binary exists at `./bin/pegin-request`. If not, run the install script to download it:
```bash
.claude/commands/install-bitvm2.sh install
.claude/commands/install-bitvm.sh install
```
To upgrade to the latest version:
```bash
.claude/commands/install-bitvm2.sh upgrade
.claude/commands/install-bitvm.sh upgrade
```
The script auto-detects the platform (x86_64-linux / aarch64-macos), downloads from GitHub Releases, verifies the sha256 checksum, and installs all binaries to `./bin/`.

Expand Down
2 changes: 1 addition & 1 deletion .claude/commands/pegout.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ Use the `/run-operator-node` skill to start one, or see `deployment/README.md` (

4. Check if the `pegout` binary exists at `./bin/pegout`. If not, run:
```bash
.claude/commands/install-bitvm2.sh install
.claude/commands/install-bitvm.sh install
```

5. Run the command using the pre-built binary:
Expand Down
4 changes: 2 additions & 2 deletions .claude/commands/rpc-health-monitor.md
Original file line number Diff line number Diff line change
Expand Up @@ -84,12 +84,12 @@ Monitor goat-node RPC health by polling graph or instance status counts, node on
```bash
# testnet4 public RPC
python3 ./.claude/commands/rpc-health-monitor.py \
--base-url https://bitvm2-api-testnet4.goat.network \
--base-url https://bitvm3-api-testnet4.goat.network \
--once

# override proof-builder lag thresholds and chain RPC sources
python3 ./.claude/commands/rpc-health-monitor.py \
--base-url https://bitvm2-api-testnet4.goat.network \
--base-url https://bitvm3-api-testnet4.goat.network \
--header-chain-height-url https://mempool.space/testnet4 \
--state-chain-rpc-url https://rpc.testnet3.goat.network \
--header-chain-lag-alert-blocks 30 \
Expand Down
22 changes: 11 additions & 11 deletions .claude/commands/run-challenger-node.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Run a BitVM2 Challenger node locally.
Run a BitVM Challenger node locally.

The Challenger verifies operator operations and submits challenges if necessary.

Expand All @@ -8,11 +8,11 @@ The Challenger verifies operator operations and submits challenges if necessary.
- **network**: Which network? `testnet4` or `regtest`
- **rpc_addr**: RPC listen address. Default: `127.0.0.1:8906`
- **p2p_port**: P2P listen port. Default: `8449` (testnet4) or `8450` (regtest)
- **db_path**: SQLite database path. Default: `sqlite:$PWD/bitvm2-node.db`
- **db_path**: SQLite database path. Default: `sqlite:$PWD/bitvm-node.db`

2. Ensure the `.env` file exists in the working directory. Template configs are at:
- **testnet4**: `deployment/testnet4/bitvm2-nodes/challenge_0/.env.challenge_0`
- **regtest**: `deployment/regtest/bitvm2-nodes/challenge_0/.env.challenge_0`
- **testnet4**: `deployment/testnet4/bitvm-noded/challenge_0/.env.challenge_0`
- **regtest**: `deployment/regtest/bitvm-noded/challenge_0/.env.challenge_0`

The user **must** fill in these required secrets:
- `BITVM_SECRET` - Node BTC key (hex or `seed:...`)
Expand All @@ -21,23 +21,23 @@ The Challenger verifies operator operations and submits challenges if necessary.

Copy the template if needed:
```bash
cp deployment/<network>/bitvm2-nodes/challenge_0/.env.challenge_0 .env
cp deployment/<network>/bitvm-noded/challenge_0/.env.challenge_0 .env
```

3. Check if the `bitvm2-noded` binary exists at `./bin/bitvm2-noded`. If not, run:
3. Check if the `bitvm-noded` binary exists at `./bin/bitvm-noded`. If not, run:
```bash
.claude/commands/install-bitvm2.sh install
.claude/commands/install-bitvm.sh install
```

4. Start the challenger node:

```bash
./bin/bitvm2-noded --rpc-addr <rpc_addr> --db-path <db_path> --p2p-port <p2p_port> --bootnodes "$BOOTNODES"
./bin/bitvm-noded --rpc-addr <rpc_addr> --db-path <db_path> --p2p-port <p2p_port> --bootnodes "$BOOTNODES"
```

To run in the background:
```bash
nohup ./bin/bitvm2-noded --rpc-addr <rpc_addr> --db-path <db_path> --p2p-port <p2p_port> --bootnodes "$BOOTNODES" >challenger_$(date +'%Y%m%d').log 2>&1 &
nohup ./bin/bitvm-noded --rpc-addr <rpc_addr> --db-path <db_path> --p2p-port <p2p_port> --bootnodes "$BOOTNODES" >challenger_$(date +'%Y%m%d').log 2>&1 &
```

5. Verify the node is running:
Expand All @@ -49,9 +49,9 @@ Should return `Hello, World!`.
### Example (testnet4)

```bash
cp deployment/testnet4/bitvm2-nodes/challenge_0/.env.challenge_0 .env
cp deployment/testnet4/bitvm-noded/challenge_0/.env.challenge_0 .env
# Edit .env to fill in BITVM_SECRET, GOAT_ADDRESS, PEER_KEY
./bin/bitvm2-noded --rpc-addr 127.0.0.1:8906 --db-path sqlite:$PWD/bitvm2-node.db --p2p-port 8449 --bootnodes /ip4/34.215.238.232/tcp/8445/p2p/12D3KooWCrPTAmhFdC5DBGgkxZvJi6iuSeiDWKRL87isrt4iMHXv
./bin/bitvm-noded --rpc-addr 127.0.0.1:8906 --db-path sqlite:$PWD/bitvm-node.db --p2p-port 8449 --bootnodes /ip4/34.215.238.232/tcp/8445/p2p/12D3KooWCrPTAmhFdC5DBGgkxZvJi6iuSeiDWKRL87isrt4iMHXv
```

For full deployment documentation, see `deployment/README.md` (section **Challenger**).
22 changes: 11 additions & 11 deletions .claude/commands/run-operator-node.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Run a BitVM2 Operator node locally.
Run a BitVM Operator node locally.

The Operator manages bridge operations, kickoff processing, and pegout (Gateway.initWithdraw).

Expand All @@ -8,11 +8,11 @@ The Operator manages bridge operations, kickoff processing, and pegout (Gateway.
- **network**: Which network? `testnet4` or `regtest`
- **rpc_addr**: RPC listen address. Default: `127.0.0.1:8902`
- **p2p_port**: P2P listen port. Default: `8445` (testnet4) or `8446` (regtest)
- **db_path**: SQLite database path. Default: `sqlite:$PWD/bitvm2-node.db`
- **db_path**: SQLite database path. Default: `sqlite:$PWD/bitvm-node.db`

2. Ensure the `.env` file exists in the working directory. Template configs are at:
- **testnet4**: `deployment/testnet4/bitvm2-nodes/operator_0/.env.operator_0`
- **regtest**: `deployment/regtest/bitvm2-nodes/operator_0/.env.operator_0`
- **testnet4**: `deployment/testnet4/bitvm-noded/operator_0/.env.operator_0`
- **regtest**: `deployment/regtest/bitvm-noded/operator_0/.env.operator_0`

The user **must** fill in these required secrets:
- `BITVM_SECRET` - Operator BTC private key (hex)
Expand All @@ -24,23 +24,23 @@ The Operator manages bridge operations, kickoff processing, and pegout (Gateway.

Copy the template if needed:
```bash
cp deployment/<network>/bitvm2-nodes/operator_0/.env.operator_0 .env
cp deployment/<network>/bitvm-noded/operator_0/.env.operator_0 .env
```

3. Check if the `bitvm2-noded` binary exists at `./bin/bitvm2-noded`. If not, run:
3. Check if the `bitvm-noded` binary exists at `./bin/bitvm-noded`. If not, run:
```bash
.claude/commands/install-bitvm2.sh install
.claude/commands/install-bitvm.sh install
```

4. Start the operator node:

```bash
./bin/bitvm2-noded --rpc-addr <rpc_addr> --db-path <db_path> --p2p-port <p2p_port> --bootnodes "$BOOTNODES"
./bin/bitvm-noded --rpc-addr <rpc_addr> --db-path <db_path> --p2p-port <p2p_port> --bootnodes "$BOOTNODES"
```

To run in the background:
```bash
nohup ./bin/bitvm2-noded --rpc-addr <rpc_addr> --db-path <db_path> --p2p-port <p2p_port> --bootnodes "$BOOTNODES" >operator_$(date +'%Y%m%d').log 2>&1 &
nohup ./bin/bitvm-noded --rpc-addr <rpc_addr> --db-path <db_path> --p2p-port <p2p_port> --bootnodes "$BOOTNODES" >operator_$(date +'%Y%m%d').log 2>&1 &
```

5. Verify the node is running:
Expand All @@ -52,9 +52,9 @@ Should return `Hello, World!`.
### Example (testnet4)

```bash
cp deployment/testnet4/bitvm2-nodes/operator_0/.env.operator_0 .env
cp deployment/testnet4/bitvm-noded/operator_0/.env.operator_0 .env
# Edit .env to fill in BITVM_SECRET, GOAT_ADDRESS, PEER_KEY, GOAT_PRIVATE_KEY
./bin/bitvm2-noded --rpc-addr 127.0.0.1:8902 --db-path sqlite:$PWD/bitvm2-node.db --p2p-port 8445 --bootnodes /ip4/34.215.238.232/tcp/8445/p2p/12D3KooWCrPTAmhFdC5DBGgkxZvJi6iuSeiDWKRL87isrt4iMHXv
./bin/bitvm-noded --rpc-addr 127.0.0.1:8902 --db-path sqlite:$PWD/bitvm-node.db --p2p-port 8445 --bootnodes /ip4/34.215.238.232/tcp/8445/p2p/12D3KooWCrPTAmhFdC5DBGgkxZvJi6iuSeiDWKRL87isrt4iMHXv
```

For full deployment documentation, see `deployment/README.md` (section **Operator**).
8 changes: 4 additions & 4 deletions .claude/commands/upgrade.md
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
Upgrade or install bitvm2-node binaries via `install-bitvm2.sh`.
Upgrade or install bitvm-node binaries via `install-bitvm.sh`.

## Instructions

1. Check the currently installed version:
```bash
.claude/commands/install-bitvm2.sh version
.claude/commands/install-bitvm.sh version
```

2. If $ARGUMENTS contains a target version (e.g. `v0.3.2`), use that version. Otherwise, upgrade to the latest release.

3. Run the upgrade:
```bash
.claude/commands/install-bitvm2.sh upgrade $ARGUMENTS
.claude/commands/install-bitvm.sh upgrade $ARGUMENTS
```

4. If the script is missing or not executable, inform the user that `.claude/commands/install-bitvm2.sh` is required and offer to check if it exists.
4. If the script is missing or not executable, inform the user that `.claude/commands/install-bitvm.sh` is required and offer to check if it exists.

5. Report the result to the user: what version was installed before, what version is installed now, and list the installed binaries.
8 changes: 4 additions & 4 deletions .env.template
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
RUST_LOG=debug

# required
ACTOR=Challenger
ACTOR=Verifier

# required
GOAT_GATEWAY_CONTRACT_ADDRESS=0xc3c2D73FB80cbc10DD85B6896e639D47ebd21B01
GOAT_GATEWAY_CONTRACT_ADDRESS=

# required
GOAT_CHAIN_URL=https://rpc.testnet3.goat.network

# required
PEER_KEY=

# required, operator and challenger should setup its BTC private key, committee can setup a seed string.
# required, operator and verifier should setup its BTC private key, committee can setup a seed string.
BITVM_SECRET=

# optional, for relayer only
Expand All @@ -22,7 +22,7 @@ GOAT_PRIVATE_KEY=
GOAT_ADDRESS=

# protocol name
PROTO_NAME=bitvm2t3
PROTO_NAME=bitvmt3

# setup bootnodes, separate multiple nodes by comma ",".
BOOTNODES=
Loading
Loading