* VmTrace
* Fixes to gasCall, beginning of vmTrace
* Fix opcode tracer
* Add mem and store, enable vmTrace for all methods
* Fix lint
* More nuances and debugging|
* More fixes
* Fix for trace_callMany
* Fix for trace_callMany
Co-authored-by: Alexey Sharp <alexeysharp@Alexeys-iMac.local>
* Minor fixes for tracing
* Typo in comment
* rpctest bench tracefilter to use limited number of accounts
* replay command to fail if there is a difference
Co-authored-by: Alexey Sharp <alexeysharp@Alexeys-iMac.local>
* Debugging
* trace_ methods to take into account AccessList intrinsic gas
* Clean upp and fix error message
* More cleanup
Co-authored-by: Alexey Sharp <alexeysharp@Alexeys-iMac.local>
* Pruning for: exec, log_index, tx_lookup, history stages
* Pruning for: exec, log_index, tx_lookup, history stages
* Pruning for: exec, log_index, tx_lookup, history stages
* Pruning for: exec, log_index, tx_lookup, history stages
* add tvm flag
* save
* db migration for storage mode
add flag --prune=
remove flag --storage-mode=
add flag --experiments=tevm,...
rename integration set_storage_mode to set_prune
* fix
* forward move of stages must skip everything before PruneTo
* keep in db progress of prune method
* keep in db progress of prune method
* simplify logs
* simplify logs
* simplify logs
* fix test
* simplify logs
* simplify logs
* simplify logs
* simplify logs
* remove callTraceSet as dupsort
use etl transform for txlookup prune
remove some logs
* cleanup tests a bit
* print_stages and eth_sync to show prune progress
* fix print_stages
* add readme about --prune.to flag
* more docs
* add --prune.history.older and other flags support
* fix migration on empty db
* better toString
* better toString
* Print CALL instr
* Print more info
* try to remove gas bailout
* gas bailout control and txHash
* Swap tracer
* Flush stream
* Add more json structure
* Print gasPrice
* Print gas price
* Fix
* Fix
* Clean up
Co-authored-by: Alex Sharp <alexsharp@Alexs-MacBook-Pro.local>
* Fix for trace in trace_replayTransaction and trace_replayBlock
* Add to the rpctest
* Improve output
* Fix typo
* Simplify
Co-authored-by: Alex Sharp <alexsharp@Alexs-MacBook-Pro.local>
* Fixes in rpctest and rpcdaemon for debug_traceTransaction
* Fix for opcode tracer
* Tool to fix receipts
Co-authored-by: Alexey Sharp <alexeysharp@Alexeys-iMac.local>
* handle chain flag in integration
* handle chain flag in integration
* handle chain flag in integration
* save
* save
* merge devel
* save
* noopWriter - one is enough
* chain spec parser
* chain spec parser
* embed
* embed
* embed
* embed
* embed
* embed
* embed
* clean
* clean
* correct alloc after reset state
* correct alloc after reset state
* correct alloc after reset state
* integration reset state now does re-apply genesis and chainConfig
* eips summary
* eips summary
* eips summary
* Fix range for eth_getLogs
* Use Or and measure time
* more measurement
* more measurement
* Not compute tx hashes
* Not compute tx hashes
* Not compute tx hashes
* filter logs before derive fields
* Fix filtering by block number
* fix
Co-authored-by: Alex Sharp <alexsharp@Alexs-MacBook-Pro.local>
* Remove root from eth_getTransactionReceipt
* Simplifaction of status
Co-authored-by: Alex Sharp <alexsharp@Alexs-MacBook-Pro.local>
Co-authored-by: Alexey Sharp <alexeysharp@Alexeys-iMac.local>
* implemented crash reporting for all goroutine panics that aren't handled explicitly
* implemented crash reporting for all goroutine panics that aren't handled explicitly
* changed node defaults back to originals after testing
* implemented panic handling for all goroutines that don't explicitly handle them, outputting the stack trace to a file in crashreports
* handling panics on all goroutines gracefully
* updated missing call
* error assignment
* implemented suggestions
* path.Join added
* implemented Evgeny's suggestions
* changed path.Join to filepath.Join for cross-platform
* added err check
* updated RecoverStackTrace to LogPanic
* updated closures
* removed call of common.Go to some goroutines
* updated scope capture
* removed testing files
* reverted back to original method, I feel like its less intrusive
* update filename for clarity
* Better compatibility for trace_call
* Also for trace_callMany
* non canonical hash error
Co-authored-by: Alexey Sharp <alexeysharp@Alexeys-iMac.local>
* Migration to fix trace_filter
* Fix to db/tx
* Fix to db/tx
* Error fixes
* Bump KV version
Co-authored-by: Alex Sharp <alexsharp@Alexs-MacBook-Pro.local>
* Intermediate
* Test for trace_filter
* Clean up
* Clean up
* clean up
* More to the test
* Hack
* Block parameter
* Block parameter
* use mdbx
* Print number of records
* Print keys
* Print index records
* Print block numbers
* Print values in tracecallset
* Print some more
* More printing
* Print froms and tos
* Print startBlock and endBlock
* Tests and fixes
* Cleanup
Co-authored-by: Alex Sharp <alexsharp@Alexs-MacBook-Pro.local>
Co-authored-by: Alexey Sharp <alexeysharp@Alexeys-iMac.local>
* clean
* save
* pubsub
* pubsub
* pubsub
* pubsub
* pubsub
* pubsub
* save
* tx pub-sub
* tx pub-sub
* clean
* clean
* save
* save
* save
* save
* save
* Squashed 'interfaces/' content from commit c469f3ae0
git-subtree-dir: interfaces
git-subtree-split: c469f3ae073b60c8821b61fed2910191080ef835
* save
* save
* save
* save
* Squashed 'interfaces/' changes from c469f3ae0..958dfc669
958dfc669 save
git-subtree-dir: interfaces
git-subtree-split: 958dfc669f8daeefe686a13aa852fb95f1537886
* save
* save
* up some deps
* up some deps
* clean
* test
* test
* test
* test
* test
* test
* test
* test
* test
* test
* test
* test
* Fix error message about write protection
* Clean up of trace_filter
* Add CallTraces to Execution Stage
* Fix compile
* Say something
Co-authored-by: Alex Sharp <alexsharp@Alexs-MacBook-Pro.local>
* Initial work on RPC streaming
* Create the stream and pass it on
* trace_filter expressed as streamable (not finished)
* Reenable call trace index
* Add new line
* Remove storage mode override
* Tool for overriding storage mode
* Diagnostics
* Make trace_filter more streamy
* Streaming debug_traceTransaction and debug_traceCall
* Fix test
* Log error on stream flush
* Enable streaming for http
* Flush the stream too
* Make trace_filter flush too
* Stop streaming if client is not interested
* Try to quiet annoying test|
* Revert "Try to quiet annoying test|"
This reverts commit 42849257bfa52e90140aa535af34b957cd97a222.
* Debug log for test
* Proceed with handshake regardless of whether peer notification worked
Co-authored-by: Alexey Sharp <alexeysharp@Alexeys-iMac.local>
Co-authored-by: Alex Sharp <alexsharp@Alexs-MacBook-Pro.local>
* Fix for eth_getTransaction... returning tx from the pool
* Fix
* Fix more issues
* Fix for EOF
Co-authored-by: Alexey Sharp <alexeysharp@Alexeys-iMac.local>
Co-authored-by: Alex Sharp <alexsharp@Alexs-MacBook-Pro.local>
* Fixes trace_transaction to use new OETracer from trace_block
* Fixes trace_get to use OETracer from trace_block
* Trace only up to txIndex as per suggestion in trace_transaction
* Cleaning up a few old comments
* Where I am at
* Refactoring of transaction types
* More refactoring
* Use Homested signer in rpc daemon
* Unified signer
* Continue unified signer
* A bit more
* Fixes and down the rabbit hole...
* More tx pool fixes
* More refactoring fixes
* More fixes'
* more fixes
* More fixes
* More compile fixes
* More RLP hand-writing
* Finish RLP encoding/decoding of transactions
* Fixes to header encoding, start on protocol packets
* Transaction decoding
* Use DecodeTransaction function
* Decoding BlockBodyPacket
* Encode and decode for pool txs
* Start fixing tests
* Introduce SigningHash
* Fixes to SignHash
* RLP encoding fixes
* Fixes for encoding/decoding
* More test fixes
* Fix more tests
* More test fixes
* More test fixes
* Fix core tests
* More fixes for signer
* Fix for tx
* Fixes to string encoding/size
* Fix eip2930 test
* Fix rest of ./tests
* More fixes
* Fix compilation
* More test fixes
* More test fixes
* Test fixes
* More fixes
* Reuse EncodingSize in EncodeRLP for accessList
* Rearrange things in dynamic fee tx
* Add MarshalBinary
* More fixes
* Make V,R,S non-pointers
* More NPE fixes
* More fixes
* Receipt fixes
* Fix core/types
* Fix ./eth
* More compile fixes for tests
* More test fixes
* More test fixes
* Try to see lint errors better
* Try to see lint errors better
* Fix lint
* Debugging eip1559 test
* Fix TestEIP1559Transition test
* Fix NewBlockPacket encoding/decoding
* Fix calculation of TxHash
* Fix perf problem with senders
* Update aleut config values
* Try adding static peers
* Add staticpeers to defaul flags
* Change aleut networkID
* Fix test
Co-authored-by: Alex Sharp <alexsharp@Alexs-MacBook-Pro.local>
Co-authored-by: Alexey Sharp <alexeysharp@Alexeys-iMac.local>
* rpcdaemon performance improve - less reading blocks, less allocs on server
* rpcdaemon performance improve - less reading blocks, less allocs on server
* rpcdaemon performance improve - less reading blocks, less allocs on server
* rpcdaemon performance improve - less reading blocks, less allocs on server
* don't use global variables
* df
* avoid use non-transactional db instance to reduce amount of cursors
* trace_call initial
* Fix tests
* More tracing
* Add more fields to the action
* Completed first example query
* Add initial bench11 to compare trace_call with OpenEthereum
* Exclude precompile calls from call traces
* Add self-destruct, call types, more comparison in rpctest
* Support for execution errors
* Stack underflow error and delegatecall value
* Fix lint
* Fix suicide traceAddress, Bad instruction error
* Fix lint
Co-authored-by: Alexey Sharp <alexeysharp@Alexeys-iMac.local>
* Cleanup and rpcdaemon unit tests
* Fix
* Fix
* Fix lint
* Test for debug_traceTransaction
* Add NoRefunds option
* Compile fix, test for no refunds
* Fix compile
* Add poly contract, fix compile errors
* No refunds now work
* Fix NPE in rpcdaemon
Co-authored-by: Alexey Sharp <alexeysharp@Alexeys-iMac.local>
* State cache init
* More code
* Fix lint
* More tests
* More tests
* More tests
* Fix test
* Transformations
* remove writeQueue, before fixing the tests
* Fix tests
* Add more tests, incarnation to the code items
* Fix lint
* Fix lint
* Remove shards prototype, add incarnation to the state reader code
* Clean up and replace cache in call_traces stage
* fix flaky test
* Save changes
* Readers to use addrHash, writes - addresses
* Fix lint
* Fix lint
* More accurate tracking of size
* Optimise for smaller write batches
* Attempt to integrate state cache into Execution stage
* cacheSize to default flags
* Print correct cache sizes and batch sizes
* cacheSize in the integration
* Fix tests
* Fix lint
* Remove print
* Fix exec stage
* Fix test
* Refresh sequence on write
* No double increment
* heap.Remove
* Try to fix alignment
* Refactoring, adding hashItems
* More changes
* Fix compile errors
* Fix lint
* Wrapping cached reader
* Wrap writer into cached writer
* Turn state cache off by default
* Fix plain state writer
* Fix for code/storage mixup
* Fix tests
* Fix clique test
* Better fix for the tests
* Add test and fix some more
* Fix compile error|
* More functions
* Fixes
* Fix for the tests
* sepatate DeletedFlag and AbsentFlag
* Minor fixes
* Test refactoring
* More changes
* Fix some tests
* More test fixes
* More test fixes
* Fix lint
* Move blockchain_test to be able to use stagedsync
* More fixes
* Fixes and cleanup
* Fix tests in turbo/stages
* Fix lint
* Fix lint
* Intemediate
* Fix tests
* Intemediate
* More fixes
* Compilation fixes
* More fixes
* Fix compile errors
* More test fixes
* More fixes
* More test fixes
* Fix compile error
* Fixes
* Fix
* Fix
* More fixes
* Fixes
* More fixes and cleanup
* Further fix
* Check gas used and bloom with header
Co-authored-by: Alexey Sharp <alexeysharp@Alexeys-iMac.local>
* fix `make grpc` on new checkouts
* update proto files
* add some stub
* prototype with fake events
* notifying about events
* pass events
* events are being sent
* transfer headers to filters
* create the “filters” struct
* implement new heads
* PoC of New Heads subscription
* fix keep alive
* fixups for the client
* add “type” to the event
* support header event type on client
* better stage refactor
* fixup for the eth backend
* fixups
* fix tests
* fix tests
* fix linters
* address comments
* remove unused log
* change_set_dup
* change_set_dup
* change_set_dup
* change_set_dup
* change_set_dup
* change_set_dup
* change_set_dup
* change_set_dup
* change_set_dup
* change_set_dup
* change_set_dup
* change_set_dup
* change_set_dup
* change_set_dup
* change_set_dup
* change_set_dup
* change_set_dup
* change_set_dup
* change_set_dup
* change_set_dup
* change_set_dup
* working version
* working version
* working version
* working version
* working version
* working version
* working version
* working version
* working version
* working version
* working version
* working version
* working version
* working version
* working version
* working version
* working version
* working version
* working version
* working version
* working version
* working version
* working version
* working version
* working version
* working version
* working version
* working version
* working version
* working version
* working version
* working version
* working version
* working version
* working version
* working version
* working version
* working version
* working version
* working version
* working version
* working version
* working version
* working version
* aa
* aa
* aa
* aa
* aa
* aa
* aa
* aa
* aa
* aa
* aa
* aa
* aa
* aa
* aa
* squash
* squash
* fix
* fix
* fix
* fix
* fix
* fix
* fix
* fix
* fix
* fix
* fix
* history_early_stop
* history_early_stop
* vmConfig with ReadOnly false
* auto_increment
* auto_increment
* rebase master
Co-authored-by: Alexey Akhunov <akhounov@gmail.com>
* ReadBlockByNumber and ReadChainConfig return error
* Let's make rawdb package to return error. But by small steps.
High-level methods need to move first:
ReadBlockByNumber
ReadChainConfig
ReadBlockByHash
ReadHeaderByHash
WriteChainConfig
WriteDatabaseVersion
WriteBlock
DeleteTd
WriteTd
ReadTd
* Moving a few files to be more consistent
* Collecting together custom code under tg_ namespace
* Small cleanups
* Updating test cases
* Uncomment eth_gasPrice but still unimplemented
* Fixes issue #1232
* Adding/updating test cases
* Updating as per comments
* Use tx instead of db in GetModifiedAccounts and clean up a bit
* option to specify LMDB map size for cmd/integration commands (#1238)
* Add lmdb.mapSize to integration
* Make lmdb.mapSize effective
* Use mapSize for first opening
* Fix for cobra
* Extend lmdb.mapSize for all commands
* Fix lint
* Fixes issue #1232
* Adding/updating test cases
* Updating as per comments
Co-authored-by: ledgerwatch <akhounov@gmail.com>
* Starting process of rearranging RPC code
* First version of automated testing
* Putting RPC docs in their own folder
* Fixing build
* Making varible names more consistent
* Adding deprecated RPC commands for db_
* Adding deprecated RPC commands for shh_
* Adding deprecated RPC commands for eth_
* Initial commit for CallTraces index
* Fix compilation
* fix lint, add comment
* Fix integration
* Add Close function to ethdb.Cursor, fix some compile errors
* Try to stop cursor leak in Get
* Fix compile errors in RPC daemon
* Fix compile errors
* fixing another way
* Some fixes
* More fixes
* More fixes
* More fixes
* Fixes to core/state
* Fix lint
* Fix lint
* Fixes
* Stage caching for call trace stage
* Add mem stats
* Try to stop the leak
* Turn off debug
* Chunks for 10k blocks
* Print
* Revert "Print"
This reverts commit 5ffada4828d61e00e5dad1ca12c98258dfbbad00.
* Revert "Chunks for 10k blocks"
This reverts commit cfb9d498e782e5583d41c30abf0e2137da27383e.
* Trying to fix the leak
* Don't compute receipts in re-tracing
* Not compose block
* Print speed, fix receipts, bigger caches
* Fix lint
* Utilise changeset info
* Counters
* Use NoReceipts and ReadOnly
* ReadOnly is incompatible with caching
* Skip test leaking transactions
* Fix block test
* Change disable message for call-traces stage
* Use block option for call traces integration
* Fix retracing due to incarnation
* save progress
* GracefulShutdown grpc server, send to server close signal before canceling context
* GracefulShutdown json server
* GracefulShutdown json server
* fix lint
* clean
* hack hugeFreelist
* up streams limit
* up streams limit
* up streams limit
* up streams limit
* up streams limit
* up streams limit
* up streams limit
* up streams limit
* up streams limit
* save progress
* fix_race_condition_on_zstd_build
* fix_race_condition_on_zstd_build
* better close cursor
* save progress
* open read tx in all api methods
* clean
* clean
* Starting to look at performance
* Fixes issue #1142 - incorrect error strings
* Uses a recent fix in Geth callTracer code to return balance to self-destruct traces
* Adding some testdata for RPC tracing
* Adding command line option to allow switching trace export format
* Moved types into a separate file for clarity
* Added endpoints and stub functions for other trace routines
* Added experimental end points for issuance, blockReward, and uncleReward
* Moved supporting functions for filtering to _filtering file
* Moved Filter function to _filtering file
* Reordering functions for clarity
* Cleaning up
* Implemented trace_get - 7 of 8 tests pass
* Implemented trace_transaction - 2 of 8 tests pass
* Updating test cases
* Turning off lint temporarily. Will be turned back on
* Extended trace_filter (parity traces, reward traces) - 10 of 13 tests pass
* Implemented trace_block - 4 of 6 tests passed
* Cleanup test cases
* Added refundAddress and selfDestructedAddress to self destruct traces
* Total hack fix to missing gasUsed in some tests. Fixes tests, needs to be replaced
* Rewrite of README for clarity and expanding implementation table
* Small cleanups for web3_api.go
* Changed GetReceipts function to non-export (getRecipts) and cleaned up comments
* Added a comment for GetLogsByHash
* Add support for eth_protocolVersion and eth_chainId
* Adding comments and re-ordering fields to agree with Parity's ordering
* Added support for eth_listening. Moved net_version to same file as others
* Setup for adding eth_gasPrice
* Fixes issue #1110 - eth_getStorageAt returning inconsistent values
* Adds support for various eth_getUncle calls
* Adding a couple of comments
* Adding support for eth_getTransactionCount
* Cleaning up README's
* Cleaning up README for rpcdaemon
Co-authored-by: tjayrush <jrush@greathill.com>
* Removed old TODOs
* Adding support for web3_clientVersion and web3_sha3
* Fixing formatting
* Adding new endpoints to README
* Responding to comments by removing date from compile-time values
* Added missing README entry for getTransactionByHash
* Adding support for eth_getTransactioBy* RPC routines
* Added missing README entry for getTransactionByHash
* Adding support for eth_getTransactioBy* RPC routines
* Copying code from ./internal/ethapi/api.go with modifications
* it compiles
* after recent master
* fix linters warnings
* grpcV7
* go mod tidy
* unmarshall adresses or adress
* fix linters
* after cr
* after cr
* after cr
* after cr
* fix tests
* remove dev version
* it compiles
* mod tidy
* fix bin deps
* use stable version of grpc
* switch back to master constructor
* switch back to master constructor
* add a bit docs
* add a bit docs
Co-authored-by: Alexey Akhunov <akhounov@gmail.com>
Co-authored-by: alex.sharov <AskAlexSharov@gmail.com>
* Update Supported JSON-RPC calls in README
* Fix Hyperlinks
* Update list
* Include net / net_version
* Rename net.go to net_api.go
* Fix hyperlink for renamed net_api.go file
* share config object
* create default config and logger
* move db connection to common func
* move server start to cli package
* clear
* clear
* rename cli to rpc
* use unified SetupLogger func
* make all root flag persistent
* use common flags in different packages
* use common flags in different packages
* move TraceTx method to eth package
* use native slice flags
* create package "turbo"
* disable geth api
* disable geth api
* move more data types to turbo/adapter package
* add support for customApiList
* run more
* run more
* run more
* dog-food
* move DoCall
* move DoCall
* fix tests
* fix test
* add docker-compose
* test.http
* make different dockerfile for each component
* make different dockerfile for each component
* fix versions
* remove dedicated docker files
* cleanup
* cleanup
* cleanup
* save state
* cleanup
* add walkasof test for storage with chunks
* fix lint
* fix lint
* remove useless comments
* fix dump test
* move accountRange test to plain state
* get last block fixes
* make plain state + staged sync the default
* remove sync mode flag completely
* one thing
* fix the console
* simplify code
* fix and skip tests
* fixup for console tests
* remove ctx from MustOpen
* remove ctx from Open. Stop goroutines on Close.
* remove ctx from Open. Stop goroutines on Close.
* remove ctx from remote open (we have DialTimeout field to manage connection timeouts)
* enable RawReads and add native implementation of Get/Has methods
* Not hash, keep the files
* Calculate savings
* Fix
* Fix
* Fix
* Fix
* RestAPI to support local boltdb
* Not error on read-only db
* Changes so far
* Continue
* More
* Roll back a bit
* Restore newline
* something compiles
* Fix restapi
* Fix block number
* Fix reads
* Use plain writer
* Maps for storage reads and writes
* Clean up coersions
* Fix accounts/abi/bind
* Fix tests
* More fixes
* more fixes
* More fixes
* Fixes
* Fixed core/state
* Fixed eth tests
* Move code, fix linter
* Fix test
* Fix linter
* Fix linter
* Fix linter, badger_db to support AbstractKV
* Increase IdealBatchSize for badger
* Fix linter
* Fix linter