Telliot: μ–΄λ””μ„œλ‚˜ printf λŒ€μ‹  μΌκ΄€λœ λ‘œκΉ…μ„ μ‚¬μš©ν•˜μ‹­μ‹œμ˜€.

에 λ§Œλ“  2020λ…„ 09μ›” 26일  Β·  9μ½”λ©˜νŠΈ  Β·  좜처: tellor-io/telliot

μ½”λ“œλ² μ΄μŠ€μ—λŠ” μ‹œμž‘ν•˜κΈ° μ‰¬μš΄ λ§Žμ€ 곳에 printfκ°€ μžˆμ§€λ§Œ 둜그λ₯Ό ꡬ문 λΆ„μ„ν•˜κ±°λ‚˜ 필터링 ν•  λ•Œ λ‚˜μ€‘μ— λͺ¨λ‹ˆν„°λ§ 및 좔적에 λ§Žμ€ λ¬Έμ œκ°€ λ°œμƒν•©λ‹ˆλ‹€.

λ‘œκ±°λŠ” κΈ°λ³Έ νŒ¨ν‚€μ§€μ—μ„œ μ΄ˆκΈ°ν™” 된 λ‹€μŒ λͺ¨λ“  νŒ¨ν‚€μ§€ μƒμ„±μžμ—κ²Œ μ „λ‹¬λ˜μ–΄μ•Όν•©λ‹ˆλ‹€.

이것은 μ•„μ£Ό 쒋은 λ‘œκΉ… νŒ¨ν‚€μ§€μž…λ‹ˆλ‹€
github.com/go-kit/kit/log

κ΅¬ν˜„ 방법에 λŒ€ν•œ μ˜ˆμ œλŠ” thanos λ˜λŠ” prometheus ν”„λ‘œμ νŠΈλ₯Ό μ°Έμ‘°ν•˜μ‹­μ‹œμ˜€.

주석 처리 된 λͺ¨λ“  printf-sλŠ” 디버그 둜그둜 λŒ€μ²΄ 될 수 μžˆμœΌλ―€λ‘œ 디버깅이 ν™œμ„±ν™” 된 κ²½μš°μ—λ§Œ ν‘œμ‹œλ©λ‹ˆλ‹€.
level.Debug(logger).Log("msg", "debug")

μ€‘λŒ€ν•œ! ν”„λ‘œμ νŠΈ μ½”λ”© 지침 확인
https://github.com/tellor-io/telliot/blob/master/docs/coding-style-guide.md

good first issue help wanted .high

λͺ¨λ“  9 λŒ“κΈ€

였늘 이거 λ¨Ήκ² μŠ΅λ‹ˆλ‹€!

μ—…λ°μ΄νŠΈ : 이것은 λΆ€λΆ„μ μœΌλ‘œ μˆ˜ν–‰λ˜μ—ˆμ§€λ§Œ μ—¬μ „νžˆ printf 및 logrusκ°€μžˆλŠ” 곳이 거의 μ—†μŠ΅λ‹ˆλ‹€.
TL-DR은 λͺ¨λ“  κ³³μ—μ„œ github.com/go-kit/kit/logλ₯Ό μ‚¬μš©ν•΄μ•Όν•©λ‹ˆλ‹€. ꡬ성 μš”μ†Œλ₯Ό μ΄ˆκΈ°ν™” ν•  λ•Œ 인수둜 μ „λ‹¬ν•΄μ•Όν•©λ‹ˆλ‹€.

문제 μƒνƒœ : 1. λ―Έκ²° 2. μ‹œμž‘ 3. 제좜 4. μ™„λ£Œ


__ 이번 ν˜Έμ—λŠ” Tellor-io νŽ€λ“œμ˜ μΌλΆ€λ‘œ 0.1 ETH (114.26 USD @ $ 1142.63 / ETH)의 자금이 μ²¨λΆ€λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€ .__

