아래 플래그 테이블은 출처(provenance) 줄에 명시된 릴리스 태그 시점의 모노레포에 있는op-batcher의 플래그 정의(op-batcher/flags)로부터 직접 생성되며, 새로운 최종 확정 릴리스가 게시될 때 재생성되므로 조용히 뒤처지는 일이 없습니다. 모든 플래그는 옆에 표시된 환경 변수를 통해서도 설정할 수 있습니다.
플래그
op-batcher/v1.16.11의
플래그 정의에서 생성되었습니다. 총 87개 플래그: 필수 3개, 선택 84개.
필수 플래그
| 플래그 | 설명 | 환경 변수 |
|---|---|---|
--l1-eth-rpc | L1의 HTTP provider URL | OP_BATCHER_L1_ETH_RPC |
--l2-eth-rpc | L2 execution engine의 HTTP provider URL. 쉼표로 구분된 목록을 지정하면 활성 L2 엔드포인트 provider가 활성화됩니다. 이 목록의 개수는 제공된 rollup-rpc 개수와 일치해야 합니다. | OP_BATCHER_L2_ETH_RPC |
--rollup-rpc | Rollup node의 HTTP provider URL. 쉼표로 구분된 목록을 지정하면 활성 L2 엔드포인트 provider가 활성화됩니다. 이 목록의 개수는 제공된 l2-eth-rpc 개수와 일치해야 합니다. | OP_BATCHER_ROLLUP_RPC |
선택 플래그
| 플래그 | 설명 | 기본값 | 환경 변수 |
|---|---|---|---|
--active-sequencer-check-duration | 활성 sequencer 엔드포인트를 확인하는 검사 간격입니다. | 5s | OP_BATCHER_ACTIVE_SEQUENCER_CHECK_DURATION |
--altda.da-server | DA 서버의 HTTP 주소 | — | OP_BATCHER_ALTDA_DA_SERVER |
--altda.da-service | Alt-DA 서버가 commitment를 생성하는 DA 서비스 유형을 사용합니다. | false | OP_BATCHER_ALTDA_DA_SERVICE |
--altda.enabled | Alt-DA 모드를 활성화합니다. Alt-DA 모드는 MIT 라이선스 OP Stack의 베타 기능입니다. 핵심 기여자의 초기 검토를 거쳤지만 아직 테스트가 진행 중이며, 버그나 기타 문제가 있을 수 있습니다. | false | OP_BATCHER_ALTDA_ENABLED |
--altda.get-timeout | get 요청의 타임아웃입니다. 0은 타임아웃 없음을 의미합니다. | 0s | OP_BATCHER_ALTDA_GET_TIMEOUT |
--altda.max-concurrent-da-requests | DA 서버에 대한 최대 동시 요청 수 | 1 | OP_BATCHER_ALTDA_MAX_CONCURRENT_DA_REQUESTS |
--altda.put-timeout | put 요청의 타임아웃입니다. 0은 타임아웃 없음을 의미합니다. | 0s | OP_BATCHER_ALTDA_PUT_TIMEOUT |
--altda.verify-on-read | 입력 데이터가 DA 스토리지 서비스의 commitment와 일치하는지 검증합니다. | true | OP_BATCHER_ALTDA_VERIFY_ON_READ |
--approx-compr-ratio | 대략적인 압축률(<= 1.0)입니다. ratio compressor에만 해당됩니다. | 0.6 | OP_BATCHER_APPROX_COMPR_RATIO |
--batch-type | 배치 유형입니다. SingularBatch는 0, SpanBatch는 1입니다. | singular | OP_BATCHER_BATCH_TYPE |
--check-recent-txs-depth | 시작 시 batcher가 L1에서 최근 배치 tx를 찾기 위해 몇 블록 전까지 확인할지 지정합니다. 노드 동기화 대기 시간을 단축할 수 있습니다. sequencer의 verifier 확인 깊이(예: 4)로 설정해야 합니다. | 0 | OP_BATCHER_CHECK_RECENT_TXS_DEPTH |
--compression-algo | 사용할 압축 알고리즘입니다. 유효한 옵션: zlib, brotli, brotli-9, brotli-10, brotli-11 | zlib | OP_BATCHER_COMPRESSION_ALGO |
--compressor | compressor 유형입니다. 유효한 옵션: none, ratio, shadow | "shadow" | OP_BATCHER_COMPRESSOR |
--data-availability-type | L1에 배치를 제출할 때 사용할 데이터 가용성 유형입니다. 유효한 옵션: calldata, blobs, auto | calldata | OP_BATCHER_DATA_AVAILABILITY_TYPE |
--fee-limit-multiplier | 수수료 인상에 엄격한 상한을 두기 위해 수수료 제안값에 적용하는 배수 | 5 | OP_BATCHER_TXMGR_FEE_LIMIT_MULTIPLIER |
--hd-path | mnemonic에서 sequencer 지갑을 파생하는 데 사용하는 HD 경로입니다. mnemonic 플래그도 함께 설정해야 합니다. | — | OP_BATCHER_HD_PATH |
--log.color | 터미널 모드에서 로그 출력에 색상을 적용합니다. | false | OP_BATCHER_LOG_COLOR |
--log.format | 로그 출력 형식입니다. 지원 형식: text, terminal, logfmt, logfmtms, json, jsonms | text | OP_BATCHER_LOG_FORMAT |
--log.level | 출력할 최저 로그 레벨 | INFO | OP_BATCHER_LOG_LEVEL |
--log.pid | 로그에 pid를 표시합니다. | false | OP_BATCHER_LOG_PID |
--max-blocks-per-span-batch | span batch에 추가할 최대 블록 수입니다. 기본값은 0이며 최대값이 없습니다. | 0 | OP_BATCHER_MAX_BLOCKS_PER_SPAN_BATCH |
--max-channel-duration | 채널을 열어 둘 최대 기간(L1 블록 수)입니다. 0이면 비활성화됩니다. | 0 | OP_BATCHER_MAX_CHANNEL_DURATION |
--max-l1-tx-size-bytes | L1에 제출하는 배치 tx의 최대 크기입니다. blob의 경우 무시되며 최대 blob 크기가 사용됩니다. | 120000 | OP_BATCHER_MAX_L1_TX_SIZE_BYTES |
--max-pending-tx | 대기 중인 트랜잭션의 최대 개수입니다. 0이면 제한이 없습니다. | 1 | OP_BATCHER_MAX_PENDING_TX |
--metrics.addr | 메트릭 수신 주소 | "0.0.0.0" | OP_BATCHER_METRICS_ADDR |
--metrics.enabled | 메트릭 서버를 활성화합니다. | false | OP_BATCHER_METRICS_ENABLED |
--metrics.port | 메트릭 수신 포트 | 7300 | OP_BATCHER_METRICS_PORT |
--mnemonic | 서비스의 지갑을 파생하는 데 사용하는 mnemonic | — | OP_BATCHER_MNEMONIC |
--network-timeout | 모든 네트워크 작업의 타임아웃 | 10s | OP_BATCHER_NETWORK_TIMEOUT |
--num-confirmations | 트랜잭션 전송 후 대기할 확인(confirmation) 수 | 10 | OP_BATCHER_NUM_CONFIRMATIONS |
--poll-interval | 새 블록을 확인하기 위해 L2를 폴링하는 주기 | 6s | OP_BATCHER_POLL_INTERVAL |
--pprof.addr | pprof 수신 주소 | "0.0.0.0" | OP_BATCHER_PPROF_ADDR |
--pprof.enabled | pprof 서버를 활성화합니다. | false | OP_BATCHER_PPROF_ENABLED |
--pprof.path | pprof 파일 경로입니다. 디렉터리인 경우 경로는 {dir}/{profileType}.prof가 됩니다. | — | OP_BATCHER_PPROF_PATH |
--pprof.port | pprof 수신 포트 | 6060 | OP_BATCHER_PPROF_PORT |
--pprof.type | pprof 프로필 유형입니다. cpu, heap, goroutine, threadcreate, block, mutex, allocs 중 하나입니다. | — | OP_BATCHER_PPROF_TYPE |
--private-key | 서비스에서 사용할 개인 키입니다. mnemonic과 함께 사용하면 안 됩니다. | — | OP_BATCHER_PRIVATE_KEY |
--resubmission-timeout | L1에 트랜잭션을 재제출하기 전에 대기할 시간 | 48s | OP_BATCHER_RESUBMISSION_TIMEOUT |
--rpc.addr | rpc 수신 주소 | "0.0.0.0" | OP_BATCHER_RPC_ADDR |
--rpc.enable-admin | admin API를 활성화합니다. | false | OP_BATCHER_RPC_ENABLE_ADMIN |
--rpc.port | rpc 수신 포트 | 8545 | OP_BATCHER_RPC_PORT |
--safe-abort-nonce-too-low-count | 확인을 받지 못한 상태에서 특정 nonce의 tx를 포기하기 위해 필요한 ErrNonceTooLow 관측 횟수 | 3 | OP_BATCHER_SAFE_ABORT_NONCE_TOO_LOW_COUNT |
--sequencer-hd-path | DEPRECATED: mnemonic에서 sequencer 지갑을 파생하는 데 사용하는 HD 경로입니다. mnemonic 플래그도 함께 설정해야 합니다. | — | OP_BATCHER_SEQUENCER_HD_PATH |
--signer.address | signer가 요청에 서명하는 대상 주소 | — | OP_BATCHER_SIGNER_ADDRESS |
--signer.endpoint | 클라이언트가 연결할 signer 엔드포인트 | — | OP_BATCHER_SIGNER_ENDPOINT |
--signer.header | 원격 signer에 전달할 헤더입니다. 형식은 key=value입니다. 값에는 HTTP 헤더에 허용되는 모든 문자를 사용할 수 있습니다. 환경 변수를 사용할 때는 쉼표로 구분합니다. 플래그를 사용할 때는 플래그 하나에 키-값 쌍 하나를 지정합니다. | — | OP_BATCHER_SIGNER_HEADER |
--signer.tls.ca | tls CA 인증서 경로 | "tls/ca.crt" | OP_BATCHER_SIGNER_TLS_CA |
--signer.tls.cert | tls 인증서 경로 | "tls/tls.crt" | OP_BATCHER_SIGNER_TLS_CERT |
--signer.tls.enabled | signer에 대한 TLS 클라이언트 인증을 활성화하거나 비활성화합니다. | true | OP_BATCHER_SIGNER_TLS_ENABLED |
--signer.tls.key | tls 키 | "tls/tls.key" | OP_BATCHER_SIGNER_TLS_KEY |
--stopped | batcher를 중지된 상태로 초기화합니다. batcher는 admin_startBatcher RPC를 사용해 시작할 수 있습니다. | false | OP_BATCHER_STOPPED |
--sub-safety-margin | L1에 채널이 안전하게 포함되도록 보장하기 위해 채널의 타임아웃과 시퀀싱 윈도우에서 차감하는 batcher tx 제출 안전 마진(L1 블록 수)입니다. | 10 | OP_BATCHER_SUB_SAFETY_MARGIN |
--target-num-frames | 채널당 생성할 목표 frame 수입니다. Blob DA를 사용하는 경우 blob tx당 blob 수를 제어합니다. | 1 | OP_BATCHER_TARGET_NUM_FRAMES |
--throttle.additional-endpoints | 스로틀링 설정을 배포할 엔드포인트의 쉼표 구분 목록입니다(—l2-eth-rpc로 지정한 L2 엔드포인트에 추가로 적용). | — | OP_BATCHER_THROTTLE_ADDITIONAL_ENDPOINTS |
--throttle.block-size-lower-limit | 스로틀 강도가 최대일 때 블록의 DA 크기 한도입니다(linear 및 quadratic controller에만 해당). 0은 한도가 전혀 적용되지 않음을 의미하므로 1을 가장 작은 유효 한도로 간주하십시오. | 2000 | OP_BATCHER_THROTTLE_BLOCK_SIZE_LOWER_LIMIT |
--throttle.block-size-upper-limit | 스로틀 강도가 0일 때 블록의 DA 크기 한도입니다(스로틀링이 비활성 상태일 때 적용). | 130000 | OP_BATCHER_THROTTLE_BLOCK_SIZE_UPPER_LIMIT |
--throttle.controller-type | 사용할 throttle controller 유형: ‘step’, ‘linear’, ‘quadratic’(기본값) 또는 ‘pid’(EXPERIMENTAL - 주의해서 사용) | "quadratic" | OP_BATCHER_THROTTLE_CONTROLLER_TYPE |
--throttle.pid-integral-max | EXPERIMENTAL: PID controller의 최대 적분 windup입니다. —throttle-controller-type이 ‘pid’로 설정된 경우에만 해당됩니다. | 1000 | OP_BATCHER_THROTTLE_PID_INTEGRAL_MAX |
--throttle.pid-kd | EXPERIMENTAL: PID controller의 미분 이득입니다. —throttle-controller-type이 ‘pid’로 설정된 경우에만 해당됩니다. | 0.05 | OP_BATCHER_THROTTLE_PID_KD |
--throttle.pid-ki | EXPERIMENTAL: PID controller의 적분 이득입니다. —throttle-controller-type이 ‘pid’로 설정된 경우에만 해당됩니다. | 0.01 | OP_BATCHER_THROTTLE_PID_KI |
--throttle.pid-kp | EXPERIMENTAL: PID controller의 비례 이득입니다. —throttle-controller-type이 ‘pid’로 설정된 경우에만 해당됩니다. | 0.33 | OP_BATCHER_THROTTLE_PID_KP |
--throttle.pid-output-max | EXPERIMENTAL: PID controller의 최대 출력입니다. —throttle-controller-type이 ‘pid’로 설정된 경우에만 해당됩니다. | 1 | OP_BATCHER_THROTTLE_PID_OUTPUT_MAX |
--throttle.pid-sample-time | EXPERIMENTAL: PID controller의 샘플링 시간 간격이며, 기본값은 2s입니다. | 2s | OP_BATCHER_THROTTLE_PID_SAMPLE_TIME |
--throttle.tx-size-lower-limit | 스로틀 강도가 최대일 때 트랜잭션의 DA 크기 한도입니다. 0은 한도가 전혀 적용되지 않음을 의미하므로 1을 가장 작은 유효 한도로 간주하십시오. | 150 | OP_BATCHER_THROTTLE_TX_SIZE_LOWER_LIMIT |
--throttle.tx-size-upper-limit | 스로틀 강도가 0+일 때(양수 쪽에서 0에 가까워질 때의 극한) 트랜잭션의 DA 크기 한도입니다. 스로틀링이 비활성 상태일 때는 적용되지 않습니다. | 20000 | OP_BATCHER_THROTTLE_TX_SIZE_UPPER_LIMIT |
--throttle.unsafe-da-bytes-lower-threshold | batcher가 block builder의 스로틀링을 시작하는 unsafe_da_bytes 임계값입니다. 0이면 스로틀링이 비활성화됩니다. | 3200000 | OP_BATCHER_THROTTLE_UNSAFE_DA_BYTES_LOWER_THRESHOLD |
--throttle.unsafe-da-bytes-upper-threshold | 스로틀링 강도가 최대가 되는 unsafe_da_bytes 임계값입니다(linear 및 quadratic controller에만 해당). | 12800000 | OP_BATCHER_THROTTLE_UNSAFE_DA_BYTES_UPPER_THRESHOLD |
--txmgr.already-published-custom-errs | 트랜잭션이 이미 게시되었음을 나타내는 커스텀 RPC 오류 메시지 목록입니다. | — | OP_BATCHER_TXMGR_ALREADY_PUBLISHED_CUSTOM_ERRS |
--txmgr.blob-tip-cap-dynamic | blob 트랜잭션에 정적 tip cap 대신 blob tip oracle의 동적 blob tip cap을 사용합니다. 일반 트랜잭션은 계속 min-tip-cap/max-tip-cap을 사용합니다. | false | OP_BATCHER_TXMGR_BLOB_TIP_CAP_DYNAMIC |
--txmgr.blob-tip-cap-percentile | 제안값으로 사용할 최근 blob tx tip의 백분위수(1-100)입니다. blob-tip-cap-dynamic이 활성화된 경우에만 사용됩니다. | 60 | OP_BATCHER_TXMGR_BLOB_TIP_CAP_PERCENTILE |
--txmgr.blob-tip-cap-range | blob tip cap 분포를 분석할 최근 블록 수입니다. blob-tip-cap-dynamic이 활성화된 경우에만 사용됩니다. | 20 | OP_BATCHER_TXMGR_BLOB_TIP_CAP_RANGE |
--txmgr.cell-proof-time | 지정한 unix 타임스탬프부터 Fusaka(EIP-7742) 호환성을 위해 blob 트랜잭션에서 cell proof를 활성화합니다. L1 Fusaka 시점으로 설정해야 합니다. Ethereum Mainnet, Sepolia, Holesky, Hoodi L1의 경우 비워 둘 수 있습니다. | 18446744073709551615 | OP_BATCHER_TXMGR_CELL_PROOF_TIME |
--txmgr.fee-limit-threshold | 수수료 인상(fee bumping)에 상한이 적용되기 시작하는 최소 임계값(GWei 단위)입니다. 이 임계값 미만에서는 임의의 수수료 인상이 허용됩니다. | 100 | OP_BATCHER_TXMGR_FEE_LIMIT_THRESHOLD |
--txmgr.max-basefee | tx 수수료를 결정할 때 가정하는 최대 base fee(GWei 단위)를 강제하며, 초과하면 TxMgr가 오류를 반환합니다. 기본적으로 비활성화되어 있습니다. | 0 | OP_BATCHER_TXMGR_MAX_BASEFEE |
--txmgr.max-retries | 일시적인 오류 발생 시 L1에 트랜잭션을 재제출하는 최대 횟수입니다. 0으로 설정하면 재시도가 비활성화됩니다. | 10 | OP_BATCHER_TXMGR_MAX_RETRIES |
--txmgr.max-tip-cap | tx 수수료를 결정할 때 사용하는 최대 tip cap(GWei 단위)을 강제하며, 초과하면 TxMgr가 오류를 반환합니다. 기본적으로 비활성화되어 있습니다. | 0 | OP_BATCHER_TXMGR_MAX_TIP_CAP |
--txmgr.min-basefee | tx 수수료를 결정할 때 가정하는 최소 base fee(GWei 단위)를 강제합니다. 기본값은 1 GWei입니다. | 1 | OP_BATCHER_TXMGR_MIN_BASEFEE |
--txmgr.min-tip-cap | tx 수수료를 결정할 때 사용하는 최소 tip cap(GWei 단위)을 강제합니다. 기본값은 1 GWei입니다. | 1 | OP_BATCHER_TXMGR_MIN_TIP_CAP |
--txmgr.not-in-mempool-timeout | tx가 mempool에 도달하지 못한 경우 tx 전송을 중단하기까지의 타임아웃입니다. | 2m0s | OP_BATCHER_TXMGR_TX_NOT_IN_MEMPOOL_TIMEOUT |
--txmgr.rebroadcast-interval | 게시된 트랜잭션이 아직 채굴되지 않은 경우 다시 브로드캐스트하는 간격입니다. 효과를 보려면 ResubmissionTimeout보다 작아야 합니다. | 12s | OP_BATCHER_TXMGR_REBROADCAST_INTERVAL |
--txmgr.receipt-query-interval | receipt를 폴링하는 주기 | 12s | OP_BATCHER_TXMGR_RECEIPT_QUERY_INTERVAL |
--txmgr.retry-interval | 일시적인 오류 발생 시 L1에 트랜잭션을 재제출하기 전에 대기할 시간입니다. 값이 <= 0이면 즉시 재시도합니다. 효과를 보려면 ResubmissionTimeout보다 작아야 합니다. | 1s | OP_BATCHER_TXMGR_RETRY_INTERVAL |
--txmgr.send-timeout | 트랜잭션 전송 타임아웃입니다. 0이면 비활성화됩니다. | 0s | OP_BATCHER_TXMGR_TX_SEND_TIMEOUT |
--wait-node-sync | 시작 시 batcher가 L1의 최근 batcher tx가 (추가 블록 확인을 통해) 최종 확정될 때까지 대기할지 여부를 지정합니다. 중복 batcher tx를 방지하는 데 도움이 됩니다. | false | OP_BATCHER_WAIT_NODE_SYNC |
스로틀링
throttle.* 플래그는 백로그가 쌓였을 때 batcher가 데이터 가용성(DA) 사용량을
제한하는 방식을 제어합니다. 아직 L1에 게시되지 않은 sequencing된 데이터의 양
(unsafe_da_bytes 메트릭)이 --throttle.unsafe-da-bytes-lower-threshold를 초과하면,
batcher는 --l2-eth-rpc 엔드포인트와 --throttle.additional-endpoints에 나열된
엔드포인트를 통해 블록 빌더에게 트랜잭션 및 블록 DA 크기를 제한하도록 지시하며,
백로그가 커짐에 따라 구성된 상한과 하한 크기 제한 사이에서 조정합니다.
--throttle.controller-type은 백로그에 따라 스로틀링 강도가 증가하는 방식을
선택합니다: step, linear, quadratic(기본값), 또는 6개의 throttle.pid-*
플래그로 조정하는 실험적 pid 컨트롤러입니다.
PID 컨트롤러를 포함한 스로틀링 하위 시스템의 설계는 monorepo의
op-batcher/throttling.md를
참조하세요.
주요 플래그 참고 사항
batch-type
Span batch(--batch-type=1)는 더 나은 압축을 위해 연속된 L2 블록을 단일 배치로
묶습니다. 자세한 내용은 span batch 기능 페이지를
참조하세요.
data-availability-type
이 플래그를
auto로 설정하면 batcher가 현재 L1 gas 가격에 따라 calldata와
blobs 사이를 자동으로 전환할 수 있습니다.altda.*
altda.* 플래그는 OP Stack의 베타 기능인 Alt-DA 모드를 구성합니다.
핵심 기여자들의 초기 검토를 거쳤지만 아직 테스트 중이며 버그나 기타 문제가 있을 수
있습니다. 설정 지침은 Alt-DA 모드 가이드를
참조하세요.