This is a major release for Kroma Sepolia public testnet.
User Facing Changes
- A required flag
VALIDATOR_L2_ETH_RPC
is added. This flag requires L2 geth RPC, which is for generating proof in challenge process. - Prover communication gateway is changed from gRPC to jsonRPC, so
VALIDATOR_PROVER_GRPC
is renamed toVALIDATOR_PROVER_RPC
. - For consistency and readability,
VALIDATOR_OUTPUT_SUBMITTER_DISABLED
,VALIDATOR_CHALLENGER_DISABLED
are renamed toVALIDATOR_OUTPUT_SUBMITTER_ENABLED
,VALIDATOR_CHALLENGER_ENABLED
. Both are required flags now. - When creating a challenge, too large bond in the output would put pressure on challenger, so changed the bond amount of each output to a fixed amount. Therefore,
VALIDATOR_OUTPUT_SUBMITTER_BOND_AMOUNT
is deleted.
🐳 Docker images are available on Docker Hub.
Feature
Multiple challenges on one output have been implemented. Additionally, ZK proof verifier has been enabled in Colosseum
.
Contracts
- feat(contracts): unbond multiple bonds by @seolaoh in #104
- feat: prevent progressing challenge of finalized output by @seolaoh in #119
- feat!: rename variables by @TomTaehoonKim in #86
- feat!: accept multiple challenge and modify to fulfill stage2 by @Pangssu in #126
- feat(contracts): add function for forcefully deleting output root by @Pangssu in #132
- feat!: add ZK proof verifier to colosseum by @0xHansLee in #125
- feat(contracts): add check if L1 block hash is non zero by @seolaoh in #157
- fix(contracts): set validator reward scalar to system config contract by @Pangssu in #154
- fix(contracts): modify the forge-verify script for the new foundry version by @Pangssu in #159
- feat(contracts): add contracts about
Multi sig based proxy upgrade
by @kangsorang in #138 - feat(contract): add zero timelock for urgent situation by @kangsorang in #167
- feat(contract): change permissions for securityCouncil by @kangsorang in #168
- feat(contracts): improvement ZKVerifier contract by @Pangssu in #171
Client
- test(e2e): add challenger timeout fail test by @kangsorang in #85
- feat(validator): add validator metrics by @Pangssu in #113
- feat!(validator): rename output submitter and challenger flags by @0xHansLee in #114
- perf(validator): handle errors of validator's transactions by @kangsorang in #101
- test(e2e): add challenge timeout fail case by @kangsorang in #115
- feat: prevent progressing challenge of finalized output by @seolaoh in #119
- chore: apply hotfix v0.2.2 by @seolaoh in #124
- feat!: rename variables by @TomTaehoonKim in #86
- feat!(validator): handle multiple challenges on one output by @seolaoh in #128
- feat(node): upstream rollup node p2p by @Pangssu in #136
- feat(validator): change validator reward scalar to 1 by @0xHansLee in #146
- fix: fix parse of jsonRPC response from prover by @0xHansLee in #156
- chore(validator): add detailed info of challenge by @0xHansLee in #162
- feat(validator): prevent proving fault when output is already deleted by @seolaoh in #163
- feat(validator): inspect outputs which have undeniable bug by @0xHansLee in #155
- feat(batcher): add ChannelComprRatioValue metrics by @jyc228 in #165
- fix(validator): skip request deletion when output already been deleted by @0xHansLee in #169
- fix(validator): prevent challenger restart while sync by @seolaoh in #166
Docs
- docs: update specs - differences from Optimism by @therocks in #102
- docs(validator): validate withdrawal storage root against state root by @seolaoh in #112
- docs(validator): add
ValidatorPool
address to validator deposit guide by @seolaoh in #118
Others
- chore: revise issue template by @seolaoh in #117
- ci: run test ci on main by @0xHansLee in #122
- ci: remove checkout submodules by @ccrayz in #123
- chore: rename full node and fix incorrect log by @seolaoh in #129
- chore: modify license notation by @Pangssu in #131
- chore: apply license hotfix by @Pangssu in #133
- ci: change ci machine by @ccrayz in #152
- chore: bump kroma-geth to v0.2.0 by @seolaoh in #153
- chore: renaming configuration values in governor by @kangsorang in #170
- chore: bump kroma-geth from 0.2.0 to 0.2.1 by @0xHansLee in #173
- chore: update sepolia config v0.3.0 by @Pangssu in #174
- Dev -> Main by @0xHansLee in #175
Related to Audit
Some reported issues by Theori audit have been applied.
Contracts
- fix: fix vulnerabilities reported to ZKTRIE by @jyc228 in #127
- fix: validate compressedFlags by @jyc228 in #134
- fix(contracts): release public input hash in dismissChallenge by @kangsorang in #143
- chore(contract): initialization for ReentrancyGuardUpgradeable by @kangsorang in #141
- fix(contracts): change to send ETH to zero address when burning by @Pangssu in #145
- feat(contracts): remove validation reward penalty by @Pangssu in #137
- feat: apply upstream(Optimism) bugfixes by @seolaoh in #135
- fix(contracts): fix logic after output finalized in challenger timeout by @kangsorang in #144
- feat(contracts): improvement for the next validator selection by @kangsorang in #147
- feat: apply upstream(Optimism) bugfixes more by @seolaoh in #148
- feat(contracts): check l1 blockhash when creating challenge by @Pangssu in #149
- feat(contracts): change the bond amount to a fixed value by @Pangssu in #150
- chore(contracts): remove safely modified comment in
L2OutputOracle
by @seolaoh in #158 - feat(contracts): apply taxation on challenge rewards by @Pangssu in #161
- fix(chain-ops): change portal guardian to multisig wallet by @kangsorang in #164
Client
- fix(node): fix typo in JSON Tag by @kangsorang in #140
- feat(validator): handle the output when L1 reorg occurs by @0xHansLee in #142
- feat: apply upstream(Optimism) bugfixes by @seolaoh in #135
- chore: improve usage of Context.WithTimeout by @kangsorang in #139
- feat: apply upstream(Optimism) bugfixes more by @seolaoh in #148
- chore: improve usage of Context.WithTimeout by @kangsorang in #160
New Contributors
Full Changelog: v0.2.2...v0.3.0