@ krasi-georgiev λ‚˜λŠ” 이것을 μ·¨ν•˜κ³  μ‹Άμ§€λ§Œ Gitcoin에 λŒ€ν•œ κ·€ν•˜μ˜ μ œμ•ˆμ„ 읽고 Telliot μ½”λ“œλ₯Ό 읽은 ν›„ λͺ¨λ“  주석 처리 된 fmt.Printfλ₯Ό level.Debug (logger) .Log (... .) μš°λ¦¬λŠ” μ‚¬μš©μž κ΄€μ μ—μ„œ 더 μ˜λ―ΈμžˆλŠ” 것이 무엇인지 각각의 상황을 κ²°μ •ν•΄μ•Όν•©λ‹ˆλ‹€.
좜λ ₯이 개발자 κ΄€μ μ—μ„œ 문제λ₯Ό κ²€μ‚¬ν•˜λŠ” 데 μœ μš©ν•΄μ•Ό ν•  λ•Œ 둜그 디버그λ₯Ό μ‚¬μš©ν•˜μ§€λ§Œ μ‚¬μš©μžκ°€ μ½˜μ†”μ— 좜λ ₯을 κΈ°λŒ€ν•˜λŠ” 상황은 INFO μˆ˜μ€€μ΄μ–΄μ•Όν•©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄
https://github.com/tellor-io/telliot/blob/master/pkg/ops/disputeOps.go#L249 -L255

    fmt.Printf("Dispute %s (%s):\n", dispute.DisputeId.String(), descString)
    fmt.Printf("    Accused Party: %s\n", reportedAddr.Hex())
    fmt.Printf("    Disputed by: %s\n", reportingMiner.Hex())
    fmt.Printf("    Created on:  %s\n", createdTime.Format("3:04 PM January 02, 2006 MST"))
    fmt.Printf("    Fee: %s TRB\n", util.FormatERC20Balance(uintVars[8]))
    fmt.Printf("    \n")
    fmt.Printf("    Value disputed for requestID %d:\n", dispute.RequestId.Uint64())

λ‚΄κ°€ ν‹€λ Έλ‹€λ©΄ λ‚˜λ₯Ό κ³ μ³μ£Όμ„Έμš”. 감사!

λ„€, 맀우 μ‚¬μ‹€μž…λ‹ˆλ‹€! 또 λ‹€λ₯Έ κ·œμΉ™μ€ λ‘œκ·Έκ°€ μ‹œμž‘λ  λ•Œ ν•œ 번 λ°œμƒν•œλ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€. μ •λ³΄κ°€λ˜λŠ” 것은 μ’‹μ§€λ§Œ, λŒ€λΆ€λΆ„μ˜ 경우 맀우 μ€‘μš”ν•˜μ§€ μ•ŠλŠ” ν•œ λ£¨ν”„μ—μ„œ μ—¬λŸ¬ 번 λ°œμƒν•˜λ©΄ 이것은 λ„ˆλ¬΄ λ§Žμ€ λ…Έμ΄μ¦ˆμ΄λ©° λ””λ²„κ·Έν•΄μ•Όν•©λ‹ˆλ‹€.

@ krasi-georgiev 예, μ‚¬μš©μžλ₯Ό μ••λ„ν•˜μ§€ μ•ŠλŠ” 것이 ν•©λ¦¬μ μ΄μ§€λ§Œ 도ꡬλ₯Ό μ‚¬μš©ν•˜μ—¬ 둜그λ₯Ό λΆ„μ„ν•˜λ €λŠ” μƒν™©μ—μ„œλŠ” λΆ„μ„μ„μœ„ν•œ μœ μΌν•œ ν”Όλ“œλ°±μ΄κΈ° λ•Œλ¬Έμ— λ™μž‘ 변경이 ν˜Όλž€ 슀러울 수 μžˆλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€. μš°λ¦¬λŠ” 제 생각에 μ˜¬λ°”λ₯Έ κ· ν˜•μ„ 얻을 κ²ƒμž…λ‹ˆλ‹€. μ—¬κΈ°μ„œ λͺ‡ 가지 λ³€κ²½ 사항을 μˆ˜ν–‰ ν•  것이며이 ν”„λ‘œμ νŠΈμ— λŒ€ν•΄ 더 많이 배우면 쒋은 μ‚¬μš©μž κ²½ν—˜μ— μ ν•©ν•œ 것이 무엇인지 찾을 κ²ƒμž…λ‹ˆλ‹€.

이 μž‘μ—…μ΄ μ™„λ£Œλ˜λ©΄ λ™μΌν•œ PR에 λ‹€μŒκ³Ό 같은 makefile에 더 λ§Žμ€ linting을 μΆ”κ°€ν•΄μ•Όν•©λ‹ˆλ‹€.

go-lint: check-git deps $(GOLANGCI_LINT) $(FAILLINT)
    $(call require_clean_work_tree,'detected not clean master before running lint, previous job changed something?')
    <strong i="6">@echo</strong> ">> verifying modules being imported"
    @$(FAILLINT) -paths "errors=github.com/pkg/errors" ./...
    @$(FAILLINT) -paths "fmt.{Print,Printf,Println,Sprint}" -ignore-tests ./...
    <strong i="7">@echo</strong> ">> linting all of the Go files GOGC=${GOGC}"
    @$(GOLANGCI_LINT) run
    <strong i="8">@echo</strong> ">> ensuring Copyright headers"
    <strong i="9">@go</strong> run ./scripts/copyright
    $(call require_clean_work_tree,'detected files without copyright, run make lint and commit changes')

