Repository navigation
build: bump kwil-db to quiet the reward hook on idle blocks - #1442
Conversation
Time Submission Status
Submit or update total time with: Add time on top of previous submission with: See available commands to help comply with our Guidelines. |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configuration
⛔ Files ignored due to path filters (1)
📒 Files selected for processing (1)
Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review. 📝 WalkthroughWalkthroughThe pull request updates the declared versions of ChangesKwil DB Dependency Updates
Priority: ➖ Normal Estimated code review effort: 1 (Trivial) | ~5 minutes Change: Bug fix Merge Risk: ⚪ Minimal · up to No concrete regression is established in the dependency updates. The inspected hook skips work only while finalization is blocked or within its grace period, so no actionable merge risk remains. 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches 💡 1🛠️ Fix failing CI checks 💡
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
@holdex pr submit-time 1h |
Part of:
The node pins
kwil-dbat806b5b2a. This moves the pin to6608a4cc, which adds the two commits that landed on kwil-db main since then. Both are under the Goal above:No rewards foundis no longer a WARNWhy it matters
The ERC-20 reward end-block hook wrote 15 INFO lines and 2 WARNs on every mainnet block. The WARN fired on nearly every block, which teaches operators to ignore warnings. While an epoch waited for a confirmation, or for its empty-epoch grace period to end, the hook also ran the same two queries on every block and got the same answer.
I replayed the same stretch of about 3,000 testnet blocks four times from one snapshot, twice with the build mainnet runs now and twice with these two commits. With the commits, each block applied about 10 ms faster (7%), and the hook's output fell from about 46,000 INFO and 6,165 WARN lines to 12 INFO lines, which are one round of epoch finalizations. The second PR above has the runs and how I set them up.
Worth knowing before the release
An idle block leaves no reward hook lines at INFO. INFO keeps the lines that mark a change: an empty epoch finalized, the Merkle tree of an epoch with rewards, and a new epoch. The per-block lines, such as each instance's current epoch, now show only at
level = 'debug'.Consensus
Nothing the hook writes changes, and neither does the block where an epoch finalizes. The hook skips a query only while its answer would be "wait", and a wait writes nothing. A node that has just restarted has no skip state and runs every check. The tests in the second PR above hold both cases to the same writes, and the replays matched the network's app hash on every block.
Every change since
806b5b2ais innode/exts/erc20-bridge/erc20.kwil-db/coredoes not change, and its pin moves with the module.Verification
go build ./...andgo vet -tags kwiltest ./...are clean, with Go 1.25.3 as the Dockerfile uses.go.moddiff is the twokwil-dblines, andgo mod tidychanged nothing else.kwiltestbuild tag, so the non-test code I replayed is the same as6608a4cc.There is no Problem issue for this in node. It delivers work merged under the kwil-db Goal above, so it carries no closing keyword.
Summary by CodeRabbit