* 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>
* save state
* save state
* save state
* refactoring
* fix
* save state
* save state
* fmt
* fix lint
* restore torrents for external downloader
* fix lint
* download
* skip debug test
* debug
* remote debug
* small cli fixes
* skip debug test
* external snapshot predownloader
* get rid of remote downloader
* fix lint
* clean makefile
* fix lint
* fix lint
* cleanup
* fix ci
* fmt
* remove proto from interfaces
* Squashed 'interfaces/' content from commit acd02bb94
git-subtree-dir: interfaces
git-subtree-split: acd02bb94c5a421aa8f8d1fd76cd8aad668e9fcb
* move locking to the hd object itself, create ready channel
* Fix lint
* More integration
* Fix lint
* Connect to processing
* Set hd.files at recovery
* Serialise processSegment
* Fix lint
* Not prepend filesDir
* Write to the database
* Fix lint
* Set up genesis block
* Fix hard coded tips
* Fix chainbreak false alarm
* Recover from DB
* Skip non-header records
* Not initialise if recovered from DB
* Fix lint
* Initial work on state shards
* Fix compile errors
* Intermediate
* Implement dispatcher
* Implemented sharded reader
* No cache
* Print comms
* No prepopulation
* Print dispatcher activity
* Print more
* Print errors
* Fix dispatcher
* Remove logging
* Dispatcher to enforce initial barrier
* Don't print that much
* Turn off cache pre-seeting for state sharding
* Artificial latency, fixed number of blocks to execute
* Fix
* First
* More on SA interpreter
* Fixup
* Add cfg action to hack binary that invokes the SaInterpreter. Added an operation handler for PUSH1
* refactor cfg tests into separate file
* Move cfg tests into separate file
* More refactoring into new file
* dataflow interpreter
* work on cfg0
* finish cfg0
* df works on base examples
* refactor into dataflow spec
* add bounded stack
* add harder example
* fix switch pass thru
* fix switch pass thru
* bug fix, and better printing
* manual merge
* restore call to test gencfg
* abstract interpretation based cfg analysis
* fix post signature
* use uint256 instead uint64, add post function
* preprocess stmts
* initial implementation of resolve
* fix resolve
* fix resolve
* print stmts for edges
* print stmts for edges
* print states
* print states
* bug fixes, debugging
* fix jumpi dest - first working impl
* reachability analysis to filter out dead edges
* add all transfer functions
* larger contract bytecodes from solc compiler
* simple solidity contract goes thru
* add deposit contract bytecode
* rename deposit contract test
* fix new contract arg
* Address non-determinism leading to imprecise results
* improve debugging output
* improve debugging output
* improve debugging output
* fix for bug causing incorrect analysis results
* fix for bug causing incorrect analysis results
* fix for bug causing incorrect analysis results
* add more test cases
* fix coverage bug
* debugging for non-termination
* fix bad fixpoint check
* fix data inference
* fix transfer function for halting stmts
* switch to deposit contract test, disable debugging
* add anly counter to viz, fix stmt.valid check
* show all preds, adjust anlycounter behavior
* dfs instead of bfs to fail earlier
* viz improvements
* add worklist size to viz
* add test case for private functions
* valueset analysis
* add more checks to fail earlier in the analysis to help debugging, improve debugging output, catch additional bad jumps
* delete old code
* delete old code
* delete old code
* fix up minor changes to jump table
* copy over comments from cgf-1 branch
* remove minor diffs
* add recompiled deposit contract
* graph viz
* cleanup/refactoring
* initial impl of viz
* script to run cfg anly and generate dot file
* div example
* accept bytecode from cmd line
* add minimal deposit contract example
* replace valueset analysis with stackset analysis
* get in sync with master
* sync with master
* fix linting
* fix linting
* fix linting
* reformatting
* fix linting
* fix linting
* fix linting
* fix linting
* fix linting
* fix linting
* fix linting
* harness for running over all contracts
* refactor anly, track coverage metrics
* breakdown unresolved into different types, fix bad opcode bug
* sort programs by frequency
* ingest used contracts from bigquery
* performance, concurrency, bug fixes
* more test cases, handle invalid jumps differently, remove duplicate edges, report analytics limit
* simplify concurrency
* correctly track short stack
* add new transfer function, fix stack len
* variable stack length, perf opts, inc anly count limit
* profiling
* test case for large state size
* use custom hash function for control
* timeouts
* cfg.sh
* increase to 5 min timeout
* track elpased time
* use ptr
* increase limits
* increase limits
* fix mem leak
* debug mem leak
* debug mem leak
* lower resource limits
* fix nil error
* add new lattice element
* re-enable
* cut down limits
* preliminary proof checker
* refactor batch mode to run cfg in subprocess,put memory limit
* remove hard wiring
* adjust limits
* update metrics tracking
* more succinct proof checker
* rewrite checker
* bug fixes on checker
* bug fix
* remove print stmts
* track proof size
* print proof size
* don't panic on process error
* compress proof
* go mody tidy
* code formatting
* fix capitalization
* fix linting
* fix linting
* fix linting
* fix linting
* fix linting
* remove unnecessary files
* fix typo
Co-authored-by: Alexey Akhunov <akhounov@gmail.com>
This change implements the Discovery v5.1 wire protocol and
also adds an interactive test suite for this protocol.
# Conflicts:
# cmd/devp2p/discv5cmd.go
# p2p/discover/v5_encoding.go
# p2p/discover/v5_encoding_test.go
# p2p/discover/v5_udp.go
# p2p/discover/v5_udp_test.go
# p2p/discover/v5wire/session.go
This fixes issues with the protocol handshake and status exchange
and adds support for responding to GetBlockHeaders requests.
# Conflicts:
# cmd/devp2p/internal/ethtest/suite.go
# cmd/devp2p/internal/ethtest/types.go
* accounts, signer: implement gnosis safe support
* common/math: add type for marshalling big to dec
* accounts, signer: properly sign gnosis requests
* signer, clef: implement account_signGnosisTx
* signer: fix auditlog print, change rpc-name (signGnosisTx to signGnosisSafeTx)
* signer: pass validation-messages/warnings to the UI for gnonsis-safe txs
* signer/core: minor change to validationmessages of typed data
* Splitting sentry and downloader - the beginning
* A bit more
* More on sentry
* More gRPC
* Sentry and downloader separated
* Update binding for stable version of grpc
* Better bufferSize flag
* Fix lint
* Send pelanties
* Fix lint
* Remove hard-coded tips on connect
* Tidy the logs a bit
* Deal with hardTips on Recovery
* Print hard tips
* Hide empty anchors
* Request headers after receiving a message
* Better waking up
* Print hard-coded block numbers
* Print outgoing requests
* Debug logging
* In the middle protection
* Sentry not to lose peers when core disconnects
* 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
* save progress
* save progress
* save progress
* save progress
* etl bimaps
* etl bimaps
* etl bimaps
* etl bimaps
* a
* a
* a
* a
* a
* a
* a
* save progress
* save progress
* save progress
* a
* fix_race_condition_on_zstd_build
* clean
* clean
* clean
* clean
* clean
* go mod tidy
* clean
* clean
* clean
* clean
* clean
* clean
* clean
* clean
* clean
* clean
* clean
* clean
* clean
* clean
* clean
* clean
* clean
* fix corner case
* commit every
* call traces etl
* call traces etl
* call traces etl
* return missed error
* go mod tidy
* go mod tidy
* go mod tidy
* rebase to master
* remove trash
* print full key if it has 8 leading zeroes
* Add print_migration command to integration
* Not run migrations for print commands
* Reverse migration
* Fix lint
* Add datadir to run_migrations
* Add lmdb.mapSize to integration
* Make lmdb.mapSize effective
* Fix
* receipt sizes
* fix print
* Switch to another version of lmdb
* Collector from existing files
* Not load
* Commit after clearing
* Add methods for clear/drop buckets by multiple transactions
* Fix to lmdb
* Not remove temp files
* Not load
* Re-enable loading
* Prints
* Try to fix refill
* Migration in 3 steps
* tidy mod
* Fix lint
* Fix tests
* Migrations for CBOR receipts in 3 txs
* Fix lint
Co-authored-by: alex.sharov <AskAlexSharov@gmail.com>
* 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>
* 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
* save state
* torrent experiments
* torrent experiment passed
* fixes after merge
* snapshot headers processing passed
* save state
* save state
* download headers works after snapshot processing
* save state
* save state
* save state
* save state
* add lazy load tx to snapshots, increase number of trackers
* save state
* speedup getting info
* change logging
* move to turbo package
* save state
* save state
* save state
* cleanup
* save state
* add test test
* save state
* lmdb debugging
* fix readonly mode
* save state
* fix build
* sync works
* save state
* save state
* save state
* allow cmd stages stageSenders use snapshots
* debugging failed hashing
* remove experimental tests
* remove torrent experimental tests
* fix lint
* extract snapshot wrapper
* metainfo checker
* add remote seeder
* add logs
* update gomod
* remove useless code
* fix lint&remove useless code
* extract verify snapshot to separated command
* skip debug test
* fix test
* change type of seedSnapshot flag
* add eth logger to torrent lib
* skip debug test
* add Close method
* review fixes
* fix lint
* tidy mods
* Fix compile
* Fix lint
* Fix rpcdaemon running in the docker
Co-authored-by: b00ris <b00ris@mail.ru>
Co-authored-by: alex.sharov <AskAlexSharov@gmail.com>
* Add a convenience method to replace stages
* allow more parameters to the execution function
* add a plug-in point for stuff like bloom filters, etc
* add comments
* fixups
* 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
* Added back fdlimit to increase number of file descriptors
* Fixing a test file that fails on Mac with too few file descriptors available
* Trying to fix ci
* Trying to fix ci
* Trying to fix ci 3
* Fixing ci
* 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
* save progress
* GracefulShutdown grpc server, send to server close signal before canceling context
* GracefulShutdown grpc server, send to server close signal before canceling context
* GracefulShutdown json server
* GracefulShutdown json server
* fix lint
* fix lint
* can
* clean
* test
* test
* test
* increase keepalive timeout, increase vegeta timeout, mark server-side errors
* increase keepalive timeout, increase vegeta timeout, mark server-side errors
* 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
* up streams limit
* up streams limit
* fix_race_condition_on_zstd_build
* save state
* torrent experiments
* torrent experiment passed
* fixes after merge
* snapshot headers processing passed
* save state
* save state
* download headers works after snapshot processing
* save state
* save state
* save state
* save state
* add lazy load tx to snapshots, increase number of trackers
* save state
* speedup getting info
* change logging
* move to turbo package
* save state
* save state
* save state
* cleanup
* save state
* add test test
* save state
* lmdb debugging
* fix readonly mode
* save state
* fix build
* sync works
* save state
* save state
* save state
* allow cmd stages stageSenders use snapshots
* debugging failed hashing
* remove experimental tests
* remove torrent experimental tests
* fix lint
* extract snapshot wrapper
* metainfo checker
* add remote seeder
* add logs
* update gomod
* remove useless code
* fix lint&remove useless code
* extract verify snapshot to separated command
* skip debug test
* fix test
* change type of seedSnapshot flag
* add eth logger to torrent lib
* skip debug test
* add Close method
* review fixes
* fix lint
Co-authored-by: b00ris <b00ris@mail.ru>
Co-authored-by: alex.sharov <AskAlexSharov@gmail.com>
* save state
* torrent experiments
* torrent experiment passed
* fixes after merge
* snapshot headers processing passed
* save state
* save state
* download headers works after snapshot processing
* save state
* save state
* save state
* save state
* add lazy load tx to snapshots, increase number of trackers
* save state
* speedup getting info
* change logging
* move to turbo package
* save state
* save state
* save state
* cleanup
* save state
* add test test
* save state
* lmdb debugging
* fix readonly mode
* save state
* fix build
* sync works
* save state
* save state
* save state
* allow cmd stages stageSenders use snapshots
* debugging failed hashing
* remove experimental tests
* remove torrent experimental tests
* fix lint
* extract snapshot wrapper
* metainfo checker
* add remote seeder
* add logs
* update gomod
* remove useless code
* fix lint&remove useless code
* extract verify snapshot to separated command
* skip debug test
* fix test
* change type of seedSnapshot flag
* add eth logger to torrent lib
* skip debug test
* add Close method
* review fixes
* fix lint
Co-authored-by: alex.sharov <AskAlexSharov@gmail.com>
Co-authored-by: Alexey Akhunov <akhounov@gmail.com>
This change adds a test framework for the "eth" protocol and some basic
tests. The tests can be run using the './devp2p rlpx eth-test' command.
# Conflicts:
# core/forkid/forkid.go
# eth/discovery.go
# eth/handler.go
# eth/helper_test.go
# eth/protocol_test.go
This change moves the RLPx protocol implementation into a separate package,
p2p/rlpx. The new package can be used to establish RLPx connections for
protocol testing purposes.
Co-authored-by: Felix Lange <fjl@twurst.com>
# Conflicts:
# p2p/rlpx/rlpx.go
# p2p/rlpx/rlpx_test.go
# p2p/server_test.go
* switch receipts to cbor
* switch receipts to cbor
* rpcdaemon to cache chainconfig
* rpcdaemon to cache chainconfig
* rpcdaemon to cache chainconfig
* rpcdaemon to cache chainconfig
* 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
* Add headers persistence
* Print flushBuffer
* Fix indexing problem
* Not skip hard-coded headers if the files are empty
* Fix lint
* print anchor state after init
* Properly construct file names
* Add check sub-command
* Fix lint
* Fix lint
* Fix lint
* Print more info when recovering
* Fix recovering
* Fix recovery
* Add anchors also as tips
* 2-level priority queue for tips
* Initialise tipQueue in anchor
* update maxTipHeight
* fix type
* Add anchors to the anchorQueue and rebuild anchorQueue on deletion
* Fix NPE
* fix recovery
* User buffersize, add hard coded headers to buffer
* Reinit anchorQueue
* Schedule requests after recovery
* No fix
* Remove duplicates
* Report duplicate headers
* Log buffer additions
* Fix for duplicate headers
* Try to fix duplicate headers again
* remove TODO comment
* Use LLRB instead of heap for anchors
* Print reserveTip info
* Correctly replace anchors in the tree
* Remove excessive logging
* Print tips attached to the anchor
* Print tips better
* limitTips instead of reserveTip
* Print forked headers
* Use pointers in llrb
* Print tipStretch
* Print limitTips
* Mininise AnchorItem
* Put anchors into the tree
* Fix totalDiff calculation, but is it needed?
* Remove totalDifficulty from anchors
* CheckInitiation
* Fix tests
* Fix lint, print more at check initiation
* Better output for hard-coded anchors
* Print hard-coded anchors better
* Prioritise anchors with short stretches
* Prioritise by chainSize
* Use linked list instead of heap for requestQueue
* Fix problem of no requests
* Push front
* Fix lint
* Not verify PoW for too far in the past and future
* Fix Calculation of totalDifficulty when Connect
* Fix hard tips
* Another fix for tips
* 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
* Process BlockHeadersMsg
* Print invalidations
* Print reason for parent-child mismatch
* Fix off by one error
* Fix ExtendDown
* Replace tipLimiter with an LRU cache
* Retrieve 256 headers at a time
* Hard coding of tips, process new block hashes
* extract headers
* Write hard-coded headers into a file
* Add total difficulty
* Insert hard coded headers
* Log i
* Initiate download from hard-coded anchors
* Print the state of anchors
* Add hard-coded headers as tips
* Spare the peers
* Refine LRU caching of tips
* Print length of anchor trees
* Limit requests to 192 headers
* range error fix
* Print better, retain at least one tip in the LRU cache
* Skip duplicate line ends
* Throttle requests, display peer name
* Back off, intermediate tip queue
* Print block header timestamp
* Better logging
* Log less
* More logging of evictions
* Fix queue push
* Fix queue pop
* Exclude duplicate tips
* Fix tips logging
* Fix moving
* Add port flag
* Check headers
* Print extra
* Add mixDigest to serialisation
* Fix difficulty in hard-coded headers
* Avoid duplicate header requests
* Update peer characteristics on NewBlockMsg
* Remove backoff when peer responds
* Fix tests
* Fix lint
* Fix lint
* added tls auth
* added client side
* put --tls
* fixed flag
* Add key/cert generation instructions, turn off Common Name verification
* Add CLI arguments and Warning
* Lint
* Update the doc about Internal IP
Co-authored-by: Alexey Akhunov <akhounov@gmail.com>
* 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>
* Use Append for changesets and receipts
* Fix lint
* Delete all receipts on unwind
* Fix lint
* Fix unwind keys for changeset
* Fix test
* Use writeReceipts flag
* Revert to Append
* Delete receipts too when resetting
* First algorithm
* Update doc
* Second algorithm implemented
* Prepend (unfinished)
* More on prepend
* More fixes
* Change CalcDifficulty interface
* fix make test
* Fix formatting
* Another test
* More on Preprend
* Another test for Prepend
* More tests for Prepend
* More tests for Prepend
* Move files to turbo
* Add another test for Prepend
* Started adding Append algorithm
* More work on Append
* Start changing the terminology
* Split trees into segments
* More fixes
* Fix compilation
* Connect
* FindAnchors, FindTip
* Tip has anchor and not anchorParent field
* Remove Prepend and Append
* Add Connect
* NewAnchor algorithm
* More to recovery from files
* Add more to AddAnchor
* Request more headers
* Header fix-sizes serialisation
* Upgrade CI to 1.15
* Fix lint
* Fix lint
* replace RLP with fixed-sized serialisation
* Fix lint
* More algos
* Fix lint
* Cut down the stateGrowth generation
* Fix NPE
* Fix for lastTimestamp
* Adjust to the current state
* Potential fix
* Fix for shorter keys in the state
* Extract code
* Iterate over code
* First
* More on SA interpreter
* Fixup
* Add cfg action to hack binary that invokes the SaInterpreter. Added an operation handler for PUSH1
* refactor cfg tests into separate file
* Move cfg tests into separate file
* More refactoring into new file
* dataflow interpreter
* work on cfg0
* finish cfg0
* df works on base examples
* refactor into dataflow spec
* add bounded stack
* add harder example
* fix switch pass thru
* fix switch pass thru
* bug fix, and better printing
* manual merge
* restore call to test gencfg
* abstract interpretation based cfg analysis
* fix post signature
* use uint256 instead uint64, add post function
* preprocess stmts
* initial implementation of resolve
* fix resolve
* fix resolve
* print stmts for edges
* print stmts for edges
* print states
* print states
* bug fixes, debugging
* fix jumpi dest - first working impl
* reachability analysis to filter out dead edges
* add all transfer functions
* larger contract bytecodes from solc compiler
* simple solidity contract goes thru
* add deposit contract bytecode
* rename deposit contract test
* fix new contract arg
* Address non-determinism leading to imprecise results
* improve debugging output
* improve debugging output
* improve debugging output
* fix for bug causing incorrect analysis results
* fix for bug causing incorrect analysis results
* fix for bug causing incorrect analysis results
* add more test cases
* fix coverage bug
* debugging for non-termination
* fix bad fixpoint check
* fix data inference
* fix transfer function for halting stmts
* switch to deposit contract test, disable debugging
* add anly counter to viz, fix stmt.valid check
* show all preds, adjust anlycounter behavior
* dfs instead of bfs to fail earlier
* viz improvements
* add worklist size to viz
* add test case for private functions
* valueset analysis
* add more checks to fail earlier in the analysis to help debugging, improve debugging output, catch additional bad jumps
* delete old code
* delete old code
* delete old code
* fix up minor changes to jump table
* copy over comments from cgf-1 branch
* remove minor diffs
* add recompiled deposit contract
* graph viz
* cleanup/refactoring
* initial impl of viz
* script to run cfg anly and generate dot file
* div example
* accept bytecode from cmd line
* add minimal deposit contract example
* replace valueset analysis with stackset analysis
* get in sync with master
* sync with master
* fix linting
* fix linting
* fix linting
* reformatting
* fix linting
* fix linting
* fix linting
* fix linting
* fix linting
* fix linting
* fix linting
Co-authored-by: Alexey Akhunov <akhounov@gmail.com>
* v0
* more docs, less customization
* more docs, less customization
* more docs, less customization
* don't store db reference
* rely on fact that lmdb key/value valid until end of transaction
* clean
* clean
* 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
* v0
* v1
* v3
* v4
* clean
* temporary fix of txpool
* Add debug logs about tx start/commit
* Add debug logs about tx start/commit
* Add debug logs about tx start/commit
* add condition
* tx pool to not hold own db
* try to enable TxPool in integration
* exclude tx pool from tx
* exclude tx pool from integration
* reduce limit
* fix integration
* clean
* clean
* clean
* clean
* clean
* exclude tx pool unwind
* exclude tx pool unwind in integration
* fix integration tx pool
* fix commit
* fix current stage after unwind
* fix current stage after unwind
* fix linter
* move unwind of tx_pool after unwind of unwind of senders, then all stages from body to tx_pool will be inside tx.
* move body and headers unwind out of tx
* fix unwind order after reboot
* add support external tx to exec stage
* clean
* clean
* clean
* clean
* clean
* add logs
* better id check
* better id check
* timer-based logs
* timer-based logs
* delegate progress calculation to user
* delegate progress calculation to user
* delegate progress calculation to user
* clear
* add logs to senders recovery
* use default dir in integration
* more logs
* more logs
* 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