Skip to content

Commit

Permalink
add annotation on propsoer flow
Browse files Browse the repository at this point in the history
  • Loading branch information
siddharth0a committed Aug 23, 2024
1 parent 58bea2e commit bd20061
Showing 1 changed file with 39 additions and 40 deletions.
79 changes: 39 additions & 40 deletions op-proposer/research/flow.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,41 +6,40 @@ main.go는 애플리케이션의 진입점으로, 초기 설정을 수행하고
```plaintext
=> : main {
/op-service/cliapp/lifecycle.go: RunContext{
/proposer/l2_output_submitter.go : Main {
/proposer/l2_output_submitter.go : Main { // L2 Output Submitter 초기화 및 실행
/proposer/service.go : ProposerServiceFromCLIConfig // 프로포저 서비스의 진입점, CLI 설정을 통해 프로포저 서비스를 초기화하고 실행
}
/op-service/cliapp/lifecycle.go : LifecycleCmd {
/proposer/service.go : Start {
/proposer/driver.go : StartL2OutputSubmitting
}
}
/op-service/cliapp/lifecycle.go : LifecycleCmd { // CLI 애플리케이션 수명주기 관리
/proposer/service.go : Start {
/proposer/driver.go : StartL2OutputSubmitting // L2 Output 제출 시작
}
}
}
}
}
```


## /proposer/service.go
service.go는 배처 서비스의 CLIConfig를 설정하고, L2OutputSubmitter 생성하고 시작
service.go는 proposer 서비스의 CLIConfig를 설정하고, L2OutputSubmitter 생성하고 시작

```plaintext
=> : ProposerServiceFromCLIConfig {
: initFromCLIConfig {
: initMetrics
: initL2ooAddress
: initDGF
: initRPCClients
: initTxManager
: initBalanceMonitor
: initMetricsServer
: initPProf
: initRPCServer
: RecordInfo
: RecordUp
: initMetricsServer
: initDriver {
/proposer/driver.go : NewL2OutputSubmitter {
/proposer/driver.go : newL2OOSubmitter
: initMetrics // 성능 지표 초기화
: initL2ooAddress // L2 Output Oracle 주소 초기화
: initDGF // Dispute Game Factory 초기화
: initRPCClients // RPC 클라이언트 초기화
: initTxManager // 트랜잭션 관리 초기화
: initBalanceMonitor // 잔액 모니터링 초기화
: initMetricsServer // 성능 모니터링 서버 초기화
: initPProf // 프로파일링 초기화
: initRPCServer // RPC 서버 초기화
: RecordInfo // 서비스 정보 기록
: RecordUp // 서비스 시작 상태 기록
: initMetricsServer // (중복된) 성능 모니터링 서버 초기화
: initDriver { // 드라이버 초기화
/proposer/driver.go : NewL2OutputSubmitter { // 새로운 L2 Output Submitter 생성
/proposer/driver.go : newL2OOSubmitter // L2 Output Submitter 인스턴스 생성
}
}
}
Expand All @@ -51,30 +50,30 @@ service.go는 배처 서비스의 CLIConfig를 설정하고, L2OutputSubmitter

```plaintext
=> : StartL2OutputSubmitting {
: waitNodeSync {
/op-service/dial/rollup_sync.go : WaitRollupSync
: waitNodeSync { // 노드 동기화 대기
/op-service/dial/rollup_sync.go : WaitRollupSync // 롤업 동기화 대기
}
: loop {
: loop { // L2 Output 제출 루프
{
: FetchL2OOOutput // L2 Output Oracle
: FetchL2OOOutput // L2 Output Oracle과 fetch
or
: FetchDGFOutput // Dispute Game Factory
: FetchDGFOutput // Dispute Game Factory과 fetch
}
: proposeOutput {
: sendTransaction {
: waitForL1Head
: proposeOutput { // 출력 제안
: sendTransaction { // 트랜잭션 전송
: waitForL1Head // L1 블록체인 헤드 대기
{
: ProposeL2OutputDGFTxCandidate
: Send // TODO: Send 파악
: ProposeL2OutputDGFTxCandidate // Dispute Game Factory 트랜잭션 후보 제안
: Send // 트랜잭션 전송 로직, TODO: 구체적인 구현 분석 필요
or
: ProposeL2OutputTxData
: Send // TODO: Send 파악
: ProposeL2OutputTxData // L2 Output 트랜잭션 데이터 제안
: Send // 트랜잭션 전송 로직, TODO: 구체적인 구현 분석 필요
}
}
/metrics/metrics.go : RecordL2BlocksProposed {
/op-service/metrics/ref_metrics.go : RecordL2Ref
/metrics/metrics.go : RecordL2BlocksProposed { // L2 블록 제안 기록
/op-service/metrics/ref_metrics.go : RecordL2Ref // L2 참조 기록
}
}
}
}
}
```

0 comments on commit bd20061

Please sign in to comment.