2 개의 etra 라인은 λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

    @$(FAILLINT) -paths "errors=github.com/pkg/errors" ./...
    @$(FAILLINT) -paths "fmt.{Print,Printf,Println,Sprint}" -ignore-tests ./...

이것은 어디에도 print 문이 μ—†μœΌλ©° pkg/errors κ°€ μ–΄λ””μ—μ„œλ‚˜ μ‚¬μš©λ˜λ„λ‘ κ°•μ œν•©λ‹ˆλ‹€.

문제 μƒνƒœ : 1. λ―Έκ²° 2. μ‹œμž‘ 3. 제좜 4. μ™„λ£Œ


__ μž‘μ—…μ΄ μ‹œμž‘λ˜μ—ˆμŠ΅λ‹ˆλ‹€ __.

이 μ‚¬μš©μžλ“€μ€ 각각 6 κ°œμ›” ν›„ 265 λ…„κΉŒμ§€ μž‘μ—…μ„ μ™„λ£Œ ν•  수 μžˆλ‹€κ³  μ£Όμž₯ν–ˆμŠ΅λ‹ˆλ‹€.
μ•„λž˜μ—μ„œ κ·Έλ“€μ˜ 행동 κ³„νšμ„ κ²€ν† ν•˜μ‹­μ‹œμ˜€.

1) g33kidd κ°€ μž‘μ—… μ‹œμž‘μ„ μ‹ μ²­ν–ˆμŠ΅λ‹ˆλ‹€ _ (νŽ€λ” 만 ν•΄λ‹Ή : μž‘μ—…μž 승인 | μž‘μ—…μž κ±°λΆ€ ) _.

λ‚˜λŠ” 이것을 μ°”λŸ¬ λ³Ό 것이닀. 그것은 ν₯미둜운 일인 것 κ°™μ•˜λ‹€.
2) voanhcung 이 μž‘μ—… μ‹œμž‘μ„ μ‹ μ²­ν–ˆμŠ΅λ‹ˆλ‹€ _ (자금 만 ν•΄λ‹Ή : μž‘μ—…μž 승인 | μž‘μ—…μž κ±°λΆ€ ) _.

Ok [email protected] .......................
3) therocketcat 이 μž‘μ—…μ„ μ‹œμž‘ν•˜λ„λ‘ μŠΉμΈλ˜μ—ˆμŠ΅λ‹ˆλ‹€.

μ½”λ“œλ² μ΄μŠ€μ™€ μ•žμ„œ μ–ΈκΈ‰ ν•œ 예제 ν”„λ‘œμ νŠΈλ₯Ό μ‚΄νŽ΄ λ³΄μ•˜μŠ΅λ‹ˆλ‹€.

μ˜ˆμ œμ—μ„œ printfλ₯Ό μ‚¬μš©ν•˜λŠ” ν•¨μˆ˜μ— μƒμ„±μžκ°€ μ—†μœΌλ©΄ λ‘œκ±°κ°€ ν•¨μˆ˜ μžμ²΄μ— 쒅속성을 μ£Όμž…ν•΄μ•Όν•œλ‹€λŠ” 것을 μˆ˜μ§‘ν–ˆμŠ΅λ‹ˆλ‹€. 이것이 사싀이 μ•„λ‹ˆλΌλ©΄ 거기에 μ„€λͺ…ν•˜κ³  μ‹ΆμŠ΅λ‹ˆλ‹€.

그리고 κΈ°λ³Έ νŒ¨ν‚€μ§€ (telliot / cmd / telliot / main.go)μ—μ„œλŠ” util의 SetupLogger ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ μ„€μ •λ˜κ³  μƒμ„±μžμ— μ „λ‹¬λ˜κ±°λ‚˜ ν•¨μˆ˜μ— 직접 μ‚½μž…λ©λ‹ˆλ‹€ (첫 번째 맀개 λ³€μˆ˜λ‘œ).

λ˜ν•œ μ½”λ“œλ² μ΄μŠ€λ₯Ό 보면 주석 처리 된 printfsλ₯Ό 찾을 수 μ—†μœΌλ―€λ‘œ 일반적으둜 printfsλ₯Ό μ˜λ―Έν•œλ‹€κ³  κ°€μ •ν•©λ‹ˆκΉŒ?

RocketCat # 3507 μž‘μ—…μ„ μ˜€ν•΄ ν•œ 경우이 문제λ₯Ό μΆ”κ°€λ‘œ λ…Όμ˜ ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
4) mendesfabio κ°€ μž‘μ—… μ‹œμž‘μ„ μ‹ μ²­ν–ˆμŠ΅λ‹ˆλ‹€ _ (자금 만 ν•΄λ‹Ή : μž‘μ—…μž 승인 | μž‘μ—…μž κ±°λΆ€ ) _.

