* Upgrade rust toolchain to avoid macro-proc issue of latest rust analyzer
* Update random sync metrics
* Adjust default config for sync layer
* Cache the recent announced file for random sync with priority
* Fix clippy
* fix auto sync failure reason issue
* Add cached ready txs info in rpc
* fix lint
* Add shard config in status message
* verify shard config for status message
* Notify peer connected to sync layer after status message exchanged
* Do not dial to shard config mismatched peers
* Upgrade network protocol version
* disconnect peer instead of ban peer if shard config mismatch
* Add python test for TCP connection by shard config
* 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
* 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
* add admin rpc to terminate file or chunks sync
* Disallow to change file sync goal when failed
* split admin rpc into separate endpoints
* Support to launch public and private rpc at one port
* use one rpc port for python test
* fix lint
* restart to sync file or chunks if sync already completed or failed
* refactor p2p signed message
* add new pubsub messages in network layer to find chunks
* handle find chunks pubsub message in router
* Supports to sync partial chunks
* add admin rpc to sync chunks
* limit number of chunks to sync at a time
* refactor code to sync file and chunks
* add more switches to trigger file sync
* fix ut failure
* refactor code