bug: LocalTerra stops producing blocks at height 100800 consistently #21
Labels
No labels
agent:fix_bugfix
agent:fix_conflicts
agent:fix_security
agent:gap_analysis
agent:implement
agent:implement
agent:implement
agent:open_issues
agent:ready
agent:research
agent:security_audit
agent:verify
architecture
backend
blocker:hybrid
blocker:launch
blocker:limit-orders
blocker:v2
block:log_only
block:security
bug
ci
contracts
correctness
deploy
dev
devops
docs
documentation
duplicate
e2e
enhancement
epic
feature
frontend
functional-completion
gas
good first issue
governance
help wanted
high-risk
hooks
hybrid
indexer
infra
infrastructure
integrators
invalid
launch-blocker
limit-orders
localnet
localterra
low priority
missing-implementation
needs-design
ops
performance
priority
high
priority
medium
product
qa
QA
question
ready
ready
research
scripts
security
security-hardening
smartcontracts
tech-debt
testing
ux
UX
v2
verification
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
code/cl8y-dex-terraclassic#21
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Description
LocalTerra consistently stops producing blocks at height 100800. The validator remains online (VotingPower: 10) but no new blocks are created. This has happened 3+ times during QA testing, requiring full volume wipe and redeploy each time.
Impact
Critical for development — all transactions fail after chain freezes. Requires docker compose down -v and full redeploy (make deploy-local) to recover, which takes ~5 minutes.
Steps to Reproduce
Environment
mentioned in issue #19
mentioned in commit
103744ef13Root Cause
The chain halts at block 100800 because of the Oracle module's
slash_windowparameter in the default Terra Classic genesis.LocalTerra runs a single validator with no oracle feeder. The oracle module expects price votes every 5 blocks. After 100800 blocks (the full
slash_window), theEndBlockerevaluates participation, finds the validator missed >95% of votes, and jails it. With the only validator jailed, no more blocks can be produced.slash_window100800vote_period5min_valid_per_window0.05slash_fraction0.0001With the fast 200ms block time, the chain reaches this boundary in ~5.6 hours instead of 7 days.
Fix (commit
103744e)Mounted a patched
docker/init-chain.shviadocker-compose.ymlthat modifies genesis oracle params at chain init:slash_fraction→0(no slashing penalty)min_valid_per_window→0(no minimum vote participation)whitelist→[](no currencies requiring oracle votes)To verify
@Brouie — QA: please verify the chain continues producing blocks well past 100800 after a fresh
make reset && make start && make deploy-local. A good check is to let it run for 6+ hours and confirm blocks are still advancing viacurl -s http://localhost:26657/status | jq '.result.sync_info.latest_block_height'.mentioned in issue #18
Verified fixed — LocalTerra reached block 222,944 without freezing. The new init-chain.sh resolved the validator stall at block 100800.
mentioned in issue #162