P3/P4 implementation status — what is done, what is blocking testnet #150
Replies: 2 comments 3 replies
|
Here is what has been integrated regarding tokenomics, slashing and what is left @abrahamnash @umeradl I can raise a Github issue around the open question and fix what is left to be done before testnet launch |
|
On the validator token question, I can answer (a) from the outside. I registered as an aggregator on Model_0 GI 2 in July. Funded a throwaway wallet with OP Sepolia ETH, used the faucet for DIN, staked. The path works. It's still sitting in What I hit instead was that the phase never advanced after registration, and If P3-T0.2a-e is still unowned I'll take it. SIGTERM handling, /health, structured logging and systemd units are what I run on my own nodes. I'd start with /health and the systemd units since those are what unblock anyone else trying to run one. |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Overview
Quick status update covering what has shipped, what is pending review, and what is concretely blocking the move to testnet. Also flagging the frontend gap explicitly.
What has been implemented (PRs open, CI green, awaiting review)
DinEmission— geometric decay protocol subsidy contract with upgrade validationsettleRecomputation+expireDispute+resolutionDeadlinestate machinedindao.pyAll four Solidity PRs have CI passing (Solidity + Python + Docs). PRs #29/#72 have two small blockers being fixed now (schema.graphql syntax error + one test file to rewrite to CliRunner).
What is blocking testnet
Contract safety
BL-11 — dispute subgroup randomness.
_assignFreshSubgroupstill shuffles via grindableblockhash(block.number - 1). The model owner (who callsresolveDispute) can wait indefinitely for a favourable hash with no deadline — undermining the one mechanism meant to catch owner/aggregator collusion. Needs a commit-reveal fix before the dispute mechanism is trustworthy for external validators. Dedicated PR coming for this.P3-6.2 stress/collusion/Sybil testing has not started. Cannot begin meaningfully until PRs feat(slashing): S1/S2 partial-slash tiers + S5/S6 escalation (#38) #146 and feat(issue-38): S4 aggregation dispute second-phase state machine #149 are reviewed and merged — those are what the adversarial tests exercise. Estimated one week to produce the full scenario suite once they land.
PRs feat(slashing): S1/S2 partial-slash tiers + S5/S6 escalation (#38) #146–feat(issue-38): S4 aggregation dispute second-phase state machine #149 pending review. All are merge-ready, none are draft. Blocked on review sign-off.
Indexer
LocalModelSubmitted,T1/T2AggregationSubmitted,GIStateChanged) — need confirmation on who owns that contract-side work before those handlers can be enabled.Not my items but worth naming
/healthendpoint, structured logging, systemd/launchd units) — all still 📋 Planned.No frontend yet
There is currently no frontend application. All interaction with the protocol happens through
dinclicommands in the terminal. There is no web UI for validators, model owners, auditors, or clients.This is worth naming explicitly before testnet — for any goal around onboarding a broader validator or client base, a terminal CLI is a real barrier for non-technical participants. If a frontend is in scope before testnet, that workstream does not exist yet and has no owner.
Tokenomics — what is live, what is stubbed, what needs a decision
What is live on develop today
depositAndMint) at 1,000,000 DIN/ETHDinTreasurycontract deployedDinFeeRouterrouting slots definedMIN_STAKE = 10 DIN(DAO-settable)setMintCap()+retireFaucet()mechanics existWhat is built but not yet merged
DinEmissiongeometric decay contract. Contract structure is correct; the actual parameter values (initialEmissionPerGI,decayBps,epochLength,maxEpochs) have not been agreed on yet.Treasury forwarding is stubbed — tokens never reach
DinTreasuryThree places in the contracts accumulate treasury balances in a
treasuryAccruedcounter instead of forwarding toDinTreasury: the dispute bond forfeiture path inDINTaskCoordinator, the frivolous-dispute forfeit, and the reward-settlement treasury share (5% of every GI pool) inDINTaskAuditor. The treasury contract is deployed but nothing flows in automatically. Every GI run on testnet will strand treasury funds in the task contracts until this is wired up. This is task_100926_12 §2 — in progress.Open decisions needed before testnet
mintCapdinPerEthMIN_STAKEand cap — needs a principled rateMIN_STAKEs1SlashFractionBpss2SlashFractionBpsinitialEmissionPerGIdecayBpsepochLengthmaxEpochsMAX_SUPPLY: No permanent hard cap — intentionally dynamic, governed by issuance vs. burn, with a hard cap possible later via governance. For testnet, the
mintCapserves as the effective supply ceiling (faucet + emission both respect it). Whether this is the intended design or needs a separate param for each source needs confirming.Validator token distribution for testnet: How does an external validator get DIN to stake? Options are: (a) deposit ETH via the faucet, (b) testnet airdrop via the Merkle drop contract (blocked on indexer), or (c) manual allocation. Without a clear answer, external validators cannot onboard.
P3-DOC5 tokenomics paper has not been written. No public-facing write-up of the full token model (utility, emission schedule, fee routing, supply policy) exists for validator partners, grant reviewers, or auditors.
Happy to answer questions on any of the above or update this as things progress.
All reactions