서비스 체인 (kscn)에서 가스피가 발생하는 문제

프라이빗 체인 구성을 위해서 클레이튼 서비스 체인 KSCN 1.9.1 버전을 설치해서 테스트를 진행 중입니다.
homi를 통해 다운 받은 genesis.json 파일의 unitPrice=0이면 가스수수료가 0로 셋팅이 된다는 글을 봤는데,
전송테스트나 토큰 생성 등의 작업을 해보면 가스 수수료가 계속 부과가 되고 있습니다.
아래는 실제로 수수료가 부과된 트랜잭션 조회 내역입니다.
프라이빗 체인에서는 모든 트랙잭션에 대해 제로 수수료로 셋팅을 하고자 하는데, 어떻게 하면 될지요?
혹시 1.9 버전에서 가스 수수료 방식이 개편이 되면서 수수료 셋팅하는 방식이 바뀐것인지 확인 부탁 드리겠습니다.

klay.getTransaction(“0x858382fe3a2e053c4deb4c14b61ca6c759bf30f7cb089548988bb926340a5707”)
{
blockHash: “0xeedb184df424b3e7cb18682ed44d21c240e8fca4e36a494300d4a7ccdf3a6756”,
blockNumber: 1464759,
from: “0xfbda6c5a9cb1331661a522e07b5ebd22713b0872”,
gas: 90000,
gasPrice: 50000000000,
hash: “0x858382fe3a2e053c4deb4c14b61ca6c759bf30f7cb089548988bb926340a5707”,
input: “0x”,
nonce: 41,
senderTxHash: “0x858382fe3a2e053c4deb4c14b61ca6c759bf30f7cb089548988bb926340a5707”,
signatures: [{
R: “0x1aaffd8dcce1c7232bda876a5e6285bea094e1f7c784ff944f4de1086043f867”,
S: “0x5939ecd584b0bd1dcf2121aba6619b774f8190e90e39d79927bbc321281fff50”,
V: “0xefb”
}],
to: “0xe6cdc0739107d92d009c5784e1780147045936f1”,
transactionIndex: 0,
type: “TxTypeLegacyTransaction”,
typeInt: 0,
value: 1000000000000000000
}

가스비 설정 방법

기본 설정에서 가스비 상한값은 750000000000이며, 하한값은 25000000000입니다.
서비스체인 SCN의 자바스크립트 콘솔에서 거버넌스 기능을 사용하여 가스비의 상한값과 하한값을 변경할 수 있습니다.

단, 하한값은 상한값보다 클 수 없으며,
가스비를 고정 값으로 설정하려면 가스비의 상한값과 하한값을 같은 값으로 설정하시면 됩니다.

문의하신 것처럼, 가스비를 0으로 고정하려면 아래와 같이 설정하시면 됩니다.

먼저 현재 블록넘버와 마그마 하드포크가 적용 되었는지를 확인하시고
`$ kscn attach /path/to/klay.ipc

klay.blockNumber
31234
governance.chainConfig.magmaCompatibleBlock
1500`

upper and lower bound 0으로 세팅합니다.
`$ kscn attach /path/to/klay.ipc

governance.vote(“kip71.lowerboundbasefee”, 0)
“Your vote is prepared. It will be put into the block header or applied when your node generates a block as a proposer. Note that your vote may be duplicate.”
governance.vote(“kip71.upperboundbasefee”, 0)
“Your vote is prepared. It will be put into the block header or applied when your node generates a block as a proposer. Note that your vote may be duplicate.”`

가스비 상한값 및 하한값 변경을 위한 거버넌스 vote는 2번의 istanbul epoch 이후 적용됩니다.
epoch는 블록 단위의 값을 가지며,
epoch 값은 자바스크립트 콘솔에서 아래와 같은 명령어를 통해 확인할 수 있습니다.

`

governance.itemsAt(klay.blockNumber)
{
governance.governancemode: “none”,
governance.governingnode: “0x05ad406f31e22b74f18c9ed65ed1ccd349bbbee0”,
governance.unitprice: 0,
istanbul.committeesize: 21,
istanbul.epoch: 3600,
istanbul.policy: 0,
kip71.basefeedenominator: 20,
kip71.gastarget: 30000000,
kip71.lowerboundbasefee: 25000000000,
kip71.maxblockgasusedforbasefee: 60000000,
kip71.upperboundbasefee: 750000000000,
reward.deferredtxfee: false,
reward.minimumstake: “2000000”,
reward.mintingamount: “9600000000000000000”,
reward.proposerupdateinterval: 3600,
reward.useginicoeff: false
}`

예를 들어, epoch 값이 3600으로 설정되었고, 4000번째 블록에서 governance.vote를 통해 가스비 상한값 또는 하한값을 변경한 경우에 해당 변경은 10800번째 블록부터 적용됩니다 (vote 이후 첫 번째 epoch인 7200번 블록에서 vote가 finalize 되고, 두 번째 epoch인 10800번 블록 이후 vote에서 변경점이 적용).

epoch 또한 거버넌스를 통해 변경하실 수 있습니다.

> governance.vote("istanbul.epoch", 60) "Your vote is prepared. It will be put into the block header or applied when your node generates a block as a proposer. Note that your vote may be duplicate."

감사합니다.

답변 드린 내용과 동일하지만
관련 문서의 링크도 공유해 드립니다.

감사합니다.

빠르게 답변해주셔서 감사합니다.
알려주신 대로 처리한 결과 정상적으로 수수료 없이 트랜잭션 처리가 가능한 것을 확인하였습니다.
많은 도움이 되었습니다.

감사합니다!

1 Like