* 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
* 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
* Hotfix for python tests caused by unexpected file deletion
* add more info when launch blockchain node failed
* add stdout if blockchain launch failed
* seek stdout and err to 0 if failed to launch blockchain
* Improve zg chain port to avoid port conflict in parallel execution
* fix float issue
* Fix py failures
* 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
Currently we use the config `network_libp2p_nodes` to connect nodes
in the tests. This will not be retried, so if an early node starts
too slowly, other nodes may fail to connect to it.