## Vouch issue trace report
### CASE 1 Beacon node response error,sign 成功且submit proposal。
debug log
```log
2024-04-23 19:44:24.686 {"level":"debug","service":"client","impl":"http","id":"3c8f89f0","address":"localhost:3500","endpoint":"/eth/v1/validator/blinded_blocks/1499622?randao_reveal=0xad3521e11e93796303c5245b1110c5c54ff157825a8dcf4d1fcda5591a3bd7b91ec5c1506d8bb658eec4174202cc9dfc0aea30107570eef37aba30dac67585597d5e4a821b7fdffe001450da08c42d964ec40d1325ae47851c593863359d506d&graffiti=0x7365637572657270632e636f6d00000000000000000000000000000000000000","status_code":500,"status_code":500,"response":{"message":"Prepared block is not blinded","code":500},"time":"2024-04-23T18:44:24Z","message":"GET failed"}
```
error log
```log
2024-04-23 19:44:24.686 {"level":"error","service":"beaconblockproposer","impl":"standard","slot":1499622,"error":"failed to request blinded beacon block proposal: GET failed with status 500: {\"message\":\"Prepared block is not blinded\",\"code\":500}","time":"2024-04-23T18:44:24Z","message":"Failed to obtain blinded proposal"}
```
error發生行數
https://github.com/MEV-Protocol/auction-vouch/blob/7ae50aeeda2b69a5d2317b13e491e56d72320f62/services/beaconblockproposer/standard/propose.go#L467
https://github.com/MEV-Protocol/auction-vouch/blob/7ae50aeeda2b69a5d2317b13e491e56d72320f62/services/beaconblockproposer/standard/propose.go#L238
經比對 API url與錯誤訊息,判斷是Prysm的錯誤,這個錯誤目前還是open狀態。
Prysm issue:
https://github.com/prysmaticlabs/prysm/issues/12103
執行obtainBlindedProposal function失敗,回傳auctionResultFailedCanTryWithout,程式會執行proposeBlockWithoutAuction function,這一步最後是成功地submit proposal。
code block:
https://github.com/MEV-Protocol/auction-vouch/blob/7ae50aeeda2b69a5d2317b13e491e56d72320f62/services/beaconblockproposer/standard/propose.go#L191
執行 proposeBlockWithoutAuction log:
```log
2024-04-23 19:44:24.686 {"level":"warn","service":"beaconblockproposer","impl":"standard","slot":1499622,"time":"2024-04-23T18:44:24Z","message":"Failed to propose with auction; attempting to propose without auction"}
```
```log
2024-04-23 19:44:25.038 {"level":"trace","service":"beaconblockproposer","impl":"standard","proposing_slot":1499622,"validator_index":1613385,"elapsed":993.96429,"time":"2024-04-23T18:44:24Z","message":"Submitted proposal"}
```
問題:
1. 根據Prysm github issue討論,Prysm log有沒有出現
```Proposer: using local execution payload because higher value```
### CASE 2 Beacon node didn't response error
error log
```log
2024-04-23 19:44:25.406 {"level":"error","service":"beaconblockproposer","impl":"standard","proposing_slot":1499622,"validator_index":1613385,"error":"failed to propose with auction too late in process, cannot fall back","time":"2024-04-23T18:44:25Z","message":"Failed to propose block"}
2024-04-23 19:44:25.406 {"level":"error","service":"beaconblockproposer","impl":"standard","slot":1499622,"error":"failed to sign blinded beacon block proposal: failed to sign beacon block proposal: failed to obtain signature: not enough signatures: 0 signed, 2 denied, 0 failed, 1 errored","time":"2024-04-23T18:44:25Z","message":"Failed to sign blinded proposal"}
```
code block:
https://github.com/MEV-Protocol/auction-vouch/blob/7ae50aeeda2b69a5d2317b13e491e56d72320f62/services/beaconblockproposer/standard/propose.go#L266
```golang
signedBlindedBlock, err := s.signBlindedProposal(ctx, duty, proposal)
if err != nil {
log.Error().Err(err).Msg("Failed to sign blinded proposal")
return auctionResultFailed
}
```
Sign 失敗會回傳auctionResultFailed,不會跑proposeBlockWithoutAuction function,會直接回傳錯誤訊息(failed to propose with auction too late in process, cannot fall back)
問題:
1. 理論上程式不應該跑兩次,但一開始的log都有執行兩次的跡象,所以CASE 2打API成功但簽名失敗。