gasUsed가 높은 트랜잭션의 요청을 보내면 bad block이 발생함(txMaxSize, computationCost 제한을 상향 조절한 Core에서 실험)

제목과 동일하게 MaxTxDataSize와 ComputationCost,gasLimit 한계치를 상향 조절하여 klaytn Core를 실행했습니다. 가스비가 3억8천만 가스가 소요되는 트랜잭션을 전송했더니 블록 데이터가 깨지면서 bad block이 발생했습니다. 이더리움의 경우에는 TxMaxsize와 gasLimit을 조절할 경우 높은 가스비가 요구되는 트랜잭션이더라도 잘 실행이 되던데 klaytn의 경우 bad block이 발생해서 혹시 다른 limit가 걸려있는 부분이 있나요? 다시 정리를 하면 limit 제한을 상향한 값들은 MaxTxDataSize, MaxRequestContentLength, ComputationCost, gasLimit입니다. 데이터 limit의 경우 32GB 이상 늘렸고, ComputationCost의 경우 기존보다 만배 이상 늘렸습니다. gasLimit의 경우 30억 gas로 늘렸습니다.

안녕하세요

먼저 제목에 언급해주신 내용은 블럭 검증단계에서 실패하여 BAD BLOCK이 발생할 수 있어보이는데요,

혹시 최근 Magma하드포크 이후로 발생하는 것인가요 아니면 최근 실험을 해보신것인가요? 보다 상세한 내용 또는

코드를 공유해주시면 좋을 것 같습니다.

자세한 사항을 처음 게시글에 넣었습니다. 코드 베이스는 release/v1.9.0입니다. git link는 GitHub - snp-labs/zklaytn-dev: Official Go implementation of the Klaytn protocol(add precompiled contract: bls12-381, mimc hash, poseidon hash) 입니다.

코드 업데이트가 덜 되어 있어 지금 push한 상태입니다.

이더리움과 다르게 클레이튼은 time constraint를 가지고 있습니다.

1초에 블럭실행 - 합의 - 저장이 모두 이루어져야 합니다. 따라서 수정하신거와 같이 가스를 많이 소모하는 트랜잭션은 실행되기 어렵습니다. (참고)

혹시 실험의 목적이 어떤것인지 여쭤봐도 될까요?

암호학 모듈을 컨트랙트에서 돌리려고 했었습니다.

1 Like