Skip to content

Commit e3069b3

Browse files
[blog/adb::any] grammar tweak (#701)
1 parent aab3e3e commit e3069b3

1 file changed

Lines changed: 2 additions & 2 deletions

File tree

docs/blogs/adb-any.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ <h1>The Simplest Database You Need</h1>
9797
<p>A variety of designs are possible within this general framework for an authenticated database, each involving differing trade-offs between performance, memory efficiency, and authentication expressivity. Our initial release, <a href="https://docs.rs/commonware-storage/latest/commonware_storage/adb/any/index.html">adb::any</a>, implements the minimal construction described above over the existing <a href="https://docs.rs/commonware-storage/latest/commonware_storage/mmr/journaled/index.html">mmr::journaled</a> primitive. To limit the IO of both updates and deletes to a minimum, adb::any <b>only</b> supports proving that some key was assigned to a specific value at some point in its history (not that a key has some value now nor that a key has no value). This (lack of capability) achieves a unique balance between performance and functionality that we believe applications will find just useful enough. For example, adb::any can be used to power efficient state sync over the active range (indicated by the inactivity floor), drive message-based interoperability (where emitted messages are forever persisted), and equip users to verify the balance served to them by centralized infrastructure (constraining any future proof to be at an index higher than the last).</p>
9898
<p>Another variant, which remains under development, augments this construction with <a href="https://docs.rs/commonware-storage/latest/commonware_storage/mmr/bitmap/index.html">an authenticated bitmap</a> over the activity status of each operation. This extension allows the ADB to additionally authenticate that a specific value is a key's <i>current</i> value – useful for applications requiring, for example, proving someone's account contains some balance, or that a user currently has the permission to execute some contract. <a href="https://arxiv.org/abs/2501.05262">QMDB</a>, the primary inspiration for this work, extends these concepts even further, adding the ability to prove <i>exclusion</i> (that some key is not currently assigned any value).</p>
9999
<p>In addition to <i>assign</i> and <i>delete</i> over keys, our implementation offers one additional database operation, <i>commit</i>, that synchronizes the compaction process with each batch update. In the context of a blockchain, the set of updates from executing all transactions in a block can be atomically committed to the database along with raising the inactivity floor a number of times necessary to prevent it from falling indefinitely behind (a useful marker in the log to inform state syncing clients where to start fetching from the log). This compaction process could be extended to charge any rewritten (still active) account at the inactivity floor some rent or to drop said accounts altogether from “hot” storage (requiring a proof to resurrect when needed again).</p>
100-
<p><a href="https://docs.rs/commonware-storage/latest/commonware_storage/adb/any/index.html">adb::any</a> is available today with work ongoing to both deliver additional feature variants and a benchmarking suite to evaluate the impact of said variants. Like other primitives, adb::any is exhaustively tested with <a href="https://docs.rs/commonware-runtime/latest/commonware_runtime/deterministic/index.html">runtime::deterministic</a> over a number of failure scenarios (like unclean shutdown).</p>
100+
<p><a href="https://docs.rs/commonware-storage/latest/commonware_storage/adb/any/index.html">adb::any</a> is available today with work ongoing to deliver both additional feature variants and a benchmarking suite to evaluate the impact of said variants. Like other primitives, adb::any is exhaustively tested with <a href="https://docs.rs/commonware-runtime/latest/commonware_runtime/deterministic/index.html">runtime::deterministic</a> over a number of failure scenarios (like unclean shutdown).</p>
101101
<p>We look forward to releasing a production-ready version of adb::any later this year.</p>
102102
</div>
103103

@@ -106,4 +106,4 @@ <h1>The Simplest Database You Need</h1>
106106
<script defer src='https://static.cloudflareinsights.com/beacon.min.js' data-cf-beacon='{"token": "07159b86f75b4af18e54dd0cda2fb4a7"}'></script>
107107
</body>
108108

109-
</html>
109+
</html>

0 commit comments

Comments
 (0)