-
Notifications
You must be signed in to change notification settings - Fork 19.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
all: EIP-compliant verkle tree support #23630
Closed
gballet
wants to merge
87
commits into
ethereum:master
from
gballet:verkle-trie-proof-in-block-rebased
Closed
Changes from 72 commits
Commits
Show all changes
87 commits
Select commit
Hold shift + click to select a range
1627805
all: implement EIP-compliant verkle trees
gballet 719bf47
Upgrade go-verkle to its IPA version (#24)
gballet 9f9c03a
fixes for the IPA testnet
gballet 97a79f5
enable verkle on cancun block: take 2 (#28)
jwasinger bc06d2c
fix rebase issues
gballet e114474
fix linter issue
gballet ef08e51
merge undefined instead of panicking (#30)
gballet 15d9860
initialize the new access witness if not already present
gballet 5ca9901
fix boundary check in PUSH
gballet 6d40e11
fix bound check in code chunking
gballet 03dbc0a
fix boundary condition check in PUSH32
gballet 7cb1add
add circleci support (#32)
gballet 41c2f75
remove unnecessary cancun block declaration in tests (#33)
gballet 361a328
upgrade go version (#34)
gballet 7360d16
fix calculation in get_tree_key_for_storage_slot (#35)
gballet 909049c
use the witness in statedb, revert applyTx signature (#36)
gballet 86bdc3f
Remove access witness from the signature of Process (#38)
gballet fa753db
consensus/ethash: ensure uncle accounts are included in block witness…
jwasinger 5bac5b3
consensus/ethash: move accumulation of coinbase witness before coinba…
jwasinger fe75603
remove outdated comment
gballet 6af78cb
miner: embed verkle proof in sealing block (#39)
jwasinger 99ebf76
Refactor witness-accumulation in EVM (#42)
jwasinger f215cc0
call onleaf in verkle commit (#45)
gballet e16e9cc
replace sha256 with pedersen_hash in get_key (#46)
gballet c87a6d9
reactivate working lines in test
gballet 99f3c92
fix: don't create settings each time a key is calculated (#53)
gballet 4428439
fix: don't use rlp in the tree for slot values (#51)
gballet d761880
core/vm: don't include contract deployer bytecode in AccessWitness or…
jwasinger 952be80
Verkle EXTCODECOPY implementation (#55)
jwasinger 99604b0
Use IsCancun where applicable (#56)
jwasinger 5beac51
Charge witness gas when calling/creating a contract (#60)
gballet 15b353d
verkle proof deserialization (#61)
gballet 5e657a5
fix: build more than one block in stateless test (#66)
gballet 878a3d6
Fix GetTreeKey (#65)
jwasinger 469945b
Implement latest stateless gas charging spec (#63)
jwasinger 2c896ba
Various fixes for rust-verkle proof format compatibility (#67)
gballet f89d0bc
Fix contract creation aw (#68)
jwasinger c94b925
fix a couple linter issues
gballet 7f5f975
Sload fix (#69)
jwasinger c82b074
fix: witness gas costs being charged more than once (#70)
gballet 825884a
re-enable VerkleTrie::ToDot
gballet a758e16
core/state: implement GetCodeSize for VerkleDB (#75)
jwasinger e8114e8
copy the pre-state, use an untouched copy for the proof (#72)
gballet 2ac6b86
test to compare the proof format with that of rust verkle (#73)
gballet c270886
check proof in verkle tree test
gballet cd491b1
don't delete from the trie when we encounter empty state object if ve…
jwasinger 2554974
core/state: write code to rawdb under codehash key when verkle is ena…
jwasinger 291a947
force the 32-byte alignment of nonce and balance (#71)
gballet dca3c2e
core/state - ensure storage value is set properly in snapshot when ve…
jwasinger b7d0870
fixes for the return type change in go-verkle (#77)
gballet 1a98ca7
calculate tree index correctly for SLOAD access event (#79)
jwasinger 7af62ef
core/vm: witness write event for SSTORE (#80)
jwasinger 94b2e58
fix estimateGas (handle ErrInsufficientBalanceWitness). Return prope…
jwasinger 0b9f067
Verkle/fix/perdersen hash (#84)
gballet 54442c0
refactor: set witness account values in getStateObject() (#83)
gballet bf50506
fix verkle trie iterator to not miss leaf values in the first index o…
jwasinger 3d88e39
creation-time CODECOPY adds no code to the witness (#86)
gballet 7a3e72f
small simplification in order to facilitate rebase
gballet 88ad86d
upgrade go-ipa + go-verkle: faster precomp loading
gballet ba76380
fix: place slot value, not its rlp encoding in witness
gballet 8bb23d8
fix: code chunification with incorrect header (#89)
gballet ab87f5f
spec: don't add the trailing pushdata for a final PUSHn (#90)
gballet c9ffa89
cleanup: don't evaluate 0 coeffs in get_tree_key (#87)
gballet dd6425e
ensure no overflow occurs in the chunk touch function
gballet de3964f
load the full coinbase account in reward
gballet 3e1417e
fix: previous commit broke stateless test
gballet 3068fe9
rework the way the gas is charged per code chunk
gballet 64ec2e8
update go-verkle to grab the fix for #200
gballet fc9c06d
fix: don't add PUSH1-data during contract deployment (#91)
gballet 8f01a89
fix: redundant proof-of-absence stems (#93)
gballet ca661be
test: missing children of the same internal node produce a single ext…
gballet b9adceb
ParseNode with commitment parameter (#95)
gballet 298d8ce
review feedback for rebase over kiln (#97)
gballet 439be0c
safe gas add (#98)
gballet 4b36e66
ensure 10-byte addresses are right-aligned in pedersen_hash (#99)
gballet 336ff36
Remove the code analysis interface to reduce PR footprint (#100)
gballet ac6bc0f
fix: set IsDeployment=false outside of contract creation (#101)
gballet 6856df3
remove trailing line
gballet 5975b44
verkle test: count the code chunks in the witness (#102)
gballet a4838ea
temp fix: little endian pedersen_hash (#103)
gballet d4ac871
factor the amount of polynomial evaluations in access witness (#106)
gballet 8831288
reuse polynomial evaluation in account update (#108)
gballet bf9893d
fix: remove redundant balance touching in access witness (#107)
gballet fbcdf09
add github workflow
gballet e15eaf7
reuse address point evaluation in code chunking (#109)
gballet e3191c3
upgrade branch to use banderwagon (#111)
gballet 4e2ea43
reduce pr footprint by reverting to codeSegment (#113)
gballet File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
# Use the latest 2.1 version of CircleCI pipeline process engine. | ||
# See: https://circleci.com/docs/2.0/configuration-reference | ||
version: 2.1 | ||
|
||
# Define a job to be invoked later in a workflow. | ||
# See: https://circleci.com/docs/2.0/configuration-reference/#jobs | ||
jobs: | ||
build: | ||
working_directory: ~/repo | ||
# Specify the execution environment. You can specify an image from Dockerhub or use one of our Convenience Images from CircleCI's Developer Hub. | ||
# See: https://circleci.com/docs/2.0/configuration-reference/#docker-machine-macos-windows-executor | ||
docker: | ||
- image: circleci/golang:1.16.10 | ||
# Add steps to the job | ||
# See: https://circleci.com/docs/2.0/configuration-reference/#steps | ||
steps: | ||
- checkout | ||
- restore_cache: | ||
keys: | ||
- go-mod-v4-{{ checksum "go.sum" }} | ||
- run: | ||
name: Install Dependencies | ||
command: go mod download | ||
- save_cache: | ||
key: go-mod-v4-{{ checksum "go.sum" }} | ||
paths: | ||
- "/go/pkg/mod" | ||
#- run: | ||
# name: Run linter | ||
# command: | | ||
# go run build/ci.go lint | ||
- run: | ||
name: Run tests | ||
command: | | ||
go run build/ci.go test -coverage | ||
- store_test_results: | ||
path: /tmp/test-reports | ||
|
||
# Invoke jobs via workflows | ||
# See: https://circleci.com/docs/2.0/configuration-reference/#workflows | ||
workflows: | ||
sample: # This is the name of the workflow, feel free to change it to better match your workflow. | ||
# Inside the workflow, you define the jobs you want to run. | ||
jobs: | ||
- build |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
TODO: remove