Skip to content

Commit c1ec848

Browse files
adria0ChihChengLiangadria0miha-stopared255
authored
### Description This PR merges the current milestone's light client PoC into main. Take into consideration: - The circuit is almost fished, although there are some small things that can be to be improved - There are some changes that maybe needs to be done in the go wrapper (like sending proofs results in the wrapper call, instead of go code to retrieve himself) that will requiere changes in the light client. This is the main cause to currently disable tests since it requieres to access to a RPC node. In a future changes will be mocked. - There's still pending some tests passing from a local geth node and mainnet blocks, when finished, the idea is to reuse some of the code for the MPT tests, to prove that a set of mainnet block state transitions can be successfully verified. ### Issue Link - privacy-scaling-explorations#1619 - privacy-scaling-explorations#1543 ### Type of change - [ ] Bug fix (non-breaking change which fixes an issue) - [x] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected) - [ ] This change requires a documentation update ### Contents - A circuit that verifies the state updates requiered to go from one state root to another - The witness generator for this circuit, that also, calls internally the `mpt-witness-generator` wrapper. - Tests to verify mainnet blocks - Test to verify a local geth node with `eth_accessListByNumber` RPC enabled - A draft of a server to create proofs and serve them. Note that this can be finished when local geth node tests will be passing. - Upstreamed MPT golang witness generator changes from miha branch --------- Co-authored-by: ChihChengLiang <[email protected]> Co-authored-by: adria0 <adria0@nowhere> Co-authored-by: Miha Stopar <[email protected]> Co-authored-by: Eduard S <[email protected]>
1 parent 1395ab9 commit c1ec848

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+8665
-275
lines changed

.cargo/config.toml

+3
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,5 @@
11
[target.'cfg(target_os="macos")']
22
rustflags = ["-C", "link-args=-framework CoreFoundation -framework Security"]
3+
4+
[target.x86_64-unknown-linux-gnu]
5+
rustflags = ["-C", "link-arg=-Wl,--allow-multiple-definition"]

.github/workflows/main-tests.yml

+6
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,9 @@ jobs:
3838
runs-on: ["${{github.run_id}}", self-hosted, c5.9xlarge]
3939

4040
steps:
41+
- name: Install OpenSSL lib
42+
run: sudo apt-get -y install libssl-dev
43+
4144
- uses: actions/checkout@v2
4245
- uses: actions-rs/toolchain@v1
4346
with:
@@ -87,6 +90,9 @@ jobs:
8790
runs-on: ["${{github.run_id}}", self-hosted, c5.9xlarge]
8891

8992
steps:
93+
- name: Install OpenSSL lib
94+
run: sudo apt-get -y install libssl-dev
95+
9096
- uses: actions/checkout@v2
9197
- uses: actions-rs/toolchain@v1
9298
with:

.gitmodules

+3
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,6 @@
77
update = none
88
path = integration-tests/contracts/vendor/openzeppelin-contracts
99
url = https://github.com/OpenZeppelin/openzeppelin-contracts
10+
[submodule "light-client-poc/go-ethereum"]
11+
path = light-client-poc/go-ethereum
12+
url = https://github.com/adria0/go-ethereum

0 commit comments

Comments
 (0)