* Don't use move semantics if not needed (#8793)
* SDK: Deboilerplate `TransportError` with thiserror
* Enable interchange between `TransportError` and `ClientError`
* SDK: Retval consistency between `Client` and `AsyncClient` traits
* Client: Introduce/use `Result` type
* Client: Remove unused `RpcResponseIn` type
* Client: Rename `RpcResponse` to more appropriate `RpcResult`
* Client: Death to `io::Result` return types
* Client: Struct-ify `ClientError`
* Client: Add optional `command` parameter to `ClientError`
* RpcClient: Stop abusing `io::Error` (low-fruit)
* ClientError: Use `thiserror`'s `Display` impl
* Extend `RpcError`'s utility
* RpcClient: Stop abusing `io::Error` (the rest)
* CLI: Shim `main()` so we can `Display` format errors
* claputils: format input validator errors with `Display`
They are intended to be displayed to users
* SDK: `thiserror` for hash and sig parse erros
* Keygen: Shim main to format errors with `Display`
* SDK: `thiserror` for `InstructionError`
* CLI: `thiserror` for `CliError`
* CLI: Format user messages with `Display`
* Client: Tweak `Display` for `ClientError`
* RpcClient: Improve messaging when TX cannot be confirmed
* fu death io res retval
* CLI/Keygen - fix shell return value on error
* Tweak `InstructionError` `Display` messages as per review
* Cleanup hackjob return code fix
* Embrace that which you hate most
* Too much...
Co-authored-by: Jack May <jack@solana.com>
* Add CrdsValue timeout checks on Pull Responses
* Allow older values to enter Crds as long as a ContactInfo exists
* Allow staked contact infos to be inserted into crds if they haven't expired
* Try and handle oveflows
* Fix test
* Some comments
* Fix compile
* fix test deadlock
* Add a test for processing timed out values received via pull response
* save limit deserialize
* save
* Save
* Clean up
* rustfmt
* rustfmt
* Just comment out to please CI
* Fix ci...
* Move code
* Rustfmt
* Crean up control flow
* Add another comment
* Introduce predetermined constant limit on snapshot data files (deserialize side)
* Introduce predetermined constant limit on snapshot data files (serialize side)
* rustfmt
* Tweak message
* Revert dynamic memory limit
* Limit size of snapshot data file (de)serialization
* Fix test breakage
* Clean up
* Fix uses formatting
* Rename: deserialize_{for,from}_snapshot
* Simplify comment
* Use Slot
* Provide slot for status cache
* Align variable name with snapshot_status_cache_file_path
* Define serialize_snapshot_data_file_with_metrics
* Fix build.......
* De-marco serialize_snapshot_data_file_with_metrics
* Revert u64 => Slot
* Pass blocktree into execute_batch, if persist_transaction_status
* Add validator arg to enable persistent transaction status store
* Pass blocktree into banking_stage, if persist_transaction_status
* Add validator params to bash scripts
* Expose actual transaction statuses outside Bank; add tests
* Fix benches
* Offload transaction status writes to a separate thread
* Enable persistent transaction status along with rpc service
* nudge
* Review comments
* Remove the name "blob" from archivers
* Remove the name "blob" from broadcast
* Remove the name "blob" from Cluset Info
* Remove the name "blob" from Repair
* Remove the name "blob" from a bunch more places
* Remove the name "blob" from tests and book
* Remove Blobs and switch to Packets
* Fix some gossip messages not respecting MTU size
* Failure to serialize is not fatal
* Add log macros
* Remove unused extern
* Apparently macro use is required
* Explicitly scope macro
* Fix test compile