zebra/zebra-chain/src
teor 04e96c2526
feat(net): Cache a list of useful peers on disk (#6739)
* Rewrite some state cache docs to clarify

* Add a zebra_network::Config.cache_dir for peer address caches

* Add new config test files and fix config test failure message

* Create some zebra-chain and zebra-network convenience functions

* Add methods for reading and writing the peer address cache

* Add cached disk peers to the initial peers list

* Add metrics and logging for loading and storing the peer cache

* Replace log of useless redacted peer IP addresses

* Limit the peer cache minimum and maximum size, don't write empty caches

* Add a cacheable_peers() method to the address book

* Add a peer disk cache updater task to the peer set tasks

* Document that the peer cache is shared by multiple instances unless configured otherwise

* Disable peer cache read/write in disconnected tests

* Make initial peer cache updater sleep shorter for tests

* Add unit tests for reading and writing the peer cache

* Update the task list in the start command docs

* Modify the existing persistent acceptance test to check for peer caches

* Update the peer cache directory when writing test configs

* Add a CacheDir type so the default config can be enabled, but tests can disable it

* Update tests to use the CacheDir config type

* Rename some CacheDir internals

* Add config file test cases for each kind of CacheDir config

* Panic if the config contains invalid socket addresses, rather than continuing

* Add a network directory to state cache directory contents tests

* Add new network.cache_dir config to the config parsing tests
2023-06-06 08:28:14 +00:00
..
amount build(deps): bump insta from 1.15.0 to 1.17.1 (#4884) 2022-08-04 15:44:44 +00:00
block change(utils): Add a direct connection mode to zebra-checkpoints (#6516) 2023-04-26 23:35:53 +00:00
chain_sync_status fix(test): Move test-only code to test-only modules (#5777) 2022-12-08 01:06:11 +00:00
chain_tip change(chain): Refactor the handling of height differences (#6330) 2023-03-29 23:06:31 +00:00
fmt cleanup(clippy): Use inline format strings (#5489) 2022-10-27 13:25:18 +00:00
history_tree refactor(anchorSapling): Change type to force consensus rule validation (#3544) 2022-02-17 03:20:22 +00:00
orchard Delete outdated `TODOs` refering to closed issues (#6732) 2023-05-23 03:33:14 +00:00
parallel 1. fix(perf): Run CPU-intensive state updates in parallel rayon threads (#4802) 2022-07-22 12:19:11 -04:00
parameters feat(net): Cache a list of useful peers on disk (#6739) 2023-06-06 08:28:14 +00:00
primitives feat(rpc): Implement the `z_validateaddress` RPC (#6185) 2023-02-20 21:06:22 +00:00
sapling fix(errors): Handle randomness generation and invalid random values as errors in cryptographic code (#6385) 2023-04-20 17:49:21 +00:00
serialization change(docs): Replaces XXX with TODO (#6417) 2023-03-28 04:13:04 +00:00
sprout build(deps): bump serde from 1.0.156 to 1.0.158 (#6358) 2023-03-22 17:12:34 +00:00
transaction fix(log): Stop logging potentially sensitive user information from unmined transactions (#6616) 2023-05-16 23:55:45 +00:00
transparent fix(rpc): Omit transactions with transparent coinbase spends that are immature at the next block height from block templates (#6510) 2023-04-18 03:43:39 +00:00
value_balance build(deps): bump insta from 1.15.0 to 1.17.1 (#4884) 2022-08-04 15:44:44 +00:00
work Delete outdated `TODOs` refering to closed issues (#6732) 2023-05-23 03:33:14 +00:00
amount.rs feat(rpc): Implement the `getblocksubsidy` RPC (#6032) 2023-01-31 20:41:34 +00:00
block.rs change(utils): Add a direct connection mode to zebra-checkpoints (#6516) 2023-04-26 23:35:53 +00:00
chain_sync_status.rs fix(test): Move test-only code to test-only modules (#5777) 2022-12-08 01:06:11 +00:00
chain_tip.rs change(chain): Refactor the handling of height differences (#6330) 2023-03-29 23:06:31 +00:00
diagnostic.rs fix(ci): improve test output and test reliability (#5014) 2022-09-02 08:54:40 +00:00
error.rs fix(errors): Handle randomness generation and invalid random values as errors in cryptographic code (#6385) 2023-04-20 17:49:21 +00:00
fmt.rs fix(diagnostics): Hex-encode debug format of commitments, nonces, and nullifiers (#5960) 2023-01-17 13:57:22 +00:00
history_tree.rs cleanup(clippy): Use inline format strings (#5489) 2022-10-27 13:25:18 +00:00
lib.rs fix(errors): Handle randomness generation and invalid random values as errors in cryptographic code (#6385) 2023-04-20 17:49:21 +00:00
orchard.rs cleanup(cryptography): Remove unused shielded key and address code (#5476) 2022-10-29 20:59:55 +00:00
parallel.rs 1. fix(perf): Run CPU-intensive state updates in parallel rayon threads (#4802) 2022-07-22 12:19:11 -04:00
parameters.rs Cleanup a few arbitrary impls (#2222) 2021-05-28 09:49:28 -03:00
primitives.rs change(rpc): add validateaddress method (#6086) 2023-02-03 02:26:58 +00:00
sapling.rs cleanup(cryptography): Remove unused shielded key and address code (#5476) 2022-10-29 20:59:55 +00:00
serialization.rs Halborn 2023 02 20 (#6297) 2023-03-13 18:10:15 +00:00
shutdown.rs Fix shutdown panics (#1637) 2021-02-03 19:03:28 +10:00
sprout.rs cleanup(cryptography): Remove unused shielded key and address code (#5476) 2022-10-29 20:59:55 +00:00
transaction.rs feat(mempool): add ZIP-317 rules to mempool (#6556) 2023-05-02 00:13:33 +00:00
transparent.rs change(utils): Add a direct connection mode to zebra-checkpoints (#6516) 2023-04-26 23:35:53 +00:00
value_balance.rs 5. change(rpc): Implement coinbase conversion to RPC `TransactionTemplate` type (#5554) 2022-11-07 17:37:50 +00:00
work.rs Replace primitives_types with uint (#2350) 2021-06-18 15:35:05 -03:00