Oracle for the 2.0 devnet on Sepolia (0xbb345004…, statements with chain id 4465, on the shared verifier); /oracle says the shared verifier's installed table is Devnet 3's until devnet-4's lands
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
parent
7e283234b3
commit
2ae01dd408
3 changed files with 42 additions and 25 deletions
|
|
@ -260,7 +260,7 @@
|
|||
<section class="card" aria-labelledby="deployed">
|
||||
<h2 id="deployed">On Sepolia</h2>
|
||||
<div class="kv" data-oracle-kv>
|
||||
<div class="k">Oracle</div><div class="mono" data-oracle-address>0x3ad71d4660d8a8d2f92248b9c286392dd76a3ab6 <small>IgneumStateOracle, deployed 8 October 2026 on the shared verifier (tx 0x16312cf8…4e2a, block 11870855); its trust() names the two unchecked items below; accepts statements with chain id 4463 or 4464 (the earlier devnet it was deployed against; a redeploy against the 2.0 devnet, chain id 4465, is owed).</small></div>
|
||||
<div class="k">Oracle</div><div class="mono" data-oracle-address>0xbb3450049926da3572e6b67cb94df312fe349e34 <small>IgneumStateOracle for the 2.0 devnet (igneum-devnet-4, statements with chain id 4465), deployed 8 October 2026 on the shared verifier (tx 0x5eb08f3a…a5a9, block 11871485). The Devnet 3 oracles stay as deployed with their records: 0x3ad71d46…3ab6 (chain ids 4463 and 4464, on the shared verifier) and 0xefe9879d…a1b2 (the stand-in verifier at first).</small></div>
|
||||
<div class="k">Verifier</div><div class="mono" data-verifier-address>0xAf74f3F512081291D663Bb1d6b6d37E99e37D744 <small>the shared IgneumCertificateVerifier (the DEX lane's, a real BLS12-381 check on chain through the EIP-2537 precompiles, voter table installed at checkpoint 2127), set by setVerifier on 8 October 2026 (tx 0xd679bb65…db8e); the stand-in 0xa197ef31…a6f6 served until then</small></div>
|
||||
<div class="k">Chain</div><div>Sepolia, chain id 11155111; the Igneum 2.0 devnet (igneum-devnet-4), no value</div>
|
||||
<div class="k">Proven roots</div><div class="mono">Certificate 2232 (0xf056c26e…, 29 voters, signed weight 4,988 of 7,164) recorded on the shared verifier with a real BLS check, tx 0x1794b785…1e8a, 792,677 gas. Devnet chain block 28439, post_root 0x6e6d2fc8… stored on this oracle with a 6-header path, tx 0xcdb24dbc…ee5fc, 1,624,984 gas; provenBalance read 721.451608 IGN for 0xcaed79d8…c087 on Sepolia, equal to the devnet node's eth_getProof.</div>
|
||||
|
|
@ -277,7 +277,7 @@
|
|||
<li>Every read: a keccak-keyed Merkle Patricia proof against the stored root, verified on chain.</li>
|
||||
</ol>
|
||||
<div class="trust"><h3>Trust anchors and unchecked signatures, named (also returned by the contract's <code>trust()</code>)</h3><ul>
|
||||
<li><b>Deployer-installed trust anchor, disclosed, not removed:</b> the shared verifier's voter table. It stays because no header field commits to the table yet; the day one does, the table is read from the chain and this anchor goes.</li>
|
||||
<li><b>Deployer-installed trust anchor, disclosed, not removed:</b> the shared verifier's voter table. It stays because no header field commits to the table yet; the day one does, the table is read from the chain and this anchor goes. The table installed today is Devnet 3's (checkpoint 2127, chain id igneum-devnet-3): a 2.0 devnet certificate is not recordable through it until its deployer installs devnet-4's table; the roots and certificate recorded below are Devnet 3's.</li>
|
||||
<li>The voter table and weights the shared verifier checks certificates against were installed by the verifier's deployer (read from a node at checkpoint 2127), not read from the chain. A certificate is verified against that installed table; a later table that drifts past the rule's margin needs a new install by that deployer.</li>
|
||||
<li>The aggregator's BLS signature over the segment record is not checked on chain, and the SP1 proof behind its statement is not verified on chain. A stored root rests on the aggregator's statement as the nodes check and pay it.</li>
|
||||
<li>A balance read from a stored root is executed and finalised state under those assumptions, not a payment outcome.</li>
|
||||
|
|
|
|||
|
|
@ -29,13 +29,15 @@ async function deploy(name, args) {
|
|||
const oracleOnly = process.argv.includes('--oracle-only');
|
||||
// --verifier 0x..: construct the oracle on that verifier (the shared IgneumCertificateVerifier) instead of the stub
|
||||
const vi = process.argv.indexOf('--verifier'); const verifierArg = vi > 0 ? process.argv[vi + 1] : null;
|
||||
// --chain-ids A,B: the statement chain ids the oracle accepts (Devnet 3: 4463,4464; the 2.0 devnet igneum-devnet-4: 4465,4465)
|
||||
const ci = process.argv.indexOf('--chain-ids'); const chainIds = ci > 0 ? process.argv[ci + 1].split(',').map(Number) : [EVM_CHAIN_ID, EVM_CHAIN_ID_AFTER_FLOOR];
|
||||
const previous = existsSync(out) ? deployment() : null;
|
||||
const stub = oracleOnly && previous ? previous.stub : await deploy('StubCertificateVerifier', []);
|
||||
const oracle = await deploy('IgneumStateOracle', [verifierArg || stub.address, EVM_CHAIN_ID, EVM_CHAIN_ID_AFTER_FLOOR]);
|
||||
const oracle = await deploy('IgneumStateOracle', [verifierArg || stub.address, chainIds[0], chainIds[1] ?? chainIds[0]]);
|
||||
const after = await pub.getBalance({ address: account.address });
|
||||
const d = {
|
||||
network: 'sepolia', chainId: 11155111, rpc: 'https://ethereum-sepolia-rpc.publicnode.com', deployer: account.address,
|
||||
evmChainId: EVM_CHAIN_ID, evmChainIdAfterFloor: EVM_CHAIN_ID_AFTER_FLOOR, verifier: verifierArg || 'stub', verifierAddress: verifierArg || stub.address, stub, oracle, deployedAt: new Date().toISOString(), spentWei: (bal - after).toString(),
|
||||
evmChainId: chainIds[0], evmChainIdAfterFloor: chainIds[1] ?? chainIds[0], verifier: verifierArg || 'stub', verifierAddress: verifierArg || stub.address, stub, oracle, deployedAt: new Date().toISOString(), spentWei: (bal - after).toString(),
|
||||
previous: previous ? [...(previous.previous || []), { stub: previous.stub, oracle: previous.oracle, deployedAt: previous.deployedAt, writes: previous.writes || [] }] : [],
|
||||
};
|
||||
writeFileSync(out, JSON.stringify(d, null, 1) + '\n');
|
||||
|
|
|
|||
|
|
@ -3,8 +3,8 @@
|
|||
"chainId": 11155111,
|
||||
"rpc": "https://ethereum-sepolia-rpc.publicnode.com",
|
||||
"deployer": "0xe1D08384ef4c4c1511c8f05F94C914C4DeDc2787",
|
||||
"evmChainId": 4463,
|
||||
"evmChainIdAfterFloor": 4464,
|
||||
"evmChainId": 4465,
|
||||
"evmChainIdAfterFloor": 4465,
|
||||
"verifier": "0xAf74f3F512081291D663Bb1d6b6d37E99e37D744",
|
||||
"verifierAddress": "0xAf74f3F512081291D663Bb1d6b6d37E99e37D744",
|
||||
"stub": {
|
||||
|
|
@ -14,13 +14,13 @@
|
|||
"gasUsed": 8434842
|
||||
},
|
||||
"oracle": {
|
||||
"address": "0x3ad71d4660d8a8d2f92248b9c286392dd76a3ab6",
|
||||
"tx": "0x16312cf8177eb79c28858d79509ea56376cefb94e09fb1872bfea018df734e2a",
|
||||
"block": 11870855,
|
||||
"address": "0xbb3450049926da3572e6b67cb94df312fe349e34",
|
||||
"tx": "0x5eb08f3aadfbcec8e6eeccf5349278e1c5eeba27c08d6150aa2fdbd0395ca5a9",
|
||||
"block": 11871485,
|
||||
"gasUsed": 20561543
|
||||
},
|
||||
"deployedAt": "2026-10-08T14:47:15.139Z",
|
||||
"spentWei": "20561810300059",
|
||||
"deployedAt": "2026-10-08T16:53:26.556Z",
|
||||
"spentWei": "20561871984688",
|
||||
"previous": [
|
||||
{
|
||||
"stub": {
|
||||
|
|
@ -165,21 +165,36 @@
|
|||
"headers": 6
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"writes": [
|
||||
},
|
||||
{
|
||||
"at": "2026-10-08T14:47:39.502Z",
|
||||
"what": "submitStateRoot",
|
||||
"vector": "devnet-3",
|
||||
"number": "28439",
|
||||
"postRoot": "0x6e6d2fc8993db13220d84f39ca9cbc08a8c6975ce2932a4289a1d6ef4cef60c8",
|
||||
"certIndex": "2232",
|
||||
"tx": "0xcdb24dbceb5b1c5f4605842809228428c59bd73291a0114e555df74c57dee5fc",
|
||||
"block": 11870857,
|
||||
"gasUsed": 1624984,
|
||||
"calldataBytes": 24391,
|
||||
"headers": 6
|
||||
"stub": {
|
||||
"address": "0xa197ef31d5d5613125779179668e2482ac69a6f6",
|
||||
"tx": "0xa01091b62dfb4a89b25afb57a3d384677a9ad62370748504d2b3f288c0d3ad38",
|
||||
"block": 11869583,
|
||||
"gasUsed": 8434842
|
||||
},
|
||||
"oracle": {
|
||||
"address": "0x3ad71d4660d8a8d2f92248b9c286392dd76a3ab6",
|
||||
"tx": "0x16312cf8177eb79c28858d79509ea56376cefb94e09fb1872bfea018df734e2a",
|
||||
"block": 11870855,
|
||||
"gasUsed": 20561543
|
||||
},
|
||||
"deployedAt": "2026-10-08T14:47:15.139Z",
|
||||
"writes": [
|
||||
{
|
||||
"at": "2026-10-08T14:47:39.502Z",
|
||||
"what": "submitStateRoot",
|
||||
"vector": "devnet-3",
|
||||
"number": "28439",
|
||||
"postRoot": "0x6e6d2fc8993db13220d84f39ca9cbc08a8c6975ce2932a4289a1d6ef4cef60c8",
|
||||
"certIndex": "2232",
|
||||
"tx": "0xcdb24dbceb5b1c5f4605842809228428c59bd73291a0114e555df74c57dee5fc",
|
||||
"block": 11870857,
|
||||
"gasUsed": 1624984,
|
||||
"calldataBytes": 24391,
|
||||
"headers": 6
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue