Skip to content

Commit

Permalink
chore(client): Improve justfile (#305)
Browse files Browse the repository at this point in the history
## Overview

Improves the justfile in the `client` program to fetch boot information
remotely rather than having to statically declare it.
  • Loading branch information
clabby authored Jun 24, 2024
1 parent 0e1457d commit c024853
Showing 1 changed file with 46 additions and 22 deletions.
68 changes: 46 additions & 22 deletions bin/client/justfile
Original file line number Diff line number Diff line change
@@ -1,29 +1,35 @@
set fallback := true

# Alter inputs as needed
L1_HEAD := "0x99a606fd807b1d4de3b0e875e8999eca8b658144e8bf17fc1d5b35a18edad4c5"
L2_HEAD := "0xa88ff85df4148ae174122d7e3637d5044ff08faff4aee1d8295b59df6e752f6b"
L2_OUTPUT_ROOT := "0x436e677d6ead4a915be25462eba837d287efcfa14aab8aa0b7dae49f7ff21f67"
L2_CLAIM := "0xff57b5ecc49aea302259672f8a3ec7634ef4b9970bf54798de4f265768015796"
L2_BLOCK_NUMBER := "121449098"
L2_CHAIN_ID := "10"

# default recipe to display help information
default:
@just --list

# Run the client program on asterisc with the host in detached server mode.
run-client-asterisc l1_rpc l1_beacon_rpc l2_rpc verbosity:
run-client-asterisc block_number l1_rpc l1_beacon_rpc l2_rpc rollup_node_rpc verbosity:
#!/usr/bin/env bash
L1_NODE_ADDRESS="{{l1_rpc}}"
L1_BEACON_ADDRESS="{{l1_beacon_rpc}}"
L2_NODE_ADDRESS="{{l2_rpc}}"
OP_NODE_ADDRESS="{{rollup_node_rpc}}"

HOST_BIN_PATH="./target/release/kona-host"
CLIENT_BIN_PATH="./target/riscv64gc-unknown-none-elf/release-client-lto/kona"
STATE_PATH="./state.json"

L2_BLOCK_NUMBER={{block_number}}
echo "Fetching configuration for block #$L2_BLOCK_NUMBER..."

# Get output root for block
L2_CLAIM=$(cast rpc --rpc-url $OP_NODE_ADDRESS "optimism_outputAtBlock" $(cast 2h $L2_BLOCK_NUMBER) | jq -r .outputRoot)

# Get the info for the previous block
L2_OUTPUT_ROOT=$(cast rpc --rpc-url $OP_NODE_ADDRESS "optimism_outputAtBlock" $(cast 2h $((L2_BLOCK_NUMBER - 1))) | jq -r .outputRoot)
L2_HEAD=$(cast block --rpc-url $L2_NODE_ADDRESS $((L2_BLOCK_NUMBER - 1)) -j | jq -r .hash)
L1_ORIGIN_NUM=$(cast rpc --rpc-url $OP_NODE_ADDRESS "optimism_outputAtBlock" $(cast 2h $((L2_BLOCK_NUMBER - 1))) | jq -r .blockRef.l1origin.number)
L1_HEAD=$(cast block --rpc-url $L1_NODE_ADDRESS $((L1_ORIGIN_NUM + 30)) -j | jq -r .hash)
L2_CHAIN_ID=$(cast chain-id --rpc-url $L2_NODE_ADDRESS)

# Move to the workspace root
cd $(git rev-parse --show-toplevel)

Expand All @@ -43,12 +49,12 @@ run-client-asterisc l1_rpc l1_beacon_rpc l2_rpc verbosity:
--input $STATE_PATH \
-- \
$HOST_BIN_PATH \
--l1-head {{L1_HEAD}} \
--l2-head {{L2_HEAD}} \
--l2-claim {{L2_CLAIM}} \
--l2-output-root {{L2_OUTPUT_ROOT}} \
--l2-block-number {{L2_BLOCK_NUMBER}} \
--l2-chain-id {{L2_CHAIN_ID}} \
--l1-head $L1_HEAD \
--l2-head $L2_HEAD \
--l2-claim $L2_CLAIM \
--l2-output-root $L2_OUTPUT_ROOT \
--l2-block-number $L2_BLOCK_NUMBER \
--l2-chain-id $L2_CHAIN_ID \
--l1-node-address $L1_NODE_ADDRESS \
--l1-beacon-address $L1_BEACON_ADDRESS \
--l2-node-address $L2_NODE_ADDRESS \
Expand All @@ -58,12 +64,30 @@ run-client-asterisc l1_rpc l1_beacon_rpc l2_rpc verbosity:
{{verbosity}}

# Run the client program natively with the host program attached.
run-client-native l1_rpc l1_beacon_rpc l2_rpc verbosity:
run-client-native block_number l1_rpc l1_beacon_rpc l2_rpc rollup_node_rpc verbosity:
#!/usr/bin/env bash
L1_NODE_ADDRESS="{{l1_rpc}}"
L1_BEACON_ADDRESS="{{l1_beacon_rpc}}"
L2_NODE_ADDRESS="{{l2_rpc}}"
OP_NODE_ADDRESS="{{rollup_node_rpc}}"

HOST_BIN_PATH="./target/release/kona-host"
CLIENT_BIN_PATH="./target/riscv64gc-unknown-none-elf/release-client-lto/kona"
STATE_PATH="./state.json"

L2_BLOCK_NUMBER={{block_number}}
echo "Fetching configuration for block #$L2_BLOCK_NUMBER..."

# Get output root for block
L2_CLAIM=$(cast rpc --rpc-url $OP_NODE_ADDRESS "optimism_outputAtBlock" $(cast 2h $L2_BLOCK_NUMBER) | jq -r .outputRoot)

# Get the info for the previous block
L2_OUTPUT_ROOT=$(cast rpc --rpc-url $OP_NODE_ADDRESS "optimism_outputAtBlock" $(cast 2h $((L2_BLOCK_NUMBER - 1))) | jq -r .outputRoot)
L2_HEAD=$(cast block --rpc-url $L2_NODE_ADDRESS $((L2_BLOCK_NUMBER - 1)) -j | jq -r .hash)
L1_ORIGIN_NUM=$(cast rpc --rpc-url $OP_NODE_ADDRESS "optimism_outputAtBlock" $(cast 2h $((L2_BLOCK_NUMBER - 1))) | jq -r .blockRef.l1origin.number)
L1_HEAD=$(cast block --rpc-url $L1_NODE_ADDRESS $((L1_ORIGIN_NUM + 30)) -j | jq -r .hash)
L2_CHAIN_ID=$(cast chain-id --rpc-url $L2_NODE_ADDRESS)

CLIENT_BIN_PATH="./target/release-client-lto/kona"

Expand All @@ -74,12 +98,12 @@ run-client-native l1_rpc l1_beacon_rpc l2_rpc verbosity:
cargo build --bin kona --profile release-client-lto --features tracing-subscriber
echo "Running host program with native client program..."
cargo r --bin kona-host --release -- \
--l1-head {{L1_HEAD}} \
--l2-head {{L2_HEAD}} \
--l2-claim {{L2_CLAIM}} \
--l2-output-root {{L2_OUTPUT_ROOT}} \
--l2-block-number {{L2_BLOCK_NUMBER}} \
--l2-chain-id {{L2_CHAIN_ID}} \
--l1-head $L1_HEAD \
--l2-head $L2_HEAD \
--l2-claim $L2_CLAIM \
--l2-output-root $L2_OUTPUT_ROOT \
--l2-block-number $L2_BLOCK_NUMBER \
--l2-chain-id $L2_CHAIN_ID \
--l1-node-address $L1_NODE_ADDRESS \
--l1-beacon-address $L1_BEACON_ADDRESS \
--l2-node-address $L2_NODE_ADDRESS \
Expand Down

0 comments on commit c024853

Please sign in to comment.