* 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>