HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
cosmos
iavl
Go2018–2025
cosmos / iavl

iavl

Merkleized IAVL+ Tree implementation in Go

3Distinct people
6Mentions
0Explicit recommenders
447GitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Merkleized IAVL+ Tree implementation in Go

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 5:04:57 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year6 dated mentions

Observed mentions: 2018-04-16 11:09:12 UTC to 2025-07-24 16:44:54 UTC.

0122018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 2 mentions; 1 submissions, 1 comments20182019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments20212022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2025

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC211
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC000
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC000
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC000
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC101
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC000
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC101
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC202

What Hacker News says

6 sources
Do the sqlite replication systems depend upon WAL checksums? Merkle hashes would probably be better. google/trillian adds Merkle hashes to table rows. sqlite-parquet-vtable would workaround broken WAL checksums. sqlite-wasm-http is almost a replication system Re: "Migration of the [sqlite] build system to autosetup" https://news.ycombinator.com/item?id=41921992 : > There are many extensions of SQLite; rqlite (Raft in Go,), cr-sqlite (CRDT in C), postlite (Postgres wire protocol for SQLite), electricsql (Postgres), sqledge (Postgres), and also WASM: sqlite-wasm, sqlite-wasm-http, dqlite (Raft in Rust), > awesome-sqlite From "Adding concurrent read/write to DuckDB with Arrow Flight" https://news.ycombinator.com/item?id=42871219 : > cosmos/iavl is a Merkleized AVL tree. https://github.com/cosmos/iavl /? Merkle hashes for sqlite: https://w
Read the rest
ww.google.com/search?q=Merkle+hashes+for+SQlite A git commit hash is basically a Merkle tree root, as it depends upon the previous hashes before it. Merkle tree: https://en.wikipedia.org/wiki/Merkle_tree (How) Should merkle hashes be added to sqlite for consistency? How would merkle hashes in sqlite differ from WAL checksums?
In PSA: SQLite WAL checksums fail silently and may lose data
cosmos/iavl is a Merkleized AVL tree. https://github.com/cosmos/iavl : > Merkleized IAVL+ Tree implementation in Go > The purpose of this data structure is to provide persistent storage for key-value pairs (say to store account balances) such that a deterministic merkle root hash can be computed. The tree is balanced using a variant of the AVL algorithm so all operations are O(log(n)). Integer Vector clock or Merkle hashes? Why shouldn't you store account balances in git, for example? Or, why shouldn't you append to Parquet or Feather and LZ4 for strongly consistent transactional data? Centralized databases can have Merkle hashes, too; "How Postgres stores data on disk" https://news.ycombinator.com/item?id=41163785 : > Those systems index Parquet. Can they also index Feather IPC, which an application might already have to journal and/or l
Read the rest
og, and checkpoint? DLT applications for strong transactional consistency sign and synchronize block messages and transaction messages. Public blockchains have average transaction times and costs. Private blockchains also have TPS Transactions Per Second metrics, and unknown degrees of off-site redundancy for consistent storage with or without indexes. Blockchain#Openness: https://en.wikipedia.org/wiki/Blockchain#Openness : > An issue in this ongoing debate is whether a private system with verifiers tasked and authorized (permissioned) by a central authority should be considered a blockchain. [46][47][48][49][50] Proponents of permissioned or private chains argue that the term "blockchain" may be applied to any data structure that batches data into time-stamped blocks. These blockchains serve as a distributed version of multiversion concurrency control (MVCC) in databases. [51] Just as MVCC prevents two transactions from concurrently modifying a single object in a database, blockchains prevent two transactions from spending the same single output in a blockchain. [52] > Opponents say that permissioned systems resemble traditional corporate databases, not supporting decentralized data verification, and that such systems are not hardened against operator tampering and revision. [46][48] Nikolai Hampton of Computerworld said that "many in-house blockchain solutions will be nothing more than cumbersome databases," and "without a clear security model, proprietary blockchains should be eyed with suspicion." [10][53] Merkle Town: https://news.ycombinator.com/item?id=38829274 : > How CT works > "How CT fits into the wider Web PKI ecosystem": https://certificate.transparency.dev/howctworks/ From "PostgreSQL Support for Certificate Transparency Logs Now Available" https://news.ycombinator.com/item?id=42628223 : > Are there Merkle hashes between the rows in the PostgreSQL CT store like there are in the Trillian CT store? > Sigstore Rekor also has centralized Merkle hashes.
In Adding concurrent read/write to DuckDB with Arrow Flight
Apache Arrow Columnar Format: https://arrow.apache.org/docs/format/Columnar.html : > The Arrow columnar format includes a language-agnostic in-memory data structure specification, metadata serialization, and a protocol for serialization and generic data transport. This document is intended to provide adequate detail to create a new implementation of the columnar format without the aid of an existing implementation. We utilize Google’s Flatbuffers project for metadata serialization, so it will be necessary to refer to the project’s Flatbuffers protocol definition files while reading this document. The columnar format has some key features: > Data adjacency for sequential access (scans) > O(1) (constant-time) random access > SIMD and vectorization-friendly > Relocatable without “pointer swizzling”, allowing for true zero-copy access in sha
Read the rest
red memory Are the major SQL file formats already SIMD optimized and zero-copy across TCP/IP? Arrow doesn't do full or partial indexes. Apache Arrow supports Feather and Parquet on-disk file formats. Feather is on-disk Arrow IPC, now with default LZ4 compression or optionally ZSTD. Some databases support Parquet as the database flat file format (that a DBMS process like PostgreSQL or MySQL provides a logged, permissioned, and cached query interface with query planning to). IIUC with Parquet it's possible both to use normal tools to offline query data tables as files on disk and also to online query tables with a persistent process with tunable parameters and optionally also centrally enforce schema and referential integrity. From https://stackoverflow.com/questions/48083405/what-are-the-di... : > Parquet format is designed for long-term storage, where Arrow is more intended for short term or ephemeral storage > Parquet is more expensive to write than Feather as it features more layers of encoding and compression. Feather is unmodified raw columnar Arrow memory. We will probably add simple compression to Feather in the future. > Due to dictionary encoding, RLE encoding, and data page compression, Parquet files will often be much smaller than Feather files > Parquet is a standard storage format for analytics that's supported by many different systems: Spark, Hive, Impala, various AWS services, in future by BigQuery, etc. So if you are doing analytics, Parquet is a good option as a reference storage format for query by multiple systems Those systems index Parquet. Can they also index Feather IPC, which an application might already have to journal and/or log, and checkpoint? Edit: What are some of the DLT solutions for indexing given a consensus-controlled message spec designed for synchronization? - cosmos/iavl: a Merkleized AVL+ tree (a balanced search tree with Merkle hashes and snapshots to prevent tampering and enable synchronization) https://github.com/cosmos/iavl/blob/master/docs/overview.md - Google/trillion has Merkle hashed edges between rows in order in the table but is centralized - "EVM Query Language: SQL-Like Language for Ethereum" (2024) https://news.ycombinator.com/item?id=41124567 : [...]
In How Postgres stores data on disk – this one's a page turner
SHA2: https://en.wikipedia.org/wiki/SHA-2 https://rosettacode.org/wiki/SHA-256 Hashcat's GPU-optimized OpenCL implementation: https://github.com/hashcat/hashcat/blob/master/OpenCL/inc_ha... Bitcoin's CPU-optimized sha256.cpp, sha256_avx2.cpp, sha256_sse4.cpp, sha256_sse41.cpp: https://github.com/bitcoin/bitcoin/blob/master/src/crypto/sh... https://github.com/topics/sha256 https://github.com/topics/sha-256 Cryptographic_hash_function#Cryptographic_hash_algorithms: https://en.wikipedia.org/wiki/Cryptographic_hash_function#Cr... Merkle–Damgård construction: https://en.m.wikipedia.org/wiki/Merkle%E2%80%93Damg%C3%A5rd_... (... https://rosettacode.org/wiki/SHA-256_Merkle_tree ... Merkleized IAVL+ tree that is balanced with rotations in order to optimize lookup,: https://github.com/cosmos/iavl Self-balancing binary search tree: https://en.wi
Read the rest
In Show HN: SHA-256 explained step-by-step visually
Zooko's triangle: Human-meaningful, Secure, Decentralized. Tendermint provides BFT security in the likes of Bitcoin proof-of-work, except without the mining. It allows for massively replicated public decentralized databases. (e.g. BFT as opposed to Raft's FT). The Tendermint algorithm guarantees that as long as less than 1/3 are malicious, the blockchain will continue to function very well. And if there ever is a double-spend attack, we can figure out who to blame (and it will necessarily be 1/3 of bonded stakeholders). The human-readable part is relatively simple. You can easily program a name-resolution system using the Cosmos SDK. Using the KVStore implementation there, you can commit the value of a name in the Merkle tree, and get a Merkle proof all the way up to the block-hash. And the block-hash is signed by 2/3 of the valida
Read the rest
tor-set by voting power. There's more to it than that, but that's the gist of it. Now we can really, really securely know that a name resolves to a certain IP, and know that it would be extremely expensive to attack this system. NameCoin almost solved it but you need something like this to keep persistent state and provide Merkle proofs: https://github.com/tendermint/iavl . You can with the simple Bitcoin UTXO Merkle tree, but then you can't provide fast updates or revocation easily. p.s. anyone know why my parent post is getting downvoted? goes up and down, up and down ;)
In Time to rebuild the web?

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.