Péter Garamvölgyi
7de261b1be
feat: store skipped transactions in local db ( #467 )
...
* feat: store skipped txs in local db
* bump version
* bump version
* fix test
* include L2 txs in skipped index
* goimports
* rename more
* bump version
* fix missed renames
* fix the bug when calculating l2TxCount. (#479 )
* fix bug when calculate l2 tx count
* Update version
* fix: exclude L1 message from block payload size validation (#476 )
* fix: exclude L1 message from block payload size validation
* fix the bug when calculating l2TxCount. (#479 )
* fix bug when calculate l2 tx count
* Update version
* bump version
---------
Co-authored-by: maskpp <maskpp266@gmail.com>
* fix: update row estimation with scroll-prover `v0.7.2` (#475 )
* Fix row estimation.
* Update libzkp.
* more
* prepare
* finish
* upgrade
* bump version
* fix tests
* Update to scroll-prover `v0.7.2`.
* fix tests
* Update miner/worker.go
Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
* Update miner/worker.go
Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
* Reset ccc when skips first tx.
* do not unnecessarily skip L1 message
* fix ccc reset and improve code readability
* seal block on circuitcapacitychecker.ErrUnknown
---------
Co-authored-by: HAOYUatHZ <haoyu@protonmail.com>
Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
* refactor: simplify ccc revert to snapshot (#480 )
* simplify ccc revert to snapshot
* Update version.go
---------
Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com>
* feat: use --gcmode=archive and --cache.noprefetch=true by default (#482 )
* feat: use --gcmode=archive and --cache.noprefetch=true by default
* refuse to start with invalid config
* lint
* lint
* feat(sdk): support compressed response (#469 )
* enable use compression algorithm
* fix ci
* Just enable decode compressed content at ethclient
* fix comments
---------
Co-authored-by: Haichen Shen <shenhaichen@gmail.com>
* fix: disable pruning and prefetch if not flags are provided (#483 )
Co-authored-by: colin <102356659+colinlyguo@users.noreply.github.com>
* fix: update libzkp to use scroll-prover `v0.7.5` (#484 )
* Update libzkp to use scroll-prover `v0.7.5`.
* Update version.
* address comments
* bump version
* nit
---------
Co-authored-by: maskpp <maskpp266@gmail.com>
Co-authored-by: Steven <asongala@163.com>
Co-authored-by: HAOYUatHZ <haoyu@protonmail.com>
Co-authored-by: iczc <iczcalan@gmail.com>
Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com>
Co-authored-by: Haichen Shen <shenhaichen@gmail.com>
Co-authored-by: colin <102356659+colinlyguo@users.noreply.github.com>
2023-08-25 15:41:05 +02:00
Péter Garamvölgyi
727f88bc5f
fix: exclude L1 message from block payload size validation ( #476 )
...
* fix: exclude L1 message from block payload size validation
* fix the bug when calculating l2TxCount. (#479 )
* fix bug when calculate l2 tx count
* Update version
* bump version
---------
Co-authored-by: maskpp <maskpp266@gmail.com>
2023-08-23 14:06:06 +02:00
Ho
be1600f078
refactor(trace): wrap the core routine in CreateTraceEnv ( #460 )
2023-08-20 18:39:20 +08:00
Haichen Shen
e8d9d60cf0
fix: use FeeVault address in the EVM BlockContext ( #473 )
...
* fix: use Feevault address in the EVM BlockContext
* bump version
* revert format change
* fix
2023-08-19 14:01:14 +02:00
Péter Garamvölgyi
3027111956
refactor: add more context to tracing failure ( #466 )
2023-08-17 07:25:03 +02:00
maskpp
6195e2e77d
fix(trace): fix contract call's ByteCode ( #465 )
...
* fix bug
* update version
2023-08-14 18:09:39 +08:00
Péter Garamvölgyi
25fe3ba69a
feat: add startL1QueueIndex field to traces ( #463 )
...
* feat: include startL1QueueIndex in traces
* fix
* update example
2023-08-12 11:07:36 +08:00
Péter Garamvölgyi
eda99eec35
fix: skip L1 message that leads to gas limit exceeded ( #455 )
...
* skip L1 message that leads to gas limit exceeded
* add test
* do not skip l1 messages from the same account
2023-08-08 01:59:11 +02:00
HAOYUatHZ
b428fa1339
fix(trace): fix commit state when tracing ( #451 )
...
* fix(trace): fix commit state when tracing
* bump version
2023-08-07 14:15:21 +08:00
Péter Garamvölgyi
805676e227
feat: Update Sepolia genesis ( #449 )
...
update Sepolia genesis
2023-08-06 19:25:10 +02:00
Péter Garamvölgyi
69dd39afba
fix: do not overwrite correct L1 index on signer startup ( #443 )
...
* fix signer worker
* add logs
* bump version
* Fix
2023-08-06 14:22:02 +02:00
vyzo
94190f0163
feat: sepolia flag and config ( #377 )
...
* add sepolia flag and configuration
* bump patch version
* Update params/version.go
Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
* Update params/config.go
Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
* Update params/config.go
Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
* explicitly set l1.confirmations and l1.sync.startblock for sepolia
* update config
---------
Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
2023-08-04 19:45:39 +02:00
Ho
6b20ce624f
fix: correctly initialize ZkTrieTracer for ccc ( #440 )
...
* fix issue for zktrieTracer not inited
* bump version
---------
Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
2023-08-04 07:54:55 +02:00
Péter Garamvölgyi
26eeb40ea3
fix: use correct hash for ccc write in worker ( #438 )
2023-08-04 04:22:47 +02:00
Péter Garamvölgyi
5611b8296a
refactor: add more ccc logs ( #436 )
...
* refactor: add more ccc logs
* format hashes
* more logs
* more logs
2023-08-03 18:16:32 +02:00
HAOYUatHZ
ef67ff8bbb
fix(miner): fix acc_rows for empty block ( #431 )
...
* Revert "fix(worker): set row consumption for genesis and empty blocks (#428 )"
This reverts commit b51736fd3c .
* fix: fix accRows for empty block
* bump version
* remove log
* fix
* set default accRows as nil explicitly
* fix genesis block
* fix
2023-08-03 13:09:59 +02:00
HAOYUatHZ
60e260b2f1
fix: fix block validator createTraceEnv ( #429 )
2023-08-03 15:56:11 +08:00
Péter Garamvölgyi
b51736fd3c
fix(worker): set row consumption for genesis and empty blocks ( #428 )
...
* fix: initialize row consumption for genesis and empty blocks
* bump version
2023-08-03 09:48:03 +02:00
Péter Garamvölgyi
96d12015e1
fix: decode subcircuit row usage as integer ( #421 )
...
* fix subcircuit row usage type
* bump version
2023-08-02 06:03:18 +02:00
Ho
11b35cd014
feat: upgrade zktrie to v0.6.0 ( #403 )
...
* add domain-spec poseidon hash
* add warning message for deprecated method
* update goimports
* update zktrie to v0.6
* fixes for upgrade
* resume deletion proof
* update alpha genesis since new hash sch eme
* dump zktrie to 0.6
* induce genesis block for scroll sepolia network
* Update version.go
---------
Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com>
Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
2023-08-02 10:54:41 +08:00
HAOYUatHZ
2f9edf73ca
feat(rollup): add circuits capacity checker ( #321 )
...
* add proof for predeployed storages
* reverse inneeded code
* update for mainbranch merging
* add pertx storage trace
* dummy tx proof
* add txstorage trace
* add coinbase storage as trace
* enable (sync) tracing by default
* basic
* init cgo framework
* fix break loop
* integrate the right zkevm version (#323 )
* finish rust codes
* use dylib (#325 )
* flip
* ?
* use cdylib
* revert
* fix
* apply_tx
* rename
* fixing types
fixing types
fixing types
* clean up
* ExecutionResults (#328 )
* filling
* filling
* more
* clean up
* filling
* coinbase
* add
* MPTWitness
* ExecutionResults WIP
* L1fee
L1fee
* sender
* to
* Failed & ReturnValue
* createdAcc & after
* remove MPTWitness
* txStorageTrace
* add FeeRecipient
* add StorageTrace
* fix FFI types
* better logger
* cargo fmt
* fix
* add build tags
* update Makefile
* fix library
* improve ld path
* correctly deal with circuit_capacity_checker returned result
* fix return value
* update cargo (#333 )
* update cargo
* update
* update go
* refactor
* raname `circuits capacity checker` to `circuit capacity checker`
* some refactorings
* [Fix] storage proof generation in capacity checker (#348 )
* make per-tx storage and deletion proof work
* format
* fix misplaced markdeletion
---------
Co-authored-by: HAOYUatHZ <haoyu@protonmail.com>
* docker (#363 )
* update Dockerfile
* build: update go version to 1.19
* update
* fix
* fix
* try
* simplify
* revert go version
update l2geth Dockerfiles
* fix
* fix coinbase
* fix (#369 )
* format
* Update version.go
* address comments
* Capacity refactor (#374 )
* init
* id
* support multiple instances
* fix id
* fix conflicts
* refactor to use same codes (#379 )
* re-init
* WIP
* WIP
* refactor
* go
* minor
* fix storage proof of l1gas price oracle
* move 1
* move 2
* move 3
* move 4
* move 5
move 5
* move 6
move 6
* move 7
* move 8
* move 9
* move 10
* clean up
clean up
---------
Co-authored-by: Ho Vei <noelwei@gmail.com>
* finish basic
* minor
* config capacity check in block_validator (#380 )
* init
* done
ref
* fix tests
fix tests
fix tests
fix tests
* add more comments
* apply_block
* improve logs
* cargo fmt
* Capacity big refactor (#383 )
* CreateTraceEnv
* WIP
* draft
more
fix
* for test
* fortet
* clean up
* add more comments
* goimports -local github.com/scroll-tech/go-ethereum -w .
* fix typos
* attempt 1
* attempt 2
* attempt 3
* gogogo
* clean up
* fix
* fix
* rename
* minor
* fix
* minor
* minor
* improve doc
* use dedicated `checkCircuitCapacity` flag (#394 )
* refactor
* fix
* add lock
* [feat] capacity checking: upgrade libzkp (#395 )
* upgrade
* upgrade libzkp
* write RowConsumption (#396 )
* write RowConsumption
* name alignments
* revert some formatting
* add lock to CircuitCapacityChecker in BlockValidator
* remove mutex pointer
* improve github workflow
* improve
* store row consumption in mining (#397 )
* prepare
* finish
* add more logs
* mark `ApplyBlock` as ready
* update libzkp (#401 )
* fix
* Capacity detail (#402 )
* fix(block-validation): consider skipping in ValidateL1Messages (#405 )
* fix(block-validation): consider skipping in ValidateL1Messages
* fix(block): consider skipping in L1MessageCount
* fix l1 validation tests
* fix NumL1Messages
* fix impl.go return types
fix
* better error handling (#407 )
* add
add
* add
* add
* add
* add
* cargo fmt
* add
* update
* add
* WIP
* minor
* gogogo
* gogogo
* fix
* fix
* fix
* cargo clippy
* improve
* improve
* creation lock (#408 )
* creation lock
* update
* Debug log (#409 )
* add more logs
* more
* more
* fix
* improve
* Update cmd/utils/flags.go
Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
* refactor worker.commit()
* avoid re-calculate
* txpool ccc err handling (#411 )
* more explicit error comments
* add more logs
* fix unnecessary commit
* add more logs
* fix `ineffassign`
* add more comments
* log id for `NewCircuitCapacityChecker` (#414 )
add log to `NewCircuitCapacityChecker`
* Persist skip info for block where all L1 msgs are skipped (#415 )
persist skip info for block where all L1 msgs are skipped
* Update version.go
---------
Co-authored-by: Ho Vei <noelwei@gmail.com>
Co-authored-by: Zhang Zhuo <mycinbrin@gmail.com>
Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
2023-08-01 13:52:31 +08:00
Nazarii Denha
a677ee3ccf
fix(ethapi): change scroll_getBlockByHash ethapi behaviour ( #398 )
...
* fix api behaviour
* update version
* not retrun error in ethclient
* add comment
* modify rowconsumption struct
* fix lint
* change naming
2023-07-20 00:10:34 +08:00
Nazarii Denha
3943547960
feat(rawdb&rpc): add block row consumption rpc ( #388 )
...
* add db api for rowconsumption
* add rpc api for block row consumption
* return nil if rc is is not known
* add method to sdk
* bump version
* small fix
* update version
---------
Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
2023-07-11 22:07:09 +08:00
Nazarii Denha
5eac3a73bc
feat(core/vm): modexp precompiled support also less than 32-bytes inputs ( #393 )
...
* modexp support 32-bytes or less inputs
* change revert string
* bump version
---------
Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
2023-07-10 22:04:14 +08:00
HAOYUatHZ
8c5bf3069f
fix(trace): fix statesAffected in traceLastNAddressAccount ( #367 )
...
* fix(trace): fix
* Update version.go
2023-07-07 10:27:55 +08:00
HAOYUatHZ
3cf5ba882d
feat(trace): add per_tx_storage_trace ( #372 )
...
* add proof for predeployed storages
* reverse inneeded code
* update for mainbranch merging
* add pertx storage trace
* dummy tx proof
* add txstorage trace
* add coinbase storage as trace
* Update version.go
* address comments
---------
Co-authored-by: Ho Vei <noelwei@gmail.com>
2023-07-04 22:21:12 +08:00
Péter Garamvölgyi
38a6a1e964
fix: include L1MessageTx fields in transaction RPC result ( #375 )
...
* fix: include L1MessageTx fields in tx RPC result
* bump version
2023-06-30 15:52:57 +02:00
Péter Garamvölgyi
8c141eb90f
feat(evm): limit ecPairing precompile to use up to 4 inputs ( #373 )
...
* feat(evm): limit ecPairing precompile to use up to 4 inputs
* update test cases
* reorder test functions
2023-06-29 09:22:48 +02:00
Nazarii Denha
e09346ee20
feat(core/vm): revert modexp precompiled contract if input is not u256 ( #361 )
...
* Revert modexp precompiled contract if input is not u256
* bump version
* use specific error
* bump version
* tests
* bump version
* fix lint
* Update version.go
---------
Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
2023-06-28 10:32:26 -07:00
Richord
b5e8d12c06
feat: return keccak(chainId || height) for BLOCKHASH opcode ( #359 )
...
* changed blockhash behavior
* added patch version
* Update core/vm/runtime/runtime_test.go
Co-authored-by: Péter Garamvölgyi <th307q@gmail.com>
* Update core/vm/runtime/runtime_test.go
Co-authored-by: Péter Garamvölgyi <th307q@gmail.com>
* lint fix
* changed wording
* used interpreter.hasher and padded chainId to uint64
* used interpreter.hasher and padded chainId to uint64
* undo changes
* bump version
---------
Co-authored-by: Péter Garamvölgyi <th307q@gmail.com>
Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
2023-06-14 13:11:31 -07:00
HAOYUatHZ
f055f50f9d
feat: update l1fee calculation ( #351 )
2023-06-13 10:57:59 +08:00
Péter Garamvölgyi
4e0daeb300
fix(trace): change l1Fee type from uint64 to *big.Int ( #360 )
...
* fix: change l1Fee type from uint64 to *big.Int
* use hexutil.Big
2023-06-09 22:28:40 +08:00
Péter Garamvölgyi
983d630244
feat: Sync and relay L1 messages ( #350 )
...
* add l1 config in genesis config (#249 )
* add l1 config in genesis config
* fix lint
* Update params/config.go
Co-authored-by: Péter Garamvölgyi <th307q@gmail.com>
---------
Co-authored-by: Péter Garamvölgyi <th307q@gmail.com>
* extend node configuration (#251 )
* extend node configuration
* use block number instead of hash
* accept safe, finalized and numbers for L1Confirmations
* fix typos
---------
Co-authored-by: Péter Garamvölgyi <th307q@gmail.com>
Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
* Fix/improve node config parsing (#260 )
* raise error on failed parsing
* default value
* add l1-message-type, transaction methods (#252 )
* add l1-message-type, transaction methods
* goimports
* Update core/types/transaction.go
Co-authored-by: Péter Garamvölgyi <th307q@gmail.com>
* txpool l1 check, pointer change, marhsal test
* draft: start implementing l1message gas behavior
* draft: start implementing l1message gas behavior
* change to gas usage
* error comment typo
Co-authored-by: Haichen Shen <shenhaichen@gmail.com>
* goimports
* update nonce, add hash test (fails), marshal test
* goimports
* target addr cant be nil
* change call msg
* comment out test
* lint
---------
Co-authored-by: Péter Garamvölgyi <th307q@gmail.com>
Co-authored-by: Haichen Shen <shenhaichen@gmail.com>
* Add L1 message database (#255 )
* add l1-message-type, transaction methods
* goimports
* Update core/types/transaction.go
Co-authored-by: Péter Garamvölgyi <th307q@gmail.com>
* add L1 message store to rawdb
* remove comments
* rename to l1_message
* rename variables and add comments
* write l1 msgs in a batch
* add more comments
* update tests
* allow batched and non-batched writes
* rename to accessors_l1_message
* handle error
* add range check
* fix tests
* update comments
* nit
* support blocks with 0 l1 messages
---------
Co-authored-by: Max Wolff <maxcwolff@gmail.com>
Co-authored-by: Max Wolff <max@scroll.io>
* Fix L1Message Deep Copy, Complete Bridge Tx Hash test (#269 )
* deep copy value field, add tx hash test
comment
* typo
* Rename nonce to queueindex, increment sender nonce on L1 message execution (#271 )
* change nonce to queueindex, increment nonce on L1 message
* fix db acccessors
* Update core/types/transaction_marshalling.go
Co-authored-by: Péter Garamvölgyi <th307q@gmail.com>
---------
Co-authored-by: Péter Garamvölgyi <th307q@gmail.com>
* Fix db inspect command (#276 )
fix db inspect command
* Add l1 sync service (#256 )
* extend node configuration
* add l1-message-type, transaction methods
* goimports
* Update core/types/transaction.go
Co-authored-by: Péter Garamvölgyi <th307q@gmail.com>
* use block number instead of hash
* accept safe, finalized and numbers for L1Confirmations
* add L1 message store to rawdb
* remove comments
* fix typos
* add L1 message sync service
* use l1 contract address and chain ID
* use L1DeploymentBlock
* add confirmation config
* move bridge client to separate file
* use uint64 block number
* fix bigint comparison
* rename constants
* add more logs
* rename to l1_message
* rename variables and add comments
* write l1 msgs in a batch
* add more comments
* update tests
* allow batched and non-batched writes
* rename to accessors_l1_message
* handle error
* check if config is provided
* improve sync service DB batched writes
* add range check
* fix tests
* update comments
* nit
* fix flush range and improve comments
* solve circular dependency
* update stress tests
* initialize l1 client for geth
* start sync service
* add more comments
* check nil correctly
* address comments
* fix merge
* fix genesis l1config deserialization
* add sync progress logs
* initial sync
* handle leveldb not found error
* use errors.Is
* address comments
* update DefaultPollInterval
---------
Co-authored-by: Nazarii Denha <dengaaa2002@gmail.com>
Co-authored-by: Max Wolff <maxcwolff@gmail.com>
Co-authored-by: Max Wolff <max@scroll.io>
* Add L1 message validation (#272 )
* add L1 message validation
* add comments and better error handling
* handle leveldb not found error
* update incorrect condition for genesis block
* typo
* change inclusion index logic
* disable L1 message check for legacy tests
* set NumL1MessagesPerBlock to 0 in tests
* update default genesis config
* Add L1 msg validation tests (#303 )
add L1 msg validation tests
* Update miner include l1 messages (#265 )
* add l1-message-type, transaction methods
* goimports
* Update core/types/transaction.go
Co-authored-by: Péter Garamvölgyi <th307q@gmail.com>
* add L1 message store to rawdb
* add L1 message sync service
* remove comments
* use l1 contract address and chain ID
* extend node configuration
* use block number instead of hash
* accept safe, finalized and numbers for L1Confirmations
* fix typos
* use L1DeploymentBlock
* add confirmation config
* move bridge client to separate file
* use uint64 block number
* fix bigint comparison
* rename constants
* add more logs
* Fix/improve node config parsing (#260 )
* raise error on failed parsing
* default value
* rename to l1_message
* rename variables and add comments
* write l1 msgs in a batch
* add more comments
* update tests
* allow batched and non-batched writes
* rename to accessors_l1_message
* handle error
* check if config is provided
* improve sync service DB batched writes
* include l1 messages in blocks: part 1
* add l1-message-type, transaction methods (#252 )
* add l1-message-type, transaction methods
* goimports
* Update core/types/transaction.go
Co-authored-by: Péter Garamvölgyi <th307q@gmail.com>
* txpool l1 check, pointer change, marhsal test
* draft: start implementing l1message gas behavior
* draft: start implementing l1message gas behavior
* change to gas usage
* error comment typo
Co-authored-by: Haichen Shen <shenhaichen@gmail.com>
* goimports
* update nonce, add hash test (fails), marshal test
* goimports
* target addr cant be nil
* change call msg
* comment out test
* lint
---------
Co-authored-by: Péter Garamvölgyi <th307q@gmail.com>
Co-authored-by: Haichen Shen <shenhaichen@gmail.com>
* Add L1 message database (#255 )
* add l1-message-type, transaction methods
* goimports
* Update core/types/transaction.go
Co-authored-by: Péter Garamvölgyi <th307q@gmail.com>
* add L1 message store to rawdb
* remove comments
* rename to l1_message
* rename variables and add comments
* write l1 msgs in a batch
* add more comments
* update tests
* allow batched and non-batched writes
* rename to accessors_l1_message
* handle error
* add range check
* fix tests
* update comments
* nit
* support blocks with 0 l1 messages
---------
Co-authored-by: Max Wolff <maxcwolff@gmail.com>
Co-authored-by: Max Wolff <max@scroll.io>
* build(docker): auto docker push when pushing git tags (#258 )
* build(docker): update docker trigger tag prefix (#259 )
* Fix L1Message Deep Copy, Complete Bridge Tx Hash test (#269 )
* deep copy value field, add tx hash test
comment
* typo
* commitl1messages
* lint
* Revert "add L1 message sync service"
This reverts commit 5305e8a5de14766ed249e1a7d64042c7a72cf5c2.
* Revert "move bridge client to separate file"
This reverts commit 0b220bee37de93c3250545e23430db2c401a2f90.
* update branch
* use commitMessages for l1Txs
* little fix
* fix config
* fix test
* comment fixes
* fix
* fix config check
---------
Co-authored-by: Max Wolff <maxcwolff@gmail.com>
Co-authored-by: Max Wolff <max@scroll.io>
Co-authored-by: Péter Garamvölgyi <th307q@gmail.com>
Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
Co-authored-by: Haichen Shen <shenhaichen@gmail.com>
Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com>
* Add ErrUnknownAncestor tests (#305 )
add ErrUnknownAncestor tests
* worker test include l1 msgs (#306 )
* worker test include l1 msgs
* move L1 message index update next to block insertion
---------
Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
* exclude l1 messages from transaction count limit in block (#307 )
* exclude l1 messages from transaction count limit in block
* fix comments
* trigger ci
* nit
---------
Co-authored-by: Péter Garamvölgyi <th307q@gmail.com>
Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
* Expose queueIndex on Transaction (#316 )
expose queueIndex on Transaction
* test that l1msg doesn't count in maxTxPerBlock limit (#312 )
* test that l1msg doesn't count in maxTxPerBlock limit
* fix, comment
* retrigger ci
* change order inside test
---------
Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com>
Co-authored-by: Péter Garamvölgyi <th307q@gmail.com>
* reuse trace nonce field for queueIndex
* expose scroll APIs on the geth console
* add L1 message query APIs
* Trigger new block on new l1 messages (#343 )
* trigger new block on new l1 messages
* typo
* initialize l1MsgCh
* fix worker l1msg tests (#345 )
---------
Co-authored-by: Nazarii Denha <dengaaa2002@gmail.com>
* test(worker): ensure that l1 messages are included in the correct order (#346 )
test that l1msgs added in correct order
* rename enqueueIndex --> queueIndex
* move QueueIndex into transaction
* improve l1 db interface
* formatting
* bump version
* print l1config
* add API to query latest included message queue index
* clean up tx limit logic
* add clarifying comments and todos to ValidateL1Messages
* improve db comments and logs
* clean up L1MessageTx type handling
* format
* format
* improve L1 message block check
* fix missing L1 event handling
* fix TestL1MessageValidationFailure
* simplify sync height resume logic
* make l1Config.l1MessageQueueAddress non-pointer
* improve command line flags
* remove todo
* use abigen tools for log filtering
* cache block L1 message count
* nit: fix variable name case
* improve logs
* flush pending writes to DB before shutdown
---------
Co-authored-by: Nazarii Denha <dengaaa2002@gmail.com>
Co-authored-by: Max Wolff <max@scroll.io>
Co-authored-by: Haichen Shen <shenhaichen@gmail.com>
Co-authored-by: Max Wolff <maxcwolff@gmail.com>
Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com>
Co-authored-by: HAOYUatHZ <haoyu@protonmail.com>
2023-06-07 07:24:19 -07:00
Richord
1f167bd730
fix(ethclient): support WithdrawalsHash in Scroll Go SDK ( #354 )
...
* added withdrawalsHash to header
* bump version
---------
Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
2023-06-05 09:52:46 -07:00
Richord
ad43d0ea3f
feat(block_validator): check payload size during block validation ( #322 )
...
* added block size check in validate body
* added payload method to block
* Update core/types/block.go
Co-authored-by: Péter Garamvölgyi <th307q@gmail.com>
* fixed test
* fix
* bump version
* fix test
---------
Co-authored-by: Péter Garamvölgyi <th307q@gmail.com>
Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
2023-05-24 15:23:57 +02:00
Péter Garamvölgyi
334892ae07
Return error for disabled precompile calls ( #337 )
...
return error for disabled precompile calls
2023-05-24 11:41:33 +02:00
Nazarii Denha
1094569b5b
feat: enable eip and update check ( #335 )
...
* enable eip and update check
* Update version.go
---------
Co-authored-by: Péter Garamvölgyi <th307q@gmail.com>
Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com>
2023-05-19 21:41:58 +08:00
Nazarii Denha
c5da652c29
core/vm: implement EIP-3860: Limit and meter initcode ( #23847 ) ( #318 )
...
* core/vm: implement EIP-3860: Limit and meter initcode (#23847 )
Implementation of https://eips.ethereum.org/EIPS/eip-3860 , limit and meter initcode. This PR enables EIP-3860 as part of the Shanghai fork.
Co-authored-by: lightclient@protonmail.com <lightclient@protonmail.com>
Co-authored-by: Martin Holst Swende <martin@swende.se>
Co-authored-by: Marius van der Wijden <m.vanderwijden@live.de>
* add ishanghai
* fix test
* fix
---------
Co-authored-by: Andrei Maiboroda <andrei@ethereum.org>
Co-authored-by: lightclient@protonmail.com <lightclient@protonmail.com>
Co-authored-by: Martin Holst Swende <martin@swende.se>
Co-authored-by: Marius van der Wijden <m.vanderwijden@live.de>
Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
2023-05-18 12:11:53 +02:00
Nazarii Denha
29b23f4f5b
core: implement EIP-3651, warm coinbase ( #317 )
...
* core: implement EIP-3651, warm coinbase (#25819 )
Implements EIP-3651, "Warm Coinbase", for Shanghai hardfork. Specification: https://eips.ethereum.org/EIPS/eip-3651 .
* improve test
* update to shanghai
* trigger ci
* fix comments
---------
Co-authored-by: Marius van der Wijden <m.vanderwijden@live.de>
2023-05-12 08:46:37 +02:00
Max Wolff
b0b0bf1133
Archimedes hard fork: Disable sha2, ripemd, blake2f precompiles ( #280 )
...
* add placeholder block
* add test, more changes
* revert aleth changes
* typo
* typo
* precompile switch
* change precomiles
* rename placeholder to archimedes
* fix comment
* ScrollAlphaChainConfig
* add nil for archimedes block for now
* fix test typo
2023-05-09 09:04:46 -07:00
Ho
c913b3e2f1
fix(zktrie): fix deletion proofs and collect them in commiting phase ( #263 )
...
* new deletion proof
* complete tracer and test
* extend proof for parallel tracing
* integrating into blocktrace
* lint
* deduplication of deletion proofs
* fix an issue on marking deletion
* fixs since last review
* Update version.go
---------
Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com>
Co-authored-by: Ubuntu <ubuntu@ip-10-2-9-63.us-west-2.compute.internal>
2023-05-08 15:40:54 +08:00
HAOYUatHZ
32aacc3fd6
style: revert some formatting ( #294 )
...
Revert "style: remove blank line & white space formatting"
This reverts commit 349def8d5d78f83c19e899d5d80b1d9f6a5d18c6.
2023-04-20 17:49:35 +08:00
Nazarii Denha
09c69b6076
implement PUSH0 ( #273 )
...
Co-authored-by: Péter Garamvölgyi <th307q@gmail.com>
2023-04-20 11:39:19 +02:00
HAOYUatHZ
11ff7a0648
refactor: rename L1FeeEnabled to FeeVaultEnabled ( #281 )
...
rename `L1FeeEnabled` to `FeeVaultEnabled`
2023-04-19 22:41:38 +08:00
georgehao
f71fc6794a
fix(api): fix debug_ API oom bug ( #284 )
...
* feat: fix oom bug
* feat: format import
* feat: remove unused code
* Update version.go
---------
Co-authored-by: colin <102356659+colinlyguo@users.noreply.github.com>
Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com>
2023-04-19 21:26:29 +08:00
Max Wolff
028acecb02
fix return type in tx receipt for l1fee type ( #254 )
...
* edit marshalling override
* goimports
* not required
* encode l1fee
---------
Co-authored-by: Péter Garamvölgyi <th307q@gmail.com>
2023-04-19 05:12:57 +02:00
Péter Garamvölgyi
49e755e334
Add Scroll bootnode config ( #261 )
...
* add Scroll bootnode config
* expose scroll networks on node CLI
* add alpha genesis config
* fix scroll genesis config
* update default sync mode
* address todos
* remove scroll staging network
* bump version
* update genesis config
* bump version
2023-04-19 04:40:52 +02:00
HAOYUatHZ
df1d37e097
refactor(config): consolidate scroll flags ( #262 )
2023-04-17 18:56:26 +08:00
Max Wolff
a74b35e86f
feat(api): add L1 fee to eth_getTransactionReceipt ( #244 )
...
* Update api.go
* fmt
* revert changes
* add l1fee to receipt in transaction processor
* decoder
* fmt
* fmt
* add encoding, test
* fmt
* removed duplicate l1 fee calc, added gen receipt
* remove dup l1feecalc
* lint
* add omitempty
* bump version
---------
Co-authored-by: Péter Garamvölgyi <th307q@gmail.com>
Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com>
Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
2023-03-28 09:08:57 +08:00
Péter Garamvölgyi
4da184ea60
feat(vm): disable EIP-3198 ( #250 )
...
* disable EIP 3198
* bump version
* trigger ci
2023-03-27 17:49:32 +08:00
Ho
8665d3e011
feat(trace): add deletion proof into storage trace ( #245 )
...
* update zktrie, inducde proof with deletion
* Add deletion proof for stateDb
* fill deletionproofs
* lint
* proving more comment for parts prone to be confused
* simplify array appending
Co-authored-by: maskpp <maskpp266@gmail.com>
* bump zktrie version and fix issues
* add delproof into witgen
---------
Co-authored-by: maskpp <maskpp266@gmail.com>
2023-03-20 13:44:09 +08:00
maskpp
03b4de32b7
feat(trace): Add chainID and version fields in trace. ( #227 )
...
* Add ChainID and version.
* fix comments.
* Update params/version.go
Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com>
* fix comments.
* Update version.go
---------
Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com>
2023-03-06 21:19:30 +08:00
maskpp
d1f9523b08
feat(build): Upgrade go version to 1.18 ( #241 )
...
* update go version
* update go version
* format code by goimports
* format code by goimports
* go mod tidy
* update go version
* update go version
* upgrade linter
* add exclude rule
* fix golangci exclude
---------
Co-authored-by: vincent <419436363@qq.com>
Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com>
2023-03-06 13:32:39 +08:00
HAOYUatHZ
4588569b63
feat: VerifyFee for sendTx and txpool.add ( #236 )
...
* init
* rework
* handle `LesApiBackend`
* fix tests
* add L1fee even for 0 gasPrice
* update comments
2023-03-02 16:38:43 +08:00
maskpp
15f94b93ea
fix(trace): Fix l1Fee ( #234 )
...
Fix l1Fee
2023-02-24 14:04:25 +08:00
Haichen Shen
3c5f532ef3
fix: Add l1fee to the balanceCheck ( #229 )
...
Add l1fee to the balanceCheck
Co-authored-by: HAOYUatHZ <haoyu@protonmail.com>
2023-02-24 08:31:37 +08:00
Nazarii Denha
310c870c6a
set BaseFee to nil ( #222 )
...
* set BaseFee to nil
* fix lint
* comment fix
* update genesis.go
2023-02-20 22:04:55 -08:00
HAOYUatHZ
ec9254b0b1
feat: compute rollup gas price for StateTransition ( #209 )
...
* init
* more
* more
* add L1BlockContainerAddress
* finish
* add more comments
* rename `UsingSVM` to `UsingScroll`
* update logic
* refactor(rollup): add UsingScroll into ChainConfig
* update
* update comments
* fee=l2fee+l1fee (#221 )
add l1fee into calc
* improve
* format note content.
* feat(l1Fee): Add l1Fee in trace. (#223 )
* Add l1fee in trace.
* Delete comment.
---------
Co-authored-by: maskpp <maskpp266@gmail.com>
2023-02-20 16:28:43 +08:00
HAOYUatHZ
8a78c736a5
feat(trace): add withdraw trie root ( #217 )
...
* init rollup/rcfg/config.go
minor
* update traces struct
* init withdraw_trie.go
* finish
* fix `L2MessageQueueAddress`
* refactor(rollup): add `UsingScroll` into `ChainConfig` (#218 )
* update comments
* update comments
2023-02-16 10:18:47 +08:00
Péter Garamvölgyi
30f4f57f07
feat: add block transaction count limit ( #216 )
...
* feat: add block transaction count limit
* add tests
* nit
2023-02-15 15:13:03 +08:00
HAOYUatHZ
0854d4bbb1
core, trie, eth, cmd: rework preimage store ( #205 )
...
* core, trie, eth, cmd: rework preimage store
* fix ci
* fix ci
* Update zk_trie_database.go
---------
Co-authored-by: rjl493456442 <garyrong0905@gmail.com>
Co-authored-by: maskpp <maskpp266@gmail.com>
2023-02-10 15:26:57 +08:00
Nazarii Denha
7c3657b61b
feat: make BLOCKHASH return only last blockhash ( #196 )
...
* make BLOCKHASH return only last blockhash
* fix
* small fix
2023-02-10 13:06:42 +08:00
Péter Garamvölgyi
81e7775aa8
feat: dual code hash ( #188 )
...
* add KeccakCodeHash and CodeSize to StateAccount
* update StateAccount marshalling logic
* change emptyCodeHash to poseidon(nil)
* purge StateAccount.hash
* fix/disable failing tests
* change keccak and poseidon hash order in StateAccount
* fix lint
* update l2trace account wrapper
* update eth_getProof response type
* fix eth_getProof response type
* goimports
* update the codehash computation
* update the codehash test cases
* go mod tidy
* fix tests
* use keccak instead of poseidon
* update trace codehash field name
* upgrade zktrie to 4.2
* trigger ci
* update state account marshalling according to spec
* improve generatorStats estimation
* add comment
* upgrade zktrie to 4.3
* go mod tidy
* misc fixes
* fix TestDump
* fix snap sync tests
* handle err in the codehash
* fix tests in snapshot/generate_test.go
* remove prevhash from state journal
* add state_account_marshalling_test.go
* goimports
* add more tests
---------
Co-authored-by: Ho Vei <noelwei@gmail.com>
Co-authored-by: Haichen Shen <shenhaichen@gmail.com>
2023-02-08 16:12:41 -08:00
Zhang Zhuo
1fe2d22e29
feat: make eip2718 & eip1559 configurable in txpool ( #206 )
...
* txpool only supports legacy tx
* configurable tx pool EIP-2718 && EIP-1559
* try fix CI
* fix CI
* fix metamask incompatibility
* fix comments
* fix CI
* set basefee as 0 when disable eip2718 or eip1559
* fix typo
---------
Co-authored-by: colinlyguo <colinlyguo@gmail.com>
2023-02-03 14:24:15 +08:00
Péter Garamvölgyi
2891916a0f
feat: Add Scroll fee vault address as fee recipient ( #187 )
...
* feat: add Scroll fee vault address as fee recipient
* log fee vault address if configured
* lint
* disable fee vault in test presets
* add simple test
2023-01-12 10:11:33 +01:00
maskpp
804e7edc23
refactor: rename NewTraceTransaction to NewTransactionData ( #190 )
...
rename NewTraceTransaction to NewTransactionData
2022-12-02 14:12:07 +08:00
maskpp
016b30eb7d
refactor(trace): move TransactionData into l2trace.go ( #189 )
...
combine trace_block.go
2022-12-02 10:46:26 +08:00
maskpp
4ea77a7577
feat(tx): revert tx trace struct ( #186 )
...
revert tx trace struct
2022-11-25 10:56:12 +08:00
maskpp
0bdd2e0575
fix(tx): fix bug in *TransactionData UnmarshalJSON ( #184 )
...
* Fix bug for TransactionData json unmarshal
* clean up
Co-authored-by: HAOYUatHZ <haoyu@protonmail.com>
2022-11-21 12:37:53 +08:00
maskpp
22963a115d
feat(trace): Add header and upgrade TransactionTrace ( #181 )
...
* Add header and upgrade TransactionTrace
* Add header
* change blockResult struct
* rm chainID from TransactionData
* Rename blockResult to blockTrace in everywhere
* fix comments
2022-11-18 17:11:04 +08:00
Péter Garamvölgyi
61e2bdd05f
feat: return 0 for op DIFFICULTY ( #167 )
2022-10-27 17:31:45 +08:00
Ho
e6500918a0
refactor: adapt to standalone zktrie module ( #165 )
...
* adapt zktrie: zktrie part
* adapt unittests
* pass tests
* refactor for new zktrie module
* run go imports
2022-10-17 14:32:42 +08:00
Ho
4ee7885525
Fix witness generator for failed call/create op and tx ( #146 )
...
* update test examples
* update tests
* solidify account deleting
* update zkwriter for reverting
* solid handling for call, and update test examples
* fix status capture for CREATE issue, update test examples
* add fail case for deploy
* update test example (call non-exist address)
* move test and stuffs to internal path, make required exports
* fix issue in selfdestruct
* update destruct test
* lint
* rename traces
2022-10-10 17:13:24 +08:00
maskpp
3a7da33cd5
fix: fix not using point for sync.Pool recycling ( #158 )
...
fix bug
2022-09-20 15:05:44 +08:00
maskpp
15391eeaf7
feat: add replay blockResult API ( #139 )
...
* replay trace
* replay trace
* add sdk
* fix trace test case
* fix bug
* Update eth/tracers/api_blockResult.go
Co-authored-by: Haichen Shen <shenhaichen@gmail.com>
* Update eth/tracers/api_blockResult.go
Co-authored-by: Haichen Shen <shenhaichen@gmail.com>
* Update eth/tracers/api_blockResult.go
Co-authored-by: Haichen Shen <shenhaichen@gmail.com>
* Update eth/tracers/api_blockResult.go
Co-authored-by: Haichen Shen <shenhaichen@gmail.com>
* add comments
* fail the rpc call if get error
* adjust channel length
* fix bug
* fix bug
* remove redundant codes in worker
* add test case
* fix bug
* fix goimports
* Update eth/tracers/api_blockResult.go
Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com>
* fix comments
* Update ethclient/ethclient.go
Co-authored-by: Haichen Shen <shenhaichen@gmail.com>
* Update ethclient/ethclient.go
Co-authored-by: Haichen Shen <shenhaichen@gmail.com>
* rm coinbase api in miner
* fix comment
* Update eth/tracers/api.go
Co-authored-by: Haichen Shen <shenhaichen@gmail.com>
* fix comment
Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com>
Co-authored-by: Haichen Shen <shenhaichen@gmail.com>
2022-09-20 14:30:57 +08:00
Ho
edbb595e66
Trace the account accessed by EXTCODE op ( #157 )
...
add account touch by 'EXTCODE' for storeTrace
2022-09-17 22:44:29 -07:00
maskpp
9182a74334
fix logs error tracing ( #154 )
...
* fix err handle
* fix err handle
* fix err handle
2022-09-13 11:15:31 +08:00
Péter Garamvölgyi
304af60f50
feat: change bytecode hash function from Keccak to Poseidon ( #149 )
...
* feat: change bytecode hash function from Keccak to Poseidon
* fix TestStateProcessorErrors
* rename files
* copy iden3's poseidon package to local
* update poseidon hash
* apply new hash in codehash
* extend hash method, use actual code size as cap
* prune keccak(nil) for empty code
* update empty code hash references to Poseidon
* add TestPoseidonCodeHash
* use keccak for empty code hash
* go mod tidy
* goimports
* use Poseidon code hash in state and sync tests
* run goimports
* run goimports
* remove unnecessary reallocation from CodeHash
* goimports
* move codehash API to separate module
* add missing package
* fix review comments
* improve comments
Co-authored-by: Ho Vei <noelwei@gmail.com>
2022-09-08 06:16:17 +08:00
Péter Garamvölgyi
00ed553a57
feat: disable SELFDESTRUCT opcode in l2geth ( #147 )
...
* feat: disable SELFDESTRUCT opcode in l2geth
* remove deadcode
2022-08-22 14:17:57 -07:00
maskpp
01a0618b02
fix: reset trace Error field when finalizing ( #143 )
2022-08-18 10:22:36 +08:00
maskpp
dd76f3425a
feat: add txHash in blockResult ( #142 )
...
add txHash in blockResult
2022-08-15 16:43:08 +08:00
Ho
f9952a396f
unify byte order in zktrie node's fields being stored ( #133 )
2022-07-28 21:32:42 +08:00
HAOYUatHZ
eb11a84c56
fix(trace): add more opcode handlings ( #128 )
2022-07-24 21:39:33 +08:00
Ho
3682e05f3f
zktrie part3: include zktrie witness in block trace; add demo for generating witness data for mpt circuit ( #123 )
...
* demo for witness generator
* add simple binary for witness generating
* revert the witgen utility
* purge some code
* induce mptwitness argument
* handle case for failed tx, and special block in POA
* mptwitness: refactor for enabling output ops with different order
* induce witness gen with rwtable order
* self-documenting options for mptwitness
* fix trace flag according to review
* fix issue in handling failed tx
* refactor
* update according to reviews
Co-authored-by: HAOYUatHZ <haoyu@protonmail.com>
2022-07-16 07:00:07 +08:00
Ho
c516a9e477
zktrie part2: add zktrie; allow switch trie type by config; ( #113 )
...
* induce zktrie
* refactoring zktrie
* fix crash issue in logger
* renaming JSON field
* unify hash scheme
* goimport and mod lint
* backward compatible with go 1.17
* lints
* add option on genesis file
* corrections according to the reviews
* trivial fixes: ValueKey entry, key in prove nodes
* fixing for the proof fix ...
* avoiding panic before loading stateDb in genesis setup
* revert ExtraData.StateList json annotation for compatibility
* fix goimports lint
* fix goimports lint
* better encoding for leaf node
* fix proof's printing issue, add handling on coinbase
* update genesis, and rule out snapshot in zktrie mode
* update readme and lint
* fix an issue
Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com>
Co-authored-by: HAOYUatHZ <haoyu@protonmail.com>
2022-06-27 11:17:02 +08:00
maskpp
f731427282
fix(trace): change error type to string ( #119 )
...
* Fix bug of error type
* Fix bug of error type
2022-06-23 16:00:36 +08:00
HAOYUatHZ
21b65f4944
core/vm: Make INVALID a defined opcode ( #118 )
...
core/vm: Make INVALID a defined opcode (#24017 )
* core/vm: Define 0xfe opcode as INVALID
* core/vm: Remove opInvalid as opUndefined handles it
Co-authored-by: Alex Beregszaszi <alex@rtfs.hu>
Co-authored-by: Andrei Maiboroda <andrei@ethereum.org>
Co-authored-by: Alex Beregszaszi <alex@rtfs.hu>
2022-06-22 17:18:47 +08:00
maskpp
e15d0d35cb
fix: fix codeList type ( #117 )
2022-06-21 18:25:07 +08:00
Zhang Zhuo
d3bc8322dc
zktrie part1: change storage proof from per step to per block ( #102 )
...
* change storage proof from step-wise to block-wise. Step-wise proof will be reconstructed in prover side
* minor
* minor
* Update worker.go
* purge hexInt
* Update l2trace.go
* Refactor l2witness/opt-storage-proof (#112 )
* rename GetStateData to GetLiveStateObject
* revert EvmTxTraces type
* rename GetLiveStateObject to GetLiveStateAccount
* fix typo
* some renamings
* format codes
* fix typo
* fix typos
* format codes
some reverts
some renamings
some renamings
format codes
* update comments
update comments
* update comments
update comments
update comments
* update comments
update comments
update comments
* rename
* rename
* update
* update comments
Co-authored-by: maskpp <maskpp266@gmail.com>
Co-authored-by: Ho Vei <noelwei@gmail.com>
Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com>
2022-06-08 12:26:50 +08:00
maskpp
9b99f2e174
fix bug and optimize fill_trace logic for gc ( #104 )
...
* fix bug and upgrade trace code
* minor
* refactor (#105 )
* move
* add comments
* fix typo
* update comments
* rename extraData()
* update comments
Co-authored-by: HAOYUatHZ <haoyu@protonmail.com>
Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com>
2022-05-26 10:35:27 +08:00
maskpp
9199413d21
opt: improve trace handling logic to decrease GC pressure. ( #92 )
...
* Upgrade trace code to decrease GC pressure.
* Fix golangci bug
* Add goproxy
* update docker file
* trigger ci
* trigger ci
* Upgrade code
* Upgrade code
* trigger ci
Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com>
2022-05-18 22:38:15 +08:00
HAOYUatHZ
571dcad4be
feat: add to AccountProof to trace ( #98 )
...
* init to
* update
* fix `to` address
* fix
* fix
* refactor
2022-05-18 05:43:43 +08:00
maskpp
0541145fd6
feat: add config for blockResult cache_limit ( #97 )
...
* Let blockResult limit settable
* fix bug
* Update cmd/geth/usage.go
Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com>
Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com>
2022-05-16 18:41:40 +08:00
maskpp
a79e72f697
refactor: optimize and improve tps for contract call. ( #83 )
...
* upgrade block trace
* upgrade block trace
* Correct comments
2022-05-04 10:12:17 +08:00
HAOYUatHZ
06190d0642
fix FormatLogs memory ( #75 )
2022-04-02 11:25:07 +08:00
HAOYUatHZ
3d3c9d3edf
fix bigInt encoding ( #74 )
...
* fix bigInt encoding
* fix balance
2022-04-02 10:13:04 +08:00
maskpp
b714e22893
fix bug of null baseFee ( #73 )
...
* fix bug of null baseFee
* Update l2trace_block.go
* Update l2trace_block.go
Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com>
2022-04-01 20:40:34 +08:00
HAOYUatHZ
33fcd2bf6d
fix(trace): use string for big.Int ( #72 )
2022-04-01 16:56:01 +08:00
maskpp
2329d32409
fix(trace): fix incorrect sender state info. ( #71 )
2022-04-01 16:07:26 +08:00
maskpp
40e8f088b6
opt: upgrade blockResult process flow ( #68 )
...
* upgrade blockResult process flow
* fix format optimization
2022-03-31 18:01:14 +08:00
HAOYUatHZ
a96775b3ff
fix code_hash json annotation ( #64 )
2022-03-31 15:08:04 +08:00
maskpp
fccb5bf6ec
fix bug about get the trace of opcode ( #67 )
2022-03-31 15:00:55 +08:00
HAOYUatHZ
9f1d8552e4
feat: add RefundCounter to StructLogRes ( #66 )
2022-03-31 13:11:34 +08:00
maskpp
e55d05d3ab
optimizate code ( #63 )
2022-03-31 11:37:33 +08:00
HAOYUatHZ
360115e61f
add code_hash to trace
2022-03-30 15:17:57 +08:00
HAOYUatHZ
8ccc10541d
feat(trace): add coinbase account_proof ( #58 )
2022-03-30 13:46:16 +08:00
Steven
5128154925
fix CaptureState ( #56 )
...
* Move code of `captureStateAfter` to `captureState`, and refactor some
code.
* Fix to use the right key in `traceStorageProof`.
* clean up
* Update `capatureStateAfter`.
* fix
* fix
* Get storage key from stack of last log.
* Revert wrong fix.
* minor
Co-authored-by: HAOYUatHZ <haoyu@protonmail.com>
2022-03-28 23:02:48 +08:00
Steven
b6cc89fabe
Add goimports lint ( #54 )
...
* Add `goimports` lint.
* Fix `goimports` issue.
* Fix group to `github.com/scroll-tech/go-thereum`.
2022-03-24 16:53:59 +08:00
HAOYUatHZ
f8532484a6
improve doc for OpcodeExecs ( #48 )
2022-03-21 13:10:11 +08:00
maskpp
09a31ccc66
Upgrade txpool module to increase tps ( #43 )
2022-03-21 08:52:13 +08:00
HAOYUatHZ
13ea5c234b
fix(trace): update proofList struct ( #46 )
2022-03-19 13:28:25 +08:00
HAOYUatHZ
9fb413d702
fix(trace): rename BlockTrace.Transaction to BlockTrace.Transactions ( #47 )
2022-03-18 11:24:57 +08:00
HAOYUatHZ
3b4875c0d5
minor: update comments ( #45 )
2022-03-16 20:46:16 +08:00
HAOYUatHZ
a5999cee90
fix(trace): change codeHash to code ( #44 )
2022-03-16 16:17:50 +08:00
maskpp
69c291cf7a
feat: add more data into the execution trace ( #20 )
2022-02-21 10:15:57 +08:00
maskpp
7745fd5840
Extract execution trace from EVM execution and provide subscription API ( #19 )
...
* Create go.yml
* Merge from zkrollup and fix conflict
* go mod tidy
* fix worker_test test case
* fix worker_test test case
* Delete go.yml
* add log content, enable memory trace
* add tracer pool handler
* Add comments and format code
* add evmTrace subscribe api
* Move the evmTrace struct.
* Fix miner bug.
* upgrade evmTrace api
* fix bug about evmTracesByHash api
* Fix the bug about block.timestamp and remove unnecessary copy.
* Update eth/filters/api.go
Co-authored-by: Haichen Shen <shenhaichen@gmail.com>
* Upgrade comments.
* Delete useless code in test file
* Update miner/worker.go
Co-authored-by: Haichen Shen <shenhaichen@gmail.com>
* Change the return result to BlockResult.
* Change return type.
* Change blockResult to blockResults.
* Add ReturnValue.
* Update core/rawdb/l2trace.go
Co-authored-by: Haichen Shen <shenhaichen@gmail.com>
* Update core/rawdb/l2trace.go
Co-authored-by: Haichen Shen <shenhaichen@gmail.com>
* Update core/types/l2trace.go
Co-authored-by: Haichen Shen <shenhaichen@gmail.com>
* Add indent to the comment and rm json encoding flag.
* Rm json encoding flag.
* Update core/rawdb/l2trace.go
Co-authored-by: Haichen Shen <shenhaichen@gmail.com>
* Rm json encoding flag.
* Update ethclient/ethclient.go
Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com>
* Update eth/filters/api.go
Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com>
* Use as the blockResult prefix flag.
* Update eth/filters/filter_system.go
Co-authored-by: Haichen Shen <shenhaichen@gmail.com>
* Update eth/filters/filter_system.go
Co-authored-by: Haichen Shen <shenhaichen@gmail.com>
* Update ethclient/ethclient.go
Co-authored-by: Haichen Shen <shenhaichen@gmail.com>
* Update eth/filters/api.go
Co-authored-by: Haichen Shen <shenhaichen@gmail.com>
Co-authored-by: Haichen Shen <shenhaichen@gmail.com>
Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com>
2022-01-23 20:41:15 +08:00
maskpp
b4d60884d2
Fix import fmt and run tests for given architecture ( #18 )
...
* fix gofmt
* Run tests for given architecture
* Speed up CI execution.
2022-01-12 19:45:06 -08:00
Jules
de7ed6af40
Update mod file and all imports to use scroll-tech URL ( #15 )
...
* Update mod file and all imports to use scroll-tech URL
Fixes #14
* Update Discord link
2021-12-24 10:59:22 +01:00
Martin Holst Swende
347c37b362
core/rawdb: use AncientRange when initializing leveldb from freezer ( #23612 )
...
* core/rawdb: utilize AncientRange when initiating from freezer
* core/rawdb: remove debug sanity check
2021-11-23 12:37:26 +01:00
Péter Szilágyi
50e07a1e16
Merge pull request #23928 from holiman/no_iota
...
core/vm: don't use iota for opcode definitions
2021-11-23 11:50:17 +02:00
Péter Szilágyi
d9c13d407f
core, eth/downloader: fix resetting below freezer threshold
2021-11-22 11:12:51 +02:00
Martin Holst Swende
ab31fbbde1
core/vm: don't use iota for opcode definitions
2021-11-18 09:50:52 +01:00
Jesse Tane
33f2813809
cmd/geth: add flag --dev.gaslimit for dev mode ( #23686 )
...
* cmd, core: add flag --dev.gaslimit to allow configuring initial block gas limit in dev mode
* core: use provided gaslimit
Co-authored-by: Martin Holst Swende <martin@swende.se>
2021-11-16 13:45:02 +01:00
Martin Holst Swende
b7a6409cc1
core/rawdb: better error message in freezer ( #23901 )
...
* core/rawdb: better error message in freezer
* Apply suggestions from code review
2021-11-16 11:33:56 +02:00
Sina Mahmoodi
c57df9ca28
core/rawdb: add slow path for getting legacy logs ( #23879 )
...
* eth/tracers: add slow path for getting legacy logs
* core/rawdb: fix test
2021-11-11 15:04:06 +01:00
Andrei Maiboroda
f32feeb260
core/vm: implement EIP-2681: Limit account nonce to 2^64-1 ( #23853 )
...
This retroactively implements requirements or EIP-2681 for the account nonce upper limit.
2021-11-11 15:00:58 +01:00
Martin Holst Swende
6b9c77f060
eth/tracers: package restructuring ( #23857 )
...
* eth/tracers: restructure tracer package
* core/vm/runtime: load js tracers
* eth/tracers: mv bigint js code to own file
* eth/tracers: add method docs for native tracers
* eth/tracers: minor doc fix
* core,eth: cancel evm on nativecalltracer stop
* core/vm: fix failing test
Co-authored-by: Sina Mahmoodi <itz.s1na@gmail.com>
2021-11-09 12:09:35 +01:00
Felix Lange
9489853321
core: check effective tip in txpool pricelimit validation ( #23855 )
...
The price limit is supposed to exclude transactions with too low fee
amount. Before EIP-1559, it was sufficient to check the limit against
the gas price of the transaction. After 1559, it is more complicated
because the concept of 'transaction gas price' does not really exist.
When mining, the price limit is used to exclude transactions below a
certain effective fee amount. This change makes it apply the same check
earlier, in tx validation. Transactions below the specified fee amount
cannot enter the pool.
Fixes #23837
2021-11-08 16:25:35 +02:00
Martin Holst Swende
e1c000b0dd
cmd/geth: add support for sepolia testnet ( #23730 )
...
* cmd/geth: add support for sepolia testnet
* core: last details on sepolia genesis
* params: fix sepolia hash + reduce testing code
* Update params/bootnodes.go
* cmd/geth: fix attach path for sepolia
* params: update bootnodes
* params: fix
* core: fix docstring
* params: add sepolia CHT
2021-11-08 13:06:01 +02:00
Sina Mahmoodi
8d7e6062ec
eth/tracers: support for golang tracers + add golang callTracer ( #23708 )
...
* eth/tracers: add basic native loader
* eth/tracers: add GetResult to tracer interface
* eth/tracers: add native call tracer
* eth/tracers: fix call tracer json result
* eth/tracers: minor fix
* eth/tracers: fix
* eth/tracers: fix benchTracer
* eth/tracers: test native call tracer
* eth/tracers: fix
* eth/tracers: rm extra make
Co-authored-by: Martin Holst Swende <martin@swende.se>
* eth/tracers: rm extra make
* eth/tracers: make callFrame private
* eth/tracers: clean-up and comments
* eth/tracers: add license
* eth/tracers: rework the model a bit
* eth/tracers: move tracecall tests to subpackage
* cmd/geth: load native tracers
* eth/tracers: minor fix
* eth/tracers: impl stop
* eth/tracers: add native noop tracer
* renamings
Co-authored-by: Martin Holst Swende <martin@swende.se>
* eth/tracers: more renamings
* eth/tracers: make jstracer non-exported, avoid cast
* eth/tracers, core/vm: rename vm.Tracer to vm.EVMLogger for clarity
* eth/tracers: minor comment fix
* eth/tracers/testing: lint nitpicks
* core,eth: cancel evm on nativecalltracer stop
* Revert "core,eth: cancel evm on nativecalltracer stop"
This reverts commit 01bb908790 .
* eth/tracers: linter nits
* eth/tracers: fix output on err
Co-authored-by: Martin Holst Swende <martin@swende.se>
2021-11-05 11:48:21 +01:00
Martin Holst Swende
03bc8b7858
core: more efficient nonce-update in txpool ( #22231 )
...
* Adjust pending nonce update operation
Benchmark the speed of transaction insertion under multiple accounts
core: fix rebase issues + docstring
core: make benchmark test use sync:ed method
* core: address review comments
* core: add memreport to benchmark
Co-authored-by: WeiLoy <wei_loy@163.com>
2021-11-02 18:32:23 +01:00
rjl493456442
2e8b58f076
cmd/geth: implement data import and export ( #22931 )
...
This PR offers two more database sub commands for exporting and importing data.
Two exporters are implemented: preimage and snapshot data respectively.
The import command is generic, it can take any data export and import into leveldb.
The data format has a 'magic' for disambiguation, and a version field for future compatibility.
2021-11-02 11:31:45 +01:00
Martin Holst Swende
551bd6e721
eth/tracers: invoke enter/exit on 0-value calls to inex accounts ( #23828 )
2021-11-01 19:06:33 +01:00
Ziyuan Zhong(仲梓源)
c576fa153a
core: fix snapshot missing when recovery from crash ( #23496 )
...
It is because write known block only checks block and state without snapshot, which could lead to gap between newest snapshot and newest block state. However, new blocks which would cause snapshot to become fixed were ignored, since state was already known.
Co-authored-by: Gary Rong <garyrong0905@gmail.com>
Co-authored-by: Martin Holst Swende <martin@swende.se>
2021-11-01 14:09:36 +01:00
Martin Holst Swende
32150f8aa9
cmd/geth, cmd/evm, params: implement Arrow Glacier (EIP 4345) ( #23810 )
...
This PR adds support for ArrowGlacier, as defined by
https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/arrow-glacier.md
https://eips.ethereum.org/EIPS/eip-4345
> Starting with FORK_BLOCK_NUMBER the client will calculate the difficulty based on a fake block number suggesting to the client that the difficulty bomb is adjusting 10,700,000 blocks later than the actual block number.
This also adds support for evm t8n to return the calculated difficulty, so it can be used to construct test.
2021-10-28 22:18:14 +02:00
Marius van der Wijden
bff330335b
core: fixed stale comment in txlist ( #23825 )
2021-10-28 14:59:51 +02:00
Martin Holst Swende
eab4d898fd
core: fix benchmark tests ( #23803 )
...
Fixes crashes in various benchmarks in the core package
2021-10-27 13:08:51 +02:00
Martin Holst Swende
526c3f6b9e
core/state/snapshot: fix benchmarks ( #23804 )
2021-10-26 11:01:01 +02:00
meowsbits
c72b16c340
core: use block difficulty for genesis ( #23793 )
...
* core: write test showing that TD is not stored properly at genesis
The ToBlock method applies a default value for an empty
difficulty value. This default is not carried over through the Commit
method because the TotalDifficulty database write writes the
original difficulty value (nil) instead of the defaulty value
present on the genesis Block.
Date: 2021-10-22 08:25:32-07:00
Signed-off-by: meows <b5c6@protonmail.com>
* core: write TD value from Block, not original genesis value
This an issue where a default TD value was not written to
the database, resulting in a 0 value TD at genesis.
A test for this issue was provided at 90e3ffd393
Date: 2021-10-22 08:28:00-07:00
Signed-off-by: meows <b5c6@protonmail.com>
* core: fix tests by adding GenesisDifficulty to expected result
See prior two commits.
Date: 2021-10-22 09:16:01-07:00
Signed-off-by: meows <b5c6@protonmail.com>
* les: fix test with genesis change
Co-authored-by: Martin Holst Swende <martin@swende.se>
2021-10-26 08:44:43 +02:00
Martin Holst Swende
0e7efd696b
core/rawdb, ethdb: introduce batched/atomic reads from ancients ( #23566 )
...
This PR adds a new accessor method to the freezer database. This new view offers a consistent interface, guaranteeing that all individual tables (headers, bodies etc) are all on the same number, and that this number is not changes (added/truncated) while the operation is performing.
2021-10-25 16:24:27 +02:00
Ziyuan Zhong
312e02bca9
core/state/snapshot: fix BAD BLOCK error when snapshot is generating ( #23635 )
...
* core/state/snapshot: fix BAD BLOCK error when snapshot is generating
* core/state/snapshot: alternative fix for the snapshot generator
* add comments and minor update
Co-authored-by: Martin Holst Swende <martin@swende.se>
2021-10-20 10:05:27 +02:00
Marius van der Wijden
c641cff51a
core: refactored blockchain.go ( #23735 )
2021-10-18 10:45:59 +03:00
rjl493456442
f915f6873f
core/state/snapshot: fix data race in layer flattening ( #23628 )
...
* core/state/snapshot: fix data race in layer flattening
* core/state/snapshot: fix typo
2021-10-15 10:52:40 +03:00
jwasinger
011fe3eb5e
core: remove unused error from TxPool.Pending ( #23720 )
2021-10-13 23:00:45 +02:00
Iskander (Alex) Sharipov
778ff94794
all: fix some go-critic linter warnings ( #23709 )
...
This doesn't fix all go-critic warnings, just the most serious ones.
Co-authored-by: Felix Lange <fjl@twurst.com>
Co-authored-by: Martin Holst Swende <martin@swende.se>
2021-10-13 17:31:02 +02:00
Ian Norden
e4f570fcc6
core/types: add MarshalBinary, UnmarshalBinary for Receipt ( #22806 )
2021-10-13 15:16:16 +02:00
Martin Holst Swende
6289137827
consensus/clique, core: API cleanup ( #23100 )
...
This removes some code:
- The clique engine calculated the snapshot twice when verifying headers/blocks.
- The method GetBlockHashesFromHash in Header/Block/Lightchain was only used by tests. It
is now removed from the API.
- The method GetTdByHash internally looked up the number before calling GetTd(hash, num).
In many cases, callers already had the number, and used this method just because it has a
shorter name. I have removed the method to make the API surface smaller.
2021-10-11 23:16:46 +02:00
Miro
cf8a6d6173
core: tests for forked blocks retrievable by hash ( #23695 )
...
* Update tests to showcase that forked blocks can still be looked up by their hash
2021-10-11 19:25:21 +02:00
hsyodyssey
84bccd0900
core/state: fix typos in comments ( #23702 )
2021-10-10 15:00:00 +02:00
Martin Holst Swende
edb1937cf7
core: improve shutdown synchronization in BlockChain ( #22853 )
...
This change removes misuses of sync.WaitGroup in BlockChain. Before this change,
block insertion modified the WaitGroup counter in order to ensure that Stop would wait
for pending operations to complete. This was racy and could even lead to crashes
if Stop was called at an unfortunate time. The issue is resolved by adding a specialized
'closable' mutex, which prevents chain modifications after stopping while also
synchronizing writers with each other.
Co-authored-by: Felix Lange <fjl@twurst.com>
2021-10-07 15:47:50 +02:00