---
# System prepended metadata

title: chronicle solidifier
tags: [RFC, ' draft']

---

---
title: chronicle solidifier
tags: RFC, draft
---

# chronicle-solidifier
+ Feature name: `selective-solidifier`
+ Start date: 2020-08-03
+ RFC PR: [iotaledger/chronicle-rfcs#xx](https://github.com/iotaledger/chronicle.rs-rfcs/pull/xx)
+ Bee issue:  [iotaledger/chronicle.rs#xx](https://github.com/iotaledger/chronicle.rs/issues/xx)

# Summary

The solidifier design for chronicle data.

# Motivation

To make sure the transactions in the tangle are compelete and none of anyone of them is missed. If some transactions are missed, the solidifier is used to identify them, so other modules can use this information to request these transactions from user-specific IOTA nodes again.


use cases:

1. Identify the missed transactions in the tangle.
2. Check that the sub-tangle is complete periodically.


# Detailed Design

- Leverage the [bee-protocol implementation](https://github.com/Alex6323/bee-p/blob/master/bee-protocol/src/worker/solidifier).
- Use a Least Recently Used (LRU) Cache to record the sub tangle that is going to be solidified periodically, so the solification process can be performed in-memory.
- When Chronicle is initialized in the first time after dump data are imported, the solidiier will identify all the missed tangle and query them form IOTA nodes. 

# Drawbacks

- Consume additional computation power periodically.

# Rationale and alternatives

- If the tangle can self-solidified for each transaction, then this module can be removed.

# Unresolved questions

- Query mechanism can only be done one transaction by one transaction? Can we perform batch query to get all the missed transactions at once?