Initial objective: improve zkWASM test coverage.
EIP-X objectives: is contributing to EIP-X
TBC
TBC
TBC
gantt
title Projects timeline
dateFormat YYYY-MM-DD
section A
?? :2023-08-14, 23d
?? :2023-09-03, 30d
?? :2023-10-08, 7d
?? :2023-10-08, 7d
?? :2023-10-15, 15d
?? :2023-10-29, 7d
section B
?? :active, 2023-08-14, 23d
TBC
Initial objective:
EIP-X objective:
See https://github.com/sogolmalek/EIP-x#collaborators
TODO
Common
20230701 W0
debug_getRawReceipts
method and how to configure it to use Goerli network, however I encountered an error and created an issue in the repository hereJSON_RPC_URL
environment variable to connect to a JSON RPC provider to get blocks from Goerli or Mainnet and then
pnpm run build
https://github.com/ltfschoen/lodestar/pull/2queryHash
from a previous request "0x6122480456cf0f66fc39f18fcb1848eeafdd99cc891659c4310c781e5111f03a"
and the logs showed it created this query /v1/query/get_data_for_query?queryHash=0x6122480456cf0f66fc39f18fcb1848eeafdd99cc891659c4310c781e5111f03a&chainId=5&contractAddress=0x82842F7a41f695320CC255B34F18769D68dD8aDF&mock=false
but it generated error QueryNotFoundInDbError
. It might be because I have only used sendQuery
to the verifier, but haven't generated the zk proof by the prover
Configure Axiom SDK (JavaScript) to use JSON-RPC provider (i.e. local node, Alchemy, or Infura) where instantiating the Axiom class enables interactions with the Axiom SDK API and to interact with on-chain contracts
Obtain latest block headers. Specify query requests that filter the block headers and generate witness data that we need. Batch multiple query requests to Axiom.
TODO Create front-end dApp (similar to https://demo.axiom.xyz, which uses smart contracts deployed using https://github.com/axiom-crypto/axiom-apps) instead of JSON-RPC queries using cURL
Query request (using cURL or front-end dApp) is encoded and sent as on-chain transaction by user for historic data from Ethereum block headers, accounts, and account storage via Axiom by building a query using the Axiom SDK (JavaScript) using the Axiom Query Format and submitting it with sendQuery
on-chain to the AxiomV1Query
smart contract. Payment of ETH is required for gas fees and proving fees.
blockNumber
up to current block, Ethereum address
, and storage slot
in contract storagequery
, and keccakQueryResponse
as the Merkle-ized form of the query (may be uniquely determined from the query
but contains additional on-chain history info)Query response. Wait for query fulfillment by monitoring its status using the Axiom Explorer.
keccakQueryResponse
(the primary way to access results provided for each query along with poseidonQueryResponse
) is written/committed on-chain to the AxiomV1Query
smart contract storage in a Merkle-ized format (allowing Axiom to fulfill queries into large amounts of data without paying to store each piece in contract storage), allowing downstream applications to trustlessly access the query response results that were fulfilled on-chainRead (using cURL or front-end dApp) and fetch witnesses to prepare an on-chain transaction to read the final value we are proving and verify query response results against smart contract storage trustlessly.
Submit the fetched witness data on-chain to execute a transaction to prove the final value. ETH is required for gas fees.
View the on-chain transaction once confirmed using Axiom Explorer.
Compute (verifiable compute) the ingested data by Axiom then apply verified compute primitives on top, where the validity of each computation is verified in a ZK proof.
Verification by Axiom accompanying each sendQuery
result with a ZK proof of validity that is verified on-chain in the Axiom smart contract and the final query response results (with security cryptographically equivalent to that of Ethereum) is then trustlessly available for use in customer user smart contracts. The ZK proof proves:
Operate on and use the final query response results that have been ZK-verified on-chain in our user application and custom smart contracts
Error: out of sync: 1697023721 seconds behind
which the maintainer thought was useful and we discovered that we cannot use example scripts until that issue is resolved, but we are able to embed code in the existing repo and run it when we use the CLI to run a node and that workedchain_id
, but got RequestTimeout
errors when calling get_block_by_hash
and raised the issue in the Discord #trin channel here https://discord.com/channels/890617081744220180/890617129425047583/1165734043371974686get_block_by_hash
but not sure why i need to change the discovery port CLI option value for it to find peers, see issue https://github.com/clawbird/axiom-dapp/issues/46Link to separate document here
Ethereum Protocol Development Roadmap
EPF Workshop