* Only use tx seq for tx status.
* Return the first finalized tx by data root if possible.
This index is used for upload/download segments and file status check.
In all the cases, if there is a finalized transaction, we should use it.
* Supports to randomly sync historical files
* Add name for random file sync batcher
* Remove sync store metrics since multiple random batcher created
* opt log
* ignore pruned or finalized historical file
* Add python tests for historical file sync
* Add new P2P protocol NewFile
* Publish NewFile message when any file finalized
* handle NewFile message in router
* handle NewFile in sync servic to write in db
* use propagation source to handle NewFile message
* Disable sequential sync and store new file in v2 sync store
* Add shard config in FindFile
* Add AnnounceFile RPC message in network layer
* do not propagate FindFile to whole network
* Mark peer connected if FileAnnouncement RPC message received
* fix unit test failures
* Change P2P protocol version
* Ignore py tests of sequential auto sync
* Add py test for auto sync v2
* fmt code
* remove dummy code in py test
* fix random test failure
* Add comments
* Enable file sync protocol v2 in config file by default
* add metrics in log sync package
* udpate auto sync metrics
* Add metrics for completed file sync
* add more metrics for serial file sync
* adjust default timeout value for auto sync
* fix metrics rpc for Timer type
* add metrics for channel
* refactor channel metrics
* add timeout metrics for segment sync
* refactor channel receiver
* Repeat log catch-up until it's close to the latest height.
* Add an oneshot channel to send catch up end complete.
* Fix comments.
* Fix tests.
* Fix ut.
* Change default concurrent sync threads
* enhance log level in sync store
* Add rwlock in sync store to avoid concurrency issue
* enhance serial sync state machine log level
* wrap Instant for debug purpose
* add timestamp for connecting peers state
* Select random peer to sync chunks
* return sync peers states instead of connected peers only
* Use tokio async RwLock for sync store
* Use inner lock in storage.
* Remove mut.
* Remove async lock for storage.
* Fix tests and warnings.
* Use spawn_blocking for storage task.
* Fix clippy.
* Finalize the new tx at last.
* Revert "Finalize the new tx at last."
This reverts commit b56ad5582d.
* Wait for old same-root txs to finalize.
* Use async storage in miner.
* Update rust version to 1.79.0.
* Use Vec to avoid stack overflow.
* Fix unused warning.
* Fix clippy.
* Fix test warning.
* Fix test.
* fmt.
* Use async storage in pruner.
* nit.
* enhance logs for sync module
* report peer if connection timeout
* Use origin timestamp of sync state to determine if sync too long to terminate
* fix compilation error