What's in a Sovrin Block?


Hi everyone, I’m just starting to get into Sovrin and I’ve been poking around, trying to get a grasp on the technical side of things. There really is an awesome community here!

My background is in the Bitcoin and Ethereum side of things. With that in mind, I’m coming at Sovrin by trying to understand what the blocks “look like” from a low level.

I’ve found a ton of information about what gets stored on the Sovrin ledger (and what doesn’t), but my question is how?. In the bitcoin world, we can peek right into the blocks and see the header & transactions. It’s very well documented, and we know exactly what each block looks like: (for example - https://www.researchgate.net/profile/Jordi_Herrera-Joancomarti/publication/281773799/figure/fig2/AS:284539227262978@1444850846289/Example-of-a-bitcoin-block-data-from-blockexplorercom.png).

I’d like to construct a similar diagram for Sovrin, a “block visualization”. Can anyone provide some insight into what that might look like? The only relevant information I’ve found so far is in this file - https://github.com/spivachuk/sovrin-node/blob/master/docs/transactions.md, but I’m unsure of the details.

Also, in Bitcoin we have the concept of a block time - ~10 minutes between new blocks being appended to the blockchain. Is there a similar concept in Sovrin? When do new transactions actually get written to the ledger?

Thanks in advance!



I’m interested in this question as well. Related to the question of block time, what is the current throughput of the Sovrin network? I understand only the Provisional Net is live now, but what is the current ledger’s capacity for transactions?

In addition, would it be fair to define the scope of transactions as constituting DIDs written to the ledger, as well as schemas, claim definitions, and revocation registries? Is there something I’m missing from that list?


Sovrin does not batch transactions, rather individual transactions or perhaps batches of transactions are posted to the ledger as they are submitted. This is because there is a fundamental difference between it and Bitcoin / Ethereum. These ledgers are dependent on proof-of-work to control posting of transactions, while Sovrin is not. Instead, Sovrin is a permissioned ledger, which we believe is a much more efficient, as well as trustworthy mechanism for identity. The validator nodes on this ledger are maintained by vetted stewards, selected for stability, reputation, and diversity among other factors. Each steward is allowed a single validator node.

With this setup, there is no need for the overhead of forming blocks and doing proof-of-work computations to post them.

Regarding the ledger contents, there are in reality 3 ledgers, with a 4th possibly added in the future. All but one of these contain metadata, such as information on the nodes that form the pool. The main ledger contains the contents listed by @nhelmy.


@json The source code repositories of Hyperledger-indy have technical details, indy-plenum (ledger layer), indy-node (identity layer). Another repo more focused on the Sovrin protocol. To interact with devs building Sovrin, use rocketchat