Here’s how Chronos is different:

A Timestamp for Every Transaction: Every transaction has a timestamp of when they were discovered (not when they were mined into a block) Even Mempool: Even Mempool transactions have a timestamp (This is not the case for other BitDB nodes) Ephemeral: 24 hour sliding window of transaction storage One collection: All transactions stored in a single chronological collection, regardless of confirmed or unconfirmed. Dynamic attribute: Has a dynamically computed virtual attribute named timeago

Chronos was designed for dealing with time, which used to be impossible with existing BitDBs.

To understand why this has been impossible, we must first understand how the existing system works. Let’s take a look at how the concept of “Time” works in Bitcoin land.

How Time Flows in Bitcoin Wonderland

Think of Bitcoin as a parallel universe. In this Bitcoin world, time flows differently than the outside world we live in. So if Alice wants to visit this Bitcoin wonderland, she’d better be very conscious about the rules. Otherwise she may face a totally unexpected reality when she comes back to her real world.

Here are the rules:

A block is the minimal unit of time. Everything that happens within a single block should be considered to have happened SIMULTANEOUSLY. Until transactions get mined into a block, they didn’t happen.

For example, just because one transaction is sent to Bitcoin earlier than another transaction, doesn’t mean it will be mined earlier.

Also, just because a transaction appears later within the blockchain than another transaction, doesn’t mean that transaction was sent later. It could have just propagated slowly, or may have stayed in the mempool for a long time before finally getting mined.

So when thinking about time in Bitcoin:

Think of Bitcoin as a clock, where every new block is a tick. Treat every transaction within the same block as simultaneous. Don’t try to determine which transaction was SENT earlier based on when a transaction was DISCOVERED, because it will vary across all nodes.

How Other BitDB Nodes Deal with Bitcoin’s Rules of Time

Before we discuss Chronos, let’s look at how other existing BitDB nodes deal with time, abiding by the rules mentioned above (This includes Genesis and Babel).

1. Block

Transactions mined into a block all have a blk attribute, which contains 3 child attributes:

i : Block index (height) h : Block hash t : Block time (in unix timestamp)

One thing to remember is that EVERY transaction in the same block has EXACTLY the same blk attribute.

This means you can’t tell which transaction in a block was SENT earlier than another transaction in the same block. You can’t even tell which was DISCOVERED earlier through BitDB because they all have the same timestamp.