방금 repoλ₯Ό ν™•μΈν–ˆλŠ”λ° 일뢀 printf-sκ°€ ꡐ체 된 것 κ°™μŠ΅λ‹ˆλ‹€ (그리고이λ₯Ό μˆ˜ν–‰ν•˜λŠ” 방법을 μ΄ν•΄ν•˜λŠ” 데 λ„μ›€μ΄λ˜μ—ˆμŠ΅λ‹ˆλ‹€). μš°λ¦¬λŠ” μ—¬μ „νžˆ printf-sκ°€μžˆλŠ” 10 개의 νŒŒμΌμ„ 가지고 있으며 그것을 λ³€κ²½ν•  κ²ƒμž…λ‹ˆλ‹€.
5) rodrigoadriandiaz κ°€ μž‘μ—… μ‹œμž‘μ„ μ‹ μ²­ν–ˆμŠ΅λ‹ˆλ‹€ _ (자금 만 제곡 : μž‘μ—…μž 승인 | μž‘μ—…μž κ±°λΆ€ ) _.

μœ„μ—μ„œ μ–ΈκΈ‰ ν•œ λ‘œκΉ… νŒ¨ν‚€μ§€μ˜ κ΅¬ν˜„μ„ μœ„ν•΄ printf에 λŒ€ν•œ λͺ¨λ“  ν˜ΈμΆœμ„ λŒ€μ²΄ν•˜μ—¬μ΄ μž‘μ—…μ„ μˆ˜ν–‰ ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 내일이 μž‘μ—…μ„ μ‹œμž‘ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
6) raulcorreia7 이 μž‘μ—… μ‹œμž‘μ„ μ‹ μ²­ν–ˆμŠ΅λ‹ˆλ‹€ _ (자금 만 제곡 : μž‘μ—…μž 승인 | μž‘μ—…μž κ±°λΆ€ ) _.

μ•ˆλ…•ν•˜μ„Έμš”,
이것은 생각할 ν•„μš”κ°€ μ—†μŠ΅λ‹ˆλ‹€.
DM λ‚˜.
7) coder4520 이 μž‘μ—… μ‹œμž‘μ„ μ‹ μ²­ν–ˆμŠ΅λ‹ˆλ‹€ _ (νŽ€λ” 만 ν•΄λ‹Ή : μž‘μ—…μž 승인 | μž‘μ—…μž κ±°λΆ€ ) _.

처음 μ‹œμž‘ν•˜κΈ°μ— 정말 쒋은 ν”„λ‘œμ νŠΈλΌκ³  μƒκ°ν•©λ‹ˆλ‹€.
8) adiprerepa κ°€ μž‘μ—… μ‹œμž‘μ„ μ‹ μ²­ν–ˆμŠ΅λ‹ˆλ‹€ _ (자금 만 제곡 : μž‘μ—…μž 승인 | μž‘μ—…μž κ±°λΆ€ ) _.

이것은 맀우 μ‰¬μšΈ κ²ƒμž…λ‹ˆλ‹€. printfλ₯Ό μ°Ύμ•„μ„œ λ‘œκΉ…μœΌλ‘œ λ°”κΎΌ λ‹€μŒ λ‹€μ‹œ ν™•μΈν•˜μ‹­μ‹œμ˜€.
9) xf3rno κ°€ μž‘μ—… μ‹œμž‘μ— μ μš©λ˜μ—ˆμŠ΅λ‹ˆλ‹€ _ (νŽ€λ” 만 ν•΄λ‹Ή : μž‘μ—…μž 승인 | μž‘μ—…μž κ±°λΆ€ ) _.

μš”μ²­ν•œ μž‘μ—…μ„ μˆ˜ν–‰ν•©λ‹ˆλ‹€. λͺ¨λ“  ν˜„μž¬ λ‘œκΉ…μ„ Google의 golang 둜거 라이브러리 (맀우 κ²½λŸ‰ : https://github.com/google/logger)둜 λ°”κΎΈκ³  μ»¨ν…μŠ€νŠΈ (디버그, κ²½κ³  λ“±)에 따라 각 λ©”μ‹œμ§€μ˜ λ²”μœ„λ₯Ό μ§€μ •ν•©λ‹ˆλ‹€.

Gitcoin 문제 μ„ΈλΆ€ 정보 νŽ˜μ΄μ§€μ—μ„œ μžμ„Ένžˆ μ•Œμ•„λ³΄μ‹­μ‹œμ˜€.

문제 μƒνƒœ : 1. λ―Έκ²° 2. μ‹œμž‘ 3. 제좜 4. μ™„λ£Œ


__0.1 ETH (167.47 USD @ $ 1674.72 / ETH)에 λŒ€ν•œ μž‘μ—…μ΄ __에 μ˜ν•΄ μ œμΆœλ˜μ—ˆμŠ΅λ‹ˆλ‹€.


이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