|
| 1 | +#!/bin/bash |
| 2 | + |
| 3 | +#-----------------------nlean setup---------------------- |
| 4 | +# This script follows lean-quickstart's client-cmd contract: |
| 5 | +# it must populate node_binary / node_docker / node_setup. |
| 6 | +# NLEAN_REPO should point to this repository when lean-quickstart is outside this workspace. |
| 7 | +# Default assumes sibling checkouts: <workspace>/nlean and <workspace>/lean-quickstart. |
| 8 | +nlean_repo="${NLEAN_REPO:-$scriptDir/../nlean}" |
| 9 | +nlean_docker_image="${NLEAN_DOCKER_IMAGE:-nlean-local:devnet3}" |
| 10 | +nlean_network_name="${NLEAN_NETWORK_NAME:-devnet0}" |
| 11 | +log_level="${NLEAN_LOG_LEVEL:-}" |
| 12 | +enable_metrics="${enableMetrics:-false}" |
| 13 | + |
| 14 | +enable_metrics=$(echo "$enable_metrics" | tr '[:upper:]' '[:lower:]') |
| 15 | +if [[ "$enable_metrics" != "true" && "$enable_metrics" != "false" ]]; then |
| 16 | + enable_metrics="false" |
| 17 | +fi |
| 18 | + |
| 19 | +if [[ -z "${nlean_network_name// }" ]]; then |
| 20 | + nlean_network_name="devnet0" |
| 21 | +fi |
| 22 | + |
| 23 | +log_level="${log_level#${log_level%%[![:space:]]*}}" |
| 24 | +log_level="${log_level%${log_level##*[![:space:]]}}" |
| 25 | +log_level_arg="" |
| 26 | +if [[ -n "$log_level" ]]; then |
| 27 | + log_level_arg="--log ${log_level}" |
| 28 | +fi |
| 29 | + |
| 30 | +node_private_key_path="${privKeyPath:-${item}.key}" |
| 31 | + |
| 32 | +# Set aggregator flag based on isAggregator value (from parse-vc.sh) |
| 33 | +aggregator_flag="" |
| 34 | +if [[ "${isAggregator:-false}" == "true" ]]; then |
| 35 | + aggregator_flag="--is-aggregator" |
| 36 | +fi |
| 37 | + |
| 38 | +# Set attestation committee count flag if explicitly configured |
| 39 | +attestation_committee_flag="" |
| 40 | +if [[ -n "${attestationCommitteeCount:-}" ]]; then |
| 41 | + attestation_committee_flag="--attestation-committee-count $attestationCommitteeCount" |
| 42 | +fi |
| 43 | + |
| 44 | +# Set checkpoint sync URL when restarting with checkpoint sync |
| 45 | +checkpoint_sync_flag="" |
| 46 | +if [[ -n "${checkpoint_sync_url:-}" ]]; then |
| 47 | + checkpoint_sync_flag="--checkpoint-sync-url $checkpoint_sync_url" |
| 48 | +fi |
| 49 | + |
| 50 | +# Set API port flag if explicitly configured |
| 51 | +api_port_flag="" |
| 52 | +nlean_api_port="${NLEAN_API_PORT:-${apiPort:-}}" |
| 53 | +if [[ -n "$nlean_api_port" ]]; then |
| 54 | + api_port_flag="--api-port $nlean_api_port" |
| 55 | +fi |
| 56 | + |
| 57 | +# Resolve the binary path |
| 58 | +binary_path="$nlean_repo/artifacts/lean-client/Lean.Client" |
| 59 | + |
| 60 | +mkdir -p "$dataDir/$item" |
| 61 | + |
| 62 | +node_binary="$binary_path \ |
| 63 | + --validator-config $configDir/validator-config.yaml \ |
| 64 | + --node $item \ |
| 65 | + --data-dir $dataDir/$item \ |
| 66 | + --network $nlean_network_name \ |
| 67 | + --node-key $configDir/$node_private_key_path \ |
| 68 | + --socket-port $quicPort \ |
| 69 | + --metrics $enable_metrics \ |
| 70 | + --metrics-port $metricsPort \ |
| 71 | + --metrics-address 0.0.0.0 \ |
| 72 | + --hash-sig-key-dir $configDir/hash-sig-keys \ |
| 73 | + $api_port_flag \ |
| 74 | + $attestation_committee_flag \ |
| 75 | + $aggregator_flag \ |
| 76 | + $checkpoint_sync_flag \ |
| 77 | + $log_level_arg" |
| 78 | + |
| 79 | +nlean_docker_extra_env="" |
| 80 | +if [[ -n "${NLEAN_DEBUG_DUMP_ATTESTATIONS:-}" ]]; then |
| 81 | + nlean_docker_extra_env+=" -e NLEAN_DEBUG_DUMP_ATTESTATIONS=$NLEAN_DEBUG_DUMP_ATTESTATIONS" |
| 82 | +fi |
| 83 | +if [[ -n "${NLEAN_DEBUG_DUMP_DIR:-}" ]]; then |
| 84 | + nlean_docker_extra_env+=" -e NLEAN_DEBUG_DUMP_DIR=$NLEAN_DEBUG_DUMP_DIR" |
| 85 | +fi |
| 86 | +if [[ -n "${NLEAN_DEBUG_DUMP_BLOCKS:-}" ]]; then |
| 87 | + nlean_docker_extra_env+=" -e NLEAN_DEBUG_DUMP_BLOCKS=$NLEAN_DEBUG_DUMP_BLOCKS" |
| 88 | +fi |
| 89 | +if [[ -n "${NLEAN_DEBUG_DUMP_BLOCK_DIR:-}" ]]; then |
| 90 | + nlean_docker_extra_env+=" -e NLEAN_DEBUG_DUMP_BLOCK_DIR=$NLEAN_DEBUG_DUMP_BLOCK_DIR" |
| 91 | +fi |
| 92 | +if [[ -n "${NLEAN_DEBUG_DUMP_OBSERVED_PROOFS:-}" ]]; then |
| 93 | + nlean_docker_extra_env+=" -e NLEAN_DEBUG_DUMP_OBSERVED_PROOFS=$NLEAN_DEBUG_DUMP_OBSERVED_PROOFS" |
| 94 | +fi |
| 95 | +if [[ -n "${NLEAN_DEBUG_DUMP_OBSERVED_PROOFS_DIR:-}" ]]; then |
| 96 | + nlean_docker_extra_env+=" -e NLEAN_DEBUG_DUMP_OBSERVED_PROOFS_DIR=$NLEAN_DEBUG_DUMP_OBSERVED_PROOFS_DIR" |
| 97 | +fi |
| 98 | +if [[ -n "${NLEAN_DEBUG_DUMP_OBSERVED_BLOCKS:-}" ]]; then |
| 99 | + nlean_docker_extra_env+=" -e NLEAN_DEBUG_DUMP_OBSERVED_BLOCKS=$NLEAN_DEBUG_DUMP_OBSERVED_BLOCKS" |
| 100 | +fi |
| 101 | +if [[ -n "${NLEAN_DEBUG_DUMP_OBSERVED_BLOCKS_DIR:-}" ]]; then |
| 102 | + nlean_docker_extra_env+=" -e NLEAN_DEBUG_DUMP_OBSERVED_BLOCKS_DIR=$NLEAN_DEBUG_DUMP_OBSERVED_BLOCKS_DIR" |
| 103 | +fi |
| 104 | + |
| 105 | +node_docker="${nlean_docker_extra_env} ${nlean_docker_image} \ |
| 106 | + --validator-config /config/validator-config.yaml \ |
| 107 | + --node $item \ |
| 108 | + --data-dir /data \ |
| 109 | + --network $nlean_network_name \ |
| 110 | + --node-key /config/$node_private_key_path \ |
| 111 | + --socket-port $quicPort \ |
| 112 | + --metrics $enable_metrics \ |
| 113 | + --metrics-port $metricsPort \ |
| 114 | + --metrics-address 0.0.0.0 \ |
| 115 | + --hash-sig-key-dir /config/hash-sig-keys \ |
| 116 | + $api_port_flag \ |
| 117 | + $attestation_committee_flag \ |
| 118 | + $aggregator_flag \ |
| 119 | + $checkpoint_sync_flag \ |
| 120 | + $log_level_arg" |
| 121 | + |
| 122 | +# choose either binary or docker |
| 123 | +node_setup="${NLEAN_QUICKSTART_SETUP:-docker}" |
0 commit comments