Repository: input-output-hk/mithril
Pull request #515 (2022-09-20 09:00:00)

Update cargo dependencies
## Content
This PR includes updates Cargo dependencies by running `cargo update`



Patch:
diff --git a/Cargo.lock b/Cargo.lock
index 7647c47d8..343ceec51 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -38,6 +38,12 @@ dependencies = [
  "libc",
 ]
 
+[[package]]
+name = "anes"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299"
+
 [[package]]
 name = "ansi_term"
 version = "0.12.1"
@@ -49,9 +55,9 @@ dependencies = [
 
 [[package]]
 name = "anyhow"
-version = "1.0.64"
+version = "1.0.65"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b9a8f622bcf6ff3df478e9deba3e03e4e04b300f8e6a139e192c05fa3490afc7"
+checksum = "98161a4e3e2184da77bb14f02184cdd111e83bbbcc9979dfee3c44b9a85f5602"
 
 [[package]]
 name = "arc-swap"
@@ -306,7 +312,7 @@ version = "0.10.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b9cf849ee05b2ee5fba5e36f97ff8ec2533916700fc0758d40d92136a42f3388"
 dependencies = [
- "digest 0.10.3",
+ "digest 0.10.5",
 ]
 
 [[package]]
@@ -452,6 +458,33 @@ dependencies = [
  "winapi",
 ]
 
+[[package]]
+name = "ciborium"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b0c137568cc60b904a7724001b35ce2630fd00d5d84805fbb608ab89509d788f"
+dependencies = [
+ "ciborium-io",
+ "ciborium-ll",
+ "serde",
+]
+
+[[package]]
+name = "ciborium-io"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "346de753af073cc87b52b2083a506b38ac176a44cfb05497b622e27be899b369"
+
+[[package]]
+name = "ciborium-ll"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "213030a2b5a4e0c0892b6652260cf6ccac84827b83a85a534e178e3906c4cf1b"
+dependencies = [
+ "ciborium-io",
+ "half 1.8.2",
+]
+
 [[package]]
 name = "clap"
 version = "2.34.0"
@@ -469,9 +502,9 @@ dependencies = [
 
 [[package]]
 name = "clap"
-version = "3.2.20"
+version = "3.2.22"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23b71c3ce99b7611011217b366d923f1d0a7e07a92bb2dbf1e84508c673ca3bd"
+checksum = "86447ad904c7fb335a790c9d7fe3d0d971dc523b8ccd1561a520de9a85302750"
 dependencies = [
  "atty",
  "bitflags",
@@ -481,7 +514,7 @@ dependencies = [
  "once_cell",
  "strsim 0.10.0",
  "termcolor",
- "textwrap 0.15.0",
+ "textwrap 0.15.1",
 ]
 
 [[package]]
@@ -616,15 +649,16 @@ dependencies = [
 
 [[package]]
 name = "criterion"
-version = "0.3.6"
+version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b01d6de93b2b6c65e17c634a26653a29d107b3c98c607c765bf38d041531cd8f"
+checksum = "e7c76e09c1aae2bc52b3d2f29e13c6572553b30c4aa1b8a49fd70de6412654cb"
 dependencies = [
+ "anes",
  "atty",
  "cast",
- "clap 2.34.0",
+ "ciborium",
+ "clap 3.2.22",
  "criterion-plot",
- "csv",
  "itertools",
  "lazy_static",
  "num-traits",
@@ -633,7 +667,6 @@ dependencies = [
  "rayon",
  "regex",
  "serde",
- "serde_cbor",
  "serde_derive",
  "serde_json",
  "tinytemplate",
@@ -642,9 +675,9 @@ dependencies = [
 
 [[package]]
 name = "criterion-plot"
-version = "0.4.5"
+version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2673cc8207403546f45f5fd319a974b1e6983ad1a3ee7e6041650013be041876"
+checksum = "6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1"
 dependencies = [
  "cast",
  "itertools",
@@ -810,9 +843,9 @@ dependencies = [
 
 [[package]]
 name = "digest"
-version = "0.10.3"
+version = "0.10.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f2fb860ca6fafa5552fb6d0e816a69c8e49f0908bf524e30a90d97c85892d506"
+checksum = "adfbc57365a37acbd2ebf2b64d7e69bb766e2fea813521ed536f5d0520dcf86c"
 dependencies = [
  "block-buffer 0.10.3",
  "crypto-common",
@@ -1401,9 +1434,9 @@ dependencies = [
 
 [[package]]
 name = "iana-time-zone"
-version = "0.1.47"
+version = "0.1.48"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c495f162af0bf17656d0014a0eded5f3cd2f365fdd204548c2869db89359dc7"
+checksum = "237a0714f28b1ee39ccec0770ccb544eb02c9ef2c82bb096230eefcffa6468b0"
 dependencies = [
  "android_system_properties",
  "core-foundation-sys",
@@ -1486,9 +1519,9 @@ dependencies = [
 
 [[package]]
 name = "itertools"
-version = "0.10.3"
+version = "0.10.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a9a9d19fa1e79b6215ff29b9d6880b706147f16e9b1dbb1e4e5947b5b02bc5e3"
+checksum = "d8bf247779e67a9082a4790b45e71ac7cfd1321331a5c856a74a9faebdab78d0"
 dependencies = [
  "either",
 ]
@@ -1507,9 +1540,9 @@ checksum = "6c8af84674fe1f223a982c933a0ee1086ac4d4052aa0fb8060c12c6ad838e754"
 
 [[package]]
 name = "js-sys"
-version = "0.3.59"
+version = "0.3.60"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "258451ab10b34f8af53416d1fdab72c22e805f0c92a1136d59470ec0b11138b2"
+checksum = "49409df3e3bf0856b916e2ceaca09ee28e6871cf7d9ce97a692cacfdb2a25a47"
 dependencies = [
  "wasm-bindgen",
 ]
@@ -1623,9 +1656,9 @@ checksum = "db13adb97ab515a3691f56e4dbab09283d0b86cb45abd991d8634a9d6f501760"
 
 [[package]]
 name = "libc"
-version = "0.2.132"
+version = "0.2.133"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8371e4e5341c3a96db127eb2465ac681ced4c433e01dd0e938adbef26ba93ba5"
+checksum = "c0f80d65747a3e43d1596c7c5492d95d5edddaabd45a7fcdb02b95f644164966"
 
 [[package]]
 name = "libnghttp2-sys"
@@ -1752,7 +1785,7 @@ dependencies = [
  "num-traits",
  "proptest",
  "rand_chacha 0.3.1",
- "rand_core 0.6.3",
+ "rand_core 0.6.4",
  "rayon",
  "rug",
  "serde",
@@ -1765,7 +1798,7 @@ version = "0.1.0"
 dependencies = [
  "async-trait",
  "chrono",
- "clap 3.2.20",
+ "clap 3.2.22",
  "cloud-storage",
  "config",
  "flate2",
@@ -1796,7 +1829,7 @@ name = "mithril-client"
 version = "0.1.0"
 dependencies = [
  "async-trait",
- "clap 3.2.20",
+ "clap 3.2.22",
  "cli-table",
  "config",
  "flate2",
@@ -1835,11 +1868,11 @@ dependencies = [
  "nom",
  "rand_chacha 0.2.2",
  "rand_chacha 0.3.1",
- "rand_core 0.6.3",
+ "rand_core 0.6.4",
  "serde",
  "serde_json",
  "serde_yaml",
- "sha2 0.10.5",
+ "sha2 0.10.6",
  "slog",
  "slog-scope",
  "sqlite",
@@ -1854,7 +1887,7 @@ name = "mithril-end-to-end"
 version = "0.1.0"
 dependencies = [
  "async-trait",
- "clap 3.2.20",
+ "clap 3.2.22",
  "glob",
  "hex",
  "mithril-common",
@@ -1876,7 +1909,7 @@ name = "mithril-signer"
 version = "0.1.0"
 dependencies = [
  "async-trait",
- "clap 3.2.20",
+ "clap 3.2.22",
  "config",
  "hex",
  "httpmock",
@@ -1884,7 +1917,7 @@ dependencies = [
  "mithril-common",
  "mockall",
  "rand_chacha 0.3.1",
- "rand_core 0.6.3",
+ "rand_core 0.6.4",
  "reqwest",
  "serde",
  "serde_json",
@@ -1902,12 +1935,12 @@ name = "mithrildemo"
 version = "0.1.0"
 dependencies = [
  "base64 0.13.0",
- "clap 3.2.20",
+ "clap 3.2.22",
  "hex",
  "log",
  "mithril-common",
  "rand_chacha 0.3.1",
- "rand_core 0.6.3",
+ "rand_core 0.6.4",
  "serde",
  "serde_json",
 ]
@@ -2255,9 +2288,9 @@ checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e"
 
 [[package]]
 name = "pest"
-version = "2.3.0"
+version = "2.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4b0560d531d1febc25a3c9398a62a71256c0178f2e3443baedd9ad4bb8c9deb4"
+checksum = "cb779fcf4bb850fbbb0edc96ff6cf34fd90c4b1a112ce042653280d9a7364048"
 dependencies = [
  "thiserror",
  "ucd-trie",
@@ -2265,9 +2298,9 @@ dependencies = [
 
 [[package]]
 name = "pest_derive"
-version = "2.3.0"
+version = "2.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "905708f7f674518498c1f8d644481440f476d39ca6ecae83319bba7c6c12da91"
+checksum = "502b62a6d0245378b04ffe0a7fb4f4419a4815fce813bd8a0ec89a56e07d67b1"
 dependencies = [
  "pest",
  "pest_generator",
@@ -2275,9 +2308,9 @@ dependencies = [
 
 [[package]]
 name = "pest_generator"
-version = "2.3.0"
+version = "2.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5803d8284a629cc999094ecd630f55e91b561a1d1ba75e233b00ae13b91a69ad"
+checksum = "451e629bf49b750254da26132f1a5a9d11fd8a95a3df51d15c4abd1ba154cb6c"
 dependencies = [
  "pest",
  "pest_meta",
@@ -2288,13 +2321,13 @@ dependencies = [
 
 [[package]]
 name = "pest_meta"
-version = "2.3.0"
+version = "2.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1538eb784f07615c6d9a8ab061089c6c54a344c5b4301db51990ca1c241e8c04"
+checksum = "bcec162c71c45e269dfc3fc2916eaeb97feab22993a21bcce4721d08cd7801a6"
 dependencies = [
  "once_cell",
  "pest",
- "sha-1 0.10.0",
+ "sha1",
 ]
 
 [[package]]
@@ -2539,7 +2572,7 @@ checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
 dependencies = [
  "libc",
  "rand_chacha 0.3.1",
- "rand_core 0.6.3",
+ "rand_core 0.6.4",
 ]
 
 [[package]]
@@ -2559,7 +2592,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
 dependencies = [
  "ppv-lite86",
- "rand_core 0.6.3",
+ "rand_core 0.6.4",
 ]
 
 [[package]]
@@ -2573,9 +2606,9 @@ dependencies = [
 
 [[package]]
 name = "rand_core"
-version = "0.6.3"
+version = "0.6.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7"
+checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
 dependencies = [
  "getrandom 0.2.7",
 ]
@@ -2595,7 +2628,7 @@ version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f"
 dependencies = [
- "rand_core 0.6.3",
+ "rand_core 0.6.4",
 ]
 
 [[package]]
@@ -2861,16 +2894,6 @@ dependencies = [
  "serde",
 ]
 
-[[package]]
-name = "serde_cbor"
-version = "0.11.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2bef2ebfde456fb76bbcf9f59315333decc4fda0b2b44b420243c11e0f5ec1f5"
-dependencies = [
- "half 1.8.2",
- "serde",
-]
-
 [[package]]
 name = "serde_derive"
 version = "1.0.144"
@@ -2917,9 +2940,9 @@ dependencies = [
 
 [[package]]
 name = "serde_yaml"
-version = "0.9.11"
+version = "0.9.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89f31df3f50926cdf2855da5fd8812295c34752cb20438dae42a67f79e021ac3"
+checksum = "8613d593412a0deb7bbd8de9d908efff5a0cb9ccd8f62c641e7b2ed2f57291d1"
 dependencies = [
  "indexmap",
  "itoa 1.0.3",
@@ -2941,26 +2964,15 @@ dependencies = [
  "opaque-debug",
 ]
 
-[[package]]
-name = "sha-1"
-version = "0.10.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "028f48d513f9678cda28f6e4064755b3fbb2af6acd672f2c209b62323f7aea0f"
-dependencies = [
- "cfg-if",
- "cpufeatures",
- "digest 0.10.3",
-]
-
 [[package]]
 name = "sha1"
-version = "0.10.4"
+version = "0.10.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "006769ba83e921b3085caa8334186b00cf92b4cb1a6cf4632fbccc8eff5c7549"
+checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3"
 dependencies = [
  "cfg-if",
  "cpufeatures",
- "digest 0.10.3",
+ "digest 0.10.5",
 ]
 
 [[package]]
@@ -2978,13 +2990,13 @@ dependencies = [
 
 [[package]]
 name = "sha2"
-version = "0.10.5"
+version = "0.10.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf9db03534dff993187064c4e0c05a5708d2a9728ace9a8959b77bedf415dac5"
+checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0"
 dependencies = [
  "cfg-if",
  "cpufeatures",
- "digest 0.10.3",
+ "digest 0.10.5",
 ]
 
 [[package]]
@@ -3008,9 +3020,9 @@ dependencies = [
 
 [[package]]
 name = "signature"
-version = "1.6.0"
+version = "1.6.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f0ea32af43239f0d353a7dd75a22d94c329c8cdaafdcb4c1c1335aa10c298a4a"
+checksum = "deb766570a2825fa972bceff0d195727876a9cdf2460ab2e52d455dc2de47fd9"
 
 [[package]]
 name = "similar"
@@ -3230,9 +3242,9 @@ checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601"
 
 [[package]]
 name = "syn"
-version = "1.0.99"
+version = "1.0.100"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "58dbef6ec655055e20b86b15a8cc6d439cca19b667537ac6a1369572d151ab13"
+checksum = "52205623b1b0f064a4e71182c3b18ae902267282930c6d5462c91b859668426e"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -3319,24 +3331,24 @@ dependencies = [
 
 [[package]]
 name = "textwrap"
-version = "0.15.0"
+version = "0.15.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1141d4d61095b28419e22cb0bbf02755f5e54e0526f97f1e3d1d160e60885fb"
+checksum = "949517c0cf1bf4ee812e2e07e08ab448e3ae0d23472aee8a06c985f0c8815b16"
 
 [[package]]
 name = "thiserror"
-version = "1.0.34"
+version = "1.0.35"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8c1b05ca9d106ba7d2e31a9dab4a64e7be2cce415321966ea3132c49a656e252"
+checksum = "c53f98874615aea268107765aa1ed8f6116782501d18e53d08b471733bea6c85"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.34"
+version = "1.0.35"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e8f2591983642de85c921015f3f070c665a197ed69e417af436115e3a1407487"
+checksum = "f8b463991b4eab2d801e724172285ec4195c650e8ec79b149e6c2a8e6dd3f783"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -3426,9 +3438,9 @@ checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c"
 
 [[package]]
 name = "tokio"
-version = "1.21.0"
+version = "1.21.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89797afd69d206ccd11fb0ea560a44bbb87731d020670e79416d442919257d42"
+checksum = "0020c875007ad96677dcc890298f4b942882c5d4eb7cc8f439fc3bf813dc9c95"
 dependencies = [
  "autocfg",
  "bytes",
@@ -3468,9 +3480,9 @@ dependencies = [
 
 [[package]]
 name = "tokio-stream"
-version = "0.1.9"
+version = "0.1.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "df54d54117d6fdc4e4fea40fe1e4e566b3505700e148a6827e59b34b0d2600d9"
+checksum = "f6edf2d6bc038a43d31353570e27270603f4648d18f5ed10c0e179abe43255af"
 dependencies = [
  "futures-core",
  "pin-project-lite",
@@ -3595,7 +3607,7 @@ dependencies = [
  "httparse",
  "log",
  "rand 0.8.5",
- "sha-1 0.9.8",
+ "sha-1",
  "thiserror",
  "url",
  "utf-8",
@@ -3639,42 +3651,42 @@ checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992"
 
 [[package]]
 name = "unicode-ident"
-version = "1.0.3"
+version = "1.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c4f5b37a154999a8f3f98cc23a628d850e154479cd94decf3414696e12e31aaf"
+checksum = "dcc811dc4066ac62f84f11307873c4850cb653bfa9b1719cee2bd2204a4bc5dd"
 
 [[package]]
 name = "unicode-normalization"
-version = "0.1.21"
+version = "0.1.22"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "854cbdc4f7bc6ae19c820d44abdc3277ac3e1b2b93db20a636825d9322fb60e6"
+checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
 dependencies = [
  "tinyvec",
 ]
 
 [[package]]
 name = "unicode-segmentation"
-version = "1.9.0"
+version = "1.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7e8820f5d777f6224dc4be3632222971ac30164d4a258d595640799554ebfd99"
+checksum = "0fdbf052a0783de01e944a6ce7a8cb939e295b1e7be835a1112c3b9a7f047a5a"
 
 [[package]]
 name = "unicode-width"
-version = "0.1.9"
+version = "0.1.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973"
+checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"
 
 [[package]]
 name = "unicode-xid"
-version = "0.2.3"
+version = "0.2.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "957e51f3646910546462e67d5f7599b9e4fb8acdd304b087a6494730f9eebf04"
+checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c"
 
 [[package]]
 name = "unsafe-libyaml"
-version = "0.2.2"
+version = "0.2.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "931179334a56395bcf64ba5e0ff56781381c1a5832178280c7d7f91d1679aeb0"
+checksum = "c1e5fa573d8ac5f1a856f8d7be41d390ee973daf97c806b2c1a465e4e1406e68"
 
 [[package]]
 name = "untrusted"
@@ -3819,9 +3831,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
 
 [[package]]
 name = "wasm-bindgen"
-version = "0.2.82"
+version = "0.2.83"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fc7652e3f6c4706c8d9cd54832c4a4ccb9b5336e2c3bd154d5cccfbf1c1f5f7d"
+checksum = "eaf9f5aceeec8be17c128b2e93e031fb8a4d469bb9c4ae2d7dc1888b26887268"
 dependencies = [
  "cfg-if",
  "wasm-bindgen-macro",
@@ -3829,9 +3841,9 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-backend"
-version = "0.2.82"
+version = "0.2.83"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "662cd44805586bd52971b9586b1df85cdbbd9112e4ef4d8f41559c334dc6ac3f"
+checksum = "4c8ffb332579b0557b52d268b91feab8df3615f265d5270fec2a8c95b17c1142"
 dependencies = [
  "bumpalo",
  "log",
@@ -3844,9 +3856,9 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-futures"
-version = "0.4.32"
+version = "0.4.33"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fa76fb221a1f8acddf5b54ace85912606980ad661ac7a503b4570ffd3a624dad"
+checksum = "23639446165ca5a5de86ae1d8896b737ae80319560fbaa4c2887b7da6e7ebd7d"
 dependencies = [
  "cfg-if",
  "js-sys",
@@ -3856,9 +3868,9 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro"
-version = "0.2.82"
+version = "0.2.83"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b260f13d3012071dfb1512849c033b1925038373aea48ced3012c09df952c602"
+checksum = "052be0f94026e6cbc75cdefc9bae13fd6052cdcaf532fa6c45e7ae33a1e6c810"
 dependencies = [
  "quote",
  "wasm-bindgen-macro-support",
@@ -3866,9 +3878,9 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro-support"
-version = "0.2.82"
+version = "0.2.83"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5be8e654bdd9b79216c2929ab90721aa82faf65c48cdf08bdc4e7f51357b80da"
+checksum = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -3879,15 +3891,15 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-shared"
-version = "0.2.82"
+version = "0.2.83"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6598dd0bd3c7d51095ff6531a5b23e02acdc81804e30d8f07afb77b7215a140a"
+checksum = "1c38c045535d93ec4f0b4defec448e4291638ee608530863b1e2ba115d4fff7f"
 
 [[package]]
 name = "web-sys"
-version = "0.3.59"
+version = "0.3.60"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed055ab27f941423197eb86b2035720b1a3ce40504df082cac2ecc6ed73335a1"
+checksum = "bcda906d8be16e728fd5adc5b729afad4e444e106ab28cd1c7256e54fa61510f"
 dependencies = [
  "js-sys",
  "wasm-bindgen",
diff --git a/docs/root/manual/developer-docs/nodes/mithril-aggregator.md b/docs/root/manual/developer-docs/nodes/mithril-aggregator.md
index 33a355453..00d78053d 100644
--- a/docs/root/manual/developer-docs/nodes/mithril-aggregator.md
+++ b/docs/root/manual/developer-docs/nodes/mithril-aggregator.md
@@ -6,7 +6,7 @@ sidebar_position: 1
 
 :::info
 
-This is the node of the **Mithril Network** responsible for collecting individual signatures from the **Mithril Signers** and aggregate them into a multi-signature. The **Mithril Aggregator** uses this ability to provide certified snapshots of the **Cardano** blockchain.
+This is the node of the **Mithril Network** responsible for collecting individual signatures from the **Mithril Signers** and aggregate them into a multisignature. The **Mithril Aggregator** uses this ability to provide certified snapshots of the **Cardano** blockchain.
 
 :::
 
@@ -22,9 +22,9 @@ This is the node of the **Mithril Network** responsible for collecting individua
 
 The [Mithril test networks](../../../manual/developer-docs/references.md#mithril-networks) are:
 
-* `preview`: Test network with magic id `2`, implemented on the IOG hosted Mithril Aggregator
+* `preview`: Test network with magic id `2`, implemented on the IOG hosted Mitril Aggregator
 * `preprod`: Test network with magic id `1`, not implemented yet on the IOG hosted Mithril Aggregator
-* `testnet`: Legacy test network with magic id `1097911063`, used to be on the IOG hosted Mithril Aggregator, now deprecated
+* `testnet`: Legacy test network with magic id `1097911063`, used to be on the IOG hosted Mitril Aggregator, now deprecated
 
 In this documentation, we use the generic `testnet` identifier, but you need to replace it with the identifier of the network that runs on your Cardano node
 
@@ -275,7 +275,7 @@ Here are the subcommands available:
 | **serve** | Aggregator runs its HTTP server in nominal mode and orchestrates multi signatures production |
 | **help** | Print this message or the help of the given subcommand(s) |
 | **genesis export** | Export genesis payload to sign with genesis secret key |
-| **genesis import** | Import genesis signature (payload signed with genesis secret key) and create & import a genesis certificate in the store |
+| **genesis import** | Import genesis signature (paylod signed with genesis secret key) and create & import a genesis certificate in the store |
 | **genesis bootstrap** | Bootstrap a genesis certificate (test only usage) |
 
 ## Configuration parameters
@@ -283,7 +283,7 @@ Here are the subcommands available:
 The configuration parameters are set either:
 
 * In a configuration file (depending on the `--run-mode` parameter). If runtime mode is `testnet` the file is located in `./conf/testnet.json`.
-* The value can be overridden by an environment variable whose name is the parameter name uppercased.
+* The value can be overriden by an environment variable whose name is the parameter name uppercased.
 
 Here is a list of the available parameters:
 
@@ -291,7 +291,7 @@ Here is a list of the available parameters:
 |-----------|---------------------|:---------------------:|----------------------|-------------|---------------|---------|:---------:|
 | `server_ip` | `--server-ip` | - | `SERVER_IP` | Listening server IP | `0.0.0.0` | - | :heavy_check_mark: |  
 | `server_port` | `--server-port` | - | `SERVER_PORT` | Listening server port | `8080` | - | :heavy_check_mark: |
-| `verbose` | `--verbose` | `-v` | `VERBOSE` | Verbosity level | - | Parsed from number of occurrences: `-v` for `Warning`, `-vv` for `Info`, `-vvv` for `Debug` and `-vvvv` for `Trace` | :heavy_check_mark: |
+| `verbose` | `--verbose` | `-v` | `VERBOSE` | Verbosity level | - | Parsed from number of occurences: `-v` for `Warning`, `-vv` for `Info`, `-vvv` for `Debug` and `-vvvv` for `Trace` | :heavy_check_mark: |
 | `run_mode` | `--run-mode` | `-r` | `RUN_MODE` | Runtime mode | `dev` | - | :heavy_check_mark: |
 | `db_directory` | `--db-directory` | - | `DB_DIRECTORY` | Directory to snapshot from the **Cardano Node** | `/db` | - | :heavy_check_mark: |
 | `snapshot_directory` | `--snapshot-directory` | - | `SNAPSHOT_DIRECTORY` | Directory to store local snapshots of the **Cardano Node** | `.` | - | :heavy_check_mark: |
@@ -301,10 +301,9 @@ Here is a list of the available parameters:
 | `snapshot_store_type` | - | - | `SNAPSHOT_STORE_TYPE` | Type of snapshot store to use | - | `gcp` or `local` | :heavy_check_mark: |
 | `snapshot_uploader_type` | - | - | `SNAPSHOT_UPLOADER_TYPE` | Type of snapshot uploader to use | - | `gcp` or `local` | :heavy_check_mark: |
 | `run_interval` | - | - | `RUN_INTERVAL` | Interval between two runtime cycles in ms | - | `60000` | :heavy_check_mark: |
-| `data_stores_directory` | - | - | `data_stores_directory` | Directory to store Aggregator data (Certificates, Snapshots, Protocol Parameters, ...) | - | `./mithril-aggregator/stores` | :heavy_check_mark: |
+| `data_stores_directory` | - | - | `data_stores_directory` | Directory to store aggregator data (Certificates, Snapshots, Protocol Parameters, ...) | - | `./mithril-aggregator/stores` | :heavy_check_mark: |
 | `cardano_cli_path` | - | - | `CARDANO_CLI_PATH` | Cardano CLI tool path | - | `cardano-cli` | :heavy_check_mark: |
 | `cardano_node_socket_path` | - | - | `CARDANO_NODE_SOCKET_PATH` | Path of the socket used by the Cardano CLI tool to communicate with the Cardano node | - | `/tmp/cardano.sock` | :heavy_check_mark: |
 | `url_snapshot_manifest` | - | - | `URL_SNAPSHOT_MANIFEST` | Snapshots manifest location | - | Only if `snapshot_store_type` is `gcp`, else it should be `` | :heavy_check_mark: |
 | `genesis_verification_key` | - | - | `GENESIS_VERIFICATION_KEY` | Genesis verification key | - | - | :heavy_check_mark: |
 | `genesis_secret_key` | - | - | `GENESIS_SECRET_KEY` | Genesis secret key, :warning: for test only | - | - | - |
-| `store_retention_limit` | - | - | `STORE_RETENTION_LIMIT` | Maximum number of records in stores. If not set, no limit is set. | - | - | - |
diff --git a/docs/root/manual/developer-docs/nodes/mithril-signer.md b/docs/root/manual/developer-docs/nodes/mithril-signer.md
index f27ea1c87..982aa9253 100644
--- a/docs/root/manual/developer-docs/nodes/mithril-signer.md
+++ b/docs/root/manual/developer-docs/nodes/mithril-signer.md
@@ -173,13 +173,13 @@ make docker-run
 The configuration parameters are set either:
 
 * In a configuration file (depending on the `--run-mode` parameter). If runtime mode is `testnet` the file is located in `./conf/testnet.json`.
-* The value can be overridden by an environment variable whose name is the parameter name uppercased.
+* The value can be overriden by an environment variable whose name is the parameter name uppercased.
 
 Here is a list of the available parameters:
 
 | Parameter | Command Line (long) |  Command Line (short) | Environment Variable | Description | Default Value | Example | Mandatory |
 |-----------|---------------------|:---------------------:|----------------------|-------------|---------------|---------|:---------:|
-| `verbose` | `--verbose` | `-v` | `VERBOSE` | Verbosity level | - | Parsed from number of occurrences: `-v` for `Warning`, `-vv` for `Info`, `-vvv` for `Debug` and `-vvvv` for `Trace` | :heavy_check_mark: |
+| `verbose` | `--verbose` | `-v` | `VERBOSE` | Verbosity level | - | Parsed from number of occurences: `-v` for `Warning`, `-vv` for `Info`, `-vvv` for `Debug` and `-vvvv` for `Trace` | :heavy_check_mark: |
 | `run_mode` | `--run-mode` | `-r` | `RUN_MODE` | Runtime mode | `dev` | - | :heavy_check_mark: |
 | `db_directory` | `--db-directory` | - | `DB_DIRECTORY` | Directory to snapshot from the **Cardano Node** | `/db` | - | :heavy_check_mark: |
 | `network` | - | - | `NETWORK` | Cardano network | - | `testnet` or `mainnet` or `devnet` | :heavy_check_mark: |
@@ -188,4 +188,3 @@ Here is a list of the available parameters:
 | `run_interval` | - | - | `RUN_INTERVAL` | Interval between two runtime cycles in ms | - | `60000` | :heavy_check_mark: |
 | `aggregator_endpoint` | - | - | `AGGREGATOR_ENDPOINT` | Aggregator node endpoint | - | `https://aggregator.api.mithril.network/aggregator` | :heavy_check_mark: |
 | `data_stores_directory` | - | - | `DATA_STORES_DIRECTORY` | Directory to store signer data (Stakes, Protocol initializers, ...) | - | `./mithril-signer/stores` | :heavy_check_mark: |
-| `store_retention_limit` | - | - | `STORE_RETENTION_LIMIT` | Maximum number of records in stores. If not set, no limit is set. | - | - | - |
diff --git a/docs/root/manual/developer-docs/references.md b/docs/root/manual/developer-docs/references.md
index a88381441..4d6c04c9c 100644
--- a/docs/root/manual/developer-docs/references.md
+++ b/docs/root/manual/developer-docs/references.md
@@ -8,7 +8,7 @@ Welcome to the Mithril API references doc!
 
 :::info
 
-This page gathers the external developer documentations available for Mithril. They are intended for a technical audience only.
+This page gathers the exernal developer documentations available for Mithril. They are intended for a technical audience only.
 
 :::
 
diff --git a/docs/root/manual/getting-started/run-signer-node.md b/docs/root/manual/getting-started/run-signer-node.md
index 31dc287d4..7c66bb211 100644
--- a/docs/root/manual/getting-started/run-signer-node.md
+++ b/docs/root/manual/getting-started/run-signer-node.md
@@ -150,7 +150,6 @@ Replace this value with the correct user. We assume that the user used to run th
   * `CARDANO_NODE_SOCKET_PATH=/cardano/ipc/node.socket`: replace with the path to the IPC file (`CARDANO_NODE_SOCKET_PATH` env var)
   * `CARDANO_CLI_PATH=/app/bin/cardano-cli`: replace with the path to the `cardano-cli` executable
   * `DATA_STORES_DIRECTORY=/opt/mithril/mithril-signer/stores`: replace with the path to a folder where the **Mithril Signer** will store its data (`/opt/mithril/mithril-signer/stores` e.g.)
-  * `STORE_RETENTION_LIMIT`: if set, this will limit the number of records in some internal stores (5 is a good fit).
 
 :::
 
@@ -161,12 +160,10 @@ sudo cat > /opt/mithril/mithril-signer.env << EOF
 PARTY_ID=YOUR_POOL_ID_BECH32
 NETWORK=testnet
 AGGREGATOR_ENDPOINT=https://aggregator.api.mithril.network/aggregator
-RUN_INTERVAL=60000
-DB_DIRECTORY=/cardano/db
+RUN_INTERVAL=60000 DB_DIRECTORY=/cardano/db
 CARDANO_NODE_SOCKET_PATH=/cardano/ipc/node.socket
 CARDANO_CLI_PATH=/app/bin/cardano-cli
 DATA_STORES_DIRECTORY=/opt/mithril/mithril-signer/stores
-STORE_RETENTION_LIMIT=5
 EOF
 ```
 
diff --git a/docs/root/manual/welcome.md b/docs/root/manual/welcome.md
index 82fd6badd..f9b9cfa64 100644
--- a/docs/root/manual/welcome.md
+++ b/docs/root/manual/welcome.md
@@ -23,7 +23,7 @@ This node is in charge of **producing single signatures that are then combined i
 
 * **Mithril Client**:
 
-This node is in charge of **verifying and restoring a snapshot** that will allow a lightning fast bootstrapping of a Cardano full node.
+This node is in charge of **verifying and restoring a snapshot** that will allow a lightning fast boostrapping of a Cardano full node.
 
 :::tip
 
diff --git a/docs/root/mithril/mithril-network/aggregator.md b/docs/root/mithril/mithril-network/aggregator.md
index bfcfc6595..95f6b3468 100644
--- a/docs/root/mithril/mithril-network/aggregator.md
+++ b/docs/root/mithril/mithril-network/aggregator.md
@@ -39,7 +39,7 @@ An important fact is that the **Mithril Aggregator** is trustless:
 
 * Anyone could run an aggregator on the network.
 
-* It does not broadcast any _sensitive_ information (such as the _message_ that needs to be signed). The signer nodes are responsible for computing these information directy from a **Cardano Node** on top of which they run.
+* It does not brodcast any _sensitive_ information (such as the _message_ that needs to be signed). The signer nodes are responsible for computing these information directy from a **Cardano Node** on top of which they run.
 
 Also, in order to aggregate single signatures into **Mithril multi signatures**, the *_Mithril Aggregator_ does not need to represent any share of the total stakes of the **Cardano Network**.
 
@@ -47,7 +47,7 @@ Also, in order to aggregate single signatures into **Mithril multi signatures**,
 
 The **Mithril Aggregator** is in charge of producing the **Mithril multi signatures** and their associated certificates for a part and/or all of the ledger state (the snapshots):
 
-* The previously registered **Mithril Signers** are able to produce individual signatures. They send these individual signatures to the **Mithril Aggregator** that checks their validity and then store them.
+* The previously registered **Mithril Signers** are able to produce individual signatures. They send these individual signatures to the **Mithril Aggregator** that checks their validaty and then store them.
 
 * Once the **quorum** of individual signatures has been reached, the **Mithril Aggregator** is able to produce a multi signature.
 
diff --git a/mithril-aggregator/config/preview.json b/mithril-aggregator/config/preview.json
index 1c4018702..3400a3cb6 100644
--- a/mithril-aggregator/config/preview.json
+++ b/mithril-aggregator/config/preview.json
@@ -12,6 +12,5 @@
     "snapshot_store_type": "local",
     "snapshot_uploader_type": "gcp",
     "stores_directory": "./mithril-aggregator/stores",
-    "genesis_verification_key": "5b3132372c37332c3132342c3136312c362c3133372c3133312c3231332c3230372c3131372c3139382c38352c3137362c3139392c3136322c3234312c36382c3132332c3131392c3134352c31332c3233322c3234332c34392c3232392c322c3234392c3230352c3230352c33392c3233352c34345d",
-    "limit_keys_in_stores": 5
+    "genesis_verification_key": "5b3132372c37332c3132342c3136312c362c3133372c3133312c3231332c3230372c3131372c3139382c38352c3137362c3139392c3136322c3234312c36382c3132332c3131392c3134352c31332c3233322c3234332c34392c3232392c322c3234392c3230352c3230352c33392c3233352c34345d"
 }
\ No newline at end of file
diff --git a/mithril-aggregator/src/configuration.rs b/mithril-aggregator/src/configuration.rs
index 40ad33210..fc070f086 100644
--- a/mithril-aggregator/src/configuration.rs
+++ b/mithril-aggregator/src/configuration.rs
@@ -64,12 +64,6 @@ pub struct Configuration {
 
     /// Genesis verification key
     pub genesis_verification_key: String,
-
-    /// Max number of records in stores.
-    /// When new records are added, oldest records are automatically deleted so
-    /// there can always be at max the number of records specified by this
-    /// setting.
-    pub store_retention_limit: Option<usize>,
 }
 
 /// Snapshot store type enumerates the different kinds of snapshot stores.
diff --git a/mithril-aggregator/src/dependency.rs b/mithril-aggregator/src/dependency.rs
index 3e27206e6..337d8c563 100644
--- a/mithril-aggregator/src/dependency.rs
+++ b/mithril-aggregator/src/dependency.rs
@@ -199,7 +199,6 @@ pub mod tests {
             snapshot_directory: PathBuf::new(),
             data_stores_directory: PathBuf::new(),
             genesis_verification_key: key_encode_hex(&genesis_verification_key).unwrap(),
-            store_retention_limit: None,
         };
         let snapshot_store = Arc::new(LocalSnapshotStore::new(
             Box::new(MemoryAdapter::new(None).unwrap()),
@@ -212,22 +211,16 @@ pub mod tests {
         let certificate_store = Arc::new(CertificateStore::new(Box::new(
             MemoryAdapter::new(None).unwrap(),
         )));
-        let verification_key_store = Arc::new(VerificationKeyStore::new(
-            Box::new(MemoryAdapter::new(None).unwrap()),
-            config.store_retention_limit,
-        ));
-        let stake_store = Arc::new(StakeStore::new(
-            Box::new(MemoryAdapter::new(None).unwrap()),
-            config.store_retention_limit,
-        ));
-        let single_signature_store = Arc::new(SingleSignatureStore::new(
-            Box::new(MemoryAdapter::new(None).unwrap()),
-            config.store_retention_limit,
-        ));
-        let protocol_parameters_store = Arc::new(ProtocolParametersStore::new(
-            Box::new(MemoryAdapter::new(None).unwrap()),
-            None,
-        ));
+        let verification_key_store = Arc::new(VerificationKeyStore::new(Box::new(
+            MemoryAdapter::new(None).unwrap(),
+        )));
+        let stake_store = Arc::new(StakeStore::new(Box::new(MemoryAdapter::new(None).unwrap())));
+        let single_signature_store = Arc::new(SingleSignatureStore::new(Box::new(
+            MemoryAdapter::new(None).unwrap(),
+        )));
+        let protocol_parameters_store = Arc::new(ProtocolParametersStore::new(Box::new(
+            MemoryAdapter::new(None).unwrap(),
+        )));
         let multi_signer = MultiSignerImpl::new(
             verification_key_store.clone(),
             stake_store.clone(),
diff --git a/mithril-aggregator/src/main.rs b/mithril-aggregator/src/main.rs
index 63dda1b11..e21c7d2af 100644
--- a/mithril-aggregator/src/main.rs
+++ b/mithril-aggregator/src/main.rs
@@ -50,28 +50,21 @@ async fn main() -> Result<(), Box<dyn Error>> {
         "certificate",
         sqlite_db_path.clone(),
     )?)));
-    let verification_key_store = Arc::new(VerificationKeyStore::new(
-        Box::new(SQLiteAdapter::new(
-            "verification_key",
-            sqlite_db_path.clone(),
-        )?),
-        config.store_retention_limit,
-    ));
-    let stake_store = Arc::new(StakeStore::new(
-        Box::new(SQLiteAdapter::new("stake", sqlite_db_path.clone())?),
-        config.store_retention_limit,
-    ));
-    let single_signature_store = Arc::new(SingleSignatureStore::new(
-        Box::new(SQLiteAdapter::new(
-            "single_signature",
-            sqlite_db_path.clone(),
-        )?),
-        config.store_retention_limit,
-    ));
-    let protocol_parameters_store = Arc::new(ProtocolParametersStore::new(
-        Box::new(SQLiteAdapter::new("protocol_parameters", sqlite_db_path)?),
-        config.store_retention_limit,
-    ));
+    let verification_key_store = Arc::new(VerificationKeyStore::new(Box::new(SQLiteAdapter::new(
+        "verification_key",
+        sqlite_db_path.clone(),
+    )?)));
+    let stake_store = Arc::new(StakeStore::new(Box::new(SQLiteAdapter::new(
+        "stake",
+        sqlite_db_path.clone(),
+    )?)));
+    let single_signature_store = Arc::new(SingleSignatureStore::new(Box::new(SQLiteAdapter::new(
+        "single_signature",
+        sqlite_db_path.clone(),
+    )?)));
+    let protocol_parameters_store = Arc::new(ProtocolParametersStore::new(Box::new(
+        SQLiteAdapter::new("protocol_parameters", sqlite_db_path)?,
+    )));
     let multi_signer = Arc::new(RwLock::new(MultiSignerImpl::new(
         verification_key_store.clone(),
         stake_store.clone(),
diff --git a/mithril-aggregator/src/multi_signer.rs b/mithril-aggregator/src/multi_signer.rs
index 12e70adff..91ab24d70 100644
--- a/mithril-aggregator/src/multi_signer.rs
+++ b/mithril-aggregator/src/multi_signer.rs
@@ -799,45 +799,37 @@ mod tests {
                 None,
             )
             .unwrap(),
-        ), None);
-        let stake_store = StakeStore::new(
-            Box::new(
-                MemoryAdapter::<entities::Epoch, HashMap<entities::PartyId, entities::Stake>>::new(
-                    None,
-                )
-                .unwrap(),
-            ),
-            None,
-        );
-        let single_signature_store = SingleSignatureStore::new(
-            Box::new(
+        ));
+        let stake_store = StakeStore::new(Box::new(
+            MemoryAdapter::<entities::Epoch, HashMap<entities::PartyId, entities::Stake>>::new(
+                None,
+            )
+            .unwrap(),
+        ));
+        let single_signature_store =
+            SingleSignatureStore::new(Box::new(
                 MemoryAdapter::<
                     entities::Beacon,
                     HashMap<entities::PartyId, entities::SingleSignatures>,
                 >::new(None)
                 .unwrap(),
-            ),
-            None,
-        );
-        let protocol_parameters_store = ProtocolParametersStore::new(
-            Box::new(
-                MemoryAdapter::<entities::Epoch, entities::ProtocolParameters>::new(Some(vec![
-                    (
-                        beacon.epoch.offset_to_signer_retrieval_epoch().unwrap(),
-                        fake_data::protocol_parameters(),
-                    ),
-                    (
-                        beacon
-                            .epoch
-                            .offset_to_next_signer_retrieval_epoch()
-                            .unwrap(),
-                        fake_data::protocol_parameters(),
-                    ),
-                ]))
-                .unwrap(),
-            ),
-            None,
-        );
+            ));
+        let protocol_parameters_store = ProtocolParametersStore::new(Box::new(
+            MemoryAdapter::<entities::Epoch, entities::ProtocolParameters>::new(Some(vec![
+                (
+                    beacon.epoch.offset_to_signer_retrieval_epoch().unwrap(),
+                    fake_data::protocol_parameters(),
+                ),
+                (
+                    beacon
+                        .epoch
+                        .offset_to_next_signer_retrieval_epoch()
+                        .unwrap(),
+                    fake_data::protocol_parameters(),
+                ),
+            ]))
+            .unwrap(),
+        ));
         let mut multi_signer = MultiSignerImpl::new(
             Arc::new(verification_key_store),
             Arc::new(stake_store),
diff --git a/mithril-aggregator/src/store/protocol_parameters_store.rs b/mithril-aggregator/src/store/protocol_parameters_store.rs
index 06794b27f..13884bedf 100644
--- a/mithril-aggregator/src/store/protocol_parameters_store.rs
+++ b/mithril-aggregator/src/store/protocol_parameters_store.rs
@@ -2,7 +2,7 @@ use async_trait::async_trait;
 use tokio::sync::RwLock;
 
 use mithril_common::entities::{Epoch, ProtocolParameters};
-use mithril_common::store::{adapter::StoreAdapter, StoreError, StorePruner};
+use mithril_common::store::{adapter::StoreAdapter, StoreError};
 
 type Adapter = Box<dyn StoreAdapter<Key = Epoch, Record = ProtocolParameters>>;
 
@@ -25,35 +25,17 @@ pub trait ProtocolParametersStorer {
 /// `ProtocolParameter` store.
 pub struct ProtocolParametersStore {
     adapter: RwLock<Adapter>,
-    retention_len: Option<usize>,
 }
 
 impl ProtocolParametersStore {
     /// Create an instance of `ProtocolParameterStore`.
-    pub fn new(adapter: Adapter, retention_len: Option<usize>) -> Self {
+    pub fn new(adapter: Adapter) -> Self {
         Self {
             adapter: RwLock::new(adapter),
-            retention_len,
         }
     }
 }
 
-#[async_trait]
-impl StorePruner for ProtocolParametersStore {
-    type Key = Epoch;
-    type Record = ProtocolParameters;
-
-    fn get_adapter(
-        &self,
-    ) -> &RwLock<Box<dyn StoreAdapter<Key = Self::Key, Record = Self::Record>>> {
-        &self.adapter
-    }
-
-    fn get_max_records(&self) -> Option<usize> {
-        self.retention_len
-    }
-}
-
 #[async_trait]
 impl ProtocolParametersStorer for ProtocolParametersStore {
     async fn save_protocol_parameters(
@@ -67,7 +49,6 @@ impl ProtocolParametersStorer for ProtocolParametersStore {
             .await
             .store_record(&epoch, &protocol_parameters)
             .await?;
-        self.prune().await?;
 
         Ok(previous_protocol_parameters)
     }
@@ -90,7 +71,6 @@ mod tests {
 
     fn setup_protocol_parameters(nb_epoch: u64) -> Vec<(Epoch, ProtocolParameters)> {
         let mut values: Vec<(Epoch, ProtocolParameters)> = Vec::new();
-
         for epoch in 1..=nb_epoch {
             let mut protocol_parameters = fake_data::protocol_parameters();
             protocol_parameters.k += epoch;
@@ -99,7 +79,7 @@ mod tests {
         values
     }
 
-    fn init_store(nb_epoch: u64, retention_len: Option<usize>) -> ProtocolParametersStore {
+    fn init_store(nb_epoch: u64) -> ProtocolParametersStore {
         let values = setup_protocol_parameters(nb_epoch);
 
         let values = if !values.is_empty() {
@@ -108,14 +88,13 @@ mod tests {
             None
         };
         let adapter: MemoryAdapter<Epoch, ProtocolParameters> = MemoryAdapter::new(values).unwrap();
-
-        ProtocolParametersStore::new(Box::new(adapter), retention_len)
+        ProtocolParametersStore::new(Box::new(adapter))
     }
 
     #[tokio::test]
     async fn save_key_in_empty_store() {
         let protocol_parameters = setup_protocol_parameters(1);
-        let store = init_store(0, None);
+        let store = init_store(0);
         let res = store
             .save_protocol_parameters(
                 protocol_parameters[0].0,
@@ -130,7 +109,7 @@ mod tests {
     #[tokio::test]
     async fn update_protocol_parameters_in_store() {
         let protocol_parameters = setup_protocol_parameters(2);
-        let store = init_store(1, None);
+        let store = init_store(1);
         let res = store
             .save_protocol_parameters(
                 protocol_parameters[0].0,
@@ -144,7 +123,7 @@ mod tests {
 
     #[tokio::test]
     async fn get_protocol_parameters_for_empty_epoch() {
-        let store = init_store(2, None);
+        let store = init_store(2);
         let res = store.get_protocol_parameters(Epoch(0)).await.unwrap();
 
         assert!(res.is_none());
@@ -152,57 +131,9 @@ mod tests {
 
     #[tokio::test]
     async fn get_protocol_parameters_for_existing_epoch() {
-        let store = init_store(2, None);
+        let store = init_store(2);
         let res = store.get_protocol_parameters(Epoch(1)).await.unwrap();
 
         assert!(res.is_some());
     }
-
-    #[tokio::test]
-    async fn test_retention_length() {
-        let store = init_store(2, Some(2));
-        let protocol_parameters = setup_protocol_parameters(3);
-        let _ = store
-            .save_protocol_parameters(Epoch(3), (&protocol_parameters[2].1).to_owned())
-            .await
-            .unwrap();
-        assert_eq!(None, store.get_protocol_parameters(Epoch(1)).await.unwrap());
-        let res = store.get_protocol_parameters(Epoch(2)).await.unwrap();
-        assert!(res.is_some());
-    }
-
-    #[tokio::test]
-    async fn test_retention_length_on_update() {
-        let store = init_store(4, Some(2));
-        let mut protocol_parameters = store
-            .get_protocol_parameters(Epoch(1))
-            .await
-            .unwrap()
-            .expect("There should be a protocol parameter for this epoch");
-        protocol_parameters.k += 1;
-        store
-            .save_protocol_parameters(Epoch(1), protocol_parameters)
-            .await
-            .unwrap();
-        assert!(store
-            .get_protocol_parameters(Epoch(4))
-            .await
-            .unwrap()
-            .is_some());
-        assert!(store
-            .get_protocol_parameters(Epoch(3))
-            .await
-            .unwrap()
-            .is_some());
-        assert!(store
-            .get_protocol_parameters(Epoch(1))
-            .await
-            .unwrap()
-            .is_none());
-        assert!(store
-            .get_protocol_parameters(Epoch(2))
-            .await
-            .unwrap()
-            .is_none());
-    }
 }
diff --git a/mithril-aggregator/src/store/single_signature_store.rs b/mithril-aggregator/src/store/single_signature_store.rs
index a872602b7..f75db0d7c 100644
--- a/mithril-aggregator/src/store/single_signature_store.rs
+++ b/mithril-aggregator/src/store/single_signature_store.rs
@@ -1,5 +1,4 @@
 use async_trait::async_trait;
-use mithril_common::store::StorePruner;
 use std::collections::HashMap;
 use tokio::sync::RwLock;
 
@@ -28,35 +27,17 @@ pub trait SingleSignatureStorer {
 /// Store for [SingleSignatures].
 pub struct SingleSignatureStore {
     adapter: RwLock<Adapter>,
-    retention_limit: Option<usize>,
 }
 
 impl SingleSignatureStore {
     /// Create a new instance.
-    pub fn new(adapter: Adapter, retention_limit: Option<usize>) -> Self {
+    pub fn new(adapter: Adapter) -> Self {
         Self {
             adapter: RwLock::new(adapter),
-            retention_limit,
         }
     }
 }
 
-#[async_trait]
-impl StorePruner for SingleSignatureStore {
-    type Key = Beacon;
-    type Record = HashMap<PartyId, SingleSignatures>;
-
-    fn get_adapter(
-        &self,
-    ) -> &RwLock<Box<dyn StoreAdapter<Key = Self::Key, Record = Self::Record>>> {
-        &self.adapter
-    }
-
-    fn get_max_records(&self) -> Option<usize> {
-        self.retention_limit
-    }
-}
-
 #[async_trait]
 impl SingleSignatureStorer for SingleSignatureStore {
     async fn save_single_signatures(
@@ -81,7 +62,6 @@ impl SingleSignatureStorer for SingleSignatureStore {
             .await
             .store_record(beacon, &single_signatures_per_party_id)
             .await?;
-        self.prune().await?;
 
         Ok(prev_single_signature)
     }
@@ -104,7 +84,6 @@ mod tests {
         nb_immutable_file_numbers: u64,
         single_signers_per_epoch: u64,
         single_signatures_per_signers: u64,
-        retention_limit: Option<usize>,
     ) -> SingleSignatureStore {
         let mut values: Vec<(Beacon, HashMap<PartyId, SingleSignatures>)> = Vec::new();
 
@@ -135,12 +114,12 @@ mod tests {
         };
         let adapter: MemoryAdapter<Beacon, HashMap<PartyId, SingleSignatures>> =
             MemoryAdapter::new(values).unwrap();
-        SingleSignatureStore::new(Box::new(adapter), retention_limit)
+        SingleSignatureStore::new(Box::new(adapter))
     }
 
     #[tokio::test]
     async fn save_key_in_empty_store() {
-        let store = init_store(0, 0, 0, None);
+        let store = init_store(0, 0, 0);
         let res = store
             .save_single_signatures(
                 &Beacon::new("devnet".to_string(), 1, 0),
@@ -158,7 +137,7 @@ mod tests {
 
     #[tokio::test]
     async fn add_signature_for_new_party_id() {
-        let store = init_store(1, 1, 5, None);
+        let store = init_store(1, 1, 5);
         let beacon = Beacon::new("devnet".to_string(), 1, 1);
 
         assert_eq!(
@@ -192,7 +171,7 @@ mod tests {
 
     #[tokio::test]
     async fn get_single_signatures_for_empty_epoch() {
-        let store = init_store(2, 1, 1, None);
+        let store = init_store(2, 1, 1);
         let res = store
             .get_single_signatures(&Beacon::new("devnet".to_string(), 1, 0))
             .await
@@ -203,7 +182,7 @@ mod tests {
 
     #[tokio::test]
     async fn get_single_signatures_for_existing_epoch() {
-        let store = init_store(2, 2, 2, None);
+        let store = init_store(2, 2, 2);
         let res = store
             .get_single_signatures(&Beacon::new("devnet".to_string(), 1, 1))
             .await
@@ -212,33 +191,4 @@ mod tests {
         assert!(res.is_some());
         assert_eq!(2, res.unwrap().len());
     }
-
-    #[tokio::test]
-    async fn using_retention_limit() {
-        let store = init_store(2, 2, 2, Some(2));
-        let beacon = Beacon::new("devnet".to_string(), 1, 1);
-
-        assert!(store
-            .get_single_signatures(&beacon)
-            .await
-            .unwrap()
-            .is_some());
-        let _ = store
-            .save_single_signatures(
-                &Beacon::new("devnet".to_string(), 2, 3),
-                &SingleSignatures {
-                    party_id: "0".to_string(),
-                    signature: "OK".to_string(),
-                    won_indexes: vec![1, 5],
-                },
-            )
-            .await
-            .unwrap();
-
-        assert!(store
-            .get_single_signatures(&beacon)
-            .await
-            .unwrap()
-            .is_none());
-    }
 }
diff --git a/mithril-aggregator/src/store/verification_key_store.rs b/mithril-aggregator/src/store/verification_key_store.rs
index 808db7129..129b9475f 100644
--- a/mithril-aggregator/src/store/verification_key_store.rs
+++ b/mithril-aggregator/src/store/verification_key_store.rs
@@ -1,5 +1,4 @@
 use async_trait::async_trait;
-use mithril_common::store::StorePruner;
 use std::collections::HashMap;
 use tokio::sync::RwLock;
 
@@ -27,35 +26,17 @@ pub trait VerificationKeyStorer {
 /// Store for the `VerificationKey`.
 pub struct VerificationKeyStore {
     adapter: RwLock<Adapter>,
-    retention_limit: Option<usize>,
 }
 
 impl VerificationKeyStore {
     /// Create a new instance.
-    pub fn new(adapter: Adapter, retention_limit: Option<usize>) -> Self {
+    pub fn new(adapter: Adapter) -> Self {
         Self {
             adapter: RwLock::new(adapter),
-            retention_limit,
         }
     }
 }
 
-#[async_trait]
-impl StorePruner for VerificationKeyStore {
-    type Key = Epoch;
-    type Record = HashMap<PartyId, Signer>;
-
-    fn get_adapter(
-        &self,
-    ) -> &RwLock<Box<dyn StoreAdapter<Key = Self::Key, Record = Self::Record>>> {
-        &self.adapter
-    }
-
-    fn get_max_records(&self) -> Option<usize> {
-        self.retention_limit
-    }
-}
-
 #[async_trait]
 impl VerificationKeyStorer for VerificationKeyStore {
     async fn save_verification_key(
@@ -73,7 +54,6 @@ impl VerificationKeyStorer for VerificationKeyStore {
             .await
             .store_record(&epoch, &signers)
             .await?;
-        self.prune().await?;
 
         Ok(prev_signer)
     }
@@ -93,11 +73,7 @@ mod tests {
 
     use mithril_common::store::adapter::MemoryAdapter;
 
-    fn init_store(
-        nb_epoch: u64,
-        signers_per_epoch: u64,
-        retention_limit: Option<usize>,
-    ) -> VerificationKeyStore {
+    fn init_store(nb_epoch: u64, signers_per_epoch: u64) -> VerificationKeyStore {
         let mut values: Vec<(Epoch, HashMap<PartyId, Signer>)> = Vec::new();
 
         for epoch in 1..=nb_epoch {
@@ -123,12 +99,12 @@ mod tests {
         };
         let adapter: MemoryAdapter<Epoch, HashMap<PartyId, Signer>> =
             MemoryAdapter::new(values).unwrap();
-        VerificationKeyStore::new(Box::new(adapter), retention_limit)
+        VerificationKeyStore::new(Box::new(adapter))
     }
 
     #[tokio::test]
     async fn save_key_in_empty_store() {
-        let store = init_store(0, 0, None);
+        let store = init_store(0, 0);
         let res = store
             .save_verification_key(
                 Epoch(0),
@@ -145,7 +121,7 @@ mod tests {
 
     #[tokio::test]
     async fn update_signer_in_store() {
-        let store = init_store(1, 1, None);
+        let store = init_store(1, 1);
         let res = store
             .save_verification_key(
                 Epoch(1),
@@ -169,7 +145,7 @@ mod tests {
 
     #[tokio::test]
     async fn get_verification_keys_for_empty_epoch() {
-        let store = init_store(2, 1, None);
+        let store = init_store(2, 1);
         let res = store.get_verification_keys(Epoch(0)).await.unwrap();
 
         assert!(res.is_none());
@@ -177,35 +153,10 @@ mod tests {
 
     #[tokio::test]
     async fn get_verification_keys_for_existing_epoch() {
-        let store = init_store(2, 2, None);
+        let store = init_store(2, 2);
         let res = store.get_verification_keys(Epoch(1)).await.unwrap();
 
         assert!(res.is_some());
         assert_eq!(2, res.unwrap().len());
     }
-
-    #[tokio::test]
-    async fn check_retention_limit() {
-        let store = init_store(2, 2, Some(2));
-        assert!(store
-            .get_verification_keys(Epoch(1))
-            .await
-            .unwrap()
-            .is_some());
-        let _ = store
-            .save_verification_key(
-                Epoch(3),
-                Signer {
-                    party_id: "party_id".to_string(),
-                    verification_key: "whatever".to_string(),
-                },
-            )
-            .await
-            .unwrap();
-        assert!(store
-            .get_verification_keys(Epoch(1))
-            .await
-            .unwrap()
-            .is_none());
-    }
 }
diff --git a/mithril-common/src/store/adapter/memory_adapter.rs b/mithril-common/src/store/adapter/memory_adapter.rs
index 43f752339..25e651e70 100644
--- a/mithril-common/src/store/adapter/memory_adapter.rs
+++ b/mithril-common/src/store/adapter/memory_adapter.rs
@@ -53,9 +53,15 @@ where
         let key = (*key).clone();
         let record = (*record).clone();
 
-        if self.values.insert(key.clone(), record).is_none() {
-            self.index.push(key);
+        if self.values.insert(key.clone(), record).is_some() {
+            if let Some(ix) = self.index.iter().position(|k| k == &key) {
+                let _ = self.index.remove(ix);
+            } else {
+                // the index was corrupted
+                // doing nothing will repair it.
+            }
         }
+        self.index.push(key);
 
         Ok(())
     }
@@ -85,8 +91,6 @@ where
     }
 
     async fn remove(&mut self, key: &Self::Key) -> Result<Option<Self::Record>, AdapterError> {
-        self.index.retain(|k| *k != *key);
-
         Ok(self.values.remove(key))
     }
 
@@ -102,8 +106,6 @@ where
 
 #[cfg(test)]
 mod tests {
-    use std::borrow::Borrow;
-
     use super::*;
 
     fn init_adapter(nb: u64) -> MemoryAdapter<u64, String> {
@@ -182,12 +184,9 @@ mod tests {
         let mut adapter = init_adapter(2);
 
         assert!(adapter.store_record(&1, &"one".to_string()).await.is_ok());
-        let vals = adapter.get_last_n_records(2).await.unwrap();
+        let vals = adapter.get_last_n_records(1).await.unwrap();
 
-        assert_eq!(
-            vec![(2, "value 2".to_string()), (1, "one".to_string())],
-            vals
-        );
+        assert_eq!((1, "one".to_string()), vals[0]);
     }
 
     #[tokio::test]
@@ -197,7 +196,6 @@ mod tests {
 
         assert_eq!("value 1".to_string(), record);
         assert!(!adapter.record_exists(&1).await.unwrap());
-        assert_eq!(1, adapter.index.len())
     }
 
     #[tokio::test]
@@ -206,7 +204,6 @@ mod tests {
         let maybe_record = adapter.remove(&0).await.unwrap();
 
         assert!(maybe_record.is_none());
-        assert_eq!(2, adapter.index.len())
     }
 
     #[tokio::test]
@@ -227,18 +224,4 @@ mod tests {
 
         assert_eq!(0, records.count());
     }
-
-    #[tokio::test]
-    async fn check_get_last_n_modified_records() {
-        let mut adapter = init_adapter(3);
-        adapter
-            .store_record(&1, "updated record".to_string().borrow())
-            .await
-            .unwrap();
-        let values = adapter.get_last_n_records(2).await.unwrap();
-        assert_eq!(
-            vec![(3, "value 3".to_string()), (2, "value 2".to_string())],
-            values
-        );
-    }
 }
diff --git a/mithril-common/src/store/mod.rs b/mithril-common/src/store/mod.rs
index baeb24121..afee1eb58 100644
--- a/mithril-common/src/store/mod.rs
+++ b/mithril-common/src/store/mod.rs
@@ -5,8 +5,6 @@ pub mod adapter;
 pub mod adapter_migration;
 mod error;
 mod stake_store;
-mod store_pruner;
 
 pub use error::StoreError;
 pub use stake_store::{StakeStore, StakeStorer};
-pub use store_pruner::StorePruner;
diff --git a/mithril-common/src/store/stake_store.rs b/mithril-common/src/store/stake_store.rs
index 176145bd4..32def5a89 100644
--- a/mithril-common/src/store/stake_store.rs
+++ b/mithril-common/src/store/stake_store.rs
@@ -3,7 +3,7 @@ use tokio::sync::RwLock;
 
 use crate::entities::{Epoch, StakeDistribution};
 
-use super::{adapter::StoreAdapter, StoreError, StorePruner};
+use super::{adapter::StoreAdapter, StoreError};
 
 type Adapter = Box<dyn StoreAdapter<Key = Epoch, Record = StakeDistribution>>;
 
@@ -31,35 +31,17 @@ pub trait StakeStorer {
 /// A [StakeStorer] that use a [StoreAdapter] to store data.
 pub struct StakeStore {
     adapter: RwLock<Adapter>,
-    retention_limit: Option<usize>,
 }
 
 impl StakeStore {
     /// StakeStore factory
-    pub fn new(adapter: Adapter, retention_limit: Option<usize>) -> Self {
+    pub fn new(adapter: Adapter) -> Self {
         Self {
             adapter: RwLock::new(adapter),
-            retention_limit,
         }
     }
 }
 
-#[async_trait]
-impl StorePruner for StakeStore {
-    type Key = Epoch;
-    type Record = StakeDistribution;
-
-    fn get_adapter(
-        &self,
-    ) -> &RwLock<Box<dyn StoreAdapter<Key = Self::Key, Record = Self::Record>>> {
-        &self.adapter
-    }
-
-    fn get_max_records(&self) -> Option<usize> {
-        self.retention_limit
-    }
-}
-
 #[async_trait]
 impl StakeStorer for StakeStore {
     async fn save_stakes(
@@ -67,16 +49,9 @@ impl StakeStorer for StakeStore {
         epoch: Epoch,
         stakes: StakeDistribution,
     ) -> Result<Option<StakeDistribution>, StoreError> {
-        let signers = {
-            let mut adapter = self.adapter.write().await;
-            let signers = adapter.get_record(&epoch).await?;
-            adapter.store_record(&epoch, &stakes).await?;
-
-            signers
-        };
-        // it is important the adapter gets out of the scope to free the write lock it holds.
-        // Otherwise the method below will hang forever waiting for the lock.
-        self.prune().await?;
+        let mut adapter = self.adapter.write().await;
+        let signers = adapter.get_record(&epoch).await?;
+        adapter.store_record(&epoch, &stakes).await?;
 
         Ok(signers)
     }
@@ -102,11 +77,7 @@ mod tests {
     use super::super::adapter::MemoryAdapter;
     use super::*;
 
-    fn init_store(
-        nb_epoch: u64,
-        signers_per_epoch: u64,
-        retention_limit: Option<usize>,
-    ) -> StakeStore {
+    fn init_store(nb_epoch: u64, signers_per_epoch: u64) -> StakeStore {
         let mut values: Vec<(Epoch, StakeDistribution)> = Vec::new();
 
         for epoch in 1..=nb_epoch {
@@ -125,12 +96,12 @@ mod tests {
             None
         };
         let adapter: MemoryAdapter<Epoch, StakeDistribution> = MemoryAdapter::new(values).unwrap();
-        StakeStore::new(Box::new(adapter), retention_limit)
+        StakeStore::new(Box::new(adapter))
     }
 
     #[tokio::test]
     async fn save_key_in_empty_store() {
-        let store = init_store(0, 0, None);
+        let store = init_store(0, 0);
         let res = store
             .save_stakes(Epoch(1), HashMap::from([("1".to_string(), 123)]))
             .await
@@ -141,7 +112,7 @@ mod tests {
 
     #[tokio::test]
     async fn update_signer_in_store() {
-        let store = init_store(1, 1, None);
+        let store = init_store(1, 1);
         let res = store
             .save_stakes(Epoch(1), HashMap::from([("1".to_string(), 123)]))
             .await
@@ -155,7 +126,7 @@ mod tests {
 
     #[tokio::test]
     async fn get_stakes_for_empty_epoch() {
-        let store = init_store(2, 1, None);
+        let store = init_store(2, 1);
         let res = store
             .get_stakes(Epoch(0))
             .await
@@ -166,7 +137,7 @@ mod tests {
 
     #[tokio::test]
     async fn get_stakes_for_existing_epoch() {
-        let store = init_store(2, 2, None);
+        let store = init_store(2, 2);
         let res = store
             .get_stakes(Epoch(1))
             .await
@@ -175,14 +146,4 @@ mod tests {
         assert!(res.is_some());
         assert_eq!(2, res.expect("Query result should not be empty.").len());
     }
-
-    #[tokio::test]
-    async fn check_retention_limit() {
-        let store = init_store(2, 2, Some(2));
-        let _res = store
-            .save_stakes(Epoch(3), HashMap::from([("1".to_string(), 123)]))
-            .await
-            .unwrap();
-        assert!(store.get_stakes(Epoch(1)).await.unwrap().is_none());
-    }
 }
diff --git a/mithril-common/src/store/store_pruner.rs b/mithril-common/src/store/store_pruner.rs
deleted file mode 100644
index 75c26ea2d..000000000
--- a/mithril-common/src/store/store_pruner.rs
+++ /dev/null
@@ -1,126 +0,0 @@
-use async_trait::async_trait;
-use tokio::sync::RwLock;
-
-use super::{adapter::StoreAdapter, StoreError};
-
-/// Implementing this trait will make store able to limit the number of the
-/// stored records by pruning them if a limit is set.
-#[async_trait]
-pub trait StorePruner {
-    /// The key type
-    type Key: Sync + Send;
-
-    /// The record type
-    type Record: Sync + Send;
-
-    /// This trait requires a way to get the internal adapter.
-    fn get_adapter(&self)
-        -> &RwLock<Box<dyn StoreAdapter<Key = Self::Key, Record = Self::Record>>>;
-
-    /// Return the maximum number of elements that can exist in this store. If None, there is no limit.
-    fn get_max_records(&self) -> Option<usize>;
-
-    /// Prune elements exceeding the specified limit.
-    async fn prune(&self) -> Result<(), StoreError> {
-        let retention_len = self.get_max_records().unwrap_or(usize::MAX);
-        let lock = self.get_adapter();
-        let mut adapter = lock.write().await;
-
-        for (epoch, _record) in adapter
-            .get_last_n_records(usize::MAX)
-            .await?
-            .into_iter()
-            .skip(retention_len)
-        {
-            adapter.remove(&epoch).await?;
-        }
-
-        Ok(())
-    }
-}
-
-#[cfg(test)]
-mod tests {
-    use std::cmp::min;
-
-    use crate::store::adapter::SQLiteAdapter;
-
-    use super::*;
-
-    struct TestStore {
-        adapter: RwLock<Box<dyn StoreAdapter<Key = u64, Record = String>>>,
-        record_limit: Option<usize>,
-    }
-
-    impl StorePruner for TestStore {
-        type Key = u64;
-        type Record = String;
-
-        fn get_adapter(
-            &self,
-        ) -> &RwLock<Box<dyn StoreAdapter<Key = Self::Key, Record = Self::Record>>> {
-            &self.adapter
-        }
-
-        fn get_max_records(&self) -> Option<usize> {
-            self.record_limit
-        }
-    }
-
-    fn get_data(n: u64) -> Vec<(u64, String)> {
-        let n = min(n, 6);
-        let words = ["one", "two", "three", "four", "five", "six"];
-        let mut values: Vec<(u64, String)> = Vec::new();
-
-        for index in 0..n {
-            values.push((index, words[index as usize].to_string()));
-        }
-
-        values
-    }
-
-    async fn get_adapter(data_len: u64) -> SQLiteAdapter<u64, String> {
-        let mut adapter: SQLiteAdapter<u64, String> = SQLiteAdapter::new("whatever", None).unwrap();
-
-        for (key, record) in get_data(data_len) {
-            adapter.store_record(&key, &record).await.unwrap();
-        }
-
-        adapter
-    }
-
-    #[tokio::test]
-    async fn test_no_prune() {
-        for data_len in 1_u64..=6 {
-            let store = TestStore {
-                adapter: RwLock::new(Box::new(get_adapter(data_len).await)),
-                record_limit: None,
-            };
-
-            store.prune().await.unwrap();
-            assert_eq!(
-                data_len as usize,
-                store.adapter.read().await.get_iter().await.unwrap().count(),
-                "test no pruning with dataset length = {}",
-                data_len
-            );
-        }
-    }
-    #[tokio::test]
-    async fn test_with_pruning() {
-        for data_len in 1_u64..=6 {
-            let store = TestStore {
-                adapter: RwLock::new(Box::new(get_adapter(6).await)),
-                record_limit: Some(data_len as usize),
-            };
-
-            store.prune().await.unwrap();
-            assert_eq!(
-                data_len as usize,
-                store.adapter.read().await.get_iter().await.unwrap().count(),
-                "test pruning with retention limit = {}",
-                data_len
-            );
-        }
-    }
-}
diff --git a/mithril-core/Cargo.toml b/mithril-core/Cargo.toml
index aef7d0dc6..f0c27ccb8 100644
--- a/mithril-core/Cargo.toml
+++ b/mithril-core/Cargo.toml
@@ -16,7 +16,7 @@ thiserror = "1.0"
 
 [dev-dependencies]
 bincode = "1.3.3"
-criterion   = { version = "0.3.5", features = ["html_reports"] }
+criterion   = { version = "0.4.0", features = ["html_reports"] }
 num-bigint  = "0.4.0"
 num-rational = "0.4.0"
 proptest    = "1.0.0"
diff --git a/mithril-signer/config/preview.json b/mithril-signer/config/preview.json
index 1f850b412..05d6d6a58 100644
--- a/mithril-signer/config/preview.json
+++ b/mithril-signer/config/preview.json
@@ -4,6 +4,5 @@
     "party_id": 0,
     "run_interval": 20000,
     "db_directory": "/db",
-    "data_stores_directory": "./mithril-signer/stores",
-    "store_retention_limit": 5
+    "data_stores_directory": "./mithril-signer/stores"
 }
\ No newline at end of file
diff --git a/mithril-signer/src/certificate_handler.rs b/mithril-signer/src/certificate_handler.rs
index a868fe59e..0e6395fa5 100644
--- a/mithril-signer/src/certificate_handler.rs
+++ b/mithril-signer/src/certificate_handler.rs
@@ -281,7 +281,6 @@ mod tests {
             run_interval: 100,
             db_directory: Path::new("./db").to_path_buf(),
             data_stores_directory: Path::new("./stores").to_path_buf(),
-            store_retention_limit: None,
         };
         (server, config)
     }
diff --git a/mithril-signer/src/entities.rs b/mithril-signer/src/entities.rs
index c0c81e0d9..3d07bf570 100644
--- a/mithril-signer/src/entities.rs
+++ b/mithril-signer/src/entities.rs
@@ -35,9 +35,6 @@ pub struct Config {
 
     /// Directory to store signer data (Stakes, Protocol initializers, ...)
     pub data_stores_directory: PathBuf,
-
-    /// Store retention limit. If set to None, no limit will be set.
-    pub store_retention_limit: Option<usize>,
 }
 
 impl Config {
diff --git a/mithril-signer/src/protocol_initializer_store.rs b/mithril-signer/src/protocol_initializer_store.rs
index 9f0ff31aa..4bcb316c0 100644
--- a/mithril-signer/src/protocol_initializer_store.rs
+++ b/mithril-signer/src/protocol_initializer_store.rs
@@ -1,13 +1,19 @@
 use async_trait::async_trait;
-use mithril_common::store::{StoreError, StorePruner};
+use thiserror::Error;
 use tokio::sync::RwLock;
 
 use mithril_common::crypto_helper::ProtocolInitializer;
 use mithril_common::entities::Epoch;
-use mithril_common::store::adapter::StoreAdapter;
+use mithril_common::store::adapter::{AdapterError, StoreAdapter};
 
 type Adapter = Box<dyn StoreAdapter<Key = Epoch, Record = ProtocolInitializer>>;
 
+#[derive(Debug, Error)]
+pub enum ProtocolInitializerStoreError {
+    #[error("adapter error {0}")]
+    AdapterError(#[from] AdapterError),
+}
+
 #[async_trait]
 /// Store the ProtocolInitializer used for each Epoch. This is useful because
 /// protocol parameters and stake distribution change over time.
@@ -17,66 +23,47 @@ pub trait ProtocolInitializerStorer: Sync + Send {
         &self,
         epoch: Epoch,
         protocol_initializer: ProtocolInitializer,
-    ) -> Result<Option<ProtocolInitializer>, StoreError>;
+    ) -> Result<Option<ProtocolInitializer>, ProtocolInitializerStoreError>;
 
     /// Fetch a protocol initializer if any saved for the given Epoch.
     async fn get_protocol_initializer(
         &self,
         epoch: Epoch,
-    ) -> Result<Option<ProtocolInitializer>, StoreError>;
+    ) -> Result<Option<ProtocolInitializer>, ProtocolInitializerStoreError>;
 
     /// Return the list of the N last saved protocol initializers if any.
     async fn get_last_protocol_initializer(
         &self,
         last: usize,
-    ) -> Result<Vec<(Epoch, ProtocolInitializer)>, StoreError>;
+    ) -> Result<Vec<(Epoch, ProtocolInitializer)>, ProtocolInitializerStoreError>;
 }
 /// Implementation of the ProtocolInitializerStorer
 pub struct ProtocolInitializerStore {
     adapter: RwLock<Adapter>,
-    retention_limit: Option<usize>,
 }
 
 impl ProtocolInitializerStore {
     /// Create a new ProtocolInitializerStore.
-    pub fn new(adapter: Adapter, retention_limit: Option<usize>) -> Self {
+    pub fn new(adapter: Adapter) -> Self {
         Self {
             adapter: RwLock::new(adapter),
-            retention_limit,
         }
     }
 }
 
-#[async_trait]
-impl StorePruner for ProtocolInitializerStore {
-    type Key = Epoch;
-    type Record = ProtocolInitializer;
-
-    fn get_adapter(
-        &self,
-    ) -> &RwLock<Box<dyn StoreAdapter<Key = Self::Key, Record = Self::Record>>> {
-        &self.adapter
-    }
-
-    fn get_max_records(&self) -> Option<usize> {
-        self.retention_limit
-    }
-}
-
 #[async_trait]
 impl ProtocolInitializerStorer for ProtocolInitializerStore {
     async fn save_protocol_initializer(
         &self,
         epoch: Epoch,
         protocol_initializer: ProtocolInitializer,
-    ) -> Result<Option<ProtocolInitializer>, StoreError> {
+    ) -> Result<Option<ProtocolInitializer>, ProtocolInitializerStoreError> {
         let previous_protocol_initializer = self.adapter.read().await.get_record(&epoch).await?;
         self.adapter
             .write()
             .await
             .store_record(&epoch, &protocol_initializer)
             .await?;
-        self.prune().await?;
 
         Ok(previous_protocol_initializer)
     }
@@ -84,7 +71,7 @@ impl ProtocolInitializerStorer for ProtocolInitializerStore {
     async fn get_protocol_initializer(
         &self,
         epoch: Epoch,
-    ) -> Result<Option<ProtocolInitializer>, StoreError> {
+    ) -> Result<Option<ProtocolInitializer>, ProtocolInitializerStoreError> {
         let record = self.adapter.read().await.get_record(&epoch).await?;
         Ok(record)
     }
@@ -92,7 +79,7 @@ impl ProtocolInitializerStorer for ProtocolInitializerStore {
     async fn get_last_protocol_initializer(
         &self,
         last: usize,
-    ) -> Result<Vec<(Epoch, ProtocolInitializer)>, StoreError> {
+    ) -> Result<Vec<(Epoch, ProtocolInitializer)>, ProtocolInitializerStoreError> {
         let records = self.adapter.read().await.get_last_n_records(last).await?;
 
         Ok(records)
@@ -123,7 +110,7 @@ mod tests {
         values
     }
 
-    fn init_store(nb_epoch: u64, retention_limit: Option<usize>) -> ProtocolInitializerStore {
+    fn init_store(nb_epoch: u64) -> ProtocolInitializerStore {
         let values = setup_protocol_initializers(nb_epoch);
 
         let values = if !values.is_empty() {
@@ -133,13 +120,13 @@ mod tests {
         };
         let adapter: MemoryAdapter<Epoch, ProtocolInitializer> =
             MemoryAdapter::new(values).unwrap();
-        ProtocolInitializerStore::new(Box::new(adapter), retention_limit)
+        ProtocolInitializerStore::new(Box::new(adapter))
     }
 
     #[tokio::test]
     async fn save_key_in_empty_store() {
         let protocol_initializers = setup_protocol_initializers(1);
-        let store = init_store(0, None);
+        let store = init_store(0);
         let res = store
             .save_protocol_initializer(
                 protocol_initializers[0].0,
@@ -154,7 +141,7 @@ mod tests {
     #[tokio::test]
     async fn update_protocol_initializer_in_store() {
         let protocol_initializers = setup_protocol_initializers(2);
-        let store = init_store(1, None);
+        let store = init_store(1);
         let res = store
             .save_protocol_initializer(
                 protocol_initializers[0].0,
@@ -169,7 +156,7 @@ mod tests {
 
     #[tokio::test]
     async fn get_protocol_initializer_for_empty_epoch() {
-        let store = init_store(2, None);
+        let store = init_store(2);
         let res = store.get_protocol_initializer(Epoch(0)).await.unwrap();
 
         assert!(res.is_none());
@@ -177,28 +164,9 @@ mod tests {
 
     #[tokio::test]
     async fn get_protocol_initializer_for_existing_epoch() {
-        let store = init_store(2, None);
+        let store = init_store(2);
         let res = store.get_protocol_initializer(Epoch(1)).await.unwrap();
 
         assert!(res.is_some());
     }
-
-    #[tokio::test]
-    async fn check_retention_limit() {
-        let store = init_store(4, Some(2));
-        let protocol_initializers = setup_protocol_initializers(1);
-        let _ = store
-            .save_protocol_initializer(
-                protocol_initializers[0].0,
-                (&protocol_initializers[0].1).to_owned(),
-            )
-            .await
-            .unwrap();
-
-        assert!(store
-            .get_protocol_initializer(Epoch(1))
-            .await
-            .unwrap()
-            .is_none());
-    }
 }
diff --git a/mithril-signer/src/runtime/runner.rs b/mithril-signer/src/runtime/runner.rs
index 6a2f0c400..e96ab4bbd 100644
--- a/mithril-signer/src/runtime/runner.rs
+++ b/mithril-signer/src/runtime/runner.rs
@@ -417,7 +417,7 @@ mod tests {
         let adapter: MemoryAdapter<Epoch, ProtocolInitializer> = MemoryAdapter::new(None).unwrap();
         let chain_observer = Arc::new(FakeObserver::default());
         SignerServices {
-            stake_store: Arc::new(StakeStore::new(Box::new(DumbStoreAdapter::new()), None)),
+            stake_store: Arc::new(StakeStore::new(Box::new(DumbStoreAdapter::new()))),
             certificate_handler: Arc::new(DumbCertificateHandler::default()),
             chain_observer: chain_observer.clone(),
             digester: Arc::new(DumbImmutableDigester::new(DIGESTER_RESULT, true)),
@@ -427,10 +427,7 @@ mod tests {
                 Arc::new(DumbImmutableFileObserver::default()),
                 CardanoNetwork::TestNet(42),
             )),
-            protocol_initializer_store: Arc::new(ProtocolInitializerStore::new(
-                Box::new(adapter),
-                None,
-            )),
+            protocol_initializer_store: Arc::new(ProtocolInitializerStore::new(Box::new(adapter))),
         }
     }
 
@@ -449,7 +446,6 @@ mod tests {
             party_id: "1".to_string(),
             run_interval: 100,
             data_stores_directory: PathBuf::new(),
-            store_retention_limit: None,
         };
 
         SignerRunner {
diff --git a/mithril-signer/src/runtime/signer_services.rs b/mithril-signer/src/runtime/signer_services.rs
index 53cd84a9d..08aa8c43d 100644
--- a/mithril-signer/src/runtime/signer_services.rs
+++ b/mithril-signer/src/runtime/signer_services.rs
@@ -51,13 +51,9 @@ impl<'a> ServiceBuilder for ProductionServiceBuilder<'a> {
         }
 
         let sqlite_db_path = Some(self.config.data_stores_directory.join("signer.sqlite3"));
-        let protocol_initializer_store = Arc::new(ProtocolInitializerStore::new(
-            Box::new(SQLiteAdapter::new(
-                "protocol_initializer",
-                sqlite_db_path.clone(),
-            )?),
-            self.config.store_retention_limit,
-        ));
+        let protocol_initializer_store = Arc::new(ProtocolInitializerStore::new(Box::new(
+            SQLiteAdapter::new("protocol_initializer", sqlite_db_path.clone())?,
+        )));
         let single_signer = Arc::new(MithrilSingleSigner::new(self.config.party_id.clone()));
         let certificate_handler = Arc::new(CertificateHandlerHTTPClient::new(
             self.config.aggregator_endpoint.clone(),
@@ -66,10 +62,10 @@ impl<'a> ServiceBuilder for ProductionServiceBuilder<'a> {
             self.config.db_directory.clone(),
             slog_scope::logger(),
         ));
-        let stake_store = Arc::new(StakeStore::new(
-            Box::new(SQLiteAdapter::new("stake", sqlite_db_path)?),
-            self.config.store_retention_limit,
-        ));
+        let stake_store = Arc::new(StakeStore::new(Box::new(SQLiteAdapter::new(
+            "stake",
+            sqlite_db_path,
+        )?)));
         let chain_observer = Arc::new(CardanoCliChainObserver::new(Box::new(
             CardanoCliRunner::new(
                 self.config.cardano_cli_path.clone(),
@@ -151,7 +147,6 @@ mod tests {
             run_interval: 1000,
             db_directory: PathBuf::new(),
             data_stores_directory: stores_dir.clone(),
-            store_retention_limit: None,
         };
 
         assert!(!stores_dir.exists());


Test patch:
diff --git a/mithril-aggregator/tests/test_extensions/dependency.rs b/mithril-aggregator/tests/test_extensions/dependency.rs
index 49b9f40b1..ced15a71d 100644
--- a/mithril-aggregator/tests/test_extensions/dependency.rs
+++ b/mithril-aggregator/tests/test_extensions/dependency.rs
@@ -43,7 +43,6 @@ pub async fn initialize_dependencies(
         snapshot_directory: PathBuf::new(),
         data_stores_directory: PathBuf::new(),
         genesis_verification_key: key_encode_hex(&genesis_verification_key).unwrap(),
-        store_retention_limit: None,
     };
     let certificate_pending_store = Arc::new(CertificatePendingStore::new(Box::new(
         MemoryAdapter::new(None).unwrap(),
@@ -51,22 +50,16 @@ pub async fn initialize_dependencies(
     let certificate_store = Arc::new(CertificateStore::new(Box::new(
         MemoryAdapter::new(None).unwrap(),
     )));
-    let verification_key_store = Arc::new(VerificationKeyStore::new(
-        Box::new(MemoryAdapter::new(None).unwrap()),
-        config.store_retention_limit,
-    ));
-    let stake_store = Arc::new(StakeStore::new(
-        Box::new(MemoryAdapter::new(None).unwrap()),
-        config.store_retention_limit,
-    ));
-    let single_signature_store = Arc::new(SingleSignatureStore::new(
-        Box::new(MemoryAdapter::new(None).unwrap()),
-        config.store_retention_limit,
-    ));
-    let protocol_parameters_store = Arc::new(ProtocolParametersStore::new(
-        Box::new(MemoryAdapter::new(None).unwrap()),
-        None,
-    ));
+    let verification_key_store = Arc::new(VerificationKeyStore::new(Box::new(
+        MemoryAdapter::new(None).unwrap(),
+    )));
+    let stake_store = Arc::new(StakeStore::new(Box::new(MemoryAdapter::new(None).unwrap())));
+    let single_signature_store = Arc::new(SingleSignatureStore::new(Box::new(
+        MemoryAdapter::new(None).unwrap(),
+    )));
+    let protocol_parameters_store = Arc::new(ProtocolParametersStore::new(Box::new(
+        MemoryAdapter::new(None).unwrap(),
+    )));
     let multi_signer = MultiSignerImpl::new(
         verification_key_store.clone(),
         stake_store.clone(),
diff --git a/mithril-signer/tests/test_extensions/state_machine_tester.rs b/mithril-signer/tests/test_extensions/state_machine_tester.rs
index 30f8c0f1f..63e59b667 100644
--- a/mithril-signer/tests/test_extensions/state_machine_tester.rs
+++ b/mithril-signer/tests/test_extensions/state_machine_tester.rs
@@ -56,7 +56,6 @@ impl StateMachineTester {
             party_id: "99999999999999999999999999999999".to_string(),
             run_interval: 5000,
             data_stores_directory: PathBuf::new(),
-            store_retention_limit: None,
         };
 
         let decorator = slog_term::PlainDecorator::new(slog_term::TestStdoutWriter);
@@ -79,15 +78,11 @@ impl StateMachineTester {
         ));
         let certificate_handler = Arc::new(FakeAggregator::new(beacon_provider.clone()));
         let digester = Arc::new(DumbImmutableDigester::new("DIGEST", true));
-        let protocol_initializer_store = Arc::new(ProtocolInitializerStore::new(
-            Box::new(MemoryAdapter::new(None).unwrap()),
-            config.store_retention_limit,
-        ));
+        let protocol_initializer_store = Arc::new(ProtocolInitializerStore::new(Box::new(
+            MemoryAdapter::new(None).unwrap(),
+        )));
         let single_signer = Arc::new(MithrilSingleSigner::new(config.party_id.clone()));
-        let stake_store = Arc::new(StakeStore::new(
-            Box::new(MemoryAdapter::new(None).unwrap()),
-            config.store_retention_limit,
-        ));
+        let stake_store = Arc::new(StakeStore::new(Box::new(MemoryAdapter::new(None).unwrap())));
 
         let services = SignerServices {
             certificate_handler: certificate_handler.clone(),