Skip to content

Postgresql as backing store #674

@sandys

Description

@sandys

we've been reading the Merkle data stores proposal (https://github.com/tendermint/tendermint/blob/9af837c24d2223bc98c2859dcebcb2398a2c35c2/docs/architecture/merkle-frey.md) and are very interested in the possibility of using postgresql.

The note basically admits that postgresql has all the features that tendermint needs , but that it may be "overkill". That is a flawed viewing of real life production environments, especially when it comes to blockchain.

basically, the key advantage of postgresql being commercially supported through AWS/Google/Azure is a critical differentiator. LevelDB, while good, does not come with that kind of devops support today.

It basically enables the setup of a robust blockchain infrastructure from day 1 through to infinity. Given that postgresql is super seamless on osx (https://postgresapp.com/) , windows and obviously *nix - it has the full compatibility needed to run it on any node.

In addition, Postgresql is well on its way to handle even larger workloads (big data scale) with its Postgres 10 release - https://wiki.postgresql.org/wiki/New_in_postgres_10#Big_Data . In addition, the data audit mechanisms enable for deep forensics if something goes wrong (as has been the case with blockchains in the past) - https://blog.2ndquadrant.com/traceable-commit-postgresql-10/.

One last thing that the proposal also missed out - postgresql has a native type called JSONB which works as a key value datastore. It means that the amount of code that tendermint has to rewrite for dual support (leveldb and postgresql) will be minimal.

Is this something that tendermint team will be interested in implementing ?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions